Replace translation status flags with text section (#7842)

* Replace translation status flags with text section

* make fix-all

* Update README.md

Co-authored-by: maTh <1645099+math-GH@users.noreply.github.com>

* Improve with suggestions

* Improve with further suggestions

* fix headers

* BCP 47
https://developer.mozilla.org/en-US/docs/Glossary/BCP_47_language_tag

* en-US: `TODO` -> `IGNORE`

* i18n: fr

* i18n: fr

* i18n: fr

* Links

---------

Co-authored-by: maTh <1645099+math-GH@users.noreply.github.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
This commit is contained in:
Inverle
2025-10-02 23:00:16 +02:00
committed by GitHub
parent 128c375fc9
commit be49726ebb
61 changed files with 255 additions and 321 deletions

View File

@@ -1,12 +1,5 @@
[![Dons Liberapay](https://img.shields.io/liberapay/receives/FreshRSS.svg?logo=liberapay)](https://liberapay.com/FreshRSS/donate)
<translations>
<!-- This section is automatically generated by `cli/check.translation.php -g` -->
[![cs](./docs/i18n/flags/gen/cs.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fcs+%2F%28TODO%7CDIRTY%29%24%2F) [![de](./docs/i18n/flags/gen/de.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fde+%2F%28TODO%7CDIRTY%29%24%2F) [![el](./docs/i18n/flags/gen/el.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fel+%2F%28TODO%7CDIRTY%29%24%2F) [![en](./docs/i18n/flags/gen/en.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fen+%2F%28TODO%7CDIRTY%29%24%2F) [![en-us](./docs/i18n/flags/gen/en-us.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fen-us+%2F%28TODO%7CDIRTY%29%24%2F) [![es](./docs/i18n/flags/gen/es.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fes+%2F%28TODO%7CDIRTY%29%24%2F) [![fa](./docs/i18n/flags/gen/fa.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffa+%2F%28TODO%7CDIRTY%29%24%2F) [![fi](./docs/i18n/flags/gen/fi.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffi+%2F%28TODO%7CDIRTY%29%24%2F) [![fr](./docs/i18n/flags/gen/fr.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffr+%2F%28TODO%7CDIRTY%29%24%2F) [![he](./docs/i18n/flags/gen/he.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fhe+%2F%28TODO%7CDIRTY%29%24%2F) [![hu](./docs/i18n/flags/gen/hu.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fhu+%2F%28TODO%7CDIRTY%29%24%2F) [![id](./docs/i18n/flags/gen/id.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fid+%2F%28TODO%7CDIRTY%29%24%2F) [![it](./docs/i18n/flags/gen/it.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fit+%2F%28TODO%7CDIRTY%29%24%2F) [![ja](./docs/i18n/flags/gen/ja.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fja+%2F%28TODO%7CDIRTY%29%24%2F) [![ko](./docs/i18n/flags/gen/ko.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fko+%2F%28TODO%7CDIRTY%29%24%2F) [![lv](./docs/i18n/flags/gen/lv.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Flv+%2F%28TODO%7CDIRTY%29%24%2F) [![nl](./docs/i18n/flags/gen/nl.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fnl+%2F%28TODO%7CDIRTY%29%24%2F) [![oc](./docs/i18n/flags/gen/oc.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Foc+%2F%28TODO%7CDIRTY%29%24%2F) [![pl](./docs/i18n/flags/gen/pl.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fpl+%2F%28TODO%7CDIRTY%29%24%2F) [![pt-br](./docs/i18n/flags/gen/pt-br.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fpt-br+%2F%28TODO%7CDIRTY%29%24%2F) [![pt-pt](./docs/i18n/flags/gen/pt-pt.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fpt-pt+%2F%28TODO%7CDIRTY%29%24%2F) [![ru](./docs/i18n/flags/gen/ru.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fru+%2F%28TODO%7CDIRTY%29%24%2F) [![sk](./docs/i18n/flags/gen/sk.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fsk+%2F%28TODO%7CDIRTY%29%24%2F) [![tr](./docs/i18n/flags/gen/tr.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ftr+%2F%28TODO%7CDIRTY%29%24%2F) [![uk](./docs/i18n/flags/gen/uk.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fuk+%2F%28TODO%7CDIRTY%29%24%2F) [![zh-cn](./docs/i18n/flags/gen/zh-cn.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fzh-cn+%2F%28TODO%7CDIRTY%29%24%2F) [![zh-tw](./docs/i18n/flags/gen/zh-tw.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fzh-tw+%2F%28TODO%7CDIRTY%29%24%2F)
</translations>
* Lire ce document sur [github.com/FreshRSS/FreshRSS/](https://github.com/FreshRSS/FreshRSS/blob/edge/README.md) pour avoir les images et liens corrects.
* [English version](README.md)
@@ -14,7 +7,7 @@
FreshRSS est un agrégateur de flux RSS à auto-héberger.
Il se veut léger et facile à prendre en main tout en étant un outil puissant et paramétrable.
Il se veut léger et facile à prendre en main tout en étant un outil puissant et paramétrable, et [traduit](#internationalisation--20-langues-statut-des-traductions) en nombreuses langues.
Il permet de gérer plusieurs utilisateurs, dispose dun mode de lecture anonyme, et supporte les étiquettes personnalisées.
Il y a une API pour les clients (mobiles), ainsi quune [interface en ligne de commande](cli/README.md).
@@ -226,6 +219,42 @@ Le processus dimport/export à laide dune base de données SQLite est u
FreshRSS permet lajout dextensions en plus des fonctionnalités natives.
Voir le [dépôt dédié à ces extensions](https://github.com/FreshRSS/Extensions).
# Internationalisation : 20+ langues. Statut des traductions
<translations>
<!-- This section is automatically generated by `./cli/check.translation.php -g` -->
| Langage | Progression | |
| - | - | - |
| Čeština (cs) | ■■■■■■■■・・ 88% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fcs+%2F%28TODO%7CDIRTY%29%24%2F) |
| Deutsch (de) | ■■■■■■■■■・ 99% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fde+%2F%28TODO%7CDIRTY%29%24%2F) |
| Ελληνικά (el) | ■■・・・・・・・・ 22% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fel+%2F%28TODO%7CDIRTY%29%24%2F) |
| English (en) | ■■■■■■■■■■ 100% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fen+%2F%28TODO%7CDIRTY%29%24%2F) |
| English (United States) (en-US) | ■■■■■■■■■■ 100% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fen-us+%2F%28TODO%7CDIRTY%29%24%2F) |
| Español (es) | ■■■■■■■■■・ 91% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fes+%2F%28TODO%7CDIRTY%29%24%2F) |
| فارسی (fa) | ■■■■■■■■■・ 97% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffa+%2F%28TODO%7CDIRTY%29%24%2F) |
| Suomi (fi) | ■■■■■■■■■・ 92% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffi+%2F%28TODO%7CDIRTY%29%24%2F) |
| Français (fr) | ■■■■■■■■■■ 100% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffr+%2F%28TODO%7CDIRTY%29%24%2F) |
| עברית (he) | ■■■■・・・・・・ 45% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fhe+%2F%28TODO%7CDIRTY%29%24%2F) |
| Magyar (hu) | ■■■■■■■■■・ 99% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fhu+%2F%28TODO%7CDIRTY%29%24%2F) |
| Bahasa Indonesia (id) | ■■■■■■■■■・ 97% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fid+%2F%28TODO%7CDIRTY%29%24%2F) |
| Italiano (it) | ■■■■■■■■■・ 96% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fit+%2F%28TODO%7CDIRTY%29%24%2F) |
| 日本語 (ja) | ■■■■■■■■■・ 95% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fja+%2F%28TODO%7CDIRTY%29%24%2F) |
| 한국어 (ko) | ■■■■■■■■・・ 88% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fko+%2F%28TODO%7CDIRTY%29%24%2F) |
| Latviešu (lv) | ■■■■■■■■・・ 82% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Flv+%2F%28TODO%7CDIRTY%29%24%2F) |
| Nederlands (nl) | ■■■■■■■■■・ 99% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fnl+%2F%28TODO%7CDIRTY%29%24%2F) |
| Occitan (oc) | ■■■■■■■■・・ 81% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Foc+%2F%28TODO%7CDIRTY%29%24%2F) |
| Polski (pl) | ■■■■■■■■■■ 100% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fpl+%2F%28TODO%7CDIRTY%29%24%2F) |
| Português (Brasil) (pt-BR) | ■■■■■■■■・・ 88% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fpt-br+%2F%28TODO%7CDIRTY%29%24%2F) |
| Português (Portugal) (pt-PT) | ■■■■■■■■・・ 88% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fpt-pt+%2F%28TODO%7CDIRTY%29%24%2F) |
| Русский (ru) | ■■■■■■■■・・ 88% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fru+%2F%28TODO%7CDIRTY%29%24%2F) |
| Slovenčina (sk) | ■■■■■■■■・・ 88% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fsk+%2F%28TODO%7CDIRTY%29%24%2F) |
| Türkçe (tr) | ■■■■■■■■■・ 96% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ftr+%2F%28TODO%7CDIRTY%29%24%2F) |
| Українська (uk) | ■■■■■■■■■・ 99% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fuk+%2F%28TODO%7CDIRTY%29%24%2F) |
| 简体中文 (zh-CN) | ■■■■■■■■■・ 90% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fzh-cn+%2F%28TODO%7CDIRTY%29%24%2F) |
| 正體中文 (zh-TW) | ■■■■■■■■・・ 88% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fzh-tw+%2F%28TODO%7CDIRTY%29%24%2F) |
</translations>
# APIs et applications natives

View File

@@ -1,12 +1,5 @@
[![Liberapay donations](https://img.shields.io/liberapay/receives/FreshRSS.svg?logo=liberapay)](https://liberapay.com/FreshRSS/donate)
<translations>
<!-- This section is automatically generated by `cli/check.translation.php -g` -->
[![cs](./docs/i18n/flags/gen/cs.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fcs+%2F%28TODO%7CDIRTY%29%24%2F) [![de](./docs/i18n/flags/gen/de.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fde+%2F%28TODO%7CDIRTY%29%24%2F) [![el](./docs/i18n/flags/gen/el.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fel+%2F%28TODO%7CDIRTY%29%24%2F) [![en](./docs/i18n/flags/gen/en.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fen+%2F%28TODO%7CDIRTY%29%24%2F) [![en-us](./docs/i18n/flags/gen/en-us.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fen-us+%2F%28TODO%7CDIRTY%29%24%2F) [![es](./docs/i18n/flags/gen/es.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fes+%2F%28TODO%7CDIRTY%29%24%2F) [![fa](./docs/i18n/flags/gen/fa.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffa+%2F%28TODO%7CDIRTY%29%24%2F) [![fi](./docs/i18n/flags/gen/fi.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffi+%2F%28TODO%7CDIRTY%29%24%2F) [![fr](./docs/i18n/flags/gen/fr.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffr+%2F%28TODO%7CDIRTY%29%24%2F) [![he](./docs/i18n/flags/gen/he.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fhe+%2F%28TODO%7CDIRTY%29%24%2F) [![hu](./docs/i18n/flags/gen/hu.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fhu+%2F%28TODO%7CDIRTY%29%24%2F) [![id](./docs/i18n/flags/gen/id.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fid+%2F%28TODO%7CDIRTY%29%24%2F) [![it](./docs/i18n/flags/gen/it.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fit+%2F%28TODO%7CDIRTY%29%24%2F) [![ja](./docs/i18n/flags/gen/ja.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fja+%2F%28TODO%7CDIRTY%29%24%2F) [![ko](./docs/i18n/flags/gen/ko.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fko+%2F%28TODO%7CDIRTY%29%24%2F) [![lv](./docs/i18n/flags/gen/lv.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Flv+%2F%28TODO%7CDIRTY%29%24%2F) [![nl](./docs/i18n/flags/gen/nl.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fnl+%2F%28TODO%7CDIRTY%29%24%2F) [![oc](./docs/i18n/flags/gen/oc.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Foc+%2F%28TODO%7CDIRTY%29%24%2F) [![pl](./docs/i18n/flags/gen/pl.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fpl+%2F%28TODO%7CDIRTY%29%24%2F) [![pt-br](./docs/i18n/flags/gen/pt-br.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fpt-br+%2F%28TODO%7CDIRTY%29%24%2F) [![pt-pt](./docs/i18n/flags/gen/pt-pt.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fpt-pt+%2F%28TODO%7CDIRTY%29%24%2F) [![ru](./docs/i18n/flags/gen/ru.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fru+%2F%28TODO%7CDIRTY%29%24%2F) [![sk](./docs/i18n/flags/gen/sk.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fsk+%2F%28TODO%7CDIRTY%29%24%2F) [![tr](./docs/i18n/flags/gen/tr.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ftr+%2F%28TODO%7CDIRTY%29%24%2F) [![uk](./docs/i18n/flags/gen/uk.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fuk+%2F%28TODO%7CDIRTY%29%24%2F) [![zh-cn](./docs/i18n/flags/gen/zh-cn.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fzh-cn+%2F%28TODO%7CDIRTY%29%24%2F) [![zh-tw](./docs/i18n/flags/gen/zh-tw.svg)](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fzh-tw+%2F%28TODO%7CDIRTY%29%24%2F)
</translations>
* Read this document on [github.com/FreshRSS/FreshRSS/](https://github.com/FreshRSS/FreshRSS/blob/edge/README.md) to get the correct links and pictures.
* [Version française](README.fr.md)
@@ -14,7 +7,7 @@
FreshRSS is a self-hosted RSS feed aggregator.
It is lightweight, easy to work with, powerful, and customizable.
It is lightweight, easy to work with, powerful, customizable, and has been [translated](#internationalization-20-languages-translation-progress) into many languages.
It is a multi-user application with an anonymous reading mode. It supports custom tags.
There is an API for (mobile) clients, and a [Command-Line Interface](cli/README.md).
@@ -124,6 +117,42 @@ More detailed information about installation and server configuration can be fou
FreshRSS supports further customizations by adding extensions on top of its core functionality.
See the [repository dedicated to those extensions](https://github.com/FreshRSS/Extensions).
# Internationalization: 20+ languages. Translation progress
<translations>
<!-- This section is automatically generated by `./cli/check.translation.php -g` -->
| Language | Progress | |
| - | - | - |
| Čeština (cs) | ■■■■■■■■・・ 88% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fcs+%2F%28TODO%7CDIRTY%29%24%2F) |
| Deutsch (de) | ■■■■■■■■■・ 99% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fde+%2F%28TODO%7CDIRTY%29%24%2F) |
| Ελληνικά (el) | ■■・・・・・・・・ 22% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fel+%2F%28TODO%7CDIRTY%29%24%2F) |
| English (en) | ■■■■■■■■■■ 100% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fen+%2F%28TODO%7CDIRTY%29%24%2F) |
| English (United States) (en-US) | ■■■■■■■■■■ 100% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fen-us+%2F%28TODO%7CDIRTY%29%24%2F) |
| Español (es) | ■■■■■■■■■・ 91% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fes+%2F%28TODO%7CDIRTY%29%24%2F) |
| فارسی (fa) | ■■■■■■■■■・ 97% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffa+%2F%28TODO%7CDIRTY%29%24%2F) |
| Suomi (fi) | ■■■■■■■■■・ 92% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffi+%2F%28TODO%7CDIRTY%29%24%2F) |
| Français (fr) | ■■■■■■■■■■ 100% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffr+%2F%28TODO%7CDIRTY%29%24%2F) |
| עברית (he) | ■■■■・・・・・・ 45% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fhe+%2F%28TODO%7CDIRTY%29%24%2F) |
| Magyar (hu) | ■■■■■■■■■・ 99% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fhu+%2F%28TODO%7CDIRTY%29%24%2F) |
| Bahasa Indonesia (id) | ■■■■■■■■■・ 97% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fid+%2F%28TODO%7CDIRTY%29%24%2F) |
| Italiano (it) | ■■■■■■■■■・ 96% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fit+%2F%28TODO%7CDIRTY%29%24%2F) |
| 日本語 (ja) | ■■■■■■■■■・ 95% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fja+%2F%28TODO%7CDIRTY%29%24%2F) |
| 한국어 (ko) | ■■■■■■■■・・ 88% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fko+%2F%28TODO%7CDIRTY%29%24%2F) |
| Latviešu (lv) | ■■■■■■■■・・ 82% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Flv+%2F%28TODO%7CDIRTY%29%24%2F) |
| Nederlands (nl) | ■■■■■■■■■・ 99% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fnl+%2F%28TODO%7CDIRTY%29%24%2F) |
| Occitan (oc) | ■■■■■■■■・・ 81% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Foc+%2F%28TODO%7CDIRTY%29%24%2F) |
| Polski (pl) | ■■■■■■■■■■ 100% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fpl+%2F%28TODO%7CDIRTY%29%24%2F) |
| Português (Brasil) (pt-BR) | ■■■■■■■■・・ 88% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fpt-br+%2F%28TODO%7CDIRTY%29%24%2F) |
| Português (Portugal) (pt-PT) | ■■■■■■■■・・ 88% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fpt-pt+%2F%28TODO%7CDIRTY%29%24%2F) |
| Русский (ru) | ■■■■■■■■・・ 88% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fru+%2F%28TODO%7CDIRTY%29%24%2F) |
| Slovenčina (sk) | ■■■■■■■■・・ 88% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fsk+%2F%28TODO%7CDIRTY%29%24%2F) |
| Türkçe (tr) | ■■■■■■■■■・ 96% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ftr+%2F%28TODO%7CDIRTY%29%24%2F) |
| Українська (uk) | ■■■■■■■■■・ 99% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fuk+%2F%28TODO%7CDIRTY%29%24%2F) |
| 简体中文 (zh-CN) | ■■■■■■■■■・ 90% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fzh-cn+%2F%28TODO%7CDIRTY%29%24%2F) |
| 正體中文 (zh-TW) | ■■■■■■■■・・ 88% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fzh-tw+%2F%28TODO%7CDIRTY%29%24%2F) |
</translations>
# APIs & native apps

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => 'Včera',
),
'dir' => 'ltr', // IGNORE
'flag' => '🇨🇿',
'freshrss' => array(
'_' => 'FreshRSS', // IGNORE
'about' => 'O FreshRSS',
@@ -217,6 +216,11 @@ return array(
'weeks' => 'týdnů',
'years' => 'let',
),
'readme' => array(
'contribute' => 'contribute', // IGNORE
'language' => 'Language', // IGNORE
'translated' => 'Progress', // IGNORE
),
'share' => array(
'Known' => 'Známé základní stránky',
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => 'Gestern',
),
'dir' => 'ltr', // IGNORE
'flag' => '🇩🇪',
'freshrss' => array(
'_' => 'FreshRSS', // IGNORE
'about' => 'Über FreshRSS',
@@ -217,6 +216,11 @@ return array(
'weeks' => 'Wochen',
'years' => 'Jahre',
),
'readme' => array(
'contribute' => 'contribute', // IGNORE
'language' => 'Language', // IGNORE
'translated' => 'Progress', // IGNORE
),
'share' => array(
'Known' => 'Known-Seite (https://withknown.com)',
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => 'Yesterday', // TODO
),
'dir' => 'ltr', // TODO
'flag' => '🇬🇷',
'freshrss' => array(
'_' => 'FreshRSS', // TODO
'about' => 'About FreshRSS', // TODO
@@ -217,6 +216,11 @@ return array(
'weeks' => 'weeks', // TODO
'years' => 'years', // TODO
),
'readme' => array(
'contribute' => 'contribute', // IGNORE
'language' => 'Language', // IGNORE
'translated' => 'Progress', // IGNORE
),
'share' => array(
'Known' => 'Known based sites', // TODO
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -14,10 +14,10 @@ return array(
'information' => array(
'address' => 'Your API address:', // IGNORE
'output' => array(
'encoding-support' => '⚠️ WARN: no <code>%2F</code> support, some clients might not work!', // TODO
'invalid-configuration' => '⚠️ WARN: Probable invalid base URL in ./data/config.php', // TODO
'pass' => '✔️ PASS', // TODO
'unknown-error' => '❌ ', // TODO
'encoding-support' => '⚠️ WARN: no <code>%2F</code> support, some clients might not work!', // IGNORE
'invalid-configuration' => '⚠️ WARN: Probable invalid base URL in ./data/config.php', // IGNORE
'pass' => '✔️ PASS', // IGNORE
'unknown-error' => '❌ ', // IGNORE
),
'test' => array(
'fever' => 'Fever API configuration test:', // IGNORE

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => 'Yesterday', // IGNORE
),
'dir' => 'ltr', // IGNORE
'flag' => '🇺🇸',
'freshrss' => array(
'_' => 'FreshRSS', // IGNORE
'about' => 'About FreshRSS', // IGNORE
@@ -217,6 +216,11 @@ return array(
'weeks' => 'weeks', // IGNORE
'years' => 'years', // IGNORE
),
'readme' => array(
'contribute' => 'contribute', // IGNORE
'language' => 'Language', // IGNORE
'translated' => 'Progress', // IGNORE
),
'share' => array(
'Known' => 'Known based sites', // IGNORE
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => 'Yesterday',
),
'dir' => 'ltr',
'flag' => '🇬🇧',
'freshrss' => array(
'_' => 'FreshRSS',
'about' => 'About FreshRSS',
@@ -217,6 +216,11 @@ return array(
'weeks' => 'weeks',
'years' => 'years',
),
'readme' => array(
'contribute' => 'contribute',
'language' => 'Language',
'translated' => 'Progress',
),
'share' => array(
'Known' => 'Known based sites',
'archiveIS' => 'archive.is',

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => 'Ayer',
),
'dir' => 'ltr', // IGNORE
'flag' => '🇪🇸',
'freshrss' => array(
'_' => 'FreshRSS', // IGNORE
'about' => 'Acerca de FreshRSS',
@@ -217,6 +216,11 @@ return array(
'weeks' => 'semanas',
'years' => 'años',
),
'readme' => array(
'contribute' => 'contribute', // IGNORE
'language' => 'Language', // IGNORE
'translated' => 'Progress', // IGNORE
),
'share' => array(
'Known' => 'Sitios basados en conocidos',
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => ' دیروز',
),
'dir' => 'rtl',
'flag' => '🇮🇷',
'freshrss' => array(
'_' => ' FreshRSS',
'about' => 'درباره FreshRSS',
@@ -217,6 +216,11 @@ return array(
'weeks' => ' هفته',
'years' => ' سال',
),
'readme' => array(
'contribute' => 'contribute', // IGNORE
'language' => 'Language', // IGNORE
'translated' => 'Progress', // IGNORE
),
'share' => array(
'Known' => ' سایت های مبتنی بر شناخته شده',
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => 'Eilen',
),
'dir' => 'ltr', // IGNORE
'flag' => '🇫🇮',
'freshrss' => array(
'_' => 'FreshRSS', // IGNORE
'about' => 'Tietoja FreshRSS-sovelluksesta',
@@ -217,6 +216,11 @@ return array(
'weeks' => 'viikkoa',
'years' => 'vuotta',
),
'readme' => array(
'contribute' => 'contribute', // IGNORE
'language' => 'Language', // IGNORE
'translated' => 'Progress', // IGNORE
),
'share' => array(
'Known' => 'Known-sivustot',
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => 'Hier',
),
'dir' => 'ltr', // IGNORE
'flag' => '🇫🇷',
'freshrss' => array(
'_' => 'FreshRSS', // IGNORE
'about' => 'À propos de FreshRSS',
@@ -217,6 +216,11 @@ return array(
'weeks' => 'semaines',
'years' => 'années',
),
'readme' => array(
'contribute' => 'contribuer',
'language' => 'Langage',
'translated' => 'Progression',
),
'share' => array(
'Known' => 'Sites basés sur Known',
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => 'אתמול',
),
'dir' => 'rtl',
'flag' => '🇮🇱',
'freshrss' => array(
'_' => 'FreshRSS', // TODO
'about' => 'אודות FreshRSS',
@@ -217,6 +216,11 @@ return array(
'weeks' => 'weeks', // TODO
'years' => 'years', // TODO
),
'readme' => array(
'contribute' => 'contribute', // IGNORE
'language' => 'Language', // IGNORE
'translated' => 'Progress', // IGNORE
),
'share' => array(
'Known' => 'Known based sites', // TODO
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => 'Tegnap',
),
'dir' => 'ltr', // IGNORE
'flag' => '🇭🇺',
'freshrss' => array(
'_' => 'FreshRSS', // IGNORE
'about' => 'FreshRSS névjegy',
@@ -217,6 +216,11 @@ return array(
'weeks' => 'hét',
'years' => 'év',
),
'readme' => array(
'contribute' => 'contribute', // IGNORE
'language' => 'Language', // IGNORE
'translated' => 'Progress', // IGNORE
),
'share' => array(
'Known' => 'Ismert weboldalak',
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => 'Kemarin',
),
'dir' => 'ltr', // IGNORE
'flag' => '🇮🇩',
'freshrss' => array(
'_' => 'FreshRSS', // IGNORE
'about' => 'Tentang FreshRSS',
@@ -217,6 +216,11 @@ return array(
'weeks' => 'minggu',
'years' => 'tahun',
),
'readme' => array(
'contribute' => 'contribute', // IGNORE
'language' => 'Language', // IGNORE
'translated' => 'Progress', // IGNORE
),
'share' => array(
'Known' => 'Situs berbasis Known',
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => 'Ieri',
),
'dir' => 'ltr', // IGNORE
'flag' => '🇮🇹',
'freshrss' => array(
'_' => 'Feed RSS Reader',
'about' => 'Informazioni',
@@ -217,6 +216,11 @@ return array(
'weeks' => 'settimane',
'years' => 'anni',
),
'readme' => array(
'contribute' => 'contribute', // IGNORE
'language' => 'Language', // IGNORE
'translated' => 'Progress', // IGNORE
),
'share' => array(
'Known' => 'Siti basati su Known',
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => '昨日',
),
'dir' => 'ディレクトリ',
'flag' => '🇯🇵',
'freshrss' => array(
'_' => 'FreshRSS', // IGNORE
'about' => 'FreshRSSについて',
@@ -217,6 +216,11 @@ return array(
'weeks' => '週間',
'years' => '年間',
),
'readme' => array(
'contribute' => 'contribute', // IGNORE
'language' => 'Language', // IGNORE
'translated' => 'Progress', // IGNORE
),
'share' => array(
'Known' => 'よく使われるサイト',
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => '어제',
),
'dir' => 'ltr', // IGNORE
'flag' => '🇰🇷',
'freshrss' => array(
'_' => 'FreshRSS', // IGNORE
'about' => '정보',
@@ -217,6 +216,11 @@ return array(
'weeks' => '주',
'years' => '년',
),
'readme' => array(
'contribute' => 'contribute', // IGNORE
'language' => 'Language', // IGNORE
'translated' => 'Progress', // IGNORE
),
'share' => array(
'Known' => 'Known based sites', // IGNORE
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => 'Vakar',
),
'dir' => 'ltr', // IGNORE
'flag' => '🇱🇻',
'freshrss' => array(
'_' => 'FreshRSS', // TODO
'about' => 'Par FreshRSS',
@@ -217,6 +216,11 @@ return array(
'weeks' => 'nedēļas',
'years' => 'gadi',
),
'readme' => array(
'contribute' => 'contribute', // IGNORE
'language' => 'Language', // IGNORE
'translated' => 'Progress', // IGNORE
),
'share' => array(
'Known' => 'Zināmas vietnes',
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => 'Gisteren',
),
'dir' => 'ltr', // IGNORE
'flag' => '🇳🇱',
'freshrss' => array(
'_' => 'FreshRSS', // IGNORE
'about' => 'Over FreshRSS',
@@ -217,6 +216,11 @@ return array(
'weeks' => 'weken',
'years' => 'jaren',
),
'readme' => array(
'contribute' => 'contribute', // IGNORE
'language' => 'Language', // IGNORE
'translated' => 'Progress', // IGNORE
),
'share' => array(
'Known' => 'Known-gebaseerde sites',
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => 'Ièr',
),
'dir' => 'ltr', // IGNORE
'flag' => '🏴󠁦󠁲󠁯󠁣󠁣󠁿',
'freshrss' => array(
'_' => 'FreshRSS', // IGNORE
'about' => 'A prepaus de FreshRSS',
@@ -217,6 +216,11 @@ return array(
'weeks' => 'setmanas',
'years' => 'ans',
),
'readme' => array(
'contribute' => 'contribute', // IGNORE
'language' => 'Language', // IGNORE
'translated' => 'Progress', // IGNORE
),
'share' => array(
'Known' => 'Sites basats sus Known',
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => 'Wczorajsze',
),
'dir' => 'ltr', // IGNORE
'flag' => '🇵🇱',
'freshrss' => array(
'_' => 'FreshRSS', // IGNORE
'about' => 'O oprogramowaniu FreshRSS',
@@ -217,6 +216,11 @@ return array(
'weeks' => 'tygodnie',
'years' => 'lata',
),
'readme' => array(
'contribute' => 'contribute', // IGNORE
'language' => 'Language', // IGNORE
'translated' => 'Progress', // IGNORE
),
'share' => array(
'Known' => 'Strony bazujące na usłudze Known',
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => 'Ontem',
),
'dir' => 'ltr', // IGNORE
'flag' => '🇧🇷',
'freshrss' => array(
'_' => 'FreshRSS', // IGNORE
'about' => 'Sobre FreshRSS',
@@ -217,6 +216,11 @@ return array(
'weeks' => 'semanas',
'years' => 'anos',
),
'readme' => array(
'contribute' => 'contribute', // IGNORE
'language' => 'Language', // IGNORE
'translated' => 'Progress', // IGNORE
),
'share' => array(
'Known' => 'Sites no Known',
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => 'Ontem',
),
'dir' => 'ltr', // IGNORE
'flag' => '🇵🇹',
'freshrss' => array(
'_' => 'FreshRSS', // IGNORE
'about' => 'Sobre FreshRSS',
@@ -217,6 +216,11 @@ return array(
'weeks' => 'semanas',
'years' => 'anos',
),
'readme' => array(
'contribute' => 'contribute', // IGNORE
'language' => 'Language', // IGNORE
'translated' => 'Progress', // IGNORE
),
'share' => array(
'Known' => 'Sites no Known',
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => 'Вчера',
),
'dir' => 'ltr', // IGNORE
'flag' => '🇷🇺',
'freshrss' => array(
'_' => 'FreshRSS', // IGNORE
'about' => 'О FreshRSS',
@@ -217,6 +216,11 @@ return array(
'weeks' => 'недель',
'years' => 'лет',
),
'readme' => array(
'contribute' => 'contribute', // IGNORE
'language' => 'Language', // IGNORE
'translated' => 'Progress', // IGNORE
),
'share' => array(
'Known' => 'Сайты на Known',
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => 'Včera',
),
'dir' => 'ltr', // IGNORE
'flag' => '🇸🇰',
'freshrss' => array(
'_' => 'FreshRSS', // IGNORE
'about' => 'O FreshRSS',
@@ -217,6 +216,11 @@ return array(
'weeks' => 'týždne',
'years' => 'roky',
),
'readme' => array(
'contribute' => 'contribute', // IGNORE
'language' => 'Language', // IGNORE
'translated' => 'Progress', // IGNORE
),
'share' => array(
'Known' => 'Stránky založené na Known',
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => 'Dün',
),
'dir' => 'ltr', // IGNORE
'flag' => '🇹🇷',
'freshrss' => array(
'_' => 'FreshRSS', // IGNORE
'about' => 'FreshRSS Hakkında',
@@ -217,6 +216,11 @@ return array(
'weeks' => 'hafta',
'years' => 'yıl',
),
'readme' => array(
'contribute' => 'contribute', // IGNORE
'language' => 'Language', // IGNORE
'translated' => 'Progress', // IGNORE
),
'share' => array(
'Known' => 'Bilinen tabanlı siteler',
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => 'Вчора',
),
'dir' => 'ltr', // IGNORE
'flag' => '🇺🇦',
'freshrss' => array(
'_' => 'FreshRSS', // IGNORE
'about' => 'Про FreshRSS',
@@ -217,6 +216,11 @@ return array(
'weeks' => 'тижд',
'years' => 'р.',
),
'readme' => array(
'contribute' => 'contribute', // TODO
'language' => 'Language', // TODO
'translated' => 'Progress', // TODO
),
'share' => array(
'Known' => 'Сайти на Known',
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => '昨天',
),
'dir' => 'ltr', // IGNORE
'flag' => '🇨🇳',
'freshrss' => array(
'_' => 'FreshRSS', // IGNORE
'about' => '关于 FreshRSS',
@@ -217,6 +216,11 @@ return array(
'weeks' => '周',
'years' => '年',
),
'readme' => array(
'contribute' => 'contribute', // IGNORE
'language' => 'Language', // IGNORE
'translated' => 'Progress', // IGNORE
),
'share' => array(
'Known' => '基于 Known 的站点',
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -136,7 +136,6 @@ return array(
'yesterday' => '昨天',
),
'dir' => 'ltr', // IGNORE
'flag' => '🇹🇼',
'freshrss' => array(
'_' => 'FreshRSS', // IGNORE
'about' => '關於 FreshRSS',
@@ -217,6 +216,11 @@ return array(
'weeks' => '週',
'years' => '年',
),
'readme' => array(
'contribute' => 'contribute', // IGNORE
'language' => 'Language', // IGNORE
'translated' => 'Progress', // IGNORE
),
'share' => array(
'Known' => '基於 Known 的站點',
'archiveIS' => 'archive.is', // IGNORE

View File

@@ -149,13 +149,13 @@ cd /usr/share/FreshRSS
# -r, --revert revert the action (only used with ignore action).
# -o, --origin-language selects the origin language (only used with add language action).
./cli/check-translation.php [ ---display-result --help --language fr --display-report --generate-readme ]
./cli/check.translation.php [ ---display-result --help --language fr --display-report --generate-readme ]
# Check if translation files have missing keys or missing translations.
# -d, --display-result display results of check.
# -h, --help display help text and exit.
# -l, --language set the language check.
# -r, --display-report display completion report.
# -g, --generate-readme generate readme for translation status.
# -g, --generate-readme generate translation progress section in readme.
```
## Note about cron

View File

@@ -74,7 +74,22 @@ if ($cliOptions->displayReport) {
}
}
function writeToReadme(string $readmePath, string $markdownImgStr): void {
function writeToReadme(string $readmePath, string $markdownTable): void {
$language = explode('.', $readmePath)[1];
// expecting `README.md` for `en` or `README.fr.md` for `fr`
if ($language === 'md') {
$language = 'en';
}
Minz_Translate::init($language);
$placeholders = [];
if (preg_match_all('/__.*?__/', $markdownTable, $placeholders) === false) {
echo 'Error: Fail while matching translation placeholders', PHP_EOL;
exit(1);
}
foreach (array_unique($placeholders[0]) as $_ => $placeholder) {
$markdownTable = str_replace($placeholder, _t('gen.readme.' . substr($placeholder, 2, -2)), $markdownTable);
}
$readme = file_get_contents($readmePath);
if ($readme === false) {
echo 'Error: Unable to open ' . $readmePath, PHP_EOL;
@@ -82,9 +97,9 @@ function writeToReadme(string $readmePath, string $markdownImgStr): void {
}
if (file_put_contents($readmePath, preg_replace('/<translations>(.*?)<\/translations>/s', <<<EOF
<translations>
<!-- This section is automatically generated by `cli/check.translation.php -g` -->
<!-- This section is automatically generated by `./cli/check.translation.php -g` -->
$markdownImgStr
$markdownTable
</translations>
EOF, $readme)) === false) {
@@ -94,90 +109,41 @@ function writeToReadme(string $readmePath, string $markdownImgStr): void {
echo 'Successfully written translation status into ' . $readmePath, PHP_EOL;
}
function embedSvg(string $contents): string {
return preg_replace(
'/<svg\s+(?:(?:[^>]*?)(xmlns=["\'][^"\']+["\']))?(?:(?:[^>]*?)(viewBox=["\'][^"\']+["\']))?(?:[^>]*?)>/i',
'<svg \1 \2 width="16" height="16" x="9" y="2">',
$contents
) ?? '';
}
if ($cliOptions->generateReadme) {
$supportedFormats = ['txt', 'svg'];
$flagsDir = dirname(__DIR__) . '/docs/i18n/flags';
$markdownTable = <<<EOF
| __language__ | __translated__ | |
| - | - | - |
EOF;
$markdownTable .= "\n";
$markdownImgStr = '';
foreach ($percentage as $lang => $value) {
$percentageInt = intval(rtrim($value, '%'));
$color = 'green';
if ($percentageInt < 90) {
$color = 'gold';
}
if ($percentageInt < 70) {
$color = 'darkred';
}
$svgFile = $flagsDir . '/' . $lang . '.svg';
$svg = '';
if (file_exists($svgFile)) {
$svg = file_get_contents($svgFile);
if ($svg === false) {
echo 'Error: Unable to open ' . $svgFile, PHP_EOL;
exit(1);
}
}
$completed = intval($percentageInt / 10);
$uncompleted = intval(ceil((100 - $percentageInt) / 10));
$progressBar = str_repeat('■', $completed) . str_repeat('・', $uncompleted);
$ghSearchUrl = 'https://github.com/search?q=' . urlencode("repo:FreshRSS/FreshRSS path:app/i18n/$lang /(TODO|DIRTY)$/");
$genPath = $flagsDir . '/gen/' . $lang . '.svg';
$template = '<!-- This file is automatically generated by `cli/check.translation.php -g` -->' . "\n";
if ($svg === '') {
$i18nGen = include dirname(__DIR__) . "/app/i18n/$lang/gen.php";
if (!is_array($i18nGen) || !is_string($i18nGen['flag'] ?? null)) {
echo 'Error: No Unicode flag found for language ' . $lang, PHP_EOL;
exit(1);
}
$unicodeFlag = $i18nGen['flag'];
if ($lang !== 'en' && $unicodeFlag === '🇬🇧') {
echo 'Error: Wrong Unicode flag for language ' . $lang, PHP_EOL;
exit(1);
}
$value = $unicodeFlag . ' ' . $percentageInt . '%';
$template .= <<<EOF
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="$color" />
<text x="34" y="14">$value</text>
</g>
</svg>
EOF;
} else {
// An SVG file is available to override the Unicode flag
$value = $percentageInt . '%';
$contents = embedSvg($svg);
$template .= <<<EOF
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="$color" />
<!-- embedded SVG -->
$contents
<!-- end of embedded SVG -->
<text x="43" y="14">$value</text>
</g>
</svg>
EOF;
// BCP 47 / ISO 3166: Uppercase the last (region) subtag if any (e.g. pt-pt -> pt-PT)
$bcp47 = $lang;
if (str_contains($bcp47, '-')) {
$parts = explode('-', $bcp47);
$parts[count($parts) - 1] = strtoupper($parts[count($parts) - 1]);
$bcp47 = implode('-', $parts);
}
if (file_put_contents($genPath, $template) === false) {
echo 'Error: Fail while writing to ' . $genPath, PHP_EOL;
exit(1);
}
$markdownImgStr .= "[![$lang](./docs/i18n/flags/gen/$lang.svg)]($ghSearchUrl) ";
$markdownTable .= '| ' . implode(' | ', [
_t('gen.lang.' . $lang) . " ($bcp47)",
$progressBar . ' ' . $percentageInt . '%',
"[__contribute__]($ghSearchUrl)",
]) . " |\n";
}
// In case we're located in ./cli/
if (!file_exists('constants.php')) {
chdir('..');
}
foreach (array_merge(['README.md'], glob('README.*.md') ?: []) as $readmePath) {
writeToReadme($readmePath, rtrim($markdownImgStr));
writeToReadme($readmePath, rtrim($markdownTable));
}
exit();
}
@@ -233,7 +199,7 @@ DESCRIPTION
-h, --help display this help and exit.
-l, --language=LANG filter by LANG.
-r, --display-report display completion report.
-g, --generate-readme generate readme for translation status.
-g, --generate-readme generate translation progress section in readme.
HELP;
exit();

View File

@@ -1,5 +0,0 @@
Used by [check.translation.php](../../../cli/check.translation.php)
See also the translation key `gen.flag` for Unicode flags.
Put an SVG here when the Unicode flag does not exist or does not have sufficient implementation support.

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="gold" />
<text x="34" y="14">🇨🇿 88%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 327 B

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="green" />
<text x="34" y="14">🇩🇪 99%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 328 B

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="darkred" />
<text x="34" y="14">🇬🇷 22%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 330 B

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="green" />
<text x="34" y="14">🇺🇸 99%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 328 B

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="green" />
<text x="34" y="14">🇬🇧 100%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 329 B

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="green" />
<text x="34" y="14">🇪🇸 91%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 328 B

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="green" />
<text x="34" y="14">🇮🇷 97%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 328 B

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="green" />
<text x="34" y="14">🇫🇮 92%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 328 B

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="green" />
<text x="34" y="14">🇫🇷 100%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 329 B

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="darkred" />
<text x="34" y="14">🇮🇱 45%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 330 B

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="green" />
<text x="34" y="14">🇭🇺 99%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 328 B

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="green" />
<text x="34" y="14">🇮🇩 97%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 328 B

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="green" />
<text x="34" y="14">🇮🇹 96%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 328 B

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="green" />
<text x="34" y="14">🇯🇵 95%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 328 B

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="gold" />
<text x="34" y="14">🇰🇷 88%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 327 B

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="gold" />
<text x="34" y="14">🇱🇻 82%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 327 B

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="green" />
<text x="34" y="14">🇳🇱 99%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 328 B

View File

@@ -1,10 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="gold" />
<!-- embedded SVG -->
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 797.96 530.973" width="16" height="16" x="9" y="2"><path fill="#d4001c" d="M0 0h797.96v530.973H0z"/><g fill="#fddd00"><path d="m184.195 267 9.126 7.138c14.632 11.443 38.501 35.909 45.015 77.3l1.721 10.924 8.361-7.312c14.038-12.277 55.754-44.434 116.757-53.224-8.792 61.003-40.948 102.718-53.224 116.756l-7.313 8.361 10.924 1.721c41.392 6.515 65.857 30.383 77.301 45.015l7.137 9.126 7.138-9.126c11.443-14.632 35.908-38.5 77.3-45.015l10.924-1.721-7.313-8.361c-12.276-14.038-44.432-55.753-53.224-116.756 61.003 8.79 102.719 40.947 116.757 53.224l8.361 7.312 1.72-10.924c6.515-41.391 30.384-65.857 45.015-77.3l9.127-7.138-9.127-7.138c-14.631-11.443-38.5-35.908-45.015-77.299l-1.72-10.925-8.361 7.312c-14.038 12.277-55.754 44.434-116.757 53.225 8.792-61.003 40.948-102.719 53.224-116.756l7.313-8.362-10.924-1.72c-41.392-6.516-65.857-30.384-77.3-45.016L400 51.195l-7.137 9.126c-11.444 14.632-35.909 38.5-77.301 45.016l-10.924 1.72 7.313 8.362c12.276 14.037 44.432 55.753 53.224 116.756-61.003-8.791-102.719-40.948-116.757-53.225l-8.361-7.312-1.721 10.925c-6.514 41.391-30.383 65.856-45.015 77.299zm35.126 0c27.829-25.798 34.255-54.425 34.255-54.425 40.626 34.242 103.986 41.96 135.665 43.666-1.707-31.679-9.424-95.039-43.666-135.666 0 0 28.626-6.425 54.425-34.255 25.799 27.83 54.425 34.255 54.425 34.255-34.242 40.627-41.959 103.987-43.666 135.666 31.679-1.706 95.039-9.424 135.665-43.666 0 0 6.426 28.627 34.255 54.425-27.829 25.799-34.255 54.425-34.255 54.425-40.626-34.242-103.986-41.96-135.665-43.666 1.707 31.679 9.424 95.039 43.666 135.666 0 0-28.626 6.425-54.425 34.255-25.799-27.83-54.425-34.255-54.425-34.255 34.242-40.627 41.959-103.987 43.666-135.666-31.679 1.706-95.039 9.424-135.665 43.666 0 0-6.426-28.626-34.255-54.425"/><circle cx="176.775" cy="267" r="18"/><circle cx="237.575" cy="164.576" r="18"/><circle cx="237.575" cy="369.425" r="18"/><circle cx="297.576" cy="104.575" r="18"/><circle cx="297.576" cy="429.426" r="18"/><circle cx="400" cy="43.774" r="18"/><circle cx="400" cy="490.226" r="18"/><circle cx="502.424" cy="104.575" r="18"/><circle cx="502.424" cy="429.426" r="18"/><circle cx="562.425" cy="164.576" r="18"/><circle cx="562.425" cy="369.425" r="18"/><circle cx="623.226" cy="267" r="18"/></g></svg>
<!-- end of embedded SVG -->
<text x="43" y="14">81%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="green" />
<text x="34" y="14">🇵🇱 100%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 329 B

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="gold" />
<text x="34" y="14">🇧🇷 88%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 327 B

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="gold" />
<text x="34" y="14">🇵🇹 88%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 327 B

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="gold" />
<text x="34" y="14">🇷🇺 88%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 327 B

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="gold" />
<text x="34" y="14">🇸🇰 88%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 327 B

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="green" />
<text x="34" y="14">🇹🇷 96%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 328 B

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="green" />
<text x="34" y="14">🇺🇦 99%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 328 B

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="green" />
<text x="34" y="14">🇨🇳 90%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 328 B

View File

@@ -1,7 +0,0 @@
<!-- This file is automatically generated by `cli/check.translation.php -g` -->
<svg xmlns="http://www.w3.org/2000/svg" width="70" height="20">
<g fill="white" font-size="12" font-family="Verdana" text-anchor="middle">
<rect rx="3" width="70" height="20" fill="gold" />
<text x="34" y="14">🇹🇼 88%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 327 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="797.96" height="530.973" viewBox="0 0 797.96 530.973"><path fill="#d4001c" d="M0 0h797.96v530.973H0z"/><g fill="#fddd00"><path d="m184.195 267 9.126 7.138c14.632 11.443 38.501 35.909 45.015 77.3l1.721 10.924 8.361-7.312c14.038-12.277 55.754-44.434 116.757-53.224-8.792 61.003-40.948 102.718-53.224 116.756l-7.313 8.361 10.924 1.721c41.392 6.515 65.857 30.383 77.301 45.015l7.137 9.126 7.138-9.126c11.443-14.632 35.908-38.5 77.3-45.015l10.924-1.721-7.313-8.361c-12.276-14.038-44.432-55.753-53.224-116.756 61.003 8.79 102.719 40.947 116.757 53.224l8.361 7.312 1.72-10.924c6.515-41.391 30.384-65.857 45.015-77.3l9.127-7.138-9.127-7.138c-14.631-11.443-38.5-35.908-45.015-77.299l-1.72-10.925-8.361 7.312c-14.038 12.277-55.754 44.434-116.757 53.225 8.792-61.003 40.948-102.719 53.224-116.756l7.313-8.362-10.924-1.72c-41.392-6.516-65.857-30.384-77.3-45.016L400 51.195l-7.137 9.126c-11.444 14.632-35.909 38.5-77.301 45.016l-10.924 1.72 7.313 8.362c12.276 14.037 44.432 55.753 53.224 116.756-61.003-8.791-102.719-40.948-116.757-53.225l-8.361-7.312-1.721 10.925c-6.514 41.391-30.383 65.856-45.015 77.299zm35.126 0c27.829-25.798 34.255-54.425 34.255-54.425 40.626 34.242 103.986 41.96 135.665 43.666-1.707-31.679-9.424-95.039-43.666-135.666 0 0 28.626-6.425 54.425-34.255 25.799 27.83 54.425 34.255 54.425 34.255-34.242 40.627-41.959 103.987-43.666 135.666 31.679-1.706 95.039-9.424 135.665-43.666 0 0 6.426 28.627 34.255 54.425-27.829 25.799-34.255 54.425-34.255 54.425-40.626-34.242-103.986-41.96-135.665-43.666 1.707 31.679 9.424 95.039 43.666 135.666 0 0-28.626 6.425-54.425 34.255-25.799-27.83-54.425-34.255-54.425-34.255 34.242-40.627 41.959-103.987 43.666-135.666-31.679 1.706-95.039 9.424-135.665 43.666 0 0-6.426-28.626-34.255-54.425"/><circle cx="176.775" cy="267" r="18"/><circle cx="237.575" cy="164.576" r="18"/><circle cx="237.575" cy="369.425" r="18"/><circle cx="297.576" cy="104.575" r="18"/><circle cx="297.576" cy="429.426" r="18"/><circle cx="400" cy="43.774" r="18"/><circle cx="400" cy="490.226" r="18"/><circle cx="502.424" cy="104.575" r="18"/><circle cx="502.424" cy="429.426" r="18"/><circle cx="562.425" cy="164.576" r="18"/><circle cx="562.425" cy="369.425" r="18"/><circle cx="623.226" cy="267" r="18"/></g></svg>

Before

Width:  |  Height:  |  Size: 2.2 KiB