Compare commits

...

4 Commits

Author SHA1 Message Date
AntsyLich
58085336a5
Lint 2024-01-22 20:20:11 +06:00
Soitora
89ea0a271b
Add translation widget (#195) 2024-01-22 20:12:39 +06:00
AntsyLich
e3f33e24f5
Use own client for trackers + custom user agents
Closes #114
Closes #143

Co-authored-by: Med <45147847+kitsumed@users.noreply.github.com>
2024-01-22 16:18:30 +06:00
AntsyLich
9fd1419142
Translations (#189)
* Small fix on french translation. (#104)

Update fr/strings.xml

Remove mentions of "official" extensions repos. (On 18+ extensions warning)

Fixed a setting label who had the first letter in lowercase.

* Updated Turkish suffixes (#125)

Update strings.xml

* Fix zh-rTW Translation (#118)

fix zh-tw translate

* Update Filipino Plurals (#112)

Updated some Filipino Plurals to make sense grammatically

* Update Filipino Strings (#111)

Changed/updated a few grammatical strings for the Filipino Translation

---------

Co-authored-by: Med <45147847+kitsumed@users.noreply.github.com>
Co-authored-by: NukeSource <123626751+NukeSource@users.noreply.github.com>
Co-authored-by: ɴᴇᴋᴏ <111511925+NeKoOuO@users.noreply.github.com>
Co-authored-by: InfinityDouki56 <31158494+infyProductions@users.noreply.github.com>
2024-01-22 15:45:37 +06:00
15 changed files with 79 additions and 55 deletions

View File

@ -20,6 +20,9 @@
<a title="CI" href="https://github.com/mihonapp/mihon/actions/workflows/build_push.yml"> <a title="CI" href="https://github.com/mihonapp/mihon/actions/workflows/build_push.yml">
<img src="https://github.com/mihonapp/mihon/actions/workflows/build_push.yml/badge.svg"> <img src="https://github.com/mihonapp/mihon/actions/workflows/build_push.yml/badge.svg">
</a> </a>
<a title="Translation status" href="https://hosted.weblate.org/engage/mihon/">
<img src="https://hosted.weblate.org/widget/mihon/svg-badge.svg" alt="Translation status" />
</a>
</p> </p>
<h2 align="center">Download</h2> <h2 align="center">Download</h2>

View File

@ -1,5 +1,6 @@
package eu.kanade.tachiyomi.data.track.anilist package eu.kanade.tachiyomi.data.track.anilist
import eu.kanade.tachiyomi.BuildConfig
import okhttp3.Interceptor import okhttp3.Interceptor
import okhttp3.Response import okhttp3.Response
import java.io.IOException import java.io.IOException
@ -40,6 +41,7 @@ class AnilistInterceptor(val anilist: Anilist, private var token: String?) : Int
// Add the authorization header to the original request. // Add the authorization header to the original request.
val authRequest = originalRequest.newBuilder() val authRequest = originalRequest.newBuilder()
.addHeader("Authorization", "Bearer ${oauth!!.access_token}") .addHeader("Authorization", "Bearer ${oauth!!.access_token}")
.header("User-Agent", "Mihon v${BuildConfig.VERSION_NAME} (${BuildConfig.APPLICATION_ID})")
.build() .build()
return chain.proceed(authRequest) return chain.proceed(authRequest)

View File

@ -182,8 +182,8 @@ class BangumiApi(
) )
companion object { companion object {
private const val clientId = "bgm10555cda0762e80ca" private const val clientId = "bgm291665acbd06a4c28"
private const val clientSecret = "8fff394a8627b4c388cbf349ec865775" private const val clientSecret = "43e5ce36b207de16e5d3cfd3e79118db"
private const val apiUrl = "https://api.bgm.tv" private const val apiUrl = "https://api.bgm.tv"
private const val oauthUrl = "https://bgm.tv/oauth/access_token" private const val oauthUrl = "https://bgm.tv/oauth/access_token"

View File

@ -1,5 +1,6 @@
package eu.kanade.tachiyomi.data.track.bangumi package eu.kanade.tachiyomi.data.track.bangumi
import eu.kanade.tachiyomi.BuildConfig
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import okhttp3.FormBody import okhttp3.FormBody
import okhttp3.Interceptor import okhttp3.Interceptor
@ -29,22 +30,23 @@ class BangumiInterceptor(private val bangumi: Bangumi) : Interceptor {
} }
} }
val authRequest = if (originalRequest.method == "GET") { return originalRequest.newBuilder()
originalRequest.newBuilder() .header(
.header("User-Agent", "Tachiyomi") "User-Agent",
.url( "antsylich/Mihon/v${BuildConfig.VERSION_NAME} (Android) (http://github.com/mihonapp/mihon)",
originalRequest.url.newBuilder() )
.addQueryParameter("access_token", currAuth.access_token).build(), .apply {
) if (originalRequest.method == "GET") {
.build() val newUrl = originalRequest.url.newBuilder()
} else { .addQueryParameter("access_token", currAuth.access_token)
originalRequest.newBuilder() .build()
.post(addToken(currAuth.access_token, originalRequest.body as FormBody)) url(newUrl)
.header("User-Agent", "Tachiyomi") } else {
.build() post(addToken(currAuth.access_token, originalRequest.body as FormBody))
} }
}
return chain.proceed(authRequest) .build()
.let(chain::proceed)
} }
fun newAuth(oauth: OAuth?) { fun newAuth(oauth: OAuth?) {

View File

@ -18,7 +18,7 @@ class KavitaInterceptor(private val kavita: Kavita) : Interceptor {
// Add the authorization header to the original request. // Add the authorization header to the original request.
val authRequest = originalRequest.newBuilder() val authRequest = originalRequest.newBuilder()
.addHeader("Authorization", "Bearer $jwtToken") .addHeader("Authorization", "Bearer $jwtToken")
.header("User-Agent", "Tachiyomi Kavita v${BuildConfig.VERSION_NAME}") .header("User-Agent", "Mihon v${BuildConfig.VERSION_NAME} (${BuildConfig.APPLICATION_ID})")
.build() .build()
return chain.proceed(authRequest) return chain.proceed(authRequest)

View File

@ -1,5 +1,6 @@
package eu.kanade.tachiyomi.data.track.kitsu package eu.kanade.tachiyomi.data.track.kitsu
import eu.kanade.tachiyomi.BuildConfig
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import okhttp3.Interceptor import okhttp3.Interceptor
import okhttp3.Response import okhttp3.Response
@ -34,6 +35,7 @@ class KitsuInterceptor(private val kitsu: Kitsu) : Interceptor {
// Add the authorization header to the original request. // Add the authorization header to the original request.
val authRequest = originalRequest.newBuilder() val authRequest = originalRequest.newBuilder()
.addHeader("Authorization", "Bearer ${oauth!!.access_token}") .addHeader("Authorization", "Bearer ${oauth!!.access_token}")
.header("User-Agent", "Mihon v${BuildConfig.VERSION_NAME} (${BuildConfig.APPLICATION_ID})")
.header("Accept", "application/vnd.api+json") .header("Accept", "application/vnd.api+json")
.header("Content-Type", "application/vnd.api+json") .header("Content-Type", "application/vnd.api+json")
.build() .build()

View File

@ -1,5 +1,6 @@
package eu.kanade.tachiyomi.data.track.komga package eu.kanade.tachiyomi.data.track.komga
import eu.kanade.tachiyomi.BuildConfig
import eu.kanade.tachiyomi.data.database.models.Track import eu.kanade.tachiyomi.data.database.models.Track
import eu.kanade.tachiyomi.data.track.model.TrackSearch import eu.kanade.tachiyomi.data.track.model.TrackSearch
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
@ -8,6 +9,7 @@ import eu.kanade.tachiyomi.network.parseAs
import kotlinx.serialization.encodeToString import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import logcat.LogPriority import logcat.LogPriority
import okhttp3.Headers
import okhttp3.MediaType.Companion.toMediaType import okhttp3.MediaType.Companion.toMediaType
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request
@ -23,6 +25,12 @@ class KomgaApi(
private val client: OkHttpClient, private val client: OkHttpClient,
) { ) {
private val headers: Headers by lazy {
Headers.Builder()
.add("User-Agent", "Mihon v${BuildConfig.VERSION_NAME} (${BuildConfig.APPLICATION_ID})")
.build()
}
private val json: Json by injectLazy() private val json: Json by injectLazy()
suspend fun getTrackSearch(url: String): TrackSearch = suspend fun getTrackSearch(url: String): TrackSearch =
@ -30,12 +38,12 @@ class KomgaApi(
try { try {
val track = with(json) { val track = with(json) {
if (url.contains(READLIST_API)) { if (url.contains(READLIST_API)) {
client.newCall(GET(url)) client.newCall(GET(url, headers))
.awaitSuccess() .awaitSuccess()
.parseAs<ReadListDto>() .parseAs<ReadListDto>()
.toTrack() .toTrack()
} else { } else {
client.newCall(GET(url)) client.newCall(GET(url, headers))
.awaitSuccess() .awaitSuccess()
.parseAs<SeriesDto>() .parseAs<SeriesDto>()
.toTrack() .toTrack()
@ -43,7 +51,9 @@ class KomgaApi(
} }
val progress = client val progress = client
.newCall(GET("${url.replace("/api/v1/series/", "/api/v2/series/")}/read-progress/tachiyomi")) .newCall(
GET("${url.replace("/api/v1/series/", "/api/v2/series/")}/read-progress/tachiyomi", headers),
)
.awaitSuccess().let { .awaitSuccess().let {
with(json) { with(json) {
if (url.contains("/api/v1/series/")) { if (url.contains("/api/v1/series/")) {
@ -80,6 +90,7 @@ class KomgaApi(
client.newCall( client.newCall(
Request.Builder() Request.Builder()
.url("${track.tracking_url.replace("/api/v1/series/", "/api/v2/series/")}/read-progress/tachiyomi") .url("${track.tracking_url.replace("/api/v1/series/", "/api/v2/series/")}/read-progress/tachiyomi")
.headers(headers)
.put(payload.toRequestBody("application/json".toMediaType())) .put(payload.toRequestBody("application/json".toMediaType()))
.build(), .build(),
) )

View File

@ -1,5 +1,6 @@
package eu.kanade.tachiyomi.data.track.myanimelist package eu.kanade.tachiyomi.data.track.myanimelist
import eu.kanade.tachiyomi.BuildConfig
import eu.kanade.tachiyomi.network.parseAs import eu.kanade.tachiyomi.network.parseAs
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import okhttp3.Interceptor import okhttp3.Interceptor
@ -34,6 +35,7 @@ class MyAnimeListInterceptor(private val myanimelist: MyAnimeList, private var t
// Add the authorization header to the original request // Add the authorization header to the original request
val authRequest = originalRequest.newBuilder() val authRequest = originalRequest.newBuilder()
.addHeader("Authorization", "Bearer ${oauth!!.access_token}") .addHeader("Authorization", "Bearer ${oauth!!.access_token}")
.header("User-Agent", "Mihon v${BuildConfig.VERSION_NAME} (${BuildConfig.APPLICATION_ID})")
.build() .build()
val response = chain.proceed(authRequest) val response = chain.proceed(authRequest)
@ -50,6 +52,7 @@ class MyAnimeListInterceptor(private val myanimelist: MyAnimeList, private var t
val newRequest = originalRequest.newBuilder() val newRequest = originalRequest.newBuilder()
.addHeader("Authorization", "Bearer ${newToken.access_token}") .addHeader("Authorization", "Bearer ${newToken.access_token}")
.header("User-Agent", "Mihon v${BuildConfig.VERSION_NAME} (${BuildConfig.APPLICATION_ID})")
.build() .build()
return chain.proceed(newRequest) return chain.proceed(newRequest)

View File

@ -192,8 +192,8 @@ class ShikimoriApi(
) )
companion object { companion object {
private const val clientId = "1aaf4cf232372708e98b5abc813d795b539c5a916dbbfe9ac61bf02a360832cc" private const val clientId = "PB9dq8DzI405s7wdtwTdirYqHiyVMh--djnP7lBUqSA"
private const val clientSecret = "229942c742dd4cde803125d17d64501d91c0b12e14cb1e5120184d77d67024c0" private const val clientSecret = "NajpZcOBKB9sJtgNcejf8OB9jBN1OYYoo-k4h2WWZus"
private const val baseUrl = "https://shikimori.one" private const val baseUrl = "https://shikimori.one"
private const val apiUrl = "$baseUrl/api" private const val apiUrl = "$baseUrl/api"

View File

@ -1,5 +1,6 @@
package eu.kanade.tachiyomi.data.track.shikimori package eu.kanade.tachiyomi.data.track.shikimori
import eu.kanade.tachiyomi.BuildConfig
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import okhttp3.Interceptor import okhttp3.Interceptor
import okhttp3.Response import okhttp3.Response
@ -33,7 +34,7 @@ class ShikimoriInterceptor(private val shikimori: Shikimori) : Interceptor {
// Add the authorization header to the original request. // Add the authorization header to the original request.
val authRequest = originalRequest.newBuilder() val authRequest = originalRequest.newBuilder()
.addHeader("Authorization", "Bearer ${oauth!!.access_token}") .addHeader("Authorization", "Bearer ${oauth!!.access_token}")
.header("User-Agent", "Tachiyomi") .header("User-Agent", "Mihon v${BuildConfig.VERSION_NAME} (${BuildConfig.APPLICATION_ID})")
.build() .build()
return chain.proceed(authRequest) return chain.proceed(authRequest)

View File

@ -38,7 +38,7 @@
</plurals> </plurals>
<plurals name="num_trackers"> <plurals name="num_trackers">
<item quantity="one">%d tracker</item> <item quantity="one">%d tracker</item>
<item quantity="other">%d mga tracker</item> <item quantity="other">%d na tracker</item>
</plurals> </plurals>
<plurals name="missing_chapters_warning"> <plurals name="missing_chapters_warning">
<item quantity="one">Nilaktawan ang %d na kabanata, maaaring ito ay wala sa source o na-filter ang mga ito</item> <item quantity="one">Nilaktawan ang %d na kabanata, maaaring ito ay wala sa source o na-filter ang mga ito</item>
@ -46,11 +46,11 @@
</plurals> </plurals>
<plurals name="relative_time"> <plurals name="relative_time">
<item quantity="one">Kahapon</item> <item quantity="one">Kahapon</item>
<item quantity="other">%1$d araw na ang makalipas</item> <item quantity="other">%1$d araw na ang nakakalipas</item>
</plurals> </plurals>
<plurals name="next_unread_chapters"> <plurals name="next_unread_chapters">
<item quantity="one">Susunod na hindi pa nababasa na kabanata</item> <item quantity="one">Susunod na hindi pa nababasang kabanata</item>
<item quantity="other">Susunod na %d di pa nababasa na kabanata</item> <item quantity="other">Susunod na %d hindi pa nababasang kabanata</item>
</plurals> </plurals>
<plurals name="download_amount"> <plurals name="download_amount">
<item quantity="one">Sunod na kabanata</item> <item quantity="one">Sunod na kabanata</item>
@ -58,11 +58,11 @@
</plurals> </plurals>
<plurals name="missing_chapters"> <plurals name="missing_chapters">
<item quantity="one">Nawawalang %1$s na kabanata</item> <item quantity="one">Nawawalang %1$s na kabanata</item>
<item quantity="other">Nawawalang %1$s mga kabanata</item> <item quantity="other">Nawawalang %1$s na mga kabanata</item>
</plurals> </plurals>
<plurals name="day"> <plurals name="day">
<item quantity="one">1 araw</item> <item quantity="one">1 araw</item>
<item quantity="other">%d (mga) araw</item> <item quantity="other">%d (na) araw</item>
</plurals> </plurals>
<plurals name="num_repos"> <plurals name="num_repos">
<item quantity="one">%d na repo</item> <item quantity="one">%d na repo</item>

View File

@ -22,7 +22,7 @@
<string name="action_disable">Isara</string> <string name="action_disable">Isara</string>
<string name="action_display_show_tabs">Ipakita ang mga tab ng kategorya</string> <string name="action_display_show_tabs">Ipakita ang mga tab ng kategorya</string>
<string name="action_display_download_badge">Bilang ng kabanatang na-download</string> <string name="action_display_download_badge">Bilang ng kabanatang na-download</string>
<string name="action_display_comfortable_grid">Maalwan na grid</string> <string name="action_display_comfortable_grid">Kumportableng grid</string>
<string name="action_display_list">Listahan</string> <string name="action_display_list">Listahan</string>
<string name="action_display_grid">Siksik na grid</string> <string name="action_display_grid">Siksik na grid</string>
<string name="action_display">Pagpapakita</string> <string name="action_display">Pagpapakita</string>
@ -114,7 +114,7 @@
<string name="second_to_last">Pangalawa sa huling nabasa</string> <string name="second_to_last">Pangalawa sa huling nabasa</string>
<string name="last_read_chapter">Huling nabasang kabanata</string> <string name="last_read_chapter">Huling nabasang kabanata</string>
<string name="disabled">Sarado</string> <string name="disabled">Sarado</string>
<string name="pref_remove_after_marked_as_read">Pagkamarkahang nabasa na</string> <string name="pref_remove_after_marked_as_read">Markahang nabasa na</string>
<string name="pref_remove_after_read">Pagkatapos basahin, awtomatikong burahin</string> <string name="pref_remove_after_read">Pagkatapos basahin, awtomatikong burahin</string>
<string name="pref_webtoon_side_padding">Kapal ng gilid</string> <string name="pref_webtoon_side_padding">Kapal ng gilid</string>
<string name="pref_category_reading">Pagbabasa</string> <string name="pref_category_reading">Pagbabasa</string>
@ -243,7 +243,7 @@
<string name="channel_ext_updates">Mga update sa extension</string> <string name="channel_ext_updates">Mga update sa extension</string>
<string name="tapping_inverted_none">Wala</string> <string name="tapping_inverted_none">Wala</string>
<string name="channel_new_chapters">Mga update sa kabanata</string> <string name="channel_new_chapters">Mga update sa kabanata</string>
<string name="channel_common">Komon</string> <string name="channel_common">Pangkaraniwan</string>
<string name="download_notifier_download_paused">Nakahinto ang mga pag-download</string> <string name="download_notifier_download_paused">Nakahinto ang mga pag-download</string>
<string name="download_notifier_no_network">Walang koneksyon sa Internet</string> <string name="download_notifier_no_network">Walang koneksyon sa Internet</string>
<string name="download_notifier_text_only_wifi">Walang koneksyon sa Wifi</string> <string name="download_notifier_text_only_wifi">Walang koneksyon sa Wifi</string>
@ -291,7 +291,7 @@
<string name="decode_image_error">Di mai-load ang larawan</string> <string name="decode_image_error">Di mai-load ang larawan</string>
<string name="no_next_chapter">Di makita ang susunod na kabanata</string> <string name="no_next_chapter">Di makita ang susunod na kabanata</string>
<string name="chapter_progress">Pahina: %1$d</string> <string name="chapter_progress">Pahina: %1$d</string>
<string name="cover_updated">Napalitan na ang cover</string> <string name="cover_updated">Napalitan ang cover</string>
<string name="set_as_cover">Gawin itong cover</string> <string name="set_as_cover">Gawin itong cover</string>
<string name="custom_filter">Pinili kong filter</string> <string name="custom_filter">Pinili kong filter</string>
<string name="picture_saved">Na-save na ang larawan</string> <string name="picture_saved">Na-save na ang larawan</string>
@ -556,7 +556,7 @@
<string name="library_errors_help">Para sa tulong sa pag-aayos ng mga error sa pag-update ng aklatan, tingnan ang %1$s</string> <string name="library_errors_help">Para sa tulong sa pag-aayos ng mga error sa pag-update ng aklatan, tingnan ang %1$s</string>
<string name="pref_update_only_completely_read">Laktawan ang mga entry na hindi pa nababasang kabanata</string> <string name="pref_update_only_completely_read">Laktawan ang mga entry na hindi pa nababasang kabanata</string>
<string name="save_chapter_as_cbz">I-save bilang CBZ archive</string> <string name="save_chapter_as_cbz">I-save bilang CBZ archive</string>
<string name="publishing_finished">Tapos na\'ng mailathala</string> <string name="publishing_finished">Tapos na ang paglalathala</string>
<string name="on_hiatus">Naka-hiatus</string> <string name="on_hiatus">Naka-hiatus</string>
<string name="cancelled">Kinansela</string> <string name="cancelled">Kinansela</string>
<string name="action_show_manga">Ipakita ang entry</string> <string name="action_show_manga">Ipakita ang entry</string>
@ -639,9 +639,9 @@
<string name="pref_library_summary">Mga kategorya, panlahatang update, pag-swipe ng kabanata</string> <string name="pref_library_summary">Mga kategorya, panlahatang update, pag-swipe ng kabanata</string>
<string name="pref_browse_summary">Mga source, extension, panlahatang paghanap</string> <string name="pref_browse_summary">Mga source, extension, panlahatang paghanap</string>
<string name="crash_screen_description">Nagkaroon ng hindi inaasahang error ang %s. Iminumungkahi naming ibahagi mo ang mga crash log sa aming support channel sa Discord.</string> <string name="crash_screen_description">Nagkaroon ng hindi inaasahang error ang %s. Iminumungkahi naming ibahagi mo ang mga crash log sa aming support channel sa Discord.</string>
<string name="crash_screen_title">Ay!</string> <string name="crash_screen_title">Ay Naku!</string>
<string name="crash_screen_restart_application">Buksan muli ang app</string> <string name="crash_screen_restart_application">Buksan muli ang app</string>
<string name="invalid_location">Invalid na lugar: %s</string> <string name="invalid_location">Imbalidong lugar: %s</string>
<string name="unknown_title">Di alam na pamagat</string> <string name="unknown_title">Di alam na pamagat</string>
<string name="error_user_agent_string_invalid">Di-wastong string ng user agent</string> <string name="error_user_agent_string_invalid">Di-wastong string ng user agent</string>
<string name="updates_last_update_info_just_now">Ngayon lang</string> <string name="updates_last_update_info_just_now">Ngayon lang</string>
@ -693,7 +693,7 @@
<string name="pref_page_rotate">I-rotate ang malalawak na pahina upang magkasya</string> <string name="pref_page_rotate">I-rotate ang malalawak na pahina upang magkasya</string>
<string name="pref_page_rotate_invert">I-flip ang oryentasyon ng mga pinaikot na malalawak na pahina</string> <string name="pref_page_rotate_invert">I-flip ang oryentasyon ng mga pinaikot na malalawak na pahina</string>
<string name="overlay_header">Nakapatong (Overlay)</string> <string name="overlay_header">Nakapatong (Overlay)</string>
<string name="split_tall_images">Hatiin ang mga matatangkad na larawan</string> <string name="split_tall_images">Hatiin ang mga matataas na larawan</string>
<string name="pref_debug_info">Impormasyon sa pag-debug</string> <string name="pref_debug_info">Impormasyon sa pag-debug</string>
<string name="pref_chapter_swipe_start">Mag-swipe ng pakaliwang pagkilos</string> <string name="pref_chapter_swipe_start">Mag-swipe ng pakaliwang pagkilos</string>
<string name="pref_chapter_swipe">Mag swipe ng kabanata</string> <string name="pref_chapter_swipe">Mag swipe ng kabanata</string>

View File

@ -412,7 +412,7 @@
<string name="pref_category_delete_chapters">Suppression des chapitres</string> <string name="pref_category_delete_chapters">Suppression des chapitres</string>
<string name="ext_nsfw_warning">Les sources de cette extension peuvent contenir du contenu NSFW (18+)</string> <string name="ext_nsfw_warning">Les sources de cette extension peuvent contenir du contenu NSFW (18+)</string>
<string name="ext_nsfw_short">18+</string> <string name="ext_nsfw_short">18+</string>
<string name="parental_controls_info">Ceci n\'empêche pas les extensions non officielles ou potentiellement mal signalées de diffuser du contenu +18 dans l\'application.</string> <string name="parental_controls_info">Ceci n\'empêche pas les extensions de diffuser du contenu +18 dans l\'application.</string>
<string name="no_chapters_error">Aucun chapitre trouvé</string> <string name="no_chapters_error">Aucun chapitre trouvé</string>
<string name="confirm_set_chapter_settings">Appliquer ce paramétrage par défaut \?</string> <string name="confirm_set_chapter_settings">Appliquer ce paramétrage par défaut \?</string>
<string name="chapter_settings">Paramètres du chapitre</string> <string name="chapter_settings">Paramètres du chapitre</string>
@ -534,7 +534,7 @@
<string name="ext_installer_shizuku_unavailable_dialog">Installez et démarrez Shizuku pour utiliser Shizuku comme installateur d\'extensions.</string> <string name="ext_installer_shizuku_unavailable_dialog">Installez et démarrez Shizuku pour utiliser Shizuku comme installateur d\'extensions.</string>
<string name="ext_installer_shizuku_stopped">Shizuku n\'est pas en cours d\'exécution</string> <string name="ext_installer_shizuku_stopped">Shizuku n\'est pas en cours d\'exécution</string>
<string name="ext_installer_legacy">Legacy</string> <string name="ext_installer_legacy">Legacy</string>
<string name="ext_installer_pref">installeur</string> <string name="ext_installer_pref">Installeur</string>
<string name="ext_install_service_notif">Installation de l\'extension…</string> <string name="ext_install_service_notif">Installation de l\'extension…</string>
<string name="action_sort_count">Entrées totales</string> <string name="action_sort_count">Entrées totales</string>
<string name="pref_verbose_logging">Rapports détaillés</string> <string name="pref_verbose_logging">Rapports détaillés</string>

View File

@ -544,7 +544,7 @@
<string name="pref_verbose_logging">Ayrıntılı günlük kaydı</string> <string name="pref_verbose_logging">Ayrıntılı günlük kaydı</string>
<string name="pref_verbose_logging_summary">Ayrıntılı günlükleri sistem günlüğüne yaz (uygulama performansını düşürür)</string> <string name="pref_verbose_logging_summary">Ayrıntılı günlükleri sistem günlüğüne yaz (uygulama performansını düşürür)</string>
<string name="connected_to_wifi">Yalnızca kablosuz ağda</string> <string name="connected_to_wifi">Yalnızca kablosuz ağda</string>
<string name="download_queue_size_warning">Uyarı: Büyük toplu indirmeler kaynakların yavaşlamasına ve/veya Mihon\'yi engellemesine neden olabilir. Daha çok öğrenmek için dokunun.</string> <string name="download_queue_size_warning">Uyarı: Büyük toplu indirmeler kaynakların yavaşlamasına ve/veya Mihon\'u engellemesine neden olabilir. Daha çok öğrenmek için dokunun.</string>
<string name="update_72hour">3 günde bir</string> <string name="update_72hour">3 günde bir</string>
<string name="ext_update_all">Tümünü güncelle</string> <string name="ext_update_all">Tümünü güncelle</string>
<string name="channel_app_updates">Uygulama güncellemeleri</string> <string name="channel_app_updates">Uygulama güncellemeleri</string>
@ -755,11 +755,11 @@
<string name="action_bar_up_description">Yukarı git</string> <string name="action_bar_up_description">Yukarı git</string>
<string name="onboarding_storage_action_select">Klasör seç</string> <string name="onboarding_storage_action_select">Klasör seç</string>
<string name="pref_onboarding_guide">Başlangıç rehberi</string> <string name="pref_onboarding_guide">Başlangıç rehberi</string>
<string name="onboarding_guides_new_user">%s\'de yeni misiniz? Başlangıç rehberine göz atmanızı tavsiye ederiz.</string> <string name="onboarding_guides_new_user">%s\'da yeni misiniz? Başlangıç rehberine göz atmanızı tavsiye ederiz.</string>
<string name="onboarding_action_finish">Başlayın</string> <string name="onboarding_action_finish">Başlayın</string>
<string name="onboarding_storage_selection_required">Bir klasör seçilmelidir</string> <string name="onboarding_storage_selection_required">Bir klasör seçilmelidir</string>
<string name="onboarding_heading">Hoş geldiniz!</string> <string name="onboarding_heading">Hoş geldiniz!</string>
<string name="onboarding_guides_returning_user">%s\'yi yeniden mi kuruyorsunuz?</string> <string name="onboarding_guides_returning_user">%s\'u yeniden mi kuruyorsunuz?</string>
<string name="onboarding_action_skip">Atla</string> <string name="onboarding_action_skip">Atla</string>
<string name="onboarding_action_next">Sonraki</string> <string name="onboarding_action_next">Sonraki</string>
<string name="onboarding_description">Önce bazı şeyleri ayarlayalım. Bunları daha sonra ayarlardan da değiştirebilirsiniz.</string> <string name="onboarding_description">Önce bazı şeyleri ayarlayalım. Bunları daha sonra ayarlardan da değiştirebilirsiniz.</string>
@ -785,7 +785,7 @@
<string name="onboarding_storage_help_action">Depolama kılavuzu</string> <string name="onboarding_storage_help_action">Depolama kılavuzu</string>
<string name="action_add_repo">Depo ekle</string> <string name="action_add_repo">Depo ekle</string>
<string name="label_add_repo_input">Depo URL\'si</string> <string name="label_add_repo_input">Depo URL\'si</string>
<string name="action_add_repo_message">Mihon\'ye ek depolar ekleyin. Bu, \"index.min.json\" ile biten bir URL olmalıdır.</string> <string name="action_add_repo_message">Mihon\'a ek depolar ekleyin. Bu, \"index.min.json\" ile biten bir URL olmalıdır.</string>
<string name="error_repo_exists">Bu depo zaten var!</string> <string name="error_repo_exists">Bu depo zaten var!</string>
<string name="action_delete_repo">Depoyu sil</string> <string name="action_delete_repo">Depoyu sil</string>
<string name="invalid_repo_name">Geçersiz depo URL\'si</string> <string name="invalid_repo_name">Geçersiz depo URL\'si</string>

View File

@ -594,11 +594,11 @@
<string name="ext_info_version">版本</string> <string name="ext_info_version">版本</string>
<string name="ext_info_language">語言</string> <string name="ext_info_language">語言</string>
<string name="ext_info_age_rating">分級</string> <string name="ext_info_age_rating">分級</string>
<string name="unfinished_list">未成清單</string> <string name="unfinished_list">已拋棄</string>
<string name="on_hold_list">擱置清單</string> <string name="on_hold_list">擱置</string>
<string name="complete_list">閱畢清單</string> <string name="complete_list">已完結</string>
<string name="wish_list">願望清單</string> <string name="wish_list">準備讀</string>
<string name="reading_list">閱讀清單</string> <string name="reading_list">閱讀</string>
<string name="network_not_metered">僅透過非計量付費網路</string> <string name="network_not_metered">僅透過非計量付費網路</string>
<string name="cant_open_last_read_chapter">無法開啟上次閱讀章節</string> <string name="cant_open_last_read_chapter">無法開啟上次閱讀章節</string>
<string name="custom_cover">自訂封面</string> <string name="custom_cover">自訂封面</string>
@ -784,7 +784,7 @@
<string name="manga_interval_custom_amount">自訂更新頻率:</string> <string name="manga_interval_custom_amount">自訂更新頻率:</string>
<string name="label_add_repo_input">儲存庫網址</string> <string name="label_add_repo_input">儲存庫網址</string>
<string name="error_repo_exists">已有該儲存庫!</string> <string name="error_repo_exists">已有該儲存庫!</string>
<string name="pref_library_update_smart_update">智慧更新</string> <string name="pref_library_update_smart_update">智慧更新</string>
<string name="invalid_repo_name">無效的儲存庫網址</string> <string name="invalid_repo_name">無效的儲存庫網址</string>
<string name="action_add_repo_message">將額外的擴充套件儲存庫新增至 Mihon。此處應填入一個結尾為「index.min.json」的網址。</string> <string name="action_add_repo_message">將額外的擴充套件儲存庫新增至 Mihon。此處應填入一個結尾為「index.min.json」的網址。</string>
<string name="delete_repo_confirmation">確定要刪除「%s」儲存庫嗎</string> <string name="delete_repo_confirmation">確定要刪除「%s」儲存庫嗎</string>