Просмотр исходного кода

I18n standardization (#2138)

* i18n Admin standardization

cz - moved items incorrectly placed in system array to extensions array
nl - remove registration array in user array that doesn't appear in any other translations - possibly from an old version that didn't get removed?
oc - reordered list to standardize order with other translation files.

* Alphabetize extensions Array

* Standardize conf.php

he - removed options not appearing in other i18n files, added missing strings

* Standardize feedback.php

he - removed line not found in other translation files
nl - removed line not found in other translation files

* Standardize gen.php

* Standardize index.php

Major sorting of oc.
Added tags to several languages

* Standardize install.php

ru - added missing strings
it - remove extra string not found in other config files
he - add missing strings, remove strings not found in other languages
oc - reorganize

* Standardize sub.php

* Standardize and fix TODOs

use format  "//TODO - Translation" for easier searching

* Fix whitespace
Patrick Crandol 7 лет назад
Родитель
Сommit
16a131380b
96 измененных файлов с 1620 добавлено и 1586 удалено
  1. 17 17
      app/i18n/cz/admin.php
  2. 25 25
      app/i18n/cz/conf.php
  3. 9 9
      app/i18n/cz/feedback.php
  4. 15 14
      app/i18n/cz/gen.php
  5. 3 3
      app/i18n/cz/index.php
  6. 4 4
      app/i18n/cz/install.php
  7. 16 16
      app/i18n/cz/sub.php
  8. 8 8
      app/i18n/de/admin.php
  9. 16 16
      app/i18n/de/conf.php
  10. 5 5
      app/i18n/de/feedback.php
  11. 11 11
      app/i18n/de/gen.php
  12. 2 2
      app/i18n/de/index.php
  13. 1 1
      app/i18n/de/install.php
  14. 1 1
      app/i18n/de/sub.php
  15. 6 6
      app/i18n/en/admin.php
  16. 15 15
      app/i18n/en/conf.php
  17. 4 4
      app/i18n/en/feedback.php
  18. 11 11
      app/i18n/en/gen.php
  19. 1 1
      app/i18n/en/index.php
  20. 3 3
      app/i18n/en/install.php
  21. 1 1
      app/i18n/en/sub.php
  22. 12 12
      app/i18n/es/admin.php
  23. 25 25
      app/i18n/es/conf.php
  24. 9 9
      app/i18n/es/feedback.php
  25. 13 13
      app/i18n/es/gen.php
  26. 3 3
      app/i18n/es/index.php
  27. 3 3
      app/i18n/es/install.php
  28. 21 10
      app/i18n/es/sub.php
  29. 6 6
      app/i18n/fr/admin.php
  30. 15 15
      app/i18n/fr/conf.php
  31. 4 4
      app/i18n/fr/feedback.php
  32. 12 12
      app/i18n/fr/gen.php
  33. 1 1
      app/i18n/fr/sub.php
  34. 66 66
      app/i18n/he/admin.php
  35. 29 26
      app/i18n/he/conf.php
  36. 24 25
      app/i18n/he/feedback.php
  37. 30 30
      app/i18n/he/gen.php
  38. 3 3
      app/i18n/he/index.php
  39. 28 20
      app/i18n/he/install.php
  40. 18 17
      app/i18n/he/sub.php
  41. 13 13
      app/i18n/it/admin.php
  42. 24 24
      app/i18n/it/conf.php
  43. 9 9
      app/i18n/it/feedback.php
  44. 12 12
      app/i18n/it/gen.php
  45. 3 3
      app/i18n/it/index.php
  46. 3 4
      app/i18n/it/install.php
  47. 17 17
      app/i18n/it/sub.php
  48. 8 8
      app/i18n/kr/admin.php
  49. 16 16
      app/i18n/kr/conf.php
  50. 6 6
      app/i18n/kr/feedback.php
  51. 12 12
      app/i18n/kr/gen.php
  52. 3 3
      app/i18n/kr/index.php
  53. 3 3
      app/i18n/kr/install.php
  54. 2 2
      app/i18n/kr/sub.php
  55. 6 11
      app/i18n/nl/admin.php
  56. 15 15
      app/i18n/nl/conf.php
  57. 4 5
      app/i18n/nl/feedback.php
  58. 12 12
      app/i18n/nl/gen.php
  59. 2 1
      app/i18n/nl/index.php
  60. 1 1
      app/i18n/nl/install.php
  61. 1 1
      app/i18n/nl/sub.php
  62. 91 90
      app/i18n/oc/admin.php
  63. 30 29
      app/i18n/oc/conf.php
  64. 5 4
      app/i18n/oc/feedback.php
  65. 87 86
      app/i18n/oc/gen.php
  66. 18 17
      app/i18n/oc/index.php
  67. 7 8
      app/i18n/oc/install.php
  68. 33 31
      app/i18n/oc/sub.php
  69. 12 12
      app/i18n/pt-br/admin.php
  70. 25 25
      app/i18n/pt-br/conf.php
  71. 9 9
      app/i18n/pt-br/feedback.php
  72. 14 13
      app/i18n/pt-br/gen.php
  73. 3 2
      app/i18n/pt-br/index.php
  74. 3 3
      app/i18n/pt-br/install.php
  75. 13 13
      app/i18n/pt-br/sub.php
  76. 12 12
      app/i18n/ru/admin.php
  77. 131 131
      app/i18n/ru/conf.php
  78. 72 72
      app/i18n/ru/feedback.php
  79. 133 133
      app/i18n/ru/gen.php
  80. 36 35
      app/i18n/ru/index.php
  81. 11 3
      app/i18n/ru/install.php
  82. 62 62
      app/i18n/ru/sub.php
  83. 12 12
      app/i18n/tr/admin.php
  84. 25 25
      app/i18n/tr/conf.php
  85. 9 9
      app/i18n/tr/feedback.php
  86. 13 13
      app/i18n/tr/gen.php
  87. 3 3
      app/i18n/tr/index.php
  88. 3 3
      app/i18n/tr/install.php
  89. 17 17
      app/i18n/tr/sub.php
  90. 11 11
      app/i18n/zh-cn/admin.php
  91. 20 20
      app/i18n/zh-cn/conf.php
  92. 9 9
      app/i18n/zh-cn/feedback.php
  93. 13 13
      app/i18n/zh-cn/gen.php
  94. 3 3
      app/i18n/zh-cn/index.php
  95. 3 3
      app/i18n/zh-cn/install.php
  96. 4 4
      app/i18n/zh-cn/sub.php

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

@@ -67,8 +67,8 @@ return array(
 			'ok' => 'Máte rozšíření JSON.',
 		),
 		'mbstring' => array(
-			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO
-			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO
+			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO - Translation
+			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO - Translation
 		),
 		'minz' => array(
 			'nok' => 'Nemáte framework Minz.',
@@ -106,16 +106,23 @@ return array(
 		),
 	),
 	'extensions' => array(
+		'author' => 'Author',	//TODO - Translation
+		'community' => 'Available community extensions',	//TODO - Translation
+		'description' => 'Description',	//TODO - Translation
 		'disabled' => 'Vypnuto',
 		'empty_list' => 'Není naistalováno žádné rozšíření',
 		'enabled' => 'Zapnuto',
+		'latest' => 'Installed',	//TODO - Translation
+		'name' => 'Name',	//TODO - Translation
 		'no_configure_view' => 'Toto rozšíření nemá žádné možnosti nastavení.',
 		'system' => array(
 			'_' => '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
 		'user' => 'Uživatelská rozšíření',
+		'version' => 'Version',	//TODO - Translation
 	),
 	'stats' => array(
 		'_' => 'Statistika',
@@ -150,22 +157,15 @@ return array(
 		'top_feed' => 'Top ten kanálů',
 	),
 	'system' => array(
-		'_' => 'System configuration', // @todo translate
-		'auto-update-url' => 'Auto-update server URL', // @todo translate
-		'instance-name' => 'Instance name', // @todo translate
-		'max-categories' => 'Categories per user limit', // @todo translate
-		'max-feeds' => 'Feeds per user limit', // @todo translate
+		'_' => 'System configuration',	//TODO - Translation
+		'auto-update-url' => 'Auto-update server URL',	//TODO - Translation
+		'instance-name' => 'Instance name',	//TODO - Translation
+		'max-categories' => 'Categories per user limit',	//TODO - Translation
+		'max-feeds' => 'Feeds per user limit',	//TODO - Translation
 		'registration' => array(
 			'help' => '0 znamená žádná omezení účtu',
 			'number' => 'Maximální počet účtů',
 		),
-		'community' => 'Available community extensions', // @todo translate
-		'name' => 'Name', // @todo translate
-		'version' => 'Version', // @todo translate
-		'description' => 'Description', // @todo translate
-		'author' => 'Author', // @todo translate
-		'latest' => 'Installed', // @todo translate
-		'update' => 'Update available', // @todo translate
 	),
 	'update' => array(
 		'_' => 'Aktualizace systému',
@@ -179,15 +179,15 @@ return array(
 	'user' => array(
 		'articles_and_size' => '%s článků (%s)',
 		'create' => 'Vytvořit nového uživatele',
-		'delete_users' => 'Delete user', // TODO
+		'delete_users' => 'Delete user',	//TODO - Translation
 		'language' => 'Jazyk',
 		'number' => 'Zatím je vytvořen %d účet',
 		'numbers' => 'Zatím je vytvořeno %d účtů',
 		'password_form' => 'Heslo<br /><small>(pro přihlášení webovým formulářem)</small>',
 		'password_format' => 'Alespoň 7 znaků',
-		'selected' => 'Selected user', // TODO
+		'selected' => 'Selected user',	//TODO - Translation
 		'title' => 'Správa uživatelů',
-		'update_users' => 'Update user', // TODO
+		'update_users' => 'Update user',	//TODO - Translation
 		'user_list' => 'Seznam uživatelů',
 		'username' => 'Přihlašovací jméno',
 		'users' => 'Uživatelé',

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

@@ -19,7 +19,7 @@ return array(
 			'bottom_line' => 'Spodní řádek',
 			'entry' => 'Ikony článků',
 			'publication_date' => 'Datum vydání',
-			'related_tags' => 'Související tagy',	//TODO
+			'related_tags' => 'Související tagy',	//TODO - Translation
 			'sharing' => 'Sdílení',
 			'top_line' => 'Horní řádek',
 		),
@@ -28,6 +28,7 @@ return array(
 			'seconds' => 'sekund (0 znamená žádný timeout)',
 			'timeout' => 'Timeout HTML5 notifikací',
 		),
+		'show_nav_buttons' => 'Show the navigation buttons',	//TODO - Translation
 		'theme' => 'Vzhled',
 		'title' => 'Zobrazení',
 		'width' => array(
@@ -37,12 +38,22 @@ return array(
 			'no_limit' => 'Bez limitu',
 			'thin' => 'Tenká',
 		),
-		'show_nav_buttons' => 'Show the navigation buttons',	//TODO
+	),
+	'profile' => array(
+		'_' => 'Správa profilu',
+		'delete' => array(
+			'_' => 'Smazání účtu',
+			'warn' => 'Váš účet bude smazán spolu se všemi souvisejícími daty',
+		),
+		'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',
 	),
 	'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
+		'display' => 'Display user query results',	//TODO - Translation
 		'filter' => 'Filtr aplikován:',
 		'get_all' => 'Zobrazit všechny články',
 		'get_category' => 'Zobrazit "%s" kategorii',
@@ -53,7 +64,7 @@ return array(
 		'number' => 'Dotaz n°%d',
 		'order_asc' => 'Zobrazit nejdříve nejstarší články',
 		'order_desc' => 'Zobrazit nejdříve nejnovější články',
-		'remove' => 'Remove user query', // TODO
+		'remove' => 'Remove user query',	//TODO - Translation
 		'search' => 'Hledat "%s"',
 		'state_0' => 'Zobrazit všechny články',
 		'state_1' => 'Zobrazit přečtené články',
@@ -73,31 +84,19 @@ return array(
 		'state_15' => 'Zobrazit všechny články',
 		'title' => 'Uživatelské dotazy',
 	),
-	'profile' => array(
-		'_' => 'Správa profilu',
-		'delete' => array(
-			'_' => 'Smazání účtu',
-			'warn' => 'Váš účet bude smazán spolu se všemi souvisejícími daty',
-		),
-		'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',
-	),
 	'reading' => array(
 		'_' => 'Čtení',
 		'after_onread' => 'Po “označit vše jako přečtené”,',
 		'articles_per_page' => 'Počet článků na stranu',
 		'auto_load_more' => 'Načítat další články dole na stránce',
 		'auto_remove_article' => 'Po přečtení články schovat',
-		'mark_updated_article_unread' => 'Označte aktualizované položky jako nepřečtené',
 		'confirm_enabled' => 'Vyžadovat potvrzení pro akci “označit vše jako přečtené”',
 		'display_articles_unfolded' => 'Ve výchozím stavu zobrazovat články otevřené',
 		'display_categories_unfolded' => 'Ve výchozím stavu zobrazovat kategorie zavřené',
 		'hide_read_feeds' => 'Schovat kategorie a kanály s nulovým počtem nepřečtených článků (nefunguje s nastavením “Zobrazit všechny články”)',
 		'img_with_lazyload' => 'Použít "lazy load" mód pro načítaní obrázků',
-		'sides_close_article' => 'Clicking outside of article text area closes the article',	//TODO
 		'jump_next' => 'skočit na další nepřečtený (kanál nebo kategorii)',
+		'mark_updated_article_unread' => 'Označte aktualizované položky jako nepřečtené',
 		'number_divided_when_reader' => 'V režimu “Čtení” děleno dvěma.',
 		'read' => array(
 			'article_open_on_website' => 'když je otevřen původní web s článkem',
@@ -112,6 +111,7 @@ return array(
 			'all_articles' => 'Zobrazit všechny články',
 			'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ší',
@@ -128,7 +128,7 @@ return array(
 	),
 	'sharing' => array(
 		'_' => 'Sdílení',
-		'add' => 'Add a sharing method', // TODO
+		'add' => 'Add a sharing method',	//TODO - Translation
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
 		'email' => 'Email',
@@ -136,7 +136,7 @@ return array(
 		'g+' => 'Google+',
 		'more_information' => 'Více informací',
 		'print' => 'Tisk',
-		'remove' => 'Remove sharing method', // TODO
+		'remove' => 'Remove sharing method',	//TODO - Translation
 		'shaarli' => 'Shaarli',
 		'share_name' => 'Jméno pro zobrazení',
 		'share_url' => 'Jakou URL použít pro sdílení',
@@ -153,27 +153,27 @@ return array(
 		'collapse_article' => 'Srolovat',
 		'first_article' => 'Skočit na první článek',
 		'focus_search' => 'Hledání',
-		'global_view' => 'Switch to global view', // TODO
+		'global_view' => 'Switch to global view',	//TODO - Translation
 		'help' => 'Zobrazit documentaci',
 		'javascript' => 'Pro použití zkratek musí být povolen JavaScript',
 		'last_article' => 'Skočit na poslední článek',
 		'load_more' => 'Načíst více článků',
-		'mark_read' => 'Označit jako přečtené',
 		'mark_favorite' => 'Označit jako oblíbené',
+		'mark_read' => 'Označit jako přečtené',
 		'navigation' => 'Navigace',
 		'navigation_help' => 'Pomocí přepínače "Shift" fungují navigační zkratky v rámci kanálů.<br/>Pomocí přepínače "Alt" fungují v rámci kategorií.',
 		'next_article' => 'Skočit na další článek',
-		'normal_view' => 'Switch to normal view', // TODO
+		'normal_view' => 'Switch to normal view',	//TODO - Translation
 		'other_action' => 'Ostatní akce',
 		'previous_article' => 'Skočit na předchozí článek',
-		'reading_view' => 'Switch to reading view', // TODO
-		'rss_view' => 'Open RSS view in a new tab', // TODO
+		'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' => '+ <code>shift</code> označí vše jako přečtené',
 		'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
+		'views' => 'Views',	//TODO - Translation
 	),
 	'user' => array(
 		'articles_and_size' => '%s článků (%s)',

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

@@ -50,11 +50,15 @@ return array(
 		'no_zip_extension' => 'Na serveru není naistalována podpora ZIP.',
 		'zip_error' => 'Během importu ZIP souboru došlo k chybě.',
 	),
+	'profile' => array(
+		'error' => 'Váš profil nelze změnit',
+		'updated' => 'Váš profil byl změněn',
+	),
 	'sub' => array(
 		'actualize' => 'Aktualizovat',
 		'articles' => array(
-			'marked_read' => 'The selected articles have been marked as read.',	//TODO
-			'marked_unread' => 'The articles have been marked as unread.',	//TODO
+			'marked_read' => 'The selected articles have been marked as read.',	//TODO - Translation
+			'marked_unread' => 'The articles have been marked as unread.',	//TODO - Translation
 		),
 		'category' => array(
 			'created' => 'Kategorie %s byla vytvořena.',
@@ -76,7 +80,7 @@ return array(
 			'already_subscribed' => 'Již jste přihlášen k odběru <em>%s</em>',
 			'deleted' => 'Kanál byl smazán',
 			'error' => 'Kanál nelze aktualizovat',
-			'internal_problem' => 'RSS kanál nelze přidat. Pro detaily <a href="%s">zkontrolujte logy FreshRSS</a>.', // @todo
+			'internal_problem' => 'RSS kanál nelze přidat. Pro detaily <a href="%s">zkontrolujte logy FreshRSS</a>.',	//TODO - Translation
 			'invalid_url' => 'URL <em>%s</em> není platné',
 			'n_actualized' => '%d kanálů bylo aktualizováno',
 			'n_entries_deleted' => '%d článků bylo smazáno',
@@ -105,12 +109,8 @@ return array(
 			'error' => 'Uživatele %s nelze smazat',
 		),
 		'updated' => array(
-			'_' => 'User %s has been updated', // TODO
-			'error' => 'User %s has not been updated', // TODO
+			'_' => 'User %s has been updated',	//TODO - Translation
+			'error' => 'User %s has not been updated',	//TODO - Translation
 		),
 	),
-	'profile' => array(
-		'error' => 'Váš profil nelze změnit',
-		'updated' => 'Váš profil byl změněn',
-	),
 );

+ 15 - 14
app/i18n/cz/gen.php

@@ -19,7 +19,7 @@ return array(
 		'see_website' => 'Navštívit WWW stránku',
 		'submit' => 'Odeslat',
 		'truncate' => 'Smazat všechny články',
-		'update' => 'Update', // TODO
+		'update' => 'Update',	//TODO - Translation
 	),
 	'auth' => array(
 		'email' => 'Email',
@@ -44,33 +44,28 @@ return array(
 	),
 	'date' => array(
 		'Apr' => '\\D\\u\\b\\e\\n',
-		'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' => '\\S\\r\\p\\e\\n',
 		'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' => '\\Č\\e\\r\\v\\e\\n\\e\\c',
 		'jul' => 'čvn',
 		'july' => 'Čvn',
+		'Jun' => '\\Č\\e\\r\\v\\e\\n',
 		'jun' => 'čer',
 		'june' => 'Čer',
 		'last_3_month' => 'Minulé tři měsíce',
@@ -78,17 +73,22 @@ 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' => '\\K\\v\\ě\\t\\e\\n',
 		'may' => 'Květen',
 		'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',
@@ -146,7 +146,7 @@ return array(
 		'sharing' => 'Sdílení',
 		'shortcuts' => 'Zkratky',
 		'stats' => 'Statistika',
-		'system' => 'System configuration', // @todo translate
+		'system' => 'System configuration',	//TODO - Translation
 		'update' => 'Aktualizace',
 		'user_management' => 'Správa uživatelů',
 		'user_profile' => 'Profil',
@@ -161,7 +161,6 @@ return array(
 		'previous' => 'Předchozí',
 	),
 	'share' => array(
-		'Known' => 'Known based sites',
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
 		'email' => 'Email',
@@ -169,6 +168,7 @@ return array(
 		'g+' => 'Google+',
 		'gnusocial' => 'GNU social',
 		'jdh' => 'Journal du hacker',
+		'Known' => 'Known based sites',
 		'linkedin' => 'LinkedIn',
 		'mastodon' => 'Mastodon',
 		'movim' => 'Movim',
@@ -187,6 +187,7 @@ return array(
 		'damn' => 'Sakra!',
 		'default_category' => 'Nezařazeno',
 		'no' => 'Ne',
+		'not_applicable' => 'Not available',	//TODO - Translation
 		'ok' => 'Ok!',
 		'or' => 'nebo',
 		'yes' => 'Ano',

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

@@ -40,7 +40,7 @@ return array(
 		'mark_all_read' => 'Označit vše jako přečtené',
 		'mark_cat_read' => 'Označit kategorii jako přečtenou',
 		'mark_feed_read' => 'Označit kanál jako přečtený',
-		'mark_selection_unread' => 'Mark selection as unread',	//TODO
+		'mark_selection_unread' => 'Mark selection as unread',	//TODO - Translation
 		'newer_first' => 'Nové nejdříve',
 		'non-starred' => 'Zobrazit vše vyjma oblíbených',
 		'normal_view' => 'Normální',
@@ -53,11 +53,11 @@ return array(
 		'starred' => 'Zobrazit oblíbené',
 		'stats' => 'Statistika',
 		'subscription' => 'Správa subskripcí',
-		'tags' => 'My labels',	//TODO
+		'tags' => 'My labels',	//TODO - Translation
 		'unread' => 'Zobrazovat nepřečtené',
 	),
 	'share' => 'Sdílet',
 	'tag' => array(
-		'related' => 'Související tagy',	//TODO
+		'related' => 'Související tagy',	//TODO - Translation
 	),
 );

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

@@ -24,8 +24,8 @@ return array(
 			'ok' => 'Nastavení databáze bylo uloženo.',
 		),
 		'host' => 'Hostitel',
-		'prefix' => 'Prefix tabulky',
 		'password' => 'Heslo',
+		'prefix' => 'Prefix tabulky',
 		'type' => 'Typ databáze',
 		'username' => 'Uživatel',
 	),
@@ -45,7 +45,7 @@ return array(
 			'ok' => 'Máte rozšíření cURL.',
 		),
 		'data' => array(
-		'nok' => 'Zkontrolujte oprávnění adresáře <em>./data</em>. HTTP server musí mít do tohoto adresáře práva zápisu',
+			'nok' => 'Zkontrolujte oprávnění adresáře <em>./data</em>. HTTP server musí mít do tohoto adresáře práva zápisu',
 			'ok' => 'Oprávnění adresáře data jsou v pořádku.',
 		),
 		'dom' => array(
@@ -69,8 +69,8 @@ return array(
 			'ok' => 'Máte doporučenou knihovnu pro parsování JSON.',
 		),
 		'mbstring' => array(
-			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO
-			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO
+			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO - Translation
+			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO - Translation
 		),
 		'minz' => array(
 			'nok' => 'Nemáte framework Minz.',

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

@@ -2,13 +2,13 @@
 
 return array(
 	'api' => array(
-		'documentation' => 'Copy the following URL to use it within an external tool.',// TODO
-		'title' => 'API',// TODO
+		'documentation' => 'Copy the following URL to use it within an external tool.',	//TODO - Translation
+		'title' => 'API',	//TODO - Translation
 	),
 	'bookmarklet' => array(
-		'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose "Bookmark This Link". Then click "Subscribe" button in any page you want to subscribe to.',// TODO
-		'label' => 'Subscribe',// TODO
-		'title' => 'Bookmarklet',// TODO
+		'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose "Bookmark This Link". Then click "Subscribe" button in any page you want to subscribe to.',	//TODO - Translation
+		'label' => 'Subscribe',	//TODO - Translation
+		'title' => 'Bookmarklet',	//TODO - Translation
 	),
 	'category' => array(
 		'_' => 'Kategorie',
@@ -27,7 +27,7 @@ return array(
 			'password' => 'Heslo',
 			'username' => 'Přihlašovací jméno',
 		),
-		'clear_cache' => 'Always clear cache',	//TODO
+		'clear_cache' => 'Always clear cache',	//TODO - Translation
 		'css_help' => 'Stáhne zkrácenou verzi RSS kanálů (pozor, náročnější na čas!)',
 		'css_path' => 'Původní CSS soubor článku z webových stránek',
 		'description' => 'Popis',
@@ -36,30 +36,30 @@ return array(
 		'informations' => 'Informace',
 		'keep_history' => 'Zachovat tento minimální počet článků',
 		'moved_category_deleted' => 'Po smazání kategorie budou v ní obsažené kanály automaticky přesunuty do <em>%s</em>.',
-		'mute' => 'mute', // TODO
+		'mute' => 'mute',	//TODO - Translation
 		'no_selected' => 'Nejsou označeny žádné kanály.',
 		'number_entries' => '%d článků',
 		'priority' => array(
-			'_' => 'Visibility', // TODO
-			'archived' => 'Do not show (archived)', // TODO
+			'_' => 'Visibility',	//TODO - Translation
+			'archived' => 'Do not show (archived)',	//TODO - Translation
 			'main_stream' => 'Zobrazit ve “Všechny kanály”',
-			'normal' => 'Show in its category', // TODO
+			'normal' => 'Show in its category',	//TODO - Translation
 		),
-		'ssl_verify' => 'Verify SSL security',	//TODO
+		'pubsubhubbub' => 'Okamžité oznámení s PubSubHubbub',
+		'ssl_verify' => 'Verify SSL security',	//TODO - Translation
 		'stats' => 'Statistika',
 		'think_to_add' => 'Můžete přidat kanály.',
-		'timeout' => 'Timeout in seconds',	//TODO
+		'timeout' => 'Timeout in seconds',	//TODO - Translation
 		'title' => 'Název',
 		'title_add' => 'Přidat RSS kanál',
 		'ttl' => 'Neobnovovat častěji než',
 		'url' => 'URL kanálu',
 		'validator' => 'Zkontrolovat platnost kanálu',
 		'website' => 'URL webové stránky',
-		'pubsubhubbub' => 'Okamžité oznámení s PubSubHubbub',
 	),
 	'firefox' => array(
 		'documentation' => 'Follow the steps described <a href="https://developer.mozilla.org/en-US/Firefox/Releases/2/Adding_feed_readers_to_Firefox#Adding_a_new_feed_reader_manually">here</a> to add FreshRSS to Firefox feed reader list.',// TODO
-		'title' => 'Firefox feed reader',// TODO
+		'title' => 'Firefox feed reader',	//TODO - Translation
 	),
 	'import_export' => array(
 		'export' => 'Export',
@@ -76,11 +76,11 @@ return array(
 		'bookmark' => 'Přihlásit (FreshRSS bookmark)',
 		'import_export' => 'Import / export',
 		'subscription_management' => 'Správa subskripcí',
-		'subscription_tools' => 'Subscription tools',// TODO
+		'subscription_tools' => 'Subscription tools',	//TODO - Translation
 	),
 	'title' => array(
 		'_' => 'Správa subskripcí',
 		'feed_management' => 'Správa RSS kanálů',
-		'subscription_tools' => 'Subscription tools',// TODO
+		'subscription_tools' => 'Subscription tools',	//TODO - Translation
 	),
 );

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

@@ -67,8 +67,8 @@ return array(
 			'ok' => 'Sie haben die JSON-Erweiterung.',
 		),
 		'mbstring' => array(
-			'nok' => 'Ihnen fehlt die mbstring-Bibliothek für Unicode.',	//TODO
-			'ok' => 'Sie haben die empfohlene mbstring-Bliothek für Unicode.',	//TODO
+			'nok' => 'Ihnen fehlt die mbstring-Bibliothek für Unicode.',
+			'ok' => 'Sie haben die empfohlene mbstring-Bliothek für Unicode.',
 		),
 		'minz' => array(
 			'nok' => 'Ihnen fehlt das Minz-Framework.',
@@ -106,23 +106,23 @@ return array(
 		),
 	),
 	'extensions' => array(
+		'author' => 'Autor',
+		'community' => 'Verfügbare Community Erweiterungen',
+		'description' => 'Beschreibungen',
 		'disabled' => 'Deaktiviert',
 		'empty_list' => 'Es gibt keine installierte Erweiterung.',
 		'enabled' => 'Aktiviert',
+		'latest' => 'Installiert',
+		'name' => 'Name',
 		'no_configure_view' => 'Diese Erweiterung kann nicht konfiguriert werden.',
 		'system' => array(
 			'_' => 'System-Erweiterungen',
 			'no_rights' => 'System-Erweiterung (Sie haben keine Berechtigung dafür)',
 		),
 		'title' => 'Erweiterungen',
+		'update' => 'Update verfügbar',
 		'user' => 'Benutzer-Erweiterungen',
-		'community' => 'Verfügbare Community Erweiterungen',
-		'name' => 'Name',
 		'version' => 'Version',
-		'description' => 'Beschreibungen',
-		'author' => 'Autor',
-		'latest' => 'Installiert',
-		'update' => 'Update verfügbar',
 	),
 	'stats' => array(
 		'_' => 'Statistiken',

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

@@ -19,7 +19,7 @@ return array(
 			'bottom_line' => 'Fußzeile',
 			'entry' => 'Artikel-Symbole',
 			'publication_date' => 'Datum der Veröffentlichung',
-			'related_tags' => 'Verwandte Tags',	//TODO
+			'related_tags' => 'Verwandte Tags',
 			'sharing' => 'Teilen',
 			'top_line' => 'Kopfzeile',
 		),
@@ -28,6 +28,7 @@ return array(
 			'seconds' => 'Sekunden (0 bedeutet keine Zeitüberschreitung)',
 			'timeout' => 'Zeitüberschreitung für HTML5-Benachrichtigung',
 		),
+		'show_nav_buttons' => 'Zeige Navigations-Buttons',
 		'theme' => 'Erscheinungsbild',
 		'title' => 'Anzeige',
 		'width' => array(
@@ -37,7 +38,17 @@ return array(
 			'no_limit' => 'Keine Begrenzung',
 			'thin' => 'Klein',
 		),
-		'show_nav_buttons' => 'Zeige Navigations-Buttons',
+	),
+	'profile' => array(
+		'_' => 'Profil-Verwaltung',
+		'delete' => array(
+			'_' => 'Accountlöschung',
+			'warn' => 'Dein Account und alle damit bezogenen Daten werden gelöscht.',
+		),
+		'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',
 	),
 	'query' => array(
 		'_' => 'Benutzerabfragen',
@@ -73,31 +84,19 @@ return array(
 		'state_15' => 'Alle Artikel anzeigen',
 		'title' => 'Benutzerabfragen',
 	),
-	'profile' => array(
-		'_' => 'Profil-Verwaltung',
-		'delete' => array(
-			'_' => 'Accountlöschung',
-			'warn' => 'Dein Account und alle damit bezogenen Daten werden gelöscht.',
-		),
-		'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',
-	),
 	'reading' => array(
 		'_' => 'Lesen',
 		'after_onread' => 'Nach „Alle als gelesen markieren“,',
 		'articles_per_page' => 'Anzahl der Artikel pro Seite',
 		'auto_load_more' => 'Die nächsten Artikel am Seitenende laden',
 		'auto_remove_article' => 'Artikel nach dem Lesen verstecken',
-		'mark_updated_article_unread' => 'Markieren Sie aktualisierte Artikel als ungelesen',
 		'confirm_enabled' => 'Bei der Aktion „Alle als gelesen markieren“ einen Bestätigungsdialog anzeigen',
 		'display_articles_unfolded' => 'Artikel standardmäßig ausgeklappt zeigen',
 		'display_categories_unfolded' => 'Kategorien standardmäßig eingeklappt zeigen',
 		'hide_read_feeds' => 'Kategorien & Feeds ohne ungelesene Artikel verstecken (funktioniert nicht mit der Einstellung „Alle Artikel zeigen“)',
 		'img_with_lazyload' => 'Verwende die "träges Laden"-Methode zum Laden von Bildern',
-		'sides_close_article' => 'Klick außerhalb des Artikel-Textes schließt den Artikel',
 		'jump_next' => 'springe zum nächsten ungelesenen Geschwisterelement (Feed oder Kategorie)',
+		'mark_updated_article_unread' => 'Markieren Sie aktualisierte Artikel als ungelesen',
 		'number_divided_when_reader' => 'Geteilt durch 2 in der Lese-Ansicht.',
 		'read' => array(
 			'article_open_on_website' => 'wenn der Artikel auf der Original-Webseite geöffnet wird',
@@ -112,6 +111,7 @@ return array(
 			'all_articles' => 'Alle Artikel zeigen',
 			'unread' => 'Nur ungelesene zeigen',
 		),
+		'sides_close_article' => 'Klick außerhalb des Artikel-Textes schließt den Artikel',
 		'sort' => array(
 			'_' => 'Sortierreihenfolge',
 			'newer_first' => 'Neuere zuerst',
@@ -158,8 +158,8 @@ return array(
 		'javascript' => 'JavaScript muss aktiviert sein, um Tastaturkürzel benutzen zu können',
 		'last_article' => 'Zum letzten Artikel springen',
 		'load_more' => 'Weitere Artikel laden',
-		'mark_read' => 'Als gelesen markieren',
 		'mark_favorite' => 'Als Favorit markieren',
+		'mark_read' => 'Als gelesen markieren',
 		'navigation' => 'Navigation',
 		'navigation_help' => 'Mit der "Umschalttaste" finden die Tastenkombination auf Feeds Anwendung.<br/>Mit der "Alt-Taste" finden die Tastenkombination auf Kategorien Anwendung.',
 		'next_article' => 'Zum nächsten Artikel springen',

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

@@ -50,6 +50,10 @@ return array(
 		'no_zip_extension' => 'Die ZIP-Erweiterung ist auf Ihrem Server nicht vorhanden.',
 		'zip_error' => 'Ein Fehler trat während des ZIP-Imports auf.',
 	),
+	'profile' => array(
+		'error' => 'Ihr Profil kann nicht geändert werden',
+		'updated' => 'Ihr Profil ist geändert worden',
+	),
 	'sub' => array(
 		'actualize' => 'Aktualisieren',
 		'articles' => array(
@@ -76,7 +80,7 @@ return array(
 			'already_subscribed' => 'Sie haben <em>%s</em> bereits abonniert',
 			'deleted' => 'Der Feed ist gelöscht worden',
 			'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>.', // @todo
+			'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',
 			'n_actualized' => 'Die %d Feeds sind aktualisiert worden',
 			'n_entries_deleted' => 'Die %d Artikel sind gelöscht worden',
@@ -109,8 +113,4 @@ return array(
 			'error' => 'Benutzer %s wurde nicht aktualisiert',
 		),
 	),
-	'profile' => array(
-		'error' => 'Ihr Profil kann nicht geändert werden',
-		'updated' => 'Ihr Profil ist geändert worden',
-	),
 );

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

@@ -44,33 +44,28 @@ return array(
 	),
 	'date' => array(
 		'Apr' => '\\A\\p\\r\\i\\l',
-		'Aug' => '\\A\\u\\g\\u\\s\\t',
-		'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',
-		'Oct' => '\\O\\k\\t\\o\\b\\e\\r',
-		'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r',
 		'apr' => 'Apr',
 		'april' => 'April',
+		'Aug' => '\\A\\u\\g\\u\\s\\t',
 		'aug' => 'Aug',
 		'august' => 'August',
 		'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' => '\\J\\u\\l\\i',
 		'jul' => 'Jul',
 		'july' => 'Juli',
+		'Jun' => '\\J\\u\\n\\i',
 		'jun' => 'Jun',
 		'june' => 'Juni',
 		'last_3_month' => 'Letzte drei Monate',
@@ -78,17 +73,22 @@ 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' => '\\M\\a\\i',
 		'may' => 'Mai',
 		'may_' => 'Mai',
 		'mon' => 'Mo',
 		'month' => 'Monat(en)',
+		'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r',
 		'nov' => 'Nov',
 		'november' => 'November',
+		'Oct' => '\\O\\k\\t\\o\\b\\e\\r',
 		'oct' => 'Okt',
 		'october' => 'Oktober',
 		'sat' => 'Sa',
+		'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r',
 		'sep' => 'Sep',
 		'september' => 'September',
 		'sun' => 'So',

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

@@ -53,11 +53,11 @@ return array(
 		'starred' => 'Nur Favoriten zeigen',
 		'stats' => 'Statistiken',
 		'subscription' => 'Abonnementverwaltung',
-		'tags' => 'My labels',	//TODO
+		'tags' => 'My labels',	//TODO - Translation
 		'unread' => 'Nur ungelesene zeigen',
 	),
 	'share' => 'Teilen',
 	'tag' => array(
-		'related' => 'Verwandte Tags',	//TODO
+		'related' => 'Verwandte Tags',
 	),
 );

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

@@ -24,8 +24,8 @@ return array(
 			'ok' => 'Datenbank-Konfiguration ist gespeichert worden.',
 		),
 		'host' => 'Host',
-		'prefix' => 'Tabellen-Präfix',
 		'password' => 'SQL-Password',
+		'prefix' => 'Tabellen-Präfix',
 		'type' => 'Datenbank-Typ',
 		'username' => 'SQL-Nutzername',
 	),

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

@@ -45,6 +45,7 @@ return array(
 			'main_stream' => 'In Haupt-Feeds zeigen',
 			'normal' => 'Zeige in eigener Kategorie',
 		),
+		'pubsubhubbub' => 'Sofortbenachrichtigung mit PubSubHubbub',
 		'ssl_verify' => 'Überprüfe SSL Sicherheit',
 		'stats' => 'Statistiken',
 		'think_to_add' => 'Sie können Feeds hinzufügen.',
@@ -55,7 +56,6 @@ return array(
 		'url' => 'Feed-URL',
 		'validator' => 'Überprüfen Sie die Gültigkeit des Feeds',
 		'website' => 'Webseiten-URL',
-		'pubsubhubbub' => 'Sofortbenachrichtigung mit PubSubHubbub',
 	),
 	'firefox' => array(
 		'documentation' => 'Folge den <a href="https://developer.mozilla.org/en-US/Firefox/Releases/2/Adding_feed_readers_to_Firefox#Adding_a_new_feed_reader_manually">hier</a> beschriebenen Schritten um FreshRSS zu Deiner Firefox RSS-Reader Liste hinzuzufügen.',

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

@@ -106,23 +106,23 @@ return array(
 		),
 	),
 	'extensions' => array(
+		'author' => 'Author',
+		'community' => 'Available community extensions',
+		'description' => 'Description',
 		'disabled' => 'Disabled',
 		'empty_list' => 'There are no installed extensions',
 		'enabled' => 'Enabled',
+		'latest' => 'Installed',
+		'name' => 'Name',
 		'no_configure_view' => 'This extension cannot be configured.',
 		'system' => array(
 			'_' => 'System extensions',
 			'no_rights' => 'System extension (you have no rights on it)',
 		),
 		'title' => 'Extensions',
+		'update' => 'Update available',
 		'user' => 'User extensions',
-		'community' => 'Available community extensions',
-		'name' => 'Name',
 		'version' => 'Version',
-		'description' => 'Description',
-		'author' => 'Author',
-		'latest' => 'Installed',
-		'update' => 'Update available',
 	),
 	'stats' => array(
 		'_' => 'Statistics',

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

@@ -28,6 +28,7 @@ return array(
 			'seconds' => 'seconds (0 means no timeout)',
 			'timeout' => 'HTML5 notification timeout',
 		),
+		'show_nav_buttons' => 'Show the navigation buttons',
 		'theme' => 'Theme',
 		'title' => 'Display',
 		'width' => array(
@@ -37,7 +38,17 @@ return array(
 			'no_limit' => 'No limit',
 			'thin' => 'Thin',
 		),
-		'show_nav_buttons' => 'Show the navigation buttons',
+	),
+	'profile' => array(
+		'_' => 'Profile management',
+		'delete' => array(
+			'_' => 'Account deletion',
+			'warn' => 'Your account and all related data will be deleted.',
+		),
+		'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',
 	),
 	'query' => array(
 		'_' => 'User queries',
@@ -73,31 +84,19 @@ return array(
 		'state_15' => 'Display all articles',
 		'title' => 'User queries',
 	),
-	'profile' => array(
-		'_' => 'Profile management',
-		'delete' => array(
-			'_' => 'Account deletion',
-			'warn' => 'Your account and all related data will be deleted.',
-		),
-		'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',
-	),
 	'reading' => array(
 		'_' => 'Reading',
 		'after_onread' => 'After “mark all as read”,',
 		'articles_per_page' => 'Number of articles per page',
 		'auto_load_more' => 'Load more articles at the page bottom',
 		'auto_remove_article' => 'Hide articles after reading',
-		'mark_updated_article_unread' => 'Mark updated articles as unread',
 		'confirm_enabled' => 'Display a confirmation dialog on “mark all as read” actions',
 		'display_articles_unfolded' => 'Show articles unfolded by default',
 		'display_categories_unfolded' => 'Show categories folded by default',
 		'hide_read_feeds' => 'Hide categories & feeds with no unread articles (does not work with “Show all articles” configuration)',
 		'img_with_lazyload' => 'Use "lazy load" mode to load pictures',
-		'sides_close_article' => 'Clicking outside of article text area closes the article',
 		'jump_next' => 'jump to next unread sibling (feed or category)',
+		'mark_updated_article_unread' => 'Mark updated articles as unread',
 		'number_divided_when_reader' => 'Divided by 2 in the reading view.',
 		'read' => array(
 			'article_open_on_website' => 'when article is opened on its original website',
@@ -112,6 +111,7 @@ return array(
 			'all_articles' => 'Show all articles',
 			'unread' => 'Show only unread',
 		),
+		'sides_close_article' => 'Clicking outside of article text area closes the article',
 		'sort' => array(
 			'_' => 'Sort order',
 			'newer_first' => 'Newest first',
@@ -158,8 +158,8 @@ return array(
 		'javascript' => 'JavaScript must be enabled in order to use shortcuts',
 		'last_article' => 'Skip to the last article',
 		'load_more' => 'Load more articles',
-		'mark_read' => 'Mark as read',
 		'mark_favorite' => 'Mark as favourite',
+		'mark_read' => 'Mark as read',
 		'navigation' => 'Navigation',
 		'navigation_help' => 'With the "Shift" modifier, navigation shortcuts apply on feeds.<br/>With the "Alt" modifier, navigation shortcuts apply on categories.',
 		'next_article' => 'Skip to the next article',

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

@@ -50,6 +50,10 @@ return array(
 		'no_zip_extension' => 'ZIP extension is not present on your server.',
 		'zip_error' => 'An error occured during ZIP import.',
 	),
+	'profile' => array(
+		'error' => 'Your profile cannot be modified',
+		'updated' => 'Your profile has been modified',
+	),
 	'sub' => array(
 		'actualize' => 'Updating',
 		'articles' => array(
@@ -109,8 +113,4 @@ return array(
 			'error' => 'User %s has not been updated',
 		),
 	),
-	'profile' => array(
-		'error' => 'Your profile cannot be modified',
-		'updated' => 'Your profile has been modified',
-	),
 );

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

@@ -44,33 +44,28 @@ return array(
 	),
 	'date' => array(
 		'Apr' => '\\A\\p\\r\\i\\l',
-		'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' => '\\A\\u\\g\\u\\s\\t',
 		'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' => '\\J\\u\\l\\y',
 		'jul' => 'July',
 		'july' => 'July',
+		'Jun' => '\\J\\u\\n\\e',
 		'jun' => 'June',
 		'june' => 'June',
 		'last_3_month' => 'Last three months',
@@ -78,16 +73,21 @@ 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' => '\\M\\a\\y',
 		'may' => 'May',
 		'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',
+		'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r',
 		'sat' => 'Sat',
 		'sep' => 'Sept.',
 		'september' => 'September',

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

@@ -58,6 +58,6 @@ return array(
 	),
 	'share' => 'Share',
 	'tag' => array(
-		'related' => 'Article tags',	//TODO
+		'related' => 'Article tags',
 	),
 );

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

@@ -24,8 +24,8 @@ return array(
 			'ok' => 'Database configuration has been saved.',
 		),
 		'host' => 'Host',
-		'prefix' => 'Table prefix',
 		'password' => 'Database password',
+		'prefix' => 'Table prefix',
 		'type' => 'Type of database',
 		'username' => 'Database username',
 	),
@@ -69,8 +69,8 @@ return array(
 			'ok' => 'You have a recommended library to parse JSON.',
 		),
 		'mbstring' => array(
-			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO
-			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO
+			'nok' => 'Cannot find the recommended library mbstring for Unicode.',
+			'ok' => 'You have the recommended library mbstring for Unicode.',
 		),
 		'minz' => array(
 			'nok' => 'Cannot find the Minz framework.',

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

@@ -45,6 +45,7 @@ return array(
 			'main_stream' => 'Show in main stream',
 			'normal' => 'Show in its category',
 		),
+		'pubsubhubbub' => 'Instant notification with PubSubHubbub',
 		'ssl_verify' => 'Verify SSL security',
 		'stats' => 'Statistics',
 		'think_to_add' => 'You may add some feeds.',
@@ -55,7 +56,6 @@ return array(
 		'url' => 'Feed URL',
 		'validator' => 'Check the validity of the feed',
 		'website' => 'Website URL',
-		'pubsubhubbub' => 'Instant notification with PubSubHubbub',
 	),
 	'firefox' => array(
 		'documentation' => 'Follow the steps described <a href="https://developer.mozilla.org/en-US/Firefox/Releases/2/Adding_feed_readers_to_Firefox#Adding_a_new_feed_reader_manually">here</a> to add FreshRSS to Firefox feed reader list.',

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

@@ -67,8 +67,8 @@ return array(
 			'ok' => 'Dispones de la extensión JSON.',
 		),
 		'mbstring' => array(
-			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO
-			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO
+			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO - Translation
+			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO - Translation
 		),
 		'minz' => array(
 			'nok' => 'No se ha podido localizar el entorno Minz.',
@@ -106,23 +106,23 @@ return array(
 		),
 	),
 	'extensions' => array(
+		'author' => 'Author',	//TODO - Translation
+		'community' => 'Available community extensions',	//TODO - Translation
+		'description' => 'Description',	//TODO - Translation
 		'disabled' => 'Desactivado',
 		'empty_list' => 'No hay extensiones instaladas',
 		'enabled' => 'Activado',
+		'latest' => 'Installed',	//TODO - Translation
+		'name' => 'Name',	//TODO - Translation
 		'no_configure_view' => 'Esta extensión no puede ser configurada.',
 		'system' => array(
 			'_' => 'Sistema de extensiones',
 			'no_rights' => 'Sistema de extensiones (careces de los permisos necesarios)',
 		),
 		'title' => 'Extensiones',
+		'update' => 'Update available',	//TODO - Translation
 		'user' => 'Extensiones de usuario',
-		'community' => 'Available community extensions', // @todo translate
-		'name' => 'Name', // @todo translate
-		'version' => 'Version', // @todo translate
-		'description' => 'Description', // @todo translate
-		'author' => 'Author', // @todo translate
-		'latest' => 'Installed', // @todo translate
-		'update' => 'Update available', // @todo translate
+		'version' => 'Version',	//TODO - Translation
 	),
 	'stats' => array(
 		'_' => 'Estadísticas',
@@ -179,15 +179,15 @@ return array(
 	'user' => array(
 		'articles_and_size' => '%s articles (%s)',
 		'create' => 'Crear nuevo usuario',
-		'delete_users' => 'Delete user', // TODO
+		'delete_users' => 'Delete user',	//TODO - Translation
 		'language' => 'Idioma',
 		'number' => 'Hay %d cuenta creada',
 		'numbers' => 'Hay %d cuentas creadas',
 		'password_form' => 'Contraseña<br /><small>(para el método de identificación por formulario web)</small>',
 		'password_format' => 'Mínimo de 7 caracteres',
-		'selected' => 'Selected user', // TODO
+		'selected' => 'Selected user',	//TODO - Translation
 		'title' => 'Administrar usuarios',
-		'update_users' => 'Update user', // TODO
+		'update_users' => 'Update user',	//TODO - Translation
 		'user_list' => 'Lista de usuarios',
 		'username' => 'Nombre de usuario',
 		'users' => 'Usuarios',

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

@@ -19,7 +19,7 @@ return array(
 			'bottom_line' => 'Línea inferior',
 			'entry' => 'Iconos de artículos',
 			'publication_date' => 'Fecha de publicación',
-			'related_tags' => 'Etiquetas relacionadas',	//TODO
+			'related_tags' => 'Etiquetas relacionadas',
 			'sharing' => 'Compartir',
 			'top_line' => 'Línea superior',
 		),
@@ -28,6 +28,7 @@ return array(
 			'seconds' => 'segundos (0 significa sin límite de espera)',
 			'timeout' => 'Notificación de fin de espera HTML5',
 		),
+		'show_nav_buttons' => 'Show the navigation buttons',	//TODO - Translation
 		'theme' => 'Tema',
 		'title' => 'Visualización',
 		'width' => array(
@@ -37,12 +38,22 @@ return array(
 			'no_limit' => 'Sin límite',
 			'thin' => 'Estrecho',
 		),
-		'show_nav_buttons' => 'Show the navigation buttons',	//TODO
+	),
+	'profile' => array(
+		'_' => 'Administración de perfiles',
+		'delete' => array(
+			'_' => 'Borrar cuenta',
+			'warn' => 'Tu cuenta y todos los datos asociados serán eliminados.',
+		),
+		'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',
 	),
 	'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
+		'display' => 'Display user query results',	//TODO - Translation
 		'filter' => 'Filtro aplicado:',
 		'get_all' => 'Mostrar todos los artículos',
 		'get_category' => 'Mostrar la categoría "%s"',
@@ -53,7 +64,7 @@ return array(
 		'number' => 'Consulta n° %d',
 		'order_asc' => 'Mostrar primero los artículos más antiguos',
 		'order_desc' => 'Mostrar primero los artículos más recientes',
-		'remove' => 'Remove user query', // TODO
+		'remove' => 'Remove user query',	//TODO - Translation
 		'search' => 'Buscar "%s"',
 		'state_0' => 'Mostrar todos los artículos',
 		'state_1' => 'Mostrar artículos leídos',
@@ -73,31 +84,19 @@ return array(
 		'state_15' => 'Mostrar todos los artículos',
 		'title' => 'Consultas de usuario',
 	),
-	'profile' => array(
-		'_' => 'Administración de perfiles',
-		'delete' => array(
-			'_' => 'Borrar cuenta',
-			'warn' => 'Tu cuenta y todos los datos asociados serán eliminados.',
-		),
-		'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',
-	),
 	'reading' => array(
 		'_' => 'Lectura',
 		'after_onread' => 'Tras “marcar todo como leído”,',
 		'articles_per_page' => 'Número de artículos por página',
 		'auto_load_more' => 'Cargar más artículos al final de la página',
 		'auto_remove_article' => 'Ocultar artículos tras la lectura',
-		'mark_updated_article_unread' => 'Marcar artículos actualizados como no leídos',
 		'confirm_enabled' => 'Mostrar ventana de confirmación al usar la función “marcar todos como leídos”',
 		'display_articles_unfolded' => 'Mostrar los artículos sin expandir por defecto',
 		'display_categories_unfolded' => 'Mostrar categorías expandidas por defecto',
 		'hide_read_feeds' => 'Ocultar categorías & fuentes sin artículos no leídos (no funciona con la configuración "Mostrar todos los artículos")',
 		'img_with_lazyload' => 'Usar el modo de "carga perezosa" para las imágenes',
-		'sides_close_article' => 'Pinchar fuera del área de texto del artículo lo cerrará',
 		'jump_next' => 'saltar al siguiente archivo sin leer emparentado (fuente o categoría)',
+		'mark_updated_article_unread' => 'Marcar artículos actualizados como no leídos',
 		'number_divided_when_reader' => 'Dividido en 2 en la vista de lectura.',
 		'read' => array(
 			'article_open_on_website' => 'cuando el artículo se abra en su web original',
@@ -112,6 +111,7 @@ return array(
 			'all_articles' => 'Mostrar todos los artículos',
 			'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',
@@ -128,7 +128,7 @@ return array(
 	),
 	'sharing' => array(
 		'_' => 'Compartir',
-		'add' => 'Add a sharing method', // TODO
+		'add' => 'Add a sharing method',	//TODO - Translation
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
 		'email' => 'Email',
@@ -136,7 +136,7 @@ return array(
 		'g+' => 'Google+',
 		'more_information' => 'Más información',
 		'print' => 'Print',
-		'remove' => 'Remove sharing method', // TODO
+		'remove' => 'Remove sharing method',	//TODO - Translation
 		'shaarli' => 'Shaarli',
 		'share_name' => 'Compartir nombre a mostrar',
 		'share_url' => 'Compatir URL a usar',
@@ -153,27 +153,27 @@ return array(
 		'collapse_article' => 'Contraer',
 		'first_article' => 'Saltar al primer artículo',
 		'focus_search' => 'Acceso a la casilla de búsqueda',
-		'global_view' => 'Switch to global view', // TODO
+		'global_view' => 'Switch to global view',	//TODO - Translation
 		'help' => 'Mostrar documentación',
 		'javascript' => 'JavaScript debe estar activado para poder usar atajos de teclado',
 		'last_article' => 'Saltar al último artículo',
 		'load_more' => 'Cargar más artículos',
-		'mark_read' => 'Marcar como leído',
 		'mark_favorite' => 'Marcar como favorito',
+		'mark_read' => 'Marcar como leído',
 		'navigation' => 'Navegación',
 		'navigation_help' => 'Con el modificador "Mayúsculas" es posible usar los atajos de teclado en las fuentes.<br/>Con el modificador "Alt" es posible aplicar los atajos de teclado en las categorías.',
 		'next_article' => 'Saltar al siguiente artículo',
-		'normal_view' => 'Switch to normal view', // TODO
+		'normal_view' => 'Switch to normal view',	//TODO - Translation
 		'other_action' => 'Otras acciones',
 		'previous_article' => 'Saltar al artículo anterior',
-		'reading_view' => 'Switch to reading view', // TODO
-		'rss_view' => 'Open RSS view in a new tab', // TODO
+		'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' => '+ <code>mayúsculas</code> para marcar todos los artículos como leídos',
 		'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
+		'views' => 'Views',	//TODO - Translation
 	),
 	'user' => array(
 		'articles_and_size' => '%s artículos (%s)',

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

@@ -50,11 +50,15 @@ return array(
 		'no_zip_extension' => 'La extensión ZIP no está disponible en tu servidor.',
 		'zip_error' => 'Hubo un error durante la importación ZIP.',
 	),
+	'profile' => array(
+		'error' => 'Tu perfil no puede ser modificado',
+		'updated' => 'Tu perfil ha sido modificado',
+	),
 	'sub' => array(
 		'actualize' => 'Actualización',
 		'articles' => array(
-			'marked_read' => 'The selected articles have been marked as read.',	//TODO
-			'marked_unread' => 'The articles have been marked as unread.',	//TODO
+			'marked_read' => 'The selected articles have been marked as read.',	//TODO - Translation
+			'marked_unread' => 'The articles have been marked as unread.',	//TODO - Translation
 		),
 		'category' => array(
 			'created' => 'Se ha creado la categoría %s.',
@@ -76,7 +80,7 @@ return array(
 			'already_subscribed' => 'Ya estás suscrito a <em>%s</em>',
 			'deleted' => 'Fuente eliminada',
 			'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.', // @todo
+			'internal_problem' => 'No ha sido posible agregar la fuente RSS. <a href="%s">Revisa el registro de FreshRSS </a> para más información.',	//TODO - Translation
 			'invalid_url' => 'La URL <em>%s</em> es inválida',
 			'n_actualized' => 'Se han actualiado %d fuentes',
 			'n_entries_deleted' => 'Se han eliminado %d artículos',
@@ -105,12 +109,8 @@ return array(
 			'error' => 'El usuario %s no ha podido ser eliminado',
 		),
 		'updated' => array(
-			'_' => 'User %s has been updated', // TODO
-			'error' => 'User %s has not been updated', // TODO
+			'_' => 'User %s has been updated',	//TODO - Translation
+			'error' => 'User %s has not been updated',	//TODO - Translation
 		),
 	),
-	'profile' => array(
-		'error' => 'Tu perfil no puede ser modificado',
-		'updated' => 'Tu perfil ha sido modificado',
-	),
 );

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

@@ -19,7 +19,7 @@ return array(
 		'see_website' => 'Ver web',
 		'submit' => 'Enviar',
 		'truncate' => 'Borrar todos los artículos',
-		'update' => 'Update', // TODO
+		'update' => 'Update',	//TODO - Translation
 	),
 	'auth' => array(
 		'email' => 'Correo electrónico',
@@ -44,33 +44,28 @@ return array(
 	),
 	'date' => array(
 		'Apr' => '\\A\\b\\r\\i\\l',
-		'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' => '\\A\\g\\o\\s\\t\\o',
 		'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',
 		'format_date_hour' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y \\a\\t H\\:i',
 		'fri' => 'Vie',
+		'Jan' => '\\E\\n\\e\\r\\o',
 		'jan' => 'ene',
 		'january' => 'ene',
+		'Jul' => '\\J\\u\\l\\i\\o',
 		'jul' => 'jul',
 		'july' => 'julio',
+		'Jun' => '\\J\\u\\n\\i\\o',
 		'jun' => 'jun',
 		'june' => 'junio',
 		'last_3_month' => 'Últimos tres meses',
@@ -78,17 +73,22 @@ 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' => '\\M\\a\\y\\o',
 		'may' => 'mayo',
 		'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',
@@ -161,7 +161,6 @@ return array(
 		'previous' => 'Anterior',
 	),
 	'share' => array(
-		'Known' => 'Known based sites',
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
 		'email' => 'Email',
@@ -169,6 +168,7 @@ return array(
 		'g+' => 'Google+',
 		'gnusocial' => 'GNU social',
 		'jdh' => 'Journal du hacker',
+		'Known' => 'Known based sites',
 		'linkedin' => 'LinkedIn',
 		'mastodon' => 'Mastodon',
 		'movim' => 'Movim',

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

@@ -40,7 +40,7 @@ return array(
 		'mark_all_read' => 'Marcar todo como leído',
 		'mark_cat_read' => 'Marcar categoría como leída',
 		'mark_feed_read' => 'Marcar fuente como leída',
-		'mark_selection_unread' => 'Mark selection as unread',	//TODO
+		'mark_selection_unread' => 'Mark selection as unread',	//TODO - Translation
 		'newer_first' => 'Nuevos primero',
 		'non-starred' => 'Mostrar todos menos los favoritos',
 		'normal_view' => 'Vista normal',
@@ -53,11 +53,11 @@ return array(
 		'starred' => 'Mostrar solo los favoritos',
 		'stats' => 'Estadísticas',
 		'subscription' => 'Administración de suscripciones',
-		'tags' => 'My labels',	//TODO
+		'tags' => 'My labels',	//TODO - Translation
 		'unread' => 'Mostar solo no leídos',
 	),
 	'share' => 'Compartir',
 	'tag' => array(
-		'related' => 'Etiquetas relacionadas',	//TODO
+		'related' => 'Etiquetas relacionadas',	//TODO - Translation
 	),
 );

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

@@ -24,8 +24,8 @@ return array(
 			'ok' => 'La configuración de la base de datos ha sido guardada.',
 		),
 		'host' => 'Servidor',
-		'prefix' => 'Prefijo de la tabla',
 		'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',
 	),
@@ -69,8 +69,8 @@ return array(
 			'ok' => 'Dispones de la librería recomendada para procesar JSON.',
 		),
 		'mbstring' => array(
-			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO
-			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO
+			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO - Translation
+			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO - Translation
 		),
 		'minz' => array(
 			'nok' => 'No se ha podido localizar el entorno Minz.',

+ 21 - 10
app/i18n/es/sub.php

@@ -2,8 +2,13 @@
 
 return array(
 	'api' => array(
-		'documentation' => 'Copy the following URL to use it within an external tool.',// TODO
-		'title' => 'API',// TODO
+		'documentation' => 'Copy the following URL to use it within an external tool.',	//TODO - Translation
+		'title' => 'API',	//TODO - Translation
+	),
+	'bookmarklet' => array(
+		'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose "Bookmark This Link". Then click "Subscribe" button in any page you want to subscribe to.',	//TODO - Translation
+		'label' => 'Subscribe',	//TODO - Translation
+		'title' => 'Bookmarklet',	//TODO - Translation
 	),
 	'category' => array(
 		'_' => 'Categoría',
@@ -22,7 +27,7 @@ return array(
 			'password' => 'Contraseña HTTP',
 			'username' => 'Nombre de usuario HTTP',
 		),
-		'clear_cache' => 'Always clear cache',	//TODO
+		'clear_cache' => 'Always clear cache',	//TODO - Translation
 		'css_help' => 'Recibir fuentes RSS truncadas (aviso, ¡necesita más tiempo!)',
 		'css_path' => 'Ruta a la CSS de los artículos en la web original',
 		'description' => 'Descripción',
@@ -31,26 +36,30 @@ return array(
 		'informations' => 'Información',
 		'keep_history' => 'Número mínimo de artículos a conservar',
 		'moved_category_deleted' => 'Al borrar una categoría todas sus fuentes pasan automáticamente a la categoría <em>%s</em>.',
-		'mute' => 'mute', // TODO
+		'mute' => 'mute',	//TODO - Translation
 		'no_selected' => 'No hay funentes seleccionadas.',
 		'number_entries' => '%d artículos',
 		'priority' => array(
-			'_' => 'Visibility', // TODO
-			'archived' => 'Do not show (archived)', // TODO
+			'_' => 'Visibility',	//TODO - Translation
+			'archived' => 'Do not show (archived)',	//TODO - Translation
 			'main_stream' => 'Mostrar en salida principal',
-			'normal' => 'Show in its category', // TODO
+			'normal' => 'Show in its category',	//TODO - Translation
 		),
-		'ssl_verify' => 'Verify SSL security',	//TODO
+		'pubsubhubbub' => 'Notificación inmedaiata con PubSubHubbub',
+		'ssl_verify' => 'Verify SSL security',	//TODO - Translation
 		'stats' => 'Estadísticas',
 		'think_to_add' => 'Puedes añadir fuentes.',
-		'timeout' => 'Timeout in seconds',	//TODO
+		'timeout' => 'Timeout in seconds',	//TODO - Translation
 		'title' => 'Título',
 		'title_add' => 'Añadir fuente RSS',
 		'ttl' => 'No actualizar de forma automática con una frecuencia mayor a',
 		'url' => 'URL de la fuente',
 		'validator' => 'Verifica la validez de la fuente',
 		'website' => 'Web de la URL',
-		'pubsubhubbub' => 'Notificación inmedaiata con PubSubHubbub',
+	),
+	'firefox' => array(
+		'documentation' => 'Follow the steps described <a href="https://developer.mozilla.org/en-US/Firefox/Releases/2/Adding_feed_readers_to_Firefox#Adding_a_new_feed_reader_manually">here</a> to add FreshRSS to Firefox feed reader list.',	//TODO - Translation
+		'title' => 'Firefox feed reader',	//TODO - Translation
 	),
 	'import_export' => array(
 		'export' => 'Exportar',
@@ -67,9 +76,11 @@ return array(
 		'bookmark' => 'Suscribirse (favorito FreshRSS)',
 		'import_export' => 'Importar / exportar',
 		'subscription_management' => 'Administración de suscripciones',
+		'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
 	),
 );

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

@@ -106,23 +106,23 @@ return array(
 		),
 	),
 	'extensions' => array(
+		'author' => 'Auteur',
+		'community' => 'Extensions utilisateur disponibles',
+		'description' => 'Description',
 		'disabled' => 'Désactivée',
 		'empty_list' => 'Aucune extension installée',
 		'enabled' => 'Activée',
+		'latest' => 'Installée',
+		'name' => 'Nom',
 		'no_configure_view' => 'Cette extension n’a pas à être configurée',
 		'system' => array(
 			'_' => 'Extensions système',
 			'no_rights' => 'Extensions système (contrôlées par l’administrateur)',
 		),
 		'title' => 'Extensions',
+		'update' => 'Mise à jour disponible',
 		'user' => 'Extensions utilisateur',
-		'community' => 'Extensions utilisateur disponibles',
-		'name' => 'Nom',
 		'version' => 'Version',
-		'description' => 'Description',
-		'author' => 'Auteur',
-		'latest' => 'Installée',
-		'update' => 'Mise à jour disponible',
 	),
 	'stats' => array(
 		'_' => 'Statistiques',

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

@@ -28,6 +28,7 @@ return array(
 			'seconds' => 'secondes (0 signifie aucun timeout)',
 			'timeout' => 'Temps d’affichage de la notification HTML5',
 		),
+		'show_nav_buttons' => 'Afficher les boutons de navigation',
 		'theme' => 'Thème',
 		'title' => 'Affichage',
 		'width' => array(
@@ -37,7 +38,17 @@ return array(
 			'no_limit' => 'Pas de limite',
 			'thin' => 'Fine',
 		),
-		'show_nav_buttons' => 'Afficher les boutons de navigation',
+	),
+	'profile' => array(
+		'_' => 'Gestion du profil',
+		'delete' => array(
+			'_' => 'Suppression du compte',
+			'warn' => 'Le compte et toutes les données associées vont être supprimées.',
+		),
+		'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',
 	),
 	'query' => array(
 		'_' => 'Filtres utilisateurs',
@@ -73,31 +84,19 @@ return array(
 		'state_15' => 'Afficher tous les articles',
 		'title' => 'Filtres utilisateurs',
 	),
-	'profile' => array(
-		'_' => 'Gestion du profil',
-		'delete' => array(
-			'_' => 'Suppression du compte',
-			'warn' => 'Le compte et toutes les données associées vont être supprimées.',
-		),
-		'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',
-	),
 	'reading' => array(
 		'_' => 'Lecture',
 		'after_onread' => 'Après “marquer tout comme lu”,',
 		'articles_per_page' => 'Nombre d’articles par page',
 		'auto_load_more' => 'Charger les articles suivants en bas de page',
 		'auto_remove_article' => 'Cacher les articles après lecture',
-		'mark_updated_article_unread' => 'Marquer les articles mis à jour comme non-lus',
 		'confirm_enabled' => 'Afficher une confirmation lors des actions “marquer tout comme lu”',
 		'display_articles_unfolded' => 'Afficher les articles dépliés par défaut',
 		'display_categories_unfolded' => 'Afficher les catégories pliées par défaut',
 		'hide_read_feeds' => 'Cacher les catégories & flux sans article non-lu (ne fonctionne pas avec la configuration “Afficher tous les articles”)',
 		'img_with_lazyload' => 'Utiliser le mode “chargement différé” pour les images',
-		'sides_close_article' => 'Cliquer hors de la zone de texte ferme l’article',
 		'jump_next' => 'sauter au prochain voisin non lu (flux ou catégorie)',
+		'mark_updated_article_unread' => 'Marquer les articles mis à jour comme non-lus',
 		'number_divided_when_reader' => 'Divisé par 2 dans la vue de lecture.',
 		'read' => array(
 			'article_open_on_website' => 'lorsque l’article est ouvert sur le site d’origine',
@@ -112,6 +111,7 @@ return array(
 			'all_articles' => 'Afficher tous les articles',
 			'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',
@@ -158,8 +158,8 @@ return array(
 		'javascript' => 'Le JavaScript doit être activé pour pouvoir profiter des raccourcis.',
 		'last_article' => 'Passer au dernier article',
 		'load_more' => 'Charger plus d’articles',
-		'mark_read' => 'Marquer comme lu',
 		'mark_favorite' => 'Mettre en favori',
+		'mark_read' => 'Marquer comme lu',
 		'navigation' => 'Navigation',
 		'navigation_help' => 'Avec le modificateur "Shift", les raccourcis de navigation s’appliquent aux flux.<br/>Avec le modificateur "Alt", les raccourcis de navigation s’appliquent aux catégories.',
 		'next_article' => 'Passer à l’article suivant',

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

@@ -50,6 +50,10 @@ return array(
 		'no_zip_extension' => 'L’extension ZIP n’est pas présente sur votre serveur.',
 		'zip_error' => 'Une erreur est survenue durant l’import du fichier ZIP.',
 	),
+	'profile' => array(
+		'error' => 'Votre profil n’a pas pu être mis à jour',
+		'updated' => 'Votre profil a été mis à jour',
+	),
 	'sub' => array(
 		'actualize' => 'Actualiser',
 		'articles' => array(
@@ -109,8 +113,4 @@ return array(
 			'error' => 'L’utilisateur %s n’a pas été mis à jour',
 		),
 	),
-	'profile' => array(
-		'error' => 'Votre profil n’a pas pu être mis à jour',
-		'updated' => 'Votre profil a été mis à jour',
-	),
 );

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

@@ -44,33 +44,28 @@ return array(
 	),
 	'date' => array(
 		'Apr' => '\\a\\v\\r\\i\\l',
-		'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' => '\\a\\o\\û\\t',
 		'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' => '\\j\\u\\i\\l\\l\\e\\t',
 		'jul' => 'jui.',
 		'july' => 'juillet',
+		'Jun' => '\\j\\u\\i\\n',
 		'jun' => 'juin',
 		'june' => 'juin',
 		'last_3_month' => 'Depuis les trois derniers mois',
@@ -78,17 +73,22 @@ 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' => '\\m\\a\\i',
 		'may' => 'mai',
 		'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.',
@@ -161,7 +161,6 @@ return array(
 		'previous' => 'Précédent',
 	),
 	'share' => array(
-		'Known' => 'Sites basés sur Known',
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
 		'email' => 'Courriel',
@@ -169,6 +168,7 @@ return array(
 		'g+' => 'Google+',
 		'gnusocial' => 'GNU social',
 		'jdh' => 'Journal du hacker',
+		'Known' => 'Sites basés sur Known',
 		'linkedin' => 'LinkedIn',
 		'mastodon' => 'Mastodon',
 		'movim' => 'Movim',

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

@@ -45,6 +45,7 @@ return array(
 			'main_stream' => 'Afficher dans le flux principal',
 			'normal' => 'Afficher dans sa catégorie',
 		),
+		'pubsubhubbub' => 'Notification instantanée par PubSubHubbub',
 		'ssl_verify' => 'Vérification sécurité SSL',
 		'stats' => 'Statistiques',
 		'think_to_add' => 'Vous pouvez ajouter des flux.',
@@ -55,7 +56,6 @@ return array(
 		'url' => 'URL du flux',
 		'validator' => 'Vérifier la validité du flux',
 		'website' => 'URL du site',
-		'pubsubhubbub' => 'Notification instantanée par PubSubHubbub',
 	),
 	'firefox' => array(
 		'documentation' => 'Suivre les étapes décrites <a href="https://developer.mozilla.org/en-US/Firefox/Releases/2/Adding_feed_readers_to_Firefox#Adding_a_new_feed_reader_manually">ici</a> pour ajouter FreshRSS à la liste des lecteurs de flux dans Firefox.',

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

@@ -8,10 +8,10 @@ return array(
 		'form' => 'טופס אינטרנטי (מסורתי, דורש JavaScript)',
 		'http' => 'HTTP (למשתמשים מתקדמים עם HTTPS)',
 		'none' => 'ללא (מסוכן)',
-		'title' => 'Authentication', // @todo
+		'title' => 'Authentication',	//TODO - Translation
 		'title_reset' => 'איפוס אימות',
 		'token' => 'מחרוזת אימות',
-		'token_help' => 'Allows to access RSS output of the default user without authentication:', // @todo
+		'token_help' => 'Allows to access RSS output of the default user without authentication:',	//TODO - Translation
 		'type' => 'שיטת אימות',
 		'unsafe_autologin' => 'הרשאה להתחברות אוטומטית בפורמט: ',
 	),
@@ -21,12 +21,12 @@ return array(
 			'ok' => 'ההרשאות בתיקיית המטמון תקינות',
 		),
 		'categories' => array(
-			'nok' => 'Category table is bad configured.', // @todo
-			'ok' => 'Category table is ok.', // @todo
+			'nok' => 'Category table is bad configured.',	//TODO - Translation
+			'ok' => 'Category table is ok.',	//TODO - Translation
 		),
 		'connection' => array(
-			'nok' => 'Connection to the database cannot being established.', // @todo
-			'ok' => 'Connection to the database is ok.', // @todo
+			'nok' => 'Connection to the database cannot being established.',	//TODO - Translation
+			'ok' => 'Connection to the database is ok.',	//TODO - Translation
 		),
 		'ctype' => array(
 			'nok' => 'הספרייה הנדרשת ל character type checking (php-ctype) אינה מותקנת',
@@ -34,44 +34,44 @@ return array(
 		),
 		'curl' => array(
 			'nok' => 'בURL לא מותקן (php-curl package)',
-			'ok' => 'You have cURL extension.', // @todo
+			'ok' => 'You have cURL extension.',	//TODO - Translation
 		),
 		'data' => array(
 			'nok' => 'יש לבדוק את ההרשאות בתיקייה <em>%s</em>. שרת הHTTP חייב להיות בעל הרשאות כתיבה.',
 			'ok' => 'ההרשאות בתיקיית הדאטא תקינות',
 		),
-		'database' => 'Database installation', // @todo
+		'database' => 'Database installation',	//TODO - Translation
 		'dom' => array(
 			'nok' => 'הספרייה הנדרשת לסיור ב DOM אינה מותקנת  (php-xml package)',
 			'ok' => 'הספרייה הנדרשת לסיור ב DOM מותקנת',
 		),
 		'entries' => array(
-			'nok' => 'Entry table is bad configured.', // @todo
-			'ok' => 'Entry table is ok.', // @todo
+			'nok' => 'Entry table is bad configured.',	//TODO - Translation
+			'ok' => 'Entry table is ok.',	//TODO - Translation
 		),
 		'favicons' => array(
-			'nok' => 'Check permissions on <em>./data/favicons</em> directory. HTTP server must have rights to write into', // @todo
+			'nok' => 'Check permissions on <em>./data/favicons</em> directory. HTTP server must have rights to write into',	//TODO - Translation
 			'ok' => 'ההרשאות בתיקיית הfavicons תקינות',
 		),
 		'feeds' => array(
-			'nok' => 'Feed table is bad configured.', // @todo
-			'ok' => 'Feed table is ok.', // @todo
+			'nok' => 'Feed table is bad configured.',	//TODO - Translation
+			'ok' => 'Feed table is ok.',	//TODO - Translation
 		),
 		'fileinfo' => array(
-			'nok' => 'Cannot find the PHP fileinfo library (fileinfo package).', // @todo
-			'ok' => 'You have the fileinfo library.', // @todo
+			'nok' => 'Cannot find the PHP fileinfo library (fileinfo package).',	//TODO - Translation
+			'ok' => 'You have the fileinfo library.',	//TODO - Translation
 		),
-		'files' => 'File installation', // @todo
+		'files' => 'File installation',	//TODO - Translation
 		'json' => array(
-			'nok' => 'You lack JSON (php-json package).', // @todo
-			'ok' => 'You have JSON extension.', // @todo
+			'nok' => 'You lack JSON (php-json package).',	//TODO - Translation
+			'ok' => 'You have JSON extension.',	//TODO - Translation
 		),
 		'mbstring' => array(
-			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO
-			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO
+			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO - Translation
+			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO - Translation
 		),
 		'minz' => array(
-			'nok' => 'You lack the Minz framework.', // @todo
+			'nok' => 'You lack the Minz framework.',	//TODO - Translation
 			'ok' => 'יש לכם את תשתית Minz',
 		),
 		'pcre' => array(
@@ -83,46 +83,46 @@ return array(
 			'ok' => 'PDO מותקן ולפחות אחד ממנהלי ההתקן הנתמכים מותקן (pdo_mysql, pdo_sqlite)',
 		),
 		'php' => array(
-			'_' => 'PHP installation', // @todo
+			'_' => 'PHP installation',	//TODO - Translation
 			'nok' => 'גירסת PHP שלכם היא %s אך FreshRSS דורש לפחות את גירסה %s',
 			'ok' => 'גירסת PHP שלכם היא %s, שתואמת ל FreshRSS',
 		),
 		'tables' => array(
-			'nok' => 'There is one or more lacking tables in the database.', // @todo
-			'ok' => 'Tables are existing in the database.', // @todo
+			'nok' => 'There is one or more lacking tables in the database.',	//TODO - Translation
+			'ok' => 'Tables are existing in the database.',	//TODO - Translation
 		),
-		'title' => 'Installation checking', // @todo
+		'title' => 'Installation checking',	//TODO - Translation
 		'tokens' => array(
-			'nok' => 'Check permissions on <em>./data/tokens</em> directory. HTTP server must have rights to write into', // @todo
-			'ok' => 'Permissions on tokens directory are good.', // @todo
+			'nok' => 'Check permissions on <em>./data/tokens</em> directory. HTTP server must have rights to write into',	//TODO - Translation
+			'ok' => 'Permissions on tokens directory are good.',	//TODO - Translation
 		),
 		'users' => array(
-			'nok' => 'Check permissions on <em>./data/users</em> directory. HTTP server must have rights to write into', // @todo
-			'ok' => 'Permissions on users directory are good.', // @todo
+			'nok' => 'Check permissions on <em>./data/users</em> directory. HTTP server must have rights to write into',	//TODO - Translation
+			'ok' => 'Permissions on users directory are good.',	//TODO - Translation
 		),
 		'zip' => array(
-			'nok' => 'You lack ZIP extension (php-zip package).', // @todo
-			'ok' => 'You have ZIP extension.', // @todo
+			'nok' => 'You lack ZIP extension (php-zip package).',	//TODO - Translation
+			'ok' => 'You have ZIP extension.',	//TODO - Translation
 		),
 	),
 	'extensions' => array(
-		'disabled' => 'Disabled', // @todo
-		'empty_list' => 'There is no installed extension', // @todo
-		'enabled' => 'Enabled', // @todo
-		'no_configure_view' => 'This extension cannot be configured.', // @todo
+		'author' => 'Author',	//TODO - Translation
+		'community' => 'Available community extensions',	//TODO - Translation
+		'description' => 'Description',	//TODO - Translation
+		'disabled' => 'Disabled',	//TODO - Translation
+		'empty_list' => 'There is no installed extension',	//TODO - Translation
+		'enabled' => 'Enabled',	//TODO - Translation
+		'latest' => 'Installed',	//TODO - Translation
+		'name' => 'Name',	//TODO - Translation
+		'no_configure_view' => 'This extension cannot be configured.',	//TODO - Translation
 		'system' => array(
-			'_' => 'System extensions', // @todo
-			'no_rights' => 'System extension (you have no rights on it)', // @todo
-		),
-		'title' => 'Extensions', // @todo
-		'user' => 'User extensions', // @todo
-		'community' => 'Available community extensions', // @todo
-		'name' => 'Name', // @todo
-		'version' => 'Version', // @todo
-		'description' => 'Description', // @todo
-		'author' => 'Author', // @todo
-		'latest' => 'Installed', // @todo
-		'update' => 'Update available', // @todo
+			'_' => '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
+		'user' => 'User extensions',	//TODO - Translation
+		'version' => 'Version',	//TODO - Translation
 	),
 	'stats' => array(
 		'_' => 'סטטיסטיקות',
@@ -131,9 +131,9 @@ return array(
 		'entry_count' => 'סכום המאמרים',
 		'entry_per_category' => 'מאמרים על פי קטגוריה',
 		'entry_per_day' => 'מספר מאמרים ליום (30 ימים אחרונים)',
-		'entry_per_day_of_week' => 'Per day of week (average: %.2f messages)', // @todo
-		'entry_per_hour' => 'Per hour (average: %.2f messages)', // @todo
-		'entry_per_month' => 'Per month (average: %.2f messages)', // @todo
+		'entry_per_day_of_week' => 'Per day of week (average: %.2f messages)',	//TODO - Translation
+		'entry_per_hour' => 'Per hour (average: %.2f messages)',	//TODO - Translation
+		'entry_per_month' => 'Per month (average: %.2f messages)',	//TODO - Translation
 		'entry_repartition' => 'חלוקת המאמרים',
 		'feed' => 'הזנה',
 		'feed_per_category' => 'הזנות על פי קטגוריה',
@@ -157,37 +157,37 @@ return array(
 		'top_feed' => 'עשרת ההזנות המובילות',
 	),
 	'system' => array(
-		'_' => 'System configuration', // @todo
-		'auto-update-url' => 'Auto-update server URL', // @todo
-		'instance-name' => 'Instance name', // @todo
-		'max-categories' => 'Categories per user limit', // @todo
-		'max-feeds' => 'Feeds per user limit', // @todo
+		'_' => 'System configuration',	//TODO - Translation
+		'auto-update-url' => 'Auto-update server URL',	//TODO - Translation
+		'instance-name' => 'Instance name',	//TODO - Translation
+		'max-categories' => 'Categories per user limit',	//TODO - Translation
+		'max-feeds' => 'Feeds per user limit',	//TODO - Translation
 		'registration' => array(
-			'help' => '0 means that there is no account limit', // @todo
-			'number' => 'Max number of accounts', // @todo
+			'help' => '0 means that there is no account limit',	//TODO - Translation
+			'number' => 'Max number of accounts',	//TODO - Translation
 		),
 	),
 	'update' => array(
 		'_' => 'מערכת העדכון',
 		'apply' => 'החלת העדכון',
 		'check' => 'בדיקת עדכונים חדשים',
-		'current_version' => 'Your current version of FreshRSS is the %s.', // @todo
+		'current_version' => 'Your current version of FreshRSS is the %s.',	//TODO - Translation
 		'last' => 'תאריך בדיקה אחרון: %s',
 		'none' => 'אין עדכון להחלה',
 		'title' => 'מערכת העדכון',
 	),
 	'user' => array(
-		'articles_and_size' => '%s articles (%s)', // @todo
+		'articles_and_size' => '%s articles (%s)',	//TODO - Translation
 		'create' => 'יצירת משתמש חדש',
-		'delete_users' => 'Delete user', // TODO
+		'delete_users' => 'Delete user',	//TODO - Translation
 		'language' => 'שפה',
-		'number' => 'There is %d account created', // @todo
-		'numbers' => 'There are %d accounts created', // @todo
+		'number' => 'There is %d account created',	//TODO - Translation
+		'numbers' => 'There are %d accounts created',	//TODO - Translation
 		'password_form' => 'סיסמה<br /><small>(לשימוש בטפוס ההרשמה)</small>',
-		'password_format' => 'At least 7 characters', // @todo
-		'selected' => 'Selected user', // TODO
-		'title' => 'Manage users', // @todo
-		'update_users' => 'Update user', // TODO
+		'password_format' => 'At least 7 characters',	//TODO - Translation
+		'selected' => 'Selected user',	//TODO - Translation
+		'title' => 'Manage users',	//TODO - Translation
+		'update_users' => 'Update user',	//TODO - Translation
 		'user_list' => 'רשימת משתמשים',
 		'username' => 'שם משתמש',
 		'users' => 'משתמשים',

+ 29 - 26
app/i18n/he/conf.php

@@ -6,7 +6,7 @@ return array(
 		'advanced' => 'מתקדם',
 		'delete_after' => 'מחיקת מאמרים לאחר',
 		'help' => 'אפשרויות נוספות זמינות בזרמים ספציפיים',
-		'keep_history_by_feed' => 'Minimum number of articles to keep by feed', // @todo
+		'keep_history_by_feed' => 'Minimum number of articles to keep by feed',	//TODO - Translation
 		'optimize' => 'מיטוב בסיס הנתונים',
 		'optimize_help' => 'ביצוע לעיתים קרובות על מנת למטב את בסיס הנתונים',
 		'purge_now' => 'ניקוי עכשיו',
@@ -19,7 +19,7 @@ return array(
 			'bottom_line' => 'שורה תחתונה',
 			'entry' => 'סמלילי מאמרים',
 			'publication_date' => 'תאריך הפרסום',
-			'related_tags' => 'תגיות קשורות',	//TODO
+			'related_tags' => 'תגיות קשורות',	//TODO - Translation
 			'sharing' => 'שיתוף',
 			'top_line' => 'שורה עליונה',
 		),
@@ -28,6 +28,7 @@ return array(
 			'seconds' => 'שניות (0 משמעותה ללא פג תוקף)',
 			'timeout' => 'HTML5 התראה פג תוקף',
 		),
+		'show_nav_buttons' => 'Show the navigation buttons',	//TODO - Translation
 		'theme' => 'ערכת נושא',
 		'title' => 'תצוגה',
 		'width' => array(
@@ -37,12 +38,22 @@ return array(
 			'no_limit' => 'ללא הגבלה',
 			'thin' => 'צר',
 		),
-		'show_nav_buttons' => 'Show the navigation buttons',	//TODO
+	),
+	'profile' => array(
+		'_' => 'Profile management',	//TODO - Translation
+		'delete' => array(
+			'_' => 'Account deletion',	//TODO - Translation
+			'warn' => 'Your account and all related data will be deleted.',	//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
 	),
 	'query' => array(
 		'_' => 'שאילתות',
 		'deprecated' => 'שאילתה זו אינה בתוקף יותר, הפיד או הקטגוריה לייחוס נמחקו.',
-		'display' => 'Display user query results', // TODO
+		'display' => 'Display user query results',	//TODO - Translation
 		'filter' => 'מסננים בשימוש:',
 		'get_all' => 'הצגת כל המאמרים',
 		'get_category' => 'הצגת קטגוריה "%s"',
@@ -53,7 +64,7 @@ return array(
 		'number' => 'שאילתה מספר °%d',
 		'order_asc' => 'הצגת מאמרים ישנים בראש',
 		'order_desc' => 'הצגת מאמרים חדשים בראש',
-		'remove' => 'Remove user query', // TODO
+		'remove' => 'Remove user query',	//TODO - Translation
 		'search' => 'חיפוש "%s"',
 		'state_0' => 'הצגת כל המאמרים',
 		'state_1' => 'הצגת מאמרים שנקראו',
@@ -73,28 +84,19 @@ return array(
 		'state_15' => 'הצגת  כל המאמרים',
 		'title' => 'שאילתות',
 	),
-	'profile' => array(
-		'_' => 'Profile management', // @todo
-		'email_persona' => 'כתובת דואר אלקטרוני להרשמה<br /><small>(לצורך <a href="https://persona.org/" rel="external">מוזילה פרסונה</a>)</small>',
-		'password_api' => 'סיסמת API<br /><small>(לדוגמה ליישומים סלולריים)</small>',
-		'password_form' => 'סיסמה<br /><small>(לשימוש בטפוס ההרשמה)</small>',
-		'password_format' => 'At least 7 characters', // @todo
-		'title' => 'Profile', // @todo
-	),
 	'reading' => array(
 		'_' => 'קריאה',
 		'after_onread' => 'לאחר “סימון הכל כנקרא”,',
 		'articles_per_page' => 'מספר המאמרים בעמוד',
 		'auto_load_more' => 'טעינת המאמר הבא סוף העמוד',
-		'auto_remove_article' => 'Hide articles after reading', // @todo
-		'mark_updated_article_unread' => 'Mark updated articles as unread', // @todo
+		'auto_remove_article' => 'Hide articles after reading',	//TODO - Translation
 		'confirm_enabled' => 'הצגת דו-שיח לאישור “סימון הכל כנקרא” ',
 		'display_articles_unfolded' => 'הצגת מאמרים בשלמותם כברירת מחדל',
 		'display_categories_unfolded' => 'הצגת קטגוריות מקופלות כברירת מחדל',
 		'hide_read_feeds' => 'הסתרת קטגוריות &amp; הזנות ללא מאמרים שלא נקראו (לא עובד יחד עם “הצגת כל המאמרים”)',
 		'img_with_lazyload' => 'שימוש ב "טעינה עצלה" על מנת לטעון תמונות',
-		'sides_close_article' => 'Clicking outside of article text area closes the article', // @todo
 		'jump_next' => 'קפיצה לפריט הבא שלא נקרא (הזנה או קטגוריה)',
+		'mark_updated_article_unread' => 'Mark updated articles as unread',	//TODO - Translation
 		'number_divided_when_reader' => 'חלוקה ב2 במצב קריאה.',
 		'read' => array(
 			'article_open_on_website' => 'כאשר מאמר נפתח באתר המקורי',
@@ -109,6 +111,7 @@ return array(
 			'all_articles' => 'הצגת כל המאמרים',
 			'unread' => 'הצגת מאמרים שלא נקראו בלבד',
 		),
+		'sides_close_article' => 'Clicking outside of article text area closes the article',	//TODO - Translation
 		'sort' => array(
 			'_' => 'סדר המיון',
 			'newer_first' => 'חדשים בראש',
@@ -125,7 +128,7 @@ return array(
 	),
 	'sharing' => array(
 		'_' => 'שיתוף',
-		'add' => 'Add a sharing method', // TODO
+		'add' => 'Add a sharing method',	//TODO - Translation
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
 		'email' => 'דואר אלקטרוני',
@@ -133,7 +136,7 @@ return array(
 		'g+' => 'Google+',
 		'more_information' => 'מידע נוסף',
 		'print' => 'הדפסה',
-		'remove' => 'Remove sharing method', // TODO
+		'remove' => 'Remove sharing method',	//TODO - Translation
 		'shaarli' => 'Shaarli',
 		'share_name' => 'שיתוף שם לתצוגה',
 		'share_url' => 'לשימוש שתפו URL',
@@ -146,34 +149,34 @@ return array(
 		'article_action' => 'פעולות על מאמרים',
 		'auto_share' => 'שיתוף',
 		'auto_share_help' => 'אם יש רק מצב שיתוף אחד, הוא מופעל. אחרת המצבים נבחרים על בסיס המספר שלהם.',
-		'close_dropdown' => 'Close menus', // @todo
+		'close_dropdown' => 'Close menus',	//TODO - Translation
 		'collapse_article' => 'כיווץ',
 		'first_article' => 'דילוג למאמר הראשון',
 		'focus_search' => 'גישה לתיבת החיפוש',
-		'global_view' => 'Switch to global view', // TODO
+		'global_view' => 'Switch to global view',	//TODO - Translation
 		'help' => 'הצגת התיעוד',
 		'javascript' => 'חובה להפעיל JavaScript על מנת לעשות שימוש בקיצורי דרך',
 		'last_article' => 'דילוג למאמר האחרון',
 		'load_more' => 'טעינת מאמרים נוספים',
-		'mark_read' => 'סימון כנקרא',
 		'mark_favorite' => 'סימון כמועדף',
+		'mark_read' => 'סימון כנקרא',
 		'navigation' => 'ניווט',
 		'navigation_help' => 'בעזרת מקש השיפט קיצורי דרך חלים על הזנות .<br/>עם מקש האלט הם חלים על קטגוריות.',
 		'next_article' => 'דילוג למאמר הבא',
-		'normal_view' => 'Switch to normal view', // TODO
+		'normal_view' => 'Switch to normal view',	//TODO - Translation
 		'other_action' => 'פעולות אחרות',
 		'previous_article' => 'דילוג למאמר הקודם',
-		'reading_view' => 'Switch to reading view', // TODO
-		'rss_view' => 'Open RSS view in a new tab', // TODO
+		'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' => '+ <code>shift</code> על מנת לסמן את כל המאמרים כנקראו',
 		'title' => 'קיצורי דרך',
 		'user_filter' => 'גישה למססנים',
 		'user_filter_help' => 'אם יש רק מזנן אחד הוא יהיה בשימוש. אחרת המסננים ישמשו על בסיס המספר שלהם.',
-		'views' => 'Views', // TODO
+		'views' => 'Views',	//TODO - Translation
 	),
 	'user' => array(
-		'articles_and_size' => '%s articles (%s)', // @todo
+		'articles_and_size' => '%s articles (%s)',	//TODO - Translation
 		'current' => 'משתמש נוכחי',
 		'is_admin' => 'מנהל',
 		'users' => 'משתמשים',

+ 24 - 25
app/i18n/he/feedback.php

@@ -21,7 +21,6 @@ return array(
 			'success' => 'You are disconnected', // @todo
 		),
 		'no_password_set' => 'לא הוגדרה סיסמת מנהל. תכונה זו אינה זמינה.',
-		'not_persona' => 'ניתן לאפס את מערכת הפרסונה בלבד.',
 	),
 	'conf' => array(
 		'error' => 'An error occurred during configuration saving', // @todo
@@ -51,24 +50,28 @@ return array(
 		'no_zip_extension' => 'הרחבת ZIP אינה מותקנת על השרת.',
 		'zip_error' => 'אירעה שגיאה במהלך ייבוא קובץ הZIP.',
 	),
+	'profile' => array(
+		'error' => 'Your profile cannot be modified', // @todo
+		'updated' => 'Your profile has been modified', // @todo
+	),
 	'sub' => array(
 		'actualize' => 'מימוש',
 		'articles' => array(
-			'marked_read' => 'The selected articles have been marked as read.',	//TODO
-			'marked_unread' => 'The articles have been marked as unread.',	//TODO
+			'marked_read' => 'The selected articles have been marked as read.',	//TODO - Translation
+			'marked_unread' => 'The articles have been marked as unread.',	//TODO - Translation
 		),
 		'category' => array(
-			'created' => 'Category %s has been created.', // @todo
-			'deleted' => 'Category has been deleted.', // @todo
+			'created' => 'Category %s has been created.',	//TODO - Translation
+			'deleted' => 'Category has been deleted.',	//TODO - Translation
 			'emptied' => 'הקטגוריה רוקנה',
-			'error' => 'Category cannot be updated', // @todo
-			'name_exists' => 'Category name already exists.', // @todo
-			'no_id' => 'You must precise the id of the category.', // @todo
-			'no_name' => 'Category name cannot be empty.', // @todo
-			'not_delete_default' => 'You cannot delete the default category!', // @todo
-			'not_exist' => 'The category does not exist!', // @todo
-			'over_max' => 'You have reached your limit of categories (%d)', // @todo
-			'updated' => 'Category has been updated.', // @todo
+			'error' => 'Category cannot be updated',	//TODO - Translation
+			'name_exists' => 'Category name already exists.',	//TODO - Translation
+			'no_id' => 'You must precise the id of the category.',	//TODO - Translation
+			'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
 		),
 		'feed' => array(
 			'actualized' => '<em>%s</em> עודכן',
@@ -76,20 +79,20 @@ return array(
 			'added' => 'RSS הזנת <em>%s</em> נוספה',
 			'already_subscribed' => 'אתה כבר רשום ל <em>%s</em>',
 			'deleted' => 'ההזנה נמחקה',
-			'error' => 'Feed cannot be updated', // @todo
-			'internal_problem' => 'אין אפשרות להוסיף את ההזנה. <a href="%s">בדקו את הלוגים</a> לפרטים.', // @todo
+			'error' => 'Feed cannot be updated',	//TODO - Translation
+			'internal_problem' => 'אין אפשרות להוסיף את ההזנה. <a href="%s">בדקו את הלוגים</a> לפרטים.',	//TODO - Translation
 			'invalid_url' => 'URL <em>%s</em> אינו תקין',
 			'n_actualized' => '%d הזנות עודכנו',
 			'n_entries_deleted' => '%d המאמרים נמחקו',
 			'no_refresh' => 'אין הזנה שניתן לרענן…',
 			'not_added' => '<em>%s</em> אין אפשרות להוסיף את',
-			'over_max' => 'You have reached your limit of feeds (%d)', // @todo
+			'over_max' => 'You have reached your limit of feeds (%d)',	//TODO - Translation
 			'updated' => 'ההזנה התעדכנה',
 		),
 		'purge_completed' => 'הניקוי הושלם (%d מאמרים נמחקו)',
 	),
 	'update' => array(
-		'can_apply' => 'FreshRSS will be now updated to the <strong>version %s</strong>.', // @todo
+		'can_apply' => 'FreshRSS will be now updated to the <strong>version %s</strong>.',	//TODO - Translation
 		'error' => 'תהליך העדכון נתקל בשגיאה: %s',
 		'file_is_nok' => 'יש לבדוק את ההרשאות בתיקייה <em>%s</em>. שרת הHTTP חייב להיות בעל הרשאות כתיבה.',
 		'finished' => 'העדכון הושלם!',
@@ -99,19 +102,15 @@ return array(
 	'user' => array(
 		'created' => array(
 			'_' => 'המשתמש %s נוצר',
-			'error' => 'User %s cannot be created', // @todo
+			'error' => 'User %s cannot be created',	//TODO - Translation
 		),
 		'deleted' => array(
 			'_' => 'המשתמש %s נמחק',
-			'error' => 'User %s cannot be deleted', // @todo
+			'error' => 'User %s cannot be deleted',	//TODO - Translation
 		),
 		'updated' => array(
-			'_' => 'User %s has been updated', // TODO
-			'error' => 'User %s has not been updated', // TODO
+			'_' => 'User %s has been updated',	//TODO - Translation
+			'error' => 'User %s has not been updated',	//TODO - Translation
 		),
 	),
-	'profile' => array(
-		'error' => 'Your profile cannot be modified', // @todo
-		'updated' => 'Your profile has been modified', // @todo
-	),
 );

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

@@ -6,23 +6,23 @@ return array(
 		'back_to_rss_feeds' => '← חזרה להזנות הRSS שלך',
 		'cancel' => 'ביטול',
 		'create' => 'יצירה',
-		'disable' => 'Disable', // @todo
-		'empty' => 'Empty', // @todo
-		'enable' => 'Enable', // @todo
+		'disable' => 'Disable',	//TODO - Translation
+		'empty' => 'Empty',	//TODO - Translation
+		'enable' => 'Enable',	//TODO - Translation
 		'export' => 'ייצוא',
 		'filter' => 'מסנן',
 		'import' => 'ייבוא',
 		'manage' => 'ניהול',
 		'mark_read' => 'סימון כנקרא',
 		'mark_favorite' => 'סימון כמועדף',
-		'remove' => 'Remove', // @todo
+		'remove' => 'Remove',	//TODO - Translation
 		'see_website' => 'ראו אתר',
 		'submit' => 'אישור',
 		'truncate' => 'מחיקת כל המאמרים',
-		'update' => 'Update', // TODO
+		'update' => 'Update',	//TODO - Translation
 	),
 	'auth' => array(
-		'email' => 'Email address', // @todo
+		'email' => 'Email address',	//TODO - Translation
 		'keep_logged_in' => 'השאר מחובר <small>חודש</small>',
 		'login' => 'כניסה לחשבון',
 		'logout' => 'יציאה מהחשבון',
@@ -31,46 +31,41 @@ return array(
 			'format' => '<small>At least 7 characters</small>',
 		),
 		'registration' => array(
-			'_' => 'New account', // @todo
-			'ask' => 'Create an account?', // @todo
-			'title' => 'Account creation', // @todo
+			'_' => 'New account',	//TODO - Translation
+			'ask' => 'Create an account?',	//TODO - Translation
+			'title' => 'Account creation',	//TODO - Translation
 		),
 		'reset' => 'איפוס אימות',
 		'username' => array(
 			'_' => 'שם משתמש',
 			'admin' => 'שם משתמש של המנהל',
-			'format' => '<small>maximum 16 alphanumeric characters</small>', // @todo
+			'format' => '<small>maximum 16 alphanumeric characters</small>',	//TODO - Translation
 		),
 	),
 	'date' => array(
 		'Apr' => '\\A\\p\\r\\i\\l',
-		'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' => 'Apr',
+		'Aug' => '\\A\\u\\g\\u\\s\\t',
 		'aug' => 'aug',
 		'august' => 'Aug',
 		'before_yesterday' => 'ישן יותר',
+		'Dec' => '\\D\\e\\c\\e\\m\\b\\e\\r',
 		'dec' => 'dec',
 		'december' => 'Dec',
+		'Feb' => '\\F\\e\\b\\r\\u\\a\\r\\y',
 		'feb' => 'feb',
 		'february' => 'Feb',
 		'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' => 'Jan',
+		'Jul' => '\\J\\u\\l\\y',
 		'jul' => 'jul',
 		'july' => 'Jul',
+		'Jun' => '\\J\\u\\n\\e',
 		'jun' => 'jun',
 		'june' => 'Jun',
 		'last_3_month' => 'בשלושת החודשים האחרונים',
@@ -78,17 +73,22 @@ return array(
 		'last_month' => 'בחודש שעבר',
 		'last_week' => 'בשבוע שעבר',
 		'last_year' => 'בשנה האחרונה',
+		'Mar' => '\\M\\a\\r\\c\\h',
 		'mar' => 'mar',
 		'march' => 'Mar',
+		'May' => '\\M\\a\\y',
 		'may' => 'May',
 		'may_' => 'May',
 		'mon' => 'Mon',
 		'month' => 'חודשים',
+		'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r',
 		'nov' => 'nov',
 		'november' => 'Nov',
+		'Oct' => '\\O\\c\\t\\o\\b\\e\\r',
 		'oct' => 'oct',
 		'october' => 'Oct',
 		'sat' => 'Sat',
+		'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r',
 		'sep' => 'sep',
 		'september' => 'Sep',
 		'sun' => 'Sun',
@@ -103,12 +103,12 @@ return array(
 		'about' => 'אודות FreshRSS',
 	),
 	'js' => array(
-		'category_empty' => 'Empty category', // @todo
+		'category_empty' => 'Empty category',	//TODO - Translation
 		'confirm_action' => 'האם אתם בטוחים שברצונכם לבצע פעולה זו? אין אפשרות לבטל אותה!',
 		'confirm_action_feed_cat' => 'האם אתם בטוחים שברצוניכם לבצע פעולה זו? מועדפים ושאילתות עשויות לאבוד. אין אפשרות לבטל אותה!',
 		'feedback' => array(
 			'body_new_articles' => 'ישנם  \d מאמרים חדשים לקרוא ב FreshRSS.',
-			'request_failed' => 'A request has failed, it may have been caused by Internet connection problems.', // @todo
+			'request_failed' => 'A request has failed, it may have been caused by Internet connection problems.',	//TODO - Translation
 			'title_new_articles' => 'FreshRSS: מאמרים חדשים!',
 		),
 		'new_article' => 'מאמרים חדשים זמינים, לחצו לרענון העמוד.',
@@ -134,11 +134,11 @@ return array(
 		'about' => 'אודות',
 		'admin' => 'ניהול',
 		'archiving' => 'ארכוב',
-		'authentication' => 'Authentication', // @todo
-		'check_install' => 'Installation checking', // @todo
+		'authentication' => 'Authentication',	//TODO - Translation
+		'check_install' => 'Installation checking',	//TODO - Translation
 		'configuration' => 'הגדרות',
 		'display' => 'תצוגה',
-		'extensions' => 'Extensions', // @todo
+		'extensions' => 'Extensions',	//TODO - Translation
 		'logs' => 'לוגים',
 		'queries' => 'שאילתות',
 		'reading' => 'קריאה',
@@ -146,10 +146,10 @@ return array(
 		'sharing' => 'שיתוף',
 		'shortcuts' => 'קיצורי דרך',
 		'stats' => 'סטטיסטיקות',
-		'system' => 'System configuration', // @todo
+		'system' => 'System configuration',	//TODO - Translation
 		'update' => 'עדכון',
-		'user_management' => 'Manage users', // @todo
-		'user_profile' => 'Profile', // @todo
+		'user_management' => 'Manage users',	//TODO - Translation
+		'user_profile' => 'Profile',	//TODO - Translation
 	),
 	'pagination' => array(
 		'first' => 'הראשון',
@@ -187,7 +187,7 @@ return array(
 		'damn' => 'הו לא!',
 		'default_category' => 'ללא קטגוריה',
 		'no' => 'לא',
-		'not_applicable' => 'Not available', // @todo
+		'not_applicable' => 'Not available',	//TODO - Translation
 		'ok' => 'כן!',
 		'or' => 'או',
 		'yes' => 'כן',

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

@@ -40,7 +40,7 @@ return array(
 		'mark_all_read' => 'סימון הכל כנקרא',
 		'mark_cat_read' => 'סימון קטגוריה כנקראה',
 		'mark_feed_read' => 'סימון הזנה כנקראה',
-		'mark_selection_unread' => 'Mark selection as unread',	//TODO
+		'mark_selection_unread' => 'Mark selection as unread',	//TODO - Translation
 		'newer_first' => 'חדשים בראש',
 		'non-starred' => 'הצגת הכל פרט למועדפים',
 		'normal_view' => 'תצוגה רגילה',
@@ -53,11 +53,11 @@ return array(
 		'starred' => 'הצגת מועדפים בלבד',
 		'stats' => 'סטטיסטיקות',
 		'subscription' => 'ניהול הרשמות',
-		'tags' => 'My labels',	//TODO
+		'tags' => 'My labels',	//TODO - Translation
 		'unread' => 'הצגת מאמרים שלא נקראו בלבד',
 	),
 	'share' => 'שיתוף',
 	'tag' => array(
-		'related' => 'תגיות קשורות',	//TODO
+		'related' => 'תגיות קשורות',	//TODO - Translation
 	),
 );

+ 28 - 20
app/i18n/he/install.php

@@ -4,16 +4,16 @@ return array(
 	'action' => array(
 		'finish' => 'השלמת ההתקנה',
 		'fix_errors_before' => 'יש לתקן את השגיאות לפני המעבר לשלב הבא.',
+		'keep_install' => 'Keep previous configuration',	//TODO - Translation
 		'next_step' => 'לשלב הבא',
+		'reinstall' => 'Reinstall FreshRSS',	//TODO - Translation
 	),
 	'auth' => array(
-		'email_persona' => 'כתובת דואר אלקטרוני להרשמה<br /><small>(לצורך <a href="https://persona.org/" rel="external">מוזילה פרסונה</a>)</small>',
 		'form' => 'טופס אינטרנטי (מסורתי, דורש JavaScript)',
 		'http' => 'HTTP (למשתמשים מתקדמים עם HTTPS)',
 		'none' => 'ללא (מסוכן)',
 		'password_form' => 'סיסמה<br /><small>(לשימוש בטפוס ההרשמה)</small>',
-		'password_format' => 'At least 7 characters', // @todo
-		'persona' => 'מוזילה פרסונה (מודרני, דורש JavaScript)',
+		'password_format' => 'At least 7 characters',	//TODO - Translation
 		'type' => 'שיטת אימות',
 	),
 	'bdd' => array(
@@ -24,15 +24,16 @@ return array(
 			'ok' => 'הגדרות בסיס הנתונים נשמרו.',
 		),
 		'host' => 'מארח',
-		'prefix' => 'קידומת הטבלה',
 		'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
+			'nok' => 'Check permissions on <em>./data/cache</em> directory. HTTP server must have rights to write into',	//TODO - Translation
 			'ok' => 'ההרשאות בתיקיית המטמון תקינות',
 		),
 		'ctype' => array(
@@ -44,7 +45,7 @@ return array(
 			'ok' => 'יש לכם את גירסת %s של cURL',
 		),
 		'data' => array(
-			'nok' => 'Check permissions on <em>./data</em> directory. HTTP server must have rights to write into', // @todo
+			'nok' => 'Check permissions on <em>./data</em> directory. HTTP server must have rights to write into',	//TODO - Translation
 			'ok' => 'ההרשאות בתיקיית הדאטא תקינות',
 		),
 		'dom' => array(
@@ -52,23 +53,27 @@ return array(
 			'ok' => 'הספרייה הנדרשת לסיור ב DOM מותקנת',
 		),
 		'favicons' => array(
-			'nok' => 'Check permissions on <em>./data/favicons</em> directory. HTTP server must have rights to write into', // @todo
+			'nok' => 'Check permissions on <em>./data/favicons</em> directory. HTTP server must have rights to write into',	//TODO - Translation
 			'ok' => 'ההרשאות בתיקיית הfavicons תקינות',
 		),
+		'fileinfo' => array(
+			'nok' => 'Cannot find the PHP fileinfo library (fileinfo package).',	//TODO - Translation
+			'ok' => 'You have the fileinfo library.',	//TODO - Translation
+		),
 		'http_referer' => array(
 			'nok' => 'נא לדבוק שאינך פוגעת ב HTTP REFERER שלך.',
 			'ok' => 'הHTTP REFERER ידוע ותאם לשרת שלך.',
 		),
 		'json' => array(
-			'nok' => 'Cannot find a recommended library to parse JSON.',	//TODO
-			'ok' => 'You have a recommended library to parse JSON.',	//TODO
+			'nok' => 'Cannot find a recommended library to parse JSON.',	//TODO - Translation
+			'ok' => 'You have a recommended library to parse JSON.',	//TODO - Translation
 		),
 		'mbstring' => array(
-			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO
-			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO
+			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO - Translation
+			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO - Translation
 		),
 		'minz' => array(
-			'nok' => 'You lack the Minz framework.', // @todo
+			'nok' => 'You lack the Minz framework.',	//TODO - Translation
 			'ok' => 'יש לכם את תשתית Minz',
 		),
 		'pcre' => array(
@@ -79,17 +84,17 @@ return array(
 			'nok' => 'PDO אינו מותקן או שאחד ממנהלי ההתקנים שלו חסר (pdo_mysql, pdo_sqlite)',
 			'ok' => 'PDO מותקן ולפחות אחד ממנהלי ההתקן הנתמכים מותקן (pdo_mysql, pdo_sqlite)',
 		),
-		'persona' => array(
-			'nok' => 'Check permissions on <em>./data/persona</em> directory. HTTP server must have rights to write into', // @todo
-			'ok' => 'ההרשאות בתיקיית מוזילה פרסונה תקינות',
-		),
 		'php' => array(
 			'nok' => 'גירסת PHP שלכם היא %s אך FreshRSS דורש לפחות את גירסה %s',
 			'ok' => 'גירסת PHP שלכם היא %s, שתואמת ל FreshRSS',
 		),
 		'users' => array(
-			'nok' => 'Check permissions on <em>./data/users</em> directory. HTTP server must have rights to write into', // @todo
-			'ok' => 'Permissions on users directory are good.', // @todo
+			'nok' => 'Check permissions on <em>./data/users</em> directory. HTTP server must have rights to write into',	//TODO - Translation
+			'ok' => 'Permissions on users directory are good.',	//TODO - Translation
+		),
+		'xml' => 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(
@@ -101,14 +106,17 @@ return array(
 	'delete_articles_after' => 'מחיקת מאמרים לאחר',
 	'fix_errors_before' => 'יש לתקן את השגיאות לפני המעבר לשלב הבא.',
 	'javascript_is_better' => 'FreshRSS מעדיף שתאפשרו JavaScript',
+	'js' => 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
-	'step' => 'step %d', // @todo
+	'ok' => 'The installation process was successful.',	//TODO - Translation
+	'step' => 'step %d',	//TODO - Translation
 	'steps' => 'שלבים',
 	'title' => 'התקנה · FreshRSS',
 	'this_is_the_end' => 'סיום',

+ 18 - 17
app/i18n/he/sub.php

@@ -2,18 +2,18 @@
 
 return array(
 	'api' => array(
-		'documentation' => 'Copy the following URL to use it within an external tool.', // @todo
-		'title' => 'API', // @todo
+		'documentation' => 'Copy the following URL to use it within an external tool.',	//TODO - Translation
+		'title' => 'API',	//TODO - Translation
 	),
 	'bookmarklet' => array(
-		'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose "Bookmark This Link". Then click "Subscribe" button in any page you want to subscribe to.', // @todo
-		'label' => 'Subscribe', // @todo
-		'title' => 'Bookmarklet', // @todo
+		'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose "Bookmark This Link". Then click "Subscribe" button in any page you want to subscribe to.',	//TODO - Translation
+		'label' => 'Subscribe',	//TODO - Translation
+		'title' => 'Bookmarklet',	//TODO - Translation
 	),
 	'category' => array(
 		'_' => 'קטגוריה',
 		'add' => 'הוספת קטגוריה',
-		'empty' => 'Empty category', // @todo
+		'empty' => 'Empty category',	//TODO - Translation
 		'new' => 'קטגוריה חדשה',
 	),
 	'feed' => array(
@@ -27,7 +27,7 @@ return array(
 			'password' => 'HTTP סיסמה',
 			'username' => 'HTTP שם משתמש',
 		),
-		'clear_cache' => 'Always clear cache',	//TODO
+		'clear_cache' => 'Always clear cache',	//TODO - Translation
 		'css_help' => 'קבלת הזנות RSS קטומות  (זהירות, לוקח זמן רב יותר!)',
 		'css_path' => 'נתיב הCSS של המאמר באתר המקורי',
 		'description' => 'תיאור',
@@ -36,19 +36,20 @@ return array(
 		'informations' => 'מידע',
 		'keep_history' => 'מסםר מינימלי של מאמרים לשמור',
 		'moved_category_deleted' => 'כאשר הקטגוריה נמחקת ההזנות שבתוכה אוטומטית מקוטלגות תחת  <em>%s</em>.',
-		'mute' => 'mute', // TODO
+		'mute' => 'mute',	//TODO - Translation
 		'no_selected' => 'אף הזנה לא נבחרה.',
 		'number_entries' => '%d מאמרים',
 		'priority' => array(
-			'_' => 'Visibility', // TODO
-			'archived' => 'Do not show (archived)', // TODO
+			'_' => 'Visibility',	//TODO - Translation
+			'archived' => 'Do not show (archived)',	//TODO - Translation
 			'main_stream' => 'הצגה בזרם המרכזי',
-			'normal' => 'Show in its category', // TODO
+			'normal' => 'Show in its category',	//TODO - Translation
 		),
-		'ssl_verify' => 'Verify SSL security',	//TODO
+		'pubsubhubbub' => 'Instant notification with PubSubHubbub',	//TODO - Translation
+		'ssl_verify' => 'Verify SSL security',	//TODO - Translation
 		'stats' => 'סטטיסטיקות',
 		'think_to_add' => 'ניתן להוסיף הזנות חדשות.',
-		'timeout' => 'Timeout in seconds',	//TODO
+		'timeout' => 'Timeout in seconds',	//TODO - Translation
 		'title' => 'כותרת',
 		'title_add' => 'הוספת הזנה',
 		'ttl' => 'אין לרענן אוטומטית יותר מ',
@@ -57,8 +58,8 @@ return array(
 		'website' => 'אתר URL',
 	),
 	'firefox' => array(
-		'documentation' => 'Follow the steps described <a href="https://developer.mozilla.org/en-US/Firefox/Releases/2/Adding_feed_readers_to_Firefox#Adding_a_new_feed_reader_manually">here</a> to add FreshRSS to Firefox feed reader list.', // @todo
-		'title' => 'Firefox feed reader', // @todo
+		'documentation' => 'Follow the steps described <a href="https://developer.mozilla.org/en-US/Firefox/Releases/2/Adding_feed_readers_to_Firefox#Adding_a_new_feed_reader_manually">here</a> to add FreshRSS to Firefox feed reader list.',	//TODO - Translation
+		'title' => 'Firefox feed reader',	//TODO - Translation
 	),
 	'import_export' => array(
 		'export' => 'ייצוא',
@@ -75,11 +76,11 @@ return array(
 		'bookmark' => 'הרשמה (FreshRSS סימניית)',
 		'import_export' => 'יבוא / יצוא ',
 		'subscription_management' => 'ניהול הרשמות',
-		'subscription_tools' => 'Subscription tools', // @todo
+		'subscription_tools' => 'Subscription tools',	//TODO - Translation
 	),
 	'title' => array(
 		'_' => 'ניהול הרשמות',
 		'feed_management' => 'ניהול הזנות RSS',
-		'subscription_tools' => 'Subscription tools', // @todo
+		'subscription_tools' => 'Subscription tools',	//TODO - Translation
 	),
 );

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

@@ -67,8 +67,8 @@ return array(
 			'ok' => 'Estensione JSON presente.',
 		),
 		'mbstring' => array(
-			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO
-			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO
+			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO - Translation
+			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO - Translation
 		),
 		'minz' => array(
 			'nok' => 'Manca il framework Minz.',
@@ -106,23 +106,23 @@ return array(
 		),
 	),
 	'extensions' => array(
+		'author' => 'Author',	//TODO - Translation
+		'community' => 'Available community extensions',	//TODO - Translation
+		'description' => 'Description',	//TODO - Translation
 		'disabled' => 'Disabilitata',
 		'empty_list' => 'Non ci sono estensioni installate',
 		'enabled' => 'Abilitata',
+		'latest' => 'Installed',	//TODO - Translation
+		'name' => 'Name',	//TODO - Translation
 		'no_configure_view' => 'Questa estensioni non può essere configurata.',
 		'system' => array(
 			'_' => 'Estensioni di sistema',
 			'no_rights' => 'Estensione di sistema (non hai i permessi su questo tipo)',
 		),
 		'title' => 'Estensioni',
+		'update' => 'Update available',	//TODO - Translation
 		'user' => 'Estensioni utente',
-		'community' => 'Available community extensions', // @todo translate
-		'name' => 'Name', // @todo translate
-		'version' => 'Version', // @todo translate
-		'description' => 'Description', // @todo translate
-		'author' => 'Author', // @todo translate
-		'latest' => 'Installed', // @todo translate
-		'update' => 'Update available', // @todo translate
+		'version' => 'Version',	//TODO - Translation
 	),
 	'stats' => array(
 		'_' => 'Statistiche',
@@ -158,7 +158,7 @@ return array(
 	),
 	'system' => array(
 		'_' => 'Configurazione di sistema',
-		'auto-update-url' => 'Auto-update server URL', // @todo translate
+		'auto-update-url' => 'Auto-update server URL',	//TODO - Translation
 		'instance-name' => 'Nome istanza',
 		'max-categories' => 'Limite categorie per utente',
 		'max-feeds' => 'Limite feeds per utente',
@@ -179,15 +179,15 @@ return array(
 	'user' => array(
 		'articles_and_size' => '%s articoli (%s)',
 		'create' => 'Crea nuovo utente',
-		'delete_users' => 'Delete user', // TODO
+		'delete_users' => 'Delete user',	//TODO - Translation
 		'language' => 'Lingua',
 		'number' => ' %d profilo utente creato',
 		'numbers' => 'Sono presenti %d profili utente',
 		'password_form' => 'Password<br /><small>(per il login classico)</small>',
 		'password_format' => 'Almeno 7 caratteri',
-		'selected' => 'Selected user', // TODO
+		'selected' => 'Selected user',	//TODO - Translation
 		'title' => 'Gestione utenti',
-		'update_users' => 'Update user', // TODO
+		'update_users' => 'Update user',	//TODO - Translation
 		'user_list' => 'Lista utenti',
 		'username' => 'Nome utente',
 		'users' => 'Utenti',

+ 24 - 24
app/i18n/it/conf.php

@@ -19,7 +19,7 @@ return array(
 			'bottom_line' => 'Barra in fondo',
 			'entry' => 'Icone degli articoli',
 			'publication_date' => 'Data di pubblicazione',
-			'related_tags' => 'Tags correlati',	//TODO
+			'related_tags' => 'Tags correlati',	//TODO - Translation
 			'sharing' => 'Condivisione',
 			'top_line' => 'Barra in alto',
 		),
@@ -28,6 +28,7 @@ return array(
 			'seconds' => 'secondi (0 significa nessun timeout)',
 			'timeout' => 'Notifica timeout HTML5',
 		),
+		'show_nav_buttons' => 'Show the navigation buttons',	//TODO - Translation
 		'theme' => 'Tema',
 		'title' => 'Visualizzazione',
 		'width' => array(
@@ -37,12 +38,22 @@ return array(
 			'no_limit' => 'Nessun limite',
 			'thin' => 'Stretto',
 		),
-		'show_nav_buttons' => 'Show the navigation buttons',	//TODO
+	),
+	'profile' => array(
+		'_' => 'Gestione profili',
+		'delete' => array(
+			'_' => 'Cancellazione account',
+			'warn' => 'Il tuo account e tutti i dati associati saranno cancellati.',
+		),
+		'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',
 	),
 	'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
+		'display' => 'Display user query results',	//TODO - Translation
 		'filter' => 'Filtro applicato:',
 		'get_all' => 'Mostra tutti gli articoli',
 		'get_category' => 'Mostra la categoria "%s" ',
@@ -53,7 +64,7 @@ return array(
 		'number' => 'Ricerca n°%d',
 		'order_asc' => 'Mostra prima gli articoli più vecchi',
 		'order_desc' => 'Mostra prima gli articoli più nuovi',
-		'remove' => 'Remove user query', // TODO
+		'remove' => 'Remove user query',	//TODO - Translation
 		'search' => 'Cerca per "%s"',
 		'state_0' => 'Mostra tutti gli articoli',
 		'state_1' => 'Mostra gli articoli letti',
@@ -73,31 +84,19 @@ return array(
 		'state_15' => 'Mostra tutti gli articoli',
 		'title' => 'Ricerche personali',
 	),
-	'profile' => array(
-		'_' => 'Gestione profili',
-		'delete' => array(
-			'_' => 'Cancellazione account',
-			'warn' => 'Il tuo account e tutti i dati associati saranno cancellati.',
-		),
-		'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',
-	),
 	'reading' => array(
 		'_' => 'Lettura',
 		'after_onread' => 'Dopo “segna tutto come letto”,',
 		'articles_per_page' => 'Numero di articoli per pagina',
 		'auto_load_more' => 'Carica articoli successivi a fondo pagina',
 		'auto_remove_article' => 'Nascondi articoli dopo la lettura',
-		'mark_updated_article_unread' => 'Segna articoli aggiornati come non letti',
 		'confirm_enabled' => 'Mostra una conferma per “segna tutto come letto”',
 		'display_articles_unfolded' => 'Mostra articoli aperti di predefinito',
 		'display_categories_unfolded' => 'Mostra categorie aperte di predefinito',
 		'hide_read_feeds' => 'Nascondi categorie e feeds con articoli già letti (non funziona se “Mostra tutti gli articoli” è selezionato)',
 		'img_with_lazyload' => 'Usa la modalità "caricamento ritardato" per le immagini',
-		'sides_close_article' => 'Clicking outside of article text area closes the article',	//TODO
 		'jump_next' => 'Salta al successivo feed o categoria non letto',
+		'mark_updated_article_unread' => 'Segna articoli aggiornati come non letti',
 		'number_divided_when_reader' => 'Diviso 2 nella modalità di lettura.',
 		'read' => array(
 			'article_open_on_website' => 'Quando un articolo è aperto nel suo sito di origine',
@@ -112,6 +111,7 @@ return array(
 			'all_articles' => 'Mostra tutti gli articoli',
 			'unread' => 'Mostra solo non letti',
 		),
+		'sides_close_article' => 'Clicking outside of article text area closes the article',	//TODO - Translation
 		'sort' => array(
 			'_' => 'Ordinamento',
 			'newer_first' => 'Prima i più recenti',
@@ -128,7 +128,7 @@ return array(
 	),
 	'sharing' => array(
 		'_' => 'Condivisione',
-		'add' => 'Add a sharing method', // TODO
+		'add' => 'Add a sharing method',	//TODO - Translation
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
 		'email' => 'Email',
@@ -136,7 +136,7 @@ return array(
 		'g+' => 'Google+',
 		'more_information' => 'Ulteriori informazioni',
 		'print' => 'Stampa',
-		'remove' => 'Remove sharing method', // TODO
+		'remove' => 'Remove sharing method',	//TODO - Translation
 		'shaarli' => 'Shaarli',
 		'share_name' => 'Nome condivisione',
 		'share_url' => 'URL condivisione',
@@ -153,27 +153,27 @@ return array(
 		'collapse_article' => 'Collassa articoli',
 		'first_article' => 'Salta al primo articolo',
 		'focus_search' => 'Modulo di ricerca',
-		'global_view' => 'Switch to global view', // TODO
+		'global_view' => 'Switch to global view',	//TODO - Translation
 		'help' => 'Mostra documentazione',
 		'javascript' => 'JavaScript deve essere abilitato per poter usare i comandi da tastiera',
 		'last_article' => 'Salta all ultimo articolo',
 		'load_more' => 'Carica altri articoli',
-		'mark_read' => 'Segna come letto',
 		'mark_favorite' => 'Segna come preferito',
+		'mark_read' => 'Segna come letto',
 		'navigation' => 'Navigazione',
 		'navigation_help' => 'Con il tasto "Shift" i comandi di navigazione verranno applicati ai feeds.<br/>Con il tasto "Alt" i comandi di navigazione verranno applicati alle categorie.',
 		'next_article' => 'Salta al contenuto successivo',
 		'normal_view' => 'Switch to normal view', // TODO
 		'other_action' => 'Altre azioni',
 		'previous_article' => 'Salta al contenuto precedente',
-		'reading_view' => 'Switch to reading view', // TODO
-		'rss_view' => 'Open RSS view in a new tab', // TODO
+		'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' => '+ <code>shift</code> per segnare tutti gli articoli come letti',
 		'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
+		'views' => 'Views',	//TODO - Translation
 	),
 	'user' => array(
 		'articles_and_size' => '%s articoli (%s)',

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

@@ -50,11 +50,15 @@ return array(
 		'no_zip_extension' => 'Estensione ZIP non presente sul server.',
 		'zip_error' => 'Si è verificato un errore importando il file ZIP',
 	),
+	'profile' => array(
+		'error' => 'Il tuo profilo non può essere modificato',
+		'updated' => 'Il tuo profilo è stato modificato',
+	),
 	'sub' => array(
 		'actualize' => 'Aggiorna',
 		'articles' => array(
-			'marked_read' => 'The selected articles have been marked as read.',	//TODO
-			'marked_unread' => 'The articles have been marked as unread.',	//TODO
+			'marked_read' => 'The selected articles have been marked as read.',	//TODO - Translation
+			'marked_unread' => 'The articles have been marked as unread.',	//TODO - Translation
 		),
 		'category' => array(
 			'created' => 'Categoria %s creata.',
@@ -76,7 +80,7 @@ return array(
 			'already_subscribed' => 'Hai già sottoscritto <em>%s</em>',
 			'deleted' => 'Feed cancellato',
 			'error' => 'Feed non aggiornato',
-			'internal_problem' => 'RSS feed non aggiunto. <a href="%s">Verifica i logs</a> per dettagli.', // @todo
+			'internal_problem' => 'RSS feed non aggiunto. <a href="%s">Verifica i logs</a> per dettagli.',	//TODO - Translation
 			'invalid_url' => 'URL <em>%s</em> non valido',
 			'n_actualized' => '%d feeds aggiornati',
 			'n_entries_deleted' => '%d articoli cancellati',
@@ -105,12 +109,8 @@ return array(
 			'error' => 'Utente %s non cancellato',
 		),
 		'updated' => array(
-			'_' => 'User %s has been updated', // TODO
-			'error' => 'User %s has not been updated', // TODO
+			'_' => 'User %s has been updated',	//TODO - Translation
+			'error' => 'User %s has not been updated',	//TODO - Translation
 		),
 	),
-	'profile' => array(
-		'error' => 'Il tuo profilo non può essere modificato',
-		'updated' => 'Il tuo profilo è stato modificato',
-	),
 );

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

@@ -44,33 +44,28 @@ return array(
 	),
 	'date' => array(
 		'Apr' => '\\A\\p\\r\\i\\l\\e',
-		'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' => '\\A\\g\\o\\s\\t\\o',
 		'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',
+		'Jan' => '\\G\\e\\n\\u\\a\\i\\o',
 		'jan' => 'genn.',
 		'january' => 'gennaio',
+		'Jul' => '\\L\\u\\g\\l\\i\\o',
 		'jul' => 'jul',
 		'july' => 'luglio',
+		'Jun' => '\\G\\i\\u\\g\\n\\o',
 		'jun' => 'jun',
 		'june' => 'giugno',
 		'last_3_month' => 'Ultimi 3 mesi',
@@ -78,17 +73,22 @@ 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' => '\\M\\a\\g\\g\\i\\o',
 		'may' => 'maggio',
 		'may_' => 'May',
 		'mon' => 'Mon',
 		'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',
+		'Sep' => '\\S\\e\\t\\t\\e\\m\\b\\r\\e',
 		'sep' => 'sett.',
 		'september' => 'settembre',
 		'sun' => 'Sun',
@@ -161,7 +161,6 @@ return array(
 		'previous' => 'Precedente',
 	),
 	'share' => array(
-		'Known' => 'Siti basati su Known',
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
 		'email' => 'Email',
@@ -169,6 +168,7 @@ return array(
 		'g+' => 'Google+',
 		'gnusocial' => 'GNU social',
 		'jdh' => 'Journal du hacker',
+		'Known' => 'Siti basati su Known',
 		'linkedin' => 'LinkedIn',
 		'mastodon' => 'Mastodon',
 		'movim' => 'Movim',

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

@@ -40,7 +40,7 @@ return array(
 		'mark_all_read' => 'Segna tutto come letto',
 		'mark_cat_read' => 'Segna la categoria come letta',
 		'mark_feed_read' => 'Segna il feed come letto',
-		'mark_selection_unread' => 'Mark selection as unread',	//TODO
+		'mark_selection_unread' => 'Mark selection as unread',	//TODO - Translation
 		'newer_first' => 'Mostra prima i recenti',
 		'non-starred' => 'Escludi preferiti',
 		'normal_view' => 'Vista elenco',
@@ -53,11 +53,11 @@ return array(
 		'starred' => 'Mostra solo preferiti',
 		'stats' => 'Statistiche',
 		'subscription' => 'Gestione sottoscrizioni',
-		'tags' => 'My labels',	//TODO
+		'tags' => 'My labels',	//TODO - Translation
 		'unread' => 'Mostra solo non letti',
 	),
 	'share' => 'Condividi',
 	'tag' => array(
-		'related' => 'Tags correlati',	//TODO
+		'related' => 'Tags correlati',	//TODO - Translation
 	),
 );

+ 3 - 4
app/i18n/it/install.php

@@ -24,8 +24,8 @@ return array(
 			'ok' => 'Le configurazioni del database sono state salvate.',
 		),
 		'host' => 'Host',
-		'prefix' => 'Prefisso tabella',
 		'password' => 'Password del database',
+		'prefix' => 'Prefisso tabella',
 		'type' => 'Tipo di database',
 		'username' => 'Nome utente del database',
 	),
@@ -69,8 +69,8 @@ return array(
 			'ok' => 'You have a recommended library to parse JSON.',
 		),
 		'mbstring' => array(
-			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO
-			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO
+			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO - Translation
+			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO - Translation
 		),
 		'minz' => array(
 			'nok' => 'Manca il framework Minz.',
@@ -85,7 +85,6 @@ return array(
 			'ok' => 'PDO e altri driver supportati (pdo_mysql, pdo_sqlite, pdo_pgsql).',
 		),
 		'php' => array(
-			'_' => 'Installazione PHP',
 			'nok' => 'Versione di PHP %s FreshRSS richiede almeno la versione %s.',
 			'ok' => 'Versione di PHP %s, compatibile con FreshRSS.',
 		),

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

@@ -2,13 +2,13 @@
 
 return array(
 	'api' => array(
-		'documentation' => 'Copy the following URL to use it within an external tool.',// TODO
-		'title' => 'API',// TODO
+		'documentation' => 'Copy the following URL to use it within an external tool.',	//TODO - Translation
+		'title' => 'API',	//TODO - Translation
 	),
 	'bookmarklet' => array(
 		'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose "Bookmark This Link". Then click "Subscribe" button in any page you want to subscribe to.',// TODO
-		'label' => 'Subscribe',// TODO
-		'title' => 'Bookmarklet',// TODO
+		'label' => 'Subscribe',	//TODO - Translation
+		'title' => 'Bookmarklet',	//TODO - Translation
 	),
 	'category' => array(
 		'_' => 'Categoria',
@@ -27,7 +27,7 @@ return array(
 			'password' => 'HTTP password',
 			'username' => 'HTTP username',
 		),
-		'clear_cache' => 'Always clear cache',	//TODO
+		'clear_cache' => 'Always clear cache',	//TODO - Translation
 		'css_help' => 'In caso di RSS feeds troncati (attenzione, richiede molto tempo!)',
 		'css_path' => 'Percorso del foglio di stile CSS del sito di origine',
 		'description' => 'Descrizione',
@@ -36,30 +36,30 @@ return array(
 		'informations' => 'Informazioni',
 		'keep_history' => 'Numero minimo di articoli da mantenere',
 		'moved_category_deleted' => 'Cancellando una categoria i feed al suo interno verranno classificati automaticamente come <em>%s</em>.',
-		'mute' => 'mute', // TODO
+		'mute' => 'mute',	//TODO - Translation
 		'no_selected' => 'Nessun feed selezionato.',
 		'number_entries' => '%d articoli',
 		'priority' => array(
-			'_' => 'Visibility', // TODO
-			'archived' => 'Do not show (archived)', // TODO
-			'main_stream' => 'Mostra in homepage', // TODO
-			'normal' => 'Show in its category', // TODO
+			'_' => 'Visibility',	//TODO - Translation
+			'archived' => 'Do not show (archived)',	//TODO - Translation
+			'main_stream' => 'Mostra in homepage',	//TODO - Translation
+			'normal' => 'Show in its category',	//TODO - Translation
 		),
-		'ssl_verify' => 'Verify SSL security',	//TODO
+		'pubsubhubbub' => 'Notifica istantanea con PubSubHubbub',
+		'ssl_verify' => 'Verify SSL security',	//TODO - Translation
 		'stats' => 'Statistiche',
 		'think_to_add' => 'Aggiungi feed.',
-		'timeout' => 'Timeout in seconds',	//TODO
+		'timeout' => 'Timeout in seconds',	//TODO - Translation
 		'title' => 'Titolo',
 		'title_add' => 'Aggiungi RSS feed',
 		'ttl' => 'Non aggiornare automaticamente piu di',
 		'url' => 'Feed URL',
 		'validator' => 'Controlla la validita del feed ',
 		'website' => 'URL del sito',
-		'pubsubhubbub' => 'Notifica istantanea con PubSubHubbub',
 	),
 	'firefox' => array(
-		'documentation' => 'Follow the steps described <a href="https://developer.mozilla.org/en-US/Firefox/Releases/2/Adding_feed_readers_to_Firefox#Adding_a_new_feed_reader_manually">here</a> to add FreshRSS to Firefox feed reader list.',// TODO
-		'title' => 'Firefox feed reader',// TODO
+		'documentation' => 'Follow the steps described <a href="https://developer.mozilla.org/en-US/Firefox/Releases/2/Adding_feed_readers_to_Firefox#Adding_a_new_feed_reader_manually">here</a> to add FreshRSS to Firefox feed reader list.',	//TODO - Translation
+		'title' => 'Firefox feed reader',	//TODO - Translation
 	),
 	'import_export' => array(
 		'export' => 'Esporta',
@@ -76,11 +76,11 @@ return array(
 		'bookmark' => 'Bookmark (trascina nei preferiti)',
 		'import_export' => 'Importa / esporta',
 		'subscription_management' => 'Gestione sottoscrizioni',
-		'subscription_tools' => 'Subscription tools',// TODO
+		'subscription_tools' => 'Subscription tools',	//TODO - Translation
 	),
 	'title' => array(
 		'_' => 'Gestione sottoscrizioni',
 		'feed_management' => 'Gestione RSS feeds',
-		'subscription_tools' => 'Subscription tools',// TODO
+		'subscription_tools' => 'Subscription tools',	//TODO - Translation
 	),
 );

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

@@ -67,8 +67,8 @@ return array(
 			'ok' => 'JSON  확장 기능이 설치되어 있습니다.',
 		),
 		'mbstring' => array(
-			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO
-			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO
+			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO - Translation
+			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO - Translation
 		),
 		'minz' => array(
 			'nok' => 'Minz 프레임워크를 찾을 수 없습니다.',
@@ -106,23 +106,23 @@ return array(
 		),
 	),
 	'extensions' => array(
+		'author' => '제작자',
+		'community' => '사용 가능한 커뮤니티 확장 기능들',
+		'description' => '설명',
 		'disabled' => '비활성화됨',
 		'empty_list' => '설치된 확장 기능이 없습니다',
 		'enabled' => '활성화됨',
+		'latest' => '설치됨',
+		'name' => '이름',
 		'no_configure_view' => '이 확장 기능은 설정이 없습니다.',
 		'system' => array(
 			'_' => '시스템 확장 기능',
 			'no_rights' => '시스템 확장 기능 (이 확장 기능에 대한 권한이 없습니다)',
 		),
 		'title' => '확장 기능',
+		'update' => '업데이트 있음',
 		'user' => '사용자 확장 기능',
-		'community' => '사용 가능한 커뮤니티 확장 기능들',
-		'name' => '이름',
 		'version' => '버전',
-		'description' => '설명',
-		'author' => '제작자',
-		'latest' => '설치됨',
-		'update' => '업데이트 있음',
 	),
 	'stats' => array(
 		'_' => '통계',

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

@@ -19,7 +19,7 @@ return array(
 			'bottom_line' => '하단',
 			'entry' => '문서 아이콘',
 			'publication_date' => '발행일',
-			'related_tags' => '관련 태그',	//TODO
+			'related_tags' => '관련 태그',
 			'sharing' => '공유',
 			'top_line' => '상단',
 		),
@@ -28,6 +28,7 @@ return array(
 			'seconds' => '초 (0: 타임아웃 없음)',
 			'timeout' => 'HTML5 알림 타임아웃',
 		),
+		'show_nav_buttons' => '내비게이션 버튼 보이기',
 		'theme' => '테마',
 		'title' => '표시',
 		'width' => array(
@@ -37,7 +38,17 @@ return array(
 			'no_limit' => '제한 없음',
 			'thin' => '얇음',
 		),
-		'show_nav_buttons' => '내비게이션 버튼 보이기',
+	),
+	'profile' => array(
+		'_' => '프로필 관리',
+		'delete' => array(
+			'_' => '계정 삭제',
+			'warn' => '당신의 계정과 관련된 모든 데이터가 삭제됩니다.',
+		),
+		'password_api' => 'API 암호<br /><small>(예: 모바일 애플리케이션)</small>',
+		'password_form' => '암호<br /><small>(웹폼 로그인 방식 사용시)</small>',
+		'password_format' => '7 글자 이상이어야 합니다',
+		'title' => '프로필',
 	),
 	'query' => array(
 		'_' => '사용자 쿼리',
@@ -73,31 +84,19 @@ return array(
 		'state_15' => '모든 글 표시',
 		'title' => '사용자 쿼리',
 	),
-	'profile' => array(
-		'_' => '프로필 관리',
-		'delete' => array(
-			'_' => '계정 삭제',
-			'warn' => '당신의 계정과 관련된 모든 데이터가 삭제됩니다.',
-		),
-		'password_api' => 'API 암호<br /><small>(예: 모바일 애플리케이션)</small>',
-		'password_form' => '암호<br /><small>(웹폼 로그인 방식 사용시)</small>',
-		'password_format' => '7 글자 이상이어야 합니다',
-		'title' => '프로필',
-	),
 	'reading' => array(
 		'_' => '읽기',
 		'after_onread' => '“모두 읽음으로 표시” 후,',
 		'articles_per_page' => '페이지당 글 수',
 		'auto_load_more' => '페이지 하단에 다다르면 글 더 불러오기',
 		'auto_remove_article' => '글을 읽은 후 숨기기',
-		'mark_updated_article_unread' => '갱신 된 글을 읽지 않음으로 표시',
 		'confirm_enabled' => '“모두 읽음으로 표시” 실행시 확인 창 표시',
 		'display_articles_unfolded' => '글을 펼쳐진 상태로 보여주기',
 		'display_categories_unfolded' => '카테고리를 접힌 상태로 보여주기',
 		'hide_read_feeds' => '읽지 않은 글이 없는 카테고리와 피드 감추기 (“모든 글 표시”가 설정된 경우 동작하지 않습니다)',
 		'img_with_lazyload' => '그림을 불러오는 데에 "lazy load" 모드 사용하기',
-		'sides_close_article' => '글 영역 바깥을 클릭하면 글 접기',
 		'jump_next' => '다음 읽지 않은 항목으로 이동 (피드 또는 카테고리)',
+		'mark_updated_article_unread' => '갱신 된 글을 읽지 않음으로 표시',
 		'number_divided_when_reader' => '읽기 모드에서는 절반만 표시됩니다.',
 		'read' => array(
 			'article_open_on_website' => '글이 게재된 웹사이트를 방문했을 때',
@@ -112,6 +111,7 @@ return array(
 			'all_articles' => '모든 글 표시',
 			'unread' => '읽지 않은 글만 표시',
 		),
+		'sides_close_article' => '글 영역 바깥을 클릭하면 글 접기',
 		'sort' => array(
 			'_' => '정렬 순서',
 			'newer_first' => '최근 글 먼저',
@@ -158,8 +158,8 @@ return array(
 		'javascript' => '단축키를 사용하기 위해선 자바스크립트를 사용하도록 설정하여야 합니다',
 		'last_article' => '마지막 글 보기',
 		'load_more' => '글 더 불러오기',
-		'mark_read' => '읽음으로 표시',
 		'mark_favorite' => '즐겨찾기에 등록',
+		'mark_read' => '읽음으로 표시',
 		'navigation' => '탐색',
 		'navigation_help' => '"Shift" 키를 누른 상태에선 탐색 단축키가 피드에 적용됩니다.<br/>"Alt" 키를 누른 상태에선 탐색 단축키가 카테고리에 적용됩니다.',
 		'next_article' => '다음 글 보기',

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

@@ -50,11 +50,15 @@ return array(
 		'no_zip_extension' => 'ZIP 확장 기능을 서버에서 찾을 수 없습니다.',
 		'zip_error' => 'ZIP 파일을 불러오는 동안 문제가 발생했습니다.',
 	),
+	'profile' => array(
+		'error' => '프로필을 변경할 수 없습니다',
+		'updated' => '프로필을 변경했습니다',
+	),
 	'sub' => array(
 		'actualize' => '피드를 가져오는 중입니다',
 		'articles' => array(
-			'marked_read' => 'The selected articles have been marked as read.',	//TODO
-			'marked_unread' => 'The articles have been marked as unread.',	//TODO
+			'marked_read' => 'The selected articles have been marked as read.',	//TODO - Translation
+			'marked_unread' => 'The articles have been marked as unread.',	//TODO - Translation
 		),
 		'category' => array(
 			'created' => '%s 카테고리가 생성되었습니다.',
@@ -109,8 +113,4 @@ return array(
 			'error' => '사용자 %s의 정보가 변경되지 않았습니다',
 		),
 	),
-	'profile' => array(
-		'error' => '프로필을 변경할 수 없습니다',
-		'updated' => '프로필을 변경했습니다',
-	),
 );

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

@@ -44,33 +44,28 @@ return array(
 	),
 	'date' => array(
 		'Apr' => '\\A\\p\\r\\i\\l',
-		'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' => '\\A\\u\\g\\u\\s\\t',
 		'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' => '\\J\\u\\l\\y',
 		'jul' => '7월',
 		'july' => '7월',
+		'Jun' => '\\J\\u\\n\\e',
 		'jun' => '6월',
 		'june' => '6월',
 		'last_3_month' => '최근 3 개월',
@@ -78,17 +73,22 @@ return array(
 		'last_month' => '최근 한 달',
 		'last_week' => '최근 한 주',
 		'last_year' => '최근 일 년',
+		'Mar' => '\\M\\a\\r\\c\\h',
 		'mar' => '3월',
 		'march' => '3월',
+		'May' => '\\M\\a\\y',
 		'may' => '5월',
 		'may_' => '5월',
+		'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r',
 		'mon' => '월',
 		'month' => '개월',
 		'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' => '일',
@@ -161,7 +161,6 @@ return array(
 		'previous' => 'Previous',
 	),
 	'share' => array(
-		'Known' => 'Known based sites',
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
 		'email' => '메일',
@@ -169,6 +168,7 @@ return array(
 		'g+' => 'Google+',
 		'gnusocial' => 'GNU social',
 		'jdh' => 'Journal du hacker',
+		'Known' => 'Known based sites',
 		'linkedin' => 'LinkedIn',
 		'mastodon' => 'Mastodon',
 		'movim' => 'Movim',

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

@@ -40,7 +40,7 @@ return array(
 		'mark_all_read' => '모두 읽음으로 표시',
 		'mark_cat_read' => '카테고리를 읽음으로 표시',
 		'mark_feed_read' => '피드를 읽음으로 표시',
-		'mark_selection_unread' => 'Mark selection as unread',	//TODO
+		'mark_selection_unread' => 'Mark selection as unread',	//TODO - Translation
 		'newer_first' => '최근 글 먼저',
 		'non-starred' => '즐겨찾기를 제외하고 표시',
 		'normal_view' => '일반 모드',
@@ -53,11 +53,11 @@ return array(
 		'starred' => '즐겨찾기만 표시',
 		'stats' => '통계',
 		'subscription' => '구독 관리',
-		'tags' => 'My labels',	//TODO
+		'tags' => 'My labels',	//TODO - Translation
 		'unread' => '읽지 않은 글만 표시',
 	),
 	'share' => '공유',
 	'tag' => array(
-		'related' => '관련 태그',	//TODO
+		'related' => '관련 태그',	//TODO - Translation
 	),
 );

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

@@ -24,8 +24,8 @@ return array(
 			'ok' => '데이터베이스 설정이 저장되었습니다.',
 		),
 		'host' => '데이터베이스 서버',
-		'prefix' => '테이블 접두어',
 		'password' => '데이터베이스 암호',
+		'prefix' => '테이블 접두어',
 		'type' => '데이터베이스 종류',
 		'username' => '데이터베이스 사용자 이름',
 	),
@@ -69,8 +69,8 @@ return array(
 			'ok' => 'JSON  확장 기능이 설치되어 있습니다.',
 		),
 		'mbstring' => array(
-			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO
-			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO
+			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO - Translation
+			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO - Translation
 		),
 		'minz' => array(
 			'nok' => 'Minz 프레임워크를 찾을 수 없습니다.',

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

@@ -27,7 +27,7 @@ return array(
 			'password' => 'HTTP 암호',
 			'username' => 'HTTP 사용자 이름',
 		),
-		'clear_cache' => 'Always clear cache',	//TODO
+		'clear_cache' => 'Always clear cache',	//TODO - Translation
 		'css_help' => '글의 일부가 포함된 RSS 피드를 가져옵니다 (주의, 시간이 좀 더 걸립니다!)',
 		'css_path' => '웹사이트 상의 글 본문에 해당하는 CSS 경로',
 		'description' => '설명',
@@ -45,6 +45,7 @@ return array(
 			'main_stream' => '메인 스트림에 표시하기',
 			'normal' => '피드가 속한 카테고리에만 표시하기',
 		),
+		'pubsubhubbub' => 'PubSubHubbub을 사용한 즉시 알림',
 		'ssl_verify' => 'SSL 유효성 검사',
 		'stats' => '통계',
 		'think_to_add' => '피드를 추가할 수 있습니다.',
@@ -55,7 +56,6 @@ return array(
 		'url' => '피드 URL',
 		'validator' => '피드 유효성 검사',
 		'website' => '웹사이트 URL',
-		'pubsubhubbub' => 'PubSubHubbub을 사용한 즉시 알림',
 	),
 	'firefox' => array(
 		'documentation' => 'FreshRSS를 Firefox 피드 리더에 추가하기 위해서는 <a href="https://developer.mozilla.org/en-US/Firefox/Releases/2/Adding_feed_readers_to_Firefox#Adding_a_new_feed_reader_manually">여기</a>의 설명을 따르세요.',

+ 6 - 11
app/i18n/nl/admin.php

@@ -106,23 +106,23 @@ return array(
 		),
 	),
 	'extensions' => array(
+		'author' => 'Auteur',
+		'community' => 'Gebruikersuitbreidingen beschikbaar',
+		'description' => 'Beschrijving',
 		'disabled' => 'Uitgeschakeld',
 		'empty_list' => 'Er zijn geïnstalleerde uitbreidingen',
 		'enabled' => 'Ingeschakeld',
+		'latest' => 'Geïnstalleerd',
+		'name' => 'Naam',
 		'no_configure_view' => 'Deze uitbreiding kan niet worden geconfigureerd.',
 		'system' => array(
 			'_' => 'Systeemuitbreidingen',
 			'no_rights' => 'Systeemuitbreidingen (U hebt hier geen rechten op)',
 		),
 		'title' => 'Uitbreidingen',
+		'update' => 'Update beschikbaar',
 		'user' => 'Gebruikersuitbreidingen',
-		'community' => 'Gebruikersuitbreidingen beschikbaar',
-		'name' => 'Naam',
 		'version' => 'Versie',
-		'description' => 'Beschrijving',
-		'author' => 'Auteur',
-		'latest' => 'Geïnstalleerd',
-		'update' => 'Update beschikbaar',
 	),
 	'stats' => array(
 		'_' => 'Statistieken',
@@ -185,11 +185,6 @@ return array(
 		'numbers' => 'Er zijn %d accounts gemaakt',
 		'password_form' => 'Wachtwoord<br /><small>(voor de Web-formulier loginmethode)</small>',
 		'password_format' => 'Ten minste 7 tekens',
-		'registration' => array(
-			'allow' => 'Sta het maken van nieuwe accounts toe',
-			'help' => '0 betekent dat er geen accountlimiet is',
-			'number' => 'Max aantal accounts',
-		),
 		'selected' => 'Geselecteerde gebruiker',
 		'title' => 'Beheer gebruikers',
 		'update_users' => 'Gebruiker bijwerken',

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

@@ -19,7 +19,7 @@ return array(
 			'bottom_line' => 'Onderaan',
 			'entry' => 'Artikel pictogrammen',
 			'publication_date' => 'Publicatie datum',
-			'related_tags' => 'Gerelateerde labels',	//TODO
+			'related_tags' => 'Gerelateerde labels',
 			'sharing' => 'Delen',
 			'top_line' => 'Bovenaan',
 		),
@@ -28,6 +28,7 @@ return array(
 			'seconds' => 'seconden (0 betekent geen stop)',
 			'timeout' => 'HTML5 notificatie stop',
 		),
+		'show_nav_buttons' => 'Toon navigatieknoppen',
 		'theme' => 'Thema',
 		'title' => 'Opmaak',
 		'width' => array(
@@ -37,7 +38,17 @@ return array(
 			'no_limit' => 'Geen limiet',
 			'thin' => 'Smal',
 		),
-		'show_nav_buttons' => 'Toon navigatieknoppen',
+	),
+	'profile' => array(
+		'_' => 'Profiel beheer',
+		'delete' => array(
+			'_' => 'Account verwijderen',
+			'warn' => 'Uw account en alle gerelateerde gegvens worden verwijderd.',
+		),
+		'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',
 	),
 	'query' => array(
 		'_' => 'Gebruikersquery\'s (informatie aanvragen)',
@@ -73,17 +84,6 @@ return array(
 		'state_15' => 'Toon alle artikelen',
 		'title' => 'Gebruikersquery\'s',
 	),
-	'profile' => array(
-		'_' => 'Profiel beheer',
-		'delete' => array(
-			'_' => 'Account verwijderen',
-			'warn' => 'Uw account en alle gerelateerde gegvens worden verwijderd.',
-		),
-		'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',
-	),
 	'reading' => array(
 		'_' => 'Lezen',
 		'after_onread' => 'Na “markeer alles als gelezen”,',
@@ -95,7 +95,6 @@ return array(
 		'display_categories_unfolded' => 'Toon categoriën ingeklapt als standaard',
 		'hide_read_feeds' => 'Verberg categoriën en feeds zonder ongelezen artikelen (werkt niet met “Toon alle artikelen” configuratie)',
 		'img_with_lazyload' => 'Gebruik "lazy load" methode om afbeeldingen te laden',
-		'sides_close_article' => 'Sluit het artikel door buiten de artikeltekst te klikken',
 		'jump_next' => 'Ga naar volgende ongelezen (feed of categorie)',
 		'mark_updated_article_unread' => 'Markeer vernieuwd artikel als ongelezen',
 		'number_divided_when_reader' => 'Gedeeld door 2 in de lees modus.',
@@ -112,6 +111,7 @@ return array(
 			'all_articles' => 'Bekijk alle artikelen',
 			'unread' => 'Bekijk alleen ongelezen',
 		),
+		'sides_close_article' => 'Sluit het artikel door buiten de artikeltekst te klikken',
 		'sort' => array(
 			'_' => 'Sorteer volgorde',
 			'newer_first' => 'Nieuwste eerst',
@@ -158,8 +158,8 @@ return array(
 		'javascript' => 'JavaScript moet geactiveerd zijn om verwijzingen te gebruiken',
 		'last_article' => 'Spring naar laatste artikel',
 		'load_more' => 'Laad meer artikelen',
-		'mark_read' => 'Markeer als gelezen',
 		'mark_favorite' => 'Markeer als favoriet',
+		'mark_read' => 'Markeer als gelezen',
 		'navigation' => 'Navigatie',
 		'navigation_help' => 'Met de "Shift" toets, kunt u navigatie verwijzingen voor feeds gebruiken.<br/>Met de "Alt" toets, kunt u navigatie verwijzingen voor categoriën gebruiken.',
 		'next_article' => 'Spring naar volgende artikel',

+ 4 - 5
app/i18n/nl/feedback.php

@@ -50,6 +50,10 @@ return array(
 		'no_zip_extension' => 'ZIP uitbreiding is niet aanwezig op uw server.',
 		'zip_error' => 'Er is een fout opgetreden tijdens het imporeren van het ZIP bestand.',
 	),
+	'profile' => array(
+		'error' => 'Uw profiel kan niet worden aangepast',
+		'updated' => 'Uw profiel is aangepast',
+	),
 	'sub' => array(
 		'actualize' => 'Actualiseren',
 		'articles' => array(
@@ -108,10 +112,5 @@ return array(
 			'_' => 'Gebruiker %s is bijgewerkt',
 			'error' => 'Gebruiker %s kan niet worden bijgewerkt',
 		),
-		'set_registration' => 'Het maximale aantal accounts is vernieuwd.',
-	),
-	'profile' => array(
-		'error' => 'Uw profiel kan niet worden aangepast',
-		'updated' => 'Uw profiel is aangepast',
 	),
 );

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

@@ -44,33 +44,28 @@ return array(
 	),
 	'date' => array(
 		'Apr' => '\\A\\p\\r\\i\\l',
-		'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' => '\\A\\u\\g\\u\\s\\t\\u\\s',
 		'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' => '\\J\\u\\l\\i',
 		'jul' => 'jul',
 		'july' => 'Jul',
+		'Jun' => '\\J\\u\\n\\i',
 		'jun' => 'jun',
 		'june' => 'Jun',
 		'last_3_month' => 'Laatste drie maanden',
@@ -78,17 +73,22 @@ 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' => '\\M\\e\\i',
 		'may' => 'Mei',
 		'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',
@@ -161,7 +161,6 @@ return array(
 		'previous' => 'Vorige',
 	),
 	'share' => array(
-		'Known' => 'Known based sites',
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
 		'email' => 'Email',
@@ -169,6 +168,7 @@ return array(
 		'g+' => 'Google+',
 		'gnusocial' => 'GNU social',
 		'jdh' => 'Journal du hacker',
+		'Known' => 'Known based sites',
 		'linkedin' => 'LinkedIn',
 		'mastodon' => 'Mastodon',
 		'movim' => 'Movim',

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

@@ -53,10 +53,11 @@ return array(
 		'starred' => 'Laat alleen favorieten zien',
 		'stats' => 'Statistieken',
 		'subscription' => 'Abonnementen beheer',
+		'tags' => 'My labels',	//TODO - Translation
 		'unread' => 'Laat alleen ongelezen zien',
 	),
 	'share' => 'Delen',
 	'tag' => array(
-		'related' => 'Verwante labels',	//TODO
+		'related' => 'Verwante labels',	//TODO - Translation
 	),
 );

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

@@ -24,8 +24,8 @@ return array(
 			'ok' => 'Database configuratie is opgeslagen.',
 		),
 		'host' => 'Host',
-		'prefix' => 'Tabel voorvoegsel',
 		'password' => 'Database wachtwoord',
+		'prefix' => 'Tabel voorvoegsel',
 		'type' => 'Type database',
 		'username' => 'Database gebruikersnaam',
 	),

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

@@ -27,7 +27,7 @@ return array(
 			'password' => 'HTTP wachtwoord',
 			'username' => 'HTTP gebruikers naam',
 		),
-		'clear_cache' => 'Always clear cache',	//TODO
+		'clear_cache' => 'Always clear cache',	//TODO - Translation
 		'css_help' => 'Haalt verstoorde RSS feeds op (attentie, heeft meer tijd nodig!)',
 		'css_path' => 'Artikelen CSS pad op originele website',
 		'description' => 'Omschrijving',

+ 91 - 90
app/i18n/oc/admin.php

@@ -1,99 +1,13 @@
 <?php
+
 return array(
-	'extensions' => array(
-		'disabled' => 'Desactivada',
-		'enabled' => 'Activada',
-		'name' => 'Nom',
-		'description' => 'Descripcion',
-		'empty_list' => 'Cap d’extensions pas installadas',
-		'no_configure_view' => 'Aquesta extension se pòt pas configurar.',
-		'system' => array(
-			'_' => 'Extensions sistèma',
-			'no_rights' => 'Extensions sistèma (contrarotlat per l’administrator)',
-		),
-		'title' => 'Extensions',
-		'user' => 'Extensions utilizaire',
-		'community' => 'Extensions utilizaires disponiblas',
-		'version' => 'Version',
-		'author' => 'Autor',
-		'latest' => 'Installada',
-		'update' => 'Mesa a jorn disponibla',
-	),
-	'stats' => array(
-		'no_idle' => 'I a pas cap d’article inactiu !',
-		'status_favorites' => 'Favorits',
-		'status_read' => 'Legit',
-		'_' => 'Estatisticas',
-		'all_feeds' => 'Totes los fluxes',
-		'category' => 'Categoria',
-		'entry_count' => 'Nombre d’articles',
-		'entry_per_category' => 'Articles per categoria',
-		'entry_per_day' => 'Nombre d’articles per jorn (30 darrièrs jorns)',
-		'entry_per_day_of_week' => 'Per jorn de la setmana (mejana : %.2f messatges)',
-		'entry_per_hour' => 'Per ora (mejana : %.2f messatges)',
-		'entry_per_month' => 'Per mes (mejana : %.2f messatges)',
-		'entry_repartition' => 'Reparticion dels articles',
-		'feed' => 'Flux',
-		'feed_per_category' => 'Fluxes per categoria',
-		'idle' => 'Fluxes inactius',
-		'main' => 'Estatisticas principalas',
-		'main_stream' => 'Flux màger',
-		'menu' => array(
-			'idle' => 'Fluxes inactius',
-			'main' => 'Estatisticas principalas',
-			'repartition' => 'Reparticion dels articles',
-		),
-		'number_entries' => '%d articles',
-		'percent_of_total' => '%% del total',
-		'repartition' => 'Reparticion dels articles',
-		'status_total' => 'Total',
-		'status_unread' => 'Pas legits',
-		'title' => 'Estatisticas',
-		'top_feed' => 'Los dètz fluxes mai gròsses',
-	),
-	'system' => array(
-		'_' => 'Configuracion sistèma',
-		'instance-name' => 'Nom de l’instància',
-		'registration' => array(
-			'number' => 'Nombre max de comptes',
-			'help' => '0 vòl dire qu’i a pas cap de limita de compte',
-		),
-		'auto-update-url' => 'URL del servici de mesa a jorn',
-		'max-categories' => 'Limita de categoria per utilizaire',
-		'max-feeds' => 'Limita de fluxes per utilizaire',
-	),
-	'update' => array(
-		'apply' => 'Aplicar',
-		'none' => 'Cap d’actualizacion d’aplicar',
-		'_' => 'Sistèma de mesa a jorn',
-		'check' => 'Verificar las mesas a jorn',
-		'current_version' => 'Vòstra version actuala de FreshRSS es %s.',
-		'last' => 'Darrièra verificacion : %s',
-		'title' => 'Sistèma de mesa a jorn',
-	),
-	'user' => array(
-		'delete_users' => 'Suprimir un utilizaire',
-		'language' => 'Lenga',
-		'password_format' => 'Almens 7 caractèrs',
-		'selected' => 'Utilizaire seleccionat',
-		'username' => 'Nom d’utilizaire',
-		'users' => 'Utilizaires',
-		'articles_and_size' => '%s articles (%s)',
-		'create' => 'Crear un nòu utilizaire',
-		'number' => '%d compte ja creat',
-		'numbers' => '%d comptes ja creats',
-		'password_form' => 'Senhal <br /><small>(ex. : per la connexion via formulari)</small>',
-		'title' => 'Gestion dels utilizaires',
-		'update_users' => 'Actualizar un utilizaire',
-		'user_list' => 'Lista dels utilizaires',
-	),
 	'auth' => array(
-		'none' => 'Cap (perilhós)',
 		'allow_anonymous' => 'Autorizar la lectura anonima dels articles de l’utilizaire per defaut (%s)',
 		'allow_anonymous_refresh' => 'Autorizar l’actualizacion anonime dels fluxes',
 		'api_enabled' => 'Autorizar l’accès per <abbr>API</abbr><small>(necessari per las aplicacions mobil)</small>',
 		'form' => 'Formulari (tradicional, demanda JavaScript)',
 		'http' => 'HTTP (per utilizaires avançats amb HTTPS)',
+		'none' => 'Cap (perilhós)',
 		'title' => 'Autentificacion',
 		'title_reset' => 'Reïnicializacion de l’autentificacion',
 		'token' => 'Geton d’autentificacion',
@@ -103,8 +17,8 @@ return array(
 	),
 	'check_install' => array(
 		'cache' => array(
-		'nok' => 'Volgatz verificar los dreches sul repertòri <em>./data/cache</em>. Lo servidor HTTP deu poder escriure dedins',
-		'ok' => 'Los dreches sul cache son bons.',
+			'nok' => 'Volgatz verificar los dreches sul repertòri <em>./data/cache</em>. Lo servidor HTTP deu poder escriure dedins',
+			'ok' => 'Los dreches sul cache son bons.',
 		),
 		'categories' => array(
 			'nok' => 'La tabla “category” es mala configurada.',
@@ -191,4 +105,91 @@ return array(
 			'ok' => 'Avètz l’exension ZIP.',
 		),
 	),
+	'extensions' => array(
+		'author' => 'Autor',
+		'community' => 'Extensions utilizaires disponiblas',
+		'description' => 'Descripcion',
+		'disabled' => 'Desactivada',
+		'empty_list' => 'Cap d’extensions pas installadas',
+		'enabled' => 'Activada',
+		'latest' => 'Installada',
+		'name' => 'Nom',
+		'no_configure_view' => 'Aquesta extension se pòt pas configurar.',
+		'system' => array(
+			'_' => 'Extensions sistèma',
+			'no_rights' => 'Extensions sistèma (contrarotlat per l’administrator)',
+		),
+		'title' => 'Extensions',
+		'update' => 'Mesa a jorn disponibla',
+		'user' => 'Extensions utilizaire',
+		'version' => 'Version',
+	),
+	'stats' => array(
+		'_' => 'Estatisticas',
+		'all_feeds' => 'Totes los fluxes',
+		'category' => 'Categoria',
+		'entry_count' => 'Nombre d’articles',
+		'entry_per_category' => 'Articles per categoria',
+		'entry_per_day' => 'Nombre d’articles per jorn (30 darrièrs jorns)',
+		'entry_per_day_of_week' => 'Per jorn de la setmana (mejana : %.2f messatges)',
+		'entry_per_hour' => 'Per ora (mejana : %.2f messatges)',
+		'entry_per_month' => 'Per mes (mejana : %.2f messatges)',
+		'entry_repartition' => 'Reparticion dels articles',
+		'feed' => 'Flux',
+		'feed_per_category' => 'Fluxes per categoria',
+		'idle' => 'Fluxes inactius',
+		'main' => 'Estatisticas principalas',
+		'main_stream' => 'Flux màger',
+		'menu' => array(
+			'idle' => 'Fluxes inactius',
+			'main' => 'Estatisticas principalas',
+			'repartition' => 'Reparticion dels articles',
+		),
+		'no_idle' => 'I a pas cap d’article inactiu !',
+		'number_entries' => '%d articles',
+		'percent_of_total' => '%% del total',
+		'repartition' => 'Reparticion dels articles',
+		'status_favorites' => 'Favorits',
+		'status_read' => 'Legit',
+		'status_total' => 'Total',
+		'status_unread' => 'Pas legits',
+		'title' => 'Estatisticas',
+		'top_feed' => 'Los dètz fluxes mai gròsses',
+	),
+	'system' => array(
+		'_' => 'Configuracion sistèma',
+		'auto-update-url' => 'URL del servici de mesa a jorn',
+		'instance-name' => 'Nom de l’instància',
+		'max-categories' => 'Limita de categoria per utilizaire',
+		'max-feeds' => 'Limita de fluxes per utilizaire',
+		'registration' => array(
+			'number' => 'Nombre max de comptes',
+			'help' => '0 vòl dire qu’i a pas cap de limita de compte',
+		),
+	),
+	'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',
+	),
+	'user' => array(
+		'articles_and_size' => '%s articles (%s)',
+		'create' => 'Crear un nòu utilizaire',
+		'delete_users' => 'Suprimir un utilizaire',
+		'language' => 'Lenga',
+		'number' => '%d compte ja creat',
+		'numbers' => '%d comptes ja creats',
+		'password_form' => 'Senhal <br /><small>(ex. : per la connexion via formulari)</small>',
+		'password_format' => 'Almens 7 caractèrs',
+		'selected' => 'Utilizaire seleccionat',
+		'title' => 'Gestion dels utilizaires',
+		'update_users' => 'Actualizar un utilizaire',
+		'user_list' => 'Lista dels utilizaires',
+		'username' => 'Nom d’utilizaire',
+		'users' => 'Utilizaires',
+	),
 );

+ 30 - 29
app/i18n/oc/conf.php

@@ -1,11 +1,6 @@
 <?php
+
 return array(
-	'user' => array(
-		'users' => 'Utilizaires',
-		'articles_and_size' => '%s articles (%s)',
-		'current' => 'Utilizaire actual',
-		'is_admin' => 'es administrator',
-	),
 	'archiving' => array(
 		'_' => 'Archivar',
 		'advanced' => 'Avançat',
@@ -33,6 +28,7 @@ return array(
 			'seconds' => 'segondas (0 significa cap de timeout)',
 			'timeout' => 'Temps d’afichatge de las notificacions HTML5',
 		),
+		'show_nav_buttons' => 'Mostrar los botons de navigacion',
 		'theme' => 'Tèma',
 		'title' => 'Afichatge',
 		'width' => array(
@@ -42,7 +38,17 @@ return array(
 			'no_limit' => 'Cap de limit',
 			'thin' => 'Fina',
 		),
-		'show_nav_buttons' => 'Mostrar los botons de navigacion',
+	),
+	'profile' => array(
+		'_' => 'Gestion del perfil',
+		'delete' => array(
+			'_' => 'Supression del compte',
+			'warn' => 'Lo compte e totas las donadas ligadas seràn suprimits.',
+		),
+		'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',
 	),
 	'query' => array(
 		'_' => 'Filtres utilizaires',
@@ -78,31 +84,19 @@ return array(
 		'state_15' => 'Mostrar totes los articles',
 		'title' => 'Filtres utilizaire',
 	),
-	'profile' => array(
-		'_' => 'Gestion del perfil',
-		'delete' => array(
-			'_' => 'Supression del compte',
-			'warn' => 'Lo compte e totas las donadas ligadas seràn suprimits.',
-		),
-		'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',
-	),
 	'reading' => array(
 		'_' => 'Lectura',
 		'after_onread' => 'Aprèp « marcar coma legit »,',
 		'articles_per_page' => 'Nombre d’articles per pagina',
 		'auto_load_more' => 'Cargar los articles seguents enbàs de la pagina',
 		'auto_remove_article' => 'Rescondre los articles aprèp lectura',
-		'mark_updated_article_unread' => 'Marcar los articles actualizats coma pas legits',
 		'confirm_enabled' => 'Mostrar una confirmacion per las accions del tipe « o marcar tot coma legit »',
 		'display_articles_unfolded' => 'Mostrar los articles desplegats per defaut',
 		'display_categories_unfolded' => 'Mostrar las categorias plegadas per defaut',
 		'hide_read_feeds' => 'Rescondre las categorias & fluxes sens articles pas legits (fonciona pas amb la configuracion « Mostrar totes los articles »)',
 		'img_with_lazyload' => 'Utilizar lo mòde “cargament tardiu” per las imatges',
-		'sides_close_article' => 'Clicar fòra de la zòna de tèxte tampa l’article',
 		'jump_next' => 'sautar al vesin venent pas legit (flux o categoria)',
+		'mark_updated_article_unread' => 'Marcar los articles actualizats coma pas legits',
 		'number_divided_when_reader' => 'Devisat per 2 dins la vista de lectura.',
 		'read' => array(
 			'article_open_on_website' => 'quand l’article es dobèrt sul site d’origina',
@@ -117,11 +111,13 @@ return array(
 			'all_articles' => 'Mostrar totes los articles',
 			'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',
 		),
+		'sticky_post' => 'Gardar l\'article amont quand es dobèrt',
 		'title' => 'Lectura',
 		'view' => array(
 			'default' => 'Vista per defaut',
@@ -129,7 +125,6 @@ return array(
 			'normal' => 'Vista normala',
 			'reader' => 'Vista lectura',
 		),
-		'sticky_post' => 'Gardar l\'article amont quand es dobèrt',
 	),
 	'sharing' => array(
 		'_' => 'Partatge',
@@ -151,33 +146,39 @@ return array(
 	),
 	'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.',
 		'close_dropdown' => 'Tampar los menús',
 		'collapse_article' => 'Replegar',
 		'first_article' => 'Passar al primièr article',
 		'focus_search' => 'Accedir a la recèrca',
-		'mark_read' => 'Marcar coma legit',
-		'mark_favorite' => 'Ajustar als favorits',
-		'navigation' => 'Navigacion',
-		'other_action' => 'Autras accions',
-		'title' => 'Acorchis',
-		'views' => 'Vistas',
-		'article_action' => 'Accions ligadas a l\'article',
-		'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.',
 		'global_view' => 'Passar a la vista generala',
 		'help' => 'Mostrar la documentacion',
 		'javascript' => 'Devètz activar lo Javascript per utilizar los acorchis',
 		'last_article' => 'Passar al darrièr article',
 		'load_more' => 'Cargar mai d’articles',
+		'mark_favorite' => 'Ajustar als favorits',
+		'mark_read' => 'Marcar coma legit',
+		'navigation' => 'Navigacion',
 		'navigation_help' => 'Amb lo modificador «Shift», los acorchis de navigacion s’aplican als fluxes.<br/>Amb lo modificador «Alt», los acorchis de navigacion s’aplican a las categorias.',
 		'next_article' => 'Passar a l’article seguent',
 		'normal_view' => 'Passar a la vista normala',
+		'other_action' => 'Autras accions',
 		'previous_article' => 'Passar a l’article precedent',
 		'reading_view' => 'Passar a la vista lectura',
 		'rss_view' => 'Dobrir la vista RSS dins un onglet novèl',
 		'see_on_website' => 'Veire al site d’origina',
 		'shift_for_all_read' => '+ <code>shift</code> per marcar los articles coma legits',
+		'title' => 'Acorchis',
 		'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',
+	),
+	'user' => array(
+		'articles_and_size' => '%s articles (%s)',
+		'current' => 'Utilizaire actual',
+		'is_admin' => 'es administrator',
+		'users' => 'Utilizaires',
 	),
 );

+ 5 - 4
app/i18n/oc/feedback.php

@@ -1,4 +1,5 @@
 <?php
+
 return array(
 	'admin' => array(
 		'optimization_complete' => 'Optimizacion acabada',
@@ -49,6 +50,10 @@ return array(
 		'no_zip_extension' => 'L\'extension es pas presenta sul servidor.',
 		'zip_error' => 'Una error s’es producha pendent l’importacion del fichièr ZIP.',
 	),
+	'profile' => array(
+		'error' => 'Impossible d’actualizar vòstre perfil',
+		'updated' => 'Vòstre perfil es estat actualizat',
+	),
 	'sub' => array(
 		'actualize' => 'Actualizar',
 		'articles' => array(
@@ -108,8 +113,4 @@ return array(
 			'error' => 'L’utilizaire %s es pas estat actualizat',
 		),
 	),
-	'profile' => array(
-		'error' => 'Impossible d’actualizar vòstre perfil',
-		'updated' => 'Vòstre perfil es estat actualizat',
-	),
 );

+ 87 - 86
app/i18n/oc/gen.php

@@ -1,137 +1,71 @@
 <?php
+
 return array(
 	'action' => array(
-		'cancel' => 'Anullar',
-		'disable' => 'Desactivar',
-		'enable' => 'Activar',
-		'filter' => 'Filtre',
-		'import' => 'Importar',
-		'submit' => 'Mandar',
 		'actualize' => 'Actualizar',
 		'back_to_rss_feeds' => '← Tornar a vòstres fluxes RSS',
+		'cancel' => 'Anullar',
 		'create' => 'Crear',
+		'disable' => 'Desactivar',
 		'empty' => 'Voidar',
+		'enable' => 'Activar',
 		'export' => 'Exportar',
+		'filter' => 'Filtre',
+		'import' => 'Importar',
 		'manage' => 'Gerir',
 		'mark_favorite' => 'Ajustar als favorits',
 		'mark_read' => 'Marcar coma legit',
 		'remove' => 'Levar',
 		'see_website' => 'Veire lo site',
+		'submit' => 'Mandar',
 		'truncate' => 'Suprimir totes los articles',
 		'update' => 'Actualizar',
 	),
 	'auth' => array(
 		'email' => 'Adreça de corrièl',
+		'keep_logged_in' => 'Demorar connectat <small>(%s jorns) </small>',
+		'login' => 'Connexion',
 		'logout' => 'Se desconnectar',
 		'password' => array(
 			'_' => 'Senhal',
 			'format' => '<small>Almens 7 caractèrs</small>',
 		),
-		'username' => array(
-			'_' => 'Nom d’utilizaire',
-			'admin' => 'Nom d’utilizaire administrator',
-			'format' => '<small>16 caractèrs alfanumerics maximum)</small>',
-		),
-		'keep_logged_in' => 'Demorar connectat <small>(%s jorns) </small>',
-		'login' => 'Connexion',
 		'registration' => array(
 			'_' => 'Compte nòu',
 			'ask' => 'Crear un compte?',
 			'title' => 'Creacion de compte',
 		),
 		'reset' => 'Reïnicializacion de l’autentificacion',
-	),
-	'menu' => array(
-		'about' => 'A prepaus',
-		'admin' => 'Administracion',
-		'configuration' => 'Configuracion',
-		'user_profile' => 'Perfil',
-		'queries' => 'Filtres utilizaire',
-		'stats' => 'Estatisticas',
-		'archiving' => 'Archivar',
-		'authentication' => 'Autentificacion',
-		'check_install' => 'Verificacion de l’installacion',
-		'display' => 'Afichatge',
-		'extensions' => 'Extensions',
-		'logs' => 'Jornals d’audit',
-		'reading' => 'Lectura',
-		'search' => 'Recercar de mots o d’#etiquetas',
-		'sharing' => 'Partatge',
-		'shortcuts' => 'Acorchis',
-		'system' => 'Configuracion sistèma',
-		'update' => 'Mesa a jorn',
-		'user_management' => 'Gestion dels utilizaires',
-	),
-	'pagination' => array(
-		'next' => 'Seguent',
-		'previous' => 'Precedent',
-		'first' => 'Debuta',
-		'last' => 'Fin',
-		'load_more' => 'Cargar mai d’articles',
-		'mark_all_read' => 'O marcar tot coma legit',
-		'nothing_to_load' => 'I a pas mai d’articles',
-	),
-	'share' => array(
-		'email' => 'Corrièl',
-		'mastodon' => 'Mastodon',
-		'blogotext' => 'Blogotext',
-		'diaspora' => 'Diaspora*',
-		'facebook' => 'Facebook',
-		'g+' => 'Google+',
-		'gnusocial' => 'GNU social',
-		'jdh' => 'Journal du hacker',
-		'Known' => 'Sites basats sus Known',
-		'linkedin' => 'LinkedIn',
-		'movim' => 'Movim',
-		'pocket' => 'Pocket',
-		'print' => 'Imprimir',
-		'shaarli' => 'Shaarli',
-		'twitter' => 'Twitter',
-		'wallabag' => 'wallabag v1',
-		'wallabagv2' => 'wallabag v2',
-	),
-	'short' => array(
-		'no' => 'Non',
-		'yes' => 'Òc',
-		'attention' => 'Atencion !',
-		'blank_to_disable' => 'Daissar void per desactivar',
-		'by_author' => 'Per <em>%s</em>',
-		'by_default' => 'Per defaut',
-		'damn' => 'Zut !',
-		'default_category' => 'Pas triat',
-		'not_applicable' => 'Pas disponible',
-		'ok' => 'Òc-ben !',
-		'or' => 'o',
+		'username' => array(
+			'_' => 'Nom d’utilizaire',
+			'admin' => 'Nom d’utilizaire administrator',
+			'format' => '<small>16 caractèrs alfanumerics maximum)</small>',
+		),
 	),
 	'date' => array(
 		'Apr' => 'a\b\r\i\a\l',
-		'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' => 'a\g\o\s\t',
 		'aug' => 'agost',
 		'august' => 'agost',
 		'before_yesterday' => 'Abans 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 %s \de\ Y',
 		'format_date_hour' => 'j %s \de\ Y \a H\:i',
 		'fri' => 'dv',
+		'Jan' => 'g\e\n\i\è\r',
 		'jan' => 'gen.',
 		'january' => 'genièr',
+		'Jul' => 'j\u\l\h\e\t',
 		'jul' => 'julh',
 		'july' => 'julhet',
+		'Jun' => 'j\u\n\h',
 		'jun' => 'junh',
 		'june' => 'junh',
 		'last_3_month' => 'Dempuèi los tres darrièrs meses',
@@ -139,17 +73,22 @@ 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' => '\m\a\i',
 		'may' => 'mai',
 		'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',
@@ -191,4 +130,66 @@ return array(
 		'tr' => 'Türkçe',
 		'zh-cn' => '简体中文',
 	),
+	'menu' => array(
+		'about' => 'A prepaus',
+		'admin' => 'Administracion',
+		'archiving' => 'Archivar',
+		'authentication' => 'Autentificacion',
+		'check_install' => 'Verificacion de l’installacion',
+		'configuration' => 'Configuracion',
+		'display' => 'Afichatge',
+		'extensions' => 'Extensions',
+		'logs' => 'Jornals d’audit',
+		'queries' => 'Filtres utilizaire',
+		'reading' => 'Lectura',
+		'search' => 'Recercar de mots o d’#etiquetas',
+		'sharing' => 'Partatge',
+		'shortcuts' => 'Acorchis',
+		'stats' => 'Estatisticas',
+		'system' => 'Configuracion sistèma',
+		'update' => 'Mesa a jorn',
+		'user_management' => 'Gestion dels utilizaires',
+		'user_profile' => 'Perfil',
+	),
+	'pagination' => array(
+		'first' => 'Debuta',
+		'last' => 'Fin',
+		'load_more' => 'Cargar mai d’articles',
+		'mark_all_read' => 'O marcar tot coma legit',
+		'next' => 'Seguent',
+		'nothing_to_load' => 'I a pas mai d’articles',
+		'previous' => 'Precedent',
+	),
+	'share' => array(
+		'blogotext' => 'Blogotext',
+		'diaspora' => 'Diaspora*',
+		'email' => 'Corrièl',
+		'facebook' => 'Facebook',
+		'g+' => 'Google+',
+		'gnusocial' => 'GNU social',
+		'jdh' => 'Journal du hacker',
+		'Known' => 'Sites basats sus Known',
+		'linkedin' => 'LinkedIn',
+		'mastodon' => 'Mastodon',
+		'movim' => 'Movim',
+		'pocket' => 'Pocket',
+		'print' => 'Imprimir',
+		'shaarli' => 'Shaarli',
+		'twitter' => 'Twitter',
+		'wallabag' => 'wallabag v1',
+		'wallabagv2' => 'wallabag v2',
+	),
+	'short' => array(
+		'attention' => 'Atencion !',
+		'blank_to_disable' => 'Daissar void per desactivar',
+		'by_author' => 'Per <em>%s</em>',
+		'by_default' => 'Per defaut',
+		'damn' => 'Zut !',
+		'default_category' => 'Pas triat',
+		'no' => 'Non',
+		'not_applicable' => 'Pas disponible',
+		'ok' => 'Òc-ben !',
+		'or' => 'o',
+		'yes' => 'Òc',
+	),
 );

+ 18 - 17
app/i18n/oc/index.php

@@ -1,9 +1,8 @@
 <?php
+
 return array(
 	'about' => array(
 		'_' => 'A prepaus',
-		'title' => 'A prepaus',
-		'website' => 'Site internet',
 		'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>',
 		'bugs_reports' => 'Senhalament de problèmas',
 		'credits' => 'Crèdits',
@@ -12,10 +11,25 @@ return array(
 		'github' => '<a href="https://github.com/FreshRSS/FreshRSS/issues">on Github</a>',
 		'license' => 'Licéncia',
 		'project_website' => 'Site del projècte',
+		'title' => 'A prepaus',
+		'website' => 'Site internet',
 		'version' => 'Version',
 	),
+	'feed' => array(
+		'add' => 'Podètz ajustar de fluxes.',
+		'empty' => 'I a pas cap de flux de mostrar.',
+		'rss_of' => 'Flux RSS de %s',
+		'title' => 'Vòstres fluxes RSS',
+		'title_global' => 'Vista generala',
+		'title_fav' => 'Vòstres favorits',
+	),
+	'log' => array(
+		'_' => 'Jornals d’audit',
+		'clear' => 'Escafar los jornals',
+		'empty' => 'Los jornals son voids',
+		'title' => 'Jornals d’audit',
+	),
 	'menu' => array(
-		'search_short' => 'Recercar',
 		'about' => 'A prepaus de FreshRSS',
 		'add_query' => 'Crear un filtre',
 		'before_one_day' => '1 jorn en arrièr',
@@ -35,6 +49,7 @@ return array(
 		'read' => 'Mostrar los legits',
 		'reader_view' => 'Vista lectura',
 		'rss_view' => 'Flux RSS',
+		'search_short' => 'Recercar',
 		'starred' => 'Mostrar los favorits',
 		'stats' => 'Estatisticas',
 		'subscription' => 'Gestion dels abonaments',
@@ -42,20 +57,6 @@ return array(
 		'unread' => 'Mostar los pas legits',
 	),
 	'share' => 'Partejar',
-	'feed' => array(
-		'add' => 'Podètz ajustar de fluxes.',
-		'empty' => 'I a pas cap de flux de mostrar.',
-		'rss_of' => 'Flux RSS de %s',
-		'title' => 'Vòstres fluxes RSS',
-		'title_global' => 'Vista generala',
-		'title_fav' => 'Vòstres favorits',
-	),
-	'log' => array(
-		'_' => 'Jornals d’audit',
-		'clear' => 'Escafar los jornals',
-		'empty' => 'Los jornals son voids',
-		'title' => 'Jornals d’audit',
-	),
 	'tag' => array(
 		'related' => 'Etiquetas ligadas',
 	),

+ 7 - 8
app/i18n/oc/install.php

@@ -1,10 +1,6 @@
 <?php
+
 return array(
-	'language' => array(
-		'_' => 'Lenga',
-		'choose' => 'Causissètz la lenga per FreshRSS',
-		'defined' => 'La lenga es corrèctament definida.',
-	),
 	'action' => array(
 		'finish' => 'Acabar l’installacion',
 		'fix_errors_before' => 'Mercés de corregir las errors seguentas abans de contunhar.',
@@ -28,8 +24,8 @@ return array(
 			'ok' => 'La configuracion de la basa de donadas es salvagarda.',
 		),
 		'host' => 'Òste',
-		'prefix' => 'Prefixe de tabla',
 		'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',
 	),
@@ -74,8 +70,6 @@ return array(
 		),
 		'mbstring' => array(
 			'nok' => 'Impossible de trobar la bibliotèca recomandada mbstring per Unicode.',
-			//TODO
-			//TODO
 			'ok' => 'Avètz la bibliotèca recomandada mbstring per Unicode.',
 		),
 		'minz' => array(
@@ -115,6 +109,11 @@ return array(
 	'js' => 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.',
+	),
 	'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.',
 	'step' => 'etapa %d',

+ 33 - 31
app/i18n/oc/sub.php

@@ -1,84 +1,86 @@
 <?php
 return array(
 	'api' => array(
-		'title' => 'API',
 		'documentation' => 'Copiar l’URL seguenta per l’utilizaire dins d’una aisina extèrna.',
+		'title' => 'API',
 	),
 	'bookmarklet' => array(
-		'label' => 'S’abonar',
 		'documentation' => 'Depausatz aqueste boton per la barra de marcapaginas o clicatz-lo a drecha e causissètz « Enregistrar aqueste ligam». Puèi clicatz «S’abonar» sus las paginas que volètz seguir.',
+		'label' => 'S’abonar',
 		'title' => 'Bookmarklet',
 	),
 	'category' => array(
-		'new' => 'Nòva categoria',
 		'_' => 'Categoria',
 		'add' => 'Ajustar una categoria',
 		'empty' => 'Categoria voida',
+		'new' => 'Nòva categoria',
 	),
 	'feed' => array(
+		'add' => 'Ajustar un flux RSS',
+		'advanced' => 'Avançat',
+		'archiving' => 'Archivar',
 		'auth' => array(
-			'password' => 'Senhal HTTP',
-			'username' => 'Identificant HTTP',
 			'configuration' => 'Identificacion',
 			'help' => 'Permet l’accès als fluxes protegits per una autentificacion HTTP',
 			'http' => 'Autentificacion HTTP',
+			'password' => 'Senhal HTTP',
+			'username' => 'Identificant HTTP',
 		),
+		'clear_cache' => 'Always clear cache',	//TODO - Translation
+		'css_help' => 'Permet de recuperar los fluxes troncats (atencion, demanda mai de temps !)',
+		'css_path' => 'Selector CSS dels articles sul site d’origina',
 		'description' => 'Descripcion',
+		'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.',
+		'informations' => 'Informacions',
+		'keep_history' => 'Nombre minimum d’articles de servar',
+		'moved_category_deleted' => 'Quand escafatz una categoria, sos fluxes son automaticament classats dins <em>%s</em>.',
 		'mute' => 'mut',
+		'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',
 		),
-		'title' => 'Títol',
-		'url' => 'Flux URL',
-		'website' => 'URL del site',
-		'add' => 'Ajustar un flux RSS',
-		'advanced' => 'Avançat',
-		'archiving' => 'Archivar',
-		'css_path' => 'Selector CSS dels articles sul site d’origina',
-		'empty' => 'Aqueste flux es void. Assegurats-vos qu’es totjorn mantengut.',
-		'informations' => 'Informacions',
-		'keep_history' => 'Nombre minimum d’articles de servar',
-		'no_selected' => 'Cap de flux pas seleccionat.',
-		'number_entries' => '%d articles',
+		'pubsubhubbub' => 'Notificaciones instantáneas amb PubSubHubbub',
 		'ssl_verify' => 'Verificacion de la seguretat SSL',
 		'stats' => 'Estatisticas',
 		'think_to_add' => 'Podètz ajustar de fluxes.',
 		'timeout' => 'Temps d’espèra en segondas',
+		'title' => 'Títol',
 		'title_add' => 'Ajustar un flux RSS',
 		'ttl' => 'Actualizar pas automaticament mai sovent que',
+		'url' => 'Flux URL',
 		'validator' => 'Verificar la validitat del flux',
-		'pubsubhubbub' => 'Notificaciones instantáneas amb PubSubHubbub',
-		'css_help' => 'Permet de recuperar los fluxes troncats (atencion, demanda mai de temps !)',
-		'error' => 'Aqueste flux a rescontrat un problèma. Volgatz verificar que siá totjorn accessible puèi actualizatz-lo.',
-		'moved_category_deleted' => 'Quand escafatz una categoria, sos fluxes son automaticament classats dins <em>%s</em>.',
+		'website' => 'URL del site',
+	),
+	'firefox' => array(
+		'documentation' => 'Seguir las etapas descrichas <a href="https://developer.mozilla.org/en-US/Firefox/Releases/2/Adding_feed_readers_to_Firefox#Adding_a_new_feed_reader_manually">aquí</a> per ajustar FreshRSS a la lista dels lectors de flux de Firefox.',
+		'title' => 'Lector de flux de Firefox',
 	),
 	'import_export' => array(
 		'export' => 'Exportar',
-		'export_starred' => 'Exportar los favorits',
-		'import' => 'Importar',
-		'title' => 'Importar / Exportar',
 		'export_opml' => 'Exportar la lista de fluxes (OPML)',
+		'export_starred' => 'Exportar los favorits',
 		'feed_list' => 'Lista dels %s articles',
 		'file_to_import' => 'Fichièr d’importar<br />(OPML, JSON o ZIP)',
 		'file_to_import_no_zip' => 'Fichièr d’importar<br />(OPML o JSON)',
+		'import' => 'Importar',
 		'starred_list' => 'Lista dels articles favorits',
+		'title' => 'Importar / Exportar',
+
 	),
 	'menu' => array(
-		'import_export' => 'Importar / Exportar',
-		'subscription_tools' => 'Aisinas d’abonament',
 		'bookmark' => 'Sabonar (marcapagina FreshRSS)',
+		'import_export' => 'Importar / Exportar',
 		'subscription_management' => 'Gestion dels abonaments',
+		'subscription_tools' => 'Aisinas d’abonament',
 	),
 	'title' => array(
-		'subscription_tools' => 'Aisinas d’abonament',
 		'_' => 'Gestión dels abonaments',
 		'feed_management' => 'Gestion dels fluxes RSS',
-	),
-	'firefox' => array(
-		'title' => 'Lector de flux de Firefox',
-		'documentation' => 'Seguir las etapas descrichas <a href="https://developer.mozilla.org/en-US/Firefox/Releases/2/Adding_feed_readers_to_Firefox#Adding_a_new_feed_reader_manually">aquí</a> per ajustar FreshRSS a la lista dels lectors de flux de Firefox.',
+		'subscription_tools' => 'Aisinas d’abonament',
 	),
 );

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

@@ -67,8 +67,8 @@ return array(
 			'ok' => 'Você tem a extensão JSON.',
 		),
 		'mbstring' => array(
-			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO
-			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO
+			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO - Translation
+			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO - Translation
 		),
 		'minz' => array(
 			'nok' => 'Não foi possível encontrar o framework Minz.',
@@ -106,23 +106,23 @@ return array(
 		),
 	),
 	'extensions' => array(
+		'author' => 'Author',	//TODO - Translation
+		'community' => 'Available community extensions',	//TODO - Translation
+		'description' => 'Description',	//TODO - Translation
 		'disabled' => 'Desabilitado',
 		'empty_list' => 'Não há extensões instaladas',
 		'enabled' => 'Habilitada',
+		'latest' => 'Installed',	//TODO - Translation
+		'name' => 'Name',	//TODO - Translation
 		'no_configure_view' => 'Esta extensão não pode ser configurada.',
 		'system' => array(
 			'_' => 'Extensões do sistema',
 			'no_rights' => 'Extensões do sistema (Você não tem direitos para isto)',
 		),
 		'title' => 'Extensões',
+		'update' => 'Update available',	//TODO - Translation
 		'user' => 'Extensões do usuário',
-		'community' => 'Available community extensions', // @todo translate
-		'name' => 'Name', // @todo translate
-		'version' => 'Version', // @todo translate
-		'description' => 'Description', // @todo translate
-		'author' => 'Author', // @todo translate
-		'latest' => 'Installed', // @todo translate
-		'update' => 'Update available', // @todo translate
+		'version' => 'Version',	//TODO - Translation
 	),
 	'stats' => array(
 		'_' => 'Estatísticas',
@@ -179,15 +179,15 @@ return array(
 	'user' => array(
 		'articles_and_size' => '%s artigos (%s)',
 		'create' => 'Criar novo usuário',
-		'delete_users' => 'Delete user', // TODO
+		'delete_users' => 'Delete user',	//TODO - Translation
 		'language' => 'Idioma',
 		'number' => 'Há %d conta criada',
 		'numbers' => 'Há %d contas criadas',
 		'password_form' => 'Senha<br /><small>(para o login pelo método do formulário)</small>',
 		'password_format' => 'Ao menos 7 caracteres',
-		'selected' => 'Selected user', // TODO
+		'selected' => 'Selected user',	//TODO - Translation
 		'title' => 'Gerenciar usuários',
-		'update_users' => 'Update user', // TODO
+		'update_users' => 'Update user',	//TODO - Translation
 		'user_list' => 'Lista de usuários',
 		'username' => 'Usuário',
 		'users' => 'Usuários',

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

@@ -19,7 +19,7 @@ return array(
 			'bottom_line' => 'Linha inferior',
 			'entry' => 'Ícones de artigos',
 			'publication_date' => 'Data da publicação',
-			'related_tags' => 'Tags relacionadas',	//TODO
+			'related_tags' => 'Tags relacionadas',	//TODO - Translation
 			'sharing' => 'Compartilhar',
 			'top_line' => 'Linha superior',
 		),
@@ -28,6 +28,7 @@ return array(
 			'seconds' => 'segundos (0 significa sem timeout)',
 			'timeout' => 'Notificação em HTML5 de timeout',
 		),
+		'show_nav_buttons' => 'Show the navigation buttons',	//TODO - Translation
 		'theme' => 'Tema',
 		'title' => 'Exibição',
 		'width' => array(
@@ -37,12 +38,22 @@ return array(
 			'no_limit' => 'Sem lmite',
 			'thin' => 'Fino',
 		),
-		'show_nav_buttons' => 'Show the navigation buttons',	//TODO
+	),
+	'profile' => array(
+		'_' => 'Gerenciamento de perfil',
+		'delete' => array(
+			'_' => 'Remover conta',
+			'warn' => 'Sua conta e todos os dados relacionados serão removidos.',
+		),
+		'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',
 	),
 	'query' => array(
 		'_' => 'Queries do usuário',
 		'deprecated' => 'Esta não é mais válida. A categoria ou feed relacionado foi deletado.',
-		'display' => 'Display user query results', // TODO
+		'display' => 'Display user query results',	//TODO - Translation
 		'filter' => 'Filtro aplicado:',
 		'get_all' => 'Mostrar todos os artigos',
 		'get_category' => 'Visualizar "%s" categoria',
@@ -53,7 +64,7 @@ return array(
 		'number' => 'Query n°%d',
 		'order_asc' => 'Exibir artigos mais antigos primeiro',
 		'order_desc' => 'Exibir artigos mais novos primeiro',
-		'remove' => 'Remove user query', // TODO
+		'remove' => 'Remove user query',	//TODO - Translation
 		'search' => 'Busca por "%s"',
 		'state_0' => 'Exibir todos os artigos',
 		'state_1' => 'Exibir artigos lidos',
@@ -73,31 +84,19 @@ return array(
 		'state_15' => 'Exibir todos os artigos',
 		'title' => 'Queries de usuários',
 	),
-	'profile' => array(
-		'_' => 'Gerenciamento de perfil',
-		'delete' => array(
-			'_' => 'Remover conta',
-			'warn' => 'Sua conta e todos os dados relacionados serão removidos.',
-		),
-		'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',
-	),
 	'reading' => array(
 		'_' => 'Leitura',
 		'after_onread' => 'Depois de "marcar todos como lido",',
 		'articles_per_page' => 'Número de artigos por página',
 		'auto_load_more' => 'Carregar mais artigos no final da página',
 		'auto_remove_article' => 'Esconder artigos depois de lidos',
-		'mark_updated_article_unread' => 'Marcar artigos atualizados como não lidos',
 		'confirm_enabled' => 'Exibir uma caixa de diálogo de confirmação quando acionar "marcar todos como lido"',
 		'display_articles_unfolded' => 'Mostrar aritogs abertos por padrão',
 		'display_categories_unfolded' => 'Mostrar artigos fechados por padrão',
 		'hide_read_feeds' => 'Esconder categorias e feeds com nenhum artigo não lido (não funciona com a configuração "Mostrar todos os artigos”)',
 		'img_with_lazyload' => 'Utilizar o modo "lazy load" para carregar as imagens',
-		'sides_close_article' => 'Clicando fora da área do texto do artigo fecha o mesmo',
 		'jump_next' => 'Vá para o próximo irmão não lido (feed ou categoria)',
+		'mark_updated_article_unread' => 'Marcar artigos atualizados como não lidos',
 		'number_divided_when_reader' => 'Dividido por 2 no modo de leitura .',
 		'read' => array(
 			'article_open_on_website' => 'quando o artigo é aberto no site original',
@@ -112,6 +111,7 @@ return array(
 			'all_articles' => 'Exibir todos os artigos',
 			'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',
@@ -128,7 +128,7 @@ return array(
 	),
 	'sharing' => array(
 		'_' => 'Compartilhando',
-		'add' => 'Add a sharing method', // TODO
+		'add' => 'Add a sharing method',	//TODO - Translation
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
 		'email' => 'Email',
@@ -136,7 +136,7 @@ return array(
 		'g+' => 'Google+',
 		'more_information' => 'Mais informação',
 		'print' => 'Imprimir',
-		'remove' => 'Remove sharing method', // TODO
+		'remove' => 'Remove sharing method',	//TODO - Translation
 		'shaarli' => 'Shaarli',
 		'share_name' => 'Nome de visualização para compartilhar',
 		'share_url' => 'URL utilizada para compartilhar',
@@ -153,27 +153,27 @@ return array(
 		'collapse_article' => 'Fechar',
 		'first_article' => 'Ir para o primeiro artigo',
 		'focus_search' => 'Acessar a caixa de busca',
-		'global_view' => 'Switch to global view', // TODO
+		'global_view' => 'Switch to global view',	//TODO - Translation
 		'help' => 'Mostrar documentação',
 		'javascript' => 'JavaScript deve ser habilitado para utilizar atalhos',
 		'last_article' => 'Ir para o último artigo',
 		'load_more' => 'Carregar mais artigos',
-		'mark_read' => 'Marcar como lido',
 		'mark_favorite' => 'Marcar como favorito',
+		'mark_read' => 'Marcar como lido',
 		'navigation' => 'Navegação',
 		'navigation_help' => 'Com o modificador "Shift", atalhos de navegação aplicam aos feeds.<br/>Com o "Alt" modificador, atalhos de navegação aplicam as categorias.',
 		'next_article' => 'Pule para o próximo artigo',
-		'normal_view' => 'Switch to normal view', // TODO
+		'normal_view' => 'Switch to normal view',	//TODO - Translation
 		'other_action' => 'Outras ações',
 		'previous_article' => 'Pule para o artigo anterior',
-		'reading_view' => 'Switch to reading view', // TODO
-		'rss_view' => 'Open RSS view in a new tab', // TODO
+		'reading_view' => 'Switch to reading view',	//TODO - Translation
+		'rss_view' => 'Open RSS view in a new tab',	//TODO - Translation
 		'see_on_website' => 'Visualize o site original',
 		'shift_for_all_read' => '+ <code>shift</code> para marcar todos os artigos como lido',
 		'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' => 'Views', // TODO
+		'views' => 'Views',	//TODO - Translation
 	),
 	'user' => array(
 		'articles_and_size' => '%s artigos (%s)',

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

@@ -50,11 +50,15 @@ return array(
 		'no_zip_extension' => 'extensão ZIP não está presente em seu servidor.',
 		'zip_error' => 'Um erro ocorreu durante a importação do arquivo ZIP.',
 	),
+	'profile' => array(
+		'error' => 'Your profile cannot be modified',
+		'updated' => 'Your profile has been modified',
+	),
 	'sub' => array(
 		'actualize' => 'Atualizando',
 		'articles' => array(
-			'marked_read' => 'The selected articles have been marked as read.',	//TODO
-			'marked_unread' => 'The articles have been marked as unread.',	//TODO
+			'marked_read' => 'The selected articles have been marked as read.',	//TODO - Translation
+			'marked_unread' => 'The articles have been marked as unread.',	//TODO - Translation
 		),
 		'category' => array(
 			'created' => 'Categoria %s foi criada.',
@@ -76,7 +80,7 @@ return array(
 			'already_subscribed' => 'Você já está inscrito no <em>%s</em>',
 			'deleted' => 'o Feed foi deletado',
 			'error' => 'O feed não pode ser atualizado',
-			'internal_problem' => 'O RSS feed não pôde ser adicionado. <a href="%s">Verifique os FreshRSS logs</a> para detalhes.', // @todo
+			'internal_problem' => 'O RSS feed não pôde ser adicionado. <a href="%s">Verifique os FreshRSS logs</a> para detalhes.',	//TODO - Translation
 			'invalid_url' => 'URL <em>%s</em> é inválida',
 			'n_actualized' => '%d feeds foram atualizados',
 			'n_entries_deleted' => '%d artigos foram deletados',
@@ -105,12 +109,8 @@ return array(
 			'error' => 'Usuário %s não pode ser deletado',
 		),
 		'updated' => array(
-			'_' => 'User %s has been updated', // TODO
-			'error' => 'User %s has not been updated', // TODO
+			'_' => 'User %s has been updated',	//TODO - Translation
+			'error' => 'User %s has not been updated',	//TODO - Translation
 		),
 	),
-	'profile' => array(
-		'error' => 'Your profile cannot be modified',
-		'updated' => 'Your profile has been modified',
-	),
 );

+ 14 - 13
app/i18n/pt-br/gen.php

@@ -19,7 +19,7 @@ return array(
 		'see_website' => 'Ver o site',
 		'submit' => 'Enviar',
 		'truncate' => 'Deletar todos os artigos',
-		'update' => 'Update', // TODO
+		'update' => 'Update',	//TODO - Translation
 	),
 	'auth' => array(
 		'email' => 'Endereço de e-mail',
@@ -44,33 +44,28 @@ return array(
 	),
 	'date' => array(
 		'Apr' => '\\A\\b\\r\\i\\l',
-		'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' => '\\A\\g\\o\\s\\t\\o',
 		'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' => '\\J\\u\\l\\h\\o',
 		'jul' => 'jul',
 		'july' => 'Jul',
+		'Jun' => '\\J\\u\\n\\h\\o',
 		'jun' => 'jun',
 		'june' => 'Jun',
 		'last_3_month' => 'Últimos três meses',
@@ -78,16 +73,22 @@ return array(
 		'last_month' => 'Últimos mês',
 		'last_week' => 'Última semana',
 		'last_year' => 'Último ano',
+		'Mar' => '\\M\\a\\r\\ç\\o',
 		'mar' => 'mar',
 		'march' => 'Mar',
+		'May' => '\\M\\a\\i\\o',
 		'may' => 'Mai',
+		'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',
@@ -160,7 +161,6 @@ return array(
 		'previous' => 'Anterior',
 	),
 	'share' => array(
-		'Known' => 'Known based sites',
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
 		'email' => 'Email',
@@ -168,6 +168,7 @@ return array(
 		'g+' => 'Google+',
 		'gnusocial' => 'GNU social',
 		'jdh' => 'Journal du hacker',
+		'Known' => 'Known based sites',
 		'linkedin' => 'LinkedIn',
 		'mastodon' => 'Mastodon',
 		'movim' => 'Movim',

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

@@ -40,7 +40,7 @@ return array(
 		'mark_all_read' => 'Marcar todos como lidos',
 		'mark_cat_read' => 'Marcar categoria como lida',
 		'mark_feed_read' => 'Marcar feed com lido',
-		'mark_selection_unread' => 'Mark selection as unread',	//TODO
+		'mark_selection_unread' => 'Mark selection as unread',	//TODO - Translation
 		'newer_first' => 'Novos primeiro',
 		'non-starred' => 'Mostrar todos, exceto favoritos',
 		'normal_view' => 'visualização normal',
@@ -53,10 +53,11 @@ return array(
 		'starred' => 'Mostrar apenas os favoritos',
 		'stats' => 'Estatísticas',
 		'subscription' => 'Gerenciamento de inscrições',
+		'tags' => 'My labels',	//TODO - Translation
 		'unread' => 'Mostrar apenas os não lidos',
 	),
 	'share' => 'Compartilhar',
 	'tag' => array(
-		'related' => 'Tags relacionadas',	//TODO
+		'related' => 'Tags relacionadas',	//TODO - Translation
 	),
 );

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

@@ -24,8 +24,8 @@ return array(
 			'ok' => 'Configurações do banco de dados foram salvas.',
 		),
 		'host' => 'Host',
-		'prefix' => 'Prefixo da tabela',
 		'password' => 'Senha do banco de dados',
+		'prefix' => 'Prefixo da tabela',
 		'type' => 'Tipo do banco de dados',
 		'username' => 'Usuário do banco de dados',
 	),
@@ -69,8 +69,8 @@ return array(
 			'ok' => 'Você tem a extensão JSON.',
 		),
 		'mbstring' => array(
-			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO
-			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO
+			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO - Translation
+			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO - Translation
 		),
 		'minz' => array(
 			'nok' => 'Não foi possível encontrar o framework Minz.',

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

@@ -2,13 +2,13 @@
 
 return array(
 	'api' => array(
-		'documentation' => 'Copy the following URL to use it within an external tool.',// TODO
-		'title' => 'API',// TODO
+		'documentation' => 'Copy the following URL to use it within an external tool.',	//TODO - Translation
+		'title' => 'API',	//TODO - Translation
 	),
 	'bookmarklet' => array(
-		'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose "Bookmark This Link". Then click "Subscribe" button in any page you want to subscribe to.',// TODO
-		'label' => 'Subscribe',// TODO
-		'title' => 'Bookmarklet',// TODO
+		'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose "Bookmark This Link". Then click "Subscribe" button in any page you want to subscribe to.',	//TODO - Translation
+		'label' => 'Subscribe',	//TODO - Translation
+		'title' => 'Bookmarklet',	//TODO - Translation
 	),
 	'category' => array(
 		'_' => 'Categoria',
@@ -27,7 +27,7 @@ return array(
 			'password' => 'Senha HTTP',
 			'username' => 'Usuário HTTP',
 		),
-		'clear_cache' => 'Always clear cache',	//TODO
+		'clear_cache' => 'Always clear cache',	//TODO - Translation
 		'css_help' => 'Retorna RSS feeds truncados (atenção, requer mais tempo!)',
 		'css_path' => 'Caminho do CSS do artigo no site original',
 		'description' => 'Descrição',
@@ -36,26 +36,26 @@ return array(
 		'informations' => 'Informações',
 		'keep_history' => 'Número mínimo de artigos para manter',
 		'moved_category_deleted' => 'Quando você deleta uma categoria, seus feeds são automaticamente classificados como <em>%s</em>.',
-		'mute' => 'mute', // TODO
+		'mute' => 'mute',	//TODO - Translation
 		'no_selected' => 'Nenhum feed selecionado.',
 		'number_entries' => '%d artigos',
 		'priority' => array(
-			'_' => 'Visibility', // TODO
-			'archived' => 'Do not show (archived)', // TODO
+			'_' => 'Visibility',	//TODO - Translation
+			'archived' => 'Do not show (archived)',	//TODO - Translation
 			'main_stream' => 'Mostrar na tela principal',
-			'normal' => 'Show in its category', // TODO
+			'normal' => 'Show in its category',	//TODO - Translation
 		),
-		'ssl_verify' => 'Verify SSL security',	//TODO
+		'pubsubhubbub' => 'Notificação instantânea com PubSubHubbub',
+		'ssl_verify' => 'Verify SSL security',	//TODO - Translation
 		'stats' => 'Estatísticas',
 		'think_to_add' => 'Você deve adicionar alguns feeds.',
-		'timeout' => 'Timeout in seconds',	//TODO
+		'timeout' => 'Timeout in seconds',	//TODO - Translation
 		'title' => 'Título',
 		'title_add' => 'Adicionar o RSS feed',
 		'ttl' => 'Não atualize automáticamente mais que',
 		'url' => 'Feed URL',
 		'validator' => 'Verifique a validade do feed',
 		'website' => 'URL do site',
-		'pubsubhubbub' => 'Notificação instantânea com PubSubHubbub',
 	),
 	'import_export' => array(
 		'export' => 'Exportar',

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

@@ -67,8 +67,8 @@ return array(
 			'ok' => 'У вас установлена библиотека для работы с JSON.',
 		),
 		'mbstring' => array(
-			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO
-			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO
+			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO - Translation
+			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO - Translation
 		),
 		'minz' => array(
 			'nok' => 'У вас не установлен фрейворк Minz.',
@@ -106,23 +106,23 @@ return array(
 		),
 	),
 	'extensions' => array(
+		'author' => 'Author',	//TODO - Translation
+		'community' => 'Available community extensions',	//TODO - Translation
+		'description' => 'Description',	//TODO - Translation
 		'disabled' => 'Отключены',
 		'empty_list' => 'Расширения не установлены',
 		'enabled' => 'Включены',
+		'latest' => 'Installed',	//TODO - Translation
+		'name' => 'Name',	//TODO - Translation
 		'no_configure_view' => 'Это расширение нельзя настроить.',
 		'system' => array(
 			'_' => 'Системные расширения',
 			'no_rights' => 'Системные расширения (у вас нет к ним доступа)',
 		),
 		'title' => 'Расширения',
+		'update' => 'Update available',	//TODO - Translation
 		'user' => 'Расширения пользователя',
-		'community' => 'Available community extensions', // @todo translate
-		'name' => 'Name', // @todo translate
-		'version' => 'Version', // @todo translate
-		'description' => 'Description', // @todo translate
-		'author' => 'Author', // @todo translate
-		'latest' => 'Installed', // @todo translate
-		'update' => 'Update available', // @todo translate
+		'version' => 'Version',	//TODO - Translation
 	),
 	'stats' => array(
 		'_' => 'Статистика',
@@ -179,15 +179,15 @@ return array(
 	'user' => array(
 		'articles_and_size' => '%s статей (%s)',
 		'create' => 'Создать нового пользователя',
-		'delete_users' => 'Delete user', // TODO
+		'delete_users' => 'Delete user',	//TODO - Translation
 		'language' => 'Язык',
 		'number' => 'На данный момент создан %d аккаунт',
 		'numbers' => 'На данный момент аккаунтов создано:  %d',
 		'password_form' => 'Пароль<br /><small>(для входа через Веб-форму)</small>',
 		'password_format' => 'Минимум 7 символов',
-		'selected' => 'Selected user', // TODO
+		'selected' => 'Selected user',	//TODO - Translation
 		'title' => 'Управление пользователями',
-		'update_users' => 'Update user', // TODO
+		'update_users' => 'Update user',	//TODO - Translation
 		'user_list' => 'Список пользователей',
 		'username' => 'Имя пользователя',
 		'users' => 'Пользователи',

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

@@ -6,9 +6,9 @@ return array(
 		'advanced' => 'Продвинутые настройки',
 		'delete_after' => 'Удалять статьи после',
 		'help' => 'Каждую подписку можно настроить более гибко',
-		'keep_history_by_feed' => 'Minimum number of articles to keep by feed',
+		'keep_history_by_feed' => 'Minimum number of articles to keep by feed', 	//TODO - Translation
 		'optimize' => 'Оптимизировать базу данных',
-		'optimize_help' => 'To do occasionally to reduce the size of the database',
+		'optimize_help' => 'To do occasionally to reduce the size of the database', 	//TODO - Translation
 		'purge_now' => 'Очистить сейчас',
 		'title' => 'Архивация',
 		'ttl' => 'Не обновлять чаще чем',
@@ -16,169 +16,169 @@ return array(
 	'display' => array(
 		'_' => 'Display',
 		'icon' => array(
-			'bottom_line' => 'Bottom line',
-			'entry' => 'Article icons',
-			'publication_date' => 'Date of publication',
-			'related_tags' => 'Related tags',	//TODO
-			'sharing' => 'Sharing',
-			'top_line' => 'Top line',
+			'bottom_line' => 'Bottom line',	//TODO - Translation
+			'entry' => 'Article icons',	//TODO - Translation
+			'publication_date' => 'Date of publication',	//TODO - Translation
+			'related_tags' => 'Related tags',	//TODO - Translation
+			'sharing' => 'Sharing',	//TODO - Translation
+			'top_line' => 'Top line',	//TODO - Translation
 		),
 		'language' => 'Язык',
 		'notif_html5' => array(
-			'seconds' => 'seconds (0 means no timeout)',
-			'timeout' => 'HTML5 notification timeout',
+			'seconds' => 'seconds (0 means no timeout)',	//TODO - Translation
+			'timeout' => 'HTML5 notification timeout',	//TODO - Translation
 		),
+		'show_nav_buttons' => 'Show the navigation buttons',	//TODO - Translation
 		'theme' => 'Тема',
-		'title' => 'Display',
+		'title' => 'Display',	//TODO - Translation
 		'width' => array(
-			'content' => 'Content width',
-			'large' => 'Large',
-			'medium' => 'Medium',
-			'no_limit' => 'No limit',
-			'thin' => 'Thin',
+			'content' => 'Content width',	//TODO - Translation
+			'large' => 'Large',	//TODO - Translation
+			'medium' => 'Medium',	//TODO - Translation
+			'no_limit' => 'No limit',	//TODO - Translation
+			'thin' => 'Thin',	//TODO - Translation
 		),
-		'show_nav_buttons' => 'Show the navigation buttons',	//TODO
-	),
-	'query' => array(
-		'_' => 'User queries',
-		'deprecated' => 'This query is no longer valid. The referenced category or feed has been deleted.',
-		'display' => 'Display user query results', // TODO
-		'filter' => 'Filter applied:',
-		'get_all' => 'Display all articles',
-		'get_category' => 'Display "%s" category',
-		'get_favorite' => 'Display favorite articles',
-		'get_feed' => 'Display "%s" feed',
-		'no_filter' => 'No filter',
-		'none' => 'You haven’t created any user query yet.',
-		'number' => 'Query n°%d',
-		'order_asc' => 'Display oldest articles first',
-		'order_desc' => 'Display newest articles first',
-		'remove' => 'Remove user query', // TODO
-		'search' => 'Search for "%s"',
-		'state_0' => 'Display all articles',
-		'state_1' => 'Display read articles',
-		'state_2' => 'Display unread articles',
-		'state_3' => 'Display all articles',
-		'state_4' => 'Display favorite articles',
-		'state_5' => 'Display read favorite articles',
-		'state_6' => 'Display unread favorite articles',
-		'state_7' => 'Display favorite articles',
-		'state_8' => 'Display not favorite articles',
-		'state_9' => 'Display read not favorite articles',
-		'state_10' => 'Display unread not favorite articles',
-		'state_11' => 'Display not favorite articles',
-		'state_12' => 'Display all articles',
-		'state_13' => 'Display read articles',
-		'state_14' => 'Display unread articles',
-		'state_15' => 'Display all articles',
-		'title' => 'User queries',
 	),
 	'profile' => array(
-		'_' => 'Profile management',
+		'_' => 'Profile management',	//TODO - Translation
 		'delete' => array(
-			'_' => 'Account deletion',
-			'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.',	//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>',
-		'password_format' => 'At least 7 characters',
-		'title' => 'Profile',
+		'password_api' => 'Password API<br /><small>(e.g., for mobile apps)</small>',	//TODO - Translation
+		'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
+	),
+	'query' => array(
+		'_' => 'User queries',
+		'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
+		'get_all' => 'Display all articles',	//TODO - Translation
+		'get_category' => 'Display "%s" category',	//TODO - Translation
+		'get_favorite' => 'Display favorite articles',	//TODO - Translation
+		'get_feed' => 'Display "%s" feed',	//TODO - Translation
+		'no_filter' => 'No filter',	//TODO - Translation
+		'none' => 'You haven’t created any user query yet.',	//TODO - Translation
+		'number' => 'Query n°%d',	//TODO - Translation
+		'order_asc' => 'Display oldest articles first',	//TODO - Translation
+		'order_desc' => 'Display newest articles first',	//TODO - Translation
+		'remove' => 'Remove user query',	//TODO - Translation
+		'search' => 'Search for "%s"',	//TODO - Translation
+		'state_0' => 'Display all articles',	//TODO - Translation
+		'state_1' => 'Display read articles',	//TODO - Translation
+		'state_2' => 'Display unread articles',	//TODO - Translation
+		'state_3' => 'Display all articles',	//TODO - Translation
+		'state_4' => 'Display favorite articles',	//TODO - Translation
+		'state_5' => 'Display read favorite articles',	//TODO - Translation
+		'state_6' => 'Display unread favorite articles',	//TODO - Translation
+		'state_7' => 'Display favorite articles',	//TODO - Translation
+		'state_8' => 'Display not favorite articles',	//TODO - Translation
+		'state_9' => 'Display read not favorite articles',	//TODO - Translation
+		'state_10' => 'Display unread not favorite articles',	//TODO - Translation
+		'state_11' => 'Display not favorite articles',	//TODO - Translation
+		'state_12' => 'Display all articles',	//TODO - Translation
+		'state_13' => 'Display read articles',	//TODO - Translation
+		'state_14' => 'Display unread articles',	//TODO - Translation
+		'state_15' => 'Display all articles',	//TODO - Translation
+		'title' => 'User queries',	//TODO - Translation
 	),
 	'reading' => array(
-		'_' => 'Reading',
-		'after_onread' => 'After “mark all as read”,',
-		'articles_per_page' => 'Number of articles per page',
-		'auto_load_more' => 'Load next articles at the page bottom',
-		'auto_remove_article' => 'Hide articles after reading',
-		'mark_updated_article_unread' => 'Mark updated articles as unread',
-		'confirm_enabled' => 'Display a confirmation dialog on “mark all as read” actions',
-		'display_articles_unfolded' => 'Show articles unfolded by default',
-		'display_categories_unfolded' => 'Show categories folded by default',
-		'hide_read_feeds' => 'Hide categories & feeds with no unread article (does not work with “Show all articles” configuration)',
-		'img_with_lazyload' => 'Use "lazy load" mode to load pictures',
-		'sides_close_article' => 'Clicking outside of article text area closes the article',	//TODO
-		'jump_next' => 'jump to next unread sibling (feed or category)',
-		'number_divided_when_reader' => 'Divided by 2 in the reading view.',
+		'_' => 'Reading',	//TODO - Translation
+		'after_onread' => 'After “mark all as read”,',	//TODO - Translation
+		'articles_per_page' => 'Number of articles per page',	//TODO - Translation
+		'auto_load_more' => 'Load next articles at the page bottom',	//TODO - Translation
+		'auto_remove_article' => 'Hide articles after reading',	//TODO - Translation
+		'confirm_enabled' => 'Display a confirmation dialog on “mark all as read” actions',	//TODO - Translation
+		'display_articles_unfolded' => 'Show articles unfolded by default',	//TODO - Translation
+		'display_categories_unfolded' => 'Show categories folded by default',	//TODO - Translation
+		'hide_read_feeds' => 'Hide categories & feeds with no unread article (does not work with “Show all articles” configuration)',	//TODO - Translation
+		'img_with_lazyload' => 'Use "lazy load" mode to load pictures',	//TODO - Translation
+		'jump_next' => 'jump to next unread sibling (feed or category)',	//TODO - Translation
+		'mark_updated_article_unread' => 'Mark updated articles as unread',	//TODO - Translation
+		'number_divided_when_reader' => 'Divided by 2 in the reading view.',	//TODO - Translation
 		'read' => array(
-			'article_open_on_website' => 'when article is opened on its original website',
-			'article_viewed' => 'when article is viewed',
-			'scroll' => 'while scrolling',
-			'upon_reception' => 'upon reception of the article',
-			'when' => 'Mark article as read…',
+			'article_open_on_website' => 'when article is opened on its original website',	//TODO - Translation
+			'article_viewed' => 'when article is viewed',	//TODO - Translation
+			'scroll' => 'while scrolling',	//TODO - Translation
+			'upon_reception' => 'upon reception of the article',	//TODO - Translation
+			'when' => 'Mark article as read…',	//TODO - Translation
 		),
 		'show' => array(
-			'_' => 'Articles to display',
-			'adaptive' => 'Adjust showing',
-			'all_articles' => 'Show all articles',
-			'unread' => 'Show only unread',
+			'_' => 'Articles to display',	//TODO - Translation
+			'adaptive' => 'Adjust showing',	//TODO - Translation
+			'all_articles' => 'Show all articles',	//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',
-			'newer_first' => 'Newer first',
-			'older_first' => 'Oldest first',
+			'_' => 'Sort order',	//TODO - Translation
+			'newer_first' => 'Newer first',	//TODO - Translation
+			'older_first' => 'Oldest first',	//TODO - Translation
 		),
-		'sticky_post' => 'Stick the article to the top when opened',
-		'title' => 'Reading',
+		'sticky_post' => 'Stick the article to the top when opened',	//TODO - Translation
+		'title' => 'Reading',	//TODO - Translation
 		'view' => array(
-			'default' => 'Default view',
-			'global' => 'Global view',
-			'normal' => 'Normal view',
-			'reader' => 'Reading view',
+			'default' => 'Default view',	//TODO - Translation
+			'global' => 'Global view',	//TODO - Translation
+			'normal' => 'Normal view',	//TODO - Translation
+			'reader' => 'Reading view',	//TODO - Translation
 		),
 	),
 	'sharing' => array(
-		'_' => 'Sharing',
-		'add' => 'Add a sharing method', // TODO
+		'_' => 'Sharing',	//TODO - Translation
+		'add' => 'Add a sharing method',	//TODO - Translation
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
-		'email' => 'Email',
+		'email' => 'Email',	//TODO - Translation
 		'facebook' => 'Facebook',
 		'g+' => 'Google+',
-		'more_information' => 'More information',
-		'print' => 'Print',
-		'remove' => 'Remove sharing method', // TODO
+		'more_information' => 'More information',	//TODO - Translation
+		'print' => 'Print',	//TODO - Translation
+		'remove' => 'Remove sharing method',	//TODO - Translation
 		'shaarli' => 'Shaarli',
-		'share_name' => 'Share name to display',
-		'share_url' => 'Share URL to use',
+		'share_name' => 'Share name to display',	//TODO - Translation
+		'share_url' => 'Share URL to use',	//TODO - Translation
 		'title' => 'Sharing',
 		'twitter' => 'Twitter',
 		'wallabag' => 'wallabag',
 	),
 	'shortcut' => array(
-		'_' => 'Shortcuts',
-		'article_action' => 'Article actions',
-		'auto_share' => 'Share',
-		'auto_share_help' => 'If there is only one sharing mode, it is used. Else modes are accessible by their number.',
-		'close_dropdown' => 'Close menus',
-		'collapse_article' => 'Collapse',
-		'first_article' => 'Skip to the first article',
-		'focus_search' => 'Access search box',
-		'global_view' => 'Switch to global view',  // TODO
-		'help' => 'Display documentation',
-		'javascript' => 'JavaScript must be enabled in order to use shortcuts',
-		'last_article' => 'Skip to the last article',
-		'load_more' => 'Load more articles',
-		'mark_read' => 'Mark as read',
-		'mark_favorite' => 'Mark as favourite',
-		'navigation' => 'Navigation',
-		'navigation_help' => 'With the "Shift" modifier, navigation shortcuts apply on feeds.<br/>With the "Alt" modifier, navigation shortcuts apply on categories.',
-		'next_article' => 'Skip to the next article',
-		'normal_view' => 'Switch to normal view', // TODO
-		'other_action' => 'Other actions',
-		'previous_article' => 'Skip to the previous article',
-		'reading_view' => 'Switch to reading view', // TODO
-		'rss_view' => 'Open RSS view in a new tab', // TODO
-		'see_on_website' => 'See on original website',
-		'shift_for_all_read' => '+ <code>shift</code> to mark all articles as read',
-		'title' => 'Shortcuts',
-		'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
+		'_' => '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.',	//TODO - Translation
+		'close_dropdown' => 'Close menus',	//TODO - Translation
+		'collapse_article' => 'Collapse',	//TODO - Translation
+		'first_article' => 'Skip to the first article',	//TODO - Translation
+		'focus_search' => 'Access search box',	//TODO - Translation
+		'global_view' => 'Switch to global view',	//TODO - Translation
+		'help' => 'Display documentation',	//TODO - Translation
+		'javascript' => 'JavaScript must be enabled in order to use shortcuts',	//TODO - Translation
+		'last_article' => 'Skip to the last article',	//TODO - Translation
+		'load_more' => 'Load more articles',	//TODO - Translation
+		'mark_read' => 'Mark as read',	//TODO - Translation
+		'mark_favorite' => 'Mark as favourite',	//TODO - Translation
+		'navigation' => 'Navigation',	//TODO - Translation
+		'navigation_help' => 'With the "Shift" modifier, navigation shortcuts apply on feeds.<br/>With the "Alt" modifier, navigation shortcuts apply on categories.',	//TODO - Translation
+		'next_article' => 'Skip to the next article',	//TODO - Translation
+		'normal_view' => 'Switch to normal view',	//TODO - Translation
+		'other_action' => 'Other actions',	//TODO - Translation
+		'previous_article' => 'Skip to the previous article',	//TODO - Translation
+		'reading_view' => 'Switch to reading view',	//TODO - Translation
+		'rss_view' => 'Open RSS view in a new tab',	//TODO - Translation
+		'see_on_website' => 'See on original website',	//TODO - Translation
+		'shift_for_all_read' => '+ <code>shift</code> to mark all articles as read',	//TODO - Translation
+		'title' => 'Shortcuts',	//TODO - Translation
+		'user_filter' => 'Access user filters',	//TODO - Translation
+		'user_filter_help' => 'If there is only one user filter, it is used. Else filters are accessible by their number.',	//TODO - Translation
+		'views' => 'Views',	//TODO - Translation
 	),
 	'user' => array(
-		'articles_and_size' => '%s articles (%s)',
-		'current' => 'Current user',
-		'is_admin' => 'is administrator',
-		'users' => 'Users',
+		'articles_and_size' => '%s articles (%s)',	//TODO - Translation
+		'current' => 'Current user',	//TODO - Translation
+		'is_admin' => 'is administrator',	//TODO - Translation
+		'users' => 'Users',	//TODO - Translation
 	),
 );

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

@@ -2,115 +2,115 @@
 
 return array(
 	'admin' => array(
-		'optimization_complete' => 'Optimisation complete',	//TODO
+		'optimization_complete' => 'Optimisation complete',	//TODO - Translation
 	),
 	'access' => array(
-		'denied' => 'You don’t have permission to access this page',	//TODO
-		'not_found' => 'You are looking for a page which doesn’t exist',	//TODO
+		'denied' => 'You don’t have permission to access this page',	//TODO - Translation
+		'not_found' => 'You are looking for a page which doesn’t exist',	//TODO - Translation
 	),
 	'auth' => array(
 		'form' => array(
-			'not_set' => 'A problem occured during authentication system configuration. Please retry later.',	//TODO
-			'set' => 'Form is now your default authentication system.',	//TODO
+			'not_set' => 'A problem occured during authentication system configuration. Please retry later.',	//TODO - Translation
+			'set' => 'Form is now your default authentication system.',	//TODO - Translation
 		),
 		'login' => array(
-			'invalid' => 'Login is invalid',	//TODO
-			'success' => 'You are connected',	//TODO
+			'invalid' => 'Login is invalid',	//TODO - Translation
+			'success' => 'You are connected',	//TODO - Translation
 		),
 		'logout' => array(
-			'success' => 'You are disconnected',	//TODO
+			'success' => 'You are disconnected',	//TODO - Translation
 		),
-		'no_password_set' => 'Administrator password hasn’t been set. This feature isn’t available.',	//TODO
+		'no_password_set' => 'Administrator password hasn’t been set. This feature isn’t available.',	//TODO - Translation
 	),
 	'conf' => array(
-		'error' => 'An error occurred during configuration saving',	//TODO
-		'query_created' => 'Query "%s" has been created.',	//TODO
-		'shortcuts_updated' => 'Shortcuts have been updated',	//TODO
-		'updated' => 'Configuration has been updated',	//TODO
+		'error' => 'An error occurred during configuration saving',		//TODO - Translation
+		'query_created' => 'Query "%s" has been created.',	//TODO - Translation
+		'shortcuts_updated' => 'Shortcuts have been updated',	//TODO - Translation
+		'updated' => 'Configuration has been updated',	//TODO - Translation
 	),
 	'extensions' => array(
-		'already_enabled' => '%s is already enabled',	//TODO
+		'already_enabled' => '%s is already enabled',	//TODO - Translation
 		'disable' => array(
-			'ko' => '%s cannot be disabled. <a href="%s">Check FreshRSS logs</a> for details.',	//TODO
-			'ok' => '%s is now disabled',	//TODO
+			'ko' => '%s cannot be disabled. <a href="%s">Check FreshRSS logs</a> for details.',	//TODO - Translation
+			'ok' => '%s is now disabled',	//TODO - Translation
 		),
 		'enable' => array(
-			'ko' => '%s cannot be enabled. <a href="%s">Check FreshRSS logs</a> for details.',	//TODO
-			'ok' => '%s is now enabled',	//TODO
+			'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
-		'not_enabled' => '%s is not enabled yet',	//TODO
-		'not_found' => '%s does not exist',	//TODO
+		'no_access' => 'You have no access on %s',	//TODO - Translation
+		'not_enabled' => '%s is not enabled yet',	//TODO - Translation
+		'not_found' => '%s does not exist',	//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
-		'feeds_imported' => 'Your feeds have been imported and will now be updated',	//TODO
-		'feeds_imported_with_errors' => 'Your feeds have been imported but some errors occurred',	//TODO
-		'file_cannot_be_uploaded' => 'File cannot be uploaded!',	//TODO
-		'no_zip_extension' => 'ZIP extension is not present on your server.',	//TODO
-		'zip_error' => 'An error occured during ZIP import.',	//TODO
+		'export_no_zip_extension' => 'ZIP extension is not present on your server. Please try to export files one by one.',	//TODO - Translation
+		'feeds_imported' => 'Your feeds have been imported and will now be updated',	//TODO - Translation
+		'feeds_imported_with_errors' => 'Your feeds have been imported but some errors occurred',	//TODO - Translation
+		'file_cannot_be_uploaded' => 'File cannot be uploaded!',	//TODO - Translation
+		'no_zip_extension' => 'ZIP extension is not present on your server.',	//TODO - Translation
+		'zip_error' => 'An error occured during ZIP import.',	//TODO - Translation
+	),
+	'profile' => array(
+		'error' => 'Your profile cannot be modified',	//TODO - Translation
+		'updated' => 'Your profile has been modified',	//TODO - Translation
 	),
 	'sub' => array(
-		'actualize' => 'Actualise',	//TODO
+		'actualize' => 'Actualise',	//TODO - Translation
 		'articles' => array(
-			'marked_read' => 'The selected articles have been marked as read.',	//TODO
-			'marked_unread' => 'The articles have been marked as unread.',	//TODO
+			'marked_read' => 'The selected articles have been marked as read.',	//TODO - Translation
+			'marked_unread' => 'The articles have been marked as unread.',	//TODO - Translation
 		),
 		'category' => array(
-			'created' => 'Category %s has been created.',	//TODO
-			'deleted' => 'Category has been deleted.',	//TODO
-			'emptied' => 'Category has been emptied',	//TODO
-			'error' => 'Category cannot be updated',	//TODO
-			'name_exists' => 'Category name already exists.',	//TODO
-			'no_id' => 'You must precise the id of the category.',	//TODO
-			'no_name' => 'Category name cannot be empty.',	//TODO
-			'not_delete_default' => 'You cannot delete the default category!',	//TODO
-			'not_exist' => 'The category does not exist!',	//TODO
-			'over_max' => 'You have reached your limit of categories (%d)',	//TODO
-			'updated' => 'Category has been updated.',	//TODO
+			'created' => 'Category %s has been created.',	//TODO - Translation
+			'deleted' => 'Category has been deleted.',	//TODO - Translation
+			'emptied' => 'Category has been emptied',	//TODO - Translation
+			'error' => 'Category cannot be updated',	//TODO - Translation
+			'name_exists' => 'Category name already exists.',	//TODO - Translation
+			'no_id' => 'You must precise the id of the category.',	//TODO - Translation
+			'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
 		),
 		'feed' => array(
-			'actualized' => '<em>%s</em> has been updated',	//TODO
-			'actualizeds' => 'RSS feeds have been updated',	//TODO
-			'added' => 'RSS feed <em>%s</em> has been added',	//TODO
-			'already_subscribed' => 'You have already subscribed to <em>%s</em>',	//TODO
-			'deleted' => 'Feed has been deleted',	//TODO
-			'error' => 'Feed cannot be updated',	//TODO
-			'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
-			'invalid_url' => 'URL <em>%s</em> is invalid',	//TODO
-			'n_actualized' => '%d feeds have been updated',	//TODO
-			'n_entries_deleted' => '%d articles have been deleted',	//TODO
-			'no_refresh' => 'There is no feed to refresh…',	//TODO
-			'not_added' => '<em>%s</em> could not be added',	//TODO
-			'over_max' => 'You have reached your limit of feeds (%d)',	//TODO
-			'updated' => 'Feed has been updated',	//TODO
+			'actualized' => '<em>%s</em> has been updated',	//TODO - Translation
+			'actualizeds' => 'RSS feeds have been updated',	//TODO - Translation
+			'added' => 'RSS feed <em>%s</em> has been added',	//TODO - Translation
+			'already_subscribed' => 'You have already subscribed to <em>%s</em>',	//TODO - Translation
+			'deleted' => 'Feed has been deleted',	//TODO - Translation
+			'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
+			'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
+			'over_max' => 'You have reached your limit of feeds (%d)',	//TODO - Translation
+			'updated' => 'Feed has been updated',	//TODO - Translation
 		),
-		'purge_completed' => 'Purge completed (%d articles deleted)',	//TODO
+		'purge_completed' => 'Purge completed (%d articles deleted)',	//TODO - Translation
 	),
 	'update' => array(
-		'can_apply' => 'FreshRSS will now be updated to the <strong>version %s</strong>.',	//TODO
-		'error' => 'The update process has encountered an error: %s',	//TODO
-		'file_is_nok' => 'New <strong>version %s</strong> available, but check permissions on <em>%s</em> directory. HTTP server must have rights to write into',	//TODO
-		'finished' => 'Update completed!',	//TODO
-		'none' => 'No update to apply',	//TODO
-		'server_not_found' => 'Update server cannot be found. [%s]',	//TODO
+		'can_apply' => 'FreshRSS will now be updated to the <strong>version %s</strong>.',	//TODO - Translation
+		'error' => 'The update process has encountered an error: %s',	//TODO - Translation
+		'file_is_nok' => 'New <strong>version %s</strong> available, but check permissions on <em>%s</em> directory. HTTP server must have rights to write into',	//TODO - Translation
+		'finished' => 'Update completed!',	//TODO - Translation
+		'none' => 'No update to apply',	//TODO - Translation
+		'server_not_found' => 'Update server cannot be found. [%s]',	//TODO - Translation
 	),
 	'user' => array(
 		'created' => array(
-			'_' => 'User %s has been created',	//TODO
-			'error' => 'User %s cannot be created',	//TODO
+			'_' => 'User %s has been created',	//TODO - Translation
+			'error' => 'User %s cannot be created',	//TODO - Translation
 		),
 		'deleted' => array(
-			'_' => 'User %s has been deleted',	//TODO
-			'error' => 'User %s cannot be deleted',	//TODO
+			'_' => 'User %s has been deleted',	//TODO - Translation
+			'error' => 'User %s cannot be deleted',	//TODO - Translation
 		),
 		'updated' => array(
-			'_' => 'User %s has been updated', // TODO
-			'error' => 'User %s has not been updated', // TODO
+			'_' => 'User %s has been updated',	//TODO - Translation
+			'error' => 'User %s has not been updated',	//TODO - Translation
 		),
 	),
-	'profile' => array(
-		'error' => 'Your profile cannot be modified',	//TODO
-		'updated' => 'Your profile has been modified',	//TODO
-	),
 );

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

@@ -2,117 +2,117 @@
 
 return array(
 	'action' => array(
-		'actualize' => 'Actualize',
-		'back_to_rss_feeds' => '← Go back to your RSS feeds',
-		'cancel' => 'Cancel',
-		'create' => 'Create',
-		'disable' => 'Disable',
-		'empty' => 'Empty',
-		'enable' => 'Enable',
-		'export' => 'Export',
-		'filter' => 'Filter',
-		'import' => 'Import',
-		'manage' => 'Manage',
-		'mark_favorite' => 'Mark as favourite',
-		'mark_read' => 'Mark as read',
-		'remove' => 'Remove',
-		'see_website' => 'See website',
-		'submit' => 'Submit',
-		'truncate' => 'Delete all articles',
-		'update' => 'Update', // TODO
+		'actualize' => 'Actualize',	//TODO - Translation
+		'back_to_rss_feeds' => '← Go back to your RSS feeds',	//TODO - Translation
+		'cancel' => 'Cancel',	//TODO - Translation
+		'create' => 'Create',	//TODO - Translation
+		'disable' => 'Disable',	//TODO - Translation
+		'empty' => 'Empty',	//TODO - Translation
+		'enable' => 'Enable',	//TODO - Translation
+		'export' => 'Export',	//TODO - Translation
+		'filter' => 'Filter',	//TODO - Translation
+		'import' => 'Import',	//TODO - Translation
+		'manage' => 'Manage',	//TODO - Translation
+		'mark_favorite' => 'Mark as favourite',	//TODO - Translation
+		'mark_read' => 'Mark as read',	//TODO - Translation
+		'remove' => 'Remove',	//TODO - Translation
+		'see_website' => 'See website',	//TODO - Translation
+		'submit' => 'Submit',	//TODO - Translation
+		'truncate' => 'Delete all articles',	//TODO - Translation
+		'update' => 'Update',	//TODO - Translation
 	),
 	'auth' => array(
-		'email' => 'Email address',
-		'keep_logged_in' => 'Keep me logged in <small>(%s дней)</small>',
-		'login' => 'Login',
-		'logout' => 'Logout',
+		'email' => 'Email address',	//TODO - Translation
+		'keep_logged_in' => 'Keep me logged in <small>(%s дней)</small>',	//TODO - Translation
+		'login' => 'Login',	//TODO - Translation
+		'logout' => 'Logout',	//TODO - Translation
 		'password' => array(
-			'_' => 'Password',
-			'format' => '<small>At least 7 characters</small>',
+			'_' => 'Password',	//TODO - Translation
+			'format' => '<small>At least 7 characters</small>',	//TODO - Translation
 		),
 		'registration' => array(
-			'_' => 'New account',
-			'ask' => 'Create an account?',
-			'title' => 'Account creation',
+			'_' => 'New account',	//TODO - Translation
+			'ask' => 'Create an account?',	//TODO - Translation
+			'title' => 'Account creation',	//TODO - Translation
 		),
-		'reset' => 'Authentication reset',
+		'reset' => 'Authentication reset',	//TODO - Translation
 		'username' => array(
-			'_' => 'Username',
-			'admin' => 'Administrator username',
-			'format' => '<small>maximum 16 alphanumeric characters</small>',
+			'_' => 'Username',	//TODO - Translation
+			'admin' => 'Administrator username',	//TODO - Translation
+			'format' => '<small>maximum 16 alphanumeric characters</small>',	//TODO - Translation
 		),
 	),
 	'date' => array(
-		'Apr' => '\\A\\p\\r\\i\\l',
-		'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' => 'Apr',
-		'aug' => 'aug',
-		'august' => 'Aug',
-		'before_yesterday' => 'Before yesterday',
-		'dec' => 'dec',
-		'december' => 'Dec',
-		'feb' => 'feb',
-		'february' => 'Feb',
-		'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' => 'jan',
-		'january' => 'Jan',
-		'jul' => 'jul',
-		'july' => 'Jul',
-		'jun' => 'jun',
-		'june' => 'Jun',
-		'last_3_month' => 'Last three months',
-		'last_6_month' => 'Last six months',
-		'last_month' => 'Last month',
-		'last_week' => 'Last week',
-		'last_year' => 'Last year',
-		'mar' => 'mar',
-		'march' => 'Mar',
-		'may' => 'May',
-		'may_' => 'May',
-		'mon' => 'Mon',
-		'month' => 'months',
-		'nov' => 'nov',
-		'november' => 'Nov',
-		'oct' => 'oct',
-		'october' => 'Oct',
-		'sat' => 'Sat',
-		'sep' => 'sep',
-		'september' => 'Sep',
-		'sun' => 'Sun',
-		'thu' => 'Thu',
-		'today' => 'Today',
-		'tue' => 'Tue',
-		'wed' => 'Wed',
-		'yesterday' => 'Yesterday',
+		'Apr' => '\\A\\p\\r\\i\\l',	//TODO - Translation
+		'apr' => 'apr',	//TODO - Translation
+		'april' => 'Apr',	//TODO - Translation
+		'Aug' => '\\A\\u\\g\\u\\s\\t',	//TODO - Translation
+		'aug' => 'aug',	//TODO - Translation
+		'august' => 'Aug',	//TODO - Translation
+		'before_yesterday' => 'Before yesterday',	//TODO - Translation
+		'Dec' => '\\D\\e\\c\\e\\m\\b\\e\\r',	//TODO - Translation
+		'dec' => 'dec',	//TODO - Translation
+		'december' => 'Dec',	//TODO - Translation
+		'Feb' => '\\F\\e\\b\\r\\u\\a\\r\\y',	//TODO - Translation
+		'feb' => 'feb',	//TODO - Translation
+		'february' => 'Feb',	//TODO - Translation
+		'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',	//TODO - Translation
+		'january' => 'Jan',	//TODO - Translation
+		'Jul' => '\\J\\u\\l\\y',	//TODO - Translation
+		'jul' => 'jul',	//TODO - Translation
+		'july' => 'Jul',	//TODO - Translation
+		'Jun' => '\\J\\u\\n\\e',	//TODO - Translation
+		'jun' => 'jun',	//TODO - Translation
+		'june' => 'Jun',	//TODO - Translation
+		'last_3_month' => 'Last three months',	//TODO - Translation
+		'last_6_month' => 'Last six months',	//TODO - Translation
+		'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',	//TODO - Translation
+		'march' => 'Mar',	//TODO - Translation
+		'May' => '\\M\\a\\y',	//TODO - Translation
+		'may' => 'May',	//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',	//TODO - Translation
+		'november' => 'Nov',	//TODO - Translation
+		'Oct' => '\\O\\c\\t\\o\\b\\e\\r',	//TODO - Translation
+		'oct' => 'oct',	//TODO - Translation
+		'october' => 'Oct',	//TODO - Translation
+		'sat' => 'Sat',	//TODO - Translation
+		'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r',	//TODO - Translation
+		'sep' => 'sep',	//TODO - Translation
+		'september' => 'Sep',	//TODO - Translation
+		'sun' => 'Sun',	//TODO - Translation
+		'thu' => 'Thu',	//TODO - Translation
+		'today' => 'Today',	//TODO - Translation
+		'tue' => 'Tue',	//TODO - Translation
+		'wed' => 'Wed',	//TODO - Translation
+		'yesterday' => 'Yesterday',	//TODO - Translation
 	),
 	'freshrss' => array(
-		'_' => 'FreshRSS',
-		'about' => 'About FreshRSS',
+		'_' => 'FreshRSS',	//TODO - Translation
+		'about' => 'About FreshRSS',	//TODO - Translation
 	),
 	'js' => array(
-		'category_empty' => 'Empty category',
-		'confirm_action' => 'Are you sure you want to perform this action? It cannot be cancelled!',
-		'confirm_action_feed_cat' => 'Are you sure you want to perform this action? You will lose related favorites and user queries. It cannot be cancelled!',
+		'category_empty' => 'Empty category',	//TODO - Translation
+		'confirm_action' => 'Are you sure you want to perform this action? It cannot be cancelled!',	//TODO - Translation
+		'confirm_action_feed_cat' => 'Are you sure you want to perform this action? You will lose related favorites and user queries. It cannot be cancelled!',	//TODO - Translation
 		'feedback' => array(
-			'body_new_articles' => 'There are %%d new articles to read on FreshRSS.',
-			'request_failed' => 'A request has failed, it may have been caused by Internet connection problems.',
-			'title_new_articles' => 'FreshRSS: new articles!',
+			'body_new_articles' => 'There are %%d new articles to read on FreshRSS.',	//TODO - Translation
+			'request_failed' => 'A request has failed, it may have been caused by Internet connection problems.',	//TODO - Translation
+			'title_new_articles' => 'FreshRSS: new articles!',	//TODO - Translation
 		),
-		'new_article' => 'There are new available articles, click to refresh the page.',
-		'should_be_activated' => 'JavaScript must be enabled',
+		'new_article' => 'There are new available articles, click to refresh the page.',	//TODO - Translation
+		'should_be_activated' => 'JavaScript must be enabled',	//TODO - Translation
 	),
 	'lang' => array(
 		'cz' => 'Čeština',
@@ -131,37 +131,36 @@ return array(
 		'zh-cn' => '简体中文',
 	),
 	'menu' => array(
-		'about' => 'About',
-		'admin' => 'Administration',
-		'archiving' => 'Archiving',
-		'authentication' => 'Authentication',
-		'check_install' => 'Installation checking',
-		'configuration' => 'Configuration',
-		'display' => 'Display',
-		'extensions' => 'Extensions',
-		'logs' => 'Logs',
-		'queries' => 'User queries',
-		'reading' => 'Reading',
-		'search' => 'Search words or #tags',
-		'sharing' => 'Sharing',
-		'shortcuts' => 'Shortcuts',
-		'stats' => 'Statistics',
-		'system' => 'System configuration',
-		'update' => 'Update',
-		'user_management' => 'Manage users',
-		'user_profile' => 'Profile',
+		'about' => 'About',	//TODO - Translation
+		'admin' => 'Administration',	//TODO - Translation
+		'archiving' => 'Archiving',	//TODO - Translation
+		'authentication' => 'Authentication',	//TODO - Translation
+		'check_install' => 'Installation checking',	//TODO - Translation
+		'configuration' => 'Configuration',	//TODO - Translation
+		'display' => 'Display',	//TODO - Translation
+		'extensions' => 'Extensions',	//TODO - Translation
+		'logs' => 'Logs',	//TODO - Translation
+		'queries' => 'User queries',	//TODO - Translation
+		'reading' => 'Reading',	//TODO - Translation
+		'search' => 'Search words or #tags',	//TODO - Translation
+		'sharing' => 'Sharing',	//TODO - Translation
+		'shortcuts' => 'Shortcuts',	//TODO - Translation
+		'stats' => 'Statistics',	//TODO - Translation
+		'system' => 'System configuration',	//TODO - Translation
+		'update' => 'Update',	//TODO - Translation
+		'user_management' => 'Manage users',	//TODO - Translation
+		'user_profile' => 'Profile',	//TODO - Translation
 	),
 	'pagination' => array(
-		'first' => 'First',
-		'last' => 'Last',
-		'load_more' => 'Load more articles',
-		'mark_all_read' => 'Mark all as read',
-		'next' => 'Next',
-		'nothing_to_load' => 'There are no more articles',
-		'previous' => 'Previous',
+		'first' => 'First',	//TODO - Translation
+		'last' => 'Last',	//TODO - Translation
+		'load_more' => 'Load more articles',	//TODO - Translation
+		'mark_all_read' => 'Mark all as read',	//TODO - Translation
+		'next' => 'Next',	//TODO - Translation
+		'nothing_to_load' => 'There are no more articles',	//TODO - Translation
+		'previous' => 'Previous',	//TODO - Translation
 	),
 	'share' => array(
-		'Known' => 'Known based sites',
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
 		'email' => 'Email',
@@ -169,6 +168,7 @@ return array(
 		'g+' => 'Google+',
 		'gnusocial' => 'GNU social',
 		'jdh' => 'Journal du hacker',
+		'Known' => 'Known based sites',
 		'linkedin' => 'LinkedIn',
 		'mastodon' => 'Mastodon',
 		'movim' => 'Movim',
@@ -180,16 +180,16 @@ return array(
 		'wallabagv2' => 'wallabag v2',
 	),
 	'short' => array(
-		'attention' => 'Warning!',
-		'blank_to_disable' => 'Leave blank to disable',
-		'by_author' => 'By:',
-		'by_default' => 'By default',
-		'damn' => 'Damn!',
-		'default_category' => 'Uncategorized',
-		'no' => 'No',
-		'not_applicable' => 'Not available',
-		'ok' => 'Ok!',
-		'or' => 'or',
-		'yes' => 'Yes',
+		'attention' => 'Warning!',	//TODO - Translation
+		'blank_to_disable' => 'Leave blank to disable',	//TODO - Translation
+		'by_author' => 'By:',	//TODO - Translation
+		'by_default' => 'By default',	//TODO - Translation
+		'damn' => 'Damn!',	//TODO - Translation
+		'default_category' => 'Uncategorized',	//TODO - Translation
+		'no' => 'No',	//TODO - Translation
+		'not_applicable' => 'Not available',	//TODO - Translation
+		'ok' => 'Ok!',	//TODO - Translation
+		'or' => 'or',	//TODO - Translation
+		'yes' => 'Yes',	//TODO - Translation
 	),
 );

+ 36 - 35
app/i18n/ru/index.php

@@ -2,32 +2,32 @@
 
 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',
-		'credits_content' => 'Some design elements come from <a href="http://twitter.github.io/bootstrap/">Bootstrap</a> although FreshRSS doesn’t use this framework. <a href="https://git.gnome.org/browse/gnome-icon-theme-symbolic">Icons</a> come from <a href="https://www.gnome.org/">GNOME project</a>. <em>Open Sans</em> font police has been created by <a href="https://fonts.google.com/specimen/Open+Sans">Steve Matteson</a>. FreshRSS is based on <a href="https://github.com/marienfressinaud/MINZ">Minz</a>, a PHP framework.',
-		'freshrss_description' => 'FreshRSS is a RSS feeds aggregator to self-host like <a href="http://tontof.net/kriss/feed/">Kriss Feed</a> or <a href="http://leed.idleman.fr/">Leed</a>. It is light and easy to take in hand while being powerful and configurable tool.',
-		'github' => '<a href="https://github.com/FreshRSS/FreshRSS/issues">on Github</a>',
-		'license' => 'License',
-		'project_website' => 'Project website',
-		'title' => 'About',
-		'version' => 'Version',
-		'website' => 'Website',
+		'_' => '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
+		'credits_content' => 'Some design elements come from <a href="http://twitter.github.io/bootstrap/">Bootstrap</a> although FreshRSS doesn’t use this framework. <a href="https://git.gnome.org/browse/gnome-icon-theme-symbolic">Icons</a> come from <a href="https://www.gnome.org/">GNOME project</a>. <em>Open Sans</em> font police has been created by <a href="https://fonts.google.com/specimen/Open+Sans">Steve Matteson</a>. FreshRSS is based on <a href="https://github.com/marienfressinaud/MINZ">Minz</a>, a PHP framework.',	//TODO - Translation
+		'freshrss_description' => 'FreshRSS is a RSS feeds aggregator to self-host like <a href="http://tontof.net/kriss/feed/">Kriss Feed</a> or <a href="http://leed.idleman.fr/">Leed</a>. It is light and easy to take in hand while being powerful and configurable tool.',	//TODO - Translation
+		'github' => '<a href="https://github.com/FreshRSS/FreshRSS/issues">on Github</a>',	//TODO - Translation
+		'license' => 'License',	//TODO - Translation
+		'project_website' => 'Project website',	//TODO - Translation
+		'title' => 'About',	//TODO - Translation
+		'version' => 'Version',	//TODO - Translation
+		'website' => 'Website',	//TODO - Translation
 	),
 	'feed' => array(
-		'add' => 'You may add some feeds.',
-		'empty' => 'There is no article to show.',
-		'rss_of' => 'RSS feed of %s',
-		'title' => 'Your RSS feeds',
-		'title_global' => 'Global view',
-		'title_fav' => 'Your favourites',
+		'add' => 'You may add some feeds.',	//TODO - Translation
+		'empty' => 'There is no article to show.',	//TODO - Translation
+		'rss_of' => 'RSS feed of %s',	//TODO - Translation
+		'title' => 'Your RSS feeds',	//TODO - Translation
+		'title_global' => 'Global view',	//TODO - Translation
+		'title_fav' => 'Your favourites',	//TODO - Translation
 	),
 	'log' => array(
 		'_' => 'Logs',
-		'clear' => 'Clear the logs',
-		'empty' => 'Log file is empty',
-		'title' => 'Logs',
+		'clear' => 'Clear the logs',	//TODO - Translation
+		'empty' => 'Log file is empty',	//TODO - Translation
+		'title' => 'Logs',	//TODO - Translation
 	),
 	'menu' => array(
 		'about' => 'About FreshRSS',
@@ -40,23 +40,24 @@ return array(
 		'mark_all_read' => 'Mark all as read',
 		'mark_cat_read' => 'Mark category as read',
 		'mark_feed_read' => 'Mark feed as read',
-		'mark_selection_unread' => 'Mark selection as unread',	//TODO
-		'newer_first' => 'Newer first',
-		'non-starred' => 'Show all but favorites',
-		'normal_view' => 'Normal view',
-		'older_first' => 'Oldest first',
-		'queries' => 'User queries',
-		'read' => 'Show only read',
-		'reader_view' => 'Reading view',
-		'rss_view' => 'RSS feed',
-		'search_short' => 'Search',
-		'starred' => 'Show only favorites',
-		'stats' => 'Statistics',
+		'mark_selection_unread' => 'Mark selection as unread',	//TODO - Translation
+		'newer_first' => 'Newer first',	//TODO - Translation
+		'non-starred' => 'Show all but favorites',	//TODO - Translation
+		'normal_view' => 'Normal view',	//TODO - Translation
+		'older_first' => 'Oldest first',	//TODO - Translation
+		'queries' => 'User queries',	//TODO - Translation
+		'read' => 'Show only read',	//TODO - Translation
+		'reader_view' => 'Reading view',	//TODO - Translation
+		'rss_view' => 'RSS feed',	//TODO - Translation
+		'search_short' => 'Search',	//TODO - Translation
+		'starred' => 'Show only favorites',	//TODO - Translation
+		'stats' => 'Statistics',	//TODO - Translation
 		'subscription' => 'Subscriptions management',
-		'unread' => 'Show only unread',
+		'tags' => 'My labels',	//TODO - Translation
+		'unread' => 'Show only unread',	//TODO - Translation
 	),
 	'share' => 'Share',
 	'tag' => array(
-		'related' => 'Article tags',	//TODO
+		'related' => 'Article tags',	//TODO - Translation
 	),
 );

+ 11 - 3
app/i18n/ru/install.php

@@ -24,8 +24,8 @@ return array(
 			'ok' => 'Конфигурация базы данных сохранена.',
 		),
 		'host' => 'Хост',
-		'prefix' => 'Префикс таблицы',
 		'password' => 'Пароль базы данных',
+		'prefix' => 'Префикс таблицы',
 		'type' => 'Тип базы данных',
 		'username' => 'Имя пользователя базы данных',
 	),
@@ -64,9 +64,13 @@ return array(
 			'nok' => 'Убедитесь, что вы не изменяете ваш HTTP REFERER.',
 			'ok' => 'Ваш HTTP REFERER известен и соотвествует вашему серверу.',
 		),
+		'json' => array(
+			'nok' => 'Cannot find a recommended library to parse JSON.',	//TODO - Translation
+			'ok' => 'You have a recommended library to parse JSON.',	//TODO - Translation
+		),
 		'mbstring' => array(
-			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO
-			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO
+			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO - Translation
+			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO - Translation
 		),
 		'minz' => array(
 			'nok' => 'У вас не установлен фрейворк Minz.',
@@ -88,6 +92,10 @@ return array(
 			'nok' => 'Проверьте права доступа к папке <em>./data/users</em> . Сервер HTTP должен иметь права на запись в эту папку.',
 			'ok' => 'Права на папку users  в порядке.',
 		),
+		'xml' => array(
+			'nok' => 'Cannot find the required library to parse XML.',
+			'ok' => 'You have the required library to parse XML.',
+		),
 	),
 	'conf' => array(
 		'_' => 'Общие настройки',

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

@@ -2,85 +2,85 @@
 
 return array(
 	'api' => array(
-		'documentation' => 'Copy the following URL to use it within an external tool.',// TODO
-		'title' => 'API',// TODO
+		'documentation' => 'Copy the following URL to use it within an external tool.',	//TODO - Translation
+		'title' => 'API',	//TODO - Translation
 	),
 	'bookmarklet' => array(
-		'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose "Bookmark This Link". Then click "Subscribe" button in any page you want to subscribe to.',// TODO
-		'label' => 'Subscribe',// TODO
-		'title' => 'Bookmarklet',// TODO
+		'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose "Bookmark This Link". Then click "Subscribe" button in any page you want to subscribe to.',	//TODO - Translation
+		'label' => 'Subscribe',	//TODO - Translation
+		'title' => 'Bookmarklet',	//TODO - Translation
 	),
 	'category' => array(
-		'_' => 'Category',// TODO
-		'add' => 'Add a category',// TODO
-		'empty' => 'Empty category',// TODO
-		'new' => 'New category',// TODO
+		'_' => 'Category',	//TODO - Translation
+		'add' => 'Add a category',	//TODO - Translation
+		'empty' => 'Empty category',	//TODO - Translation
+		'new' => 'New category',	//TODO - Translation
 	),
 	'feed' => array(
-		'add' => 'Add a RSS feed',// TODO
-		'advanced' => 'Advanced',// TODO
-		'archiving' => 'Archivage',// TODO
+		'add' => 'Add a RSS feed',	//TODO - Translation
+		'advanced' => 'Advanced',	//TODO - Translation
+		'archiving' => 'Archivage',	//TODO - Translation
 		'auth' => array(
-			'configuration' => 'Login',// TODO
-			'help' => 'Connection allows to access HTTP protected RSS feeds',// TODO
-			'http' => 'HTTP Authentication',// TODO
-			'password' => 'HTTP password',// TODO
-			'username' => 'HTTP username',// TODO
+			'configuration' => 'Login',	//TODO - Translation
+			'help' => 'Connection allows to access HTTP protected RSS feeds',	//TODO - Translation
+			'http' => 'HTTP Authentication',	//TODO - Translation
+			'password' => 'HTTP password',	//TODO - Translation
+			'username' => 'HTTP username',	//TODO - Translation
 		),
-		'clear_cache' => 'Always clear cache',	//TODO
-		'css_help' => 'Retrieves truncated RSS feeds (caution, requires more time!)',// TODO
-		'css_path' => 'Articles CSS path on original website',// TODO
-		'description' => 'Description',// TODO
-		'empty' => 'This feed is empty. Please verify that it is still maintained.',// TODO
-		'error' => 'This feed has encountered a problem. Please verify that it is always reachable then actualize it.',// TODO
-		'informations' => 'Information',// TODO
-		'keep_history' => 'Minimum number of articles to keep',// TODO
-		'moved_category_deleted' => 'When you delete a category, its feeds are automatically classified under <em>%s</em>.',// TODO
-		'mute' => 'mute', // TODO
-		'no_selected' => 'No feed selected.',// TODO
-		'number_entries' => '%d articles',// TODO
+		'clear_cache' => 'Always clear cache',	//TODO - Translation
+		'css_help' => 'Retrieves truncated RSS feeds (caution, requires more time!)',	//TODO - Translation
+		'css_path' => 'Articles CSS path on original website',	//TODO - Translation
+		'description' => 'Description',	//TODO - Translation
+		'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.',	//TODO - Translation
+		'informations' => 'Information',	//TODO - Translation
+		'keep_history' => 'Minimum number of articles to keep',	//TODO - Translation
+		'moved_category_deleted' => 'When you delete a category, its feeds are automatically classified under <em>%s</em>.',	//TODO - Translation
+		'mute' => 'mute',	//TODO - Translation
+		'no_selected' => 'No feed selected.',	//TODO - Translation
+		'number_entries' => '%d articles',	//TODO - Translation
 		'priority' => array(
-			'_' => 'Visibility', // TODO
-			'archived' => 'Do not show (archived)', // TODO
-			'main_stream' => 'Show in main stream', // TODO
-			'normal' => 'Show in its category', // TODO
+			'_' => '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
 		),
-		'ssl_verify' => 'Verify SSL security',	//TODO
-		'stats' => 'Statistics',// TODO
-		'think_to_add' => 'You may add some feeds.',// TODO
-		'timeout' => 'Timeout in seconds',	//TODO
-		'title' => 'Title',// TODO
-		'title_add' => 'Add a RSS feed',// TODO
-		'ttl' => 'Do not automatically refresh more often than',// TODO
-		'url' => 'Feed URL',// TODO
-		'validator' => 'Check the validity of the feed',// TODO
-		'website' => 'Website URL',// TODO
-		'pubsubhubbub' => 'Instant notification with PubSubHubbub',// TODO
+		'pubsubhubbub' => 'Instant notification with PubSubHubbub',	//TODO - Translation
+		'ssl_verify' => 'Verify SSL security',	//TODO - Translation
+		'stats' => 'Statistics',	//TODO - Translation
+		'think_to_add' => 'You may add some feeds.',	//TODO - Translation
+		'timeout' => 'Timeout in seconds',	//TODO - Translation
+		'title' => 'Title',	//TODO - Translation
+		'title_add' => 'Add a RSS feed',	//TODO - Translation
+		'ttl' => 'Do not automatically refresh more often than',	//TODO - Translation
+		'url' => 'Feed URL',	//TODO - Translation
+		'validator' => 'Check the validity of the feed',	//TODO - Translation
+		'website' => 'Website URL',	//TODO - Translation
 	),
 	'firefox' => array(
-		'documentation' => 'Follow the steps described <a href="https://developer.mozilla.org/en-US/Firefox/Releases/2/Adding_feed_readers_to_Firefox#Adding_a_new_feed_reader_manually">here</a> to add FreshRSS to Firefox feed reader list.',// TODO
-		'title' => 'Firefox feed reader',// TODO
+		'documentation' => 'Follow the steps described <a href="https://developer.mozilla.org/en-US/Firefox/Releases/2/Adding_feed_readers_to_Firefox#Adding_a_new_feed_reader_manually">here</a> to add FreshRSS to Firefox feed reader list.',	//TODO - Translation
+		'title' => 'Firefox feed reader',	//TODO - Translation
 	),
 	'import_export' => array(
-		'export' => 'Export',// TODO
-		'export_opml' => 'Export list of feeds (OPML)',// TODO
-		'export_starred' => 'Export your favourites',// TODO
-		'feed_list' => 'List of %s articles',// TODO
-		'file_to_import' => 'File to import<br />(OPML, JSON or ZIP)',// TODO
-		'file_to_import_no_zip' => 'File to import<br />(OPML or JSON)',// TODO
-		'import' => 'Import',// TODO
-		'starred_list' => 'List of favourite articles',// TODO
-		'title' => 'Import / export',// TODO
+		'export' => 'Export',	//TODO - Translation
+		'export_opml' => 'Export list of feeds (OPML)',	//TODO - Translation
+		'export_starred' => 'Export your favourites',	//TODO - Translation
+		'feed_list' => 'List of %s articles',	//TODO - Translation
+		'file_to_import' => 'File to import<br />(OPML, JSON or ZIP)',	//TODO - Translation
+		'file_to_import_no_zip' => 'File to import<br />(OPML or JSON)',	//TODO - Translation
+		'import' => 'Import',	//TODO - Translation
+		'starred_list' => 'List of favourite articles',	//TODO - Translation
+		'title' => 'Import / export',	//TODO - Translation
 	),
 	'menu' => array(
-		'bookmark' => 'Subscribe (FreshRSS bookmark)',// TODO
-		'import_export' => 'Import / export',// TODO
-		'subscription_management' => 'Subscriptions management',// TODO
-		'subscription_tools' => 'Subscription tools',// TODO
+		'bookmark' => 'Subscribe (FreshRSS bookmark)',	//TODO - Translation
+		'import_export' => 'Import / export',	//TODO - Translation
+		'subscription_management' => 'Subscriptions management',	//TODO - Translation
+		'subscription_tools' => 'Subscription tools',	//TODO - Translation
 	),
 	'title' => array(
-		'_' => 'Subscriptions management',// TODO
-		'feed_management' => 'RSS feeds management',// TODO
-		'subscription_tools' => 'Subscription tools',// TODO
+		'_' => 'Subscriptions management',	//TODO - Translation
+		'feed_management' => 'RSS feeds management',	//TODO - Translation
+		'subscription_tools' => 'Subscription tools',	//TODO - Translation
 	),
 );

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

@@ -67,8 +67,8 @@ return array(
 			'ok' => 'JSON eklentisi sorunsuz.',
 		),
 		'mbstring' => array(
-			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO
-			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO
+			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO - Translation
+			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO - Translation
 		),
 		'minz' => array(
 			'nok' => 'Minz framework eksik.',
@@ -106,23 +106,23 @@ return array(
 		),
 	),
 	'extensions' => array(
+		'author' => 'Author',	//TODO - Translation
+		'community' => 'Available community extensions',	//TODO - Translation
+		'description' => 'Description',	//TODO - Translation
 		'disabled' => 'Pasif',
 		'empty_list' => 'Yüklenmiş eklenti bulunmamaktadır',
 		'enabled' => 'Aktif',
+		'latest' => 'Installed',	//TODO - Translation
+		'name' => 'Name',	//TODO - Translation
 		'no_configure_view' => 'Bu eklenti yapılandırılamaz.',
 		'system' => array(
 			'_' => 'Sistem eklentileri',
 			'no_rights' => 'Sistem eklentileri (düzenleme hakkınız yok)',
 		),
 		'title' => 'Eklentiler',
+		'update' => 'Update available',	//TODO - Translation
 		'user' => 'Kullanıcı eklentileri',
-		'community' => 'Available community extensions', // @todo translate
-		'name' => 'Name', // @todo translate
-		'version' => 'Version', // @todo translate
-		'description' => 'Description', // @todo translate
-		'author' => 'Author', // @todo translate
-		'latest' => 'Installed', // @todo translate
-		'update' => 'Update available', // @todo translate
+		'version' => 'Version',	//TODO - Translation
 	),
 	'stats' => array(
 		'_' => 'İstatistikler',
@@ -179,15 +179,15 @@ return array(
 	'user' => array(
 		'articles_and_size' => '%s makale (%s)',
 		'create' => 'Yeni kullanıcı oluştur',
-		'delete_users' => 'Delete user', // TODO
+		'delete_users' => 'Delete user',	//TODO - Translation
 		'language' => 'Dil',
 		'number' => 'Oluşturulmuş %d hesap var',
 		'numbers' => 'Oluşturulmuş %d hesap var',
 		'password_form' => 'Şifre<br /><small>(Tarayıcı girişi için)</small>',
 		'password_format' => 'En az 7 karakter',
-		'selected' => 'Selected user', // TODO
+		'selected' => 'Selected user',	//TODO - Translation
 		'title' => 'Kullanıcıları yönet',
-		'update_users' => 'Update user', // TODO
+		'update_users' => 'Update user',	//TODO - Translation
 		'user_list' => 'Kullanıcı listesi',
 		'username' => 'Kullanıcı adı',
 		'users' => 'Kullanıcılar',

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

@@ -19,7 +19,7 @@ return array(
 			'bottom_line' => 'Alt çizgi',
 			'entry' => 'Makale ikonları',
 			'publication_date' => 'Yayınlama Tarihi',
-			'related_tags' => 'İlgili etiketler',	//TODO
+			'related_tags' => 'İlgili etiketler',	//TODO - Translation
 			'sharing' => 'Paylaşım',
 			'top_line' => 'Üst çizgi',
 		),
@@ -28,6 +28,7 @@ return array(
 			'seconds' => 'saniye (0 zaman aşımı yok demektir)',
 			'timeout' => 'HTML5 bildirim zaman aşımı',
 		),
+		'show_nav_buttons' => 'Show the navigation buttons',	//TODO - Translation
 		'theme' => 'Tema',
 		'title' => 'Görünüm',
 		'width' => array(
@@ -37,12 +38,22 @@ return array(
 			'no_limit' => 'Sınırsız',
 			'thin' => 'Zayıf',
 		),
-		'show_nav_buttons' => 'Show the navigation buttons',	//TODO
+	),
+	'profile' => array(
+		'_' => 'Profil yönetimi',
+		'delete' => array(
+			'_' => 'Hesap silme',
+			'warn' => 'Hesabınız ve tüm verileriniz silinecek.',
+		),
+		'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',
 	),
 	'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
+		'display' => 'Display user query results',	//TODO - Translation
 		'filter' => 'Filtre uygulandı:',
 		'get_all' => 'Tüm makaleleri göster',
 		'get_category' => '"%s" kategorisini göster',
@@ -53,7 +64,7 @@ return array(
 		'number' => 'Sorgu n°%d',
 		'order_asc' => 'Önce eski makaleleri göster',
 		'order_desc' => 'Önce yeni makaleleri göster',
-		'remove' => 'Remove user query', // TODO
+		'remove' => 'Remove user query',	//TODO - Translation
 		'search' => '"%s" için arama',
 		'state_0' => 'Tüm makaleleri göster',
 		'state_1' => 'Okunmuş makaleleri göster',
@@ -73,31 +84,19 @@ return array(
 		'state_15' => 'Tüm makaleleri göster',
 		'title' => 'Kullanıcı sorguları',
 	),
-	'profile' => array(
-		'_' => 'Profil yönetimi',
-		'delete' => array(
-			'_' => 'Hesap silme',
-			'warn' => 'Hesabınız ve tüm verileriniz silinecek.',
-		),
-		'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',
-	),
 	'reading' => array(
 		'_' => 'Okuma',
 		'after_onread' => '"Hepsini okundu say" dedinten sonra,',
 		'articles_per_page' => 'Sayfa başına makale sayısı',
 		'auto_load_more' => 'Sayfa sonunda yeni makaleleri yükle',
 		'auto_remove_article' => 'Okuduktan sonra makaleleri gizle',
-		'mark_updated_article_unread' => 'Güncellenen makaleleri okundu olarak işaretle',
 		'confirm_enabled' => '"Hepsini okundu say" eylemi için onay iste',
 		'display_articles_unfolded' => 'Show articles unfolded by default',
 		'display_categories_unfolded' => 'Show categories folded by default',
 		'hide_read_feeds' => 'Okunmamış makalesi olmayan kategori veya akışı gizle ("Tüm makaleleri göster" komutunda çalışmaz)',
 		'img_with_lazyload' => 'Resimleri yüklemek için "tembel modu" kullan',
-		'sides_close_article' => 'Clicking outside of article text area closes the article',	//TODO
 		'jump_next' => 'Bir sonraki benzer okunmamışa geç (akış veya kategori)',
+		'mark_updated_article_unread' => 'Güncellenen makaleleri okundu olarak işaretle',
 		'number_divided_when_reader' => 'Okuma modunda ikiye bölünecek.',
 		'read' => array(
 			'article_open_on_website' => 'orijinal makale sitesi açıldığında',
@@ -112,6 +111,7 @@ return array(
 			'all_articles' => 'Tüm makaleleri göster',
 			'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',
@@ -128,7 +128,7 @@ return array(
 	),
 	'sharing' => array(
 		'_' => 'Paylaşım',
-		'add' => 'Add a sharing method', // TODO
+		'add' => 'Add a sharing method',	//TODO - Translation
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
 		'email' => 'Email',
@@ -136,7 +136,7 @@ return array(
 		'g+' => 'Google+',
 		'more_information' => 'Daha fazla bilgi',
 		'print' => 'Yazdır',
-		'remove' => 'Remove sharing method', // TODO
+		'remove' => 'Remove sharing method',	//TODO - Translation
 		'shaarli' => 'Shaarli',
 		'share_name' => 'Paylaşım ismi',
 		'share_url' => 'Paylaşım URL si',
@@ -153,27 +153,27 @@ return array(
 		'collapse_article' => 'Kapat',
 		'first_article' => 'İlk makaleyi atla',
 		'focus_search' => 'Arama kutusuna eriş',
-		'global_view' => 'Switch to global view', // TODO
+		'global_view' => 'Switch to global view',	//TODO - Translation
 		'help' => 'Dokümantasyonu göster',
 		'javascript' => 'Kısayolları kullanabilmek için JavaScript aktif olmalıdır',
 		'last_article' => 'Son makaleyi atla',
 		'load_more' => 'Daha fazla makale yükle',
-		'mark_read' => 'Okundu olarak işaretle',
 		'mark_favorite' => 'Favori olarak işaretle',
+		'mark_read' => 'Okundu olarak işaretle',
 		'navigation' => 'Genel eylemler',
 		'navigation_help' => '"Shift" tuşu ile kısayollar akışlar için geçerli olur.<br/>"Alt" tuşu ile kısayollar kategoriler için geçerli olur.',
 		'next_article' => 'Sonraki makaleye geç',
-		'normal_view' => 'Switch to normal view', // TODO
+		'normal_view' => 'Switch to normal view',	//TODO - Translation
 		'other_action' => 'Diğer eylemler',
 		'previous_article' => 'Önceki makaleye geç',
-		'reading_view' => 'Switch to reading view', // TODO
-		'rss_view' => 'Open RSS view in a new tab', // TODO
+		'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' => '+ <code>shift</code> tuşu ile tüm makaleler okundu olarak işaretlenir',
 		'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
+		'views' => 'Views',	//TODO - Translation
 	),
 	'user' => array(
 		'articles_and_size' => '%s makale (%s)',

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

@@ -50,11 +50,15 @@ return array(
 		'no_zip_extension' => 'ZIP eklentisi mevcut sunucunuzda yer almıyor.',
 		'zip_error' => 'ZIP içe aktarımı sırasında hata meydana geldi.',
 	),
+	'profile' => array(
+		'error' => 'Profiliniz düzenlenemedi',
+		'updated' => 'Profiliniz düzenlendi',
+	),
 	'sub' => array(
 		'actualize' => 'Güncelleme',
 		'articles' => array(
-			'marked_read' => 'The selected articles have been marked as read.',	//TODO
-			'marked_unread' => 'The articles have been marked as unread.',	//TODO
+			'marked_read' => 'The selected articles have been marked as read.',	//TODO - Translation
+			'marked_unread' => 'The articles have been marked as unread.',	//TODO - Translation
 		),
 		'category' => array(
 			'created' => 'Kategori %s oluşturuldu.',
@@ -76,7 +80,7 @@ return array(
 			'already_subscribed' => '<em>%s</em> için zaten aboneliğiniz bulunmakta',
 			'deleted' => 'Akış silindi',
 			'error' => 'Akış güncellenemiyor',
-			'internal_problem' => 'RSS akışı eklenemiyor. Detaylar için <a href="%s">FreshRSS log kayıtlarını</a> kontrol edin.', // @todo
+			'internal_problem' => 'RSS akışı eklenemiyor. Detaylar için <a href="%s">FreshRSS log kayıtlarını</a> kontrol edin.',	//TODO - Translation
 			'invalid_url' => 'URL <em>%s</em> geçersiz',
 			'n_actualized' => '%d akışları güncellendi',
 			'n_entries_deleted' => '%d makaleleri silindi',
@@ -105,12 +109,8 @@ return array(
 			'error' => '%s kullanıcısı silinemedi',
 		),
 		'updated' => array(
-			'_' => 'User %s has been updated', // TODO
-			'error' => 'User %s has not been updated', // TODO
+			'_' => 'User %s has been updated',	//TODO - Translation
+			'error' => 'User %s has not been updated',	//TODO - Translation
 		),
 	),
-	'profile' => array(
-		'error' => 'Profiliniz düzenlenemedi',
-		'updated' => 'Profiliniz düzenlendi',
-	),
 );

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

@@ -19,7 +19,7 @@ return array(
 		'see_website' => 'Siteyi gör',
 		'submit' => 'Onayla',
 		'truncate' => 'Tüm makaleleri sil',
-		'update' => 'Update', // TODO
+		'update' => 'Update',	//TODO - Translation
 	),
 	'auth' => array(
 		'email' => 'Email adresleri',
@@ -44,33 +44,28 @@ return array(
 	),
 	'date' => array(
 		'Apr' => '\\N\\i\\s\\a\\n',
-		'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\\s\\t\\o\\s',
 		'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',
 		'format_date_hour' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y \\a\\t H\\:i',
 		'fri' => 'Cum',
+		'Jan' => '\\O\\c\\a\\k',
 		'jan' => 'oca',
 		'january' => 'Oca',
+		'Jul' => '\\T\\e\\m\\m\\u\\z',
 		'jul' => 'tem',
 		'july' => 'Tem',
+		'Jun' => '\\H\\a\\z\\i\\r\\a\\n',
 		'jun' => 'haz',
 		'june' => 'Haz',
 		'last_3_month' => 'Son 3 ay',
@@ -78,17 +73,22 @@ 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' => '\\M\\a\\y\\ı\\s',
 		'may' => 'Mayıs',
 		'may_' => 'May',
 		'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',
@@ -161,7 +161,6 @@ return array(
 		'previous' => 'Önceki',
 	),
 	'share' => array(
-		'Known' => 'Known based sites',
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
 		'email' => 'Email',
@@ -169,6 +168,7 @@ return array(
 		'g+' => 'Google+',
 		'gnusocial' => 'GNU social',
 		'jdh' => 'Journal du hacker',
+		'Known' => 'Known based sites',
 		'linkedin' => 'LinkedIn',
 		'mastodon' => 'Mastodon',
 		'movim' => 'Movim',

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

@@ -40,7 +40,7 @@ return array(
 		'mark_all_read' => 'Hepsini okundu olarak işaretle',
 		'mark_cat_read' => 'Kategoriyi okundu olarak işaretle',
 		'mark_feed_read' => 'Akışı okundu olarak işaretle',
-		'mark_selection_unread' => 'Mark selection as unread',	//TODO
+		'mark_selection_unread' => 'Mark selection as unread',	//TODO - Translation
 		'newer_first' => 'Önce yeniler',
 		'non-starred' => 'Favori dışındakileri göster',
 		'normal_view' => 'Normal görünüm',
@@ -53,11 +53,11 @@ return array(
 		'starred' => 'Favorileri göster',
 		'stats' => 'İstatistikler',
 		'subscription' => 'Abonelik yönetimi',
-		'tags' => 'My labels',	//TODO
+		'tags' => 'My labels',	//TODO - Translation
 		'unread' => 'Okunmamışları göster',
 	),
 	'share' => 'Share',
 	'tag' => array(
-		'related' => 'İlgili etiketler',	//TODO
+		'related' => 'İlgili etiketler',	//TODO - Translation
 	),
 );

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

@@ -24,8 +24,8 @@ return array(
 			'ok' => 'Veritabanı yapılandırılması kayıt edildi.',
 		),
 		'host' => 'Sunucu',
-		'prefix' => 'Tablo ön eki',
 		'password' => 'Veritabanı şifresi',
+		'prefix' => 'Tablo ön eki',
 		'type' => 'Veritabanı türü',
 		'username' => 'Veritabanı kullanıcı adı',
 	),
@@ -69,8 +69,8 @@ return array(
 			'ok' => 'Tavsiye edilen JSON çözümleme kütüphanesi sorunsuz.',
 		),
 		'mbstring' => array(
-			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO
-			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO
+			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO - Translation
+			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO - Translation
 		),
 		'minz' => array(
 			'nok' => 'Minz framework eksik.',

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

@@ -2,13 +2,13 @@
 
 return array(
 	'api' => array(
-		'documentation' => 'Copy the following URL to use it within an external tool.',// TODO
-		'title' => 'API',// TODO
+		'documentation' => 'Copy the following URL to use it within an external tool.',	//TODO - Translation
+		'title' => 'API',	//TODO - Translation
 	),
 	'bookmarklet' => array(
-		'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose "Bookmark This Link". Then click "Subscribe" button in any page you want to subscribe to.',// TODO
-		'label' => 'Subscribe',// TODO
-		'title' => 'Bookmarklet',// TODO
+		'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose "Bookmark This Link". Then click "Subscribe" button in any page you want to subscribe to.',	//TODO - Translation
+		'label' => 'Subscribe',	//TODO - Translation
+		'title' => 'Bookmarklet',	//TODO - Translation
 	),
 	'category' => array(
 		'_' => 'Kategori',
@@ -27,7 +27,7 @@ return array(
 			'password' => 'HTTP şifre',
 			'username' => 'HTTP kullanıcı adı',
 		),
-		'clear_cache' => 'Always clear cache',	//TODO
+		'clear_cache' => 'Always clear cache',	//TODO - Translation
 		'css_help' => 'Dikkat, daha çok zaman gerekir!',
 		'css_path' => 'Makaleleri kendi CSS görünümü ile göster',
 		'description' => 'Tanım',
@@ -36,30 +36,30 @@ return array(
 		'informations' => 'Bilgi',
 		'keep_history' => 'En az tutulacak makale sayısı',
 		'moved_category_deleted' => 'Bir kategoriyi silerseniz, içerisindeki akışlar <em>%s</em> içerisine yerleşir.',
-		'mute' => 'mute', // TODO
+		'mute' => 'mute',	//TODO - Translation
 		'no_selected' => 'Hiçbir akış seçilmedi.',
 		'number_entries' => '%d makale',
 		'priority' => array(
-			'_' => 'Visibility', // TODO
-			'archived' => 'Do not show (archived)', // TODO
+			'_' => 'Visibility',	//TODO - Translation
+			'archived' => 'Do not show (archived)',	//TODO - Translation
 			'main_stream' => 'Ana akışda göster',
-			'normal' => 'Show in its category', // TODO
+			'normal' => 'Show in its category',	//TODO - Translation
 		),
-		'ssl_verify' => 'Verify SSL security',	//TODO
+		'pubsubhubbub' => 'PubSubHubbub ile anlık bildirim',
+		'ssl_verify' => 'Verify SSL security',	//TODO - Translation
 		'stats' => 'İstatistikler',
 		'think_to_add' => 'Akış ekleyebilirsiniz.',
-		'timeout' => 'Timeout in seconds',	//TODO
+		'timeout' => 'Timeout in seconds',	//TODO - Translation
 		'title' => 'Başlık',
 		'title_add' => 'RSS akışı ekle',
 		'ttl' => 'Şu kadar süreden fazla otomatik yenileme yapma',
 		'url' => 'Akış URL',
 		'validator' => 'Akış geçerliliğini kontrol edin',
 		'website' => 'Site URL',
-		'pubsubhubbub' => 'PubSubHubbub ile anlık bildirim',
 	),
 	'firefox' => array(
-		'documentation' => 'Follow the steps described <a href="https://developer.mozilla.org/en-US/Firefox/Releases/2/Adding_feed_readers_to_Firefox#Adding_a_new_feed_reader_manually">here</a> to add FreshRSS to Firefox feed reader list.',// TODO
-		'title' => 'Firefox feed reader',// TODO
+		'documentation' => 'Follow the steps described <a href="https://developer.mozilla.org/en-US/Firefox/Releases/2/Adding_feed_readers_to_Firefox#Adding_a_new_feed_reader_manually">here</a> to add FreshRSS to Firefox feed reader list.',	//TODO - Translation
+		'title' => 'Firefox feed reader',	//TODO - Translation
 	),
 	'import_export' => array(
 		'export' => 'Dışa aktar',
@@ -76,11 +76,11 @@ return array(
 		'bookmark' => 'Abonelik (FreshRSS yer imleri)',
 		'import_export' => 'İçe / dışa aktar',
 		'subscription_management' => 'Abonelik yönetimi',
-		'subscription_tools' => 'Subscription tools',// TODO
+		'subscription_tools' => 'Subscription tools',	//TODO - Translation
 	),
 	'title' => array(
 		'_' => 'Abonelik yönetimi',
 		'feed_management' => 'RSS  akış yönetimi',
-		'subscription_tools' => 'Subscription tools',// TODO
+		'subscription_tools' => 'Subscription tools',	//TODO - Translation
 	),
 );

+ 11 - 11
app/i18n/zh-cn/admin.php

@@ -67,8 +67,8 @@ return array(
 			'ok' => '已找到 JSON 扩展',
 		),
 		'mbstring' => array(
-			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO
-			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO
+			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO - Translation
+			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO - Translation
 		),
 		'minz' => array(
 			'nok' => '找不到 Minz 框架。',
@@ -106,23 +106,23 @@ return array(
 		),
 	),
 	'extensions' => array(
+		'author' => '作者',
+		'community' => '可用的社区扩展',
+		'description' => '描述',
 		'disabled' => '已禁用',
 		'empty_list' => '没有已安装的扩展',
 		'enabled' => '已启用',
+		'latest' => '已安装',
+		'name' => '名称',
 		'no_configure_view' => '此扩展不能配置。',
 		'system' => array(
 			'_' => '系统扩展',
 			'no_rights' => '系统扩展 (你不能修改它)',
 		),
 		'title' => '扩展',
+		'update' => '更新可用',
 		'user' => '用户扩展',
-		'community' => '可用的社区扩展',
-		'name' => '名称',
 		'version' => '版本',
-		'description' => '描述',
-		'author' => '作者',
-		'latest' => '已安装',
-		'update' => '更新可用',
 	),
 	'stats' => array(
 		'_' => '统计',
@@ -179,15 +179,15 @@ return array(
 	'user' => array(
 		'articles_and_size' => '%s 篇文章 (%s)',
 		'create' => '创建新用户',
-		'delete_users' => 'Delete user', // TODO
+		'delete_users' => 'Delete user',	//TODO - Translation
 		'language' => '语言',
 		'number' => '已有 %d 个帐户',
 		'numbers' => '已有 %d 个帐户',
 		'password_form' => '密码<br /><small>(用于 Web-form 登录方式)</small>',
 		'password_format' => '至少 7 个字符',
-		'selected' => 'Selected user', // TODO
+		'selected' => 'Selected user',	//TODO - Translation
 		'title' => '用户管理',
-		'update_users' => 'Update user', // TODO
+		'update_users' => 'Update user',	//TODO - Translation
 		'user_list' => '用户列表',
 		'username' => '用户名',
 		'users' => '用户',

+ 20 - 20
app/i18n/zh-cn/conf.php

@@ -19,7 +19,7 @@ return array(
 			'bottom_line' => '底栏',
 			'entry' => '文章图标',
 			'publication_date' => '更新日期',
-			'related_tags' => '相关标签',	//TODO
+			'related_tags' => '相关标签',
 			'sharing' => '分享',
 			'top_line' => '顶栏',
 		),
@@ -28,6 +28,7 @@ return array(
 			'seconds' => '秒 (0 表示不超时)',
 			'timeout' => 'HTML5 通知超时时间',
 		),
+		'show_nav_buttons' => 'Show the navigation buttons',	//TODO - Translation
 		'theme' => '主题',
 		'title' => '显示',
 		'width' => array(
@@ -37,12 +38,22 @@ return array(
 			'no_limit' => '无限制',
 			'thin' => '小',
 		),
-		'show_nav_buttons' => 'Show the navigation buttons',	//TODO
+	),
+	'profile' => array(
+		'_' => '帐户管理',
+		'delete' => array(
+			'_' => '账户删除',
+			'warn' => '你的帐户和所有相关数据都将被删除。',
+		),
+		'password_api' => 'API 密码<br /><small>(例如,用于手机 APP)</small>',
+		'password_form' => '密码<br /><small>(用于 Web-form 登录方式)</small>',
+		'password_format' => '至少 7 个字符',
+		'title' => '用户帐户',
 	),
 	'query' => array(
 		'_' => '自定义查询',
 		'deprecated' => '此查询不再有效。相关的分类或 RSS 源已被删除。',
-		'display' => 'Display user query results', // TODO
+		'display' => 'Display user query results',	//TODO - Translation
 		'filter' => '生效的过滤器:',
 		'get_all' => '显示所有文章',
 		'get_category' => '显示分类 "%s"',
@@ -53,7 +64,7 @@ return array(
 		'number' => '查询 n°%d',
 		'order_asc' => '由旧到新显示文章',
 		'order_desc' => '由新到旧显示文章',
-		'remove' => 'Remove user query', // TODO
+		'remove' => 'Remove user query',	//TODO - Translation
 		'search' => '搜索 "%s"',
 		'state_0' => '显示所有文章',
 		'state_1' => '显示已读文章',
@@ -73,31 +84,19 @@ return array(
 		'state_15' => '显示所有文章',
 		'title' => '自定义查询',
 	),
-	'profile' => array(
-		'_' => '帐户管理',
-		'delete' => array(
-			'_' => '账户删除',
-			'warn' => '你的帐户和所有相关数据都将被删除。',
-		),
-		'password_api' => 'API 密码<br /><small>(例如,用于手机 APP)</small>',
-		'password_form' => '密码<br /><small>(用于 Web-form 登录方式)</small>',
-		'password_format' => '至少 7 个字符',
-		'title' => '用户帐户',
-	),
 	'reading' => array(
 		'_' => '阅读',
 		'after_onread' => '“全部设为已读”后,',
 		'articles_per_page' => '每页文章数',
 		'auto_load_more' => '在页面底部载入下一篇文章',
 		'auto_remove_article' => '阅读后隐藏文章',
-		'mark_updated_article_unread' => '有更新的文章设为未读',
 		'confirm_enabled' => '“全部设为已读”时显示确认对话框',
 		'display_articles_unfolded' => '默认展开文章',
 		'display_categories_unfolded' => '默认展开分类',
 		'hide_read_feeds' => '隐藏没有未读文章的分类或 RSS 源 (启用“显示所有文章”时不生效))',
 		'img_with_lazyload' => '延迟加载图片',
-		'sides_close_article' => '点击文章外区域以关闭文章',
 		'jump_next' => '跳转到下一未读项 (RSS 源或分类)',
+		'mark_updated_article_unread' => '有更新的文章设为未读',
 		'number_divided_when_reader' => '阅读视图中显示一半',
 		'read' => array(
 			'article_open_on_website' => '在打开原文章后',
@@ -112,6 +111,7 @@ return array(
 			'all_articles' => '显示所有文章',
 			'unread' => '只显示未读',
 		),
+		'sides_close_article' => '点击文章外区域以关闭文章',
 		'sort' => array(
 			'_' => '排列顺序',
 			'newer_first' => '由新到旧',
@@ -128,7 +128,7 @@ return array(
 	),
 	'sharing' => array(
 		'_' => '分享',
-		'add' => 'Add a sharing method', // TODO
+		'add' => 'Add a sharing method',	//TODO - Translation
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
 		'email' => 'Email',
@@ -136,7 +136,7 @@ return array(
 		'g+' => 'Google+',
 		'more_information' => '更多信息',
 		'print' => '打印',
-		'remove' => 'Remove sharing method', // TODO
+		'remove' => 'Remove sharing method',	//TODO - Translation
 		'shaarli' => 'Shaarli',
 		'share_name' => '名称',
 		'share_url' => '地址',
@@ -158,8 +158,8 @@ return array(
 		'javascript' => '若要使用快捷键,必须启用 JavaScript',
 		'last_article' => '跳转到最后一篇文章',
 		'load_more' => '载入更多文章',
-		'mark_read' => '设为已读',
 		'mark_favorite' => '加入收藏',
+		'mark_read' => '设为已读',
 		'navigation' => '浏览',
 		'navigation_help' => '搭配 "Shift" 键,浏览快捷键将生效于 RSS 源。<br/>搭配 "Alt" 键,浏览快捷键将生效于分类。',
 		'next_article' => '跳转到下一篇文章',

+ 9 - 9
app/i18n/zh-cn/feedback.php

@@ -50,11 +50,15 @@ return array(
 		'no_zip_extension' => '服务器未启用 ZIP 扩展。',
 		'zip_error' => '导入 ZIP 文件时出错',
 	),
+	'profile' => array(
+		'error' => '你的帐户修改失败',
+		'updated' => '你的帐户已修改',
+	),
 	'sub' => array(
 		'actualize' => '获取',
 		'articles' => array(
-			'marked_read' => 'The selected articles have been marked as read.',	//TODO
-			'marked_unread' => 'The articles have been marked as unread.',	//TODO
+			'marked_read' => 'The selected articles have been marked as read.',	//TODO - Translation
+			'marked_unread' => 'The articles have been marked as unread.',	//TODO - Translation
 		),
 		'category' => array(
 			'created' => '分类 %s 已创建。',
@@ -76,7 +80,7 @@ return array(
 			'already_subscribed' => '你已订阅 <em>%s</em>',
 			'deleted' => 'RSS 源已删除',
 			'error' => 'RSS 源更新失败',
-			'internal_problem' => 'RSS 源添加失败。<a href="%s">检查 FreshRSS 日志</a> 查看详情。', // @todo
+			'internal_problem' => 'RSS 源添加失败。<a href="%s">检查 FreshRSS 日志</a> 查看详情。',	//TODO - Translation
 			'invalid_url' => 'URL <em>%s</em> 无效',
 			'n_actualized' => '%d 个 RSS 源已更新',
 			'n_entries_deleted' => '%d 篇文章已删除',
@@ -105,12 +109,8 @@ return array(
 			'error' => '用户 %s 删除失败',
 		),
 		'updated' => array(
-			'_' => 'User %s has been updated', // TODO
-			'error' => 'User %s has not been updated', // TODO
+			'_' => 'User %s has been updated',	//TODO - Translation
+			'error' => 'User %s has not been updated',	//TODO - Translation
 		),
 	),
-	'profile' => array(
-		'error' => '你的帐户修改失败',
-		'updated' => '你的帐户已修改',
-	),
 );

+ 13 - 13
app/i18n/zh-cn/gen.php

@@ -19,7 +19,7 @@ return array(
 		'see_website' => '查看网站',
 		'submit' => '提交',
 		'truncate' => '删除所有文章',
-		'update' => 'Update', // TODO
+		'update' => 'Update',	//TODO - Translation
 	),
 	'auth' => array(
 		'email' => 'Email 地址',
@@ -44,33 +44,28 @@ return array(
 	),
 	'date' => array(
 		'Apr' => '\\四\\月',
-		'Aug' => '\\八\\月',
-		'Dec' => '\\十\\二\\月',
-		'Feb' => '\\二\\月',
-		'Jan' => '\\一\\月',
-		'Jul' => '\\七\\月',
-		'Jun' => '\\六\\月',
-		'Mar' => '\\三\\月',
-		'May' => '\\五\\月',
-		'Nov' => '\\十\\一\\月',
-		'Oct' => '\\十\\月',
-		'Sep' => '\\九\\月',
 		'apr' => '四月',
 		'april' => '四月',
+		'Aug' => '\\八\\月',
 		'aug' => '八月',
 		'august' => '八月',
 		'before_yesterday' => '昨天以前',
+		'Dec' => '\\十\\二\\月',
 		'dec' => '十二月',
 		'december' => '十二月',
+		'Feb' => '\\二\\月',
 		'feb' => '二月',
 		'february' => '二月',
 		'format_date' => 'Y\\年n\\月j\\日',
 		'format_date_hour' => 'Y\\年n\\月j\\日  H\\:i',
 		'fri' => '周五',
+		'Jan' => '\\一\\月',
 		'jan' => '一月',
 		'january' => '一月',
+		'Jul' => '\\七\\月',
 		'jul' => '七月',
 		'july' => '七月',
+		'Jun' => '\\六\\月',
 		'jun' => '六月',
 		'june' => '六月',
 		'last_3_month' => '最近三个月',
@@ -78,17 +73,22 @@ return array(
 		'last_month' => '上月',
 		'last_week' => '上周',
 		'last_year' => '去年',
+		'Mar' => '\\三\\月',
 		'mar' => '三月',
 		'march' => '三月',
+		'May' => '\\五\\月',
 		'may' => '五月',
 		'may_' => '五月',
 		'mon' => '周一',
 		'month' => '个月',
+		'Nov' => '\\十\\一\\月',
 		'nov' => '十一月',
 		'november' => '十一月',
+		'Oct' => '\\十\\月',
 		'oct' => '十月',
 		'october' => '十月',
 		'sat' => '周日',
+		'Sep' => '\\九\\月',
 		'sep' => '九月',
 		'september' => '九月',
 		'sun' => '周日',
@@ -161,7 +161,6 @@ return array(
 		'previous' => '上一页',
 	),
 	'share' => array(
-		'Known' => '基于 Known 的站点',
 		'blogotext' => 'Blogotext',
 		'diaspora' => 'Diaspora*',
 		'email' => 'Email',
@@ -169,6 +168,7 @@ return array(
 		'g+' => 'Google+',
 		'gnusocial' => 'GNU social',
 		'jdh' => 'Journal du hacker',
+		'Known' => '基于 Known 的站点',
 		'linkedin' => 'LinkedIn',
 		'mastodon' => 'Mastodon',
 		'movim' => 'Movim',

+ 3 - 3
app/i18n/zh-cn/index.php

@@ -40,7 +40,7 @@ return array(
 		'mark_all_read' => '全部设为已读',
 		'mark_cat_read' => '此分类设为已读',
 		'mark_feed_read' => '此源设为已读',
-		'mark_selection_unread' => 'Mark selection as unread',	//TODO
+		'mark_selection_unread' => 'Mark selection as unread',	//TODO - Translation
 		'newer_first' => '由新到旧',
 		'non-starred' => '显示未收藏',
 		'normal_view' => '普通视图',
@@ -53,11 +53,11 @@ return array(
 		'starred' => '显示收藏',
 		'stats' => '统计',
 		'subscription' => '订阅管理',
-		'tags' => 'My labels',	//TODO
+		'tags' => 'My labels',	//TODO - Translation
 		'unread' => '显示未读',
 	),
 	'share' => '分享',
 	'tag' => array(
-		'related' => '相关标签',	//TODO
+		'related' => '相关标签',	//TODO - Translation
 	),
 );

+ 3 - 3
app/i18n/zh-cn/install.php

@@ -24,8 +24,8 @@ return array(
 			'ok' => '数据库配置已保存。',
 		),
 		'host' => '主机',
-		'prefix' => '表前缀',
 		'password' => '密码',
+		'prefix' => '表前缀',
 		'type' => '数据库类型',
 		'username' => '用户名',
 	),
@@ -69,8 +69,8 @@ return array(
 			'ok' => '已找到推荐的 JSON 解析库。',
 		),
 		'mbstring' => array(
-			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO
-			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO
+			'nok' => 'Cannot find the recommended library mbstring for Unicode.',	//TODO - Translation
+			'ok' => 'You have the recommended library mbstring for Unicode.',	//TODO - Translation
 		),
 		'minz' => array(
 			'nok' => '找不到 Minz 框架。',

+ 4 - 4
app/i18n/zh-cn/sub.php

@@ -27,7 +27,7 @@ return array(
 			'password' => 'HTTP 密码',
 			'username' => 'HTTP 用户名',
 		),
-		'clear_cache' => 'Always clear cache',	//TODO
+		'clear_cache' => 'Always clear cache',	//TODO - Translation
 		'css_help' => '用于获取全文(注意,这将耗费更多时间!)',
 		'css_path' => '原文的 CSS 选择器',
 		'description' => '描述',
@@ -45,17 +45,17 @@ return array(
 			'main_stream' => '在首页中显示',
 			'normal' => '在分类中显示',
 		),
-		'ssl_verify' => 'Verify SSL security',	//TODO
+		'pubsubhubbub' => 'PubSubHubbub 即时通知',
+		'ssl_verify' => 'Verify SSL security',	//TODO - Translation
 		'stats' => '统计',
 		'think_to_add' => '你可以添加一些 RSS 源。',
-		'timeout' => 'Timeout in seconds',	//TODO
+		'timeout' => 'Timeout in seconds',	//TODO - Translation
 		'title' => '标题',
 		'title_add' => '添加 RSS 源',
 		'ttl' => '最小自动更新时间',
 		'url' => '源 URL',
 		'validator' => '检查 RSS 源有效性',
 		'website' => '网站 URL',
-		'pubsubhubbub' => 'PubSubHubbub 即时通知',
 	),
 	'firefox' => array(
 		'documentation' => '按照 <a href="https://developer.mozilla.org/en-US/Firefox/Releases/2/Adding_feed_readers_to_Firefox#Adding_a_new_feed_reader_manually">这里</a> 描述的步骤可将 FreshRSS 添加到 Firefox 阅读器列表',