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

Fix all broken links in the entire repository (#9207)

* Fix all broken links in the entire repository

* Update docs/CHANGELOG-old2.md

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update config.default.php

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update README.md

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update docs/i18n/freshrss.fr.po

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update docs/i18n/templates/freshrss.pot

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update README.md

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update docs/fr/users/01_Installation.md

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update docs/fr/users/01_Installation.md

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update docs/en/internationalization.md

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Manual fixes, preferences
* Prefer canonical when known, prefer shorter, prefer roots, prefer URLs with content negotation (e.g. language preference)
* Keep 302, 307 unchanged
* Use only `.example`, `example.net` or similarly reserved domains for URL examples

* Fix language negotiation for developer.mozilla.org

* Restore a Stackoverflow 302

* Fix some example.com

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Inverle 2 недель назад
Родитель
Сommit
a84c0a8bc2
100 измененных файлов с 392 добавлено и 396 удалено
  1. 5 5
      CHANGELOG.md
  2. 55 55
      CREDITS.md
  3. 7 7
      Docker/README.md
  4. 1 1
      LICENSE.txt
  5. 7 8
      README.fr.md
  6. 7 7
      README.md
  7. 3 3
      app/Models/DatabaseDAO.php
  8. 1 1
      app/Models/Entry.php
  9. 4 4
      app/Models/EntryDAO.php
  10. 1 1
      app/Models/EntryDAOSQLite.php
  11. 1 1
      app/Models/SimplePieCustom.php
  12. 1 1
      app/i18n/cs/conf.php
  13. 6 6
      app/i18n/cs/sub.php
  14. 1 1
      app/i18n/de/conf.php
  15. 6 6
      app/i18n/de/sub.php
  16. 1 1
      app/i18n/el/conf.php
  17. 6 6
      app/i18n/el/sub.php
  18. 1 1
      app/i18n/en-US/conf.php
  19. 6 6
      app/i18n/en-US/sub.php
  20. 1 1
      app/i18n/en/conf.php
  21. 6 6
      app/i18n/en/sub.php
  22. 1 1
      app/i18n/es/conf.php
  23. 6 6
      app/i18n/es/sub.php
  24. 1 1
      app/i18n/fa/conf.php
  25. 6 6
      app/i18n/fa/sub.php
  26. 1 1
      app/i18n/fi/conf.php
  27. 6 6
      app/i18n/fi/sub.php
  28. 6 6
      app/i18n/fr/sub.php
  29. 1 1
      app/i18n/he/conf.php
  30. 6 6
      app/i18n/he/sub.php
  31. 1 1
      app/i18n/hu/conf.php
  32. 6 6
      app/i18n/hu/sub.php
  33. 1 1
      app/i18n/id/conf.php
  34. 6 6
      app/i18n/id/sub.php
  35. 1 1
      app/i18n/it/conf.php
  36. 6 6
      app/i18n/it/sub.php
  37. 1 1
      app/i18n/ja/conf.php
  38. 6 6
      app/i18n/ja/sub.php
  39. 1 1
      app/i18n/ko/conf.php
  40. 6 6
      app/i18n/ko/sub.php
  41. 1 1
      app/i18n/lt/conf.php
  42. 6 6
      app/i18n/lt/sub.php
  43. 1 1
      app/i18n/lv/conf.php
  44. 6 6
      app/i18n/lv/sub.php
  45. 1 1
      app/i18n/nl/conf.php
  46. 6 6
      app/i18n/nl/sub.php
  47. 1 1
      app/i18n/oc/conf.php
  48. 6 6
      app/i18n/oc/sub.php
  49. 1 1
      app/i18n/pl/conf.php
  50. 6 6
      app/i18n/pl/sub.php
  51. 1 1
      app/i18n/pt-BR/conf.php
  52. 6 6
      app/i18n/pt-BR/sub.php
  53. 1 1
      app/i18n/pt-PT/conf.php
  54. 6 6
      app/i18n/pt-PT/sub.php
  55. 1 1
      app/i18n/ru/conf.php
  56. 6 6
      app/i18n/ru/sub.php
  57. 1 1
      app/i18n/sk/conf.php
  58. 6 6
      app/i18n/sk/sub.php
  59. 1 1
      app/i18n/tr/conf.php
  60. 6 6
      app/i18n/tr/sub.php
  61. 1 1
      app/i18n/uk/conf.php
  62. 6 6
      app/i18n/uk/sub.php
  63. 1 1
      app/i18n/zh-CN/conf.php
  64. 6 6
      app/i18n/zh-CN/sub.php
  65. 1 1
      app/i18n/zh-TW/conf.php
  66. 6 6
      app/i18n/zh-TW/sub.php
  67. 6 6
      app/shares.php
  68. 1 1
      config-user.default.php
  69. 2 2
      config.default.php
  70. 1 1
      constants.php
  71. 18 18
      docs/CHANGELOG-old2.md
  72. 1 1
      docs/en/admins/02_Prerequisites.md
  73. 1 1
      docs/en/admins/04_Updating.md
  74. 1 1
      docs/en/admins/05_Configuring_email_validation.md
  75. 2 2
      docs/en/admins/07_LinuxUpdate.md
  76. 1 1
      docs/en/admins/08_FeedUpdates.md
  77. 1 1
      docs/en/admins/10_ServerConfig.md
  78. 1 1
      docs/en/admins/14_CloudProviders.md
  79. 1 1
      docs/en/admins/16_OpenID-Connect-Authentik.md
  80. 2 2
      docs/en/admins/16_OpenID-Connect.md
  81. 4 4
      docs/en/admins/18_Pocket-ID.md
  82. 4 4
      docs/en/contributing.md
  83. 3 3
      docs/en/developers/02_First_steps.md
  84. 2 3
      docs/en/developers/02_GitHub.md
  85. 2 2
      docs/en/developers/04_Pull_requests.md
  86. 2 2
      docs/en/developers/05_Release_new_version.md
  87. 16 16
      docs/en/developers/06_Fever_API.md
  88. 3 4
      docs/en/developers/06_GoogleReader_API.md
  89. 1 1
      docs/en/developers/Minz/migrations.md
  90. 3 3
      docs/en/developers/OPML.md
  91. 5 5
      docs/en/index.md
  92. 3 3
      docs/en/internationalization.md
  93. 1 1
      docs/en/users/04_Subscriptions.md
  94. 1 1
      docs/en/users/05_Configuration.md
  95. 5 5
      docs/en/users/06_Mobile_access.md
  96. 2 2
      docs/en/users/07_Frequently_Asked_Questions.md
  97. 2 3
      docs/en/users/08_sharing_services.md
  98. 1 1
      docs/en/users/09_refreshing_feeds.md
  99. 4 4
      docs/en/users/10_filter.md
  100. 2 2
      docs/fr/contributing.md

+ 5 - 5
CHANGELOG.md

@@ -1,4 +1,4 @@
-# FreshRSS changelog
+# FreshRSS changelog
 
 
 See also [the FreshRSS releases](https://github.com/FreshRSS/FreshRSS/releases).
 See also [the FreshRSS releases](https://github.com/FreshRSS/FreshRSS/releases).
 
 
@@ -46,7 +46,7 @@ See also [the FreshRSS releases](https://github.com/FreshRSS/FreshRSS/releases).
 	* Improve Spanish [#8878](https://github.com/FreshRSS/FreshRSS/pull/8878)
 	* Improve Spanish [#8878](https://github.com/FreshRSS/FreshRSS/pull/8878)
 	* Improve Ukrainian [#8871](https://github.com/FreshRSS/FreshRSS/pull/8871)
 	* Improve Ukrainian [#8871](https://github.com/FreshRSS/FreshRSS/pull/8871)
 * Misc.
 * Misc.
-	* Update to PHPMailer 7.1.1 [#9807](https://github.com/FreshRSS/FreshRSS/pull/9807)
+	* Update to PHPMailer 7.1.1 [#8907](https://github.com/FreshRSS/FreshRSS/pull/8907)
 	* Improve PHP code [#8906](https://github.com/FreshRSS/FreshRSS/pull/8906)
 	* Improve PHP code [#8906](https://github.com/FreshRSS/FreshRSS/pull/8906)
 	* Fix PHPStan 2.2.2 in CLI [#8911](https://github.com/FreshRSS/FreshRSS/pull/8911)
 	* Fix PHPStan 2.2.2 in CLI [#8911](https://github.com/FreshRSS/FreshRSS/pull/8911)
 	* Update dev dependencies [#8904](https://github.com/FreshRSS/FreshRSS/pull/8904), [#8905](https://github.com/FreshRSS/FreshRSS/pull/8905)
 	* Update dev dependencies [#8904](https://github.com/FreshRSS/FreshRSS/pull/8904), [#8905](https://github.com/FreshRSS/FreshRSS/pull/8905)
@@ -347,7 +347,7 @@ See also [the FreshRSS releases](https://github.com/FreshRSS/FreshRSS/releases).
 	* Scroll into filtered feed/category on page load [#8281](https://github.com/FreshRSS/FreshRSS/pull/8281)
 	* Scroll into filtered feed/category on page load [#8281](https://github.com/FreshRSS/FreshRSS/pull/8281)
 	* Display sidebar dropdowns above if no space below [#8335](https://github.com/FreshRSS/FreshRSS/pull/8335), [#8336](https://github.com/FreshRSS/FreshRSS/pull/8336)
 	* Display sidebar dropdowns above if no space below [#8335](https://github.com/FreshRSS/FreshRSS/pull/8335), [#8336](https://github.com/FreshRSS/FreshRSS/pull/8336)
 	* Use native CSS instead of SCSS [#8200](https://github.com/FreshRSS/FreshRSS/pull/8200), [#8241](https://github.com/FreshRSS/FreshRSS/pull/8241)
 	* Use native CSS instead of SCSS [#8200](https://github.com/FreshRSS/FreshRSS/pull/8200), [#8241](https://github.com/FreshRSS/FreshRSS/pull/8241)
-		* Using [CSS nesting](https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Nesting) and [relative colours](https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Colors/Using_relative_colors).
+		* Using [CSS nesting](https://developer.mozilla.org/docs/Web/CSS/Guides/Nesting) and [relative colours](https://developer.mozilla.org/docs/Web/CSS/Guides/Colors/Using_relative_colors).
 	* Various UI and style improvements: [#8171](https://github.com/FreshRSS/FreshRSS/pull/8171), [#8185](https://github.com/FreshRSS/FreshRSS/pull/8185), [#8196](https://github.com/FreshRSS/FreshRSS/pull/8196)
 	* Various UI and style improvements: [#8171](https://github.com/FreshRSS/FreshRSS/pull/8171), [#8185](https://github.com/FreshRSS/FreshRSS/pull/8185), [#8196](https://github.com/FreshRSS/FreshRSS/pull/8196)
 	* JavaScript finalise migration from `Promise` to `async`/`await`: [#8182](https://github.com/FreshRSS/FreshRSS/pull/8182)
 	* JavaScript finalise migration from `Promise` to `async`/`await`: [#8182](https://github.com/FreshRSS/FreshRSS/pull/8182)
 * API
 * API
@@ -701,7 +701,7 @@ Security
 * Features
 * Features
 	* Add support for [regex search (regular expressions)](https://freshrss.github.io/FreshRSS/en/users/10_filter.html#regex) [#6706](https://github.com/FreshRSS/FreshRSS/pull/6706), [#6926](https://github.com/FreshRSS/FreshRSS/pull/6926)
 	* Add support for [regex search (regular expressions)](https://freshrss.github.io/FreshRSS/en/users/10_filter.html#regex) [#6706](https://github.com/FreshRSS/FreshRSS/pull/6706), [#6926](https://github.com/FreshRSS/FreshRSS/pull/6926)
 		* ⚠️ Advanced regex syntax for searches depends on the database used (SQLite, PostgreSQL, MariaDB, MySQL),
 		* ⚠️ Advanced regex syntax for searches depends on the database used (SQLite, PostgreSQL, MariaDB, MySQL),
-		but FreshRSS filter actions such as auto-mark-as-read and auto-favourite always use [PHP PCRE2 syntax](https://php.net/regexp.introduction).
+		but FreshRSS filter actions such as auto-mark-as-read and auto-favourite always use [PHP PCRE2 syntax](https://www.php.net/regexp.introduction).
 	* Allow dynamic search operator in user queries, like `search:UserQueryA date:P1d` [#6851](https://github.com/FreshRSS/FreshRSS/pull/6851)
 	* Allow dynamic search operator in user queries, like `search:UserQueryA date:P1d` [#6851](https://github.com/FreshRSS/FreshRSS/pull/6851)
 	* New feed mode *HTML+XPath+JSON dot notation* (JSON in HTML) [#6888](https://github.com/FreshRSS/FreshRSS/pull/6888)
 	* New feed mode *HTML+XPath+JSON dot notation* (JSON in HTML) [#6888](https://github.com/FreshRSS/FreshRSS/pull/6888)
 	* Better HTTP compliance with support for HTTP response headers `Cache-Control: max-age` and `Expires` [#6812](https://github.com/FreshRSS/FreshRSS/pull/6812), [FreshRSS/simplepie#26](https://github.com/FreshRSS/simplepie/pull/26)
 	* Better HTTP compliance with support for HTTP response headers `Cache-Control: max-age` and `Expires` [#6812](https://github.com/FreshRSS/FreshRSS/pull/6812), [FreshRSS/simplepie#26](https://github.com/FreshRSS/simplepie/pull/26)
@@ -943,7 +943,7 @@ Security
 		[#6099](https://github.com/FreshRSS/FreshRSS/pull/6099), [#6214](https://github.com/FreshRSS/FreshRSS/pull/6214)
 		[#6099](https://github.com/FreshRSS/FreshRSS/pull/6099), [#6214](https://github.com/FreshRSS/FreshRSS/pull/6214)
 	* Fix i18n `cli/manipulate.translation.php` ignore behaviour [#6041](https://github.com/FreshRSS/FreshRSS/pull/6041)
 	* Fix i18n `cli/manipulate.translation.php` ignore behaviour [#6041](https://github.com/FreshRSS/FreshRSS/pull/6041)
 * API
 * API
-	* New compatible app [Read You](https://github.com/Ashinch/ReadYou) [#4633](https://github.com/FreshRSS/FreshRSS/pull/4633), [#6050](https://github.com/FreshRSS/FreshRSS/pull/6050)
+	* New compatible app [Read You](https://github.com/ReadYouApp/ReadYou) [#4633](https://github.com/FreshRSS/FreshRSS/pull/4633), [#6050](https://github.com/FreshRSS/FreshRSS/pull/6050)
 	* Reduce API memory consumption [#6137](https://github.com/FreshRSS/FreshRSS/pull/6137)
 	* Reduce API memory consumption [#6137](https://github.com/FreshRSS/FreshRSS/pull/6137)
 	* Allow negative feed IDs for future special cases [#6010](https://github.com/FreshRSS/FreshRSS/pull/6010)
 	* Allow negative feed IDs for future special cases [#6010](https://github.com/FreshRSS/FreshRSS/pull/6010)
 	* Only return `OK` for requests without query parameters [#6238](https://github.com/FreshRSS/FreshRSS/pull/6238)
 	* Only return `OK` for requests without query parameters [#6238](https://github.com/FreshRSS/FreshRSS/pull/6238)

+ 55 - 55
CREDITS.md

@@ -1,7 +1,7 @@
 # FreshRSS contributors
 # FreshRSS contributors
 
 
 This is a credit file of people who have [contributed to FreshRSS](https://github.com/FreshRSS/FreshRSS/graphs/contributors) with, at least,
 This is a credit file of people who have [contributed to FreshRSS](https://github.com/FreshRSS/FreshRSS/graphs/contributors) with, at least,
-one commit on one of the FreshRSS repositories (at [https://github.com/FreshRSS](github.com/FreshRSS)).
+one commit on one of the FreshRSS repositories (at <https://github.com/FreshRSS>).
 Please note a commit on THIS specific file is not considered as a contribution
 Please note a commit on THIS specific file is not considered as a contribution
 (too easy!). Its purpose is to show that even the smallest contribution is important.
 (too easy!). Its purpose is to show that even the smallest contribution is important.
 People are sorted by name so please keep this order.
 People are sorted by name so please keep this order.
@@ -9,7 +9,7 @@ People are sorted by name so please keep this order.
 ---
 ---
 
 
 * [0xdeadrelay](https://github.com/0xdeadrelay): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:0xdeadrelay)
 * [0xdeadrelay](https://github.com/0xdeadrelay): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:0xdeadrelay)
-* [312k](https://github.com/312k): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:312k)
+* [312k](https://github.com/ghost): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:312k)
 * [4xfu](https://github.com/4xfu): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:4xfu)
 * [4xfu](https://github.com/4xfu): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:4xfu)
 * [aarnej](https://github.com/aarnej): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:aarnej)
 * [aarnej](https://github.com/aarnej): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:aarnej)
 * [Aaron Schif](https://github.com/aaronschif): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:aaronschif)
 * [Aaron Schif](https://github.com/aaronschif): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:aaronschif)
@@ -28,7 +28,7 @@ People are sorted by name so please keep this order.
 * [András Marczinkó](https://github.com/andris155): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:andris155)
 * [András Marczinkó](https://github.com/andris155): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:andris155)
 * [Andrew Barrow](https://github.com/acbgbca): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:acbgbca)
 * [Andrew Barrow](https://github.com/acbgbca): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:acbgbca)
 * [Andrew Hunter](https://github.com/rexbron): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:rexbron)
 * [Andrew Hunter](https://github.com/rexbron): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:rexbron)
-* [Andrew Rabert](https://github.com/nvllsvm): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:nvllsvm), [Web](https://nullsum.net)
+* [Andrew Rabert](https://github.com/andrewrabert): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:nvllsvm), [Web](https://nullsum.net)
 * [Andy Valencia](https://github.com/vandys): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:vandys), [Web](https://www.vsta.org/andy/)
 * [Andy Valencia](https://github.com/vandys): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:vandys), [Web](https://www.vsta.org/andy/)
 * [Annika Backstrom](https://github.com/abackstrom): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:abackstrom), [Web](https://sixohthree.com/)
 * [Annika Backstrom](https://github.com/abackstrom): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:abackstrom), [Web](https://sixohthree.com/)
 * [Anton Smirnov](https://github.com/arokettu): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:arokettu), [Web](https://sandfox.me/)
 * [Anton Smirnov](https://github.com/arokettu): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:arokettu), [Web](https://sandfox.me/)
@@ -37,21 +37,21 @@ People are sorted by name so please keep this order.
 * [ASMfreaK](https://github.com/ASMfreaK): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:ASMfreaK)
 * [ASMfreaK](https://github.com/ASMfreaK): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:ASMfreaK)
 * [Axel Leroy](https://github.com/axeleroy): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:axeleroy), [Web](https://axel.leroy.sh/)
 * [Axel Leroy](https://github.com/axeleroy): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:axeleroy), [Web](https://axel.leroy.sh/)
 * [azlux](https://github.com/azlux): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:azlux), [Web](https://azlux.fr/)
 * [azlux](https://github.com/azlux): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:azlux), [Web](https://azlux.fr/)
-* [Balázs Keresztury](https://github.com/belidzs/): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:belidzs), [Web](https://keresztury.com/)
+* [Balázs Keresztury](https://github.com/belidzs/): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:belidzs), [Web](https://www.keresztury.com/)
 * [Bartłomiej Dmitruk](https://github.com/hackerman70000): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:hackerman70000), [Web](https://www.bartek-dmitruk.com/)
 * [Bartłomiej Dmitruk](https://github.com/hackerman70000): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:hackerman70000), [Web](https://www.bartek-dmitruk.com/)
 * [Bartosz Taudul](https://github.com/wolfpld): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:wolfpld), [Web](https://wolf.nereid.pl/)
 * [Bartosz Taudul](https://github.com/wolfpld): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:wolfpld), [Web](https://wolf.nereid.pl/)
 * [beerisgood](https://github.com/beerisgood): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:beerisgood)
 * [beerisgood](https://github.com/beerisgood): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:beerisgood)
 * [Ben Passmore](https://github.com/passbe): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:passbe), [Web](https://passbe.com/)
 * [Ben Passmore](https://github.com/passbe): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:passbe), [Web](https://passbe.com/)
-* [Benjamin Bouvier](https://github.com/bnjbvr): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:bnjbvr), [Web](https://benj.me/)
+* [Benjamin Bouvier](https://github.com/bnjbvr): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:bnjbvr), [Web](https://bouvier.cc/)
 * [Benjamin Reich](https://github.com/b-reich): [contributions](https://github.com/FreshRSS/FreshRSS/commits/edge?author=b-reich), [Web](https://benjaminreich.de/)
 * [Benjamin Reich](https://github.com/b-reich): [contributions](https://github.com/FreshRSS/FreshRSS/commits/edge?author=b-reich), [Web](https://benjaminreich.de/)
 * [bluewhale235](https://github.com/BuleWhale): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:BuleWhale)
 * [bluewhale235](https://github.com/BuleWhale): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:BuleWhale)
 * [Bowen](https://github.com/bowencool): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:bowencool), [Web](https://blog.bowen.cool/)
 * [Bowen](https://github.com/bowencool): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:bowencool), [Web](https://blog.bowen.cool/)
 * [bpatath](https://github.com/bpatath): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:bpatath)
 * [bpatath](https://github.com/bpatath): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:bpatath)
-* [Brewal Bouvet](https://github.com/Jucgshu): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Jucgshu), [Web](https://dizolo.eu/)
+* [Brewal Bouvet](https://github.com/Jucgshu): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Jucgshu)
 * [Brooke.](https://github.com/BrookeDot): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:BrookeDot), [Web](https://brooke.codes/)
 * [Brooke.](https://github.com/BrookeDot): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:BrookeDot), [Web](https://brooke.codes/)
 * [Bryan Butler](https://github.com/BryanButlerGit): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:BryanButlerGit)
 * [Bryan Butler](https://github.com/BryanButlerGit): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:BryanButlerGit)
 * [caminsha](https://github.com/caminsha): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:caminsha)
 * [caminsha](https://github.com/caminsha): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:caminsha)
-* [CarelessCaution](https://github.com/CarelessCaution): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:CarelessCaution)
+* [CarelessCaution](https://github.com/ghost): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:CarelessCaution)
 * [Carey Metcalfe](https://github.com/pR0Ps): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:pR0Ps), [Web](https://cmetcalfe.ca/)
 * [Carey Metcalfe](https://github.com/pR0Ps): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:pR0Ps), [Web](https://cmetcalfe.ca/)
 * [Cem KOÇ](https://github.com/hckweb): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:hckweb)
 * [Cem KOÇ](https://github.com/hckweb): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:hckweb)
 * [Chanse Syres](https://github.com/chanse-syres): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:chanse-syres), [Web](https://chansesyres.com/)
 * [Chanse Syres](https://github.com/chanse-syres): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:chanse-syres), [Web](https://chansesyres.com/)
@@ -62,9 +62,9 @@ People are sorted by name so please keep this order.
 * [Christos Longros](https://github.com/chrislongros): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:chrislongros), [Web](https://chrislongros.com/)
 * [Christos Longros](https://github.com/chrislongros): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:chrislongros), [Web](https://chrislongros.com/)
 * [Ciro Mota](https://github.com/ciro-mota): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is%3Apr%20author%3Aciro-mota)
 * [Ciro Mota](https://github.com/ciro-mota): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is%3Apr%20author%3Aciro-mota)
 * [Çılga İşcan Tercanlı](https://github.com/CilgaIscan): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:CilgaIscan)
 * [Çılga İşcan Tercanlı](https://github.com/CilgaIscan): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:CilgaIscan)
-* [Clemens Neubauer](https://github.com/cn-tools): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:cn-tools), [Web](http://cn-tools.eu/)
-* [Corentin Garcia](https://github.com/corenting): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:corenting), [Web](http://corenting.fr/)
-* [Craig Andrews](https://github.com/candrews): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:candrews), [Web](http://candrews.integralblue.com/)
+* [Clemens Neubauer](https://github.com/cn-tools): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:cn-tools), [Web](https://cn-tools.eu/)
+* [Corentin Garcia](https://github.com/corenting): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:corenting), [Web](https://corenting.fr/)
+* [Craig Andrews](https://github.com/candrews): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:candrews), [Web](https://candrews.integralblue.com/)
 * [Creak](https://github.com/MightyCreak): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is%3Apr+author%3AMightyCreak)
 * [Creak](https://github.com/MightyCreak): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is%3Apr+author%3AMightyCreak)
 * [Cron](https://github.com/featurecreep-cron): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:featurecreep-cron)
 * [Cron](https://github.com/featurecreep-cron): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:featurecreep-cron)
 * [Crupuk](https://github.com/Crupuk): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Crupuk)
 * [Crupuk](https://github.com/Crupuk): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Crupuk)
@@ -77,10 +77,10 @@ People are sorted by name so please keep this order.
 * [Daniel Rosell](https://github.com/drosell271): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:drosell271)
 * [Daniel Rosell](https://github.com/drosell271): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:drosell271)
 * [Daniel Scharmach](https://github.com/scharmach): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:scharmach)
 * [Daniel Scharmach](https://github.com/scharmach): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:scharmach)
 * [Darkentia](https://github.com/Darkentia): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Darkentia)
 * [Darkentia](https://github.com/Darkentia): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Darkentia)
-* [David Lynch](https://github.com/kemayo): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:kemayo), [Web](http://davidlynch.org/)
-* [David Souza](https://github.com/araujo0205): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:araujo0205), [Web](http://davidsouza.tech/)
+* [David Lynch](https://github.com/kemayo): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:kemayo), [Web](https://davidlynch.org/)
+* [David Souza](https://github.com/araujo0205): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:araujo0205)
 * [Dennis Cheng](https://github.com/den13501): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:den13501)
 * [Dennis Cheng](https://github.com/den13501): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:den13501)
-* [DenuxPlays](https://github.com/DenuxPlays): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is%3Apr+author%3ADenuxPlays), [Web](https://denux.dev/)
+* [DenuxPlays](https://github.com/DenuxPlays): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is%3Apr+author%3ADenuxPlays), [Web](https://www.denux.dev/)
 * [Denys Nykula](https://github.com/nykula): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:nykula), [Web](https://libre.net.ua/)
 * [Denys Nykula](https://github.com/nykula): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:nykula), [Web](https://libre.net.ua/)
 * [Dezponia](https://github.com/dezponia): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:dezponia)
 * [Dezponia](https://github.com/dezponia): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:dezponia)
 * [Divinelink](https://github.com/Divinelink): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Divinelink)
 * [Divinelink](https://github.com/Divinelink): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Divinelink)
@@ -89,7 +89,7 @@ People are sorted by name so please keep this order.
 * [dswd](https://github.com/dswd): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:dswd)
 * [dswd](https://github.com/dswd): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:dswd)
 * [DuncanBennie](https://github.com/DuncanBennie): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:DuncanBennie), [Web](https://duncanbennie.com)
 * [DuncanBennie](https://github.com/DuncanBennie): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:DuncanBennie), [Web](https://duncanbennie.com)
 * [ealdraed](https://github.com/ealdraed): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:ealdraed)
 * [ealdraed](https://github.com/ealdraed): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:ealdraed)
-* [Ed Sandor](https://github.com/ewsandor): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:ewsandor), [Web](https://ewsandor.com)
+* [Ed Sandor](https://github.com/ewsandor): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:ewsandor), [Web](https://sandorlaboratories.com/)
 * [Edgardo Ramírez](https://github.com/SoldierCorp): [contributors](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:SoldierCorp)
 * [Edgardo Ramírez](https://github.com/SoldierCorp): [contributors](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:SoldierCorp)
 * [EdJoPaTo](https://github.com/EdJoPaTo): [contributions](https://github.com/FreshRSS/FreshRSS/commits/edge?author=EdJoPaTo)
 * [EdJoPaTo](https://github.com/EdJoPaTo): [contributions](https://github.com/FreshRSS/FreshRSS/commits/edge?author=EdJoPaTo)
 * [Elanna Grossman](https://github.com/Karvel): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Karvel), [Web](https://elanna.me/)
 * [Elanna Grossman](https://github.com/Karvel): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Karvel), [Web](https://elanna.me/)
@@ -104,19 +104,19 @@ People are sorted by name so please keep this order.
 * [flo0627](https://github.com/flo0627): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:flo0627)
 * [flo0627](https://github.com/flo0627): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:flo0627)
 * [FollowTheWizard](https://github.com/FollowTheWizard): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:FollowTheWizard)
 * [FollowTheWizard](https://github.com/FollowTheWizard): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:FollowTheWizard)
 * [François-Xavier Payet](https://github.com/foux): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:foux)
 * [François-Xavier Payet](https://github.com/foux): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:foux)
-* [Frans de Jonge](https://github.com/Frenzie): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Frenzie), [Web](http://fransdejonge.com/)
+* [Frans de Jonge](https://github.com/Frenzie): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Frenzie), [Web](https://fransdejonge.com/)
 * [FromTheMoon85](https://github.com/FromTheMoon85): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:FromTheMoon85)
 * [FromTheMoon85](https://github.com/FromTheMoon85): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:FromTheMoon85)
-* [Gabriele Biggio](https://github.com/gabbihive): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:gabbihive)
-* [Gaurav Thakur](https://github.com/notfoss): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:notfoss), [Web](https://blog.notfoss.com/)
+* [Gabriele Biggio](https://github.com/ghost): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:gabbihive)
+* [Gaurav Thakur](https://github.com/ghost): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:notfoss)
 * [Gerard Alvear](https://github.com/Elgeryy1): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Elgeryy1)
 * [Gerard Alvear](https://github.com/Elgeryy1): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Elgeryy1)
 * [Gianni Scolaro](https://github.com/giannidsp): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:giannidsp)
 * [Gianni Scolaro](https://github.com/giannidsp): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:giannidsp)
 * [Glyn Normington](https://github.com/glyn): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:glyn), [Web](https://underlap.org/)
 * [Glyn Normington](https://github.com/glyn): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:glyn), [Web](https://underlap.org/)
-* [Gregor Nathanael Meyer](https://github.com/spackmat): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:spackmat), [Web](https://der-meyer.de)
+* [Gregor Nathanael Meyer](https://github.com/spackmat): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:spackmat), [Web](https://spackmat.de/spackblog/)
 * [GreyChame1eon](https://github.com/GreyChame1eon): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:GreyChame1eon)
 * [GreyChame1eon](https://github.com/GreyChame1eon): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:GreyChame1eon)
 * [gsongsong](https://github.com/gsongsong): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:gsongsong)
 * [gsongsong](https://github.com/gsongsong): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:gsongsong)
 * [gshimo](https://github.com/gshimo): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:gshimo)
 * [gshimo](https://github.com/gshimo): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:gshimo)
 * [Guilherme Gall](https://github.com/gmgall): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:gmgall), [Web](https://gmgall.net/)
 * [Guilherme Gall](https://github.com/gmgall): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:gmgall), [Web](https://gmgall.net/)
-* [Guillaume Fillon](https://github.com/kokaz): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:kokaz), [Web](http://www.guillaume-fillon.com/)
+* [Guillaume Fillon](https://github.com/kokaz): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:kokaz)
 * [Guillaume Hayot](https://github.com/postblue): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:postblue), [Web](https://postblue.info/)
 * [Guillaume Hayot](https://github.com/postblue): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:postblue), [Web](https://postblue.info/)
 * [Guillaume Pugnet](https://github.com/GuillaumePugnet): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:GuillaumePugnet)
 * [Guillaume Pugnet](https://github.com/GuillaumePugnet): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:GuillaumePugnet)
 * [Gulyapulya](https://github.com/gulyapulya): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:gulyapulya), [Web](https://dev.to/gulyapulya)
 * [Gulyapulya](https://github.com/gulyapulya): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:gulyapulya), [Web](https://dev.to/gulyapulya)
@@ -139,14 +139,14 @@ People are sorted by name so please keep this order.
 * [Jake Mannens](https://github.com/jakem72360): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:jakem72360)
 * [Jake Mannens](https://github.com/jakem72360): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:jakem72360)
 * [Jam Balaya](https://github.com/JamBalaya56562): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:JamBalaya56562)
 * [Jam Balaya](https://github.com/JamBalaya56562): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:JamBalaya56562)
 * [James Frost](https://github.com/Fraetor): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Fraetor), [Web](https://www.frost.cx/)
 * [James Frost](https://github.com/Fraetor): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Fraetor), [Web](https://www.frost.cx/)
-* [Jamie Slome](https://github.com/JamieSlome): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:JamieSlome), [Web](https://418sec.com/)
+* [Jamie Slome](https://github.com/JamieSlome): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:JamieSlome)
 * [Jan Lukas Gernert](https://github.com/jangernert): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:jangernert)
 * [Jan Lukas Gernert](https://github.com/jangernert): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:jangernert)
 * [Jan van den Berg](https://github.com/jan-vandenberg): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:jan-vandenberg), [Web](https://j11g.com/)
 * [Jan van den Berg](https://github.com/jan-vandenberg): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:jan-vandenberg), [Web](https://j11g.com/)
-* [Jaussoin Timothée](https://github.com/edhelas): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:edhelas), [Web](http://edhelas.movim.eu/)
+* [Jaussoin Timothée](https://github.com/edhelas): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:edhelas), [Web](https://edhelas.movim.eu/)
 * [Jeremy](https://github.com/Germs2004): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Germs2004)
 * [Jeremy](https://github.com/Germs2004): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Germs2004)
 * [jlefler](https://github.com/jlefler): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:jlefler)
 * [jlefler](https://github.com/jlefler): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:jlefler)
-* [Joe Stump](https://github.com/joestump): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:joestump), [Web](http://stu.mp)
-* [Joel Garcia](https://github.com/joelchrono12): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:joelchrono12), [Web](https://joelchrono12.xyz)
+* [Joe Stump](https://github.com/joestump): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:joestump)
+* [Joel Garcia](https://github.com/joelchrono12): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:joelchrono12), [Web](https://joelchrono.xyz)
 * [John Brayton](https://github.com/jbrayton): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:jbrayton), [Web](https://www.virtualsanity.com)
 * [John Brayton](https://github.com/jbrayton): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:jbrayton), [Web](https://www.virtualsanity.com)
 * [Jonas Östanbäck](https://github.com/cez81): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:cez81)
 * [Jonas Östanbäck](https://github.com/cez81): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:cez81)
 * [Jordi Garcia](https://github.com/jgtorcal): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:jgtorcal)
 * [Jordi Garcia](https://github.com/jgtorcal): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:jgtorcal)
@@ -155,15 +155,15 @@ People are sorted by name so please keep this order.
 * [Josiah Campbell](https://github.com/jocmp): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:jocmp), [Web](https://jocmp.com/)
 * [Josiah Campbell](https://github.com/jocmp): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:jocmp), [Web](https://jocmp.com/)
 * [Jules Bertholet](https://github.com/Jules-Bertholet): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Jules-Bertholet)
 * [Jules Bertholet](https://github.com/Jules-Bertholet): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Jules-Bertholet)
 * [Julien Herr](https://github.com/juherr): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:juherr), [Web](https://juherr.dev/)
 * [Julien Herr](https://github.com/juherr): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:juherr), [Web](https://juherr.dev/)
-* [Julien Reichardt](https://github.com/j8r): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:j8r), [Web](https://blog.jrei.ch/)
+* [Julien Reichardt](https://github.com/j8r): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:j8r)
 * [Julien-Pierre Avérous](https://github.com/javerous): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:javerous), [Web](https://www.sourcemac.com/)
 * [Julien-Pierre Avérous](https://github.com/javerous): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:javerous), [Web](https://www.sourcemac.com/)
 * [junkfood](https://github.com/JunkFood02): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:JunkFood02)
 * [junkfood](https://github.com/JunkFood02): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:JunkFood02)
 * [Justin Tracey](https://github.com/jtracey): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:jtracey), [Web](https://unsuspicious.click)
 * [Justin Tracey](https://github.com/jtracey): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:jtracey), [Web](https://unsuspicious.click)
 * [Kachelkaiser](https://github.com/Kachelkaiser): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Kachelkaiser)
 * [Kachelkaiser](https://github.com/Kachelkaiser): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Kachelkaiser)
-* [Kaibin Yang](https://github.com/SkyYkb): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:SkyYkb), [Web](https://kaibinyang.com/)
+* [Kaibin Yang](https://github.com/ghost): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:SkyYkb), [Web](https://kaibinyang.com/)
 * [Karim Sharafutdinov](https://github.com/krm-shrftdnv): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:krm-shrftdnv)
 * [Karim Sharafutdinov](https://github.com/krm-shrftdnv): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:krm-shrftdnv)
 * [Kasimir Cash](https://github.com/KasimirCash): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:KasimirCash)
 * [Kasimir Cash](https://github.com/KasimirCash): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:KasimirCash)
-* [Kevin Papst](https://github.com/kevinpapst): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:kevinpapst), [Web](http://www.kevinpapst.de/)
+* [Kevin Papst](https://github.com/kevinpapst): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:kevinpapst), [Web](https://www.kevinpapst.de/)
 * [Kiblyn11](https://github.com/Kiblyn11): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Kiblyn11)
 * [Kiblyn11](https://github.com/Kiblyn11): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Kiblyn11)
 * [Kidd Lee](https://github.com/LeeXiaolan): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:LeeXiaolan)
 * [Kidd Lee](https://github.com/LeeXiaolan): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:LeeXiaolan)
 * [killerog](https://github.com/killerog): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:killerog)
 * [killerog](https://github.com/killerog): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:killerog)
@@ -177,19 +177,19 @@ People are sorted by name so please keep this order.
 * [Leepic](https://github.com/Leepic): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Leepic)
 * [Leepic](https://github.com/Leepic): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Leepic)
 * [LLeana](https://github.com/LleanaRuv): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:LleanaRuv)
 * [LLeana](https://github.com/LleanaRuv): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:LleanaRuv)
 * [loft17](https://github.com/loft17): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:loft17)
 * [loft17](https://github.com/loft17): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:loft17)
-* [Luc Didry](https://github.com/ldidry): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:ldidry), [Web](https://www.fiat-tux.fr/)
+* [Luc Didry](https://github.com/ldidry): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:ldidry), [Web](https://fiat-tux.fr/)
 * [Luc Sanchez](https://github.com/ColonelMoutarde): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:ColonelMoutarde), [Web](https://www.luc-sanchez.fr/)
 * [Luc Sanchez](https://github.com/ColonelMoutarde): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:ColonelMoutarde), [Web](https://www.luc-sanchez.fr/)
 * [Luca Olivetti](https://github.com/olivluca): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:olivluca)
 * [Luca Olivetti](https://github.com/olivluca): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:olivluca)
-* [LucasVerneyDGE](https://github.com/LucasVerneyDGE): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:LucasVerneyDGE)
+* [LucasVerneyDGE](https://github.com/ghost): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:LucasVerneyDGE)
 * [Lukas David Vacula](https://github.com/ldv8434): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:ldv8434), [Web](https://lvacula.com/)
 * [Lukas David Vacula](https://github.com/ldv8434): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:ldv8434), [Web](https://lvacula.com/)
 * [Machou](https://github.com/Machou): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Machou)
 * [Machou](https://github.com/Machou): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Machou)
 * [Manu](https://github.com/m3nu): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:m3nu)
 * [Manu](https://github.com/m3nu): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:m3nu)
 * [Marc Ole Bulling](https://github.com/Forceu): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Forceu)
 * [Marc Ole Bulling](https://github.com/Forceu): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Forceu)
-* [Marco Hinniger](https://github.com/rom-1): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:rom-1), [Web](https://blog.rootdir.net/)
+* [Marco Hinniger](https://github.com/rom-1): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:rom-1)
 * [marcohald](https://github.com/marcohald): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:marcohald)
 * [marcohald](https://github.com/marcohald): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:marcohald)
 * [marcomrc](https://github.com/marcomrc): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:marcomrc)
 * [marcomrc](https://github.com/marcomrc): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:marcomrc)
-* [Marcus Rohrmoser](https://github.com/mro): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:mro), [Web](http://mro.name/~me)
-* [Marek Pavelka](https://github.com/marapavelka): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:marapavelka), [Web](https://marekpavelka.cz)
+* [Marcus Rohrmoser](https://github.com/mro): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:mro), [Web](https://marcus.rohrmoser.name/de/)
+* [Marek Pavelka](https://github.com/marapavelka): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:marapavelka)
 * [Marien Fressinaud](https://github.com/marienfressinaud): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:marienfressinaud), [Web](https://marienfressinaud.fr/)
 * [Marien Fressinaud](https://github.com/marienfressinaud): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:marienfressinaud), [Web](https://marienfressinaud.fr/)
 * [Mark Monteiro](https://github.com/mark-monteiro): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:mark-monteiro), [Web](https://markmonteiro.info/)
 * [Mark Monteiro](https://github.com/mark-monteiro): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:mark-monteiro), [Web](https://markmonteiro.info/)
 * [Martín González Gómez](https://github.com/martgnz): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:martgnz), [Web](https://martingonzalez.net/)
 * [Martín González Gómez](https://github.com/martgnz): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:martgnz), [Web](https://martingonzalez.net/)
@@ -205,22 +205,22 @@ People are sorted by name so please keep this order.
 * [May Meow](https://github.com/MayMeow): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:MayMeow), [Web](https://maymeow.com)
 * [May Meow](https://github.com/MayMeow): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:MayMeow), [Web](https://maymeow.com)
 * [McFev](https://github.com/McFev): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:McFev)
 * [McFev](https://github.com/McFev): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:McFev)
 * [Mejans](https://github.com/Mejans): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Mejans)
 * [Mejans](https://github.com/Mejans): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Mejans)
-* [Melvyn Laïly](https://github.com/yaurthek): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:yaurthek), [Web](http://x2a.yt/)
+* [Melvyn Laïly](https://github.com/yaurthek): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:yaurthek), [Web](https://x2a.yt/)
 * [Michael Meier](https://github.com/mmeier86): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:mmeier86)
 * [Michael Meier](https://github.com/mmeier86): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:mmeier86)
 * [Michael Thomas](https://github.com/nanos): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:nanos), [Web](https://michael.thms.uk)
 * [Michael Thomas](https://github.com/nanos): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:nanos), [Web](https://michael.thms.uk)
 * [Michael Wagner](https://github.com/michi-onl): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:michi-onl), [Web](https://about.michi.onl/)
 * [Michael Wagner](https://github.com/michi-onl): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:michi-onl), [Web](https://about.michi.onl/)
 * [Miguel Sánchez](https://github.com/msdlr): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:msdlr)
 * [Miguel Sánchez](https://github.com/msdlr): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:msdlr)
 * [Miika Launiainen](https://gitlab.com/miicat): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:miicat), [Web](https://miicat.eu/)
 * [Miika Launiainen](https://gitlab.com/miicat): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:miicat), [Web](https://miicat.eu/)
-* [Mike Vanbuskirk](https://github.com/codevbus): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:codevbus) [Web](http://mikevanbuskirk.io/)
+* [Mike Vanbuskirk](https://github.com/codevbus): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:codevbus) [Web](https://mikevanbuskirk.io/)
 * [miles](https://github.com/miles170): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:miles170)
 * [miles](https://github.com/miles170): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:miles170)
-* [mincerafter42](https://github.com/mincerafter42): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:mincerafter42), [Web](https://mincerafter42.github.io)
+* [mincerafter42](https://github.com/mincerafter42): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:mincerafter42), [Web](https://vivivi.leprd.space/)
 * [Minna N.](https://github.com/minna-xd): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:minna-xd)
 * [Minna N.](https://github.com/minna-xd): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:minna-xd)
 * [Mohammad Lashkari](https://github.com/mohammadlashkari): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:mohammadlashkari)
 * [Mohammad Lashkari](https://github.com/mohammadlashkari): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:mohammadlashkari)
 * [Mossroy](https://github.com/mossroy): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:mossroy)
 * [Mossroy](https://github.com/mossroy): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:mossroy)
 * [Mossroy](https://github.com/mossroy): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:mossroy), [Web](https://blog.mossroy.fr/)
 * [Mossroy](https://github.com/mossroy): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:mossroy), [Web](https://blog.mossroy.fr/)
 * [MSZ](https://github.com/mszkb): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:mszkb)
 * [MSZ](https://github.com/mszkb): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:mszkb)
 * [mtalexan](https://github.com/mtalexan): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:mtalexan)
 * [mtalexan](https://github.com/mtalexan): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:mtalexan)
-* [Mubarak Harran Alketbi](https://github.com/MHketbi): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:MHketbi)
+* [Mubarak Harran Alketbi](https://github.com/ghost): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:MHketbi)
 * [Myuki](https://github.com/Myuki): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Myuki)
 * [Myuki](https://github.com/Myuki): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Myuki)
 * [NaeiKinDus](https://github.com/NaeiKinDus): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:NaeiKinDus)
 * [NaeiKinDus](https://github.com/NaeiKinDus): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:NaeiKinDus)
 * [Nainor](https://github.com/Nainor): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Nainor)
 * [Nainor](https://github.com/Nainor): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Nainor)
@@ -230,11 +230,11 @@ People are sorted by name so please keep this order.
 * [nhirokinet](https://github.com/nhirokinet): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:nhirokinet)
 * [nhirokinet](https://github.com/nhirokinet): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:nhirokinet)
 * [Nick Cross](https://github.com/rnc): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:rnc)
 * [Nick Cross](https://github.com/rnc): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:rnc)
 * [Nico B](https://github.com/youknow0): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:youknow0)
 * [Nico B](https://github.com/youknow0): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:youknow0)
-* [Nicola Spanti](https://github.com/RyDroid): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:RyDroid), [Web](http://www.nicola-spanti.info/)
+* [Nicola Spanti](https://github.com/RyDroid): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:RyDroid)
 * [Nicolas Elie](https://github.com/nicolaselie): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:nicolaselie)
 * [Nicolas Elie](https://github.com/nicolaselie): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:nicolaselie)
-* [Nicolas Ferrari](https://github.com/nferrari): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:nferrari), [Web](https://www.alwaysdata.com/)
-* [Nicolas Frandeboeuf](https://github.com/nicofrand): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:nicofrand), [Web](https://nicofrand.ey)
-* [Nicolas Lœuillet](https://github.com/nicosomb): [contributions](https://github.com/FreshRSS/documentation/pulls?q=is:pr+author:nicosomb), [Web](http://www.loeuillet.org/)
+* [Nicolas Ferrari](https://github.com/nferrari): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:nferrari), [Web](https://www.alwaysdata.com/fr/)
+* [Nicolas Frandeboeuf](https://github.com/nicofrand): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:nicofrand), [Web](https://nicofrand.eu)
+* [Nicolas Lœuillet](https://github.com/nicosomb): [contributions](https://github.com/FreshRSS/documentation/pulls?q=is:pr+author:nicosomb)
 * [Nicolas Pereira](https://github.com/NicolasPereira): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:NicolasPereira)
 * [Nicolas Pereira](https://github.com/NicolasPereira): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:NicolasPereira)
 * [No Name Pro](https://github.com/NoNamePro0): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:NoNamePro0)
 * [No Name Pro](https://github.com/NoNamePro0): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:NoNamePro0)
 * [OctopusET](https://github.com/OctopusET): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:OctopusET)
 * [OctopusET](https://github.com/OctopusET): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:OctopusET)
@@ -248,7 +248,7 @@ People are sorted by name so please keep this order.
 * [pando85](https://github.com/pando85): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:pando85)
 * [pando85](https://github.com/pando85): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:pando85)
 * [papaschloss](https://github.com/papaschloss): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:papaschloss)
 * [papaschloss](https://github.com/papaschloss): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:papaschloss)
 * [Patrick Crandol](https://github.com/pattems): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:pattems)
 * [Patrick Crandol](https://github.com/pattems): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:pattems)
-* [Paulius Šukys](https://github.com/psukys): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:psukys), [Web](http://sukys.eu)
+* [Paulius Šukys](https://github.com/psukys): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:psukys), [Web](https://www.sukys.eu/)
 * [Paweł Kalemba](https://github.com/pkalemba): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:pkalemba)
 * [Paweł Kalemba](https://github.com/pkalemba): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:pkalemba)
 * [pe1uca](https://github.com/pe1uca): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:pe1uca)
 * [pe1uca](https://github.com/pe1uca): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:pe1uca)
 * [PedroPMS](https://github.com/PedroPMS): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:PedroPMS)
 * [PedroPMS](https://github.com/PedroPMS): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:PedroPMS)
@@ -265,13 +265,13 @@ People are sorted by name so please keep this order.
 * [primaeval](https://github.com/primaeval): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:primaeval)
 * [primaeval](https://github.com/primaeval): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:primaeval)
 * [printfuck](https://github.com/printfuck): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:printfuck), [Web](https://eris.cc)
 * [printfuck](https://github.com/printfuck): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:printfuck), [Web](https://eris.cc)
 * [proletarius101](https://github.com/proletarius101): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:proletarius101)
 * [proletarius101](https://github.com/proletarius101): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:proletarius101)
-* [purexo](https://github.com/purexo): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:purexo), [Web](https://purexo.mom/)
+* [purexo](https://github.com/purexo): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:purexo), [Web](https://purexo.fr/)
 * [Pyr0x1](https://github.com/Pyr0x1): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Pyr0x1)
 * [Pyr0x1](https://github.com/Pyr0x1): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Pyr0x1)
 * [Quent-in](https://github.com/Quent-in): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Quent-in)
 * [Quent-in](https://github.com/Quent-in): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Quent-in)
-* [Quentin Dufour](https://github.com/superboum): [contributions](https://github.com/FreshRSS/documentation/pulls?q=is:pr+author:superboum), [Web](http://quentin.dufour.io/)
+* [Quentin Dufour](https://github.com/superboum): [contributions](https://github.com/FreshRSS/documentation/pulls?q=is:pr+author:superboum), [Web](https://quentin.dufour.io/)
 * [Quentin Pagès](https://github.com/Quenty31): [contributions](https://github.com/FreshRSS/documentation/pulls?q=is:pr+author:Quenty31)
 * [Quentin Pagès](https://github.com/Quenty31): [contributions](https://github.com/FreshRSS/documentation/pulls?q=is:pr+author:Quenty31)
 * [Raineer](https://github.com/Raineer): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Raineer)
 * [Raineer](https://github.com/Raineer): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Raineer)
-* [Ramazan Sancar](https://github.com/ramazansancar): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:ramazansancar), [Web](https://ramazansancar.com.tr/)
+* [Ramazan Sancar](https://github.com/ramazansancar): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:ramazansancar), [Web](https://www.ramazansancar.com.tr/)
 * [Ramón Cutanda](https://github.com/rcutanda): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:rcutanda)
 * [Ramón Cutanda](https://github.com/rcutanda): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:rcutanda)
 * [Rasmus Larsen](https://github.com/rlrs): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:rlrs), [Web](https://rlrs.github.io/)
 * [Rasmus Larsen](https://github.com/rlrs): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:rlrs), [Web](https://rlrs.github.io/)
 * [raspo](https://github.com/raspo): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:raspo), [Web](https://raspo.dev/)
 * [raspo](https://github.com/raspo): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:raspo), [Web](https://raspo.dev/)
@@ -280,7 +280,7 @@ People are sorted by name so please keep this order.
 * [Rezad](https://github.com/rezad1393): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:rezad1393)
 * [Rezad](https://github.com/rezad1393): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:rezad1393)
 * [rid3r45](https://github.com/rid3r45): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:rid3r45)
 * [rid3r45](https://github.com/rid3r45): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:rid3r45)
 * [Rob Loach](https://github.com/RobLoach): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:RobLoach), [Web](https://robloach.net/)
 * [Rob Loach](https://github.com/RobLoach): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:RobLoach), [Web](https://robloach.net/)
-* [Robert Kaussow](https://github.com/xoxys): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:xoxys), [Web](https://geeklabor.de/)
+* [Robert Kaussow](https://github.com/xoxys): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:xoxys), [Web](https://thegeeklab.de/)
 * [robertdahlem](https://github.com/robertdahlem): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:robertdahlem)
 * [robertdahlem](https://github.com/robertdahlem): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:robertdahlem)
 * [rocka](https://github.com/rocka): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:rocka)
 * [rocka](https://github.com/rocka): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:rocka)
 * [romibi](https://github.com/romibi): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:romibi)
 * [romibi](https://github.com/romibi): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:romibi)
@@ -297,10 +297,10 @@ People are sorted by name so please keep this order.
 * [scmaybee](https://github.com/scmaybee): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:scmaybee)
 * [scmaybee](https://github.com/scmaybee): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:scmaybee)
 * [scollovati](https://github.com/scollovati): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:scollovati)
 * [scollovati](https://github.com/scollovati): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:scollovati)
 * [Sebastian K](https://github.com/skrollme): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:skrollme)
 * [Sebastian K](https://github.com/skrollme): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:skrollme)
-* [shn7798](https://github.com/shn7798): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:shn7798), [Web](http://www.code2talk.com/)
+* [shn7798](https://github.com/shn7798): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:shn7798)
 * [Simone "roughnecks" Canaletti](https://github.com/roughnecks): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:roughnecks), [Web](https://woodpeckersnest.space/)
 * [Simone "roughnecks" Canaletti](https://github.com/roughnecks): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:roughnecks), [Web](https://woodpeckersnest.space/)
 * [sirideain](https://github.com/sirideain): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:sirideain)
 * [sirideain](https://github.com/sirideain): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:sirideain)
-* [skrlet13](https://github.com/skrlet13): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:skrlet13), [Web](https://www.skrlet13.cl/)
+* [skrlet13](https://github.com/ghost): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:skrlet13)
 * [Sp3r4z](https://github.com/Sp3r4z): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Sp3r4z)
 * [Sp3r4z](https://github.com/Sp3r4z): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Sp3r4z)
 * [stag-enterprises](https://github.com/stag-enterprises): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:stag-enterprises), [Web](https://stag.lol)
 * [stag-enterprises](https://github.com/stag-enterprises): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:stag-enterprises), [Web](https://stag.lol)
 * [Steve Jones](https://github.com/squaregoldfish): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:squaregoldfish)
 * [Steve Jones](https://github.com/squaregoldfish): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:squaregoldfish)
@@ -312,27 +312,27 @@ People are sorted by name so please keep this order.
 * [Sven Neuhaus](https://github.com/neuhaus): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:neuhaus)
 * [Sven Neuhaus](https://github.com/neuhaus): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:neuhaus)
 * [Tarow](https://github.com/tarow): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:tarow)
 * [Tarow](https://github.com/tarow): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:tarow)
 * [Tealk](https://github.com/Tealk): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Tealk), [Web](https://rollenspiel.monster/)
 * [Tealk](https://github.com/Tealk): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Tealk), [Web](https://rollenspiel.monster/)
-* [Tets42](https://github.com/Tets42): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Tets42)
+* [Tets42](https://github.com/ghost): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Tets42)
 * [the7thNightmare](https://github.com/the7thNightmare): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:the7thNightmare)
 * [the7thNightmare](https://github.com/the7thNightmare): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:the7thNightmare)
 * [Thelonius Kort](https://github.com/tnt): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:tnt)
 * [Thelonius Kort](https://github.com/tnt): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:tnt)
-* [Thomas Citharel](https://github.com/tcitworld): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:tomgue), [Web](https://www.tcit.fr/)
-* [Thomas Guesnon](https://github.com/patjennings): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:patjennings), [Web](http://www.thomasguesnon.fr/)
+* [Thomas Citharel](https://github.com/tcitworld): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:tomgue), [Web](https://tcit.fr/)
+* [Thomas Guesnon](https://github.com/patjennings): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:patjennings), [Web](https://thomasguesnon.fr/)
 * [Thomas Hufschmidt](https://github.com/Hufschmidt): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Hufschmidt)
 * [Thomas Hufschmidt](https://github.com/Hufschmidt): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Hufschmidt)
 * [Thomas Renes](https://github.com/thomasrenes): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:thomasrenes), [Web](https://thomas.renesweb.nl/)
 * [Thomas Renes](https://github.com/thomasrenes): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:thomasrenes), [Web](https://thomas.renesweb.nl/)
 * [Thomas White](https://github.com/TomW1605): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:TomW1605)
 * [Thomas White](https://github.com/TomW1605): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:TomW1605)
 * [thomas-gt](https://github.com/thomas-gt): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:thomas-gt)
 * [thomas-gt](https://github.com/thomas-gt): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:thomas-gt)
 * [ThomasSmallert](https://github.com/ThomasSmallert): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:ThomasSmallert)
 * [ThomasSmallert](https://github.com/ThomasSmallert): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:ThomasSmallert)
-* [Ths2-9Y-LqJt6](https://github.com/Ths2-9Y-LqJt6): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Ths2-9Y-LqJt6)
+* [Ths2-9Y-LqJt6](https://github.com/ghost): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Ths2-9Y-LqJt6)
 * [Tibor Repček](https://github.com/tiborepcek): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:tiborepcek)
 * [Tibor Repček](https://github.com/tiborepcek): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:tiborepcek)
 * [Tomáš Odehnal](https://github.com/tomasodehnal): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:tomasodehnal)
 * [Tomáš Odehnal](https://github.com/tomasodehnal): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:tomasodehnal)
 * [tomgue](https://github.com/tomgue): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:tomgue)
 * [tomgue](https://github.com/tomgue): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:tomgue)
-* [Tommaso Ferrari](https://github.com/raspo): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:raspo), [Web](https://tommasoferrari.com)
+* [Tommaso Ferrari](https://github.com/raspo): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:raspo)
 * [tonitonae](https://github.com/tonitonae): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:tonitonae)
 * [tonitonae](https://github.com/tonitonae): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:tonitonae)
 * [Troy Engel](https://github.com/troyengel): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:troyengel)
 * [Troy Engel](https://github.com/troyengel): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:troyengel)
 * [TryAllTheThings](https://github.com/tryallthethings): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:tryallthethings)
 * [TryAllTheThings](https://github.com/tryallthethings): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:tryallthethings)
 * [Tsung-Han Yu](https://github.com/johan456789): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:johan456789), [Web](https://tsunghanyu.com/)
 * [Tsung-Han Yu](https://github.com/johan456789): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:johan456789), [Web](https://tsunghanyu.com/)
 * [Twilek-de](https://github.com/Twilek-de): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Twilek-de)
 * [Twilek-de](https://github.com/Twilek-de): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Twilek-de)
-* [Umaid Shahid](https://github.com/umaidshahid): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:umaidshahid), [Web](https://umaid.dev)
+* [Umaid Shahid](https://github.com/umaidshahid): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:umaidshahid), [Web](https://www.umaid.dev/)
 * [Uncovery](https://github.com/uncovery): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:uncovery)
 * [Uncovery](https://github.com/uncovery): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:uncovery)
 * [upskaling](https://github.com/upskaling): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:upskaling)
 * [upskaling](https://github.com/upskaling): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:upskaling)
 * [UserRoot-Luca](https://github.com/UserRoot-Luca): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:UserRoot-Luca)
 * [UserRoot-Luca](https://github.com/UserRoot-Luca): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:UserRoot-Luca)
@@ -342,11 +342,11 @@ People are sorted by name so please keep this order.
 * [Wanabo](https://github.com/Wanabo): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Wanabo)
 * [Wanabo](https://github.com/Wanabo): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Wanabo)
 * [witchcraze](https://github.com/witchcraze): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:witchcraze)
 * [witchcraze](https://github.com/witchcraze): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:witchcraze)
 * [wtoscer](https://github.com/wtoscer): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:wtoscer)
 * [wtoscer](https://github.com/wtoscer): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:wtoscer)
-* [xnaas](https://github.com/xnaas): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:xnaas), [Web](https://xnaas.info/)
+* [xnaas](https://github.com/ghost): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:xnaas)
 * [xtmd](https://github.com/xtmd): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:xtmd)
 * [xtmd](https://github.com/xtmd): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:xtmd)
 * [xtmd](https://github.com/xtmd): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:xtmd), [Web](https://iblog.cc/)
 * [xtmd](https://github.com/xtmd): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:xtmd), [Web](https://iblog.cc/)
 * [XtremeOwnage](https://github.com/XtremeOwnage): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:XtremeOwnageDotCom), [Web](https://static.xtremeownage.com/)
 * [XtremeOwnage](https://github.com/XtremeOwnage): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:XtremeOwnageDotCom), [Web](https://static.xtremeownage.com/)
-* [Yamakuni](https://github.com/Yamakuni): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Yamakuni), [Web](https://ofanch.me/)
+* [Yamakuni](https://github.com/Yamakuni): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Yamakuni)
 * [Yixuan Xu](https://github.com/mzl2233): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:mzl2233)
 * [Yixuan Xu](https://github.com/mzl2233): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:mzl2233)
 * [yzqzss|一座桥在水上](https://github.com/yzqzss): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:yzqzss), [Web](https://blog.othing.xyz/)
 * [yzqzss|一座桥在水上](https://github.com/yzqzss): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:yzqzss), [Web](https://blog.othing.xyz/)
 * [zanivann](https://github.com/zanivann): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:zanivann)
 * [zanivann](https://github.com/zanivann): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:zanivann)
@@ -356,4 +356,4 @@ People are sorted by name so please keep this order.
 * [Zihao "Eric" Diao](https://github.com/EricDiao): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:EricDiao), [Web](https://ericdiao.com/)
 * [Zihao "Eric" Diao](https://github.com/EricDiao): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:EricDiao), [Web](https://ericdiao.com/)
 * [zukizukizuki](https://github.com/zukizukizuki): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:zukizukizuki), [Web](https://zukkie.link/)
 * [zukizukizuki](https://github.com/zukizukizuki): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:zukizukizuki), [Web](https://zukkie.link/)
 * [нездалисько](https://github.com/crisukbot): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:crisukbot), [Web](https://noleron.com/)
 * [нездалисько](https://github.com/crisukbot): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:crisukbot), [Web](https://noleron.com/)
-* [石渠清心](https://github.com/Felix2yu): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Felix2yu), [Web](https://yufei.im/)
+* [石渠清心](https://github.com/Felix2yu): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Felix2yu)

+ 7 - 7
Docker/README.md

@@ -11,11 +11,11 @@ FreshRSS is a self-hosted RSS feed aggregator.
 * Documentation: [`freshrss.github.io/FreshRSS`](https://freshrss.github.io/FreshRSS/)
 * Documentation: [`freshrss.github.io/FreshRSS`](https://freshrss.github.io/FreshRSS/)
 * License: [GNU AGPL 3](https://www.gnu.org/licenses/agpl-3.0.html)
 * License: [GNU AGPL 3](https://www.gnu.org/licenses/agpl-3.0.html)
 
 
-![FreshRSS logo](https://github.com/FreshRSS/FreshRSS/raw/edge/docs/img/FreshRSS-logo.png)
+![FreshRSS logo](https://raw.githubusercontent.com/FreshRSS/FreshRSS/edge/docs/img/FreshRSS-logo.png)
 
 
 ## Install Docker
 ## Install Docker
 
 
-See <https://docs.docker.com/get-docker/>
+See <https://docs.docker.com/get-started/get-docker/>
 
 
 Example for Linux Debian / Ubuntu:
 Example for Linux Debian / Ubuntu:
 
 
@@ -40,7 +40,7 @@ docker run -d --restart unless-stopped --log-opt max-size=10m \
 ```
 ```
 
 
 * Exposing on port 8080
 * Exposing on port 8080
-* With a [server timezone](http://php.net/timezones) (default is `UTC`)
+* With a [server timezone](https://www.php.net/timezones) (default is `UTC`)
 * With an automatic cron job to refresh feeds
 * With an automatic cron job to refresh feeds
 * Saving FreshRSS data in a Docker volume `freshrss_data` and optional extensions in `freshrss_extensions`
 * Saving FreshRSS data in a Docker volume `freshrss_data` and optional extensions in `freshrss_extensions`
 * Using the default image, which is the latest stable release
 * Using the default image, which is the latest stable release
@@ -52,7 +52,7 @@ or use the command line described below.
 
 
 ## Command line
 ## Command line
 
 
-See the [CLI documentation](../cli/README.md) for all the commands, which can be applied like:
+See the [CLI documentation](https://github.com/FreshRSS/FreshRSS/blob/edge/cli/README.md) for all the commands, which can be applied like:
 
 
 ```sh
 ```sh
 docker exec --user www-data freshrss cli/list-users.php
 docker exec --user www-data freshrss cli/list-users.php
@@ -91,14 +91,14 @@ and with newer packages in general (Apache, PHP).
 
 
 ## Environment variables
 ## Environment variables
 
 
-* `TZ`: (default is `UTC`) A [server timezone](http://php.net/timezones)
+* `TZ`: (default is `UTC`) A [server timezone](https://www.php.net/timezones)
 * `CRON_MIN`: (default is disabled) Define minutes for the built-in cron job to automatically refresh feeds (see below for more advanced options)
 * `CRON_MIN`: (default is disabled) Define minutes for the built-in cron job to automatically refresh feeds (see below for more advanced options)
 * `DATA_PATH`: (default is empty, defined by `./constants.local.php` or `./constants.php`) Defines the path for writable data.
 * `DATA_PATH`: (default is empty, defined by `./constants.local.php` or `./constants.php`) Defines the path for writable data.
 * `ENABLE_ACCESS_LOG`: (default is `1`) Set to `0` to disable the Apache access log.
 * `ENABLE_ACCESS_LOG`: (default is `1`) Set to `0` to disable the Apache access log.
 * `FRESHRSS_ENV`: (default is `production`) Enables additional development information if set to `development` (increases the level of logging and ensures that errors are displayed) (see below for more development options)
 * `FRESHRSS_ENV`: (default is `production`) Enables additional development information if set to `development` (increases the level of logging and ensures that errors are displayed) (see below for more development options)
 * `COPY_LOG_TO_SYSLOG`: (default is `On`) Copy all the logs to syslog
 * `COPY_LOG_TO_SYSLOG`: (default is `On`) Copy all the logs to syslog
 * `COPY_SYSLOG_TO_STDERR`: (default is `On`) Copy syslog to Standard Error so that it is visible in docker logs
 * `COPY_SYSLOG_TO_STDERR`: (default is `On`) Copy syslog to Standard Error so that it is visible in docker logs
-* `LISTEN`: (default is `80`) Modifies the internal Apache listening address and port, e.g. `0.0.0.0:8080` (for advanced users; useful for [Docker host networking](https://docs.docker.com/network/host/))
+* `LISTEN`: (default is `80`) Modifies the internal Apache listening address and port, e.g. `0.0.0.0:8080` (for advanced users; useful for [Docker host networking](https://docs.docker.com/engine/network/drivers/host/))
 * `INTERNAL_HOST_ALLOWLIST`: (default is empty, can also be set in `data/config.php` or under *System configuration* in Web UI) Requests to internal hosts such as 127.0.0.1 are blocked by default; here you can add overrides for which internal hosts to allow, separated by whitespace. Each host should be described either as a `host:port` combination, CIDR notation (`0.0.0.0/0` to allow any IPv4, `::/0` to allow any IPv6) or `*` to allow all hosts (unsafe)
 * `INTERNAL_HOST_ALLOWLIST`: (default is empty, can also be set in `data/config.php` or under *System configuration* in Web UI) Requests to internal hosts such as 127.0.0.1 are blocked by default; here you can add overrides for which internal hosts to allow, separated by whitespace. Each host should be described either as a `host:port` combination, CIDR notation (`0.0.0.0/0` to allow any IPv4, `::/0` to allow any IPv6) or `*` to allow all hosts (unsafe)
 * `FRESHRSS_INSTALL`: automatically pass arguments to command line `cli/do-install.php` (for advanced users; see example in Docker Compose section). Only executed at the very first run (so far), so if you make any change, you need to delete your `freshrss` service, `freshrss_data` volume, before running again.
 * `FRESHRSS_INSTALL`: automatically pass arguments to command line `cli/do-install.php` (for advanced users; see example in Docker Compose section). Only executed at the very first run (so far), so if you make any change, you need to delete your `freshrss` service, `freshrss_data` volume, before running again.
 * `FRESHRSS_USER`: automatically pass arguments to command line `cli/create-user.php` (for advanced users; see example in Docker Compose section). Only executed at the very first run (so far), so if you make any change, you need to delete your `freshrss` service, `freshrss_data` volume, before running again.
 * `FRESHRSS_USER`: automatically pass arguments to command line `cli/create-user.php` (for advanced users; see example in Docker Compose section). Only executed at the very first run (so far), so if you make any change, you need to delete your `freshrss` service, `freshrss_data` volume, before running again.
@@ -336,7 +336,7 @@ services:
       # If you want to open a port 8080 on the local machine:
       # If you want to open a port 8080 on the local machine:
       - "8080:80"
       - "8080:80"
     environment:
     environment:
-      # A timezone http://php.net/timezones (default is UTC)
+      # A timezone https://www.php.net/timezones (default is UTC)
       TZ: Europe/Paris
       TZ: Europe/Paris
       # Cron job to refresh feeds at specified minutes
       # Cron job to refresh feeds at specified minutes
       CRON_MIN: '2,32'
       CRON_MIN: '2,32'

+ 1 - 1
LICENSE.txt

@@ -643,7 +643,7 @@ the "copyright" line and a pointer to where the full notice is found.
     GNU Affero General Public License for more details.
     GNU Affero General Public License for more details.
 
 
     You should have received a copy of the GNU Affero General Public License
     You should have received a copy of the GNU Affero General Public License
-    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 
 Also add information on how to contact you by electronic and paper mail.
 Also add information on how to contact you by electronic and paper mail.
 
 

+ 7 - 8
README.fr.md

@@ -81,14 +81,14 @@ Si vous voulez une publication continue (rolling release) avec les dernières no
 |-|-|-|
 |-|-|-|
 | [<img src="https://www.docker.com/wp-content/uploads/2022/03/horizontal-logo-monochromatic-white.png" width="160" alt="Docker" />](./Docker/) | [<img src="https://install-app.yunohost.org/install-with-yunohost.png" width="160" alt="YunoHost" />](https://install-app.yunohost.org/?app=freshrss) | [<img src="https://elest.io/images/logos/deploy-to-elestio-btn.png" width="160" alt="Elestio" />](https://elest.io/open-source/freshrss) |
 | [<img src="https://www.docker.com/wp-content/uploads/2022/03/horizontal-logo-monochromatic-white.png" width="160" alt="Docker" />](./Docker/) | [<img src="https://install-app.yunohost.org/install-with-yunohost.png" width="160" alt="YunoHost" />](https://install-app.yunohost.org/?app=freshrss) | [<img src="https://elest.io/images/logos/deploy-to-elestio-btn.png" width="160" alt="Elestio" />](https://elest.io/open-source/freshrss) |
 | [<img src="https://cloudron.io/img/button.svg" width="160" alt="Cloudron" />](https://cloudron.io/button.html?app=org.freshrss.cloudronapp) | [<img src="https://www.pikapods.com/static/run-button-34.svg" width="160" alt="PikaPods" />](https://www.pikapods.com/pods?run=freshrss) | [<img src="https://zeabur.com/button.svg" width="160" alt="Zeabur" />](https://zeabur.com/templates/MD4TRW) |
 | [<img src="https://cloudron.io/img/button.svg" width="160" alt="Cloudron" />](https://cloudron.io/button.html?app=org.freshrss.cloudronapp) | [<img src="https://www.pikapods.com/static/run-button-34.svg" width="160" alt="PikaPods" />](https://www.pikapods.com/pods?run=freshrss) | [<img src="https://zeabur.com/button.svg" width="160" alt="Zeabur" />](https://zeabur.com/templates/MD4TRW) |
-| [<img src="https://raw.githubusercontent.com/ClawCloud/Run-Template/refs/heads/main/Run-on-ClawCloud.svg" width="160" alt="ClawCloud" />](https://template.run.claw.cloud/?openapp=system-fastdeploy%3FtemplateName%3Dfreshrss) | [<img src="https://assets.hostinger.com/vps/deploy.svg" width="160" alt="Hostinger" />](https://www.hostinger.com/vps/docker-hosting?compose_url=https://github.com/FreshRSS/FreshRSS/blob/edge/Docker/freshrss/docker-compose.yml) | |
+| [<img src="https://raw.githubusercontent.com/ClawCloud/Run-Template/refs/heads/main/Run-on-ClawCloud.svg" width="160" alt="ClawCloud" />](https://template.run.claw.cloud/?openapp=system-fastdeploy%3FtemplateName%3Dfreshrss) | [<img src="https://assets.hostinger.com/vps/deploy.svg" width="160" alt="Hostinger" />](https://www.hostinger.com/docker-hosting?compose_url=https://github.com/FreshRSS/FreshRSS/blob/edge/Docker/freshrss/docker-compose.yml) | |
 
 
 Pour plus d’options d’hébergement dans le cloud, consultez la [liste des fournisseurs cloud](https://freshrss.org/cloud-providers.html) ou [Chatons](https://www.chatons.org/search/by-service?field_software_target_id=269) (un annuaire de fournisseurs d’hébergement éthiques).
 Pour plus d’options d’hébergement dans le cloud, consultez la [liste des fournisseurs cloud](https://freshrss.org/cloud-providers.html) ou [Chatons](https://www.chatons.org/search/by-service?field_software_target_id=269) (un annuaire de fournisseurs d’hébergement éthiques).
 
 
 
 
 ## Installation manuelle
 ## Installation manuelle
 
 
-1. Récupérez l’application FreshRSS via la commande git ou [en téléchargeant l’archive](../releases)
+1. Récupérez l’application FreshRSS via la commande git ou [en téléchargeant l’archive](https://github.com/FreshRSS/FreshRSS/releases)
 2. Placez l’application sur votre serveur (la partie à exposer au Web est le répertoire `./p/`)
 2. Placez l’application sur votre serveur (la partie à exposer au Web est le répertoire `./p/`)
 3. Le serveur Web doit avoir les droits d’écriture dans le répertoire `./data/`
 3. Le serveur Web doit avoir les droits d’écriture dans le répertoire `./data/`
 4. Accédez à FreshRSS à travers votre navigateur Web et suivez les instructions d’installation
 4. Accédez à FreshRSS à travers votre navigateur Web et suivez les instructions d’installation
@@ -156,7 +156,7 @@ Il est requis pour le mode multi-utilisateur, et recommandé dans tous les cas,
 # Rafraîchissement automatique des flux
 # Rafraîchissement automatique des flux
 
 
 * Vous pouvez ajouter une tâche Cron lançant régulièrement le script d’actualisation automatique des flux.
 * Vous pouvez ajouter une tâche Cron lançant régulièrement le script d’actualisation automatique des flux.
-Consultez la documentation de Cron de votre système d’exploitation ([Debian/Ubuntu](https://doc.ubuntu-fr.org/cron), [Red Hat/Fedora](https://doc.fedora-fr.org/wiki/CRON_:_Configuration_de_t%C3%A2ches_automatis%C3%A9es), [Slackware](https://docs.slackware.com/fr:slackbook:process_control?#cron), [Gentoo](https://wiki.gentoo.org/wiki/Cron/fr), [Arch Linux](https://wiki.archlinux.fr/Cron)…).
+Consultez la documentation de Cron de votre système d’exploitation ([Debian/Ubuntu](https://doc.ubuntu-fr.org/cron), [Red Hat/Fedora](https://doc.fedora-fr.org/wiki/CRON_:_Configuration_de_t%C3%A2ches_automatis%C3%A9es), [Slackware](https://docs.slackware.com/fr:slackbook:process_control?#cron), [Gentoo](https://wiki.gentoo.org/wiki/Cron/fr), [Arch Linux](https://wiki.archlinux.org/title/Cron_(Fran%C3%A7ais))…).
 C’est une bonne idée d’utiliser le même utilisateur que votre serveur Web (souvent “www-data”).
 C’est une bonne idée d’utiliser le même utilisateur que votre serveur Web (souvent “www-data”).
 Par exemple, pour exécuter le script toutes les heures :
 Par exemple, pour exécuter le script toutes les heures :
 
 
@@ -270,9 +270,9 @@ et [l’API Fever](https://freshrss.github.io/FreshRSS/fr/users/06_Fever_API.htm
 |:--------------------------------------------------------------------------------------|:-----------:|:-------------------------------------------------------------:|:----------------------:|:----------------:|:-------------:|:---------:|:------------------------------:|:-------------------:|:----------:|:------:|:--------:|:------------:|
 |:--------------------------------------------------------------------------------------|:-----------:|:-------------------------------------------------------------:|:----------------------:|:----------------:|:-------------:|:---------:|:------------------------------:|:-------------------:|:----------:|:------:|:--------:|:------------:|
 | [Capy Reader](https://github.com/jocmp/capyreader)                                    | Android     | [✓](https://github.com/jocmp/capyreader)                     | ✓✓                   | GReader          | ✓            | ⭐⭐⭐    | ✓                             | ✓                  | ✓         | ✓ | [✓](https://github.com/jocmp/capyreader/discussions/1689) | ✓           |
 | [Capy Reader](https://github.com/jocmp/capyreader)                                    | Android     | [✓](https://github.com/jocmp/capyreader)                     | ✓✓                   | GReader          | ✓            | ⭐⭐⭐    | ✓                             | ✓                  | ✓         | ✓ | [✓](https://github.com/jocmp/capyreader/discussions/1689) | ✓           |
 | [Readrops](https://github.com/readrops/Readrops)                                      | Android     | [✓](https://github.com/readrops/Readrops)                    | ✓✓                   | GReader          | ✓            | ⭐⭐⭐    | –                             | ✓                  | ✓         | [–](https://github.com/readrops/Readrops/issues/54) | –       | ✓           |
 | [Readrops](https://github.com/readrops/Readrops)                                      | Android     | [✓](https://github.com/readrops/Readrops)                    | ✓✓                   | GReader          | ✓            | ⭐⭐⭐    | –                             | ✓                  | ✓         | [–](https://github.com/readrops/Readrops/issues/54) | –       | ✓           |
-| [FeedMe](https://play.google.com/store/apps/details?id=com.seazon.feedme)             | Android     | [–](https://github.com/seazon/FeedMe)                        | ✓✓                   | GReader          | ✓            | ⭐⭐      | –                             | –                  | ✓         | [](https://github.com/seazon/FeedMe/issues/348) | ✓       | ✓           |
+| [FeedMe](https://play.google.com/store/apps/details?id=com.seazon.feedme)             | Android     | [–](https://github.com/seazon/FeedMe)                        | ✓✓                   | GReader          | ✓            | ⭐⭐      | –                             | –                  | ✓         | ✓ | ✓       | ✓           |
 | [FocusReader](https://play.google.com/store/apps/details?id=allen.town.focus.reader)  | Android     | –                                                            | ✓✓                   | GReader          | ✓            | ⭐⭐      | –                             | –                  | ✓         | ✓     | ✓      | ✓           |
 | [FocusReader](https://play.google.com/store/apps/details?id=allen.town.focus.reader)  | Android     | –                                                            | ✓✓                   | GReader          | ✓            | ⭐⭐      | –                             | –                  | ✓         | ✓     | ✓      | ✓           |
-| [Read You](https://github.com/Ashinch/ReadYou/)                                       | Android     | [✓](https://github.com/Ashinch/ReadYou/)                     | ✓✓                   | GReader          | ✓            | ⭐⭐      | ✓                             | ✓                  | ✓         | –     | –      | ✓           |
+| [Read You](https://github.com/ReadYouApp/ReadYou)                                       | Android     | [✓](https://github.com/ReadYouApp/ReadYou)                     | ✓✓                   | GReader          | ✓            | ⭐⭐      | ✓                             | ✓                  | ✓         | –     | –      | ✓           |
 | [Your News](https://yournews.app/)                                                    | Android, iOS| –                                                            | ✓✓                   | GReader          | –            | ⭐       | ✓                             | ✓                  | ✓        | –     | –      | –        |
 | [Your News](https://yournews.app/)                                                    | Android, iOS| –                                                            | ✓✓                   | GReader          | –            | ⭐       | ✓                             | ✓                  | ✓        | –     | –      | –        |
 | [Fluent Reader Lite](https://hyliu.me/fluent-reader-lite/)                            | Android, iOS| [✓](https://github.com/yang991178/fluent-reader-lite)        | ✓                     | GReader          | ✓            | ⭐⭐      | –                             | –                  | ✓         | –     | –       | –           |
 | [Fluent Reader Lite](https://hyliu.me/fluent-reader-lite/)                            | Android, iOS| [✓](https://github.com/yang991178/fluent-reader-lite)        | ✓                     | GReader          | ✓            | ⭐⭐      | –                             | –                  | ✓         | –     | –       | –           |
 | [FeedFlow](https://www.feedflow.dev)                                                  | Android, iOS, Linux, macOS, Windows | [✓](https://github.com/prof18/feed-flow)                     | ✓✓                   | GReader          | ✓            | ?        | ?                             | ?                  | ✓         | ?     | –       | ✓           |
 | [FeedFlow](https://www.feedflow.dev)                                                  | Android, iOS, Linux, macOS, Windows | [✓](https://github.com/prof18/feed-flow)                     | ✓✓                   | GReader          | ✓            | ?        | ?                             | ?                  | ✓         | ?     | –       | ✓           |
@@ -288,13 +288,13 @@ et [l’API Fever](https://freshrss.github.io/FreshRSS/fr/users/06_Fever_API.htm
 
 
 | App                                                                                   | Plateforme  | Logiciel libre                                                | Maintenu & Dévelopé    | API              | Mode hors-ligne | Sync rapide | Récupère plus d’articles dans les vues individuelles | Récupère les articles lus | Favoris  | Étiquettes | Podcasts | Gestion des flux |
 | App                                                                                   | Plateforme  | Logiciel libre                                                | Maintenu & Dévelopé    | API              | Mode hors-ligne | Sync rapide | Récupère plus d’articles dans les vues individuelles | Récupère les articles lus | Favoris  | Étiquettes | Podcasts | Gestion des flux |
 |:--------------------------------------------------------------------------------------|:-----------:|:-------------------------------------------------------------:|:----------------------:|:----------------:|:-------------:|:---------:|:------------------------------:|:-------------------:|:----------:|:------:|:--------:|:------------:|
 |:--------------------------------------------------------------------------------------|:-----------:|:-------------------------------------------------------------:|:----------------------:|:----------------:|:-------------:|:---------:|:------------------------------:|:-------------------:|:----------:|:------:|:--------:|:------------:|
-| [Vienna RSS](http://www.vienna-rss.com/)                                              | macOS       | [✓](https://github.com/ViennaRSS/vienna-rss)                 | ✓✓                   | GReader          | ?            | ?        | ?                             | ?                  | ?         | ?     | ?       | ?           |
+| [Vienna RSS](https://www.vienna-rss.com/)                                              | macOS       | [✓](https://github.com/ViennaRSS/vienna-rss)                 | ✓✓                   | GReader          | ?            | ?        | ?                             | ?                  | ?         | ?     | ?       | ?           |
 | [Readkit](https://readkit.app/)             | iOS, macOS  | –                                                            | ✓✓                   | GReader          | ✓            | ⭐⭐⭐    | –                             | ✓                  | ✓         | –     | ✓       | $           |
 | [Readkit](https://readkit.app/)             | iOS, macOS  | –                                                            | ✓✓                   | GReader          | ✓            | ⭐⭐⭐    | –                             | ✓                  | ✓         | –     | ✓       | $           |
 | [Reeder Classic](https://www.reederapp.com/classic/)                                  | iOS, macOS  | –                                                            | ✓✓                   | GReader          | ✓            | ⭐⭐⭐       | –                             | ✓                  | ✓         | –     | –       | ✓           |
 | [Reeder Classic](https://www.reederapp.com/classic/)                                  | iOS, macOS  | –                                                            | ✓✓                   | GReader          | ✓            | ⭐⭐⭐       | –                             | ✓                  | ✓         | –     | –       | ✓           |
 | [lire](https://lireapp.com/)                                                          | iOS, macOS  | –                                                            | ✓✓                   | GReader          | ?            | ?        | ?                             | ?                  | ?         | ?     | ?       | ?           |
 | [lire](https://lireapp.com/)                                                          | iOS, macOS  | –                                                            | ✓✓                   | GReader          | ?            | ?        | ?                             | ?                  | ?         | ?     | ?       | ?           |
 | [Unread](https://www.goldenhillsoftware.com/unread/)                            | iOS         | –                                                            | ✓✓                   | Fever            | ✓            | ?        | ?                             | ?                  | ✓         | –     | –       | –           |
 | [Unread](https://www.goldenhillsoftware.com/unread/)                            | iOS         | –                                                            | ✓✓                   | Fever            | ✓            | ?        | ?                             | ?                  | ✓         | –     | –       | –           |
 | [Fiery Feeds](https://voidstern.net/fiery-feeds)         | iOS         | –                                                            | ✓✓                   | Fever            | ?            | ?        | ?                             | ?                  | ?         | –     | –       | –           |
 | [Fiery Feeds](https://voidstern.net/fiery-feeds)         | iOS         | –                                                            | ✓✓                   | Fever            | ?            | ?        | ?                             | ?                  | ?         | –     | –       | –           |
-| [Netnewswire](https://ranchero.com/netnewswire/)                                      | iOS, macOS  | [✓](https://github.com/Ranchero-Software/NetNewsWire)        | En développement        | GReader          | ✓            | ?        | ?                             | ?                  | ✓         | –     | –       | ✓           |
+| [Netnewswire](https://netnewswire.com/)                                      | iOS, macOS  | [✓](https://github.com/Ranchero-Software/NetNewsWire)        | En développement        | GReader          | ✓            | ?        | ?                             | ?                  | ✓         | –     | –       | ✓           |
 
 
 # Bibliothèques incluses
 # Bibliothèques incluses
 
 
@@ -318,5 +318,4 @@ Si FreshRSS ne vous convient pas pour une raison ou pour une autre, voici d’au
 
 
 * [Kriss Feed](https://tontof.net/kriss/feed/)
 * [Kriss Feed](https://tontof.net/kriss/feed/)
 * [Leed](https://github.com/LeedRSS/Leed)
 * [Leed](https://github.com/LeedRSS/Leed)
-* [Et plus…](https://framalibre.org/tags/lecteur-de-flux-rss)
 * [Et encore plus…](https://alternativeto.net/software/freshrss/) (mais si vous appréciez FreshRSS, mettez un “j’aime” !)
 * [Et encore plus…](https://alternativeto.net/software/freshrss/) (mais si vous appréciez FreshRSS, mettez un “j’aime” !)

+ 7 - 7
README.md

@@ -64,7 +64,7 @@ FreshRSS comes with absolutely no warranty.
 	* It even works on Raspberry Pi 1 with response time under a second (tested with 150 feeds, 22k articles)
 	* It even works on Raspberry Pi 1 with response time under a second (tested with 150 feeds, 22k articles)
 * A Web server: Apache2.4+ (recommended), nginx, lighttpd (not tested on others)
 * A Web server: Apache2.4+ (recommended), nginx, lighttpd (not tested on others)
 * PHP 8.1+
 * PHP 8.1+
-	* Required extensions: [cURL](https://www.php.net/curl), [DOM](https://www.php.net/dom), [JSON](https://www.php.net/json), [XML](https://www.php.net/xml), [session](https://www.php.net/session), [ctype](https://www.php.net/ctype)
+	* Required extensions: [cURL](https://www.php.net/curl), [DOM](https://www.php.net/dom), [JSON](https://www.php.net/json), [XML](https://www.php.net/xml), [session](https://www.php.net/features.sessions), [ctype](https://www.php.net/ctype)
 	* Recommended extensions: [PDO_SQLite](https://www.php.net/pdo-sqlite) (for export/import), [GMP](https://www.php.net/gmp) (for API access on 32-bit platforms), [IDN](https://www.php.net/intl.idn) (for Internationalized Domain Names), [mbstring](https://www.php.net/mbstring) (for Unicode strings), [iconv](https://www.php.net/iconv) (for charset conversion), [ZIP](https://www.php.net/zip) (for import/export), [zlib](https://www.php.net/zlib) (for compressed feeds)
 	* Recommended extensions: [PDO_SQLite](https://www.php.net/pdo-sqlite) (for export/import), [GMP](https://www.php.net/gmp) (for API access on 32-bit platforms), [IDN](https://www.php.net/intl.idn) (for Internationalized Domain Names), [mbstring](https://www.php.net/mbstring) (for Unicode strings), [iconv](https://www.php.net/iconv) (for charset conversion), [ZIP](https://www.php.net/zip) (for import/export), [zlib](https://www.php.net/zlib) (for compressed feeds)
 	* Extension for database: [PDO_PGSQL](https://www.php.net/pdo-pgsql) or [PDO_SQLite](https://www.php.net/pdo-sqlite) or [PDO_MySQL](https://www.php.net/pdo-mysql)
 	* Extension for database: [PDO_PGSQL](https://www.php.net/pdo-pgsql) or [PDO_SQLite](https://www.php.net/pdo-sqlite) or [PDO_MySQL](https://www.php.net/pdo-mysql)
 * PostgreSQL 10+ or SQLite or MariaDB 10.6+ or MySQL 8.0+
 * PostgreSQL 10+ or SQLite or MariaDB 10.6+ or MySQL 8.0+
@@ -79,15 +79,15 @@ If you want a rolling release with the newest features, or want to help testing
 
 
 | | | |
 | | | |
 |-|-|-|
 |-|-|-|
-| [<img src="https://www.docker.com/wp-content/uploads/2022/03/horizontal-logo-monochromatic-white.png" width="160" alt="Docker" />](./Docker/) | [<img src="https://install-app.yunohost.org/install-with-yunohost.png" width="160" alt="YunoHost" />](https://install-app.yunohost.org/?app=freshrss) | [<img src="https://elest.io/images/logos/deploy-to-elestio-btn.png" width="160" alt="Elestio" />](https://elest.io/open-source/freshrss) |
+| [<img src="https://www.docker.com/app/uploads/2022/03/horizontal-logo-monochromatic-white.png" width="160" alt="Docker" />](./Docker/) | [<img src="https://install-app.yunohost.org/install-with-yunohost.png" width="160" alt="YunoHost" />](https://install-app.yunohost.org/?app=freshrss) | [<img src="https://elest.io/images/logos/deploy-to-elestio-btn.png" width="160" alt="Elestio" />](https://elest.io/open-source/freshrss) |
 | [<img src="https://cloudron.io/img/button.svg" width="160" alt="Cloudron" />](https://cloudron.io/button.html?app=org.freshrss.cloudronapp) | [<img src="https://www.pikapods.com/static/run-button-34.svg" width="160" alt="PikaPods" />](https://www.pikapods.com/pods?run=freshrss) | [<img src="https://zeabur.com/button.svg" width="160" alt="Zeabur" />](https://zeabur.com/templates/MD4TRW) |
 | [<img src="https://cloudron.io/img/button.svg" width="160" alt="Cloudron" />](https://cloudron.io/button.html?app=org.freshrss.cloudronapp) | [<img src="https://www.pikapods.com/static/run-button-34.svg" width="160" alt="PikaPods" />](https://www.pikapods.com/pods?run=freshrss) | [<img src="https://zeabur.com/button.svg" width="160" alt="Zeabur" />](https://zeabur.com/templates/MD4TRW) |
-| [<img src="https://raw.githubusercontent.com/ClawCloud/Run-Template/refs/heads/main/Run-on-ClawCloud.svg" width="160" alt="ClawCloud" />](https://template.run.claw.cloud/?openapp=system-fastdeploy%3FtemplateName%3Dfreshrss) | [<img src="https://assets.hostinger.com/vps/deploy.svg" width="160" alt="Hostinger" />](https://www.hostinger.com/vps/docker-hosting?compose_url=https://github.com/FreshRSS/FreshRSS/blob/edge/Docker/freshrss/docker-compose.yml) | |
+| [<img src="https://raw.githubusercontent.com/ClawCloud/Run-Template/refs/heads/main/Run-on-ClawCloud.svg" width="160" alt="ClawCloud" />](https://template.run.claw.cloud/?openapp=system-fastdeploy%3FtemplateName%3Dfreshrss) | [<img src="https://assets.hostinger.com/vps/deploy.svg" width="160" alt="Hostinger" />](https://www.hostinger.com/docker-hosting?compose_url=https://github.com/FreshRSS/FreshRSS/blob/edge/Docker/freshrss/docker-compose.yml) | |
 
 
 For more cloud hosting options, see the [list of cloud providers](https://freshrss.org/cloud-providers.html) or [Chatons](https://www.chatons.org/search/by-service?field_software_target_id=269) (a directory of ethical hosting providers).
 For more cloud hosting options, see the [list of cloud providers](https://freshrss.org/cloud-providers.html) or [Chatons](https://www.chatons.org/search/by-service?field_software_target_id=269) (a directory of ethical hosting providers).
 
 
 ## Manual install
 ## Manual install
 
 
-1. Get FreshRSS with git or [by downloading the archive](https://github.com/FreshRSS/FreshRSS/archive/latest.zip)
+1. Get FreshRSS with git or [by downloading the archive](https://github.com/FreshRSS/FreshRSS/archive/refs/heads/latest.zip)
 2. Put the application somewhere on your server (expose only the `./p/` folder to the Web)
 2. Put the application somewhere on your server (expose only the `./p/` folder to the Web)
 3. Add write access to the `./data/` folder for the webserver user
 3. Add write access to the `./data/` folder for the webserver user
 4. Access FreshRSS with your browser and follow the installation process
 4. Access FreshRSS with your browser and follow the installation process
@@ -166,9 +166,9 @@ and [Fever API](https://freshrss.github.io/FreshRSS/en/developers/06_Fever_API.h
 |:--------------------------------------------------------------------------------------|:-----------:|:-------------------------------------------------------------:|:----------------------:|:----------------:|:-------------:|:---------:|:------------------------------:|:-------------------:|:----------:|:------:|:--------:|:------------:|
 |:--------------------------------------------------------------------------------------|:-----------:|:-------------------------------------------------------------:|:----------------------:|:----------------:|:-------------:|:---------:|:------------------------------:|:-------------------:|:----------:|:------:|:--------:|:------------:|
 | [Capy Reader](https://github.com/jocmp/capyreader)                                    | Android     | [✓](https://github.com/jocmp/capyreader)                     | ✓✓                   | GReader          | ✓            | ⭐⭐⭐    | ✓                             | ✓                  | ✓         | ✓     | [✓](https://github.com/jocmp/capyreader/discussions/1689) | ✓           |
 | [Capy Reader](https://github.com/jocmp/capyreader)                                    | Android     | [✓](https://github.com/jocmp/capyreader)                     | ✓✓                   | GReader          | ✓            | ⭐⭐⭐    | ✓                             | ✓                  | ✓         | ✓     | [✓](https://github.com/jocmp/capyreader/discussions/1689) | ✓           |
 | [Readrops](https://github.com/readrops/Readrops)                                      | Android     | [✓](https://github.com/readrops/Readrops)                    | ✓✓                   | GReader          | ✓            | ⭐⭐⭐    | –                             | ✓                  | ✓         | [–](https://github.com/readrops/Readrops/issues/54) | –       | ✓           |
 | [Readrops](https://github.com/readrops/Readrops)                                      | Android     | [✓](https://github.com/readrops/Readrops)                    | ✓✓                   | GReader          | ✓            | ⭐⭐⭐    | –                             | ✓                  | ✓         | [–](https://github.com/readrops/Readrops/issues/54) | –       | ✓           |
-| [FeedMe](https://play.google.com/store/apps/details?id=com.seazon.feedme)             | Android     | [–](https://github.com/seazon/FeedMe)                        | ✓✓                   | GReader          | ✓            | ⭐⭐       | –                             | –                  | ✓         | [](https://github.com/seazon/FeedMe/issues/348) | ✓       | ✓           |
+| [FeedMe](https://play.google.com/store/apps/details?id=com.seazon.feedme)             | Android     | [–](https://github.com/seazon/FeedMe)                        | ✓✓                   | GReader          | ✓            | ⭐⭐       | –                             | –                  | ✓         | ✓ | ✓       | ✓           |
 | [FocusReader](https://play.google.com/store/apps/details?id=allen.town.focus.reader)  | Android     | –                                                            | ✓✓                   | GReader          | ✓            | ⭐⭐       | –                             | –                  | ✓         | ✓     | ✓       | ✓           |
 | [FocusReader](https://play.google.com/store/apps/details?id=allen.town.focus.reader)  | Android     | –                                                            | ✓✓                   | GReader          | ✓            | ⭐⭐       | –                             | –                  | ✓         | ✓     | ✓       | ✓           |
-| [Read You](https://github.com/Ashinch/ReadYou/)                                       | Android     | [✓](https://github.com/Ashinch/ReadYou/)                     | ✓✓                   | GReader          | ✓            | ⭐⭐       | ✓                             | ✓                  | ✓         | –     | –       | ✓           |
+| [Read You](https://github.com/ReadYouApp/ReadYou)                                       | Android     | [✓](https://github.com/ReadYouApp/ReadYou)                     | ✓✓                   | GReader          | ✓            | ⭐⭐       | ✓                             | ✓                  | ✓         | –     | –       | ✓           |
 | [Your News](https://yournews.app/)                                                    | Android, iOS| –                                                            | ✓✓                   | GReader          | –            | ⭐        | ✓                             | ✓                  | ✓        | –     | –      | –        |
 | [Your News](https://yournews.app/)                                                    | Android, iOS| –                                                            | ✓✓                   | GReader          | –            | ⭐        | ✓                             | ✓                  | ✓        | –     | –      | –        |
 | [Fluent Reader Lite](https://hyliu.me/fluent-reader-lite/)                            | Android, iOS| [✓](https://github.com/yang991178/fluent-reader-lite)        | ✓                     | GReader          | ✓            | ⭐⭐       | –                             | –                  | ✓         | –     | –       | –           |
 | [Fluent Reader Lite](https://hyliu.me/fluent-reader-lite/)                            | Android, iOS| [✓](https://github.com/yang991178/fluent-reader-lite)        | ✓                     | GReader          | ✓            | ⭐⭐       | –                             | –                  | ✓         | –     | –       | –           |
 | [FeedFlow](https://www.feedflow.dev)                                                  | Android, iOS, Linux, macOS, Windows | [✓](https://github.com/prof18/feed-flow)                     | ✓✓                   | GReader          | ✓            | ?        | ?                             | ?                  | ✓         | ?     | –       | ✓           |
 | [FeedFlow](https://www.feedflow.dev)                                                  | Android, iOS, Linux, macOS, Windows | [✓](https://github.com/prof18/feed-flow)                     | ✓✓                   | GReader          | ✓            | ?        | ?                             | ?                  | ✓         | ?     | –       | ✓           |
@@ -184,7 +184,7 @@ and [Fever API](https://freshrss.github.io/FreshRSS/en/developers/06_Fever_API.h
 
 
 | App                                                                                   | Platform    | Free Software                                                 | Maintained & Developed | API              | Works offline | Fast sync | Fetch more in individual views | Fetch read articles | Favourites | Labels | Podcasts | Manage feeds |
 | App                                                                                   | Platform    | Free Software                                                 | Maintained & Developed | API              | Works offline | Fast sync | Fetch more in individual views | Fetch read articles | Favourites | Labels | Podcasts | Manage feeds |
 |:--------------------------------------------------------------------------------------|:-----------:|:-------------------------------------------------------------:|:----------------------:|:----------------:|:-------------:|:---------:|:------------------------------:|:-------------------:|:----------:|:------:|:--------:|:------------:|
 |:--------------------------------------------------------------------------------------|:-----------:|:-------------------------------------------------------------:|:----------------------:|:----------------:|:-------------:|:---------:|:------------------------------:|:-------------------:|:----------:|:------:|:--------:|:------------:|
-| [Vienna RSS](http://www.vienna-rss.com/)                                              | macOS       | [✓](https://github.com/ViennaRSS/vienna-rss)                 | ✓✓                   | GReader          | ?            | ?        | ?                             | ?                  | ?         | ?     | ?       | ?           |
+| [Vienna RSS](https://www.vienna-rss.com/)                                              | macOS       | [✓](https://github.com/ViennaRSS/vienna-rss)                 | ✓✓                   | GReader          | ?            | ?        | ?                             | ?                  | ?         | ?     | ?       | ?           |
 | [Readkit](https://readkit.app/)             | iOS, macOS  | –                                                            | ✓✓                   | GReader          | ✓            | ⭐⭐⭐    | –                             | ✓                  | ✓         | –     | ✓       | $           |
 | [Readkit](https://readkit.app/)             | iOS, macOS  | –                                                            | ✓✓                   | GReader          | ✓            | ⭐⭐⭐    | –                             | ✓                  | ✓         | –     | ✓       | $           |
 | [Reeder Classic](https://www.reederapp.com/classic/)                                 | iOS, macOS  | –                                                            | ✓✓                   | GReader          | ✓            | ⭐⭐⭐    | –                             | ✓                  | ✓         | –     | –       | ✓           |
 | [Reeder Classic](https://www.reederapp.com/classic/)                                 | iOS, macOS  | –                                                            | ✓✓                   | GReader          | ✓            | ⭐⭐⭐    | –                             | ✓                  | ✓         | –     | –       | ✓           |
 | [lire](https://lireapp.com/)                                                          | iOS, macOS  | –                                                            | ✓✓                   | GReader          | ?            | ?        | ?                             | ?                  | ?         | ?     | ?       | ?           |
 | [lire](https://lireapp.com/)                                                          | iOS, macOS  | –                                                            | ✓✓                   | GReader          | ?            | ?        | ?                             | ?                  | ?         | ?     | ?       | ?           |

+ 3 - 3
app/Models/DatabaseDAO.php

@@ -17,7 +17,7 @@ class FreshRSS_DatabaseDAO extends Minz_ModelPdo {
 	public const MAX_VARIABLE_NUMBER = 998;
 	public const MAX_VARIABLE_NUMBER = 998;
 
 
 	//MySQL InnoDB maximum index length for UTF8MB4
 	//MySQL InnoDB maximum index length for UTF8MB4
-	//https://dev.mysql.com/doc/refman/8.0/en/innodb-restrictions.html
+	// https://dev.mysql.com/doc/refman/26.7/en/innodb-restrictions-limitations.html
 	public const LENGTH_INDEX_UNICODE = 191;
 	public const LENGTH_INDEX_UNICODE = 191;
 
 
 	public function create(): string {
 	public function create(): string {
@@ -330,8 +330,8 @@ class FreshRSS_DatabaseDAO extends Minz_ModelPdo {
 			if ($this->pdo->dbType() === 'mysql') {
 			if ($this->pdo->dbType() === 'mysql') {
 				$isMariaDB = $this->isMariaDB();
 				$isMariaDB = $this->isMariaDB();
 				if (!$isMariaDB) {
 				if (!$isMariaDB) {
-					// MySQL does not support `DROP INDEX IF EXISTS` yet https://dev.mysql.com/doc/refman/8.3/en/drop-index.html
-					// but MariaDB does https://mariadb.com/kb/en/drop-index/
+					// MySQL does not support `DROP INDEX IF EXISTS` yet https://dev.mysql.com/doc/refman/26.7/en/drop-index.html
+					// but MariaDB does https://mariadb.com/docs/server/reference/sql-statements/data-definition/drop/drop-index
 					$sql = str_replace('DROP INDEX IF EXISTS', 'DROP INDEX', $sql);
 					$sql = str_replace('DROP INDEX IF EXISTS', 'DROP INDEX', $sql);
 				}
 				}
 			}
 			}

+ 1 - 1
app/Models/Entry.php

@@ -1200,7 +1200,7 @@ class FreshRSS_Entry extends Minz_Model {
 	/**
 	/**
 	 * Integer format conversion for Google Reader API format
 	 * Integer format conversion for Google Reader API format
 	 * @param numeric-string|int $dec Decimal number
 	 * @param numeric-string|int $dec Decimal number
-	 * @return string 64-bit hexa http://code.google.com/p/google-reader-api/wiki/ItemId
+	 * @return string 64-bit hexa https://github.com/mihaip/google-reader-api
 	 */
 	 */
 	private static function dec2hex(string|int $dec): string {
 	private static function dec2hex(string|int $dec): string {
 		return PHP_INT_SIZE < 8 ? // 32-bit ?
 		return PHP_INT_SIZE < 8 ? // 32-bit ?

+ 4 - 4
app/Models/EntryDAO.php

@@ -28,7 +28,7 @@ class FreshRSS_EntryDAO extends Minz_ModelPdo {
 	}
 	}
 
 
 	protected static function sqlLimitAll(): string {
 	protected static function sqlLimitAll(): string {
-		// https://dev.mysql.com/doc/refman/9.4/en/select.html
+		// https://dev.mysql.com/doc/refman/26.7/en/select.html
 		return '18446744073709551615';	// Maximum unsigned BIGINT in MySQL, which neither supports ALL nor -1
 		return '18446744073709551615';	// Maximum unsigned BIGINT in MySQL, which neither supports ALL nor -1
 	}
 	}
 
 
@@ -138,7 +138,7 @@ class FreshRSS_EntryDAO extends Minz_ModelPdo {
 				if (!is_string($sql)) {
 				if (!is_string($sql)) {
 					throw new Exception('ALTER_TABLE_ENTRY_LAST_USER_MODIFIED is not a string!');
 					throw new Exception('ALTER_TABLE_ENTRY_LAST_USER_MODIFIED is not a string!');
 				}
 				}
-				if ($isMySQL) { // Unlike MariaDB, MySQL does not support `IF NOT EXISTS` https://dev.mysql.com/doc/refman/9.6/en/alter-table.html
+				if ($isMySQL) { // Unlike MariaDB, MySQL does not support `IF NOT EXISTS` https://dev.mysql.com/doc/refman/26.7/en/alter-table.html
 					$sql = str_replace(' IF NOT EXISTS ', ' ', $sql);
 					$sql = str_replace(' IF NOT EXISTS ', ' ', $sql);
 				}
 				}
 				$result = $this->pdo->exec($sql);
 				$result = $this->pdo->exec($sql);
@@ -147,7 +147,7 @@ class FreshRSS_EntryDAO extends Minz_ModelPdo {
 				if (!is_string($sql)) {
 				if (!is_string($sql)) {
 					throw new Exception('ALTER_TABLE_ENTRY_LAST_MODIFIED is not a string!');
 					throw new Exception('ALTER_TABLE_ENTRY_LAST_MODIFIED is not a string!');
 				}
 				}
-				if ($isMySQL) { // Unlike MariaDB, MySQL does not support `IF NOT EXISTS` https://dev.mysql.com/doc/refman/9.6/en/alter-table.html
+				if ($isMySQL) { // Unlike MariaDB, MySQL does not support `IF NOT EXISTS` https://dev.mysql.com/doc/refman/26.7/en/alter-table.html
 					$sql = str_replace(' IF NOT EXISTS ', ' ', $sql);
 					$sql = str_replace(' IF NOT EXISTS ', ' ', $sql);
 				}
 				}
 				$result = $this->pdo->exec($sql);
 				$result = $this->pdo->exec($sql);
@@ -1644,7 +1644,7 @@ class FreshRSS_EntryDAO extends Minz_ModelPdo {
 			. ($sort === 'c.name' ? ', f.name ' . $order : '')	// Internal secondary sort
 			. ($sort === 'c.name' ? ', f.name ' . $order : '')	// Internal secondary sort
 			. (in_array($sort, ['c.name', 'f.name'], true) ? ', ' . $orderBy2 . ' ' . $order2 : '')	// User secondary sort
 			. (in_array($sort, ['c.name', 'f.name'], true) ? ', ' . $orderBy2 . ' ' . $order2 : '')	// User secondary sort
 			. ($sort === 'id' ? '' : ', e.id ' . $order)	// For keyset pagination
 			. ($sort === 'id' ? '' : ', e.id ' . $order)	// For keyset pagination
-			. ($limit > 0 ? ' LIMIT ' . $limit : '')	// http://explainextended.com/2009/10/23/mysql-order-by-limit-performance-late-row-lookups/
+			. ($limit > 0 ? ' LIMIT ' . $limit : '')	// https://explainextended.com/2009/10/23/mysql-order-by-limit-performance-late-row-lookups/
 			. ($offset > 0 ? ' OFFSET ' . $offset : '')
 			. ($offset > 0 ? ' OFFSET ' . $offset : '')
 		];
 		];
 	}
 	}

+ 1 - 1
app/Models/EntryDAOSQLite.php

@@ -50,7 +50,7 @@ class FreshRSS_EntryDAOSQLite extends FreshRSS_EntryDAO {
 		if (!str_contains($sql, ' REGEXP ')) {
 		if (!str_contains($sql, ' REGEXP ')) {
 			return;
 			return;
 		}
 		}
-		// https://php.net/pdo.sqlitecreatefunction
+		// https://www.php.net/pdo.sqlitecreatefunction
 		// https://www.sqlite.org/lang_expr.html#the_like_glob_regexp_match_and_extract_operators
 		// https://www.sqlite.org/lang_expr.html#the_like_glob_regexp_match_and_extract_operators
 		$this->pdo->sqliteCreateFunction('regexp',
 		$this->pdo->sqliteCreateFunction('regexp',
 			function (string $pattern, string $text): bool {
 			function (string $pattern, string $text): bool {

+ 1 - 1
app/Models/SimplePieCustom.php

@@ -154,7 +154,7 @@ final class FreshRSS_SimplePieCustom extends \SimplePie\SimplePie
 			'output' => [],
 			'output' => [],
 			'p' => ['align'],
 			'p' => ['align'],
 			'picture' => [],
 			'picture' => [],
-			// 'plaintext' => [], // Can't be closed. See: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/plaintext
+			// 'plaintext' => [], // Can't be closed. See: https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/plaintext
 			'pre' => ['width', 'wrap'],
 			'pre' => ['width', 'wrap'],
 			'progress' => ['max', 'value'],
 			'progress' => ['max', 'value'],
 			'q' => ['cite'],
 			'q' => ['cite'],

+ 1 - 1
app/i18n/cs/conf.php

@@ -176,7 +176,7 @@ return array(
 			'check_link' => 'Check API status via: <kbd><a href="../api/" target="_blank">%s</a></kbd>',	// TODO
 			'check_link' => 'Check API status via: <kbd><a href="../api/" target="_blank">%s</a></kbd>',	// TODO
 			'disabled' => 'The API access is disabled.',	// TODO
 			'disabled' => 'The API access is disabled.',	// TODO
 			'documentation_link' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentation and list of known apps</a>',	// TODO
 			'documentation_link' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentation and list of known apps</a>',	// TODO
-			'help' => 'See <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentation</a>',	// TODO
+			'help' => 'See <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentation</a>',	// TODO
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// TODO
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// TODO
 		),
 		),
 		'change_password' => 'Change password',	// TODO
 		'change_password' => 'Change password',	// TODO

+ 6 - 6
app/i18n/cs/sub.php

@@ -26,7 +26,7 @@ return array(
 		'archiving' => 'Archivace',
 		'archiving' => 'Archivace',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => 'Dynamický OPML',
 			'_' => 'Dynamický OPML',
-			'help' => 'Zadejte adresu URL na <a href="http://opml.org/" target="_blank">OPML soubor</a> k dynamickému naplnění této kategorie RSS kanály',
+			'help' => 'Zadejte adresu URL na <a href="https://opml.org/" target="_blank">OPML soubor</a> k dynamickému naplnění této kategorie RSS kanály',
 		),
 		),
 		'empty' => 'Vyprázdit kategorii',
 		'empty' => 'Vyprázdit kategorii',
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',	// TODO
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',	// TODO
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Vlastní formát data a času',
 					'_' => 'Vlastní formát data a času',
-					'help' => 'Volitelně. Formát podporovaný funkcí <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> jako např.: <code>d-m-Y H:i:s</code>',
+					'help' => 'Volitelně. Formát podporovaný funkcí <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> jako např.: <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'datum položky',
 					'_' => 'datum položky',
-					'help' => 'Výsledek bude zpracován pomocí <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'Výsledek bude zpracován pomocí <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => 'název položky',
 					'_' => 'název položky',
-					'help' => 'Použijte zejména <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">osu XPath</a> <code>descendant::</code> jako např. <code>descendant::h2</code>',
+					'help' => 'Použijte zejména <a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">osu XPath</a> <code>descendant::</code> jako např. <code>descendant::h2</code>',
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => 'jedinečné ID položky',
 					'_' => 'jedinečné ID položky',
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Vlastní formát data a času',
 					'_' => 'Vlastní formát data a času',
-					'help' => 'Volitelně. Formát podporovaný funkcí <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> jako např.: <code>d-m-Y H:i:s</code>',
+					'help' => 'Volitelně. Formát podporovaný funkcí <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> jako např.: <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'datum položky',
 					'_' => 'datum položky',
-					'help' => 'Výsledek bude analyzován pomocí <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'Výsledek bude analyzován pomocí <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => 'název položky',
 				'item_title' => 'název položky',
 				'item_uid' => 'unikátní ID položky',
 				'item_uid' => 'unikátní ID položky',

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

@@ -176,7 +176,7 @@ return array(
 			'check_link' => 'API-Status prüfen: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'check_link' => 'API-Status prüfen: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'disabled' => 'Der API-Zugriff ist deaktiviert.',
 			'disabled' => 'Der API-Zugriff ist deaktiviert.',
 			'documentation_link' => 'Siehe die <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">Dokumentation und die Liste der bekannten Apps</a>',
 			'documentation_link' => 'Siehe die <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">Dokumentation und die Liste der bekannten Apps</a>',
-			'help' => 'Siehe <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>Dokumentation</a>',
+			'help' => 'Siehe <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>Dokumentation</a>',
 			'security_warning' => 'Verwenden Sie HTTPS. Das API-Passwort wird im Klartext übertragen und kann in Server-Logs erscheinen, wenn es per GET gesendet wird.',
 			'security_warning' => 'Verwenden Sie HTTPS. Das API-Passwort wird im Klartext übertragen und kann in Server-Logs erscheinen, wenn es per GET gesendet wird.',
 		),
 		),
 		'change_password' => 'Passwort ändern',
 		'change_password' => 'Passwort ändern',

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

@@ -26,7 +26,7 @@ return array(
 		'archiving' => 'Archivierung',
 		'archiving' => 'Archivierung',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => 'Dynamisches OPML',
 			'_' => 'Dynamisches OPML',
-			'help' => 'URL zu einer <a href="http://opml.org/" target="_blank">OPML Datei</a>, um die Kategorie dynamisch mit Feeds zu befüllen',
+			'help' => 'URL zu einer <a href="https://opml.org/" target="_blank">OPML Datei</a>, um die Kategorie dynamisch mit Feeds zu befüllen',
 		),
 		),
 		'empty' => 'Leere Kategorie',
 		'empty' => 'Leere Kategorie',
 		'error' => 'Diese dynamische OPML-Kategorie hat ein Problem. Prüfen Sie, ob die OPML-URL noch erreichbar ist und die maximale Anzahl an Feeds pro Nutzer nicht überschritten ist.',
 		'error' => 'Diese dynamische OPML-Kategorie hat ein Problem. Prüfen Sie, ob die OPML-URL noch erreichbar ist und die maximale Anzahl an Feeds pro Nutzer nicht überschritten ist.',
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Benutzerdefiniertes Datum/Zeit-Format',
 					'_' => 'Benutzerdefiniertes Datum/Zeit-Format',
-					'help' => 'Optional. Ein Format unterstützt von <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>, wie zum Beispiel <code>d-m-Y H:i:s</code>',
+					'help' => 'Optional. Ein Format unterstützt von <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>, wie zum Beispiel <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'Artikel-Datum',
 					'_' => 'Artikel-Datum',
-					'help' => 'Das Ergebnis wird durch <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a> geparst',
+					'help' => 'Das Ergebnis wird durch <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a> geparst',
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => 'Artikel-Titel',
 					'_' => 'Artikel-Titel',
-					'help' => 'Insbesondere <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">XPath axis</a> <code>descendant::</code> nutzen, wie z.B. <code>descendant::h2</code>',
+					'help' => 'Insbesondere <a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">XPath axis</a> <code>descendant::</code> nutzen, wie z.B. <code>descendant::h2</code>',
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => 'Eindeutige ID des Artikels',
 					'_' => 'Eindeutige ID des Artikels',
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Benutzerdefiniertes Datum/Zeit-Format',
 					'_' => 'Benutzerdefiniertes Datum/Zeit-Format',
-					'help' => 'Optional. Format, das von <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> unterstützt wird, wie z.B. <code>d-m-Y H:i:s</code>',
+					'help' => 'Optional. Format, das von <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> unterstützt wird, wie z.B. <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'Datum des Eintrags',
 					'_' => 'Datum des Eintrags',
-					'help' => 'Das Ergebnis wird von <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a> geparst.',
+					'help' => 'Das Ergebnis wird von <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a> geparst.',
 				),
 				),
 				'item_title' => 'Titel des Eintrags',
 				'item_title' => 'Titel des Eintrags',
 				'item_uid' => 'Eindeutige ID des Eintrags',
 				'item_uid' => 'Eindeutige ID des Eintrags',

+ 1 - 1
app/i18n/el/conf.php

@@ -176,7 +176,7 @@ return array(
 			'check_link' => 'Ελέγξτε την κατάσταση του API μέσω: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'check_link' => 'Ελέγξτε την κατάσταση του API μέσω: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'disabled' => 'Η πρόσβαση στο API είναι απενεργοποιημένη.',
 			'disabled' => 'Η πρόσβαση στο API είναι απενεργοποιημένη.',
 			'documentation_link' => 'Δείτε την <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">τεκμηρίωση και τη λίστα γνωστών εφαρμογών</a>',
 			'documentation_link' => 'Δείτε την <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">τεκμηρίωση και τη λίστα γνωστών εφαρμογών</a>',
-			'help' => 'Δείτε την <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>τεκμηρίωση</a>',
+			'help' => 'Δείτε την <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>τεκμηρίωση</a>',
 			'security_warning' => 'Χρησιμοποιήστε HTTPS. Ο κωδικός πρόσβασης API μεταδίδεται σε καθαρό κείμενο και μπορεί να εμφανίζεται στα αρχεία καταγραφής του διακομιστή αν αποσταλεί μέσω GET.',
 			'security_warning' => 'Χρησιμοποιήστε HTTPS. Ο κωδικός πρόσβασης API μεταδίδεται σε καθαρό κείμενο και μπορεί να εμφανίζεται στα αρχεία καταγραφής του διακομιστή αν αποσταλεί μέσω GET.',
 		),
 		),
 		'change_password' => 'Αλλαγή κωδικού πρόσβασης',
 		'change_password' => 'Αλλαγή κωδικού πρόσβασης',

+ 6 - 6
app/i18n/el/sub.php

@@ -26,7 +26,7 @@ return array(
 		'archiving' => 'Archiving',	// TODO
 		'archiving' => 'Archiving',	// TODO
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => 'Dynamic OPML',	// TODO
 			'_' => 'Dynamic OPML',	// TODO
-			'help' => 'Provide the URL to an <a href="http://opml.org/" target="_blank">OPML file</a> to dynamically populate this category with feeds',	// TODO
+			'help' => 'Provide the URL to an <a href="https://opml.org/" target="_blank">OPML file</a> to dynamically populate this category with feeds',	// TODO
 		),
 		),
 		'empty' => 'Empty category',	// TODO
 		'empty' => 'Empty category',	// TODO
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',	// TODO
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',	// TODO
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Custom date/time format',	// TODO
 					'_' => 'Custom date/time format',	// TODO
-					'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>',	// TODO
+					'help' => 'Optional. A format supported by <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>',	// TODO
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'item date',	// TODO
 					'_' => 'item date',	// TODO
-					'help' => 'The result will be parsed by <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',	// TODO
+					'help' => 'The result will be parsed by <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',	// TODO
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => 'item title',	// TODO
 					'_' => 'item title',	// TODO
-					'help' => 'Use in particular the <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">XPath axis</a> <code>descendant::</code> like <code>descendant::h2</code>',	// TODO
+					'help' => 'Use in particular the <a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">XPath axis</a> <code>descendant::</code> like <code>descendant::h2</code>',	// TODO
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => 'item unique ID',	// TODO
 					'_' => 'item unique ID',	// TODO
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Custom date/time format',	// TODO
 					'_' => 'Custom date/time format',	// TODO
-					'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>',	// TODO
+					'help' => 'Optional. A format supported by <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>',	// TODO
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'item date',	// TODO
 					'_' => 'item date',	// TODO
-					'help' => 'The result will be parsed by <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',	// TODO
+					'help' => 'The result will be parsed by <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',	// TODO
 				),
 				),
 				'item_title' => 'item title',	// TODO
 				'item_title' => 'item title',	// TODO
 				'item_uid' => 'item unique ID',	// TODO
 				'item_uid' => 'item unique ID',	// TODO

+ 1 - 1
app/i18n/en-US/conf.php

@@ -176,7 +176,7 @@ return array(
 			'check_link' => 'Check API status via: <kbd><a href="../api/" target="_blank">%s</a></kbd>',	// IGNORE
 			'check_link' => 'Check API status via: <kbd><a href="../api/" target="_blank">%s</a></kbd>',	// IGNORE
 			'disabled' => 'The API access is disabled.',	// IGNORE
 			'disabled' => 'The API access is disabled.',	// IGNORE
 			'documentation_link' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentation and list of known apps</a>',	// IGNORE
 			'documentation_link' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentation and list of known apps</a>',	// IGNORE
-			'help' => 'See <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentation</a>',	// IGNORE
+			'help' => 'See <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentation</a>',	// IGNORE
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// IGNORE
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// IGNORE
 		),
 		),
 		'change_password' => 'Change password',	// IGNORE
 		'change_password' => 'Change password',	// IGNORE

+ 6 - 6
app/i18n/en-US/sub.php

@@ -26,7 +26,7 @@ return array(
 		'archiving' => 'Archiving',	// IGNORE
 		'archiving' => 'Archiving',	// IGNORE
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => 'Dynamic OPML',	// IGNORE
 			'_' => 'Dynamic OPML',	// IGNORE
-			'help' => 'Provide the URL to an <a href="http://opml.org/" target="_blank">OPML file</a> to dynamically populate this category with feeds',	// IGNORE
+			'help' => 'Provide the URL to an <a href="https://opml.org/" target="_blank">OPML file</a> to dynamically populate this category with feeds',	// IGNORE
 		),
 		),
 		'empty' => 'Empty category',	// IGNORE
 		'empty' => 'Empty category',	// IGNORE
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',	// IGNORE
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',	// IGNORE
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Custom date/time format',	// IGNORE
 					'_' => 'Custom date/time format',	// IGNORE
-					'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>',	// IGNORE
+					'help' => 'Optional. A format supported by <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>',	// IGNORE
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'item date',	// IGNORE
 					'_' => 'item date',	// IGNORE
-					'help' => 'The result will be parsed by <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',	// IGNORE
+					'help' => 'The result will be parsed by <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',	// IGNORE
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => 'item title',	// IGNORE
 					'_' => 'item title',	// IGNORE
-					'help' => 'Use in particular the <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">XPath axis</a> <code>descendant::</code> like <code>descendant::h2</code>',	// IGNORE
+					'help' => 'Use in particular the <a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">XPath axis</a> <code>descendant::</code> like <code>descendant::h2</code>',	// IGNORE
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => 'item unique ID',	// IGNORE
 					'_' => 'item unique ID',	// IGNORE
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Custom date/time format',	// IGNORE
 					'_' => 'Custom date/time format',	// IGNORE
-					'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>',	// IGNORE
+					'help' => 'Optional. A format supported by <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>',	// IGNORE
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'item date',	// IGNORE
 					'_' => 'item date',	// IGNORE
-					'help' => 'The result will be parsed by <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',	// IGNORE
+					'help' => 'The result will be parsed by <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',	// IGNORE
 				),
 				),
 				'item_title' => 'item title',	// IGNORE
 				'item_title' => 'item title',	// IGNORE
 				'item_uid' => 'item unique ID',	// IGNORE
 				'item_uid' => 'item unique ID',	// IGNORE

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

@@ -176,7 +176,7 @@ return array(
 			'check_link' => 'Check API status via: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'check_link' => 'Check API status via: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'disabled' => 'The API access is disabled.',
 			'disabled' => 'The API access is disabled.',
 			'documentation_link' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentation and list of known apps</a>',
 			'documentation_link' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentation and list of known apps</a>',
-			'help' => 'See <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentation</a>',
+			'help' => 'See <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentation</a>',
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',
 		),
 		),
 		'change_password' => 'Change password',
 		'change_password' => 'Change password',

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

@@ -26,7 +26,7 @@ return array(
 		'archiving' => 'Archiving',
 		'archiving' => 'Archiving',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => 'Dynamic OPML',
 			'_' => 'Dynamic OPML',
-			'help' => 'Provide the URL to an <a href="http://opml.org/" target="_blank">OPML file</a> to dynamically populate this category with feeds',
+			'help' => 'Provide the URL to an <a href="https://opml.org/" target="_blank">OPML file</a> to dynamically populate this category with feeds',
 		),
 		),
 		'empty' => 'Empty category',
 		'empty' => 'Empty category',
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Custom date/time format',
 					'_' => 'Custom date/time format',
-					'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>',
+					'help' => 'Optional. A format supported by <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'item date',
 					'_' => 'item date',
-					'help' => 'The result will be parsed by <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'The result will be parsed by <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => 'item title',
 					'_' => 'item title',
-					'help' => 'Use in particular the <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">XPath axis</a> <code>descendant::</code> like <code>descendant::h2</code>',
+					'help' => 'Use in particular the <a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">XPath axis</a> <code>descendant::</code> like <code>descendant::h2</code>',
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => 'item unique ID',
 					'_' => 'item unique ID',
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Custom date/time format',
 					'_' => 'Custom date/time format',
-					'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>',
+					'help' => 'Optional. A format supported by <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'item date',
 					'_' => 'item date',
-					'help' => 'The result will be parsed by <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'The result will be parsed by <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => 'item title',
 				'item_title' => 'item title',
 				'item_uid' => 'item unique ID',
 				'item_uid' => 'item unique ID',

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

@@ -176,7 +176,7 @@ return array(
 			'check_link' => 'Comprobar estado de la API en: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'check_link' => 'Comprobar estado de la API en: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'disabled' => 'El acceso a la API está deshabilitado.',
 			'disabled' => 'El acceso a la API está deshabilitado.',
 			'documentation_link' => 'Ver la <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentación y lista de aplicaciones conocidas</a>',
 			'documentation_link' => 'Ver la <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentación y lista de aplicaciones conocidas</a>',
-			'help' => 'Ver <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentación</a>',
+			'help' => 'Ver <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentación</a>',
 			'security_warning' => 'Utiliza HTTPS. La contraseña de la API se transmite en texto claro y podría aparecer en los registros del servidor si se envía mediante GET.',
 			'security_warning' => 'Utiliza HTTPS. La contraseña de la API se transmite en texto claro y podría aparecer en los registros del servidor si se envía mediante GET.',
 		),
 		),
 		'change_password' => 'Cambiar contraseña',
 		'change_password' => 'Cambiar contraseña',

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

@@ -26,7 +26,7 @@ return array(
 		'archiving' => 'Archivo',
 		'archiving' => 'Archivo',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => 'OPML dinámico',
 			'_' => 'OPML dinámico',
-			'help' => 'Provee la URL a un <a href=http://opml.org/ target="_blank">archivo OPML</a> para llenar dinámicamente esta categoría con fuentes',
+			'help' => 'Provee la URL a un <a href=https://opml.org/ target="_blank">archivo OPML</a> para llenar dinámicamente esta categoría con fuentes',
 		),
 		),
 		'empty' => 'Vaciar categoría',
 		'empty' => 'Vaciar categoría',
 		'error' => 'Esta categoría OPML dinámica ha encontrado un problema. Comprueba que la URL del OPML sigue accesible y que no se ha superado el número máximo de fuentes por usuario.',
 		'error' => 'Esta categoría OPML dinámica ha encontrado un problema. Comprueba que la URL del OPML sigue accesible y que no se ha superado el número máximo de fuentes por usuario.',
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Formato personalizado de fecha y hora',
 					'_' => 'Formato personalizado de fecha y hora',
-					'help' => 'Opcional. Un formato compatible con <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> como <code>d-m-Y H:i:s</code>',
+					'help' => 'Opcional. Un formato compatible con <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> como <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'fecha del elemento',
 					'_' => 'fecha del elemento',
-					'help' => 'El resultado será analizado por <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'El resultado será analizado por <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => 'título del elemento',
 					'_' => 'título del elemento',
-					'help' => 'Usar <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">eje XPath</a> <code>descendant::</code> como <code>descendant::h2</code>',
+					'help' => 'Usar <a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">eje XPath</a> <code>descendant::</code> como <code>descendant::h2</code>',
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => 'Identificador único del elemento',
 					'_' => 'Identificador único del elemento',
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'fecha/hora personalizada',
 					'_' => 'fecha/hora personalizada',
-					'help' => 'Opcional. Formato soportado por <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> como <code>d-m-Y H:i:s</code>',
+					'help' => 'Opcional. Formato soportado por <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> como <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'fecha del item',
 					'_' => 'fecha del item',
-					'help' => 'El resultado será analizado por <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'El resultado será analizado por <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => 'título del item',
 				'item_title' => 'título del item',
 				'item_uid' => 'ID único del item',
 				'item_uid' => 'ID único del item',

+ 1 - 1
app/i18n/fa/conf.php

@@ -176,7 +176,7 @@ return array(
 			'check_link' => 'بررسی وضعیت از طریق: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'check_link' => 'بررسی وضعیت از طریق: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'disabled' => 'غیرفعال',
 			'disabled' => 'غیرفعال',
 			'documentation_link' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">مستندات و فهرست برنامه‌های شناخته‌شده</a>',	// IGNORE
 			'documentation_link' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">مستندات و فهرست برنامه‌های شناخته‌شده</a>',	// IGNORE
-			'help' => 'See <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentation</a>',	// IGNORE
+			'help' => 'See <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentation</a>',	// IGNORE
 			'security_warning' => 'از HTTPS استفاده کنید. رمز عبور API به صورت متن ساده ارسال می‌شود و اگر با GET فرستاده شود ممکن است در لاگ‌های سرور ثبت شود.',
 			'security_warning' => 'از HTTPS استفاده کنید. رمز عبور API به صورت متن ساده ارسال می‌شود و اگر با GET فرستاده شود ممکن است در لاگ‌های سرور ثبت شود.',
 		),
 		),
 		'change_password' => 'تغییر رمز عبور',
 		'change_password' => 'تغییر رمز عبور',

+ 6 - 6
app/i18n/fa/sub.php

@@ -26,7 +26,7 @@ return array(
 		'archiving' => ' بایگانی',
 		'archiving' => ' بایگانی',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => ' OPML پویا',
 			'_' => ' OPML پویا',
-			'help' => ' URL را به <a href="http://opml.org/" target="_blank">فایل OPML</a> ارائه دهید تا به صورت پویا این دسته با فیدها پر شود.',
+			'help' => ' URL را به <a href="https://opml.org/" target="_blank">فایل OPML</a> ارائه دهید تا به صورت پویا این دسته با فیدها پر شود.',
 		),
 		),
 		'empty' => ' دسته خالی',
 		'empty' => ' دسته خالی',
 		'error' => 'این دسته OPML پویا با مشکل روبه‌رو شده است. بررسی کنید که URL فایل OPML هنوز در دسترس باشد و حداکثر تعداد فید برای هر کاربر رد نشده باشد.',
 		'error' => 'این دسته OPML پویا با مشکل روبه‌رو شده است. بررسی کنید که URL فایل OPML هنوز در دسترس باشد و حداکثر تعداد فید برای هر کاربر رد نشده باشد.',
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => ' فرمت تاریخ/زمان سفارشی',
 					'_' => ' فرمت تاریخ/زمان سفارشی',
-					'help' => 'اختیاری. قالبی که توسط <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> پشتیبانی می‌شود، مانند <code>d-m-Y H:i:s</code>',
+					'help' => 'اختیاری. قالبی که توسط <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> پشتیبانی می‌شود، مانند <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => ' تاریخ مورد',
 					'_' => ' تاریخ مورد',
-					'help' => ' نتیجه با <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a> تجزیه خواهد شد',
+					'help' => ' نتیجه با <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a> تجزیه خواهد شد',
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => ' عنوان مورد',
 					'_' => ' عنوان مورد',
-					'help' => 'به طور مشخص از <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">محور XPath</a> <code>descendant::</code> استفاده کنید؛ مانند <code>descendant::h2</code>',
+					'help' => 'به طور مشخص از <a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">محور XPath</a> <code>descendant::</code> استفاده کنید؛ مانند <code>descendant::h2</code>',
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => ' شناسه منحصر به فرد مورد',
 					'_' => ' شناسه منحصر به فرد مورد',
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'قالب تاریخ/زمان سفارشی',
 					'_' => 'قالب تاریخ/زمان سفارشی',
-					'help' => 'اختیاری. فرمتی که توسط <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> پشتیبانی می‌شود، مانند <code>d-m-Y H:i:s</code>',
+					'help' => 'اختیاری. فرمتی که توسط <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> پشتیبانی می‌شود، مانند <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'تاریخ آیتم',
 					'_' => 'تاریخ آیتم',
-					'help' => 'نتیجه توسط <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a> تجزیه و تحلیل خواهد شد.',
+					'help' => 'نتیجه توسط <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a> تجزیه و تحلیل خواهد شد.',
 				),
 				),
 				'item_title' => 'عنوان مورد',
 				'item_title' => 'عنوان مورد',
 				'item_uid' => 'شناسه یکتای آیتم',
 				'item_uid' => 'شناسه یکتای آیتم',

+ 1 - 1
app/i18n/fi/conf.php

@@ -176,7 +176,7 @@ return array(
 			'check_link' => 'Tarkista API:n tila: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'check_link' => 'Tarkista API:n tila: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'disabled' => 'API on poistettu käytöstä.',
 			'disabled' => 'API on poistettu käytöstä.',
 			'documentation_link' => 'Katso lisätietoja <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">ohjeesta ja tunnettujen sovellusten luettelosta</a>',
 			'documentation_link' => 'Katso lisätietoja <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">ohjeesta ja tunnettujen sovellusten luettelosta</a>',
-			'help' => 'Katso <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>ohje</a>',
+			'help' => 'Katso <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>ohje</a>',
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// TODO
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// TODO
 		),
 		),
 		'change_password' => 'Vaihda salasana',
 		'change_password' => 'Vaihda salasana',

+ 6 - 6
app/i18n/fi/sub.php

@@ -26,7 +26,7 @@ return array(
 		'archiving' => 'Arkistointi',
 		'archiving' => 'Arkistointi',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => 'Dynaaminen OPML',
 			'_' => 'Dynaaminen OPML',
-			'help' => 'Voit tuoda syötteet tähän luokkaan automaattisesti antamalla <a href="http://opml.org/" target="_blank">OPML-tiedoston</a> URL-osoitteen',
+			'help' => 'Voit tuoda syötteet tähän luokkaan automaattisesti antamalla <a href="https://opml.org/" target="_blank">OPML-tiedoston</a> URL-osoitteen',
 		),
 		),
 		'empty' => 'Tyhjä luokka',
 		'empty' => 'Tyhjä luokka',
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',	// TODO
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',	// TODO
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Mukautettu päivämäärän/kellonajan muoto',
 					'_' => 'Mukautettu päivämäärän/kellonajan muoto',
-					'help' => 'Valinnainen. <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>-funktion tukema muoto, kuten <code>d-m-Y H:i:s</code>',
+					'help' => 'Valinnainen. <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>-funktion tukema muoto, kuten <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'tekstin päivämäärä',
 					'_' => 'tekstin päivämäärä',
-					'help' => '<a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>-funktio jäsentää tuloksen',
+					'help' => '<a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>-funktio jäsentää tuloksen',
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => 'tekstin otsikko',
 					'_' => 'tekstin otsikko',
-					'help' => 'Käytä erityisesti <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">XPath-siirtymää</a> <code>descendant::</code>, esimerkiksi <code>descendant::h2</code>',
+					'help' => 'Käytä erityisesti <a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">XPath-siirtymää</a> <code>descendant::</code>, esimerkiksi <code>descendant::h2</code>',
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => 'tekstin yksilöllinen tunnus',
 					'_' => 'tekstin yksilöllinen tunnus',
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Mukautettu päivämäärän/kellonajan muoto',
 					'_' => 'Mukautettu päivämäärän/kellonajan muoto',
-					'help' => 'Valinnainen. <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>-funktion tukema muoto, kuten <code>d-m-Y H:i:s</code>',
+					'help' => 'Valinnainen. <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>-funktion tukema muoto, kuten <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'tekstin päivämäärä',
 					'_' => 'tekstin päivämäärä',
-					'help' => '<a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>-funktio jäsentää tuloksen',
+					'help' => '<a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>-funktio jäsentää tuloksen',
 				),
 				),
 				'item_title' => 'tekstin otsikko',
 				'item_title' => 'tekstin otsikko',
 				'item_uid' => 'tekstin yksilöllinen tunnus',
 				'item_uid' => 'tekstin yksilöllinen tunnus',

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

@@ -26,7 +26,7 @@ return array(
 		'archiving' => 'Archivage',
 		'archiving' => 'Archivage',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => 'OPML dynamique',
 			'_' => 'OPML dynamique',
-			'help' => 'Fournir l’URL d’un <a href="http://opml.org/" target="_blank">fichier OPML</a> qui donnera dynamiquement la liste des flux de cette catégorie',
+			'help' => 'Fournir l’URL d’un <a href="https://opml.org/" target="_blank">fichier OPML</a> qui donnera dynamiquement la liste des flux de cette catégorie',
 		),
 		),
 		'empty' => 'Catégorie vide',
 		'empty' => 'Catégorie vide',
 		'error' => 'Cette catégorie OPML dynamique a rencontré un problème. Vérifiez que l’URL de l’OPML est toujours accessible et que le nombre maximum de flux par utilisateur n’a pas été dépassé.',
 		'error' => 'Cette catégorie OPML dynamique a rencontré un problème. Vérifiez que l’URL de l’OPML est toujours accessible et que le nombre maximum de flux par utilisateur n’a pas été dépassé.',
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Format personnalisé pour interpréter la date',
 					'_' => 'Format personnalisé pour interpréter la date',
-					'help' => 'Optionnel. Un format supporté par <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> comme <code>d-m-Y H:i:s</code>',
+					'help' => 'Optionnel. Un format supporté par <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> comme <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'date de l’article',
 					'_' => 'date de l’article',
-					'help' => 'Le résultat sera passé à la fonction <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'Le résultat sera passé à la fonction <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => 'titre de l’article',
 					'_' => 'titre de l’article',
-					'help' => 'Utiliser en particulier l’<a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">axe XPath</a> <code>descendant::</code> comme <code>descendant::h2</code>',
+					'help' => 'Utiliser en particulier l’<a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">axe XPath</a> <code>descendant::</code> comme <code>descendant::h2</code>',
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => 'identifiant unique de l’article',
 					'_' => 'identifiant unique de l’article',
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Format personnalisé pour interpréter la date',
 					'_' => 'Format personnalisé pour interpréter la date',
-					'help' => 'Optionnel. Un format supporté par <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> comme <code>d-m-Y H:i:s</code>',
+					'help' => 'Optionnel. Un format supporté par <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> comme <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'date de l’article',
 					'_' => 'date de l’article',
-					'help' => 'Le résultat sera passé à la fonction <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'Le résultat sera passé à la fonction <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => 'titre de l’article',
 				'item_title' => 'titre de l’article',
 				'item_uid' => 'identifiant unique de l’article',
 				'item_uid' => 'identifiant unique de l’article',

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

@@ -176,7 +176,7 @@ return array(
 			'check_link' => 'Check API status via: <kbd><a href="../api/" target="_blank">%s</a></kbd>',	// TODO
 			'check_link' => 'Check API status via: <kbd><a href="../api/" target="_blank">%s</a></kbd>',	// TODO
 			'disabled' => 'The API access is disabled.',	// TODO
 			'disabled' => 'The API access is disabled.',	// TODO
 			'documentation_link' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentation and list of known apps</a>',	// TODO
 			'documentation_link' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentation and list of known apps</a>',	// TODO
-			'help' => 'See <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentation</a>',	// TODO
+			'help' => 'See <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentation</a>',	// TODO
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// TODO
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// TODO
 		),
 		),
 		'change_password' => 'Change password',	// TODO
 		'change_password' => 'Change password',	// TODO

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

@@ -26,7 +26,7 @@ return array(
 		'archiving' => 'ארכוב',
 		'archiving' => 'ארכוב',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => 'Dynamic OPML',	// TODO
 			'_' => 'Dynamic OPML',	// TODO
-			'help' => 'Provide the URL to an <a href="http://opml.org/" target="_blank">OPML file</a> to dynamically populate this category with feeds',	// TODO
+			'help' => 'Provide the URL to an <a href="https://opml.org/" target="_blank">OPML file</a> to dynamically populate this category with feeds',	// TODO
 		),
 		),
 		'empty' => 'Empty category',	// TODO
 		'empty' => 'Empty category',	// TODO
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',	// TODO
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',	// TODO
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Custom date/time format',	// TODO
 					'_' => 'Custom date/time format',	// TODO
-					'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>',	// TODO
+					'help' => 'Optional. A format supported by <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>',	// TODO
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'item date',	// TODO
 					'_' => 'item date',	// TODO
-					'help' => 'The result will be parsed by <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',	// TODO
+					'help' => 'The result will be parsed by <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',	// TODO
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => 'item title',	// TODO
 					'_' => 'item title',	// TODO
-					'help' => 'Use in particular the <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">XPath axis</a> <code>descendant::</code> like <code>descendant::h2</code>',	// TODO
+					'help' => 'Use in particular the <a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">XPath axis</a> <code>descendant::</code> like <code>descendant::h2</code>',	// TODO
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => 'item unique ID',	// TODO
 					'_' => 'item unique ID',	// TODO
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Custom date/time format',	// TODO
 					'_' => 'Custom date/time format',	// TODO
-					'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>',	// TODO
+					'help' => 'Optional. A format supported by <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>',	// TODO
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'item date',	// TODO
 					'_' => 'item date',	// TODO
-					'help' => 'The result will be parsed by <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',	// TODO
+					'help' => 'The result will be parsed by <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',	// TODO
 				),
 				),
 				'item_title' => 'item title',	// TODO
 				'item_title' => 'item title',	// TODO
 				'item_uid' => 'item unique ID',	// TODO
 				'item_uid' => 'item unique ID',	// TODO

+ 1 - 1
app/i18n/hu/conf.php

@@ -176,7 +176,7 @@ return array(
 			'check_link' => 'API státusz ellenőrzése: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'check_link' => 'API státusz ellenőrzése: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'disabled' => 'Az API hozzáférés ki van kapcsolva.',
 			'disabled' => 'Az API hozzáférés ki van kapcsolva.',
 			'documentation_link' => 'Lásd az <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">ismert appok dokumentációját és listáját</a>',
 			'documentation_link' => 'Lásd az <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">ismert appok dokumentációját és listáját</a>',
-			'help' => 'Lásd a <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>dokumentációt</a>',
+			'help' => 'Lásd a <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>dokumentációt</a>',
 			'security_warning' => 'Használj HTTPS-t. Az API-jelszó titkosítatlanul kerül továbbításra, és GET-tel küldve megjelenhet a szervernaplókban.',
 			'security_warning' => 'Használj HTTPS-t. Az API-jelszó titkosítatlanul kerül továbbításra, és GET-tel küldve megjelenhet a szervernaplókban.',
 		),
 		),
 		'change_password' => 'Jelszó megváltoztatása',
 		'change_password' => 'Jelszó megváltoztatása',

+ 6 - 6
app/i18n/hu/sub.php

@@ -26,7 +26,7 @@ return array(
 		'archiving' => 'Archiválás',
 		'archiving' => 'Archiválás',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => 'Dinamikus OPML',
 			'_' => 'Dinamikus OPML',
-			'help' => 'Adj meg egy URL-t az <a href="http://opml.org/" target="_blank">OPML fájlhoz</a> hogy automatikusan kitöltődjön ez a kategória hírforrásokkal',
+			'help' => 'Adj meg egy URL-t az <a href="https://opml.org/" target="_blank">OPML fájlhoz</a> hogy automatikusan kitöltődjön ez a kategória hírforrásokkal',
 		),
 		),
 		'empty' => 'Üres kategória',
 		'empty' => 'Üres kategória',
 		'error' => 'Ez a dinamikus OPML kategória problémába ütközött. Ellenőrizze, hogy az OPML URL továbbra is elérhető-e, és hogy nem lépte-e túl a felhasználónkénti maximális hírfolyamszámot.',
 		'error' => 'Ez a dinamikus OPML kategória problémába ütközött. Ellenőrizze, hogy az OPML URL továbbra is elérhető-e, és hogy nem lépte-e túl a felhasználónkénti maximális hírfolyamszámot.',
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Egyedi dátum/idő formátum',
 					'_' => 'Egyedi dátum/idő formátum',
-					'help' => 'Opcionális. PHP által támogatott formátum <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> például <code>d-m-Y H:i:s</code>',
+					'help' => 'Opcionális. PHP által támogatott formátum <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> például <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'elem dátum',
 					'_' => 'elem dátum',
-					'help' => 'Az eredményt elemzi a <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'Az eredményt elemzi a <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => 'elem cím',
 					'_' => 'elem cím',
-					'help' => 'Használja az <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">XPath Axes</a> <code>descendant::</code> mint <code>descendant::h2</code>',
+					'help' => 'Használja az <a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">XPath Axes</a> <code>descendant::</code> mint <code>descendant::h2</code>',
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => 'elem egyedi ID',
 					'_' => 'elem egyedi ID',
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Egyedi dátum/idő formátum',
 					'_' => 'Egyedi dátum/idő formátum',
-					'help' => 'Opcionális. Egy a <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> funkció által támogatott formátum, például: <code>d-m-Y H:i:s</code>',
+					'help' => 'Opcionális. Egy a <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> funkció által támogatott formátum, például: <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'elem dátum',
 					'_' => 'elem dátum',
-					'help' => 'Az eredményt az <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a> php függvény fogja értelmezni',
+					'help' => 'Az eredményt az <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a> php függvény fogja értelmezni',
 				),
 				),
 				'item_title' => 'elem címe',
 				'item_title' => 'elem címe',
 				'item_uid' => 'elem egyedi azonosító ID',
 				'item_uid' => 'elem egyedi azonosító ID',

+ 1 - 1
app/i18n/id/conf.php

@@ -176,7 +176,7 @@ return array(
 			'check_link' => 'Periksa status API melalui: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'check_link' => 'Periksa status API melalui: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'disabled' => 'Akses API dinonaktifkan.',
 			'disabled' => 'Akses API dinonaktifkan.',
 			'documentation_link' => 'Lihat <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">dokumentasi dan daftar aplikasi yang diketahui</a>',
 			'documentation_link' => 'Lihat <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">dokumentasi dan daftar aplikasi yang diketahui</a>',
-			'help' => 'Lihat <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>dokumentasi</a>',
+			'help' => 'Lihat <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>dokumentasi</a>',
 			'security_warning' => 'Gunakan HTTPS. Kata sandi API dikirim dalam teks polos dan dapat muncul di log server jika dikirim melalui GET.',
 			'security_warning' => 'Gunakan HTTPS. Kata sandi API dikirim dalam teks polos dan dapat muncul di log server jika dikirim melalui GET.',
 		),
 		),
 		'change_password' => 'Ubah kata sandi',
 		'change_password' => 'Ubah kata sandi',

+ 6 - 6
app/i18n/id/sub.php

@@ -26,7 +26,7 @@ return array(
 		'archiving' => 'Pengarsipan',
 		'archiving' => 'Pengarsipan',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => 'OPML dinamis',
 			'_' => 'OPML dinamis',
-			'help' => 'Sediakan URL ke <a href="http://opml.org/" target="_blank">berkas OPML</a> untuk memasukkan umpan ke kategori ini secara dinamis',
+			'help' => 'Sediakan URL ke <a href="https://opml.org/" target="_blank">berkas OPML</a> untuk memasukkan umpan ke kategori ini secara dinamis',
 		),
 		),
 		'empty' => 'Kategori kosong',
 		'empty' => 'Kategori kosong',
 		'error' => 'Kategori OPML dinamis ini mengalami masalah. Periksa apakah URL OPML masih dapat dijangkau dan jumlah maksimum umpan per pengguna belum terlampaui.',
 		'error' => 'Kategori OPML dinamis ini mengalami masalah. Periksa apakah URL OPML masih dapat dijangkau dan jumlah maksimum umpan per pengguna belum terlampaui.',
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Format tanggal dan waktu kustom',
 					'_' => 'Format tanggal dan waktu kustom',
-					'help' => 'Opsional. Format yang didukung oleh <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> seperti <code>d-m-Y H:i:s</code>',
+					'help' => 'Opsional. Format yang didukung oleh <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> seperti <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'tanggal',
 					'_' => 'tanggal',
-					'help' => 'Hasil akan diproses oleh <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'Hasil akan diproses oleh <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => 'judul',
 					'_' => 'judul',
-					'help' => 'Gunakan khususnya <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">XPath axis</a> <code>descendant::</code> seperti <code>descendant::h2</code>',
+					'help' => 'Gunakan khususnya <a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">XPath axis</a> <code>descendant::</code> seperti <code>descendant::h2</code>',
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => 'ID unik',
 					'_' => 'ID unik',
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Format tanggal dan waktu kustom',
 					'_' => 'Format tanggal dan waktu kustom',
-					'help' => 'Opsional. Format yang didukung oleh <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> seperti <code>d-m-Y H:i:s</code>',
+					'help' => 'Opsional. Format yang didukung oleh <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> seperti <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'tanggal',
 					'_' => 'tanggal',
-					'help' => 'Hasil akan diproses oleh <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'Hasil akan diproses oleh <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => 'judul',
 				'item_title' => 'judul',
 				'item_uid' => 'ID unik',
 				'item_uid' => 'ID unik',

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

@@ -176,7 +176,7 @@ return array(
 			'check_link' => 'Verificare lo stato dell’API tramite: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'check_link' => 'Verificare lo stato dell’API tramite: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'disabled' => 'L’accesso all’API è disabilitato.',
 			'disabled' => 'L’accesso all’API è disabilitato.',
 			'documentation_link' => 'Vedi la <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentazione e l’elenco delle applicazioni</a>',
 			'documentation_link' => 'Vedi la <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentazione e l’elenco delle applicazioni</a>',
-			'help' => 'leggi la <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentazione</a>',
+			'help' => 'leggi la <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentazione</a>',
 			'security_warning' => 'Usa HTTPS. La password dell’API viene trasmessa in chiaro e, se inviata tramite GET, potrebbe comparire nei log del server.',
 			'security_warning' => 'Usa HTTPS. La password dell’API viene trasmessa in chiaro e, se inviata tramite GET, potrebbe comparire nei log del server.',
 		),
 		),
 		'change_password' => 'Modifica password',
 		'change_password' => 'Modifica password',

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

@@ -26,7 +26,7 @@ return array(
 		'archiving' => 'Archiviazione',
 		'archiving' => 'Archiviazione',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => 'OPML dinamico',
 			'_' => 'OPML dinamico',
-			'help' => 'Fornisci l’URL ad un <a href="http://opml.org/" target="_blank">file OPML</a> per popolare dinamicamente questa categoria con i feed',
+			'help' => 'Fornisci l’URL ad un <a href="https://opml.org/" target="_blank">file OPML</a> per popolare dinamicamente questa categoria con i feed',
 		),
 		),
 		'empty' => 'Categoria vuota',
 		'empty' => 'Categoria vuota',
 		'error' => 'Questa categoria OPML dinamica ha riscontrato un problema. Verifica che l\'URL OPML sia ancora raggiungibile e che il numero massimo di feed per utente non sia stato superato.',
 		'error' => 'Questa categoria OPML dinamica ha riscontrato un problema. Verifica che l\'URL OPML sia ancora raggiungibile e che il numero massimo di feed per utente non sia stato superato.',
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Formato personalizzato di data/ora',
 					'_' => 'Formato personalizzato di data/ora',
-					'help' => 'Opzionale. Un formato supportato da <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>, ad esempio <code>d-m-Y H:i:s</code>',
+					'help' => 'Opzionale. Un formato supportato da <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>, ad esempio <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'oggetto data',
 					'_' => 'oggetto data',
-					'help' => 'Il risultato verrà analizzato da <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'Il risultato verrà analizzato da <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => 'oggetto titolo',
 					'_' => 'oggetto titolo',
-					'help' => 'Usa in particolare l’<a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">XPath axis</a> <code>descendant::</code> like <code>descendant::h2</code>',
+					'help' => 'Usa in particolare l’<a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">XPath axis</a> <code>descendant::</code> like <code>descendant::h2</code>',
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => 'oggetto ID univoco',
 					'_' => 'oggetto ID univoco',
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Formato data/ora personalizzato',
 					'_' => 'Formato data/ora personalizzato',
-					'help' => 'Facoltativo. Un formato supportato da <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> come <code>d-m-Y H:i:s</code>',
+					'help' => 'Facoltativo. Un formato supportato da <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> come <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'data elemento',
 					'_' => 'data elemento',
-					'help' => 'Il risultato sarà interpretato da <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'Il risultato sarà interpretato da <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => 'titolo elemento',
 				'item_title' => 'titolo elemento',
 				'item_uid' => 'ID univoco elemento',
 				'item_uid' => 'ID univoco elemento',

+ 1 - 1
app/i18n/ja/conf.php

@@ -176,7 +176,7 @@ return array(
 			'check_link' => 'APIステータスを確認する:<kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'check_link' => 'APIステータスを確認する:<kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'disabled' => 'APIアクセスは無効です。',
 			'disabled' => 'APIアクセスは無効です。',
 			'documentation_link' => '<a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">ドキュメントと既知のアプリ一覧</a>を参照してください',
 			'documentation_link' => '<a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">ドキュメントと既知のアプリ一覧</a>を参照してください',
-			'help' => '<a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">ドキュメント</a>を参照してください',
+			'help' => '<a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">ドキュメント</a>を参照してください',
 			'security_warning' => 'HTTPSを使用してください。APIパスワードは平文で送信され、GETで送信した場合はサーバーログに記録される可能性があります。',
 			'security_warning' => 'HTTPSを使用してください。APIパスワードは平文で送信され、GETで送信した場合はサーバーログに記録される可能性があります。',
 		),
 		),
 		'change_password' => 'パスワードを変更',
 		'change_password' => 'パスワードを変更',

+ 6 - 6
app/i18n/ja/sub.php

@@ -26,7 +26,7 @@ return array(
 		'archiving' => 'アーカイブ',
 		'archiving' => 'アーカイブ',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => '動的OPML',
 			'_' => '動的OPML',
-			'help' => 'このカテゴリに動的フィードを追加するための<a href="http://opml.org/" target="_blank">OPMLファイル</a>のURLを指定します。',
+			'help' => 'このカテゴリに動的フィードを追加するための<a href="https://opml.org/" target="_blank">OPMLファイル</a>のURLを指定します。',
 		),
 		),
 		'empty' => '空のカテゴリ',
 		'empty' => '空のカテゴリ',
 		'error' => '動的OPMLカテゴリで問題が発生しました。OPMLのURLに引き続きアクセスできることと、ユーザーごとの最大フィード数を超えていないことを確認してください。',
 		'error' => '動的OPMLカテゴリで問題が発生しました。OPMLのURLに引き続きアクセスできることと、ユーザーごとの最大フィード数を超えていないことを確認してください。',
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'カスタム日時フォーマット',
 					'_' => 'カスタム日時フォーマット',
-					'help' => 'オプションです。<a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>でサポートされている書式で、<code>d-m-Y H:i:s</code>のように指定します',
+					'help' => 'オプションです。<a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>でサポートされている書式で、<code>d-m-Y H:i:s</code>のように指定します',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => '日時',
 					'_' => '日時',
-					'help' => '結果は<a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>で解析されます',
+					'help' => '結果は<a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>で解析されます',
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => 'タイトル',
 					'_' => 'タイトル',
-					'help' => '特に<a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">XPath Axis</a>の <code>descendant::</code> を <code>descendant::h2</code> のように使います',
+					'help' => '特に<a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">XPath Axis</a>の <code>descendant::</code> を <code>descendant::h2</code> のように使います',
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => 'ユニークID',
 					'_' => 'ユニークID',
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'カスタム日時フォーマット',
 					'_' => 'カスタム日時フォーマット',
-					'help' => 'オプションです。<a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>でサポートされている書式で、<code>d-m-Y H:i:s</code>のように指定します',
+					'help' => 'オプションです。<a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>でサポートされている書式で、<code>d-m-Y H:i:s</code>のように指定します',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => '日時',
 					'_' => '日時',
-					'help' => '結果は<a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>で解析されます',
+					'help' => '結果は<a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>で解析されます',
 				),
 				),
 				'item_title' => 'タイトル',
 				'item_title' => 'タイトル',
 				'item_uid' => 'ユニークID',
 				'item_uid' => 'ユニークID',

+ 1 - 1
app/i18n/ko/conf.php

@@ -176,7 +176,7 @@ return array(
 			'check_link' => 'Check API status via: <kbd><a href="../api/" target="_blank">%s</a></kbd>',	// TODO
 			'check_link' => 'Check API status via: <kbd><a href="../api/" target="_blank">%s</a></kbd>',	// TODO
 			'disabled' => 'The API access is disabled.',	// TODO
 			'disabled' => 'The API access is disabled.',	// TODO
 			'documentation_link' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentation and list of known apps</a>',	// TODO
 			'documentation_link' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentation and list of known apps</a>',	// TODO
-			'help' => 'See <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentation</a>',	// TODO
+			'help' => 'See <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentation</a>',	// TODO
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// TODO
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// TODO
 		),
 		),
 		'change_password' => 'Change password',	// TODO
 		'change_password' => 'Change password',	// TODO

+ 6 - 6
app/i18n/ko/sub.php

@@ -26,7 +26,7 @@ return array(
 		'archiving' => '보관',
 		'archiving' => '보관',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => '동적 OPML',
 			'_' => '동적 OPML',
-			'help' => '이 카테코리에 피드를 동적으로 채우려면 <a href="http://opml.org/" target="_blank">OPML 파일</a> 의 URL을 제공해주세요',
+			'help' => '이 카테코리에 피드를 동적으로 채우려면 <a href="https://opml.org/" target="_blank">OPML 파일</a> 의 URL을 제공해주세요',
 		),
 		),
 		'empty' => '빈 카테고리',
 		'empty' => '빈 카테고리',
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',	// TODO
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',	// TODO
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => '사용자 지정 날짜/시간 형식',
 					'_' => '사용자 지정 날짜/시간 형식',
-					'help' => '선택 사항. <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>에서 지원하는 형식(예: <code>d-m-Y H:i:s</code>)',
+					'help' => '선택 사항. <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>에서 지원하는 형식(예: <code>d-m-Y H:i:s</code>)',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => '기사 날짜',
 					'_' => '기사 날짜',
-					'help' => '결과 값은 <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>에서 파싱한 값을 이용합니다.',
+					'help' => '결과 값은 <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>에서 파싱한 값을 이용합니다.',
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => '기사 제목',
 					'_' => '기사 제목',
-					'help' => '<code>descendant::h2</code> 같은 특정 <code>descendant::</code><a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">XPath 축</a>을 사용합니다.',
+					'help' => '<code>descendant::h2</code> 같은 특정 <code>descendant::</code><a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">XPath 축</a>을 사용합니다.',
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => '기사 UID',
 					'_' => '기사 UID',
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => '사용자 지정 날짜/시간 형식',
 					'_' => '사용자 지정 날짜/시간 형식',
-					'help' => '선택 사항. <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>에서 지원하는 형식(예: <code>d-m-Y H:i:s</code>)',
+					'help' => '선택 사항. <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>에서 지원하는 형식(예: <code>d-m-Y H:i:s</code>)',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => '기사 날짜',
 					'_' => '기사 날짜',
-					'help' => '결과 값은 <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>를 통해 파싱됩니다.',
+					'help' => '결과 값은 <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>를 통해 파싱됩니다.',
 				),
 				),
 				'item_title' => '기사 제목',
 				'item_title' => '기사 제목',
 				'item_uid' => '기사 고유 ID',
 				'item_uid' => '기사 고유 ID',

+ 1 - 1
app/i18n/lt/conf.php

@@ -176,7 +176,7 @@ return array(
 			'check_link' => 'Patikrinkite API būseną: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'check_link' => 'Patikrinkite API būseną: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'disabled' => 'API prieiga išjungta.',
 			'disabled' => 'API prieiga išjungta.',
 			'documentation_link' => 'Žr. <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">dokumentaciją ir žinomų programų sąrašą</a>',
 			'documentation_link' => 'Žr. <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">dokumentaciją ir žinomų programų sąrašą</a>',
-			'help' => 'Žr. <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>dokumentaciją</a>',
+			'help' => 'Žr. <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>dokumentaciją</a>',
 			'security_warning' => 'Naudokite HTTPS. API slaptažodis perduodamas atviru tekstu ir gali atsirasti serverio žurnaluose, jei siunčiamas per GET.',
 			'security_warning' => 'Naudokite HTTPS. API slaptažodis perduodamas atviru tekstu ir gali atsirasti serverio žurnaluose, jei siunčiamas per GET.',
 		),
 		),
 		'change_password' => 'Keisti slaptažodį',
 		'change_password' => 'Keisti slaptažodį',

+ 6 - 6
app/i18n/lt/sub.php

@@ -26,7 +26,7 @@ return array(
 		'archiving' => 'Archyvavimas',
 		'archiving' => 'Archyvavimas',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => 'Dinaminis OPML',
 			'_' => 'Dinaminis OPML',
-			'help' => 'Nurodykite <a href="http://opml.org/" target="_blank">OPML failo</a> URL, kad ši kategorija būtų dinamiškai užpildyta kanalais',
+			'help' => 'Nurodykite <a href="https://opml.org/" target="_blank">OPML failo</a> URL, kad ši kategorija būtų dinamiškai užpildyta kanalais',
 		),
 		),
 		'empty' => 'Ištuštinti kategoriją',
 		'empty' => 'Ištuštinti kategoriją',
 		'error' => 'Su šia dinaminio OPML kategorija iškilo problema. Patikrinkite, ar OPML URL vis dar pasiekiamas ir ar neviršytas didžiausias kanalų skaičius vienam naudotojui.',
 		'error' => 'Su šia dinaminio OPML kategorija iškilo problema. Patikrinkite, ar OPML URL vis dar pasiekiamas ir ar neviršytas didžiausias kanalų skaičius vienam naudotojui.',
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Pasirinktinis datos / laiko formatas',
 					'_' => 'Pasirinktinis datos / laiko formatas',
-					'help' => 'Neprivaloma. Formatas, palaikomas <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>, pvz. <code>d-m-Y H:i:s</code>',
+					'help' => 'Neprivaloma. Formatas, palaikomas <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>, pvz. <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'elemento data',
 					'_' => 'elemento data',
-					'help' => 'Rezultatą apdoros <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'Rezultatą apdoros <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => 'elemento pavadinimas',
 					'_' => 'elemento pavadinimas',
-					'help' => 'Ypač naudokite <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">XPath ašį</a> <code>descendant::</code>, pvz. <code>descendant::h2</code>',
+					'help' => 'Ypač naudokite <a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">XPath ašį</a> <code>descendant::</code>, pvz. <code>descendant::h2</code>',
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => 'unikalus elemento ID',
 					'_' => 'unikalus elemento ID',
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Pasirinktinis datos / laiko formatas',
 					'_' => 'Pasirinktinis datos / laiko formatas',
-					'help' => 'Neprivaloma. Formatas, palaikomas <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>, pvz. <code>d-m-Y H:i:s</code>',
+					'help' => 'Neprivaloma. Formatas, palaikomas <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>, pvz. <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'elemento data',
 					'_' => 'elemento data',
-					'help' => 'Rezultatą apdoros <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'Rezultatą apdoros <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => 'elemento pavadinimas',
 				'item_title' => 'elemento pavadinimas',
 				'item_uid' => 'unikalus elemento ID',
 				'item_uid' => 'unikalus elemento ID',

+ 1 - 1
app/i18n/lv/conf.php

@@ -176,7 +176,7 @@ return array(
 			'check_link' => 'Check API status via: <kbd><a href="../api/" target="_blank">%s</a></kbd>',	// TODO
 			'check_link' => 'Check API status via: <kbd><a href="../api/" target="_blank">%s</a></kbd>',	// TODO
 			'disabled' => 'The API access is disabled.',	// TODO
 			'disabled' => 'The API access is disabled.',	// TODO
 			'documentation_link' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentation and list of known apps</a>',	// TODO
 			'documentation_link' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentation and list of known apps</a>',	// TODO
-			'help' => 'See <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentation</a>',	// TODO
+			'help' => 'See <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentation</a>',	// TODO
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// TODO
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// TODO
 		),
 		),
 		'change_password' => 'Change password',	// TODO
 		'change_password' => 'Change password',	// TODO

+ 6 - 6
app/i18n/lv/sub.php

@@ -26,7 +26,7 @@ return array(
 		'archiving' => 'Arhivēšana',
 		'archiving' => 'Arhivēšana',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => 'Dinamisks OPML',
 			'_' => 'Dinamisks OPML',
-			'help' => 'Norādiet URL uz <a href="http://opml.org/" target="_blank">OPML failu</a>, lai dinamiski papildinātu šo kategoriju ar barotnēm.',
+			'help' => 'Norādiet URL uz <a href="https://opml.org/" target="_blank">OPML failu</a>, lai dinamiski papildinātu šo kategoriju ar barotnēm.',
 		),
 		),
 		'empty' => 'Tukša kategorija',
 		'empty' => 'Tukša kategorija',
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',	// TODO
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',	// TODO
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Pielāgotais datuma/laika formāts',
 					'_' => 'Pielāgotais datuma/laika formāts',
-					'help' => 'Pēc izvēles. <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> atbalstīts formāts, piemēram, <code>d-m-Y H:i:s</code>',
+					'help' => 'Pēc izvēles. <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> atbalstīts formāts, piemēram, <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'raksta datums',
 					'_' => 'raksta datums',
-					'help' => 'Rezultāts tiks analizēts ar <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'Rezultāts tiks analizēts ar <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => 'raksta tituls',
 					'_' => 'raksta tituls',
-					'help' => 'Īpaši izmantojiet <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">XPath axis</a> <code>descendant::</code>, piemēram, <code>descendant::h2</code>',
+					'help' => 'Īpaši izmantojiet <a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">XPath axis</a> <code>descendant::</code>, piemēram, <code>descendant::h2</code>',
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => 'raksta unikālais ID',
 					'_' => 'raksta unikālais ID',
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Pielāgotais datuma/laika formāts',
 					'_' => 'Pielāgotais datuma/laika formāts',
-					'help' => 'Pēc izvēles. Formāts, ko atbalsta <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> piemēram, <code>d-m-Y H:i:s</code>',
+					'help' => 'Pēc izvēles. Formāts, ko atbalsta <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> piemēram, <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'vienuma datums',
 					'_' => 'vienuma datums',
-					'help' => 'Rezultātu parsēs <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'Rezultātu parsēs <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => 'vienuma tituls',
 				'item_title' => 'vienuma tituls',
 				'item_uid' => 'vienuma unikālais ID',
 				'item_uid' => 'vienuma unikālais ID',

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

@@ -176,7 +176,7 @@ return array(
 			'check_link' => 'Controleer API-status via: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'check_link' => 'Controleer API-status via: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'disabled' => 'De API-toegang is uitgeschakeld.',
 			'disabled' => 'De API-toegang is uitgeschakeld.',
 			'documentation_link' => 'Zie de <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentatie en lijst met bekende apps</a>',
 			'documentation_link' => 'Zie de <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentatie en lijst met bekende apps</a>',
-			'help' => 'Zie <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentatie</a>',
+			'help' => 'Zie <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentatie</a>',
 			'security_warning' => 'Gebruik HTTPS. Het API-wachtwoord wordt als tekst verzonden en kan in serverlogs terechtkomen als het via GET wordt verzonden.',
 			'security_warning' => 'Gebruik HTTPS. Het API-wachtwoord wordt als tekst verzonden en kan in serverlogs terechtkomen als het via GET wordt verzonden.',
 		),
 		),
 		'change_password' => 'Wachtwoord wijzigen',
 		'change_password' => 'Wachtwoord wijzigen',

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

@@ -26,7 +26,7 @@ return array(
 		'archiving' => 'Archiveren',
 		'archiving' => 'Archiveren',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => 'Dynamische OPML',
 			'_' => 'Dynamische OPML',
-			'help' => 'Geef de URL naar een <a href="http://opml.org/" target="_blank">OPML-bestand</a> om deze categorie dynamisch met feeds te vullen',
+			'help' => 'Geef de URL naar een <a href="https://opml.org/" target="_blank">OPML-bestand</a> om deze categorie dynamisch met feeds te vullen',
 		),
 		),
 		'empty' => 'Lege categorie',
 		'empty' => 'Lege categorie',
 		'error' => 'Deze dynamische OPML-categorie heeft een probleem ondervonden. Controleer of de OPML-URL nog bereikbaar is en of het maximumaantal feeds per gebruiker niet is overschreden.',
 		'error' => 'Deze dynamische OPML-categorie heeft een probleem ondervonden. Controleer of de OPML-URL nog bereikbaar is en of het maximumaantal feeds per gebruiker niet is overschreden.',
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Aangepast datum-/tijdformaat',
 					'_' => 'Aangepast datum-/tijdformaat',
-					'help' => 'Optioneel. Een formaat ondersteund door <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> zoals <code>d-m-Y H:i:s</code>',
+					'help' => 'Optioneel. Een formaat ondersteund door <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> zoals <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'datum van bericht',
 					'_' => 'datum van bericht',
-					'help' => 'Het resultaat zal worden geparset door <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'Het resultaat zal worden geparset door <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => 'titel van bericht',
 					'_' => 'titel van bericht',
-					'help' => 'Gebruik vooral <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">XPath axis</a> <code>descendant::</code> zoals <code>descendant::h2</code>',
+					'help' => 'Gebruik vooral <a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">XPath axis</a> <code>descendant::</code> zoals <code>descendant::h2</code>',
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => 'uniek ID van bericht',
 					'_' => 'uniek ID van bericht',
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Aangepast datum-/tijdformaat',
 					'_' => 'Aangepast datum-/tijdformaat',
-					'help' => 'Optioneel. Een formaat ondersteund door <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> zoals <code>d-m-Y H:i:s</code>',
+					'help' => 'Optioneel. Een formaat ondersteund door <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> zoals <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'item-datum',
 					'_' => 'item-datum',
-					'help' => 'Het resultaat zal worden geparst door <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'Het resultaat zal worden geparst door <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => 'item-titel',
 				'item_title' => 'item-titel',
 				'item_uid' => 'uniek item-id',
 				'item_uid' => 'uniek item-id',

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

@@ -176,7 +176,7 @@ return array(
 			'check_link' => 'Check API status via: <kbd><a href="../api/" target="_blank">%s</a></kbd>',	// TODO
 			'check_link' => 'Check API status via: <kbd><a href="../api/" target="_blank">%s</a></kbd>',	// TODO
 			'disabled' => 'The API access is disabled.',	// TODO
 			'disabled' => 'The API access is disabled.',	// TODO
 			'documentation_link' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentation and list of known apps</a>',	// TODO
 			'documentation_link' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentation and list of known apps</a>',	// TODO
-			'help' => 'See <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentation</a>',	// TODO
+			'help' => 'See <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentation</a>',	// TODO
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// TODO
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// TODO
 		),
 		),
 		'change_password' => 'Change password',	// TODO
 		'change_password' => 'Change password',	// TODO

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

@@ -26,7 +26,7 @@ return array(
 		'archiving' => 'Archivar',
 		'archiving' => 'Archivar',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => 'OPML dinamic',
 			'_' => 'OPML dinamic',
-			'help' => 'Fornís l’URL per un <a href="http://opml.org/" target="_blank">fichièr OPML</a> per garnir automaticament aquesta categoria amb de flux',
+			'help' => 'Fornís l’URL per un <a href="https://opml.org/" target="_blank">fichièr OPML</a> per garnir automaticament aquesta categoria amb de flux',
 		),
 		),
 		'empty' => 'Categoria voida',
 		'empty' => 'Categoria voida',
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',	// TODO
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',	// TODO
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Custom date/time format',	// TODO
 					'_' => 'Custom date/time format',	// TODO
-					'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>',	// TODO
+					'help' => 'Optional. A format supported by <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>',	// TODO
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'item data',
 					'_' => 'item data',
-					'help' => 'Lo resultats serà formatat per la foncion <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'Lo resultats serà formatat per la foncion <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => 'item títol',
 					'_' => 'item títol',
-					'help' => 'Utilizatz en particular lo <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">XPath axis</a> <code>descendant::</code> coma <code>descendant::h2</code>',
+					'help' => 'Utilizatz en particular lo <a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">XPath axis</a> <code>descendant::</code> coma <code>descendant::h2</code>',
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => 'item ID unic',
 					'_' => 'item ID unic',
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Custom date/time format',	// TODO
 					'_' => 'Custom date/time format',	// TODO
-					'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>',	// TODO
+					'help' => 'Optional. A format supported by <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>',	// TODO
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'item date',	// TODO
 					'_' => 'item date',	// TODO
-					'help' => 'The result will be parsed by <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',	// TODO
+					'help' => 'The result will be parsed by <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',	// TODO
 				),
 				),
 				'item_title' => 'item title',	// TODO
 				'item_title' => 'item title',	// TODO
 				'item_uid' => 'item unique ID',	// TODO
 				'item_uid' => 'item unique ID',	// TODO

+ 1 - 1
app/i18n/pl/conf.php

@@ -176,7 +176,7 @@ return array(
 			'check_link' => 'Sprawdź status API poprzez: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'check_link' => 'Sprawdź status API poprzez: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'disabled' => 'Dostęp przez API jest wyłączony.',
 			'disabled' => 'Dostęp przez API jest wyłączony.',
 			'documentation_link' => 'Zobacz <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">dokumentację i listę aplikacji na telefon</a>',
 			'documentation_link' => 'Zobacz <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">dokumentację i listę aplikacji na telefon</a>',
-			'help' => 'Zobacz <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>dokumentację</a>',
+			'help' => 'Zobacz <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>dokumentację</a>',
 			'security_warning' => 'Użyj HTTPS. Hasło API jest przesyłane jawnym tekstem i może pojawić się w dziennikach serwera, jeśli zostanie wysłane metodą GET.',
 			'security_warning' => 'Użyj HTTPS. Hasło API jest przesyłane jawnym tekstem i może pojawić się w dziennikach serwera, jeśli zostanie wysłane metodą GET.',
 		),
 		),
 		'change_password' => 'Zmień hasło',
 		'change_password' => 'Zmień hasło',

+ 6 - 6
app/i18n/pl/sub.php

@@ -26,7 +26,7 @@ return array(
 		'archiving' => 'Archiwizacja',
 		'archiving' => 'Archiwizacja',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => 'Dynamiczny OPML',
 			'_' => 'Dynamiczny OPML',
-			'help' => 'Podaj adres <a href="http://opml.org/" target="_blank">pliku OPML</a>, aby dynamicznie zapełnić tę kategorię kanałami',
+			'help' => 'Podaj adres <a href="https://opml.org/" target="_blank">pliku OPML</a>, aby dynamicznie zapełnić tę kategorię kanałami',
 		),
 		),
 		'empty' => 'Pusta kategoria',
 		'empty' => 'Pusta kategoria',
 		'error' => 'Ta kategoria dynamicznego OPML napotkała problem. Sprawdź, czy adres URL tego OPML jest nadal dostępny oraz czy nie została przekroczona maksymalna liczba kanałów na użytkownika.',
 		'error' => 'Ta kategoria dynamicznego OPML napotkała problem. Sprawdź, czy adres URL tego OPML jest nadal dostępny oraz czy nie została przekroczona maksymalna liczba kanałów na użytkownika.',
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Własny format daty/czasu',
 					'_' => 'Własny format daty/czasu',
-					'help' => 'Opcjonalne. Format wspierany przez <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>, przykładowo <code>d-m-Y H:i:s</code>',
+					'help' => 'Opcjonalne. Format wspierany przez <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>, przykładowo <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'daty',
 					'_' => 'daty',
-					'help' => 'Wynik zostanie przetworzony za pomocą funkcji <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'Wynik zostanie przetworzony za pomocą funkcji <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => 'tytułu',
 					'_' => 'tytułu',
-					'help' => 'W szczególności warto użyć <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">oś XPath</a> <code>descendant::</code>, na przykład: <code>descendant::h2</code>',
+					'help' => 'W szczególności warto użyć <a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">oś XPath</a> <code>descendant::</code>, na przykład: <code>descendant::h2</code>',
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => 'unikalnego identyfikatora',
 					'_' => 'unikalnego identyfikatora',
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Własny format daty/czasu',
 					'_' => 'Własny format daty/czasu',
-					'help' => 'Opcjonalne. Format wspierany przez <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>, przykładowo <code>d-m-Y H:i:s</code>',
+					'help' => 'Opcjonalne. Format wspierany przez <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>, przykładowo <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'czas wiadomości',
 					'_' => 'czas wiadomości',
-					'help' => 'Wartość będzie przetwarzana funkcją <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'Wartość będzie przetwarzana funkcją <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => 'tytuł wiadomości',
 				'item_title' => 'tytuł wiadomości',
 				'item_uid' => 'unikalny identyfikator wiadomości',
 				'item_uid' => 'unikalny identyfikator wiadomości',

+ 1 - 1
app/i18n/pt-BR/conf.php

@@ -176,7 +176,7 @@ return array(
 			'check_link' => 'Verificar status da API via: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'check_link' => 'Verificar status da API via: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'disabled' => 'O acesso à API está desativado.',
 			'disabled' => 'O acesso à API está desativado.',
 			'documentation_link' => 'Veja a <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentação e lista de aplicativos conhecidos</a>',
 			'documentation_link' => 'Veja a <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentação e lista de aplicativos conhecidos</a>',
-			'help' => 'Veja a <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentação</a>',
+			'help' => 'Veja a <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentação</a>',
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// TODO
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// TODO
 		),
 		),
 		'change_password' => 'Alterar senha',
 		'change_password' => 'Alterar senha',

+ 6 - 6
app/i18n/pt-BR/sub.php

@@ -26,7 +26,7 @@ return array(
 		'archiving' => 'Arquivar',
 		'archiving' => 'Arquivar',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => 'OPML Dinâmico',
 			'_' => 'OPML Dinâmico',
-			'help' => 'Forneça uma URL para <a href="http://opml.org/" target="_blank">o arquivo OPML </a> para preencher dinamicamente esta categoria com feeds',
+			'help' => 'Forneça uma URL para <a href="https://opml.org/" target="_blank">o arquivo OPML </a> para preencher dinamicamente esta categoria com feeds',
 		),
 		),
 		'empty' => 'Categoria vazia',
 		'empty' => 'Categoria vazia',
 		'error' => 'Esta categoria OPML dinâmica encontrou um problema. Verifique se a URL OPML ainda está acessível e se o número máximo de feeds por usuário não foi excedido.',
 		'error' => 'Esta categoria OPML dinâmica encontrou um problema. Verifique se a URL OPML ainda está acessível e se o número máximo de feeds por usuário não foi excedido.',
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Formato de data/hora personalizado',
 					'_' => 'Formato de data/hora personalizado',
-					'help' => 'Opcional. Um formato suportado por <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> assim como <code>d-m-Y H:i:s</code>',
+					'help' => 'Opcional. Um formato suportado por <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> assim como <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'Data do Item',
 					'_' => 'Data do Item',
-					'help' => 'O resultado será parecido com: <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'O resultado será parecido com: <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => 'Titulo do Item',
 					'_' => 'Titulo do Item',
-					'help' => 'Utilize especialmente <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">XPath axis</a> <code>descendant::</code> like <code>descendant::h2</code>',
+					'help' => 'Utilize especialmente <a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">XPath axis</a> <code>descendant::</code> like <code>descendant::h2</code>',
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => 'ID único do item',
 					'_' => 'ID único do item',
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Formato de data/hora customizado',
 					'_' => 'Formato de data/hora customizado',
-					'help' => 'Opcional. Um formato suportado por <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> assim como <code>d-m-Y H:i:s</code>',
+					'help' => 'Opcional. Um formato suportado por <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> assim como <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'data do item',
 					'_' => 'data do item',
-					'help' => 'O resultado será analisado por <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'O resultado será analisado por <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => 'título do item',
 				'item_title' => 'título do item',
 				'item_uid' => 'ID único do item',
 				'item_uid' => 'ID único do item',

+ 1 - 1
app/i18n/pt-PT/conf.php

@@ -176,7 +176,7 @@ return array(
 			'check_link' => 'Check API status via: <kbd><a href="../api/" target="_blank">%s</a></kbd>',	// TODO
 			'check_link' => 'Check API status via: <kbd><a href="../api/" target="_blank">%s</a></kbd>',	// TODO
 			'disabled' => 'The API access is disabled.',	// TODO
 			'disabled' => 'The API access is disabled.',	// TODO
 			'documentation_link' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentation and list of known apps</a>',	// TODO
 			'documentation_link' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentation and list of known apps</a>',	// TODO
-			'help' => 'See <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentation</a>',	// TODO
+			'help' => 'See <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentation</a>',	// TODO
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// TODO
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// TODO
 		),
 		),
 		'change_password' => 'Change password',	// TODO
 		'change_password' => 'Change password',	// TODO

+ 6 - 6
app/i18n/pt-PT/sub.php

@@ -26,7 +26,7 @@ return array(
 		'archiving' => 'Arquivar',
 		'archiving' => 'Arquivar',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => 'OPML Dinâmico',
 			'_' => 'OPML Dinâmico',
-			'help' => 'Forneça uma URL para <a href="http://opml.org/" target="_blank">o arquivo OPML </a> para preencher dinamicamente esta categoria com feeds',
+			'help' => 'Forneça uma URL para <a href="https://opml.org/" target="_blank">o arquivo OPML </a> para preencher dinamicamente esta categoria com feeds',
 		),
 		),
 		'empty' => 'Categoria vazia',
 		'empty' => 'Categoria vazia',
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',	// TODO
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',	// TODO
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Custom date/time format',	// TODO
 					'_' => 'Custom date/time format',	// TODO
-					'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>',	// TODO
+					'help' => 'Optional. A format supported by <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>',	// TODO
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'Data do Item',
 					'_' => 'Data do Item',
-					'help' => 'O resultado será parecido com: <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'O resultado será parecido com: <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => 'Titulo do Item',
 					'_' => 'Titulo do Item',
-					'help' => 'Utilize especialmente <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">XPath axis</a> <code>descendant::</code> like <code>descendant::h2</code>',
+					'help' => 'Utilize especialmente <a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">XPath axis</a> <code>descendant::</code> like <code>descendant::h2</code>',
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => 'ID único do item',
 					'_' => 'ID único do item',
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Formato de data/hora personalizado',
 					'_' => 'Formato de data/hora personalizado',
-					'help' => 'Opcional. Um formato suportado por <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> assim como <code>d-m-Y H:i:s</code>',
+					'help' => 'Opcional. Um formato suportado por <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> assim como <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'data do item',
 					'_' => 'data do item',
-					'help' => 'The result will be parsed by <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',	// TODO
+					'help' => 'The result will be parsed by <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',	// TODO
 				),
 				),
 				'item_title' => 'título do item',
 				'item_title' => 'título do item',
 				'item_uid' => 'ID único do item',
 				'item_uid' => 'ID único do item',

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

@@ -176,7 +176,7 @@ return array(
 			'check_link' => 'Проверить статус API через: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'check_link' => 'Проверить статус API через: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'disabled' => 'Доступ к API отключен.',
 			'disabled' => 'Доступ к API отключен.',
 			'documentation_link' => 'См. <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">документацию и список известных приложений</a>',
 			'documentation_link' => 'См. <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">документацию и список известных приложений</a>',
-			'help' => 'См. <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">документацию</a>',
+			'help' => 'См. <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">документацию</a>',
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// TODO
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// TODO
 		),
 		),
 		'change_password' => 'Изменить пароль',
 		'change_password' => 'Изменить пароль',

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

@@ -26,7 +26,7 @@ return array(
 		'archiving' => 'Архивирование',
 		'archiving' => 'Архивирование',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => 'Динамичный OPML',
 			'_' => 'Динамичный OPML',
-			'help' => 'Предоставьте ссылку на <a href="http://opml.org/" target="_blank">OPML файл</a> чтобы динамично заполнять эту категорию лентами',
+			'help' => 'Предоставьте ссылку на <a href="https://opml.org/" target="_blank">OPML файл</a> чтобы динамично заполнять эту категорию лентами',
 		),
 		),
 		'empty' => 'Пустая категория',
 		'empty' => 'Пустая категория',
 		'error' => 'Эта динамическая категория OPML столкнулась с проблемой. Проверьте, что URL OPML всё ещё доступен и максимальное количество лент на пользователя не превышено.',
 		'error' => 'Эта динамическая категория OPML столкнулась с проблемой. Проверьте, что URL OPML всё ещё доступен и максимальное количество лент на пользователя не превышено.',
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Пользовательский формат даты/времени',
 					'_' => 'Пользовательский формат даты/времени',
-					'help' => 'Выборочно. Формат поддерживается <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> как <code>d-m-Y H:i:s</code>',
+					'help' => 'Выборочно. Формат поддерживается <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> как <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'даты элемента',
 					'_' => 'даты элемента',
-					'help' => 'Результат будет распарсен с <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'Результат будет распарсен с <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => 'заголовка элемента',
 					'_' => 'заголовка элемента',
-					'help' => 'Используйте, в частности, <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">ось XPath</a> <code>descendant::</code>, наподобие <code>descendant::h2</code>',
+					'help' => 'Используйте, в частности, <a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">ось XPath</a> <code>descendant::</code>, наподобие <code>descendant::h2</code>',
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => 'уникальный ID элемента',
 					'_' => 'уникальный ID элемента',
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Пользовательский формат даты/времени',
 					'_' => 'Пользовательский формат даты/времени',
-					'help' => 'Выборочно. Формат, поддерживаемый <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>, например <code>d-m-Y H:i:s</code>',
+					'help' => 'Выборочно. Формат, поддерживаемый <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>, например <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'дата элемента',
 					'_' => 'дата элемента',
-					'help' => 'Результат будет распарсен используя <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'Результат будет распарсен используя <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => 'название элемента',
 				'item_title' => 'название элемента',
 				'item_uid' => 'уникальный ID элемента',
 				'item_uid' => 'уникальный ID элемента',

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

@@ -176,7 +176,7 @@ return array(
 			'check_link' => 'Check API status via: <kbd><a href="../api/" target="_blank">%s</a></kbd>',	// TODO
 			'check_link' => 'Check API status via: <kbd><a href="../api/" target="_blank">%s</a></kbd>',	// TODO
 			'disabled' => 'The API access is disabled.',	// TODO
 			'disabled' => 'The API access is disabled.',	// TODO
 			'documentation_link' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentation and list of known apps</a>',	// TODO
 			'documentation_link' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">documentation and list of known apps</a>',	// TODO
-			'help' => 'See <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentation</a>',	// TODO
+			'help' => 'See <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>documentation</a>',	// TODO
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// TODO
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// TODO
 		),
 		),
 		'change_password' => 'Change password',	// TODO
 		'change_password' => 'Change password',	// TODO

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

@@ -26,7 +26,7 @@ return array(
 		'archiving' => 'Archív',
 		'archiving' => 'Archív',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => 'Dynamické OPML',
 			'_' => 'Dynamické OPML',
-			'help' => 'Zadajte URL adresu k <a href="http://opml.org/" target="_blank">OPML súboru</a>, z ktorého sa táto kategória automaticky naplní kanálmi.',
+			'help' => 'Zadajte URL adresu k <a href="https://opml.org/" target="_blank">OPML súboru</a>, z ktorého sa táto kategória automaticky naplní kanálmi.',
 		),
 		),
 		'empty' => 'Prázdna kategória',
 		'empty' => 'Prázdna kategória',
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',	// TODO
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',	// TODO
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Vlastný formát dátumu/času',
 					'_' => 'Vlastný formát dátumu/času',
-					'help' => 'Nepovinné. Formát podporovaný prostredníctvom <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> ako napríklad <code>d-m-Y H:i:s</code>',
+					'help' => 'Nepovinné. Formát podporovaný prostredníctvom <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> ako napríklad <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'položka dátum',
 					'_' => 'položka dátum',
-					'help' => 'Výsledok spracuje <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',	// DIRTY
+					'help' => 'Výsledok spracuje <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',	// DIRTY
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => 'položka nadpis',
 					'_' => 'položka nadpis',
-					'help' => 'Použite hlavne <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">XPath axis</a> <code>descendant::</code> like <code>descendant::h2</code>',	// DIRTY
+					'help' => 'Použite hlavne <a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">XPath axis</a> <code>descendant::</code> like <code>descendant::h2</code>',	// DIRTY
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => 'položka unikátny identifikátor',
 					'_' => 'položka unikátny identifikátor',
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Vlastný formát dátumu/času',
 					'_' => 'Vlastný formát dátumu/času',
-					'help' => 'Nepovinné. Formát podporovaný prostredníctvom <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> ako napríklad <code>d-m-Y H:i:s</code>',
+					'help' => 'Nepovinné. Formát podporovaný prostredníctvom <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> ako napríklad <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'dátum položky',
 					'_' => 'dátum položky',
-					'help' => 'Výsledok bude spracovaný prostredníctvom <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'Výsledok bude spracovaný prostredníctvom <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => 'nadpis položky',
 				'item_title' => 'nadpis položky',
 				'item_uid' => 'jednoznačný identifikátor položky',
 				'item_uid' => 'jednoznačný identifikátor položky',

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

@@ -176,7 +176,7 @@ return array(
 			'check_link' => 'API durumunu şu adresten kontrol et: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'check_link' => 'API durumunu şu adresten kontrol et: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'disabled' => 'API erişimi devre dışı.',
 			'disabled' => 'API erişimi devre dışı.',
 			'documentation_link' => '<a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">Belgeleri ve bilinen uygulamaların listesini</a> gör',
 			'documentation_link' => '<a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">Belgeleri ve bilinen uygulamaların listesini</a> gör',
-			'help' => '<a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">Belgeleri</a> gör',
+			'help' => '<a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">Belgeleri</a> gör',
 			'security_warning' => 'HTTPS kullanın. API parolası düz metin olarak iletilir ve GET isteğiyle gönderilmesi durumunda sunucu günlüklerinde görünebilir.',
 			'security_warning' => 'HTTPS kullanın. API parolası düz metin olarak iletilir ve GET isteğiyle gönderilmesi durumunda sunucu günlüklerinde görünebilir.',
 		),
 		),
 		'change_password' => 'Parolayı değiştir',
 		'change_password' => 'Parolayı değiştir',

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

@@ -26,7 +26,7 @@ return array(
 		'archiving' => 'Arşivleme',
 		'archiving' => 'Arşivleme',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => 'Dinamik OPML',
 			'_' => 'Dinamik OPML',
-			'help' => 'Bu kategoriyi beslemelerle dinamik olarak doldurmak için bir <a href="http://opml.org/" target="_blank">OPML dosyası</a> URL’si sağlayın.',
+			'help' => 'Bu kategoriyi beslemelerle dinamik olarak doldurmak için bir <a href="https://opml.org/" target="_blank">OPML dosyası</a> URL’si sağlayın.',
 		),
 		),
 		'empty' => 'Boş kategori',
 		'empty' => 'Boş kategori',
 		'error' => 'Bu dinamik OPML kategorisi bir sorunla karşılaştı. OPML URLsinin hâlâ erişilebilir olduğunu ve kullanıcı başına düşen maksimum besleme sayısının aşılmadığını kontrol edin.',
 		'error' => 'Bu dinamik OPML kategorisi bir sorunla karşılaştı. OPML URLsinin hâlâ erişilebilir olduğunu ve kullanıcı başına düşen maksimum besleme sayısının aşılmadığını kontrol edin.',
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Özel tarih/saat biçimi',
 					'_' => 'Özel tarih/saat biçimi',
-					'help' => 'İsteğe bağlı. <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> tarafından desteklenen bir biçim, örneğin <code>d-m-Y H:i:s</code>',
+					'help' => 'İsteğe bağlı. <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> tarafından desteklenen bir biçim, örneğin <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'öğe tarihi',
 					'_' => 'öğe tarihi',
-					'help' => 'Sonuç, <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a> tarafından ayrıştırılacaktır.',
+					'help' => 'Sonuç, <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a> tarafından ayrıştırılacaktır.',
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => 'öğe başlığı',
 					'_' => 'öğe başlığı',
-					'help' => 'Özellikle <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">XPath ekseni</a> <code>descendant::</code> kullanın, örneğin <code>descendant::h2</code>',
+					'help' => 'Özellikle <a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">XPath ekseni</a> <code>descendant::</code> kullanın, örneğin <code>descendant::h2</code>',
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => 'öğe benzersiz kimliği',
 					'_' => 'öğe benzersiz kimliği',
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Özel tarih/saat biçimi',
 					'_' => 'Özel tarih/saat biçimi',
-					'help' => 'İsteğe bağlı. <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> tarafından desteklenen bir biçim, örneğin <code>d-m-Y H:i:s</code>',
+					'help' => 'İsteğe bağlı. <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> tarafından desteklenen bir biçim, örneğin <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'öğe tarihi',
 					'_' => 'öğe tarihi',
-					'help' => 'Sonuç, <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a> tarafından ayrıştırılacaktır.',
+					'help' => 'Sonuç, <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a> tarafından ayrıştırılacaktır.',
 				),
 				),
 				'item_title' => 'öğe başlığı',
 				'item_title' => 'öğe başlığı',
 				'item_uid' => 'öğe benzersiz kimliği',
 				'item_uid' => 'öğe benzersiz kimliği',

+ 1 - 1
app/i18n/uk/conf.php

@@ -176,7 +176,7 @@ return array(
 			'check_link' => 'Перевірте стан API: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'check_link' => 'Перевірте стан API: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'disabled' => 'Доступ через API вимкнено.',
 			'disabled' => 'Доступ через API вимкнено.',
 			'documentation_link' => 'Перегляньте <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">документацію та перелік відомих програм</a>',
 			'documentation_link' => 'Перегляньте <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">документацію та перелік відомих програм</a>',
-			'help' => 'Перегляньте <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>документацію</a>',
+			'help' => 'Перегляньте <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>документацію</a>',
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// TODO
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// TODO
 		),
 		),
 		'change_password' => 'Змінити пароль',
 		'change_password' => 'Змінити пароль',

+ 6 - 6
app/i18n/uk/sub.php

@@ -26,7 +26,7 @@ return array(
 		'archiving' => 'Архівування',
 		'archiving' => 'Архівування',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => 'Динамічний OPML',
 			'_' => 'Динамічний OPML',
-			'help' => 'Щоб динамічно заповнювати цю категорію стрічками, вкажіть URL-адресу <a href="http://opml.org/" target="_blank">OPML-файлу</a>',
+			'help' => 'Щоб динамічно заповнювати цю категорію стрічками, вкажіть URL-адресу <a href="https://opml.org/" target="_blank">OPML-файлу</a>',
 		),
 		),
 		'empty' => 'Порожня категорія',
 		'empty' => 'Порожня категорія',
 		'error' => 'З цією динамічною OPML-категорією щось не так. Упевніться, що URL-адреса OPML усе ще доступна, а максимальної кількості стрічок користувача ще не вичерпано.',
 		'error' => 'З цією динамічною OPML-категорією щось не так. Упевніться, що URL-адреса OPML усе ще доступна, а максимальної кількості стрічок користувача ще не вичерпано.',
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Особливий формат дати й часу',
 					'_' => 'Особливий формат дати й часу',
-					'help' => 'Необовʼязково. Формат мусить підтримуватись <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>, наприклад <code>d-m-Y H:i:s</code>',
+					'help' => 'Необовʼязково. Формат мусить підтримуватись <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>, наприклад <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'дати новини',
 					'_' => 'дати новини',
-					'help' => 'Результат буде розпізнано за допомогою <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'Результат буде розпізнано за допомогою <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => 'заголовка новини',
 					'_' => 'заголовка новини',
-					'help' => 'Використовуйте зокрема <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">вісь XPath</a> <code>descendant::</code>, наприклад <code>descendant::h2</code>',
+					'help' => 'Використовуйте зокрема <a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">вісь XPath</a> <code>descendant::</code>, наприклад <code>descendant::h2</code>',
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => 'унікального ідентифікатора новини',
 					'_' => 'унікального ідентифікатора новини',
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => 'Особливий формат дати й часу',
 					'_' => 'Особливий формат дати й часу',
-					'help' => 'Необовʼязково. Формат мусить підтримуватись <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>, наприклад <code>d-m-Y H:i:s</code>',
+					'help' => 'Необовʼязково. Формат мусить підтримуватись <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>, наприклад <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => 'дати новини',
 					'_' => 'дати новини',
-					'help' => 'Результат буде розпізнано за допомогою <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+					'help' => 'Результат буде розпізнано за допомогою <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
 				),
 				'item_title' => 'заголовка новини',
 				'item_title' => 'заголовка новини',
 				'item_uid' => 'унікального ідентифікатора новини',
 				'item_uid' => 'унікального ідентифікатора новини',

+ 1 - 1
app/i18n/zh-CN/conf.php

@@ -176,7 +176,7 @@ return array(
 			'check_link' => '通过以下地址检查 API 状态:<kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'check_link' => '通过以下地址检查 API 状态:<kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'disabled' => 'API 访问已禁用。',
 			'disabled' => 'API 访问已禁用。',
 			'documentation_link' => '查看 <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">文档和已知应用列表</a>',
 			'documentation_link' => '查看 <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">文档和已知应用列表</a>',
-			'help' => '查看 <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>文档</a>',
+			'help' => '查看 <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>文档</a>',
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// TODO
 			'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.',	// TODO
 		),
 		),
 		'change_password' => '修改密码',
 		'change_password' => '修改密码',

+ 6 - 6
app/i18n/zh-CN/sub.php

@@ -26,7 +26,7 @@ return array(
 		'archiving' => '归档',
 		'archiving' => '归档',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => '动态订阅',
 			'_' => '动态订阅',
-			'help' => '使用 URL 上的 <a href="http://opml.org/" target="_blank">OPML 文件</a> 中的订阅源填充这一分类',
+			'help' => '使用 URL 上的 <a href="https://opml.org/" target="_blank">OPML 文件</a> 中的订阅源填充这一分类',
 		),
 		),
 		'empty' => '空分类',
 		'empty' => '空分类',
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',	// TODO
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',	// TODO
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => '自定义日期/时间格式',
 					'_' => '自定义日期/时间格式',
-					'help' => '可选项, 格式参见 <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> 例如 <code>d-m-Y H:i:s</code>',
+					'help' => '可选项, 格式参见 <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> 例如 <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => '文章日期:',
 					'_' => '文章日期:',
-					'help' => '结果将被 <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a> 解析',
+					'help' => '结果将被 <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a> 解析',
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => '文章标题',
 					'_' => '文章标题',
-					'help' => '注意使用 <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">XPath 轴</a> <code>descendant::</code>,例如 <code>descendant::h2</code>',
+					'help' => '注意使用 <a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">XPath 轴</a> <code>descendant::</code>,例如 <code>descendant::h2</code>',
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => '文章唯一 ID',
 					'_' => '文章唯一 ID',
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => '自定义时间格式',
 					'_' => '自定义时间格式',
-					'help' => '可选项. 被 <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> 支持的日期格式。例如 <code>d-m-Y H:i:s</code>',
+					'help' => '可选项. 被 <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> 支持的日期格式。例如 <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => '文章时间',
 					'_' => '文章时间',
-					'help' => '结果会被 <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a> 解析',
+					'help' => '结果会被 <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a> 解析',
 				),
 				),
 				'item_title' => '文章标题',
 				'item_title' => '文章标题',
 				'item_uid' => '文章唯一ID',
 				'item_uid' => '文章唯一ID',

+ 1 - 1
app/i18n/zh-TW/conf.php

@@ -176,7 +176,7 @@ return array(
 			'check_link' => '透過此處檢查 API 狀態: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'check_link' => '透過此處檢查 API 狀態: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
 			'disabled' => 'API 存取已停用',
 			'disabled' => 'API 存取已停用',
 			'documentation_link' => '請參閱 <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">說明文件與已知應用程式清單</a>',
 			'documentation_link' => '請參閱 <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">說明文件與已知應用程式清單</a>',
-			'help' => '請參閱 <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>說明文件</a>',
+			'help' => '請參閱 <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>說明文件</a>',
 			'security_warning' => '請使用 HTTPS。API 密碼會以明文傳輸,並且如果透過 GET 傳送,可能出現在伺服器的紀錄中。',
 			'security_warning' => '請使用 HTTPS。API 密碼會以明文傳輸,並且如果透過 GET 傳送,可能出現在伺服器的紀錄中。',
 		),
 		),
 		'change_password' => '變更密碼',
 		'change_password' => '變更密碼',

+ 6 - 6
app/i18n/zh-TW/sub.php

@@ -26,7 +26,7 @@ return array(
 		'archiving' => '歸檔',
 		'archiving' => '歸檔',
 		'dynamic_opml' => array(
 		'dynamic_opml' => array(
 			'_' => '動態 OPML',
 			'_' => '動態 OPML',
-			'help' => '提供指向 <a href="http://opml.org/" target="_blank">OPML 檔案</a> 的 URL 以便動態地為此類別填充訂閱',
+			'help' => '提供指向 <a href="https://opml.org/" target="_blank">OPML 檔案</a> 的 URL 以便動態地為此類別填充訂閱',
 		),
 		),
 		'empty' => '空類別',
 		'empty' => '空類別',
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',	// TODO
 		'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.',	// TODO
@@ -125,15 +125,15 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => '自訂日期/時間格式',
 					'_' => '自訂日期/時間格式',
-					'help' => '可選。被 <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> 支援的格式,例如 <code>d-m-Y H:i:s</code>',
+					'help' => '可選。被 <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> 支援的格式,例如 <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => '項目日期',
 					'_' => '項目日期',
-					'help' => '結果將被 <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a> 解析',
+					'help' => '結果將被 <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a> 解析',
 				),
 				),
 				'item_title' => array(
 				'item_title' => array(
 					'_' => '項目標題',
 					'_' => '項目標題',
-					'help' => '注意使用 <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">XPath 軸</a> <code>descendant::</code>,例如 <code>descendant::h2</code>',
+					'help' => '注意使用 <a href="https://developer.mozilla.org/docs/Web/XML/XPath/Reference/Axes" target="_blank">XPath 軸</a> <code>descendant::</code>,例如 <code>descendant::h2</code>',
 				),
 				),
 				'item_uid' => array(
 				'item_uid' => array(
 					'_' => '項目唯一 ID',
 					'_' => '項目唯一 ID',
@@ -169,11 +169,11 @@ return array(
 				),
 				),
 				'item_timeFormat' => array(
 				'item_timeFormat' => array(
 					'_' => '自訂日期/時間格式',
 					'_' => '自訂日期/時間格式',
-					'help' => '可選。被 <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> 支援的格式,例如 <code>d-m-Y H:i:s</code>',
+					'help' => '可選。被 <a href="https://www.php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> 支援的格式,例如 <code>d-m-Y H:i:s</code>',
 				),
 				),
 				'item_timestamp' => array(
 				'item_timestamp' => array(
 					'_' => '項目日期',
 					'_' => '項目日期',
-					'help' => '結果將被 <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a> 解析',
+					'help' => '結果將被 <a href="https://www.php.net/strtotime" target="_blank"><code>strtotime()</code></a> 解析',
 				),
 				),
 				'item_title' => '項目標題',
 				'item_title' => '項目標題',
 				'item_uid' => '項目唯一 ID',
 				'item_uid' => '項目唯一 ID',

+ 6 - 6
app/shares.php

@@ -59,7 +59,7 @@ return [
 	'buffer' => [
 	'buffer' => [
 		'url' => 'https://publish.buffer.com/compose?url=~LINK~&amp;text=~TITLE~',
 		'url' => 'https://publish.buffer.com/compose?url=~LINK~&amp;text=~TITLE~',
 		'transform' => ['rawurlencode'],
 		'transform' => ['rawurlencode'],
-		'help' => 'https://support.buffer.com/hc/en-us/articles/360035587394-Scheduling-posts',
+		'help' => 'https://support.buffer.com/en-us/articles/scheduling-posts-4Qdld7giAZ',
 		'form' => 'simple',
 		'form' => 'simple',
 		'method' => 'GET',
 		'method' => 'GET',
 	],
 	],
@@ -178,9 +178,9 @@ return [
 		'method' => 'GET',
 		'method' => 'GET',
 	],
 	],
 	'pinterest' => [
 	'pinterest' => [
-		'url' => 'https://pinterest.com/pin/create/button/?url=~LINK~',
+		'url' => 'https://www.pinterest.com/pin/create/button/?url=~LINK~',
 		'transform' => ['rawurlencode'],
 		'transform' => ['rawurlencode'],
-		'help' => 'https://pinterest.com/',
+		'help' => 'https://www.pinterest.com/',
 		'form' => 'simple',
 		'form' => 'simple',
 		'method' => 'GET',
 		'method' => 'GET',
 	],
 	],
@@ -207,7 +207,7 @@ return [
 	'shaarli' => [
 	'shaarli' => [
 		'url' => '~URL~?post=~LINK~&amp;title=~TITLE~&amp;source=FreshRSS',
 		'url' => '~URL~?post=~LINK~&amp;title=~TITLE~&amp;source=FreshRSS',
 		'transform' => ['rawurlencode'],
 		'transform' => ['rawurlencode'],
-		'help' => 'http://sebsauvage.net/wiki/doku.php?id=php:shaarli',
+		'help' => 'https://sebsauvage.net/wiki/doku.php?id=php:shaarli',
 		'form' => 'advanced',
 		'form' => 'advanced',
 		'method' => 'GET',
 		'method' => 'GET',
 	],
 	],
@@ -226,14 +226,14 @@ return [
 	'wallabag' => [
 	'wallabag' => [
 		'url' => '~URL~?action=add&amp;url=~LINK~',
 		'url' => '~URL~?action=add&amp;url=~LINK~',
 		'transform' => ['rawurlencode'],
 		'transform' => ['rawurlencode'],
-		'help' => 'http://www.wallabag.org/',
+		'help' => 'https://wallabag.org/',
 		'form' => 'advanced',
 		'form' => 'advanced',
 		'method' => 'GET',
 		'method' => 'GET',
 	],
 	],
 	'wallabagv2' => [
 	'wallabagv2' => [
 		'url' => '~URL~/bookmarklet?url=~LINK~',
 		'url' => '~URL~/bookmarklet?url=~LINK~',
 		'transform' => ['rawurlencode'],
 		'transform' => ['rawurlencode'],
-		'help' => 'http://www.wallabag.org/',
+		'help' => 'https://wallabag.org/',
 		'form' => 'advanced',
 		'form' => 'advanced',
 		'method' => 'GET',
 		'method' => 'GET',
 	],
 	],

+ 1 - 1
config-user.default.php

@@ -7,7 +7,7 @@ return array (
 	'enabled' => true,
 	'enabled' => true,
 	'is_admin' => false,
 	'is_admin' => false,
 	'language' => 'en',
 	'language' => 'en',
-	// A timezone identifier such as 'Europe/Paris' https://php.net/timezones or blank for server default
+	// A timezone identifier such as 'Europe/Paris' https://www.php.net/timezones or blank for server default
 	'timezone' => '',
 	'timezone' => '',
 	'archiving' => [
 	'archiving' => [
 		'keep_period' => 'P3M',
 		'keep_period' => 'P3M',

+ 2 - 2
config.default.php

@@ -149,7 +149,7 @@ return [
 	],
 	],
 
 
 	# Options used by cURL when making HTTP requests, e.g. when the SimplePie library retrieves feeds.
 	# Options used by cURL when making HTTP requests, e.g. when the SimplePie library retrieves feeds.
-	# https://php.net/manual/function.curl-setopt
+	# https://www.php.net/function.curl-setopt
 	'curl_options' => [
 	'curl_options' => [
 		# Options to disable SSL/TLS certificate check (e.g. for self-signed HTTPS)
 		# Options to disable SSL/TLS certificate check (e.g. for self-signed HTTPS)
 		//CURLOPT_SSL_VERIFYHOST => 0,
 		//CURLOPT_SSL_VERIFYHOST => 0,
@@ -187,7 +187,7 @@ return [
 		# https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS
 		# https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS
 		'connection_uri_params' => '',
 		'connection_uri_params' => '',
 
 
-		# Additional PDO parameters, such as offered by MySQL https://php.net/ref.pdo-mysql
+		# Additional PDO parameters, such as offered by MySQL https://www.php.net/ref.pdo-mysql
 		'pdo_options' => [
 		'pdo_options' => [
 			//Pdo\Mysql::ATTR_SSL_KEY	=> '/path/to/client-key.pem',
 			//Pdo\Mysql::ATTR_SSL_KEY	=> '/path/to/client-key.pem',
 			//Pdo\Mysql::ATTR_SSL_CERT	=> '/path/to/client-cert.pem',
 			//Pdo\Mysql::ATTR_SSL_CERT	=> '/path/to/client-cert.pem',

+ 1 - 1
constants.php

@@ -46,7 +46,7 @@ if (file_exists(__DIR__ . '/constants.local.php')) {
 
 
 defined('FRESHRSS_USERAGENT') or define('FRESHRSS_USERAGENT', 'FreshRSS/' . FRESHRSS_VERSION . ' (' . PHP_OS . '; ' . FRESHRSS_WEBSITE . ')');
 defined('FRESHRSS_USERAGENT') or define('FRESHRSS_USERAGENT', 'FreshRSS/' . FRESHRSS_VERSION . ' (' . PHP_OS . '; ' . FRESHRSS_WEBSITE . ')');
 
 
-// PHP text output compression http://php.net/ob_gzhandler (better to do it at Web server level)
+// PHP text output compression https://www.php.net/ob_gzhandler (better to do it at Web server level)
 defined('PHP_COMPRESSION') or define('PHP_COMPRESSION', false);
 defined('PHP_COMPRESSION') or define('PHP_COMPRESSION', false);
 
 
 defined('COPY_LOG_TO_SYSLOG') or define('COPY_LOG_TO_SYSLOG', filter_var(getenv('COPY_LOG_TO_SYSLOG'), FILTER_VALIDATE_BOOLEAN));
 defined('COPY_LOG_TO_SYSLOG') or define('COPY_LOG_TO_SYSLOG', filter_var(getenv('COPY_LOG_TO_SYSLOG'), FILTER_VALIDATE_BOOLEAN));

+ 18 - 18
docs/CHANGELOG-old2.md

@@ -1064,7 +1064,7 @@
 * UI
 * UI
 	* Better UI / client network performance (time to first byte) thanks to a data streaming pipeline with `yield` [#2588](https://github.com/FreshRSS/FreshRSS/pull/2588)
 	* Better UI / client network performance (time to first byte) thanks to a data streaming pipeline with `yield` [#2588](https://github.com/FreshRSS/FreshRSS/pull/2588)
 		* Improved buffering strategy accordingly, with a loading animation while waiting for the first articles to arrive (e.g. complex / slow search) [#2845](https://github.com/FreshRSS/FreshRSS/pull/2845)
 		* Improved buffering strategy accordingly, with a loading animation while waiting for the first articles to arrive (e.g. complex / slow search) [#2845](https://github.com/FreshRSS/FreshRSS/pull/2845)
-		* To benefit from it, requires that the full Web stack allow efficient streaming / flushing of data. Check our reference [Docker + Traefik documentation](./Docker/README.md).
+		* To benefit from it, requires that the full Web stack allow efficient streaming / flushing of data. Check our reference [Docker + Traefik documentation](../Docker/README.md).
 	* Support RTL (right-to-left) languages [#2776](https://github.com/FreshRSS/FreshRSS/pull/2776)
 	* Support RTL (right-to-left) languages [#2776](https://github.com/FreshRSS/FreshRSS/pull/2776)
 	* New keyboard shortcut <kbd>Alt ⎇</kbd>+<kbd>r</kbd> to park *previous* articles as read [#2843](https://github.com/FreshRSS/FreshRSS/pull/2843)
 	* New keyboard shortcut <kbd>Alt ⎇</kbd>+<kbd>r</kbd> to park *previous* articles as read [#2843](https://github.com/FreshRSS/FreshRSS/pull/2843)
 	* In the statistics page, show feeds inactive for 1, 2, 3, 5 years [#2827](https://github.com/FreshRSS/FreshRSS/issues/2827)
 	* In the statistics page, show feeds inactive for 1, 2, 3, 5 years [#2827](https://github.com/FreshRSS/FreshRSS/issues/2827)
@@ -1172,7 +1172,7 @@
 	* Add optional database connection URI parameters [#2549](https://github.com/FreshRSS/FreshRSS/issues/2549), [#2559](https://github.com/FreshRSS/FreshRSS/pull/2559)
 	* Add optional database connection URI parameters [#2549](https://github.com/FreshRSS/FreshRSS/issues/2549), [#2559](https://github.com/FreshRSS/FreshRSS/pull/2559)
 	* Allow longer articles with MySQL / MariaDB (up to 16MB compressed instead of 64kB) [#2448](https://github.com/FreshRSS/FreshRSS/issues/2448)
 	* Allow longer articles with MySQL / MariaDB (up to 16MB compressed instead of 64kB) [#2448](https://github.com/FreshRSS/FreshRSS/issues/2448)
 	* Add support for terms of service [#2520](https://github.com/FreshRSS/FreshRSS/pull/2520)
 	* Add support for terms of service [#2520](https://github.com/FreshRSS/FreshRSS/pull/2520)
-	* Add sharing with [Lemmy](https://github.com/dessalines/lemmy) [#2510](https://github.com/FreshRSS/FreshRSS/pull/2510)
+	* Add sharing with [Lemmy](https://github.com/LemmyNet/lemmy) [#2510](https://github.com/FreshRSS/FreshRSS/pull/2510)
 * API
 * API
 	* Add support for [Reeder-4](https://www.reederapp.com/) client [#2513](https://github.com/FreshRSS/FreshRSS/issues/2513)
 	* Add support for [Reeder-4](https://www.reederapp.com/) client [#2513](https://github.com/FreshRSS/FreshRSS/issues/2513)
 * Compatibility
 * Compatibility
@@ -1314,7 +1314,7 @@
 	* Better validation of parameters [#2046](https://github.com/FreshRSS/FreshRSS/issues/2046)
 	* Better validation of parameters [#2046](https://github.com/FreshRSS/FreshRSS/issues/2046)
 	* New option `--header` to `cli/user-info.php` [#2296](https://github.com/FreshRSS/FreshRSS/pull/2296)
 	* New option `--header` to `cli/user-info.php` [#2296](https://github.com/FreshRSS/FreshRSS/pull/2296)
 * API
 * API
-	* Supported by [Readably](https://play.google.com/store/apps/details?id=com.isaiasmatewos.readably) (client for Android using Fever API)
+	* Supported by [Readably](https://web.archive.org/web/20210207170730/https://play.google.com/store/apps/details?id=com.isaiasmatewos.readably) (client for Android using Fever API) [#2264](https://github.com/FreshRSS/FreshRSS/pull/2264)
 * I18n
 * I18n
 	* Improve Korean [#2242](https://github.com/FreshRSS/FreshRSS/pull/2242)
 	* Improve Korean [#2242](https://github.com/FreshRSS/FreshRSS/pull/2242)
 	* Improve Occitan [#2253](https://github.com/FreshRSS/FreshRSS/pull/2253)
 	* Improve Occitan [#2253](https://github.com/FreshRSS/FreshRSS/pull/2253)
@@ -1356,17 +1356,17 @@
 	* Improve Dutch [#2221](https://github.com/FreshRSS/FreshRSS/pull/2221)
 	* Improve Dutch [#2221](https://github.com/FreshRSS/FreshRSS/pull/2221)
 	* Improve Occitan [#2230](https://github.com/FreshRSS/FreshRSS/pull/2230)
 	* Improve Occitan [#2230](https://github.com/FreshRSS/FreshRSS/pull/2230)
 * Accessibility
 * Accessibility
-	* Remove alt in logo [#2209](https://github.com/FreshRSS/FreshRSS/pull/2209)
+	* Remove alt in logo [#2209](https://github.com/FreshRSS/FreshRSS/issues/2209)
 
 
 
 
 ## 2018-12-22 FreshRSS 1.13.0
 ## 2018-12-22 FreshRSS 1.13.0
 
 
 * API
 * API
 	* Improvements to the Google Reader API [#2093](https://github.com/FreshRSS/FreshRSS/pull/2093)
 	* Improvements to the Google Reader API [#2093](https://github.com/FreshRSS/FreshRSS/pull/2093)
-		* Support for [Vienna RSS](http://www.vienna-rss.com/) (client for Mac OS X) [#2091](https://github.com/FreshRSS/FreshRSS/issues/2091)
+		* Support for [Vienna RSS](https://www.vienna-rss.com/) (client for Mac OS X) [#2091](https://github.com/FreshRSS/FreshRSS/issues/2091)
 	* Contributions to WebSub in third-party systems to support instant push notifications
 	* Contributions to WebSub in third-party systems to support instant push notifications
 		from [Mastodon](https://joinmastodon.org) 2.6.2+ and [Friendica](https://friendi.ca) 2018.12+
 		from [Mastodon](https://joinmastodon.org) 2.6.2+ and [Friendica](https://friendi.ca) 2018.12+
-		[#mastodon/9302](https://github.com/tootsuite/mastodon/pull/9302), [#friendica/6137](https://github.com/friendica/friendica/pull/6137)
+		[#mastodon/9302](https://github.com/mastodon/mastodon/pull/9302), [#friendica/6137](https://github.com/friendica/friendica/pull/6137)
 		* Rename the PubSubHubbub protocol to use the new standard [WebSub](https://www.w3.org/TR/websub/) name [#2184](https://github.com/FreshRSS/FreshRSS/pull/2184)
 		* Rename the PubSubHubbub protocol to use the new standard [WebSub](https://www.w3.org/TR/websub/) name [#2184](https://github.com/FreshRSS/FreshRSS/pull/2184)
 * Features
 * Features
 	* Ability to import XML files exported from Tiny-Tiny-RSS [#2079](https://github.com/FreshRSS/FreshRSS/issues/2079)
 	* Ability to import XML files exported from Tiny-Tiny-RSS [#2079](https://github.com/FreshRSS/FreshRSS/issues/2079)
@@ -1394,7 +1394,7 @@
 		* Fix some sanitizing in authors / tags
 		* Fix some sanitizing in authors / tags
 	* Strip embedded SVG images for now [#2135](https://github.com/FreshRSS/FreshRSS/pull/2135)
 	* Strip embedded SVG images for now [#2135](https://github.com/FreshRSS/FreshRSS/pull/2135)
 * Security
 * Security
-	* Fix HTML injections reported by [Netsparker](https://www.netsparker.com) [#2121](https://github.com/FreshRSS/FreshRSS/issues/2121)
+	* Fix HTML injections reported by [Netsparker](https://www.invicti.com/) [#2121](https://github.com/FreshRSS/FreshRSS/issues/2121)
 * Bug fixing
 * Bug fixing
 	* Fix warning in `tempnam()` with PHP 7.1+ affecting ZIP export [#2134](https://github.com/FreshRSS/FreshRSS/pull/2134)
 	* Fix warning in `tempnam()` with PHP 7.1+ affecting ZIP export [#2134](https://github.com/FreshRSS/FreshRSS/pull/2134)
 	* Fix print for views with unfolded articles [#2130](https://github.com/FreshRSS/FreshRSS/issues/2130)
 	* Fix print for views with unfolded articles [#2130](https://github.com/FreshRSS/FreshRSS/issues/2130)
@@ -1495,9 +1495,9 @@
 ## 2018-06-03 FreshRSS 1.11.0
 ## 2018-06-03 FreshRSS 1.11.0
 
 
 * API
 * API
-	* Add support for Fever compatible API, enabling more clients [#1406](https://github.com/FreshRSS/FreshRSS/pull/1406)
-		* iOS: [Fiery Feeds](https://apps.apple.com/app/fiery-feeds-rss-reader/id1158763303), [Unread](https://apps.apple.com/app/unread-rss-reader/id1252376153)
-		* MacOS: [Readkit](https://apps.apple.com/app/readkit/id588726889)
+	* Add support for Fever compatible API, enabling more clients [#1406](https://github.com/FreshRSS/FreshRSS/issues/1406)
+		* iOS: [Fiery Feeds](https://voidstern.net/fiery-feeds), [Unread](https://www.goldenhillsoftware.com/unread/)
+		* MacOS: [Readkit](https://readkit.app/)
 * Features
 * Features
 	* Several per-feed options (implemented in JSON) [#1838](https://github.com/FreshRSS/FreshRSS/pull/1838)
 	* Several per-feed options (implemented in JSON) [#1838](https://github.com/FreshRSS/FreshRSS/pull/1838)
 		* Mark updated articles as read [#891](https://github.com/FreshRSS/FreshRSS/issues/891)
 		* Mark updated articles as read [#891](https://github.com/FreshRSS/FreshRSS/issues/891)
@@ -1624,7 +1624,7 @@
 	* Show existing extensions in admin panel [#1708](https://github.com/FreshRSS/FreshRSS/pull/1708)
 	* Show existing extensions in admin panel [#1708](https://github.com/FreshRSS/FreshRSS/pull/1708)
 	* New function `$entry->_hash($hex)` for extensions that change the content of entries [#1707](https://github.com/FreshRSS/FreshRSS/pull/1707)
 	* New function `$entry->_hash($hex)` for extensions that change the content of entries [#1707](https://github.com/FreshRSS/FreshRSS/pull/1707)
 * I18n
 * I18n
-	* Hebrew [#1716](https://github.com/FreshRSS/FreshRSS/pull/1716)
+	* Hebrew [#689](https://github.com/FreshRSS/FreshRSS/pull/689)
 	* Improved German [#1698](https://github.com/FreshRSS/FreshRSS/pull/1698)
 	* Improved German [#1698](https://github.com/FreshRSS/FreshRSS/pull/1698)
 * Misc.
 * Misc.
 	* Customisable `constants.local.php` [#1725](https://github.com/FreshRSS/FreshRSS/pull/1725)
 	* Customisable `constants.local.php` [#1725](https://github.com/FreshRSS/FreshRSS/pull/1725)
@@ -1698,7 +1698,7 @@
 * Security
 * Security
 	* Do not require write access to check availability of new versions [#1450](https://github.com/FreshRSS/FreshRSS/issues/1450)
 	* Do not require write access to check availability of new versions [#1450](https://github.com/FreshRSS/FreshRSS/issues/1450)
 * Misc.
 * Misc.
-	* Move [documentation](./docs/) into FreshRSS code [#1510](https://github.com/FreshRSS/FreshRSS/pull/1510)
+	* Move [documentation](../docs/) into FreshRSS code [#1510](https://github.com/FreshRSS/FreshRSS/pull/1510)
 	* Moved `./data/force-https.default.txt` to `./force-https.default.txt`,
 	* Moved `./data/force-https.default.txt` to `./force-https.default.txt`,
 		`./data/config.default.php` to `./config.default.php`,
 		`./data/config.default.php` to `./config.default.php`,
 		and `./data/users/_/config.default.php` to `./config-user.default.php` [#1531](https://github.com/FreshRSS/FreshRSS/issues/1531)
 		and `./data/users/_/config.default.php` to `./config-user.default.php` [#1531](https://github.com/FreshRSS/FreshRSS/issues/1531)
@@ -1738,7 +1738,7 @@
 ## 2016-12-26 FreshRSS 1.6.2
 ## 2016-12-26 FreshRSS 1.6.2
 
 
 * Features
 * Features
-	* Add git compatibility in Web update system [#1357](https://github.com/FreshRSS/FreshRSS/issues/1357)
+	* Add git compatibility in Web update system [#1357](https://github.com/FreshRSS/FreshRSS/pull/1357)
 		* Requires that the initial installation is done with git
 		* Requires that the initial installation is done with git
 	* New option `limits.cookie_duration` in `data/config.php` to set the login cookie duration [#1384](https://github.com/FreshRSS/FreshRSS/issues/1384)
 	* New option `limits.cookie_duration` in `data/config.php` to set the login cookie duration [#1384](https://github.com/FreshRSS/FreshRSS/issues/1384)
 * SQL
 * SQL
@@ -1746,7 +1746,7 @@
 * CLI
 * CLI
 	* New command `./cli/user-info.php` to get some user information [#1345](https://github.com/FreshRSS/FreshRSS/issues/1345)
 	* New command `./cli/user-info.php` to get some user information [#1345](https://github.com/FreshRSS/FreshRSS/issues/1345)
 * Bug fixing
 * Bug fixing
-	* Fix bug in estimating last user activity [#1358](https://github.com/FreshRSS/FreshRSS/issues/1358)
+	* Fix bug in estimating last user activity [#1358](https://github.com/FreshRSS/FreshRSS/pull/1358)
 	* PostgreSQL: fix bug when updating cached values [#1360](https://github.com/FreshRSS/FreshRSS/issues/1360)
 	* PostgreSQL: fix bug when updating cached values [#1360](https://github.com/FreshRSS/FreshRSS/issues/1360)
 	* Fix bug in confirmation before marking as read [#1348](https://github.com/FreshRSS/FreshRSS/issues/1348)
 	* Fix bug in confirmation before marking as read [#1348](https://github.com/FreshRSS/FreshRSS/issues/1348)
 	* Fix small bugs in installer [#1363](https://github.com/FreshRSS/FreshRSS/pull/1363)
 	* Fix small bugs in installer [#1363](https://github.com/FreshRSS/FreshRSS/pull/1363)
@@ -1766,7 +1766,7 @@
 
 
 * CLI
 * CLI
 	* New Command-Line Interface (CLI) [#1095](https://github.com/FreshRSS/FreshRSS/issues/1095)
 	* New Command-Line Interface (CLI) [#1095](https://github.com/FreshRSS/FreshRSS/issues/1095)
-		* Install, add/delete users, actualize, import/export. See [CLI documentation](./cli/README.md).
+		* Install, add/delete users, actualize, import/export. See [CLI documentation](../cli/README.md).
 * API
 * API
 	* Support for editing feeds and categories from client applications [#1254](https://github.com/FreshRSS/FreshRSS/issues/1254)
 	* Support for editing feeds and categories from client applications [#1254](https://github.com/FreshRSS/FreshRSS/issues/1254)
 * Compatibility:
 * Compatibility:
@@ -1810,7 +1810,7 @@
 * SimplePie
 * SimplePie
 	* Fix auto-discovery of RSS feeds in Web pages served as `text/xml` [#1264](https://github.com/FreshRSS/FreshRSS/issues/1264)
 	* Fix auto-discovery of RSS feeds in Web pages served as `text/xml` [#1264](https://github.com/FreshRSS/FreshRSS/issues/1264)
 * Misc.
 * Misc.
-	* Removed *resource-priorities* attributes (`defer`, `lazyload`), deprecated by W3C [#1222](https://github.com/FreshRSS/FreshRSS/pull/1222)
+	* Removed *resource-priorities* attributes (`defer`, `lazyload`), deprecated by W3C [#1222](https://github.com/FreshRSS/FreshRSS/issues/1222)
 
 
 
 
 ## 2016-08-29 FreshRSS 1.5.0
 ## 2016-08-29 FreshRSS 1.5.0
@@ -1854,7 +1854,7 @@
 * Features
 * Features
 	* Support for MySQL 5.7+ (e.g. Ubuntu 16.04 LTS) [#1132](https://github.com/FreshRSS/FreshRSS/pull/1132)
 	* Support for MySQL 5.7+ (e.g. Ubuntu 16.04 LTS) [#1132](https://github.com/FreshRSS/FreshRSS/pull/1132)
 	* Speed optimization for HTTP/2 [#1133](https://github.com/FreshRSS/FreshRSS/pull/1133)
 	* Speed optimization for HTTP/2 [#1133](https://github.com/FreshRSS/FreshRSS/pull/1133)
-	* API support for REDIRECT_* HTTP headers (fcgi) [#1128](https://github.com/FreshRSS/FreshRSS/issues/1128)
+	* API support for REDIRECT_* HTTP headers (fcgi) [#1128](https://github.com/FreshRSS/FreshRSS/pull/1128)
 * SimplePie
 * SimplePie
 	* Support for feeds with invalid whitespace [#1142](https://github.com/FreshRSS/FreshRSS/issues/1142)
 	* Support for feeds with invalid whitespace [#1142](https://github.com/FreshRSS/FreshRSS/issues/1142)
 * Bug fixing
 * Bug fixing
@@ -1951,7 +1951,7 @@
 	* PHP 7 officially supported (~70% speed improvements on early tests). [#889](https://github.com/FreshRSS/FreshRSS/issues/889)
 	* PHP 7 officially supported (~70% speed improvements on early tests). [#889](https://github.com/FreshRSS/FreshRSS/issues/889)
 	* Restore support for PHP 5.2.1+. [#214a5cc](https://github.com/Alkarex/FreshRSS/commit/214a5cc9a4c2b821961bc21f22b4b08e34b5be68) [#894](https://github.com/FreshRSS/FreshRSS/issues/894)
 	* Restore support for PHP 5.2.1+. [#214a5cc](https://github.com/Alkarex/FreshRSS/commit/214a5cc9a4c2b821961bc21f22b4b08e34b5be68) [#894](https://github.com/FreshRSS/FreshRSS/issues/894)
 	* Support for data-src for images of articles retrieved via the full-content module. [#877](https://github.com/FreshRSS/FreshRSS/issues/877)
 	* Support for data-src for images of articles retrieved via the full-content module. [#877](https://github.com/FreshRSS/FreshRSS/issues/877)
-	* Add a couple of default feeds for fresh installations. [#886](https://github.com/FreshRSS/FreshRSS/issues/886)
+	* Add a couple of default feeds for fresh installations. [#886](https://github.com/FreshRSS/FreshRSS/pull/886)
 	* Changed some log visibilities. [#885](https://github.com/FreshRSS/FreshRSS/issues/885)
 	* Changed some log visibilities. [#885](https://github.com/FreshRSS/FreshRSS/issues/885)
 	* Fix broken links for extension script / style files. [#862](https://github.com/FreshRSS/FreshRSS/issues/862)
 	* Fix broken links for extension script / style files. [#862](https://github.com/FreshRSS/FreshRSS/issues/862)
 	* Load default configuration during installation to avoid hard-coded values. [#890](https://github.com/FreshRSS/FreshRSS/issues/890)
 	* Load default configuration during installation to avoid hard-coded values. [#890](https://github.com/FreshRSS/FreshRSS/issues/890)

+ 1 - 1
docs/en/admins/02_Prerequisites.md

@@ -28,7 +28,7 @@ It could happen that we make two releases in a short span of time if we have a r
 
 
 ## Development version
 ## Development version
 
 
-[Download](https://github.com/FreshRSS/FreshRSS/archive/edge.zip)
+[Download](https://github.com/FreshRSS/FreshRSS/archive/refs/heads/edge.zip)
 
 
 As its name suggests, the development version is the working codebase, intended for developers. **This release may be unstable!**
 As its name suggests, the development version is the working codebase, intended for developers. **This release may be unstable!**
 
 

+ 1 - 1
docs/en/admins/04_Updating.md

@@ -43,7 +43,7 @@ See [Updating on Linux](07_LinuxUpdate.md#using-git) for the same flow with `sud
 
 
 Updating from a zip archive works for any source installation.
 Updating from a zip archive works for any source installation.
 
 
-1. Download the latest [stable](https://github.com/FreshRSS/FreshRSS/archive/latest.zip) or [rolling](https://github.com/FreshRSS/FreshRSS/archive/edge.zip) release and extract it (for a specific version, use the [releases page](https://github.com/FreshRSS/FreshRSS/releases)). The archive contains a top-level `FreshRSS-X.Y.Z/` folder.
+1. Download the latest [stable (slow)](https://github.com/FreshRSS/FreshRSS/archive/refs/heads/latest.zip) or [rolling](https://github.com/FreshRSS/FreshRSS/archive/refs/heads/edge.zip) release and extract it (for a specific version, use the [releases page](https://github.com/FreshRSS/FreshRSS/releases)). The archive contains a top-level `FreshRSS-X.Y.Z/` folder.
 2. Copy the extracted contents into your FreshRSS directory, overwriting existing files. Your user data, extensions, and custom themes are preserved.
 2. Copy the extracted contents into your FreshRSS directory, overwriting existing files. Your user data, extensions, and custom themes are preserved.
 3. Re-apply file ownership and permissions.
 3. Re-apply file ownership and permissions.
 
 

+ 1 - 1
docs/en/admins/05_Configuring_email_validation.md

@@ -17,7 +17,7 @@ You can also enable this feature directly in FreshRSS: `Administration` >
 
 
 ## Configure the SMTP server
 ## Configure the SMTP server
 
 
-By default, FreshRSS will attempt to send emails with the [`mail`](https://www.php.net/manual/en/function.mail.php)
+By default, FreshRSS will attempt to send emails with the [`mail`](https://www.php.net/function.mail)
 function of PHP. It is the simpler solution but it might not work as expected.
 function of PHP. It is the simpler solution but it might not work as expected.
 For example, we don’t support (yet?) sending emails from inside our official
 For example, we don’t support (yet?) sending emails from inside our official
 Docker images. We recommend to use a proper SMTP server.
 Docker images. We recommend to use a proper SMTP server.

+ 2 - 2
docs/en/admins/07_LinuxUpdate.md

@@ -76,11 +76,11 @@ If your local user doesn’t have write access to the FreshRSS folder, use a sud
 	cd /usr/share/FreshRSS/
 	cd /usr/share/FreshRSS/
 	```
 	```
 
 
-2. Get the link to the Zip archive for [the latest release](https://github.com/FreshRSS/FreshRSS/releases/latest): [`https://github.com/FreshRSS/FreshRSS/archive/latest.zip`](https://github.com/FreshRSS/FreshRSS/archive/latest.zip). If you want to use the rolling release, the link is [`https://github.com/FreshRSS/FreshRSS/archive/edge.zip`](https://github.com/FreshRSS/FreshRSS/archive/edge.zip).
+2. Get the link to the Zip archive for [the latest release](https://github.com/FreshRSS/FreshRSS/releases/latest): <https://github.com/FreshRSS/FreshRSS/archive/refs/heads/latest.zip>. If you want to use the rolling release, the link is <https://github.com/FreshRSS/FreshRSS/archive/refs/heads/edge.zip>.
 
 
 3. Download and unzip the update file
 3. Download and unzip the update file
 	```sh
 	```sh
-	wget -O freshrss.zip https://github.com/FreshRSS/FreshRSS/archive/latest.zip
+	wget -O freshrss.zip https://github.com/FreshRSS/FreshRSS/archive/refs/heads/latest.zip
 	unzip freshrss.zip
 	unzip freshrss.zip
 	```
 	```
 
 

+ 1 - 1
docs/en/admins/08_FeedUpdates.md

@@ -24,7 +24,7 @@ docker run ... \
 
 
 ## Cron as a trigger
 ## Cron as a trigger
 
 
-You’ll need to check the Cron documentation for your specific distribution ([Debian/Ubuntu](https://help.ubuntu.com/community/CronHowto), [Red Hat/Fedora/CentOS](https://fedoraproject.org/wiki/Administration_Guide_Draft/Cron), [Slackware](https://docs.slackware.com/slackbook:process_control#cron), [Gentoo](https://wiki.gentoo.org/wiki/Cron), [Arch Linux](https://wiki.archlinux.org/index.php/Cron) …) to make sure you set the Cron job correctly.
+You’ll need to check the Cron documentation for your specific distribution ([Debian/Ubuntu](https://help.ubuntu.com/community/CronHowto), [Red Hat/Fedora/CentOS](https://fedoraproject.org/wiki/Administration_Guide_Draft/Cron), [Slackware](https://docs.slackware.com/slackbook:process_control#cron), [Gentoo](https://wiki.gentoo.org/wiki/Cron), [Arch Linux](https://wiki.archlinux.org/title/Cron) …) to make sure you set the Cron job correctly.
 
 
 It’s advisable that you run the Cron job as your Web server user (often `www-data`).
 It’s advisable that you run the Cron job as your Web server user (often `www-data`).
 
 

+ 1 - 1
docs/en/admins/10_ServerConfig.md

@@ -115,7 +115,7 @@ server {
 
 
 ## Security
 ## Security
 
 
-Avoid overwriting the [`Content-Security-Policy`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP) header with directives such as `more_set_headers "Content-Security-Policy: ..."` or `add_header 'Content-Security-Policy' '...'`.
+Avoid overwriting the [`Content-Security-Policy`](https://developer.mozilla.org/docs/Web/HTTP/Guides/CSP) header with directives such as `more_set_headers "Content-Security-Policy: ..."` or `add_header 'Content-Security-Policy' '...'`.
 
 
 ✅ Example of good CSP: `default-src 'self'; frame-ancestors 'self'`
 ✅ Example of good CSP: `default-src 'self'; frame-ancestors 'self'`
 
 

+ 1 - 1
docs/en/admins/14_CloudProviders.md

@@ -8,7 +8,7 @@ Some hosting platforms provide documentation to install FreshRSS, or even better
 
 
 You might also use a ready-to-go FreshRSS instance, shared between multiple users.
 You might also use a ready-to-go FreshRSS instance, shared between multiple users.
 
 
-* [Hostux](https://hostux.network/fr/) (FR)
+* [Hostux](https://hostux.net/fr/) (FR)
 * [Siick](https://services.siick.fr/) (FR)
 * [Siick](https://services.siick.fr/) (FR)
 * [Zaclys](https://www.zaclys.com/flux/) (FR)
 * [Zaclys](https://www.zaclys.com/flux/) (FR)
 * [Chère de Prince](https://cheredeprince.net/services/) (FR)
 * [Chère de Prince](https://cheredeprince.net/services/) (FR)

+ 1 - 1
docs/en/admins/16_OpenID-Connect-Authentik.md

@@ -2,7 +2,7 @@
 
 
 **[authentik](https://goauthentik.io/)** is an open-source Identity Provider compatible with OpenID Connect (OIDC) (see [FreshRSS’ OpenID Connect documentation](16_OpenID-Connect.md)).
 **[authentik](https://goauthentik.io/)** is an open-source Identity Provider compatible with OpenID Connect (OIDC) (see [FreshRSS’ OpenID Connect documentation](16_OpenID-Connect.md)).
 
 
-You can find more information in [authentik integrations documentation](https://goauthentik.io/integrations/services/freshrss/).
+You can find more information in [authentik integrations documentation](https://integrations.goauthentik.io/services/freshrss/).
 
 
 ## 1. Create OAuth2/OpenID Provider
 ## 1. Create OAuth2/OpenID Provider
 
 

+ 2 - 2
docs/en/admins/16_OpenID-Connect.md

@@ -1,6 +1,6 @@
 # OpenID Connect (OIDC)
 # OpenID Connect (OIDC)
 
 
-See: [What is OpenID Connect?](https://openid.net/connect/).
+See: [What is OpenID Connect?](https://openid.net/developers/how-connect-works/).
 
 
 This is one of the [access control methods](09_AccessControl.md) supported by FreshRSS.
 This is one of the [access control methods](09_AccessControl.md) supported by FreshRSS.
 
 
@@ -63,6 +63,6 @@ See our reference [Apache configuration](https://github.com/FreshRSS/FreshRSS/bl
 
 
 See specific instructions for:
 See specific instructions for:
 
 
-* Authentik: [here (freshrss.org)](16_OpenID-Connect-Authentik.md) or [here (goauthentik.io)](https://goauthentik.io/integrations/services/freshrss/)
+* Authentik: [here (freshrss.org)](16_OpenID-Connect-Authentik.md) or [here (goauthentik.io)](https://integrations.goauthentik.io/services/freshrss/)
 * Authelia: [here (authelia.com)](https://www.authelia.com/integration/openid-connect/freshrss/)
 * Authelia: [here (authelia.com)](https://www.authelia.com/integration/openid-connect/freshrss/)
 * Pocket ID: [here (freshrss.org)](18_Pocket-ID.md)
 * Pocket ID: [here (freshrss.org)](18_Pocket-ID.md)

+ 4 - 4
docs/en/admins/18_Pocket-ID.md

@@ -1,9 +1,9 @@
 # Setting up Pocket ID
 # Setting up Pocket ID
 
 
-**[Pocket ID](https://github.com/stonith404/pocket-id)** is a simple OIDC provider that allows users to authenticate with their passkeys to your services.
+**[Pocket ID](https://github.com/pocket-id/pocket-id)** is a simple OIDC provider that allows users to authenticate with their passkeys to your services.
 (See [FreshRSS’ OpenID Connect documentation](16_OpenID-Connect.md)).
 (See [FreshRSS’ OpenID Connect documentation](16_OpenID-Connect.md)).
 
 
-You can find more information in the [Pocket ID documentation](https://docs.pocket-id.org/introduction).
+You can find more information in the [Pocket ID documentation](https://pocket-id.org/docs).
 
 
 ## 1. Create OAuth2/OpenID Provider
 ## 1. Create OAuth2/OpenID Provider
 
 
@@ -12,7 +12,7 @@ Click on **Add OIDC Client** in the Pocket ID Web UI:
 ![pocket-id-1](../img/admins/pocket-id-1.png)
 ![pocket-id-1](../img/admins/pocket-id-1.png)
 
 
 Give the client a name. Under callback URLs, put the URL for your FreshRSS instance as such:
 Give the client a name. Under callback URLs, put the URL for your FreshRSS instance as such:
-`https://freshrss.your.domain/i/oidc/`.
+`https://freshrss.example.net/i/oidc/`.
 (Optional) Upload a logo for the client. Click Save.
 (Optional) Upload a logo for the client. Click Save.
 
 
 OIDC credentials for the client will be generated. Click *Show more details* to view all generated fields.
 OIDC credentials for the client will be generated. Click *Show more details* to view all generated fields.
@@ -42,7 +42,7 @@ services:
       OIDC_ENABLED: 1
       OIDC_ENABLED: 1
       OIDC_CLIENT_ID: <POCKET_ID_CLIENT_ID>
       OIDC_CLIENT_ID: <POCKET_ID_CLIENT_ID>
       OIDC_CLIENT_SECRET: <POCKET_ID_SECRET>
       OIDC_CLIENT_SECRET: <POCKET_ID_SECRET>
-      OIDC_PROVIDER_METADATA_URL: https://pocketid.your.domain/.well-known/openid-configuration
+      OIDC_PROVIDER_METADATA_URL: https://pocketid.example.net/.well-known/openid-configuration
       OIDC_SCOPES: openid email profile
       OIDC_SCOPES: openid email profile
       OIDC_X_FORWARDED_HEADERS: X-Forwarded-Proto X-Forwarded-Host
       OIDC_X_FORWARDED_HEADERS: X-Forwarded-Proto X-Forwarded-Host
       OIDC_REMOTE_USER_CLAIM: preferred_username
       OIDC_REMOTE_USER_CLAIM: preferred_username

+ 4 - 4
docs/en/contributing.md

@@ -25,16 +25,16 @@ We also need some information:
 * Your storage system (SQLite, MySQL, MariaDB, PostgreSQL)
 * Your storage system (SQLite, MySQL, MariaDB, PostgreSQL)
 * If possible, the related logs (PHP logs and FreshRSS logs under `data/users/your_user/log.txt`)
 * If possible, the related logs (PHP logs and FreshRSS logs under `data/users/your_user/log.txt`)
 
 
-For a more detailed guide on writing bug reports, please refer to [the in-depth guide on reporting bugs](developers/06_Reporting_Bugs).
+For a more detailed guide on writing bug reports, please refer to [the in-depth guide on reporting bugs](./developers/06_Reporting_Bugs.md).
 
 
 ## Fix a bug
 ## Fix a bug
 
 
 Would you like to fix a bug? For optimum coordination between collaborators, you should follow these indications:
 Would you like to fix a bug? For optimum coordination between collaborators, you should follow these indications:
 
 
 1. Be sure the bug is associated with a ticket and indicate that you’ll work on it.
 1. Be sure the bug is associated with a ticket and indicate that you’ll work on it.
-2. [Fork the project repository](https://help.github.com/articles/fork-a-repo/).
-3. [Create a new branch](https://help.github.com/articles/creating-and-deleting-branches-within-your-repository/). The name of the branch should be clear, and ideally prefixed by the related ticket id. For instance, `783-contributing-file` to fix [ticket #783](https://github.com/FreshRSS/FreshRSS/issues/783).
-4. Make your changes to your fork and [send a pull request](https://help.github.com/articles/using-pull-requests/) on the **edge branch**. Don’t forget to add your name to `CREDITS.md` if you’re contributing to FreshRSS for the very first time.
+2. [Fork the project repository](https://docs.github.com/en/pull-requests/how-tos/work-with-forks/fork-a-repo).
+3. [Create a new branch](https://docs.github.com/en/pull-requests/how-tos/commit-changes/managing-branches-within-your-repository). The name of the branch should be clear, and ideally prefixed by the related ticket id. For instance, `783-contributing-file` to fix [ticket #783](https://github.com/FreshRSS/FreshRSS/issues/783).
+4. Make your changes to your fork and [send a pull request](https://docs.github.com/en/pull-requests/reference/pull-requests) on the **edge branch**. Don’t forget to add your name to `CREDITS.md` if you’re contributing to FreshRSS for the very first time.
 
 
 If you have to write code, please follow [our coding style recommendations](developers/02_First_steps.md).
 If you have to write code, please follow [our coding style recommendations](developers/02_First_steps.md).
 
 

+ 3 - 3
docs/en/developers/02_First_steps.md

@@ -8,7 +8,7 @@ We assume here that you use a GNU/Linux distribution, capable of running Docker.
 
 
 The commands that follow have to be executed in a console. They start by `$` when commands need to be executed as normal user, and by `#` when they need to be executed as root user. You don’t have to type these characters. A path may be indicated before these characters to help you identify where they need to be executed. For instance, `app$ echo 'Hello World'` indicates that you have to execute `echo` command in the `app/` directory.
 The commands that follow have to be executed in a console. They start by `$` when commands need to be executed as normal user, and by `#` when they need to be executed as root user. You don’t have to type these characters. A path may be indicated before these characters to help you identify where they need to be executed. For instance, `app$ echo 'Hello World'` indicates that you have to execute `echo` command in the `app/` directory.
 
 
-First, you need to install [Docker](https://docs.docker.com/install/linux/docker-ce/ubuntu/).
+First, you need to install [Docker](https://docs.docker.com/engine/install/ubuntu/).
 
 
 Once you’re done, clone the repository with:
 Once you’re done, clone the repository with:
 
 
@@ -85,7 +85,7 @@ This requires `make` and `npm` in addition to the FreshRSS requirements. See bel
 
 
 ### Debian / Ubuntu
 ### Debian / Ubuntu
 
 
-> ℹ️ Also applies to [Microsoft Windows](https://docs.microsoft.com/windows/wsl/install-win10) thanks to [WSL](https://ubuntu.com/wsl).
+> ℹ️ Also applies to [Microsoft Windows](https://learn.microsoft.com/en-us/windows/wsl/install) thanks to [WSL](https://ubuntu.com/wsl).
 
 
 Here are the dependencies that need to be manually installed prior to running the fixes & tests.
 Here are the dependencies that need to be manually installed prior to running the fixes & tests.
 
 
@@ -121,7 +121,7 @@ A short (not complete) summary:
 > ℹ Check [`php.instructions.md`](https://github.com/FreshRSS/FreshRSS/blob/edge/.github/instructions/php.instructions.md) for detailed coding conventions (both for humans and AI agents).
 > ℹ Check [`php.instructions.md`](https://github.com/FreshRSS/FreshRSS/blob/edge/.github/instructions/php.instructions.md) for detailed coding conventions (both for humans and AI agents).
 
 
 - Syntax of `php` and `phtml` files is checked.
 - Syntax of `php` and `phtml` files is checked.
-- translation files (`i18n`) are checked ([more information about i18n files](../internationalization.html)).
+- translation files (`i18n`) are checked ([more information about i18n files](../internationalization.md)).
 - unit test (`tests`) are run by [PHPunit](https://phpunit.de/).
 - unit test (`tests`) are run by [PHPunit](https://phpunit.de/).
 - Linter:
 - Linter:
   - [PHP_Codesniffer (phpcs)](https://github.com/squizlabs/PHP_CodeSniffer)
   - [PHP_Codesniffer (phpcs)](https://github.com/squizlabs/PHP_CodeSniffer)

+ 2 - 3
docs/en/developers/02_GitHub.md

@@ -6,8 +6,7 @@ If you are new to Git, here are some of the resources you might find useful:
 
 
 * [GitHub’s blog post](https://github.blog/news-insights/the-library/new-to-git/)
 * [GitHub’s blog post](https://github.blog/news-insights/the-library/new-to-git/)
 * <https://docs.github.com/en/github/getting-started-with-github/set-up-git>
 * <https://docs.github.com/en/github/getting-started-with-github/set-up-git>
-* <http://sixrevisions.com/resources/git-tutorials-beginners/>
-* <http://rogerdudler.github.io/git-guide/>
+* <https://rogerdudler.github.io/git-guide/>
 
 
 ## Getting the latest code from the FreshRSS repository
 ## Getting the latest code from the FreshRSS repository
 
 
@@ -59,4 +58,4 @@ A commit message should succinctly describe the changes on the first line. For e
 
 
 If necessary, this can be followed by a blank line and a longer explanation.
 If necessary, this can be followed by a blank line and a longer explanation.
 
 
-For further tips, see [here (chris.beams.io)](https://chris.beams.io/posts/git-commit/).
+For further tips, see [here (chris.beams.io)](https://chris.beams.io/git-commit).

+ 2 - 2
docs/en/developers/04_Pull_requests.md

@@ -56,13 +56,13 @@ Then, insert a blank line, and start to write the body. It’s usually wrapped a
 
 
 You also can add references (e.g., the URL to the initial ticket in the bug tracker, or a reference to some forum explaining a point).
 You also can add references (e.g., the URL to the initial ticket in the bug tracker, or a reference to some forum explaining a point).
 
 
-You can find more information about commit messages [on this blog post](https://chris.beams.io/posts/git-commit/).
+You can find more information about commit messages [in this blog post](https://chris.beams.io/git-commit).
 
 
 ## How to write tests
 ## How to write tests
 
 
 FreshRSS has few tests for now, but we’re working on it. We added this point to the checklist to help us to write more tests, and we would really appreciate it if you wrote a test that ensures your patch is working.
 FreshRSS has few tests for now, but we’re working on it. We added this point to the checklist to help us to write more tests, and we would really appreciate it if you wrote a test that ensures your patch is working.
 
 
-We use [PHPUnit](https://phpunit.de/) version 7.5 ([documentation](https://phpunit.readthedocs.io/en/7.5/)).
+We use [PHPUnit](https://phpunit.de/) ([documentation](https://docs.phpunit.de/en/13.3/)).
 
 
 You’ll find more information on how to run tests [in this document](03_Running_tests.md).
 You’ll find more information on how to run tests [in this document](03_Running_tests.md).
 
 

+ 2 - 2
docs/en/developers/05_Release_new_version.md

@@ -1,7 +1,7 @@
 # Preparing the release
 # Preparing the release
 
 
 In order to get as much feedback as possible before a release, it’s preferable to announce it on GitHub by creating a dedicated ticket
 In order to get as much feedback as possible before a release, it’s preferable to announce it on GitHub by creating a dedicated ticket
-([see examples](https://github.com/FreshRSS/FreshRSS/search?utf8=%E2%9C%93&q=Call+for+testing&type=Issues)). This should be done **at least one week in advance**.
+([see examples](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS%20Call%20for%20testing&type=Issues)). This should be done **at least one week in advance**.
 
 
 It’s also recommended to make the announcement on <mailing@freshrss.org>.
 It’s also recommended to make the announcement on <mailing@freshrss.org>.
 
 
@@ -35,7 +35,7 @@ The repository managing the code is located on GitHub: [FreshRSS/update.freshrss
 
 
 The scripts are located in the `./scripts/` directory and must take the form `update_to_x.y.z.z.php`. This directory  also contains `update_to_dev.php` intended for updates of the `edge` branch (this script must not include code specific to a particular version!) and `update_util.php`, which contains a list of functions useful for all scripts.
 The scripts are located in the `./scripts/` directory and must take the form `update_to_x.y.z.z.php`. This directory  also contains `update_to_dev.php` intended for updates of the `edge` branch (this script must not include code specific to a particular version!) and `update_util.php`, which contains a list of functions useful for all scripts.
 
 
-In order to write a new script, it’s better to copy/paste the last version or to start from `update_to_dev.php`. The first thing to do is to define the URL from which the FreshRSS package will be downloaded (`PACKAGE_URL`). The URL is in the form  of `https://codeload.github.com/FreshRSS/FreshRSS/zip/x.y.z`.
+In order to write a new script, it’s better to copy/paste the last version or to start from `update_to_dev.php`. The first thing to do is to define the URL from which the FreshRSS package will be downloaded (`PACKAGE_URL`). The URL is in the form of `https://codeload.github.com/FreshRSS/FreshRSS/zip/x.y.z`.
 
 
 There are then 5 functions that have to be executed:
 There are then 5 functions that have to be executed:
 
 

+ 16 - 16
docs/en/developers/06_Fever_API.md

@@ -23,7 +23,7 @@ Then point your mobile application to the `fever.php` address (e.g. `https://fre
 |:----------------------------------------------------------------------------------:|:-------------------:|:--------------------------------------------------------:|
 |:----------------------------------------------------------------------------------:|:-------------------:|:--------------------------------------------------------:|
 |[Fluent Reader](https://hyliu.me/fluent-reader/)                                    |Windows, Linux, macOS|[BSD-3-Clause](https://github.com/yang991178/fluent-reader/blob/master/LICENSE)|
 |[Fluent Reader](https://hyliu.me/fluent-reader/)                                    |Windows, Linux, macOS|[BSD-3-Clause](https://github.com/yang991178/fluent-reader/blob/master/LICENSE)|
 |[Fluent Reader lite](https://hyliu.me/fluent-reader-lite/)                          |Android, iOS         |[BSD-3-Clause](https://github.com/yang991178/fluent-reader-lite)|
 |[Fluent Reader lite](https://hyliu.me/fluent-reader-lite/)                          |Android, iOS         |[BSD-3-Clause](https://github.com/yang991178/fluent-reader-lite)|
-|[Read You](https://github.com/Ashinch/ReadYou/)                                     |Android              |[GPLv3](https://github.com/Ashinch/ReadYou/blob/main/LICENSE)|
+|[Read You](https://github.com/ReadYouApp/ReadYou)                                     |Android              |[GPLv3](https://github.com/ReadYouApp/ReadYou/blob/main/LICENSE)|
 |[Fiery Feeds](https://voidstern.net/fiery-feeds)       |iOS                  |Closed Source                                             |
 |[Fiery Feeds](https://voidstern.net/fiery-feeds)       |iOS                  |Closed Source                                             |
 |[Newsflash](https://gitlab.com/news-flash/news_flash_gtk/)                          |Linux                |[GPLv3](https://gitlab.com/news-flash/news_flash_gtk/)|
 |[Newsflash](https://gitlab.com/news-flash/news_flash_gtk/)                          |Linux                |[GPLv3](https://gitlab.com/news-flash/news_flash_gtk/)|
 |[Unread](https://www.goldenhillsoftware.com/unread/)                 |iOS                  |Closed Source                                             |
 |[Unread](https://www.goldenhillsoftware.com/unread/)                 |iOS                  |Closed Source                                             |
@@ -111,27 +111,27 @@ Then use your RSS client to query the API and afterwards check the file `fever.l
 
 
 ## Official Fever API reference (mirrored)
 ## Official Fever API reference (mirrored)
 
 
-The original Fever API documentation used to live at `https://feedafever.com/api` but is no longer online.
-As the [archived copy](https://web.archive.org/web/20230616124016/https://feedafever.com/api) may itself disappear over time, its content is mirrored below (converted from HTML to Markdown) for reference, with only the heading levels adjusted to fit this page.
+The original Fever API documentation used to live at `hxxps://feedafever[.]com/api` but is no longer online.
+As the [archived copy](https://web.archive.org/web/20230616124016/https://feedafever.com/api) may itself disappear over time, its content is mirrored below (converted from HTML to Markdown) for reference, with only the heading levels adjusted to fit this page, and some edited URLs.
 
 
 ## API Public Beta
 ## API Public Beta
 
 
 Fever 1.14 introduces the new Fever API. This API is in public beta and currently supports basic syncing and consuming of content. A subsequent update will allow for adding, editing and deleting feeds and groups. The API’s primary focus is maintaining a local cache of the data in a remote Fever installation.
 Fever 1.14 introduces the new Fever API. This API is in public beta and currently supports basic syncing and consuming of content. A subsequent update will allow for adding, editing and deleting feeds and groups. The API’s primary focus is maintaining a local cache of the data in a remote Fever installation.
 
 
-I am [soliciting feedback](https://feedafever.com/) from interested developers and as such the beta API may expand to reflect that feedback. The current API is incomplete but stable. Existing features may be expanded on but will not be removed or modified. New features may be added.
+I am [soliciting feedback](hxxps://feedafever.com/) from interested developers and as such the beta API may expand to reflect that feedback. The current API is incomplete but stable. Existing features may be expanded on but will not be removed or modified. New features may be added.
 
 
 ### Authentication
 ### Authentication
 
 
 Without further ado, the Fever API endpoint URL looks like:
 Without further ado, the Fever API endpoint URL looks like:
 
 
 ```text
 ```text
-http://yourdomain.com/fever/?api
+https://your.domain.example/fever/?api
 ```
 ```
 
 
 All requests must be authenticated with a `POST`ed `api_key`. The value of `api_key` should be the md5 checksum of the Fever accounts email address and password concatenated with a colon. An example of a valid value for `api_key` using PHP’s native `md5()` function:
 All requests must be authenticated with a `POST`ed `api_key`. The value of `api_key` should be the md5 checksum of the Fever accounts email address and password concatenated with a colon. An example of a valid value for `api_key` using PHP’s native `md5()` function:
 
 
 ```php
 ```php
-$email  = 'you@yourdomain.com';
+$email  = 'you@yourdomain.example';
 $pass   = 'b3stp4s4wd3v4';
 $pass   = 'b3stp4s4wd3v4';
 $api_key = md5($email.':'.$pass);
 $api_key = md5($email.':'.$pass);
 ```
 ```
@@ -146,7 +146,7 @@ The default response is a JSON object containing two members:
 The API can also return XML by passing `xml` as the optional value of the `api` argument like so:
 The API can also return XML by passing `xml` as the optional value of the `api` argument like so:
 
 
 ```text
 ```text
-http://yourdomain.com/fever/?api=xml
+https://your.domain.example/fever/?api=xml
 ```
 ```
 
 
 The top level XML element is named `response`.
 The top level XML element is named `response`.
@@ -162,7 +162,7 @@ When reading from the Fever API you add arguments to the query string of the API
 #### Groups
 #### Groups
 
 
 ```text
 ```text
-http://yourdomain.com/fever/?api&groups
+https://your.domain.example/fever/?api&groups
 ```
 ```
 
 
 A request with the `groups` argument will return two additional members:
 A request with the `groups` argument will return two additional members:
@@ -182,7 +182,7 @@ The “Kindling” super group is not included in this response and is composed
 #### Feeds
 #### Feeds
 
 
 ```text
 ```text
-http://yourdomain.com/fever/?api&feeds
+https://your.domain.example/fever/?api&feeds
 ```
 ```
 
 
 A request with the `feeds` argument will return two additional members:
 A request with the `feeds` argument will return two additional members:
@@ -216,7 +216,7 @@ A `feeds_group` object has the following members:
 #### Favicons
 #### Favicons
 
 
 ```text
 ```text
-http://yourdomain.com/fever/?api&favicons
+https://your.domain.example/fever/?api&favicons
 ```
 ```
 
 
 A request with the `favicons` argument will return one additional member:
 A request with the `favicons` argument will return one additional member:
@@ -243,7 +243,7 @@ echo '<img src="data:'.$favicon['data'].'">';
 #### Items
 #### Items
 
 
 ```text
 ```text
-http://yourdomain.com/fever/?api&items
+https://your.domain.example/fever/?api&items
 ```
 ```
 
 
 A request with the `items` argument will return two additional members:
 A request with the `items` argument will return two additional members:
@@ -272,7 +272,7 @@ Most servers won’t have enough memory allocated to PHP to dump all items at on
 #### Hot Links
 #### Hot Links
 
 
 ```text
 ```text
-http://yourdomain.com/fever/?api&links
+https://your.domain.example/fever/?api&links
 ```
 ```
 
 
 A request with the `links` argument will return one additional member:
 A request with the `links` argument will return one additional member:
@@ -295,7 +295,7 @@ A `link` object has the following members:
 When requesting hot links you can control the range and offset by specifying a length of days for each as well as a page to fetch additional hot links. A request with just the `links` argument is equivalent to:
 When requesting hot links you can control the range and offset by specifying a length of days for each as well as a page to fetch additional hot links. A request with just the `links` argument is equivalent to:
 
 
 ```text
 ```text
-http://yourdomain.com/fever/?api&links&offset=0&range=7&page=1
+https://your.domain.example/fever/?api&links&offset=0&range=7&page=1
 ```
 ```
 
 
 Or the first page (`page=1`) of Hot links for the past week (`range=7`) starting now (`offset=0`).
 Or the first page (`page=1`) of Hot links for the past week (`range=7`) starting now (`offset=0`).
@@ -311,7 +311,7 @@ Because Fever saves items and not individual links you can only "save" a Hot lin
 The `unread_item_ids` and `saved_item_ids` arguments can be used to keep your local cache synced with the remote Fever installation.
 The `unread_item_ids` and `saved_item_ids` arguments can be used to keep your local cache synced with the remote Fever installation.
 
 
 ```text
 ```text
-http://yourdomain.com/fever/?api&unread_item_ids
+https://your.domain.example/fever/?api&unread_item_ids
 ```
 ```
 
 
 A request with the `unread_item_ids` argument will return one additional member:
 A request with the `unread_item_ids` argument will return one additional member:
@@ -319,7 +319,7 @@ A request with the `unread_item_ids` argument will return one additional member:
 * `unread_item_ids` (string/comma-separated list of positive integers)
 * `unread_item_ids` (string/comma-separated list of positive integers)
 
 
 ```text
 ```text
-http://yourdomain.com/fever/?api&saved_item_ids
+https://your.domain.example/fever/?api&saved_item_ids
 ```
 ```
 
 
 A request with the `saved_item_ids` argument will return one additional member:
 A request with the `saved_item_ids` argument will return one additional member:
@@ -363,7 +363,7 @@ Similarly you can mark just the “Sparks” super group as read by adding the f
 * `id=-1`
 * `id=-1`
 * `before=?` where `?` is replaced with the Unix timestamp of the the local client’s last `items` API request
 * `before=?` where `?` is replaced with the Unix timestamp of the the local client’s last `items` API request
 
 
-Fever, its website and all related files are copyright © 2008-2023 [Shaun Inman](http://shauninman.com/).
+Fever, its website and all related files are copyright © 2008-2023 [Shaun Inman](https://shauninman.com/).
 
 
 ## Credits
 ## Credits
 
 

+ 3 - 4
docs/en/developers/06_GoogleReader_API.md

@@ -26,15 +26,14 @@ Then point your mobile application to the `greader.php` address (e.g. `https://f
 |:----------------------------------------------------------------------------------:|:-------------------:|:--------------------------------------------------------:|
 |:----------------------------------------------------------------------------------:|:-------------------:|:--------------------------------------------------------:|
 |[News+](https://github.com/noinnion/newsplus/blob/master/apk/NewsPlus_202.apk) with [News+ Google Reader extension](https://github.com/noinnion/newsplus/blob/master/apk/GoogleReaderCloneExtension_101.apk) |Android|Closed Source (Free), [partially open source](https://github.com/noinnion/newsplus/blob/master/extensions/GoogleReaderCloneExtension/src/com/noinnion/android/newsplus/extension/google_reader/GoogleReaderClient.java)|
 |[News+](https://github.com/noinnion/newsplus/blob/master/apk/NewsPlus_202.apk) with [News+ Google Reader extension](https://github.com/noinnion/newsplus/blob/master/apk/GoogleReaderCloneExtension_101.apk) |Android|Closed Source (Free), [partially open source](https://github.com/noinnion/newsplus/blob/master/extensions/GoogleReaderCloneExtension/src/com/noinnion/android/newsplus/extension/google_reader/GoogleReaderClient.java)|
 |[FeedMe 3.5.3+](https://play.google.com/store/apps/details?id=com.seazon.feedme) |Android                  |Closed Source (Free)                                             |
 |[FeedMe 3.5.3+](https://play.google.com/store/apps/details?id=com.seazon.feedme) |Android                  |Closed Source (Free)                                             |
-|[EasyRSS](https://github.com/Alkarex/EasyRSS)                          |Android                |[GPLv3](https://github.com/Alkarex/EasyRSS/blob/master/license.txt) ([F-Droid](https://f-droid.org/packages/org.freshrss.easyrss/))|
 |[Readrops](https://github.com/readrops/Readrops) |Android                  |[GPLv3](https://github.com/readrops/Readrops/blob/develop/LICENSE)                                             |
 |[Readrops](https://github.com/readrops/Readrops) |Android                  |[GPLv3](https://github.com/readrops/Readrops/blob/develop/LICENSE)                                             |
 |[Fluent Reader Lite](https://hyliu.me/fluent-reader-lite/) |Android, iOS            |[BSD-3](https://github.com/yang991178/fluent-reader-lite)                                             |
 |[Fluent Reader Lite](https://hyliu.me/fluent-reader-lite/) |Android, iOS            |[BSD-3](https://github.com/yang991178/fluent-reader-lite)                                             |
-|[Read You](https://github.com/Ashinch/ReadYou/)                                     |Android              |[GPLv3](https://github.com/Ashinch/ReadYou/blob/main/LICENSE)|
+|[Read You](https://github.com/ReadYouApp/ReadYou)                                     |Android              |[GPLv3](https://github.com/ReadYouApp/ReadYou/blob/main/LICENSE)|
 |[FocusReader](https://play.google.com/store/apps/details?id=allen.town.focus.reader) |Android                  |Closed Source(Free)                                              |
 |[FocusReader](https://play.google.com/store/apps/details?id=allen.town.focus.reader) |Android                  |Closed Source(Free)                                              |
 |[Newsflash](https://gitlab.com/news-flash/news_flash_gtk/)                          |Linux                |[GPLv3](https://gitlab.com/news-flash/news_flash_gtk/) |
 |[Newsflash](https://gitlab.com/news-flash/news_flash_gtk/)                          |Linux                |[GPLv3](https://gitlab.com/news-flash/news_flash_gtk/) |
 |[lire](https://lireapp.com/)                                                        |iOS, macOS           |Closed Source                                             |
 |[lire](https://lireapp.com/)                                                        |iOS, macOS           |Closed Source                                             |
 |[Newsboat 2.24+](https://newsboat.org/)                           |Linux                |[MIT](https://github.com/newsboat/newsboat/blob/master/LICENSE)                                              |
 |[Newsboat 2.24+](https://newsboat.org/)                           |Linux                |[MIT](https://github.com/newsboat/newsboat/blob/master/LICENSE)                                              |
-|[Vienna RSS](http://www.vienna-rss.com/)                           |macOS                |[Apache-2.0](https://github.com/ViennaRSS/vienna-rss/blob/master/LICENCE.md)                                              |
+|[Vienna RSS](https://www.vienna-rss.com/)                           |macOS                |[Apache-2.0](https://github.com/ViennaRSS/vienna-rss/blob/master/LICENCE.md)                                              |
 |[Reeder Classic](https://www.reederapp.com/classic/)           |macOS, iOS                |Closed Source                                              |
 |[Reeder Classic](https://www.reederapp.com/classic/)           |macOS, iOS                |Closed Source                                              |
 |[FreshRSS-Notify](https://addons.mozilla.org/firefox/addon/freshrss-notify-webextension/)                           |Firefox                |Open Source                                              |
 |[FreshRSS-Notify](https://addons.mozilla.org/firefox/addon/freshrss-notify-webextension/)                           |Firefox                |Open Source                                              |
 
 
@@ -80,7 +79,7 @@ curl -H "Authorization:GoogleLogin auth=alice/8e6845e089457af25303abc6f53356eb60
 
 
 * [By Daniel Arowser](https://web.archive.org/web/20130710044440/http://undoc.in/api.html) ([source](https://github.com/arowser/google-reader-api))
 * [By Daniel Arowser](https://web.archive.org/web/20130710044440/http://undoc.in/api.html) ([source](https://github.com/arowser/google-reader-api))
 * [By Martin Doms](https://web.archive.org/web/20210126115837/https://blog.martindoms.com/2009/10/16/using-the-google-reader-api-part-2/)
 * [By Martin Doms](https://web.archive.org/web/20210126115837/https://blog.martindoms.com/2009/10/16/using-the-google-reader-api-part-2/)
-* [By Nick Bradbury](https://inessential.com/2013/03/14/google_reader_api_documentation)
+* [By Nick Bradbury](https://inessential.com/2013/03/14/google_reader_api_documentation.html)
 * [By Niall Kennedy](https://web.archive.org/web/20170426184845/http://www.niallkennedy.com/blog/2005/12/google-reader-api.html)
 * [By Niall Kennedy](https://web.archive.org/web/20170426184845/http://www.niallkennedy.com/blog/2005/12/google-reader-api.html)
 * [By Mihai Parparita](https://web.archive.org/web/20140919042419/http://code.google.com/p/google-reader-api/w/list) ([source](https://github.com/mihaip/google-reader-api))
 * [By Mihai Parparita](https://web.archive.org/web/20140919042419/http://code.google.com/p/google-reader-api/w/list) ([source](https://github.com/mihaip/google-reader-api))
 
 

+ 1 - 1
docs/en/developers/Minz/migrations.md

@@ -34,6 +34,6 @@ class FreshRSS_Migration_2020_01_11_CreateFooTable {
 
 
 They are automatically applied one by one when a user accesses FreshRSS.
 They are automatically applied one by one when a user accesses FreshRSS.
 
 
-Before being applied, migrations are sorted by filenames (see the [`strnatcmp`](https://php.net/strnatcmp) function). Already applied migrations are skipped (the list can be found in the `data/applied_migrations.txt` file).
+Before being applied, migrations are sorted by filenames (see the [`strnatcmp`](https://www.php.net/strnatcmp) function). Already applied migrations are skipped (the list can be found in the `data/applied_migrations.txt` file).
 
 
 To ensure migrations are not applied several times if two users access FreshRSS at the same time, a folder named `data/applied_migrations.txt.lock` is created, then deleted at the end of the process.
 To ensure migrations are not applied several times if two users access FreshRSS at the same time, a folder named `data/applied_migrations.txt.lock` is created, then deleted at the end of the process.

+ 3 - 3
docs/en/developers/OPML.md

@@ -3,7 +3,7 @@
 FreshRSS supports the [OPML](https://en.wikipedia.org/wiki/OPML) format to export and import lists of RSS/Atom feeds in a standard way, compatible with several other RSS aggregators.
 FreshRSS supports the [OPML](https://en.wikipedia.org/wiki/OPML) format to export and import lists of RSS/Atom feeds in a standard way, compatible with several other RSS aggregators.
 
 
 However, FreshRSS also supports several additional features not covered by the basic OPML specification.
 However, FreshRSS also supports several additional features not covered by the basic OPML specification.
-Luckily, the [OPML specification](http://opml.org/spec2.opml) allows extensions:
+Luckily, the [OPML specification](https://opml.org/spec2.opml) allows extensions:
 
 
 > *An OPML file may contain elements and attributes not described on this page, only if those elements are defined in a namespace.*
 > *An OPML file may contain elements and attributes not described on this page, only if those elements are defined in a namespace.*
 
 
@@ -93,9 +93,9 @@ A number of [cURL options](https://curl.se/libcurl/c/curl_easy_setopt.html) are
 * `frss:unicityCriteria`: Criteria used for the unicity of articles. E.g. `id` (default), `link`, `sha1:link_published`, `sha1:link_published_title`, `sha1:title`, [etc](https://github.com/FreshRSS/FreshRSS/blob/1c92d55917029d291d00009b674d8552934a69ec/app/Models/Feed.php#L652-L666).
 * `frss:unicityCriteria`: Criteria used for the unicity of articles. E.g. `id` (default), `link`, `sha1:link_published`, `sha1:link_published_title`, `sha1:title`, [etc](https://github.com/FreshRSS/FreshRSS/blob/1c92d55917029d291d00009b674d8552934a69ec/app/Models/Feed.php#L652-L666).
 * `frss:unicityCriteriaForced`: Boolean to force the usage of the selected unicity criterion even in the case of many duplicates (otherwise, the default behaviour is to fall back to a more precise unicity criteria).
 * `frss:unicityCriteriaForced`: Boolean to force the usage of the selected unicity criterion even in the case of many duplicates (otherwise, the default behaviour is to fall back to a more precise unicity criteria).
 * `frss:ttl`: Refresh interval of the feed, in seconds. A negative value indicates a muted feed (automatic refresh disabled). When absent, the importing instance’s default refresh interval is used.
 * `frss:ttl`: Refresh interval of the feed, in seconds. A negative value indicates a muted feed (automatic refresh disabled). When absent, the importing instance’s default refresh interval is used.
-* `frss:cssFullContent`: [CSS Selector](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors) to enable the download and extraction of the matching HTML section of each articles’ Web address.
+* `frss:cssFullContent`: [CSS Selector](https://developer.mozilla.org/docs/Web/CSS/Guides/Selectors) to enable the download and extraction of the matching HTML section of each articles’ Web address.
 	* Example: `div.main, .summary`
 	* Example: `div.main, .summary`
-* `frss:cssContentFilter`: [CSS Selector](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors) to remove the matching HTML elements from the article content or from the full content retrieved by `frss:cssFullContent`.
+* `frss:cssContentFilter`: [CSS Selector](https://developer.mozilla.org/docs/Web/CSS/Guides/Selectors) to remove the matching HTML elements from the article content or from the full content retrieved by `frss:cssFullContent`.
 	* Example: `.footer, .aside`
 	* Example: `.footer, .aside`
 . `frss:cssFullContentConditions`: List (separated by a new line) of search queries to trigger a full content retrieval as defined by `frss:cssFullContent`.
 . `frss:cssFullContentConditions`: List (separated by a new line) of search queries to trigger a full content retrieval as defined by `frss:cssFullContent`.
 * `frss:filtersActionRead`: List (separated by a new line) of search queries to automatically mark a new article as read.
 * `frss:filtersActionRead`: List (separated by a new line) of search queries to automatically mark a new article as read.

+ 5 - 5
docs/en/index.md

@@ -14,12 +14,12 @@ FreshRSS has a lot of features including:
 
 
 * RSS and Atom aggregation
 * RSS and Atom aggregation
 * Mark article as favorite if you liked it or if you want to read it later
 * Mark article as favorite if you liked it or if you want to read it later
-* Filter and search functionality helps to easily find articles ([more information](./users/10_filter.html))
+* Filter and search functionality helps to easily find articles ([more information](./users/10_filter.md))
 * Statistics to show you the publishing frequency all the websites you follow
 * Statistics to show you the publishing frequency all the websites you follow
-* Import/export of your feeds into OPML format ([more information](./users/04_Subscriptions.html#import--export))
-* Several themes created by the community ([more information](./admins/11_Themes.html))
-* Several extensions created by the community ([more information](./admins/15_extensions.html))
-* "Google Reader"-like API to connect Android applications ([more information](./users/06_Mobile_access.html#access-via-mobile-app))
+* Import/export of your feeds into OPML format ([more information](./users/04_Subscriptions.md#import--export))
+* Several themes created by the community ([more information](./admins/11_Themes.md))
+* Several extensions created by the community ([more information](./admins/15_extensions.md))
+* "Google Reader"-like API to connect Android applications ([more information](./users/06_Mobile_access.md#access-via-mobile-app))
 * The application is "responsive," which means it adapts to small screens so you can bring articles in your pocket
 * The application is "responsive," which means it adapts to small screens so you can bring articles in your pocket
 * Self-hosted: the code is free ([under AGPL3 licence](https://github.com/FreshRSS/FreshRSS/blob/edge/LICENSE.txt)), so you can host your own instance of FreshRSS ([more information](./admins/02_Prerequisites.md))
 * Self-hosted: the code is free ([under AGPL3 licence](https://github.com/FreshRSS/FreshRSS/blob/edge/LICENSE.txt)), so you can host your own instance of FreshRSS ([more information](./admins/02_Prerequisites.md))
 * Multi-user, so you can also host for your friends and family ([more information](./admins/12_User_management.md))
 * Multi-user, so you can also host for your friends and family ([more information](./admins/12_User_management.md))

+ 3 - 3
docs/en/internationalization.md

@@ -6,7 +6,7 @@ Thanks to our contributors, FreshRSS is translated into [more than 20 languages]
 
 
 It is common (and that’s an understatement) to want to show some text to the user. The problem is that FreshRSS has users of different nationalities. It is therefore necessary to be able to manage different languages in order not to remain confined to English or French.
 It is common (and that’s an understatement) to want to show some text to the user. The problem is that FreshRSS has users of different nationalities. It is therefore necessary to be able to manage different languages in order not to remain confined to English or French.
 
 
-The solution is to use the `Minz_Translate` module, which allows dynamic translation of FreshRSS. Before using this module, it is necessary to know where to find the strings to be translated. Each language has its own subdirectory in a parent directory named `app/i18n/`. For example, English language files are located in [`app/i18n/en/`](/app/i18n/en/). There are seven different files:
+The solution is to use the `Minz_Translate` module, which allows dynamic translation of FreshRSS. Before using this module, it is necessary to know where to find the strings to be translated. Each language has its own subdirectory in a parent directory named `app/i18n/`. For example, English language files are located in [`app/i18n/en/`](https://github.com/FreshRSS/FreshRSS/tree/edge/app/i18n/en). There are seven different files:
 
 
 * `admin.php` for anything related to FreshRSS administration
 * `admin.php` for anything related to FreshRSS administration
 * `conf.php` for configuration
 * `conf.php` for configuration
@@ -19,7 +19,7 @@ The solution is to use the `Minz_Translate` module, which allows dynamic transla
 
 
 This organization makes it possible to avoid a single huge translation file.
 This organization makes it possible to avoid a single huge translation file.
 
 
-The translation files are quite simple: it’s only a matter of returning a PHP array containing the translations. As an example, here’s an extract from [`app/i18n/fr/gen.php`](/app/i18n/fr/gen.php):
+The translation files are quite simple: it’s only a matter of returning a PHP array containing the translations. As an example, here’s an extract from [`app/i18n/fr/gen.php`](https://github.com/FreshRSS/FreshRSS/blob/edge/app/i18n/fr/gen.php):
 
 
 ```php
 ```php
 <?php
 <?php
@@ -126,7 +126,7 @@ To access these translations, you must use the `_t()` function (which is a short
 
 
 The function expects a translation key, but there’s a special case that sometimes makes life easier: the `_` identifier. This must necessarily be present at the end of the chain and gives a value to the higher-level identifier. It’s pretty hard to explain but very simple to understand. In the example given above, an `_` is associated with the value `FreshRSS`: this means that there is no need to write `_t('gen.freshrss._')` but `_t('gen.freshrss')` suffices.
 The function expects a translation key, but there’s a special case that sometimes makes life easier: the `_` identifier. This must necessarily be present at the end of the chain and gives a value to the higher-level identifier. It’s pretty hard to explain but very simple to understand. In the example given above, an `_` is associated with the value `FreshRSS`: this means that there is no need to write `_t('gen.freshrss._')` but `_t('gen.freshrss')` suffices.
 
 
-`_t()` can take any number of variables. The variables will then be replaced in the translation if it contains some “conversion specifications” (usually `%s` or `%d`). You can learn more about these specifications in the [`sprintf()` PHP function documentation](https://www.php.net/manual/function.sprintf).
+`_t()` can take any number of variables. The variables will then be replaced in the translation if it contains some “conversion specifications” (usually `%s` or `%d`). You can learn more about these specifications in the [`sprintf()` PHP function documentation](https://www.php.net/function.sprintf).
 
 
 For instance, the English translation for `gen.auth.keep_logged_in` is `Keep me logged in <small>(%s days)</small>`. It means this translation expects a string to be passed as an argument to the `t()` function (well, it should be a `%d` because we want a number here, but it doesn’t matter). For instance:
 For instance, the English translation for `gen.auth.keep_logged_in` is `Keep me logged in <small>(%s days)</small>`. It means this translation expects a string to be passed as an argument to the `t()` function (well, it should be a `%d` because we want a number here, but it doesn’t matter). For instance:
 
 

+ 1 - 1
docs/en/users/04_Subscriptions.md

@@ -45,7 +45,7 @@ This question comes up regularly, so we’ll try to clarify how one can retrieve
 
 
 Please be aware that this way you’ll generate much more traffic to the originating sites, and they might block you accordingly. FreshRSS performance is also negatively affected, because you’ll have to fetch the full article content one by one. So it’s a feature to use sparingly!
 Please be aware that this way you’ll generate much more traffic to the originating sites, and they might block you accordingly. FreshRSS performance is also negatively affected, because you’ll have to fetch the full article content one by one. So it’s a feature to use sparingly!
 
 
-The  "Article CSS selector on original website" corresponds to the "path" consisting of IDs and classes (which in HTML, matches the id and class attributes) to retrieve only the interesting part that corresponds to the article. Ideally, this path starts with an id (which is unique to the page). The basics are explained [here (MDN)](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Selectors).
+The  "Article CSS selector on original website" corresponds to the "path" consisting of IDs and classes (which in HTML, matches the id and class attributes) to retrieve only the interesting part that corresponds to the article. Ideally, this path starts with an id (which is unique to the page). The basics are explained [here (MDN)](https://developer.mozilla.org/docs/Learn_web_development/Core/Styling_basics/Basic_selectors).
 
 
 ##### Example: Rue89
 ##### Example: Rue89
 
 

+ 1 - 1
docs/en/users/05_Configuration.md

@@ -255,4 +255,4 @@ AuthType Basic
 Require user marie
 Require user marie
 ```
 ```
 
 
-More information can be found in the [Apache documentation](http://httpd.apache.org/docs/trunk/howto/auth.html#gettingitworking).
+More information can be found in the [Apache documentation](https://httpd.apache.org/docs/trunk/howto/auth.html#gettingitworking).

+ 5 - 5
docs/en/users/06_Mobile_access.md

@@ -40,18 +40,18 @@ See the [page about the Fever compatible API](../developers/06_Fever_API.md) for
 
 
 * Click on the second link “Check partial server configuration (without `%2F` support)”:
 * Click on the second link “Check partial server configuration (without `%2F` support)”:
 	* If you get `PASS`, then the problem is indeed that your server does not accept slashes `/` that are escaped `%2F`.
 	* If you get `PASS`, then the problem is indeed that your server does not accept slashes `/` that are escaped `%2F`.
-		* With Apache, remember the directive [`AllowEncodedSlashes On`](http://httpd.apache.org/docs/trunk/mod/core.html#allowencodedslashes)
+		* With Apache, remember the directive [`AllowEncodedSlashes On`](https://httpd.apache.org/docs/trunk/mod/core.html#allowencodedslashes)
 		* Or use a client that does not escape slashes (such as EasyRSS) ([`check client list`](https://github.com/FreshRSS/FreshRSS#apis--native-apps)).
 		* Or use a client that does not escape slashes (such as EasyRSS) ([`check client list`](https://github.com/FreshRSS/FreshRSS#apis--native-apps)).
 	* If you get *Service Unavailable!*, then check the preceding section “Enable the API in FreshRSS” again.
 	* If you get *Service Unavailable!*, then check the preceding section “Enable the API in FreshRSS” again.
 	* With __Apache__:
 	* With __Apache__:
-		* If you get *FAIL getallheaders!*, the combination of your PHP version and your Web server does not provide access to [`getallheaders`](http://php.net/getallheaders)
+		* If you get *FAIL getallheaders!*, the combination of your PHP version and your Web server does not provide access to [`getallheaders`](https://www.php.net/getallheaders)
 			* Turn on Apache `mod_setenvif` (often enabled by default), or `mod_rewrite` with the following procedure:
 			* Turn on Apache `mod_setenvif` (often enabled by default), or `mod_rewrite` with the following procedure:
-				* Allow [`FileInfo` in `.htaccess`](http://httpd.apache.org/docs/trunk/mod/core.html#allowoverride): see the [server setup](../admins/03_Installation.md) again.
-				* Enable [`mod_rewrite`](http://httpd.apache.org/docs/trunk/mod/mod_rewrite.html):
+				* Allow [`FileInfo` in `.htaccess`](https://httpd.apache.org/docs/trunk/mod/core.html#allowoverride): see the [server setup](../admins/03_Installation.md) again.
+				* Enable [`mod_rewrite`](https://httpd.apache.org/docs/trunk/mod/mod_rewrite.html):
 					* With Debian / Ubuntu: `sudo a2enmod rewrite`
 					* With Debian / Ubuntu: `sudo a2enmod rewrite`
 	* With __nginx__:
 	* With __nginx__:
 		* If you get *Bad Request!*, check your server `PATH_INFO` configuration.
 		* If you get *Bad Request!*, check your server `PATH_INFO` configuration.
 		* If you get *File not found!*, check your server `fastcgi_split_path_info`.
 		* If you get *File not found!*, check your server `fastcgi_split_path_info`.
-	* If you get *FAIL 64-bit or GMP extension!*, then your PHP version does not pass the requirement of being 64-bit and/or have PHP [GMP](http://php.net/gmp) extension.
+	* If you get *FAIL 64-bit or GMP extension!*, then your PHP version does not pass the requirement of being 64-bit and/or have PHP [GMP](https://www.php.net/gmp) extension.
 		* The easiest is to add the GMP extension. On Debian / Ubuntu: `sudo apt install php-gmp`
 		* The easiest is to add the GMP extension. On Debian / Ubuntu: `sudo apt install php-gmp`
 	* Update and try again from the preceding section “Testing”.
 	* Update and try again from the preceding section “Testing”.

+ 2 - 2
docs/en/users/07_Frequently_Asked_Questions.md

@@ -15,7 +15,7 @@ Of course, ```/i``` has a purpose! It’s used for performance and usability:
 
 
 To increase security, FreshRSS is hosted in two sections. The first section is public (the `./p` folder) and the second section is private (everything else). Therefore the `robots.txt` file is located in the `./p` sub-folder.
 To increase security, FreshRSS is hosted in two sections. The first section is public (the `./p` folder) and the second section is private (everything else). Therefore the `robots.txt` file is located in the `./p` sub-folder.
 
 
-As explained in the [security section](../admins/09_AccessControl.html), it’s highly recommended to make only the public section available at the domain level.
+As explained in the [security section](../admins/09_AccessControl.md), it’s highly recommended to make only the public section available at the domain level.
 With that configuration, `./p` is the root folder for <https://demo.freshrss.org/>, thus making `robots.txt` available at the root of the application.
 With that configuration, `./p` is the root folder for <https://demo.freshrss.org/>, thus making `robots.txt` available at the root of the application.
 
 
 The same principle applies to `favicon.ico` and `.htaccess`.
 The same principle applies to `favicon.ico` and `.htaccess`.
@@ -70,7 +70,7 @@ If you are using a version prior to 1.16, you can disable your ad-blocker for Fr
 Examples with _uBlock_:
 Examples with _uBlock_:
 
 
 * Whitelist your FreshRSS instance by adding it in _uBlock > Open the dashboard > Whitelist_.
 * Whitelist your FreshRSS instance by adding it in _uBlock > Open the dashboard > Whitelist_.
-* Authorize your FreshRSS instance to call `sharing` configuration page by adding the rule `*sharing,domain=~yourdomain.com` in _uBlock > Open the dashboard > My filters_
+* Authorize your FreshRSS instance to call `sharing` configuration page by adding the rule `*sharing,domain=~yourdomain.example` in _uBlock > Open the dashboard > My filters_
 
 
 ## Problems with firewalls
 ## Problems with firewalls
 
 

+ 2 - 3
docs/en/users/08_sharing_services.md

@@ -16,7 +16,7 @@ FreshRSS has the option to share links with a bunch of services.
 |:------------------|:-----------------------------------------------------|:-------------------------------------------------|:--------------------------------------------------------------|
 |:------------------|:-----------------------------------------------------|:-------------------------------------------------|:--------------------------------------------------------------|
 | Buffer         | Buffer.com is a social media management platform for scheduling, publishing, and analyzing content. | [Website](https://buffer.com) ||
 | Buffer         | Buffer.com is a social media management platform for scheduling, publishing, and analyzing content. | [Website](https://buffer.com) ||
 | Diaspora*         | The online social world where you are in control     | [Website](https://diasporafoundation.org/), [Wikipedia](https://en.wikipedia.org/wiki/Diaspora_(social_network)) |  |
 | Diaspora*         | The online social world where you are in control     | [Website](https://diasporafoundation.org/), [Wikipedia](https://en.wikipedia.org/wiki/Diaspora_(social_network)) |  |
-| Facebook          | Worldwide social network (by Meta Platforms)         | [Website](https://facebook.com), [Wikipedia](https://en.wikipedia.org/wiki/Facebook) | |
+| Facebook          | Worldwide social network (by Meta Platforms)         | [Website](https://www.facebook.com/), [Wikipedia](https://en.wikipedia.org/wiki/Facebook) | |
 | GNU social        | Social communication software for both public and private communications | [Website](https://gnusocial.rocks/) | |
 | GNU social        | Social communication software for both public and private communications | [Website](https://gnusocial.rocks/) | |
 | Journal du hacker | Le Journal du hacker s'inspire directement du site anglophone Hacker News | [Website](https://www.journalduhacker.net/) | |
 | Journal du hacker | Le Journal du hacker s'inspire directement du site anglophone Hacker News | [Website](https://www.journalduhacker.net/) | |
 | Known based sites | Its robust open source framework can be used to build fully-fledged community sites, or a blog for a single user. | [Website](https://withknown.com/) | |
 | Known based sites | Its robust open source framework can be used to build fully-fledged community sites, or a blog for a single user. | [Website](https://withknown.com/) | |
@@ -30,13 +30,12 @@ FreshRSS has the option to share links with a bunch of services.
 | Omnivore          | A complete, open source read-it-later solution for people who love to read. | [Website](https://omnivore.app/) | |
 | Omnivore          | A complete, open source read-it-later solution for people who love to read. | [Website](https://omnivore.app/) | |
 | Pinboard          | Social Bookmarking for Introverts                    | [Website](https://pinboard.in/) | |
 | Pinboard          | Social Bookmarking for Introverts                    | [Website](https://pinboard.in/) | |
 | Pinterest         | Is an image sharing and social media service designed to enable saving and discovery of information| [Website](https://pinterest.com/), [Wikipedia](https://en.wikipedia.org/wiki/Pinterest) | |
 | Pinterest         | Is an image sharing and social media service designed to enable saving and discovery of information| [Website](https://pinterest.com/), [Wikipedia](https://en.wikipedia.org/wiki/Pinterest) | |
-| Pocket            | Social bookmarking (previous "Read it Later", owned by Mozilla) | [Website](https://getpocket.com), [Wikipedia](https://en.wikipedia.org/wiki/Pocket_(service)) | |
 | Raindrop.io       | All-in-one bookmark manager                          | [Website](https://raindrop.io/)| |
 | Raindrop.io       | All-in-one bookmark manager                          | [Website](https://raindrop.io/)| |
 | Reddit            | A network of communities where people can dive into their interests, hobbies and passions| [Website](https://www.reddit.com/), [Wikipedia](https://en.wikipedia.org/wiki/Reddit)| |
 | Reddit            | A network of communities where people can dive into their interests, hobbies and passions| [Website](https://www.reddit.com/), [Wikipedia](https://en.wikipedia.org/wiki/Reddit)| |
 | Shaarli           | Self-hosted minimalist bookmark manager and link sharing service | [Website](https://shaarli.readthedocs.io/) | |
 | Shaarli           | Self-hosted minimalist bookmark manager and link sharing service | [Website](https://shaarli.readthedocs.io/) | |
 | Telegram          | Social network                         | [Website](https://telegram.org), [Wikipedia](https://en.wikipedia.org/wiki/Telegram_(software)) | |
 | Telegram          | Social network                         | [Website](https://telegram.org), [Wikipedia](https://en.wikipedia.org/wiki/Telegram_(software)) | |
 | Twitter           | Microblogging social network                         | [Website](https://twitter.com), [Wikipedia](https://de.wikipedia.org/wiki/Twitter) | |
 | Twitter           | Microblogging social network                         | [Website](https://twitter.com), [Wikipedia](https://de.wikipedia.org/wiki/Twitter) | |
-| wallabag          | Save and classify articles. Read them later. Freely  | [Website](https://www.wallabag.org) | Compatible to version 1 and 2 |
+| wallabag          | Save and classify articles. Read them later. Freely  | [Website](https://wallabag.org/) | Compatible to version 1 and 2 |
 | Whatsapp          | Instant messaging and voice-over-IP service owned by Meta Platforms| [Website](https://www.whatsapp.com), [Wikipedia](https://en.wikipedia.org/wiki/WhatsApp) | |
 | Whatsapp          | Instant messaging and voice-over-IP service owned by Meta Platforms| [Website](https://www.whatsapp.com), [Wikipedia](https://en.wikipedia.org/wiki/WhatsApp) | |
 | XING              | Career-oriented social networking site, operated by New Work SE | [Website](https://www.xing.com/), [Wikipedia](https://en.wikipedia.org/wiki/XING) | |
 | XING              | Career-oriented social networking site, operated by New Work SE | [Website](https://www.xing.com/), [Wikipedia](https://en.wikipedia.org/wiki/XING) | |
 
 

+ 1 - 1
docs/en/users/09_refreshing_feeds.md

@@ -41,7 +41,7 @@ This is the recommended method.
 
 
 This method is only available if you have access to the scheduled tasks of the machine on which your FreshRSS instance is installed.
 This method is only available if you have access to the scheduled tasks of the machine on which your FreshRSS instance is installed.
 
 
-The script is named *actualize_script.php* and is located in the *app* folder. The scheduled task syntax will not be explained here. However, here is [a quick introduction to crontab](http://www.adminschoice.com/crontab-quick-reference/) that might help you.
+The script is named *actualize_script.php* and is located in the *app* folder. The scheduled task syntax will not be explained here. However, here is [a quick introduction to crontab](https://adminschoice.com/crontab-quick-reference/) that might help you.
 
 
 Here is an example to trigger article update every hour.
 Here is an example to trigger article update every hour.
 
 

+ 4 - 4
docs/en/users/10_filter.md

@@ -53,7 +53,7 @@ You can use the search field to further refine results:
 * by URL: `inurl:keyword` or `inurl:'composed keyword'`
 * by URL: `inurl:keyword` or `inurl:'composed keyword'`
 * by tag: `#tag` or `#tag+with+whitespace` or `#'tag with whitespace'`
 * by tag: `#tag` or `#tag+with+whitespace` or `#'tag with whitespace'`
 * by free-text: `keyword` or `'composed keyword'`
 * by free-text: `keyword` or `'composed keyword'`
-* by date of discovery, using the [ISO 8601 time interval format](http://en.wikipedia.org/wiki/ISO_8601#Time_intervals): `date:<date-interval>`
+* by date of discovery, using the [ISO 8601 time interval format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals): `date:<date-interval>`
 	* From a specific day, or month, or year:
 	* From a specific day, or month, or year:
 		* `date:2014-03-30`
 		* `date:2014-03-30`
 		* `date:2014-03` or `date:201403`
 		* `date:2014-03` or `date:201403`
@@ -149,11 +149,11 @@ As opposed to normal searches, special XML characters `<&">` are not escaped in
 
 
 ⚠️ Advanced regex syntax details depend on the regex engine used:
 ⚠️ Advanced regex syntax details depend on the regex engine used:
 
 
-* FreshRSS filter actions such as auto-mark-as-read and auto-favourite use [PHP preg_match](https://php.net/function.preg-match).
+* FreshRSS filter actions such as auto-mark-as-read and auto-favourite use [PHP preg_match](https://www.php.net/function.preg-match).
 * Regex searches depend on which database you are using:
 * Regex searches depend on which database you are using:
-	* For SQLite, [PHP preg_match](https://php.net/function.preg-match) is used;
+	* For SQLite, [PHP preg_match](https://www.php.net/function.preg-match) is used;
 	* [For PostgreSQL](https://www.postgresql.org/docs/current/functions-matching.html#FUNCTIONS-POSIX-REGEXP);
 	* [For PostgreSQL](https://www.postgresql.org/docs/current/functions-matching.html#FUNCTIONS-POSIX-REGEXP);
-	* [For MariaDB](https://mariadb.com/kb/en/pcre/);
+	* [For MariaDB](https://mariadb.com/docs/server/reference/sql-functions/string-functions/regular-expressions-functions/pcre);
 	* [For MySQL](https://dev.mysql.com/doc/refman/9.0/en/regexp.html#function_regexp-like).
 	* [For MySQL](https://dev.mysql.com/doc/refman/9.0/en/regexp.html#function_regexp-like).
 
 
 > ℹ️ Even with PostgreSQL, you are welcome to use `\b` for word boundary (and `\B` for the opposite), as there is an automatic translation to `\y` and `\Y`.
 > ℹ️ Even with PostgreSQL, you are welcome to use `\b` for word boundary (and `\B` for the opposite), as there is an automatic translation to `\y` and `\Y`.

+ 2 - 2
docs/fr/contributing.md

@@ -35,8 +35,8 @@ Voulez-vous corriger un bogue ? Pour maintenir une grande coordination entre
 les collaborateurs, vous devrez suivre ces indications :
 les collaborateurs, vous devrez suivre ces indications :
 
 
 1. Assurez-vous que le bogue est associé à un ticket et indiquez que vous allez travailler sur le bogue.
 1. Assurez-vous que le bogue est associé à un ticket et indiquez que vous allez travailler sur le bogue.
-2. [Fork du répertoire de projet](https://help.github.com/articles/fork-a-repo/).
-3. [Créez une nouvelle branche](https://help.github.com/articles/creating-and-deleting-branches-within-your-repository/).
+2. [Fork du répertoire de projet](https://docs.github.com/en/pull-requests/how-tos/work-with-forks/fork-a-repo).
+3. [Créez une nouvelle branche](https://docs.github.com/en/pull-requests/how-tos/commit-changes/managing-branches-within-your-repository).
 	Le nom de la branche doit être clair, et idéalement préfixé par l’identifiant du ticket correspondant.
 	Le nom de la branche doit être clair, et idéalement préfixé par l’identifiant du ticket correspondant.
 	Par exemple, `783-contributing-file` pour réparer
 	Par exemple, `783-contributing-file` pour réparer
 	[ticket	#783](https://github.com/FreshRSS/FreshRSS/issues/783).
 	[ticket	#783](https://github.com/FreshRSS/FreshRSS/issues/783).

Некоторые файлы не были показаны из-за большого количества измененных файлов