Compare commits

...

5 Commits

Author SHA1 Message Date
9311f90fc9 First PoC Ouinet integration 2022-11-29 14:03:01 +01:00
Weblate (bot)
219f0e9873
Translated using Weblate (Ukrainian) (#266) 2022-11-21 12:12:05 +08:00
Weblate (bot)
786b93b7ec
Translated using Weblate (Ukrainian) (#265) 2022-11-21 12:11:55 +08:00
Weblate (bot)
23c4b18dc8
Translated using Weblate (French) (#263) 2022-11-13 18:01:31 +08:00
Weblate (bot)
2b06f50fad
Translated using Weblate (Portuguese (Brazil)) (#258) 2022-11-11 15:31:31 +08:00
24 changed files with 498 additions and 191 deletions

View File

@ -14,13 +14,16 @@ if (keyPropsFile.exists()) {
keyProps.load(new FileInputStream(keyPropsFile))
}
Properties localProperties = new Properties()
localProperties.load(rootProject.file('local.properties').newDataInputStream())
android {
compileSdk 32
compileSdk 33
defaultConfig {
applicationId "me.ash.reader"
minSdk 26
targetSdk 32
targetSdk 33
versionCode 15
versionName "0.9.1"
@ -37,6 +40,11 @@ android {
]
}
}
buildConfigField "String", "CACHE_PUB_KEY", localProperties['CACHE_PUB_KEY']
buildConfigField "String", "INJECTOR_CREDENTIALS", localProperties['INJECTOR_CREDENTIALS']
buildConfigField "String", "INJECTOR_TLS_CERT", localProperties['INJECTOR_TLS_CERT']
}
flavorDimensions "channel"
@ -186,4 +194,8 @@ dependencies {
testImplementation "junit:junit:4.13.2"
androidTestImplementation "androidx.test.ext:junit:1.1.3"
androidTestImplementation "androidx.test.espresso:espresso-core:3.4.0"
// OuiNet integration
implementation 'ie.equalit.ouinet:ouinet-x86_64:0.21.3'
implementation 'com.getkeepsafe.relinker:relinker:1.4.4'
}

View File

@ -10,6 +10,8 @@ import androidx.profileinstaller.ProfileInstallerInitializer
import coil.ImageLoader
import coil.compose.LocalImageLoader
import dagger.hilt.android.AndroidEntryPoint
import ie.equalit.ouinet.Ouinet
import ie.equalit.ouinet.Config
import me.ash.reader.data.dao.AccountDao
import me.ash.reader.data.model.preference.AccountSettingsProvider
import me.ash.reader.data.model.preference.LanguagesPreference
@ -23,6 +25,7 @@ import javax.inject.Inject
*/
@AndroidEntryPoint
class MainActivity : ComponentActivity() {
private lateinit var ouinet: Ouinet
@Inject
lateinit var imageLoader: ImageLoader
@ -41,6 +44,21 @@ class MainActivity : ComponentActivity() {
it.setLocale(this)
}
// Enable OuiNet client
val config = Config.ConfigBuilder(this)
.setCacheType("bep5-http")
.setCacheHttpPubKey(BuildConfig.CACHE_PUB_KEY)
.setInjectorCredentials(BuildConfig.INJECTOR_CREDENTIALS)
.setInjectorTlsCert(BuildConfig.INJECTOR_TLS_CERT)
.setTlsCaCertStorePath("file:///android_asset/cacert.pem")
.setDisableOriginAccess(true)
//.setDisableProxyAccess(true)
//.setDisableInjectorAccess(true)
.build()
ouinet = Ouinet(this, config)
ouinet.start()
setContent {
CompositionLocalProvider(
LocalImageLoader provides imageLoader,

View File

@ -31,6 +31,8 @@ import okhttp3.Cache
import okhttp3.Interceptor
import okhttp3.OkHttpClient
import okhttp3.Response
import java.net.Proxy
import java.net.InetSocketAddress
import java.io.File
import java.security.KeyManagementException
import java.security.NoSuchAlgorithmException
@ -67,7 +69,8 @@ fun cachingHttpClient(
connectTimeoutSecs: Long = 30L,
readTimeoutSecs: Long = 30L,
): OkHttpClient {
val builder: OkHttpClient.Builder = OkHttpClient.Builder()
val ouinetService = Proxy(Proxy.Type.HTTP, InetSocketAddress("127.0.0.1", 8077))
val builder: OkHttpClient.Builder = OkHttpClient.Builder().proxy(ouinetService)
if (cacheDirectory != null) {
builder.cache(Cache(cacheDirectory, cacheSize))

View File

@ -1,3 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="all">Guztia</string>
<plurals name="all_desc">
@ -313,4 +314,39 @@
<string name="images_desc">Izkin biribilduak, betetze horizontala</string>
<string name="videos_desc">Izkin biribilduak, betetze horizontala</string>
<string name="maximize">Maximizatu</string>
</resources>
<string name="add_accounts">Kontuak gehitu</string>
<string name="for_2_days">2 egun</string>
<string name="services">Zerbitzuak</string>
<string name="more">Gehiago</string>
<string name="display">Erakutsi</string>
<string name="list">Zerrenda</string>
<string name="for_3_days">3 egun</string>
<string name="for_1_week">Aste 1</string>
<string name="for_1_month">Hilabete 1</string>
<string name="export_as_opml">OPML bezala esportatu</string>
<string name="sync_once_on_start">Sinkronizatu behin abiarazterakoan</string>
<string name="for_2_weeks">2 aste</string>
<string name="delete_account">Kontua ezabatu</string>
<string name="must_have_an_account">Kontu behar beharrezkoa da</string>
<string name="every_2_hours">2 orduro</string>
<string name="every_1_hour">Orduro</string>
<string name="every_12_hours">12 orduro</string>
<string name="keep_archived_articles">Mantendu artxibatutako artikuluak</string>
<string name="every_15_minutes">15 minuturo</string>
<string name="every_30_minutes">30 minuturo</string>
<string name="every_3_hours">3 orduro</string>
<string name="local_desc">Gailu honetan</string>
<string name="only_when_charging">Kargatu bitartean soilik</string>
<string name="clear_all_articles">Artikulu guztiak ezabatu</string>
<string name="every_6_hours">6 orduro</string>
<string name="add_accounts_desc">Lokala, Zerbitzuak, Norberak ostatatukoa</string>
<string name="only_on_wifi">Wifipean soilik</string>
<string name="self_hosted">Norberak ostatatutakoa</string>
<string name="synchronous">Sinkronizazioa</string>
<string name="sync_interval">Sinkronizatu</string>
<string name="every_1_day">Egunero</string>
<string name="for_1_day">Egun 1</string>
<string name="delete_account_toast">Kontu hau ezabatu egin da</string>
<string name="clear_all_articles_toast">Kontu honetako artikulu guztiak ezabatu dira</string>
<string name="block_list">Blokeatutakoen zerrenda</string>
</resources>

View File

@ -2,21 +2,21 @@
<resources>
<string name="all">Tout</string>
<plurals name="all_desc">
<item quantity="one">%1$d élément archivé</item>
<item quantity="other">%1$d éléments archivés</item>
<item quantity="many">%1$d éléments archivés</item>
<item quantity="one">%1$d élément archivé</item>
<item quantity="many">%1$d éléments archivés</item>
<item quantity="other">%1$d éléments archivés</item>
</plurals>
<string name="unread">Non lus</string>
<plurals name="unread_desc">
<item quantity="one">%1$d élément non lu</item>
<item quantity="other">%1$d éléments non lus</item>
<item quantity="many">%1$d éléments non lus</item>
<item quantity="one">%1$d élément non lu</item>
<item quantity="many">%1$d éléments non lus</item>
<item quantity="other">%1$d éléments non lus</item>
</plurals>
<string name="starred">Favoris</string>
<plurals name="starred_desc">
<item quantity="one">%1$d élément favori</item>
<item quantity="other">%1$d éléments favoris</item>
<item quantity="many">%1$d éléments favoris</item>
<item quantity="one">%1$d élément favori</item>
<item quantity="many">%1$d éléments favoris</item>
<item quantity="other">%1$d éléments favoris</item>
</plurals>
<string name="feeds">Flux</string>
<string name="syncing">Synchronisation…</string>
@ -35,7 +35,7 @@
<string name="refresh">Actualiser</string>
<string name="search">Rechercher</string>
<string name="searching">Recherche…</string>
<string name="subscribe">S\'abonner</string>
<string name="subscribe">Sabonner</string>
<string name="already_subscribed">Déjà abonné</string>
<string name="clear">Vider</string>
<string name="paste">Coller</string>
@ -44,52 +44,52 @@
<string name="preset">Préréglages</string>
<string name="selected">Sélectionné</string>
<string name="allow_notification">Autoriser les notifications</string>
<string name="all_allow_notification_tips">Vous êtes sur le point d\'autoriser tous les flux dans le groupe \"%1$s\" à vous envoyer des notifications.</string>
<string name="all_allow_notification_toast">Toutes les notifications du groupe \"%1$s\" sont autorisées</string>
<string name="all_deny_notification_toast">Toutes les notifications du groupe \"%1$s\" sont bloquées</string>
<string name="all_allow_notification_tips">Vous êtes sur le point dautoriser tous les flux du groupe « %1$s» à envoyer des notifications.</string>
<string name="all_allow_notification_toast">Toutes les notifications du groupe « %1$s» sont autorisées</string>
<string name="all_deny_notification_toast">Toutes les notifications du groupe « %1$s» sont bloquées</string>
<string name="parse_full_content">Analyser tout le contenu</string>
<string name="all_parse_full_content_tips">Vous êtes sur le point d\'autoriser l\'analyse de tout le contenu de tous les articles du groupe \"%1$s\".</string>
<string name="all_parse_full_content_toast">Le contenu de tous les articles du groupe \"%1$s\" est maintenant analysé</string>
<string name="all_deny_parse_full_content_toast">Le contenu de tous les articles du groupe \"%1$s\" n\'est plus analysé</string>
<string name="all_parse_full_content_tips">Vous êtes sur le point dautoriser lanalyse de tout le contenu de tous les articles du groupe « %1$s».</string>
<string name="all_parse_full_content_toast">Analyse de tout le contenu de tous les articles du groupe « %1$s»</string>
<string name="all_deny_parse_full_content_toast">"Ne plus analyser le contenu de tous les articles du groupe « %1$s» "</string>
<string name="clear_articles">Vider les articles</string>
<string name="clear_articles_in_feed_toast">Tous les articles archivés du flux \"%1$s\" ont été effacés</string>
<string name="clear_articles_in_group_toast">Tous les articles archivés du groupe \"%1$s\" ont été effacés</string>
<string name="clear_articles_feed_tips">Vous êtes sur le point d\'effacer tous les articles archivés du flux \"%1$s\".</string>
<string name="clear_articles_group_tips">Vous êtes sur le point d\'effacer tous les articles archivés du groupe \"%1$s\".</string>
<string name="clear_articles_in_feed_toast">Tous les articles archivés du flux « %1$s» ont été effacés</string>
<string name="clear_articles_in_group_toast">Tous les articles archivés du groupe « %1$s» ont été effacés</string>
<string name="clear_articles_feed_tips">Vous êtes sur le point deffacer tous les articles archivés du flux « %1$s».</string>
<string name="clear_articles_group_tips">Vous êtes sur le point deffacer tous les articles archivés du groupe « %1$s».</string>
<string name="add_to_group">Ajouter au groupe</string>
<string name="move_to_group">Déplacer vers le groupe</string>
<string name="all_move_to_group_tips">Voulez-vous vraiment déplacer tous les flux du groupe \"%1$s\" vers le groupe \"%2$s\" ?</string>
<string name="all_move_to_group_toast">Déplacé vers le groupe \"%1$s\"</string>
<string name="all_move_to_group_tips">Voulez-vous vraiment déplacer tous les flux du groupe « %1$s» vers le groupe « %2$s»\?</string>
<string name="all_move_to_group_toast">Déplacé vers le groupe « %1$s»</string>
<string name="rename">Renommer</string>
<string name="change_url">Modifier l\'URL</string>
<string name="rename_toast">Renommé en \"%1$s\"</string>
<string name="change_url">Modifier lURL</string>
<string name="rename_toast">Renommé en « %1$s»</string>
<string name="create_new_group">Créer un nouveau groupe</string>
<string name="name">Nom</string>
<string name="open_with">Ouvrir %1$s</string>
<string name="options">Options</string>
<string name="delete">Supprimer</string>
<string name="delete_toast">\"%1$s\" a été supprimé</string>
<string name="delete_toast">« %1$s» a été supprimé</string>
<string name="unsubscribe">Se désabonner</string>
<string name="unsubscribe_tips">Se désabonner de \"%1$s\" et supprimer tous les articles archivés de ce flux ?</string>
<string name="unsubscribe_tips">Se désabonner de « %1$s» et supprimer tous les articles archivés de ce flux\?</string>
<string name="delete_group">Supprimer le groupe</string>
<string name="delete_group_tips">Supprimer le groupe \"%1$s\" et tous ses articles archivés ?</string>
<string name="delete_group_tips">Supprimer le groupe « %1$s» et tous ses articles archivés\?</string>
<string name="group_option_tips">Les options suivantes seront appliqués à tous les flux du groupe.</string>
<string name="today">Aujourd\'hui</string>
<string name="today">Aujourdhui</string>
<string name="yesterday">Hier</string>
<string name="date_at_time">%1$s à %2$s</string>
<string name="search_for_in">Rechercher dans %1$s du flux \"%2$s\"</string>
<string name="search_for_in">Rechercher dans %1$s de « %2$s»</string>
<string name="search_for">Rechercher dans %1$s</string>
<string name="mark_as_read">Marquer comme lu</string>
<string name="mark_all_as_read">Tout marquer comme lu</string>
<string name="mark_as_unread">Marquer comme non lu</string>
<string name="mark_as_starred">Ajouter aux favoris</string>
<string name="mark_as_unstar">Retirer des favoris</string>
<string name="mark_as_read_one_day">Marquer comme lu les articles jusqu\'à 1 jour</string>
<string name="mark_as_read_three_days">Marquer comme lu les articles jusqu\'à 3 jours</string>
<string name="mark_as_read_seven_days">Marquer comme lu les articles jusqu\'à 7 jours</string>
<string name="one_day">1j</string>
<string name="three_days">3j</string>
<string name="seven_days">7j</string>
<string name="mark_as_read_one_day">Marquer comme lu les articles datant de plus dun jour</string>
<string name="mark_as_read_three_days">Marquer comme lu les articles datant de plus de 3 jours</string>
<string name="mark_as_read_seven_days">Marquer comme lu les articles datant de plus de 7 jours</string>
<string name="one_day">1 j</string>
<string name="three_days">3 j</string>
<string name="seven_days">7 j</string>
<string name="close">Fermer</string>
<string name="get_new_updates">Rechercher des mises à jour</string>
<string name="get_new_updates_desc">La version %1$s est disponible</string>
@ -102,127 +102,18 @@
<string name="interaction">Comportement</string>
<string name="interaction_desc">Au démarrage, retour haptique</string>
<string name="languages">Langues</string>
<string name="languages_desc">Français, English, plus</string>
<string name="languages_desc">Français, anglais et plus</string>
<string name="help_translate">Aidez-nous à traduire</string>
<string name="use_device_languages">Utiliser la langue du système</string>
<string name="use_device_languages">Utiliser la langue système</string>
<string name="tips_and_support">Aide et assistance</string>
<string name="tips_and_support_desc">À propos, Open Source</string>
<string name="tips_and_support_desc">À propos, Licences Open Source</string>
<string name="welcome">Bienvenue</string>
<string name="tos_tips">Avant de continuer, vous devez accepter les conditions d\'utilisation et la politique de confidentialité de Read You.</string>
<string name="browse_tos_tips">Lire les &lt;i&gt;&lt;u&gt;conditions d\'utilisation et la politique de confidentialité&lt;/u&gt;&lt;/i&gt;</string>
<string name="terms_of_service">Conditions</string>
<string name="tos_content">
&lt;h5&gt;
Privacy Policy
&lt;/h5&gt;
&lt;br/&gt;
&lt;p&gt;
I take your privacy very seriously.
&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;
&lt;b&gt;Read You&lt;/b&gt;
does not collect any user data, and all sensitive information (passwords and other account information) is
securely stored in the local application database on your device.
&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;
&lt;b&gt;Read You&lt;/b&gt;
will use the following permissions to provide you with the service.
&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;
- Access Network permission (for accessing online content as you specify)
&lt;/p&gt;
&lt;p&gt;
- Get network status permission (for getting whether the device currently has available network conditions)
&lt;/p&gt;
&lt;p&gt;
- Background service permission (to automatically sync your favorites for you on a regular
basis)
&lt;/p&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;h5&gt;
Third Party Services
&lt;/h5&gt;
&lt;br/&gt;
&lt;p&gt;
This policy does not apply to third-party services that you use with &lt;b&gt;Read You&lt;/b&gt;. You can review
the privacy policies of the third-party services you use on their websites
&lt;/p&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;h5&gt;
Disclaimers
&lt;/h5&gt;
&lt;br/&gt;
&lt;p&gt;
&lt;b&gt;Read You&lt;/b&gt;
is a content collection tool only. Your use of &lt;b&gt;Read You&lt;/b&gt; is subject to the laws and
regulations of your country and region, and any liability arising from your actions will be borne by you
personally.
&lt;/p&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;h5&gt;
Open Source License
&lt;/h5&gt;
&lt;br/&gt;
&lt;p&gt;
&lt;b&gt;Read You&lt;/b&gt;
is an open source project under the GNU GPL 3.0 Open Source License[1], which allows you to use, reference, and
modify the source code of &lt;b&gt;Read You&lt;/b&gt; for free, but does not allow the
modified and derived code to be distributed and sold as closed-source commercial software. For details, please
see the full GNU GPL 3.0 Open Source License[2].
&lt;/p&gt;
&lt;br/&gt;
&lt;br/&gt;
&lt;h5&gt;
Appendix
&lt;/h5&gt;
&lt;br/&gt;
&lt;p&gt;
- [1] https://github.com/Ashinch/ReadYou
&lt;/p&gt;
&lt;p&gt;
- [2] https://www.gnu.org/licenses/gpl-3.0.html
&lt;/p&gt;
</string>
<string name="agree">J\'accepte</string>
<string name="wallpaper_colors">Couleurs du fond d\'écran</string>
<string name="tos_tips">Avant de continuer, vous devez accepter les conditions dutilisation et la politique de confidentialité de Read You.</string>
<string name="browse_tos_tips">Lire les <i><u>conditions dutilisation et la politique de confidentialité</u></i></string>
<string name="terms_of_service">Conditions dutilisation</string>
<string name="tos_content"><h5>Politique de confidentialité</h5><br/><p>Je prends votre vie privée très au sérieux.</p><br/><p><b>Read You</b> ne collecte aucune donnée utilisateur, et toutes les informations sensibles (mots de passe et autres informations de compte) sont stockées en toute sécurité dans la base de données de lapplication en local sur votre appareil.</p><br/><p><b>Read You</b> utilisera les permissions suivantes pour vous fournir le service.</p><br/><p>- Autorisation daccès au réseau (pour accéder au contenu en ligne que vous spécifiez)</p><p> - Autorisation dobtention de létat du réseau (pour savoir si lappareil dispose actuellement dune connexion réseau)</p><p> - Autorisation dexécution en arrière-plan (pour synchroniser automatiquement vos favoris pour vous de manière régulière)</p><br/><br/><h5>Services tiers</h5><br/><p>La politique de confidentialité ne sapplique pas aux services tiers que vous utilisez avec <b>Read You</b>. Vous pouvez consulter les politiques de confidentialité des services tiers que vous utilisez sur leurs sites Web.</p><br/><br/><h5>Avis de non-responsabilité</h5><br/><p><b>Read You</b> est un outil de collecte de contenu uniquement. Votre utilisation de <b>Read You</b> est soumise aux lois et réglementations de votre pays et région, et toute responsabilité découlant de vos actions sera supportée par vous personnellement.</p><br/><br/><h5>Licence Open Source</h5><br/><p><b>Read You</b> est un projet open source sous licence GNU GPL 3.0 [1], qui vous permet dutiliser, de référencer et de modifier gratuitement le code source de <b>Read You</b>, mais nautorise pas la distribution et la vente du code modifié et dérivé en tant que logiciel commercial à source fermée. Pour plus de détails, veuillez consulter la version intégrale de la licence GNU GPL 3.0 [2].</p><br/><br/><h5>Annexe</h5><br/><p> - [1] https://github.com/Ashinch/ReadYou</p><p> - [2] https://www.gnu.org/licenses/gpl-3.0.html</p></string>
<string name="agree">Jaccepte</string>
<string name="wallpaper_colors">Couleurs du fond décran</string>
<string name="no_palettes">Aucune palette</string>
<string name="only_android_8.1_plus">Android 8.1+ uniquement</string>
<string name="basic_colors">Couleurs de base</string>
@ -257,7 +148,7 @@
<string name="on_start">Au démarrage</string>
<string name="initial_page">Page initiale</string>
<string name="initial_filter">Filtre initial</string>
<string name="preview_article_title">Le roman "Le Seigneur des Mystères" a finalement pris fin.</string>
<string name="preview_article_title">Le roman Le Seigneur des Mystères a finalement pris fin</string>
<string name="preview_article_desc">Le Fou est le huitième et dernier volume de la série Le Seigneur des Mystères écrite par Cuttlefish That Loves Diving.</string>
<string name="preview_feed_name">Reddit</string>
<string name="value">Valeur</string>
@ -267,53 +158,53 @@
<string name="article_images">Images des articles</string>
<string name="feed_names">Noms des flux</string>
<string name="feed_favicons">Favicons des flux</string>
<string name="article_date_sticky_header">En-tête fixe de l\'heure de publication des articles (Expérimental)</string>
<string name="article_list">Liste d\'articles</string>
<string name="article_date_sticky_header">En-tête fixe de lheure de publication des articles (Expérimental)</string>
<string name="article_list">Liste darticles</string>
<string name="group_list">Liste des groupes</string>
<string name="always_expand">Toujours développer</string>
<string name="top">Haut</string>
<string name="mark_as_read_button_position">Position du bouton \"Marquer comme lu\"</string>
<string name="top_bar">Barre supérieure</string>
<string name="fill_selected_icon">Remplir l\'icône sélectionné</string>
<string name="fill_selected_icon">Remplir licône sélectionnée</string>
<string name="filter_bar">Barre de filtre</string>
<string name="icons">Icônes</string>
<string name="icons_and_labels">Icônes et étiquettes</string>
<string name="icons_and_label_only_selected">Icônes et étiquettes (sélectionné uniquement)</string>
<string name="tips_top_bar_tonal_elevation">L\'intensité de l\'en-tête est valable uniquement lors du défilement.</string>
<string name="tips_article_list_tonal_elevation">L\'intensité de la liste d\'articles est uniquement disponible pour le thème clair.</string>
<string name="tips_group_list_tonal_elevation">L\'intensité de la liste des groupes est uniquement disponible pour le thème clair.</string>
<string name="tips_top_bar_tonal_elevation">Lintensité de len-tête est valable uniquement lors du défilement.</string>
<string name="tips_article_list_tonal_elevation">Lintensité de la liste darticles est uniquement disponible pour le thème clair.</string>
<string name="tips_group_list_tonal_elevation">Lintensité de la liste des groupes est uniquement disponible pour le thème clair.</string>
<string name="share">Partager</string>
<string name="touch_to_play_video">Appuyer pour lancer la lecture</string>
<string name="text">Text</string>
<string name="font_size">Font size</string>
<string name="letter_spacing">Letter spacing</string>
<string name="line_spacing">Line spacing</string>
<string name="alignment">Alignment</string>
<string name="font_size">Taille de la police</string>
<string name="letter_spacing">Espacement des lettres</string>
<string name="line_spacing">Espacement des lignes</string>
<string name="alignment">Alignement</string>
<string name="general">General</string>
<string name="auto_hide_toolbars">Auto hide toolbars</string>
<string name="rearrange_buttons">Rearrange buttons</string>
<string name="bionic_reading">Bionic Reading</string>
<string name="auto_hide_toolbars">Masquer automatiquement la barres doutils</string>
<string name="rearrange_buttons">Réorganiser les boutons</string>
<string name="bionic_reading">Lecture bionique</string>
<string name="images">Images</string>
<string name="rounded_corners">Rounded corners</string>
<string name="videos">Videos</string>
<string name="align_left">Align left</string>
<string name="align_right">Align right</string>
<string name="center_text">Center text</string>
<string name="justify">Justify</string>
<string name="external_fonts">External fonts</string>
<string name="title">Title</string>
<string name="bold">Bold</string>
<string name="upper_case">Upper case</string>
<string name="subhead">Subhead</string>
<string name="use_app_theme">Use app theme</string>
<string name="advanced">Advanced</string>
<string name="dark_reading_theme">Dark reading theme</string>
<string name="title_desc">Bold, upper case, alignment</string>
<string name="text_desc">Font size, letter spacing, alignment</string>
<string name="images_desc">Rounded corners, horizontal padding</string>
<string name="videos_desc">Rounded corners, horizontal padding</string>
<string name="maximize">Maximize</string>
<string name="synchronous_tips">Un redémarrage est obligatoire pour que les changements s\'appliquent.</string>
<string name="rounded_corners">Coins arrondis</string>
<string name="videos">Vidéos</string>
<string name="align_left">Aligner à gauche</string>
<string name="align_right">Aligner à droite</string>
<string name="center_text">Centrer le texte</string>
<string name="justify">Justifier</string>
<string name="external_fonts">Polices externes</string>
<string name="title">Titre</string>
<string name="bold">Gras</string>
<string name="upper_case">Majuscule</string>
<string name="subhead">Sous-titre</string>
<string name="use_app_theme">Utiliser le thème de lapplication</string>
<string name="advanced">Avancé</string>
<string name="dark_reading_theme">Thème de lecture sombre</string>
<string name="title_desc">Gras, majuscule, alignement</string>
<string name="text_desc">Taille de police, espacement des lettres, alignement</string>
<string name="images_desc">Coins arrondis, rembourrage horizontal</string>
<string name="videos_desc">Coins arrondis, rembourrage horizontal</string>
<string name="maximize">Maximiser</string>
<string name="synchronous_tips">Un redémarrage est obligatoire pour que les changements sappliquent.</string>
<string name="delete_account">Supprimer le compte</string>
<string name="clear_all_articles_tips">Êtes-vous sûr de vouloir effacer tous les articles de ce compte \?</string>
<string name="every_15_minutes">Toutes les 15 minutes</string>

View File

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="unread">Непрочитані</string>
<string name="starred">Із зіркою</string>
<plurals name="starred_desc">
<item quantity="one">%1$d елемент із зіркою</item>
<item quantity="few">%1$d елементи з зіркою</item>
<item quantity="many">%1$d елементів з зіркою</item>
<item quantity="other">%1$d елементів з зіркою</item>
</plurals>
<string name="feeds">Канали</string>
<string name="syncing">Синхронізація…</string>
<string name="loading">Завантаження…</string>
<string name="expand_less">Згорнути</string>
<string name="expand_more">Розгорнути</string>
<string name="confirm">Підтвердити</string>
<string name="cancel">Скасувати</string>
<string name="deny">Заборонити</string>
<string name="defaults">Типово</string>
<string name="unknown">Невідомо</string>
<string name="back">Назад</string>
<string name="go_to">Перейти до</string>
<string name="settings">Установки</string>
<string name="refresh">Оновити</string>
<string name="searching">Шукаємо…</string>
<string name="subscribe">Підписатись</string>
<string name="already_subscribed">Вже підписані</string>
<string name="clear">Очистити</string>
<string name="paste">Вставити</string>
<string name="import_from_opml">Імпорт із OPML</string>
<string name="preset">Предустановка</string>
<string name="selected">Вибрано</string>
<string name="all_allow_notification_tips">Дозволити всім каналам у групі «%1$s» надсилати сповіщення.</string>
<string name="all_deny_notification_toast">Усі сповіщення від групи «%1$s» заборонені</string>
<string name="parse_full_content">Розібрати повний вміст</string>
<string name="all_parse_full_content_toast">Розбір повного вмісту всіх статей у групі «%1$s»</string>
<string name="all">Все</string>
<plurals name="all_desc">
<item quantity="one">%1$d архівований елемент</item>
<item quantity="few">%1$d архівовані елементи</item>
<item quantity="many">%1$d архівований елементів</item>
<item quantity="other">%1$d архівований елементів</item>
</plurals>
<plurals name="unread_desc">
<item quantity="one">%1$d непрочитаний елемент</item>
<item quantity="few">%1$d непрочитані елементи</item>
<item quantity="many">%1$d непрочитаних елементів</item>
<item quantity="other">%1$d непрочитаних елементів</item>
</plurals>
<string name="allow">Дозволити</string>
<string name="search">Пошук</string>
<string name="feed_or_site_url">Канал або URL</string>
<string name="allow_notification">Дозволити сповіщення</string>
<string name="all_allow_notification_toast">Усі сповіщення від групи «%1$s» дозволені</string>
<string name="all_parse_full_content_tips">Розбір повного вмісту всіх статей у групі «%1$s».</string>
</resources>

View File

@ -0,0 +1,15 @@
## 0.9.0
1. Ajout dune fonctionnalité de paramétrage des comptes
2. Ajout de traductions dans de nombreuses langues (merci à chacun dentre eux, merci à Weblate.com)
3. Ajout de la fonction «bouton article suivant» lors de la lecture (animation temporaire, merci à frearb)
4. Correction de licône monochrome sur Android 13
5. Suppression de la dépendance à TLSv1.3, réduction de la taille de lapplication (impact inconnu)
6. Réduction du nombre darticles chargés en même temps (100 → 50)
7. Ajout dune interface utilisateur de type multi-comptes (la prochaine version prendra en charge plusieurs comptes locaux)

View File

@ -0,0 +1,13 @@
## 0.9.1
Mise à jour supplémentaire.
1. Le moteur de rendu se repositionne désormais en haut de lécran lorsque vous cliquez sur le bouton «Article suivant»
2. Ajout et correction de traductions (merci à tous)
3. Correction de la fonction «Filtre initial»
4. Correction du problème de chargement des images des articles de Politico et Substack (merci à Liquid-Aristocracy et Feeder)
5. Correction du problème de crash de lapplication lors de la vérification des mises à jour

View File

@ -0,0 +1,21 @@
## 0.7.2
1. Nouveau système de couleurs dynamiques (nécessite Android 8.1+, le nombre de couleurs dynamiques dépend de la richesse des couleurs du fond décran actuel, généralement 1 à 3).
2. La valeur de la couleur daccentuation peut maintenant être personnalisée (lentrée est dans le dernier échantillon de la couleur de base, il convient de noter que la couleur personnalisée est seulement pour référence, la couleur spécifique, lalgorithme de sélection de couleur sélectionnera automatiquement la valeur de couleur Monet appropriée).
3. Les fonctionnalités non mises en œuvre sont maintenant marquées en gris pour réduire la confusion.
4. Correction du problème de confusion du tri temporel du flux dinformations lorsque la condition de filtrage est la source dabonnement.
5. Améliorer la taille de licône des notifications.
6. Désormais, les articles dupliqués ne seront pas synchronisés (dupliqué signifie que le lien de la page originale est le même).
### Notes :
1. La première fois que vous changez de couleur après linstallation, il peut revenir à la page daccueil, nous allons donc le corriger dans la prochaine version.
2. La prochaine version concerne principalement la page « À propos» et la vérification intégrée de la nouvelle version.
3. La page de lecture sera séparée du groupe de glissement et deviendra une page distincte.

View File

@ -0,0 +1,35 @@
## 0.7.4
1. Ajout de la page «Conseils et assistance».
2. Ajouter la vérification et le téléchargement des mises à jour.
3. Sélectionnez le thème de couleur dynamique par défaut lors de la première installation (si disponible).
4. Ajouter la fonction de synchronisation par glissement vers le bas à la page de flux dinformations.
5. Ajouter temporairement une indication de chargement lors de lanalyse du contenu complet.
6. Mise à jour de certaines dépendances amont (peut avoir des défauts inconnus).
7. Support du protocole RSS v1.0 (à tester).
8. Correction de larrière-plan de la barre de navigation du système.
9. Correction du problème de non interception de lévénement back lorsque le menu optionnel est ouvert.
10. Optimiser certains styles de vidéo dans la page de lecture.
11. Optimiser certains styles anormaux.
### Notes
1. Vérifier les mises à jour une fois automatiquement à chaque démarrage à froid (vous pouvez en faire l'expérience lors de la sortie de la prochaine version).
2. Lors de la vérification des mises à jour, utilisez lAPI Gitee pour les langues chinoises simplifiées et lAPI GitHub pour les autres langues.
3. Veuillez ne pas vérifier les mises à jour manuellement trop souvent (un intervalle de refroidissement de 2 secondes a été défini), car la même IP ne peut accéder à lAPI GitHub que 60 fois par heure, et la limite de fréquence exacte de lAPI Gitee est inconnue (elle na pas encore été réinitialisée depuis 8 heures).
4. Le refactoring des pages de lecture est venu après la v0.8, et le refactoring de licône et de la couverture est venu après la v0.9, et le support de FreshRSS (Fever API, Google Reader API) est venu après la v1.0.
5. Cette version ne peut être synchronisée quavec un seul thread en raison dun bug du plugin danalyse en amont, qui peut être un peu lent. Lauteur du plugin mentionne quil sera corrigé dans la prochaine version, et que le protocole Atom sera également pris en charge.

View File

@ -0,0 +1,11 @@
## 0.7.5
1. Prise en charge du protocole RSS Atom.
### Notes
1. Lanalyse de lélément `<content>` dans le protocole Atom sera bientôt supportée.
2. Le ViewPager est en cours de séparation et de refactoring récemment, donc la fluidité sera améliorée.
3. Cette version est une version directe, vous pouvez donc tester la vérification de la fonction de mise à jour.

View File

@ -0,0 +1,7 @@
## 0.7.6
1. Séparer le ViewPager.
2. Fusionner les notifications par flux.
3. Ne plus télécharger les fichiers de mise à jour, mais passer directement à la page de publication.

View File

@ -0,0 +1,13 @@
## 0.7.7
1. Ajout des paramètres de style de la page des flux.
2. Ajoutez les paramètres de style de page de flux.
3. Ajoutez les paramètres de la page initiale.
4. Ajoutez les paramètres initiaux du filtre.
5. Ajouter la fonction de modification de lURL du flux.
6. Corriger la description du filtre Banner.

View File

@ -0,0 +1,19 @@
## 0.8.0
1. Incluir tradução para Alemão (agradecimentos a Dave).
2. Reestruturar a pagina de leitura (graças ao código aberto do Feeder).
3. Incluir indicador de rolagem a pág. de leitura (obrigado Matt Vaughn e Albert Chang. Apenas referência, não há API do Google, somente manual).
4. Incluir função de compartilhar artigos.
5. Incluir preview dos artigos (apenas artigos sincronizados pós release).
6. Outras pequenas alterações.
### Nota
1. Essa versão está apresentando travamentos, vários problemas, a próxima versão irá otimizar e reformatar o código.
2. Leva três meses antes que você possa começar a contribuir com traduções (Um requerimento da Weblate para projetos open source).

View File

@ -0,0 +1,13 @@
## 0.7.8
1. Dil ayarları sayfası eklenmesi (bazı hatalar).
2. Karanlık tema ayarları eklenmesi.
3. AMOLED karanlık tema eklenmesi.
4. Besiler ve gruplar için makaleleri temizleme özelliği eklenmesi.
5. Android 12+ cihazlar için, şimdi ilk duvarkâğıdı renkleri paletinin yerini sistemce sağlanan renk şemasının alması.
6. RSS çözümleme eklentisi Rome'a geçildi. (çoğu besiyi çözümleyebiliyor olmalı, Youtube, Reddit, vs. gibi bazı özel biçimleri çözümleyemediği biliniyor)

View File

@ -0,0 +1,19 @@
## 0.8.0
1. Almanca çeviri ekleme (teşekkürler Dave).
2. Okuma sayfası icrasını yeniden şekillendirme (Feeder'ın açık kaynak koduna şükür).
3. Okuma sayfası için kaydırma göstergesi ekleme (teşekkürler Matt Vaughn ve Albert Chang. sadece örnek için, çünkü Google'ın API'ı yok, sadece el ile uygulanabilir).
4. Makale paylaş özelliği ekleme.
5. Makale görseli önizlemeleri ekleme (sadece bu sürümden itibaren yeni eşleştirilen makaleler için).
6. Diğer detay değişiklikler.
### Not
1. Bu sürüm birazıcık gecikmeli, pek çok sorun bulundu, gelecek sürüm kodu eniyileyecek ve yenide şekillendirecek.
2. Çeviri katkılarınıza başlayabilmeniz için üç ay geçmeli (Weblate'in açık kaynak projeler için gerekliliği).

View File

@ -0,0 +1,17 @@
## 0.8.1
1. Fransızca çeviri ekleme (teşekkürler DodoLeDev).
2. Çekçe çeviri ekleme (teşekkürler Fjuro).
3. Bazı çevirilmiş metinlerde değişiklikler (teşekkürler comradekingu).
4. Sürüm 0.8.0'dan bir OPML dosyasını içe aktarma sonrası eşitleyememe meselesini giderme.
5. Çok büyük (50MB+) imgeler yükleniyorsa çökme giderme (teşekkürler Feeder).
6. Bazı besilere abone olunamama meselesini giderme (teşekkürler kzaemrio).
7. Aşırı çok besi (100+) vakası eniyileştirme.
8. Bazı randıman eniyileştirmeleri ve detay değişiklikler.

View File

@ -0,0 +1,29 @@
## 0.8.3
1. Abonelik eklerken besi adı değişikliğine izin ver
2. Okuma sayfası tarzı ayarları ekleme
3. Italyanca çeviri ekleme (şükürler Giovanni)
4. Hintçe çeviri ekleme (şükürler augurer)
5. İspanyolca çeviri ekleme (şükürler Jayler95)
6. Lehçe çeviri ekleme (şükürler maciej-klupp)
7. Almanca çeviri güncelleme (şükürler Dave)
8. Hizmet Şartları yapma ve F-Droid'e dahil etme Built (şükürler linsui)
9. Diğer detay değişiklikler
Read You artık temel yerel okuma işlevine sahip, şu üç şey sıradaki öncellikler olacaklar.
1. Bazı hesap ayarları (örn. eşitleme sıklığı)
2. Çoklu-hesap desteği (üçüncü taraf API'larını destekleme öncesi gerekli)
3. Bazı üçüncü taraf API'ları desteği (örn. Fever, Google Reader)
Tüm diğer özellik talepleri ertelendi.

View File

@ -0,0 +1,15 @@
## 0.9.0
1. Hesap kurulumu özelliği ekleme
2. Pek çok dilde çeviri ekleme (teşekkürler herbirine, teşekkürler Weblate.com'a)
3. Okurken "sıradaki makale düğmesi" özelliği ekleme (geçici canlandırma, teşekkürler frearb)
4. Android 13'te tekrenkli simge onarımı
5. TLSv1.3 bağlılığını kaldırma, uygulama boyutu azaltma (bilinmeyen etki)
6. Bir kerede yüklenen makale sayısı azaltma (100 -> 50)
7. Çoklu hesap tipi kullanıcı arayüzü ekleme (gelecek sürüm çoklu yerel hesapları destekler)

View File

@ -0,0 +1,13 @@
## 0.9.1
Bu bir ek güncelleme.
1. İşleyici artık "Sıradaki makale" düğmesine tıklarken yeniden en üstte konumlanacak
2. Çeviri ekleme ve düzeltme (hepinize teşekkürler)
3. İlk filtre işlevi onarma
4. Politico ve Substack makale imgesi yükleme sorunu düzeltme (teşekkürler Liquid-Aristocracy ve Feeder)
5. Güncelleme denetlemesi sırasında uygulama çökmesi sorununu giderme

View File

@ -0,0 +1,21 @@
## 0.7.2
1. Yeni dinamik renk sistemi (Android 8.1+ gerektirir, dinamik renk sayısı güncel duvarkâğıdı renk zenginliğine bağlıdır, genellikle 1 ~ 3).
2. Vurgu renginin renk değeri de artık özelleştirilebilir (girdi, temel renk örneklerinin son parçasında, özel rengin sadece dayanak olduğu bilinmelidir, belirli renk, renk seçimi algoritması uygun Monet renk değerini kendiliğinden seçecektir)
3. Uyarlanmamış özellikler kafa karışıklığını azaltmak için artık gri işaretlenecekler.
4. Süzme koşulu abonelik kaynağı iken kafa karıştırıcı akış zamanı sıralama bilgisi sorunu giderme.
5. Bildirim simge boyutu geliştirme.
6. Eş makaleler artık eşitlenmeyecek (eş, asıl sayfa bağlantısının aynı olmasını ifade eder).
### Notlar:
1. Yükleme sonrası ilk renk değiştirmenizde, ana sayfaya geri dönebilir, gelecek sürümde düzelteceğiz.
2. Gelecek sürüm temelde "Hakkında" sayfası ve gömülü yeni sürüm kontrolü olacak.
3. Okuma sayfası kaydırma grubundan ayrılacak ve ayrı bir sayfa olacak.

View File

@ -0,0 +1,13 @@
## 0.7.7
1. Besiler sayfası tarzı ayarları ekleme.
2. Akış sayfası tarzı ayarları ekleme.
3. Giriş sayfası ayarları ekleme.
4. İlk filtre ayarları eklendi.
5. Besi URLi değiştirme özelliğibekleme.
6. Afiş filtre tanımı onarımı.

View File

@ -0,0 +1,16 @@
<i>Read You</i> Сучасний та елегантний читач RSS із дизайном <a href='https://m3.material.io/' target='_blank' rel='nofollow'>Material You </a>
<b>Features:</b>
* Subscribe to Feed Links
* Import from OPML
* Article Sync
* Article Update Notification
* Parse Full Content
* Filter Unread and Starred
* Feed Grouping
* Localization
* Export as OPML
* Search for Articles
More to come…

View File

@ -0,0 +1 @@
Сучасний та елегантний читач RSS із дизайном Material You