diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 23ec3c59f..cc19fae33 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -22,7 +22,7 @@ android { defaultConfig { applicationId = "eu.kanade.tachiyomi" - versionCode = 105 + versionCode = 106 versionName = "0.14.6" buildConfigField("String", "COMMIT_COUNT", "\"${getCommitCount()}\"") diff --git a/app/src/main/java/eu/kanade/domain/ui/UiPreferences.kt b/app/src/main/java/eu/kanade/domain/ui/UiPreferences.kt index ac04a51e0..294812bdc 100644 --- a/app/src/main/java/eu/kanade/domain/ui/UiPreferences.kt +++ b/app/src/main/java/eu/kanade/domain/ui/UiPreferences.kt @@ -28,6 +28,8 @@ class UiPreferences( fun themeDarkAmoled() = preferenceStore.getBoolean("pref_theme_dark_amoled_key", false) + fun relativeTime() = preferenceStore.getBoolean("relative_time_v2", true) + fun dateFormat() = preferenceStore.getString("app_date_format", "") fun tabletUiMode() = preferenceStore.getEnum("tablet_ui_mode", TabletUiMode.AUTOMATIC) diff --git a/app/src/main/java/eu/kanade/presentation/components/RelativeDateHeader.kt b/app/src/main/java/eu/kanade/presentation/components/RelativeDateHeader.kt index 598bad83e..2466e2eed 100644 --- a/app/src/main/java/eu/kanade/presentation/components/RelativeDateHeader.kt +++ b/app/src/main/java/eu/kanade/presentation/components/RelativeDateHeader.kt @@ -3,6 +3,8 @@ package eu.kanade.presentation.components import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext +import eu.kanade.tachiyomi.util.lang.toRelativeString import tachiyomi.presentation.core.components.ListGroupHeader import java.text.DateFormat import java.util.Date @@ -11,12 +13,18 @@ import java.util.Date fun RelativeDateHeader( modifier: Modifier = Modifier, date: Date, + relativeTime: Boolean, dateFormat: DateFormat, ) { + val context = LocalContext.current ListGroupHeader( modifier = modifier, text = remember { - dateFormat.format(date) + date.toRelativeString( + context, + relativeTime, + dateFormat, + ) }, ) } diff --git a/app/src/main/java/eu/kanade/presentation/history/HistoryScreen.kt b/app/src/main/java/eu/kanade/presentation/history/HistoryScreen.kt index 3bac670d0..45dc67fdb 100644 --- a/app/src/main/java/eu/kanade/presentation/history/HistoryScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/history/HistoryScreen.kt @@ -27,7 +27,6 @@ import tachiyomi.presentation.core.screens.EmptyScreen import tachiyomi.presentation.core.screens.LoadingScreen import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get -import java.text.DateFormat import java.util.Date @Composable @@ -98,7 +97,8 @@ private fun HistoryScreenContent( onClickDelete: (HistoryWithRelations) -> Unit, preferences: UiPreferences = Injekt.get(), ) { - val dateFormat: DateFormat = remember { UiPreferences.dateFormat(preferences.dateFormat().get()) } + val relativeTime = remember { preferences.relativeTime().get() } + val dateFormat = remember { UiPreferences.dateFormat(preferences.dateFormat().get()) } FastScrollLazyColumn( contentPadding = contentPadding, @@ -118,6 +118,7 @@ private fun HistoryScreenContent( RelativeDateHeader( modifier = Modifier.animateItemPlacement(), date = item.date, + relativeTime = relativeTime, dateFormat = dateFormat, ) } diff --git a/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt b/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt index 352e6aedb..65963cef3 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt @@ -63,6 +63,7 @@ import eu.kanade.tachiyomi.data.download.model.Download import eu.kanade.tachiyomi.source.getNameForMangaInfo import eu.kanade.tachiyomi.ui.manga.ChapterItem import eu.kanade.tachiyomi.ui.manga.MangaScreenModel +import eu.kanade.tachiyomi.util.lang.toRelativeString import eu.kanade.tachiyomi.util.system.copyToClipboard import tachiyomi.domain.chapter.model.Chapter import tachiyomi.domain.chapter.service.missingChaptersCount @@ -84,6 +85,7 @@ fun MangaScreen( state: MangaScreenModel.State.Success, snackbarHostState: SnackbarHostState, fetchInterval: Int?, + dateRelativeTime: Boolean, dateFormat: DateFormat, isTabletUi: Boolean, chapterSwipeStartAction: LibraryPreferences.ChapterSwipeAction, @@ -139,6 +141,7 @@ fun MangaScreen( MangaScreenSmallImpl( state = state, snackbarHostState = snackbarHostState, + dateRelativeTime = dateRelativeTime, dateFormat = dateFormat, fetchInterval = fetchInterval, chapterSwipeStartAction = chapterSwipeStartAction, @@ -175,6 +178,7 @@ fun MangaScreen( MangaScreenLargeImpl( state = state, snackbarHostState = snackbarHostState, + dateRelativeTime = dateRelativeTime, chapterSwipeStartAction = chapterSwipeStartAction, chapterSwipeEndAction = chapterSwipeEndAction, dateFormat = dateFormat, @@ -214,6 +218,7 @@ fun MangaScreen( private fun MangaScreenSmallImpl( state: MangaScreenModel.State.Success, snackbarHostState: SnackbarHostState, + dateRelativeTime: Boolean, dateFormat: DateFormat, fetchInterval: Int?, chapterSwipeStartAction: LibraryPreferences.ChapterSwipeAction, @@ -282,11 +287,9 @@ private fun MangaScreenSmallImpl( } val animatedTitleAlpha by animateFloatAsState( if (firstVisibleItemIndex > 0) 1f else 0f, - label = "titleAlpha", ) val animatedBgAlpha by animateFloatAsState( if (firstVisibleItemIndex > 0 || firstVisibleItemScrollOffset > 0) 1f else 0f, - label = "bgAlpha", ) MangaToolbar( title = state.manga.title, @@ -427,6 +430,7 @@ private fun MangaScreenSmallImpl( sharedChapterItems( manga = state.manga, chapters = chapters, + dateRelativeTime = dateRelativeTime, dateFormat = dateFormat, chapterSwipeStartAction = chapterSwipeStartAction, chapterSwipeEndAction = chapterSwipeEndAction, @@ -445,6 +449,7 @@ private fun MangaScreenSmallImpl( fun MangaScreenLargeImpl( state: MangaScreenModel.State.Success, snackbarHostState: SnackbarHostState, + dateRelativeTime: Boolean, dateFormat: DateFormat, fetchInterval: Int?, chapterSwipeStartAction: LibraryPreferences.ChapterSwipeAction, @@ -650,6 +655,7 @@ fun MangaScreenLargeImpl( sharedChapterItems( manga = state.manga, chapters = chapters, + dateRelativeTime = dateRelativeTime, dateFormat = dateFormat, chapterSwipeStartAction = chapterSwipeStartAction, chapterSwipeEndAction = chapterSwipeEndAction, @@ -711,6 +717,7 @@ private fun SharedMangaBottomActionMenu( private fun LazyListScope.sharedChapterItems( manga: Manga, chapters: List, + dateRelativeTime: Boolean, dateFormat: DateFormat, chapterSwipeStartAction: LibraryPreferences.ChapterSwipeAction, chapterSwipeEndAction: LibraryPreferences.ChapterSwipeAction, @@ -739,7 +746,11 @@ private fun LazyListScope.sharedChapterItems( date = chapterItem.chapter.dateUpload .takeIf { it > 0L } ?.let { - dateFormat.format(Date(it)) + Date(it).toRelativeString( + context, + dateRelativeTime, + dateFormat, + ) }, readProgress = chapterItem.chapter.lastPageRead .takeIf { !chapterItem.chapter.read && it > 0L } diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt index d98198155..4540aee95 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt @@ -123,6 +123,11 @@ object SettingsAppearanceScreen : SearchableSettings { var currentLanguage by remember { mutableStateOf(AppCompatDelegate.getApplicationLocales().get(0)?.toLanguageTag() ?: "") } val now = remember { Date().time } + val dateFormat by uiPreferences.dateFormat().collectAsState() + val formattedNow = remember(dateFormat) { + UiPreferences.dateFormat(dateFormat).format(now) + } + LaunchedEffect(currentLanguage) { val locale = if (currentLanguage.isEmpty()) { LocaleListCompat.getEmptyLocaleList() @@ -162,6 +167,15 @@ object SettingsAppearanceScreen : SearchableSettings { "${it.ifEmpty { stringResource(R.string.label_default) }} ($formattedDate)" }, ), + Preference.PreferenceItem.SwitchPreference( + pref = uiPreferences.relativeTime(), + title = stringResource(R.string.pref_relative_format), + subtitle = stringResource( + R.string.pref_relative_format_summary, + stringResource(R.string.relative_time_today), + formattedNow, + ), + ), ), ) } diff --git a/app/src/main/java/eu/kanade/presentation/updates/UpdatesScreen.kt b/app/src/main/java/eu/kanade/presentation/updates/UpdatesScreen.kt index 1f4a56d5f..1572faff4 100644 --- a/app/src/main/java/eu/kanade/presentation/updates/UpdatesScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/updates/UpdatesScreen.kt @@ -43,6 +43,7 @@ fun UpdateScreen( state: UpdatesScreenModel.State, snackbarHostState: SnackbarHostState, lastUpdated: Long, + relativeTime: Boolean, onClickCover: (UpdatesItem) -> Unit, onSelectAll: (Boolean) -> Unit, onInvertSelection: () -> Unit, @@ -113,7 +114,7 @@ fun UpdateScreen( } updatesUiItems( - uiModels = state.getUiModel(context), + uiModels = state.getUiModel(context, relativeTime), selectionMode = state.selectionMode, onUpdateSelected = onUpdateSelected, onClickCover = onClickCover, diff --git a/app/src/main/java/eu/kanade/tachiyomi/Migrations.kt b/app/src/main/java/eu/kanade/tachiyomi/Migrations.kt index 75edfdd46..3c15c913d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/Migrations.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/Migrations.kt @@ -375,6 +375,12 @@ object Migrations { pref.getAndSet { it - "battery_not_low" } } } + if (oldVersion < 106) { + val pref = preferenceStore.getInt("relative_time", 7) + if (pref.get() == 0) { + uiPreferences.relativeTime().set(false) + } + } return true } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt index 8f56c4fcb..39595fbe5 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt @@ -99,6 +99,7 @@ class MangaScreen( MangaScreen( state = successState, snackbarHostState = screenModel.snackbarHostState, + dateRelativeTime = screenModel.relativeTime, dateFormat = screenModel.dateFormat, fetchInterval = successState.manga.fetchInterval, isTabletUi = isTabletUi(), diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt index 71b7c4bf7..0827caded 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt @@ -125,6 +125,7 @@ class MangaScreenModel( val chapterSwipeStartAction = libraryPreferences.swipeToEndAction().get() val chapterSwipeEndAction = libraryPreferences.swipeToStartAction().get() + val relativeTime by uiPreferences.relativeTime().asState(coroutineScope) val dateFormat by mutableStateOf(UiPreferences.dateFormat(uiPreferences.dateFormat().get())) private val skipFiltered by readerPreferences.skipFiltered().asState(coroutineScope) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesScreenModel.kt index 6e0c1c474..62ac21cc1 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesScreenModel.kt @@ -20,6 +20,7 @@ import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.data.download.model.Download import eu.kanade.tachiyomi.data.library.LibraryUpdateJob import eu.kanade.tachiyomi.util.lang.toDateKey +import eu.kanade.tachiyomi.util.lang.toRelativeString import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.catch @@ -58,12 +59,14 @@ class UpdatesScreenModel( private val getChapter: GetChapter = Injekt.get(), private val libraryPreferences: LibraryPreferences = Injekt.get(), val snackbarHostState: SnackbarHostState = SnackbarHostState(), + uiPreferences: UiPreferences = Injekt.get(), ) : StateScreenModel(State()) { private val _events: Channel = Channel(Int.MAX_VALUE) val events: Flow = _events.receiveAsFlow() val lastUpdated by libraryPreferences.lastUpdatedTimestamp().asState(coroutineScope) + val relativeTime by uiPreferences.relativeTime().asState(coroutineScope) // First and last selected index in list private val selectedPositions: Array = arrayOf(-1, -1) @@ -373,7 +376,7 @@ class UpdatesScreenModel( val selected = items.filter { it.selected } val selectionMode = selected.isNotEmpty() - fun getUiModel(context: Context): List { + fun getUiModel(context: Context, relativeTime: Boolean): List { val dateFormat by mutableStateOf(UiPreferences.dateFormat(Injekt.get().dateFormat().get())) return items @@ -383,7 +386,11 @@ class UpdatesScreenModel( val afterDate = after?.item?.update?.dateFetch?.toDateKey() ?: Date(0) when { beforeDate.time != afterDate.time && afterDate.time != 0L -> { - val text = dateFormat.format(afterDate) + val text = afterDate.toRelativeString( + context = context, + relative = relativeTime, + dateFormat = dateFormat, + ) UpdatesUiModel.Header(text) } // Return null to avoid adding a separator between two items. diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesTab.kt index cf33f69c4..78a44dd23 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesTab.kt @@ -57,6 +57,7 @@ object UpdatesTab : Tab { state = state, snackbarHostState = screenModel.snackbarHostState, lastUpdated = screenModel.lastUpdated, + relativeTime = screenModel.relativeTime, onClickCover = { item -> navigator.push(MangaScreen(item.update.mangaId)) }, onSelectAll = screenModel::toggleAllSelection, onInvertSelection = screenModel::invertSelection, diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/lang/DateExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/lang/DateExtensions.kt index 88477e8d5..e2f683685 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/lang/DateExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/lang/DateExtensions.kt @@ -1,5 +1,7 @@ package eu.kanade.tachiyomi.util.lang +import android.content.Context +import eu.kanade.tachiyomi.R import java.text.DateFormat import java.time.Instant import java.time.LocalDateTime @@ -42,3 +44,41 @@ fun Long.toDateKey(): Date { cal[Calendar.MILLISECOND] = 0 return cal.time } + +private const val MILLISECONDS_IN_DAY = 86_400_000L + +fun Date.toRelativeString( + context: Context, + relative: Boolean = true, + dateFormat: DateFormat = DateFormat.getDateInstance(DateFormat.SHORT), +): String { + if (!relative) { + return dateFormat.format(this) + } + val now = Date() + val difference = now.timeWithOffset.floorNearest(MILLISECONDS_IN_DAY) - this.timeWithOffset.floorNearest(MILLISECONDS_IN_DAY) + val days = difference.floorDiv(MILLISECONDS_IN_DAY).toInt() + return when { + difference < 0 -> dateFormat.format(this) + difference < MILLISECONDS_IN_DAY -> context.getString(R.string.relative_time_today) + difference < MILLISECONDS_IN_DAY.times(7) -> context.resources.getQuantityString( + R.plurals.relative_time, + days, + days, + ) + else -> dateFormat.format(this) + } +} + +private val Date.timeWithOffset: Long + get() { + return Calendar.getInstance().run { + time = this@timeWithOffset + val dstOffset = get(Calendar.DST_OFFSET) + this@timeWithOffset.time + timeZone.rawOffset + dstOffset + } + } + +fun Long.floorNearest(to: Long): Long { + return this.floorDiv(to) * to +} diff --git a/i18n/src/main/res/values-ar/strings.xml b/i18n/src/main/res/values-ar/strings.xml index b6a544028..399f5c0da 100644 --- a/i18n/src/main/res/values-ar/strings.xml +++ b/i18n/src/main/res/values-ar/strings.xml @@ -112,7 +112,7 @@ اليسار اليمين المركز - نوع التدوير الافتراضي + التدوير الافتراضي حر الوضع الرأسي اﻹجباري الوضع الأفقي الإجباري @@ -567,7 +567,7 @@ تاريخ الرفع افقي رأسي - نوع التدوير + التدوير تلقائيًّا إنشاء مجلدات وفقا لعنوان الإدخالات حفظ الصفحات في مجلدات منفصلة @@ -643,7 +643,7 @@ دليل البدء ساعد بالترجمة واجهة مستخدم الجهاز اللوحي - فئات المستثناة + الفئات المستثناة المثبت إجمالي الإدخالات تحذير @@ -881,4 +881,5 @@ خطأ HTTP %d، انظر في WebView لم نصل %s افتح %s + انقل السلسلة للقعر \ No newline at end of file diff --git a/i18n/src/main/res/values-ca/strings.xml b/i18n/src/main/res/values-ca/strings.xml index 033783918..633d812c7 100644 --- a/i18n/src/main/res/values-ca/strings.xml +++ b/i18n/src/main/res/values-ca/strings.xml @@ -136,7 +136,7 @@ Sense animació Normal Ràpida - Tipus de rotació per defecte + Rotació per defecte Lliure Vertical forçada Horitzontal forçada @@ -525,7 +525,7 @@ Baixada automàtica Horitzontal Vertical - Tipus de rotació + Rotació Dreta Esquerra Següent @@ -817,4 +817,5 @@ No hi ha connexió a Internet HTTP %d, comproveu el lloc web en una WebView No s’ha pogut accedir a %s + Mou la sèrie a baix de tot \ No newline at end of file diff --git a/i18n/src/main/res/values-cs/strings.xml b/i18n/src/main/res/values-cs/strings.xml index 49b800e0f..c9aee2595 100644 --- a/i18n/src/main/res/values-cs/strings.xml +++ b/i18n/src/main/res/values-cs/strings.xml @@ -76,7 +76,7 @@ Černá Stránkované (zleva doprava) Stránkované (zprava doleva) - Výchozí typ otáčení + Výchozí otáčení Volné Zamknuto na výšku Zamknuto na šířku @@ -538,7 +538,7 @@ Datum načtení kapitoly Na šířku Na výšku - Typ otočení + Otáčení Vytváří složky podle názvu položky Uložit stránky do samostatných složek Akce @@ -833,4 +833,5 @@ Nelze dosáhnout %s HTTP %d, zkontrolovat web v WebView Odemknout %s + Přesunout sérii na konec \ No newline at end of file diff --git a/i18n/src/main/res/values-cv/strings.xml b/i18n/src/main/res/values-cv/strings.xml index 4e43a567a..f80d926e7 100644 --- a/i18n/src/main/res/values-cv/strings.xml +++ b/i18n/src/main/res/values-cv/strings.xml @@ -252,7 +252,7 @@ Ҫак хушмана урӑх кӗме май ҫук. Вӑл тӗрӗс мар ӗҫлеме тата апа йӑнӑшлаттарма пултарать. Ӑна катертме сӗнетпӗр. Ку хушмана шанчӑклӑ мар ӗнентерӳ хучӗпе алӑ пуснӑ тата ӑна пуҫарман. \n -\nСийенлӗ хушма Tachiyomi-ри упранакан кирек мӗнле шут пӗлӗмӗсене шута илме йе хӑй ирӗклӗ йума пурнӑҫлама пултарать. +\nСийенлӗ хушма упранакан кирек мӗнле шут пӗлӗмӗсене шута илме йе хӑй ирӗклӗ йума пурнӑҫлама пултарать. \n \nҪак ӗнентерӳ хутне шаннипе есӗ ҫав теветкеле йышӑнатӑн. @@ -635,4 +635,7 @@ Малтанхилле Shizuku-н хушма ларткӑча усӑ курма Shizuku ларт тата ҫут. Йурӗ + %s уҫ + Серилӗхе вӗҫе куҫар + Кӗртнӗ пухмӑшсенче пулнӑ пулсан та кӑларса пӑрахнӑ пухмӑшсенче пулнӑ серилӗхсем ҫӗнелмӗҫ. \ No newline at end of file diff --git a/i18n/src/main/res/values-de/strings.xml b/i18n/src/main/res/values-de/strings.xml index 44b84fdc5..052b79f3f 100644 --- a/i18n/src/main/res/values-de/strings.xml +++ b/i18n/src/main/res/values-de/strings.xml @@ -110,7 +110,7 @@ Links Rechts Mitte - Standard-Ausrichtungstyp + Standardausrichtung Frei Hochformat erzwingen Querformat erzwingen @@ -534,7 +534,7 @@ Hochformat Erstellt Ordner nach dem Titel der Einträge Speichere Seiten in separate Ordner - Ausrichtungstyp + Ausrichtung Aktionen Graustufen Inkognito-Modus deaktivieren @@ -817,4 +817,5 @@ Keine Internetverbindung %s konnte nicht erreicht werden %s entsperren + Serie nach unten verschieben \ No newline at end of file diff --git a/i18n/src/main/res/values-el/strings.xml b/i18n/src/main/res/values-el/strings.xml index 5a8f8939c..6239e9d66 100644 --- a/i18n/src/main/res/values-el/strings.xml +++ b/i18n/src/main/res/values-el/strings.xml @@ -137,7 +137,7 @@ Χωρίς κίνηση Κανονική Γρήγορη - Προεπιλεγμένος τύπος περιστροφής + Προεπιλεγμένη περιστροφή Ελεύθερο Κλειδωμένο κατακόρυφα Κλειδωμένο οριζόντια @@ -535,7 +535,7 @@ Δημιουργεί φακέλους σύμφωνα με τον τίτλο των καταχωρήσεων Αποθήκευση σελίδων σε ξεχωριστούς φακέλους Ενέργειες - Τύπος περιστροφής + Περιστροφή Κλίμακα του γκρι Απενεργοποίηση λειτουργίας ανώνυμης περιήγησης Αυτόματο @@ -640,7 +640,7 @@ Παραλήφθηκαν %1$d ενημέρωση(εις) παραλείφθηκε(-αν) Αντίστροφο πορτρέτο - Μετακίνηση σειράς στην κορυφή + Μετακίνηση σειράς προς τα πάνω Απενεργοποιημένο Μια νέα έκδοση είναι διαθέσιμη από τις επίσημες κυκλοφορίες. Πατήστε για να μάθετε πώς να μεταβείτε από ανεπίσημες κυκλοφορίες του F-Droid. Σφάλμα κατά την αποθήκευση της εικόνας @@ -817,4 +817,5 @@ HTTP %d, ελέγξτε την ιστοσελίδα στο WebView Δεν υπάρχει σύνδεση στο διαδίκτυο Ξεκλείδωμα %s + Μετακίνηση σειράς προς τα κάτω \ No newline at end of file diff --git a/i18n/src/main/res/values-fil/strings.xml b/i18n/src/main/res/values-fil/strings.xml index e1292a666..475067172 100644 --- a/i18n/src/main/res/values-fil/strings.xml +++ b/i18n/src/main/res/values-fil/strings.xml @@ -817,4 +817,5 @@ Walang koneksyon sa Internet HTTP %d, tignan ang website sa WebView Hindi maabot ang %s + Ilagay sa ibaba ang serye \ No newline at end of file diff --git a/i18n/src/main/res/values-fr/strings.xml b/i18n/src/main/res/values-fr/strings.xml index 6f1d9e714..b6c90e684 100644 --- a/i18n/src/main/res/values-fr/strings.xml +++ b/i18n/src/main/res/values-fr/strings.xml @@ -104,7 +104,7 @@ Gauche Droite Centre - Type de rotation par défaut + Rotation par défaut Libre Bloqué sur portrait Bloqué sur paysage @@ -589,7 +589,7 @@ Trier par Format de chapitre invalide Chapitre non trouvé - Mode de rotation + Rotation Auto Mettre à jour les services de suivi lors de la mise à jour de la bibliothèque Actualiser automatiquement les services de suivi @@ -750,7 +750,7 @@ Vous êtes sur le point de retirer « %s » de votre bibliothèque Autorisations de stockage non accordées Recherche… - Passées car la série ne nécessite pas de mise à jour + Ignorée car la série ne nécessite pas de mises à jour Oups ! Thème, format de la date et de l\'heure Téléchargement automatique, téléchargement anticipé @@ -844,7 +844,7 @@ Appuyez ici pour de l\'aide sur Cloudflare Débloquer %s Synchronisation de la bibliothèque - Intervals + Intervalles Synchronisation de la bibliothèque complété Licenciés - Aucun chapitres à montrer Aucune connexion internet @@ -858,4 +858,9 @@ %d jours %d jours + Configurer pour mettre à jour tous les + Personnaliser l\'intervalle + Déplacer la série vers le bas + Supprimez également de %s + Impossible de joindre %s \ No newline at end of file diff --git a/i18n/src/main/res/values-hr/strings.xml b/i18n/src/main/res/values-hr/strings.xml index 227cdcc33..e60b033c4 100644 --- a/i18n/src/main/res/values-hr/strings.xml +++ b/i18n/src/main/res/values-hr/strings.xml @@ -279,7 +279,7 @@ Trenutačno: Završeno: Modus čitanja - Za ovaj serijal + Za ovu seriju Ovu sliku koristiti kao naslovnicu\? Nije bilo moguće učitati sliku Sljedeće poglavlje nije pronađeno @@ -652,7 +652,7 @@ Preskočeno Preskočena aktualiziranja: %1$d Preokrenuto uspravno - Pomakni serijal na vrh + Pomakni seriju na vrh Deaktivirano Nema unosa u biblioteci za spremanje u sigurnosnu kopiju Poboljšava performanse čitača @@ -833,4 +833,5 @@ Ne postoji veza s internetom HTTP %d, provjeri web stranicu u WebView Nije bilo moguće povezati se s računalom %s + Pomakni seriju na kraj \ No newline at end of file diff --git a/i18n/src/main/res/values-it/strings.xml b/i18n/src/main/res/values-it/strings.xml index 76403f394..a6c7c1b04 100644 --- a/i18n/src/main/res/values-it/strings.xml +++ b/i18n/src/main/res/values-it/strings.xml @@ -101,7 +101,7 @@ Sinistra Destra Centro - Orientamento predefinito + Rotazione predefinita Libero Bloccato verticale Bloccato orizzontale @@ -574,7 +574,7 @@ Tocca per vedere i dettagli Questa versione di Android non è più supportata Impossibile copiare negli appunti - Orientamento + Rotazione Disabilita modalità incognito Orizzontale Verticale @@ -866,4 +866,5 @@ Nessuna connessione ad internet %s non raggiungibile Sblocca %s + Spostare la serie in fondo \ No newline at end of file diff --git a/i18n/src/main/res/values-ja/strings.xml b/i18n/src/main/res/values-ja/strings.xml index 6041abf98..35138b26f 100644 --- a/i18n/src/main/res/values-ja/strings.xml +++ b/i18n/src/main/res/values-ja/strings.xml @@ -118,7 +118,7 @@ 中央 通常 速い - 既定の回転モード + 既定の画面向き 自動回転 縦向き画面を強制 R @@ -533,7 +533,7 @@ 章が見つかりませんでした シークレットモードを無効にする 追跡ガイド - 回転モード + 画面向き 自動 項目のタイトルに基づいてフォルダを作成 別々のフォルダにページを保存 @@ -801,4 +801,5 @@ インターネット接続がありません %sにアクセスできませんでした %sをアンロック + シリーズを底に移動 \ No newline at end of file diff --git a/i18n/src/main/res/values-ko/strings.xml b/i18n/src/main/res/values-ko/strings.xml index f6c3e5560..e41a78f64 100644 --- a/i18n/src/main/res/values-ko/strings.xml +++ b/i18n/src/main/res/values-ko/strings.xml @@ -66,8 +66,8 @@ 정보 격자 크기 데이터 이전 - 확장기능 - 확장기능 정보 + 확장 앱 + 확장 앱 정보 전체 검색 일시중지 세로 @@ -92,10 +92,10 @@ 신뢰 신뢰되지않음 삭제 - 신뢰할 수 없는 확장기능 - 이 확장기능은 신뢰할 수 없는 인증서로 서명되어 활성화되지 않았습니다. + 신뢰할 수 없는 확장 앱 + 이 확장앱은 신뢰할 수 없는 인증서로 서명되어 활성화되지 않았습니다. \n -\n일부 악의적인 확장기능은 Tachiyomi에 저장된 로그인 정보를 읽거나 임의의 코드를 실행할 수도 있습니다. +\n일부 악의적인 확장 앱은 Tachiyomi에 저장된 로그인 정보를 읽거나 임의의 코드를 실행할 수도 있습니다. \n \n이 인증서를 신뢰하면 이러한 위험에 노출될 수 있습니다. 전체화면 @@ -179,7 +179,7 @@ %1$s화 다운로드 중 (%1$d/%2$d) 오류 - 일시중지됨 + 일시정지 회차 번호 소스 기준 회차 번호 기준 @@ -449,7 +449,7 @@ 디스플레이 필터링된 회차 건너뛰기 매우 높음 - 확장기능 업데이트 + 확장 앱 업데이트 기본값으로 설정 알림 설정 서재의 모든 항목에 적용 @@ -463,9 +463,9 @@ 회차 업데이트 포함: %s 백그라운드 활동 - 안 읽은 회차가 있을 때만 + 안 읽은 회차가 있음 카테고리 별 정렬 설정 - Shizuku를 확장기능 인스톨러로 사용하려면 Shizuku를 먼저 설치해 주세요. + Shizuku를 확장 앱 인스톨러로 사용하려면 Shizuku를 먼저 설치해 주세요. 전부 업데이트 백업에 항목이 포함되어 있지 않습니다. 개발자와 공유할 수 있는 오류 로그 파일을 생성합니다 @@ -515,21 +515,21 @@ 읽지 않은 만화를 건너 뛰었습니다 이 안드로이드 버전은 더이상 지원되지 않습니다 - %d개의 확장기능 업데이트가 있습니다 + %d개의 확장 앱 업데이트가 있습니다 Cloudflare를 통과하지 못했습니다 - Tachiyomi를 사용하려면 WebView가 필요합니다 + Tachiyomi 앱의 기능을 사용하려면 WebView가 필요합니다 호환성을 위해 WebView 어플리케이션을 업데이트 해 주세요 넓은 이미지 이동 이 확장 프로그램은 더 이상 사용할 수 없습니다. 제대로 작동하지 않을 수 있으며 앱에 문제가 발생할 수 있습니다. 제거하는 것이 좋습니다. - 확장기능 설치 중… + 확장 앱 설치 중… 레거시 트래킹 서재 표지 새로고침 오류 로그 공유 회차를 찾을 수 없습니다 결과가 없습니다 - 이 확장기능의 소스는 19금 콘텐츠가 포함될 수 있습니다 + 이 확장 앱의 소스는 성인 컨텐츠가 포함될 수 있습니다 트래커 사용 시작 지금 다운로드 시작 @@ -553,7 +553,7 @@ 지원 종료 검색 결과가 없습니다 넓은 페이지 분할 시 배치가 읽는 방향과 다를 경우 - 19금 + 성인 컨텐츠 카테고리 탭 보이기 챕터를 가져온 날짜순 전체 항목 개수순 @@ -567,10 +567,10 @@ 오래된 순 옥색 딸기 칵테일 - 확장기능 목록 취득 실패 + 확장 앱 목록 가져오기 실패 서재 업데이트 시 트래커 갱신 제외: %s - 이 확장기능은 공식 확장기능이 아닙니다. + 이 확장앱은 공식 확장앱이 아닙니다. 트래커 서비스에 항목 진행 상황을 동기화합니다. 트래킹 버튼을 이용하여 각각의 항목 별로 트래킹을 설정하세요. 트래커 가이드 향상된 서비스 @@ -613,11 +613,11 @@ 새로고침 청사과 문어 - 음과 양 + Yin & Yang 요츠바 - 후방주의 (19금) 소스 + 성인 콘텐츠 소스 소스 및 확장 기능 목록에 보이기 - 이 옵션을 끄더라도 비공식 또는 분류가 잘못된 확장 기능으로 인하여 후방주의 (19금) 컨텐츠가 표시될 수 있습니다. + 이 옵션을 끄더라도 비공식 또는 분류가 잘못된 확장 기능으로 인하여 성인 컨텐츠가 표시될 수 있습니다. 터치하여 자세히 보기 3일 제한: %s @@ -686,7 +686,7 @@ 읽을 때 자동 다운로드 마지막 서재 업데이트: %s - 현재 회차 + 다음 회차가 이미 다운로드된 경우에만 작동됩니다 + 현재 회차 + 다음 회차가 이미 다운로드된 경우에만 작동됩니다. 인기 정말로 실행합니까\? 만화에 업데이트가 필요하지 않음으로 건너뜀 @@ -788,4 +788,18 @@ 다운로드 인덱스를 제거함 다음 업데이트 예정 탭하여 Cloudflare에 관한 도움말 보기 + 일별 가져오기 (10일 이상) + %s를 잠금해제 + 항상 업데이트 하도록 설정 + 서재를 동기화합니다 + 백업 파일을 생성할 수 없습니다 + 서재가 동기화되었습니다 + 이 시리즈를 맨 아래로 이동 + 라이센스 제한 - 회차를 표시할 수 없습니다 + 인터넷에 연결되지 않음 + 포기했나요\? 20일 ~ 2달 이내 + 항상 평가하기 + 트랙킹 서비스 로그인 + HTTP %d, WebView의 웹 사이트를 확인해 주세요 + %s에 연결할 수 없습니다 \ No newline at end of file diff --git a/i18n/src/main/res/values-nb-rNO/strings.xml b/i18n/src/main/res/values-nb-rNO/strings.xml index ce9561b16..f1491264b 100644 --- a/i18n/src/main/res/values-nb-rNO/strings.xml +++ b/i18n/src/main/res/values-nb-rNO/strings.xml @@ -132,7 +132,7 @@ Ingen animasjon Normal Rask - Standard rotasjonstype + Standard rotasjon Fri Låst stående Låst liggende @@ -259,9 +259,9 @@ Rutenettstørrelse Denne utvidelsen ble signert med et usikkert sertifikat, og ble dermed ikke aktivert \n -\nEn skadelig utvidelse kan lese innloggingsdetaljer lagret i Tachiyomi, eller kjøre ukjent kode. +\nEn skadelig utvidelse kan lese alle lagrede innloggingsdetaljer eller kjøre vilkårlig kode. \n -\nVed å godta dette sertifikatet aksepterer du overstående risikoer. +\nVed å godta dette sertifikatet aksepterer du disse risikoene. Animasjonshastighet ved dobbelklikk Sider Bruk dette bildet som omslag\? @@ -337,7 +337,7 @@ Meny Kilder Utvidelsesoppdateringer - Tachiyomi krever WebView + Appen fungerer ikke uten WebView Legg til sporing Mindre Mer @@ -411,7 +411,7 @@ Gjort på %1$s med %2$s feil Vis lesemodus - Denne utvidelsen kommer ikke fra den offisielle Tachiyomi-utvidelseslisten. + Denne utvidelsen kommer ikke fra den offisielle listen. deaktivere deaktiver alle aktiver alle @@ -532,7 +532,7 @@ Denne Android-versjonen støttes ikke lenger Liggende Stående - Rotasjonstype + Rotasjon Oppretter mapper i henhold til oppføringenes tittel Lagre sider i egne mapper Handlinger @@ -813,4 +813,9 @@ Kunne ikke opprette en backup-fil Lisensiert - Ingen kapitler å vise Sporingsinnlogging + Lås opp %s + Flytt serien til bunnen + Ingen internettforbindelse + HTTP %d, sjekk nettsiden i WebView + Kunne ikke nå %s \ No newline at end of file diff --git a/i18n/src/main/res/values-ne/strings.xml b/i18n/src/main/res/values-ne/strings.xml index edec1498a..07c53c4d6 100644 --- a/i18n/src/main/res/values-ne/strings.xml +++ b/i18n/src/main/res/values-ne/strings.xml @@ -3,7 +3,7 @@ अन अफ अँध्यारो मोड - थिम + थीम बारेमा उन्नत सेटिङहरू ट्र्याकिङ @@ -162,7 +162,7 @@ मिडनाइट डस्क हरियो स्याउ गतिशील - एपको थिम + एपको थीम सिस्टम पालना गर्नुहोस् रूप अहिले डाउनलोड गर्न सुरु गर्नुहोस् @@ -170,7 +170,7 @@ क्रमबद्ध यी श्रृङ्खलाका सबै रद्द गर्नुहोस् लोकल स्रोत - WebViewमा खोल्नुहोस् + WebView मा खोल्नुहोस् परिवर्तन पुष्टि गर्न प्रमाणित गर्नुहोस् पूर्वनिर्धारित ट्याब्लेट UI @@ -200,7 +200,7 @@ स्थापना गरियो विश्वास यो एक्सटेन्शन अब उपलब्ध छैन। यसले राम्ररी काम नगर्न सक्छ र एपमा समस्या ल्याउन सक्छ। यसलाई अनइन्स्टल गर्न सिफारिस गरिन्छ। - यो एक्सटेन्शन आधिकारिक ताचियोमीको एक्सटेन्शन सूचीबाट होइन। + यो एक्सटेन्शन आधिकारिक सूचीबाट होइन। यस एक्सटेन्शनको स्रोतहरूमा NSFW (१८+) सामग्री समावेश हुन सक्छ एक्सटेन्शन स्थापना गर्दै… Shizuku चलिरहेको छैन @@ -263,9 +263,9 @@ अविश्वसनीय एक्सटेन्शन समावेश नगर्नुहोस्: %s इंस्टलर - यो एक्सटेन्शन एक अविश्वसनीय प्रमाणपत्र संग हस्ताक्षर गरिएको थियो र सक्रिय गरिएको थिएन। + यो एक्सटेन्शन अविश्वसनीय प्रमाणपत्र सँग हस्ताक्षर गरिएको थियो र सक्रिय गरिएको थिएन। \n -\nएउटा खराब एक्सटेन्शनले ताचियोमीमा भण्डारण गरिएका कुनै पनि लगइन प्रमाणहरू पढ्न वा स्वेच्छाचारी कोड कार्यान्वयन गर्न सक्छ। +\nएक खराब एक्सटेन्शनले कुनै पनि भण्डारण लगइन प्रमाणहरू पढ्न वा मनमानी कोड कार्यान्वयन गर्न सक्छ। \n \nयस प्रमाणपत्रमा विश्वास गरेर तपाईंले यी जोखिमहरू स्वीकार गर्नुहुन्छ। पूर्ण स्क्रिन @@ -300,8 +300,8 @@ सामान्य कुनै एनिमेसन छैन छिटो - पूर्वनिर्धारित रोटेशन प्रकार - रोटेशन प्रकार + पूर्वनिर्धारित रोटेशन + रोटेशन फ्री ल्याण्डस्केप लक गरिएको ल्याण्डस्केप @@ -626,7 +626,7 @@ त्रुटिहरू कुनै अध्याय नपढेकाले छोडियो ठूला अपडेटहरूले स्रोतहरूलाई हानि पुर्‍याउँछ र यसले ढिलो अपडेटहरू निम्त्याउन सक्छ र ब्याट्रीको प्रयोग पनि बढाउँछ। थप जान्न ट्याप गर्नुहोस्। - ताचियोमी को लागि WebView आवश्यक छ + एप काम गर्नका लागि WebView आवश्यक छ श्रृङ्खलालाई शीर्षमा सर्नुहोस् पोर्ट्रेट उल्ट्याउनु नपढिएका अध्यायहरू भएका कारण छोडियो @@ -669,7 +669,7 @@ डाउनलोड गरिएको मापन नगरिएको नेटवर्कमा मात्र अगाडि डाउनलोड गर्नुहोस् - थिम, मिति र समय ढाँचा + थीम, मिति र समय ढाँचा हालको अध्याय + अर्को पहिले नै डाउनलोड गरिएमा मात्र काम गर्दछ। समुन्द्री लहर संस्करण @@ -816,4 +816,6 @@ इन्टरनेट जडान छैन %s मा पुग्न सकिएन HTTP %d, WebView मा वेबसाइट जाँच गर्नुहोस् + अनलक %s + श्रृङ्खलालाई तल सार्नुहोस् \ No newline at end of file diff --git a/i18n/src/main/res/values-nl/strings.xml b/i18n/src/main/res/values-nl/strings.xml index 06ea1cc29..b69b554d1 100644 --- a/i18n/src/main/res/values-nl/strings.xml +++ b/i18n/src/main/res/values-nl/strings.xml @@ -770,13 +770,13 @@ Interval aanpassen Download Index geïnvalideerd - - + + Maak de downloadindex ongeldig - - + + OK Swipe naar de linker actie diff --git a/i18n/src/main/res/values-pt-rBR/strings.xml b/i18n/src/main/res/values-pt-rBR/strings.xml index 3b7f69478..505208425 100644 --- a/i18n/src/main/res/values-pt-rBR/strings.xml +++ b/i18n/src/main/res/values-pt-rBR/strings.xml @@ -112,7 +112,7 @@ Esquerda Direita Centro - Tipo de orientação padrão + Orientação padrão Automática Retrato bloqueado Paisagem bloqueado @@ -546,7 +546,7 @@ Cria as pastas usando os títulos dos itens Salvar as páginas em pastas separadas Ações - Tipo de orientação + Orientação Nível de cinza Desabilitar o modo anônimo Auto diff --git a/i18n/src/main/res/values-ru/strings.xml b/i18n/src/main/res/values-ru/strings.xml index e8c850ca3..9b9a8e47a 100644 --- a/i18n/src/main/res/values-ru/strings.xml +++ b/i18n/src/main/res/values-ru/strings.xml @@ -849,4 +849,5 @@ Нет подключения к интернету Не удалось достичь %s Разблокировать %s + Переместить серию в конец \ No newline at end of file diff --git a/i18n/src/main/res/values-sv/strings.xml b/i18n/src/main/res/values-sv/strings.xml index 509b508f9..ef030d5de 100644 --- a/i18n/src/main/res/values-sv/strings.xml +++ b/i18n/src/main/res/values-sv/strings.xml @@ -137,7 +137,7 @@ Ingen animering Normal Snabb - Standardrotationstyp + Standard rotation Upplåst Låst porträtt Låst liggande @@ -532,7 +532,7 @@ Kunde inte kopiera till urklipp Liggande Porträtt - Rotationstyp + Rotation Skapa mappar enligt posternas titel Spara sidor i separata mappar Åtgärder @@ -817,4 +817,5 @@ HTTP %d, kolla på webbsida i WebView Kunde inte nå %s Lås upp %s + Flytta serien till botten \ No newline at end of file diff --git a/i18n/src/main/res/values-th/strings.xml b/i18n/src/main/res/values-th/strings.xml index c6550e937..7554082bf 100644 --- a/i18n/src/main/res/values-th/strings.xml +++ b/i18n/src/main/res/values-th/strings.xml @@ -138,7 +138,7 @@ ไม่มีแอนิเมชั่น ปกติ เร็ว - ประเภทการหมุนเริ่มต้น + การหมุนเริ่มต้น อิสระ ล็อกแนวตั้ง ล็อกแนวนอน @@ -400,7 +400,7 @@ ช่องว่างด้านข้าง การอ่าน โหมดการอ่าน - ประเภทการหมุน + การหมุน โซนการแตะ หน้ายาวแยกช่องว่าง ขวา @@ -801,4 +801,5 @@ ไม่มีการเชื่อมต่ออินเทอร์เน็ต HTTP %d, ดูเว็บไซต์ใน WebView ไม่สามารถเข้าถึง %s ได้ + ย้ายเรื่องไปด้านล่าง \ No newline at end of file diff --git a/i18n/src/main/res/values-tr/strings.xml b/i18n/src/main/res/values-tr/strings.xml index e2cfd0824..f1f3d3e0c 100644 --- a/i18n/src/main/res/values-tr/strings.xml +++ b/i18n/src/main/res/values-tr/strings.xml @@ -137,7 +137,7 @@ Animasyon yok Normal Hızlı - Ön tanımlı döndürme türü + Ön tanımlı döndürme Bağımsız Kilitli dikey Kilitli yatay @@ -532,7 +532,7 @@ Panoya kopyalanamadı Yatay Dikey - Döndürme türü + Döndürme Girdilerin başlığına göre sıralaç oluşturur Sayfaları ayrı sıralaçlara kaydet Eylemler @@ -630,7 +630,7 @@ SSS ve Kılavuzlar Okunmayan bölümü olan Bu başlamadı - Manga bitirildiği için atlandı + Dizi bitirildiği için atlandı Okunmamış bölümler olduğu için atlandı Hiçbir bölüm okunmadığı için atlandı Geniş görüntüleri kaydır @@ -817,4 +817,5 @@ Genel ağ bağlantısı yok Kitaplık eşleştiriliyor Aç: %s + Diziyi en alta taşı \ No newline at end of file diff --git a/i18n/src/main/res/values-uk/strings.xml b/i18n/src/main/res/values-uk/strings.xml index 33976dc75..e2241a1f7 100644 --- a/i18n/src/main/res/values-uk/strings.xml +++ b/i18n/src/main/res/values-uk/strings.xml @@ -99,7 +99,7 @@ Ненадійне розширення Це розширення було підписано ненадійним сертифікатом та не було активовано. \n -\nЗловмисне розширення может зчитувати будь-які облікові дані для входу, що зберігаються в Tachiyomi, або виконувати довільний код. +\nШкідливе розширення може зчитувати будь-які збережені облікові дані для входу або виконати довільний код. \n \nДовіряючи цьому сертифікату, ви приймаєте ці ризики. Повноекранний режим @@ -137,7 +137,7 @@ Без анімації Нормальна Швидка - Тип основної орієнтації + Орієнтація за замовчуванням Вільна Заблокована портретна Заблокована альбомна @@ -386,13 +386,13 @@ Додати до бібліотеки Менше Більше - WebView необхідний для Tachiyomi + WebView необхідний для роботи застосунку Ліцензії з відкритим кодом Сторінка Тільки завантажені Сірий Зменшує смугастість, але може вплинути на продуктивність - Це розширення не входить до переліку офіційних розширень Tachiyomi. + Це розширення не з офіційного списку. Неофіційне %d категорія @@ -553,7 +553,7 @@ Не вдалось скопіювати до буферу обміну Альбомна Портретна - Тип орієнтації + Орієнтація Створювати теки в відповідності до назви записів Зберігати сторінки до окремих тек Дії @@ -844,4 +844,9 @@ Натисніть тут, щоб отримати допомогу з Cloudflare Не вдалося створити файл резервної копії Ліцензовано - немає розділів для показу + Розблокувати %s + Перемістити серію вниз + Немає Інтернет-з\'єднання + Http %d, перевірте вебсайт у WebView + Не вдалося досягти %s \ No newline at end of file diff --git a/i18n/src/main/res/values-zh-rTW/strings.xml b/i18n/src/main/res/values-zh-rTW/strings.xml index 6fdde8a91..71241a535 100644 --- a/i18n/src/main/res/values-zh-rTW/strings.xml +++ b/i18n/src/main/res/values-zh-rTW/strings.xml @@ -801,4 +801,5 @@ 沒有網際網路連線 無法連上 %s 解鎖 %s + 將系列移至底部 \ No newline at end of file diff --git a/i18n/src/main/res/values/strings.xml b/i18n/src/main/res/values/strings.xml index 629d720c3..aa7e9a84a 100644 --- a/i18n/src/main/res/values/strings.xml +++ b/i18n/src/main/res/values/strings.xml @@ -203,6 +203,9 @@ Yotsuba Tidal Wave Pure black dark mode + Relative timestamps + + \"%1$s\" instead of \"%2$s\" Date format Manage notifications @@ -225,6 +228,12 @@ Show in sources and extensions lists This does not prevent unofficial or potentially incorrectly flagged extensions from surfacing NSFW (18+) content within the app. + Today + + Yesterday + %1$d days ago + + Display Grid size