增加页脚配置 (#4724)
Some checks are pending
Test Build / prepare (push) Waiting to run
Test Build / build (app, release) (push) Blocked by required conditions
Test Build / build (app, releaseA) (push) Blocked by required conditions
Test Build / prerelease (push) Blocked by required conditions
Test Build / lanzou (push) Blocked by required conditions
Test Build / test_Branch (push) Blocked by required conditions
Test Build / telegram (push) Blocked by required conditions

* 增加点击屏幕下部分右边下一页,左部分上一页

* 优化

* 增加开启自动翻页

* ...

* 修改命名

* ...

* ...

* ...

* 页脚配置

* ...

* ...
This commit is contained in:
lhjgege
2025-02-20 16:56:57 +08:00
committed by GitHub
parent 1e2299ce60
commit 8bb4ec5e93
16 changed files with 544 additions and 28 deletions

View File

@@ -97,6 +97,7 @@ object PreferKey {
const val preDownloadNum = "preDownloadNum"
const val mangaPreDownloadNum = "mangaPreDownloadNum"
const val mangaAutoPageSpeed = "mangaAutoPageSpeed"
const val mangaFooterConfig = "mangaFooterConfig"
const val singlePageScrolling = "singlePageScrolling"
const val disableClickScroller = "disableClickScroller"
const val autoRefresh = "auto_refresh"

View File

@@ -643,5 +643,13 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
set(value) {
appCtx.putPrefInt(PreferKey.mangaAutoPageSpeed, value)
}
//漫画页脚配置
var mangaFooterConfig
get() = appCtx.getPrefString(PreferKey.mangaFooterConfig, "")
set(value) {
appCtx.putPrefString(PreferKey.mangaFooterConfig, value)
}
}

View File

@@ -26,6 +26,7 @@ import com.bumptech.glide.util.FixedPreloadSizeProvider
import io.legado.app.BuildConfig
import io.legado.app.R
import io.legado.app.base.VMBaseActivity
import io.legado.app.constant.EventBus
import io.legado.app.data.entities.Book
import io.legado.app.data.entities.BookChapter
import io.legado.app.data.entities.BookProgress
@@ -43,16 +44,22 @@ import io.legado.app.model.recyclerView.ReaderLoading
import io.legado.app.receiver.NetworkChangedListener
import io.legado.app.ui.book.changesource.ChangeBookSourceDialog
import io.legado.app.ui.book.info.BookInfoActivity
import io.legado.app.ui.book.manga.config.MangaFooterConfig
import io.legado.app.ui.book.manga.config.MangaFooterSettingDialog
import io.legado.app.ui.book.manga.rv.MangaAdapter
import io.legado.app.ui.book.read.MangaMenu
import io.legado.app.ui.book.read.ReadBookActivity.Companion.RESULT_DELETED
import io.legado.app.ui.book.toc.TocActivityResult
import io.legado.app.ui.widget.ReaderInfoBarView
import io.legado.app.ui.widget.number.NumberPickerDialog
import io.legado.app.ui.widget.recycler.LoadMoreView
import io.legado.app.utils.GSON
import io.legado.app.utils.NetworkUtils
import io.legado.app.utils.StartActivityContract
import io.legado.app.utils.fromJsonObject
import io.legado.app.utils.getCompatColor
import io.legado.app.utils.gone
import io.legado.app.utils.observeEvent
import io.legado.app.utils.printOnDebug
import io.legado.app.utils.showDialogFragment
import io.legado.app.utils.toastOnUi
@@ -101,6 +108,8 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, MangaViewModel>()
}
private var mMangaAutoPageSpeed = mInitMangaAutoPageSpeed
private var mMangaFooterConfig: MangaFooterConfig? = null
private val mLabelBuilder by lazy { StringBuilder() }
private val autoScrollHandler = Handler(Looper.getMainLooper())
private val autoScrollRunnable = object : Runnable {
@@ -170,6 +179,18 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, MangaViewModel>()
}
}
loadMoreView.gone()
mMangaFooterConfig = GSON.fromJsonObject<MangaFooterConfig>(AppConfig.mangaFooterConfig).getOrNull()
?: MangaFooterConfig()
observeEvent<MangaFooterConfig>(EventBus.UP_CONFIG) {
mMangaFooterConfig = it
AppConfig.mangaFooterConfig = GSON.toJson(it)
upInfoBar(
ReadManga.durChapterPagePos.plus(1),
ReadManga.durChapterPageCount,
ReadManga.durChapterPos.plus(1),
ReadManga.durChapterCount
)
}
}
private fun initRecyclerView() {
@@ -291,12 +312,37 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, MangaViewModel>()
private fun upInfoBar(
chapterPagePos: Int, chapterPageCount: Int, chapterPos: Int, chapterCount: Int,
) {
mMangaFooterConfig?.run {
mLabelBuilder.clear()
binding.infobar.isGone = this.hideFooter
binding.infobar.textInfoAlignment =this.footerOrientation
if (!this.hidePageNumber) {
if (!this.hidePageNumberLabel) {
mLabelBuilder.append(getString(R.string.manga_check_page_number))
}
mLabelBuilder.append("${chapterPos}/${chapterCount}").append(" ")
}
if (!this.hideChapter) {
if (!this.hideChapterLabel) {
mLabelBuilder.append(getString(R.string.manga_check_chapter))
}
mLabelBuilder.append("${chapterPagePos}/${chapterPageCount}").append(" ")
}
if (!this.hideProgressRatio) {
if (!this.hideProgressRatioLabel) {
mLabelBuilder.append(getString(R.string.manga_check_progress))
}
mLabelBuilder.append(
"${
chapterPagePos.div(chapterPageCount).times(100)
}%"
)
}
}
binding.infobar.update(
chapterPagePos,
chapterPageCount,
chapterPagePos.times(1f).div(chapterPageCount.times(1f)),
chapterPos,
chapterCount
if (mLabelBuilder.isEmpty()) "" else mLabelBuilder.toString()
)
}
@@ -471,6 +517,10 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, MangaViewModel>()
startAutoPage()
}
}
R.id.menu_manga_footer_config -> {
MangaFooterSettingDialog().show(supportFragmentManager, "mangaFooterSettingDialog")
}
}
return super.onCompatOptionsItemSelected(item)
}

View File

@@ -0,0 +1,16 @@
package io.legado.app.ui.book.manga.config
import androidx.annotation.Keep
import io.legado.app.ui.widget.ReaderInfoBarView
@Keep
data class MangaFooterConfig(
var hideChapterLabel: Boolean = false,
var hideChapter: Boolean = false,
var hidePageNumberLabel: Boolean = false,
var hidePageNumber: Boolean = false,
var hideProgressRatioLabel: Boolean = false,
var hideProgressRatio: Boolean = false,
var footerOrientation: Int = ReaderInfoBarView.ALIGN_LEFT,//默认靠左
var hideFooter: Boolean = false
)

View File

@@ -0,0 +1,101 @@
package io.legado.app.ui.book.manga.config
import android.os.Bundle
import android.view.View
import android.view.ViewGroup
import io.legado.app.R
import io.legado.app.base.BaseDialogFragment
import io.legado.app.constant.EventBus
import io.legado.app.databinding.DialogMangaFooterSettingBinding
import io.legado.app.help.config.AppConfig
import io.legado.app.ui.widget.ReaderInfoBarView
import io.legado.app.utils.GSON
import io.legado.app.utils.fromJsonObject
import io.legado.app.utils.postEvent
import io.legado.app.utils.setLayout
import io.legado.app.utils.viewbindingdelegate.viewBinding
class MangaFooterSettingDialog : BaseDialogFragment(R.layout.dialog_manga_footer_setting) {
val config = GSON.fromJsonObject<MangaFooterConfig>(AppConfig.mangaFooterConfig).getOrNull()
?: MangaFooterConfig()
private val binding by viewBinding(DialogMangaFooterSettingBinding::bind)
override fun onStart() {
super.onStart()
setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
}
override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) {
binding.cbChapterLabel.run {
isChecked = config.hideChapterLabel
setOnCheckedChangeListener { _, isChecked ->
config.hideChapterLabel = isChecked
postEvent(EventBus.UP_CONFIG, config)
}
}
binding.cbChapter.run {
isChecked = config.hideChapter
setOnCheckedChangeListener { _, isChecked ->
config.hideChapter = isChecked
postEvent(EventBus.UP_CONFIG, config)
}
}
binding.cbPageNumberLabel.run {
isChecked = config.hidePageNumberLabel
setOnCheckedChangeListener { _, isChecked ->
config.hidePageNumberLabel = isChecked
postEvent(EventBus.UP_CONFIG, config)
}
}
binding.cbPageNumber.run {
isChecked = config.hidePageNumber
setOnCheckedChangeListener { _, isChecked ->
config.hidePageNumber = isChecked
postEvent(EventBus.UP_CONFIG, config)
}
}
binding.cbProgressRatioLabel.run {
isChecked = config.hideProgressRatioLabel
setOnCheckedChangeListener { _, isChecked ->
config.hideProgressRatioLabel = isChecked
postEvent(EventBus.UP_CONFIG, config)
}
}
binding.cbProgressRatio.run {
isChecked = config.hideProgressRatio
setOnCheckedChangeListener { _, isChecked ->
config.hideProgressRatio = isChecked
postEvent(EventBus.UP_CONFIG, config)
}
}
binding.rgFooterOrientation.check(if (config.footerOrientation == ReaderInfoBarView.ALIGN_CENTER) R.id.rbCenter else R.id.rbLeft)
binding.rgFooterOrientation.setOnCheckedChangeListener { _, checkedId ->
when (checkedId) {
R.id.rbLeft -> {
config.footerOrientation = ReaderInfoBarView.ALIGN_LEFT
}
R.id.rbCenter -> {
config.footerOrientation = ReaderInfoBarView.ALIGN_CENTER
}
}
postEvent(EventBus.UP_CONFIG, config)
}
binding.rgFooter.check(if (config.hideFooter) R.id.rbDisable else R.id.rbEnable)
binding.rgFooter.setOnCheckedChangeListener { _, checkedId ->
when (checkedId) {
R.id.rbEnable -> {
config.hideFooter = false
}
R.id.rbDisable -> {
config.hideFooter = true
}
}
postEvent(EventBus.UP_CONFIG, config)
}
}
}

View File

@@ -24,6 +24,7 @@ import java.text.NumberFormat
import java.text.SimpleDateFormat
import java.util.Date
import java.util.Locale
import kotlin.math.min
import com.google.android.material.R as materialR
class ReaderInfoBarView @JvmOverloads constructor(
@@ -32,6 +33,11 @@ class ReaderInfoBarView @JvmOverloads constructor(
@AttrRes defStyleAttr: Int = 0,
) : View(context, attrs, defStyleAttr) {
companion object {
const val ALIGN_LEFT = 0
const val ALIGN_CENTER = 1
}
private val paint = Paint(Paint.ANTI_ALIAS_FLAG)
private val textBounds = Rect()
private val timeFormat = SimpleDateFormat.getTimeInstance(SimpleDateFormat.SHORT)
@@ -54,12 +60,16 @@ class ReaderInfoBarView @JvmOverloads constructor(
200,
)
var textInfoAlignment: Int = ALIGN_CENTER
set(value) {
field = value
updateTextSize()
invalidate()
}
private var timeText = timeFormat.format(Date())
private var text: String = ""
private val innerHeight
get() = height - paddingTop - paddingBottom - insetTop
private val innerWidth
get() = width - paddingLeft - paddingRight - insetLeft - insetRight
@@ -76,12 +86,29 @@ class ReaderInfoBarView @JvmOverloads constructor(
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
val ty = innerHeight / 2f + textBounds.height() / 2f - textBounds.bottom
paint.textAlign = Paint.Align.LEFT
val textX = when (textInfoAlignment) {
ALIGN_CENTER -> {
val textWidth = paint.measureText(text)
(width / 2f).coerceIn(
paddingLeft + insetLeft + cutoutInsetLeft + textWidth / 2,
width - paddingRight - insetRight - cutoutInsetRight - textWidth / 2
)
}
else -> (paddingLeft + insetLeft + cutoutInsetLeft).toFloat()
}
paint.textAlign = when (textInfoAlignment) {
ALIGN_CENTER -> Paint.Align.CENTER
else -> Paint.Align.LEFT
}
canvas.drawTextOutline(
text,
(paddingLeft + insetLeft + cutoutInsetLeft).toFloat(),
textX,
paddingTop + insetTop + ty,
)
paint.textAlign = Paint.Align.RIGHT
canvas.drawTextOutline(
timeText,
@@ -117,21 +144,8 @@ class ReaderInfoBarView @JvmOverloads constructor(
context.unregisterReceiver(timeReceiver)
}
fun update(
currentPage: Int,
totalPage: Int,
percent: Float,
chapterIndex: Int,
chapterCount: Int
) {
text = context.getString(
R.string.book_reader_info_bar,
chapterIndex,
chapterCount,
currentPage,
totalPage,
if (percent in 0f..1f) (percent * 100).format() else ""
)
fun update(label: String) {
text = label
updateTextSize()
invalidate()
}
@@ -164,12 +178,30 @@ class ReaderInfoBarView @JvmOverloads constructor(
private fun updateTextSize() {
val str = text + timeText
val testTextSize = 48f
paint.textSize = testTextSize
paint.getTextBounds(str, 0, str.length, textBounds)
paint.textSize = testTextSize * innerHeight / textBounds.height()
paint.getTextBounds(str, 0, str.length, textBounds)
paint.getTextBounds(text, 0, text.length, textBounds)
val maxTextHeight = innerHeight * 0.8f
val scaleFactor = min(
maxTextHeight / textBounds.height(),
calculateMaxWidthScale()
)
paint.textSize = testTextSize * scaleFactor
paint.getTextBounds(text, 0, text.length, textBounds)
}
private fun calculateMaxWidthScale(): Float {
return when (textInfoAlignment) {
ALIGN_CENTER -> {
val availableWidth = innerWidth - cutoutInsetLeft - cutoutInsetRight
val requiredWidth = paint.measureText(text)
if (requiredWidth > availableWidth) availableWidth / requiredWidth else 1f
}
else -> 1f
}
}
private fun Canvas.drawTextOutline(text: String, x: Float, y: Float) {

View File

@@ -0,0 +1,183 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="14dp"
android:layout_marginTop="20dp"
android:text="@string/manga_header_chapter"
android:textColor="@color/black"
android:textSize="14sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="30dp"
android:layout_marginTop="10dp">
<CheckBox
android:id="@+id/cbChapterLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/manga_check_chapter_label"
android:textColor="#333333"
android:textSize="12sp" />
<CheckBox
android:id="@+id/cbChapter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:gravity="center"
android:text="@string/manga_check_chapter"
android:textColor="#333333"
android:textSize="12sp" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="14dp"
android:layout_marginTop="20dp"
android:text="@string/manga_header_page"
android:textColor="@color/black"
android:textSize="14sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="30dp"
android:layout_marginTop="10dp">
<CheckBox
android:id="@+id/cbPageNumberLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/manga_check_page_label"
android:textColor="#333333"
android:textSize="12sp" />
<CheckBox
android:id="@+id/cbPageNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:gravity="center"
android:text="@string/manga_check_page_number"
android:textColor="#333333"
android:textSize="12sp" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="14dp"
android:layout_marginTop="20dp"
android:text="@string/manga_header_progress"
android:textColor="@color/black"
android:textSize="14sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="30dp"
android:layout_marginTop="10dp">
<CheckBox
android:id="@+id/cbProgressRatioLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/manga_check_progress_label"
android:textColor="#333333"
android:textSize="12sp" />
<CheckBox
android:id="@+id/cbProgressRatio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:gravity="center"
android:text="@string/manga_check_progress"
android:textColor="#333333"
android:textSize="12sp" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="14dp"
android:layout_marginTop="20dp"
android:text="@string/manga_header_footer"
android:textColor="@color/black"
android:textSize="14sp" />
<RadioGroup
android:id="@+id/rgFooterOrientation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="30dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:orientation="horizontal">
<RadioButton
android:id="@+id/rbLeft"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/manga_radio_left"
android:textColor="#333333"
android:textSize="12sp" />
<RadioButton
android:id="@+id/rbCenter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:gravity="center"
android:text="@string/manga_radio_center"
android:textColor="#333333"
android:textSize="12sp" />
</RadioGroup>
<RadioGroup
android:id="@+id/rgFooter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="30dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:orientation="horizontal">
<RadioButton
android:id="@+id/rbDisable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/manga_radio_disable"
android:textColor="#333333"
android:textSize="12sp" />
<RadioButton
android:id="@+id/rbEnable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:gravity="center"
android:text="@string/manga_radio_enable"
android:textColor="#333333"
android:textSize="12sp" />
</RadioGroup>
</LinearLayout>

View File

@@ -57,4 +57,9 @@
android:visible="false"
android:title="@string/manga_auto_page_speed"
app:showAsAction="never" />
<item
android:id="@+id/menu_manga_footer_config"
android:title="@string/manga_footer_config"
app:showAsAction="never"/>
</menu>

View File

@@ -1187,8 +1187,23 @@
<string name="disable_manga_click_scroller">禁用点击翻页</string>
<string name="enable_auto_page_scroller">开启自动翻页</string>
<string name="manga_auto_page_speed">翻页速度 %s 秒</string>
<string name="manga_footer_config">页脚配置</string>
<string name="setting_manga_auto_page_speed">设置自动翻页速度</string>
<string name="book_reader_info_bar">页数. %1$d/%2$d 章节. %3$d/%4$d -> %5$s%%</string>
<string name="menu_download_after">Descargar el siguiente capítulo</string>
<string name="menu_download_all">Descargar todos los capítulos</string>
<string name="manga_header_chapter">《章节和文案》隐藏</string>
<string name="manga_check_chapter_label">《章节.》文案</string>
<string name="manga_check_chapter">章节</string>
<string name="manga_header_page">《页数和文案》隐藏</string>
<string name="manga_check_page_label">《页数.》文案</string>
<string name="manga_check_page_number">页数</string>
<string name="manga_header_progress">《总进度和文案》隐藏</string>
<string name="manga_check_progress_label">《总进度.》文案</string>
<string name="manga_check_progress">总进度</string>
<string name="manga_header_footer">页脚</string>
<string name="manga_radio_left">靠左</string>
<string name="manga_radio_center">居中</string>
<string name="manga_radio_disable">禁用</string>
<string name="manga_radio_enable">启用</string>
</resources>

View File

@@ -1190,8 +1190,23 @@
<string name="disable_manga_click_scroller">禁用点击翻页</string>
<string name="enable_auto_page_scroller">开启自动翻页</string>
<string name="manga_auto_page_speed">翻页速度 %s 秒</string>
<string name="manga_footer_config">页脚配置</string>
<string name="setting_manga_auto_page_speed">设置自动翻页速度</string>
<string name="book_reader_info_bar">页数. %1$d/%2$d 章节. %3$d/%4$d -> %5$s%%</string>
<string name="menu_download_after">下载之后章节</string>
<string name="menu_download_all">下载全部章节</string>
<string name="manga_header_chapter">《章节和文案》隐藏</string>
<string name="manga_check_chapter_label">《章节.》文案</string>
<string name="manga_check_chapter">章节</string>
<string name="manga_header_page">《页数和文案》隐藏</string>
<string name="manga_check_page_label">《页数.》文案</string>
<string name="manga_check_page_number">页数</string>
<string name="manga_header_progress">《总进度和文案》隐藏</string>
<string name="manga_check_progress_label">《总进度.》文案</string>
<string name="manga_check_progress">总进度</string>
<string name="manga_header_footer">页脚</string>
<string name="manga_radio_left">靠左</string>
<string name="manga_radio_center">居中</string>
<string name="manga_radio_disable">禁用</string>
<string name="manga_radio_enable">启用</string>
</resources>

View File

@@ -1190,8 +1190,23 @@
<string name="disable_manga_click_scroller">禁用点击翻页</string>
<string name="enable_auto_page_scroller">开启自动翻页</string>
<string name="manga_auto_page_speed">翻页速度 %s 秒</string>
<string name="manga_footer_config">页脚配置</string>
<string name="setting_manga_auto_page_speed">设置自动翻页速度</string>
<string name="book_reader_info_bar">页数. %1$d/%2$d 章节. %3$d/%4$d -> %5$s%%</string>
<string name="menu_download_after">Faça o download do próximo capítulo</string>
<string name="menu_download_all">Download de todos os capítulos</string>
<string name="manga_header_chapter">《章节和文案》隐藏</string>
<string name="manga_check_chapter_label">《章节.》文案</string>
<string name="manga_check_chapter">章节</string>
<string name="manga_header_page">《页数和文案》隐藏</string>
<string name="manga_check_page_label">《页数.》文案</string>
<string name="manga_check_page_number">页数</string>
<string name="manga_header_progress">《总进度和文案》隐藏</string>
<string name="manga_check_progress_label">《总进度.》文案</string>
<string name="manga_check_progress">总进度</string>
<string name="manga_header_footer">页脚</string>
<string name="manga_radio_left">靠左</string>
<string name="manga_radio_center">居中</string>
<string name="manga_radio_disable">禁用</string>
<string name="manga_radio_enable">启用</string>
</resources>

View File

@@ -1186,8 +1186,23 @@ Còn </string>
<string name="disable_manga_click_scroller">禁用点击翻页</string>
<string name="enable_auto_page_scroller">开启自动翻页</string>
<string name="manga_auto_page_speed">翻页速度 %s 秒</string>
<string name="manga_footer_config">页脚配置</string>
<string name="setting_manga_auto_page_speed">设置自动翻页速度</string>
<string name="book_reader_info_bar">页数. %1$d/%2$d 章节. %3$d/%4$d -> %5$s%%</string>
<string name="menu_download_after">Tải xuống chương tiếp theo</string>
<string name="menu_download_all">Tải xuống tất cả các chương</string>
<string name="manga_header_chapter">《章节和文案》隐藏</string>
<string name="manga_check_chapter_label">《章节.》文案</string>
<string name="manga_check_chapter">章节</string>
<string name="manga_header_page">《页数和文案》隐藏</string>
<string name="manga_check_page_label">《页数.》文案</string>
<string name="manga_check_page_number">页数</string>
<string name="manga_header_progress">《总进度和文案》隐藏</string>
<string name="manga_check_progress_label">《总进度.》文案</string>
<string name="manga_check_progress">总进度</string>
<string name="manga_header_footer">页脚</string>
<string name="manga_radio_left">靠左</string>
<string name="manga_radio_center">居中</string>
<string name="manga_radio_disable">禁用</string>
<string name="manga_radio_enable">启用</string>
</resources>

View File

@@ -1187,8 +1187,23 @@
<string name="disable_manga_click_scroller">禁用点击翻页</string>
<string name="enable_auto_page_scroller">开启自动翻页</string>
<string name="manga_auto_page_speed">翻页速度 %s 秒</string>
<string name="manga_footer_config">页脚配置</string>
<string name="setting_manga_auto_page_speed">设置自动翻页速度</string>
<string name="book_reader_info_bar">页数. %1$d/%2$d 章节. %3$d/%4$d -> %5$s%%</string>
<string name="menu_download_after">下載之後章節</string>
<string name="menu_download_all">下載全部章節</string>
<string name="manga_header_chapter">《章节和文案》隐藏</string>
<string name="manga_check_chapter_label">《章节.》文案</string>
<string name="manga_check_chapter">章节</string>
<string name="manga_header_page">《页数和文案》隐藏</string>
<string name="manga_check_page_label">《页数.》文案</string>
<string name="manga_check_page_number">页数</string>
<string name="manga_header_progress">《总进度和文案》隐藏</string>
<string name="manga_check_progress_label">《总进度.》文案</string>
<string name="manga_check_progress">总进度</string>
<string name="manga_header_footer">页脚</string>
<string name="manga_radio_left">靠左</string>
<string name="manga_radio_center">居中</string>
<string name="manga_radio_disable">禁用</string>
<string name="manga_radio_enable">启用</string>
</resources>

View File

@@ -1189,8 +1189,23 @@
<string name="disable_manga_click_scroller">禁用点击翻页</string>
<string name="enable_auto_page_scroller">开启自动翻页</string>
<string name="manga_auto_page_speed">翻页速度 %s 秒</string>
<string name="manga_footer_config">页脚配置</string>
<string name="setting_manga_auto_page_speed">设置自动翻页速度</string>
<string name="book_reader_info_bar">页数. %1$d/%2$d 章节. %3$d/%4$d -> %5$s%%</string>
<string name="menu_download_after">下載之後章節</string>
<string name="menu_download_all">下載全部章節</string>
<string name="manga_header_chapter">《章节和文案》隐藏</string>
<string name="manga_check_chapter_label">《章节.》文案</string>
<string name="manga_check_chapter">章节</string>
<string name="manga_header_page">《页数和文案》隐藏</string>
<string name="manga_check_page_label">《页数.》文案</string>
<string name="manga_check_page_number">页数</string>
<string name="manga_header_progress">《总进度和文案》隐藏</string>
<string name="manga_check_progress_label">《总进度.》文案</string>
<string name="manga_check_progress">总进度</string>
<string name="manga_header_footer">页脚</string>
<string name="manga_radio_left">靠左</string>
<string name="manga_radio_center">居中</string>
<string name="manga_radio_disable">禁用</string>
<string name="manga_radio_enable">启用</string>
</resources>

View File

@@ -1189,8 +1189,23 @@
<string name="disable_manga_click_scroller">禁用点击翻页</string>
<string name="enable_auto_page_scroller">开启自动翻页</string>
<string name="manga_auto_page_speed">翻页速度 %s 秒</string>
<string name="manga_footer_config">页脚配置</string>
<string name="setting_manga_auto_page_speed">设置自动翻页速度</string>
<string name="book_reader_info_bar">页数. %1$d/%2$d 章节. %3$d/%4$d -> %5$s%%</string>
<string name="menu_download_after">下载之后章节</string>
<string name="menu_download_all">下载全部章节</string>
<string name="manga_header_chapter">《章节和文案》隐藏</string>
<string name="manga_check_chapter_label">《章节.》文案</string>
<string name="manga_check_chapter">章节</string>
<string name="manga_header_page">《页数和文案》隐藏</string>
<string name="manga_check_page_label">《页数.》文案</string>
<string name="manga_check_page_number">页数</string>
<string name="manga_header_progress">《总进度和文案》隐藏</string>
<string name="manga_check_progress_label">《总进度.》文案</string>
<string name="manga_check_progress">总进度</string>
<string name="manga_header_footer">页脚</string>
<string name="manga_radio_left">靠左</string>
<string name="manga_radio_center">居中</string>
<string name="manga_radio_disable">禁用</string>
<string name="manga_radio_enable">启用</string>
</resources>

View File

@@ -1190,8 +1190,23 @@
<string name="disable_manga_click_scroller">禁用点击翻页</string>
<string name="enable_auto_page_scroller">开启自动翻页</string>
<string name="manga_auto_page_speed">翻页速度 %s 秒</string>
<string name="manga_footer_config">页脚配置</string>
<string name="setting_manga_auto_page_speed">设置自动翻页速度</string>
<string name="book_reader_info_bar">页数. %1$d/%2$d 章节. %3$d/%4$d -> %5$s%%</string>
<string name="menu_download_after">Download the chapter after</string>
<string name="menu_download_all">Download all chapter</string>
<string name="manga_header_chapter">《章节和文案》隐藏</string>
<string name="manga_check_chapter_label">《章节.》文案</string>
<string name="manga_check_chapter">章节</string>
<string name="manga_header_page">《页数和文案》隐藏</string>
<string name="manga_check_page_label">《页数.》文案</string>
<string name="manga_check_page_number">页数</string>
<string name="manga_header_progress">《总进度和文案》隐藏</string>
<string name="manga_check_progress_label">《总进度.》文案</string>
<string name="manga_check_progress">总进度</string>
<string name="manga_header_footer">页脚</string>
<string name="manga_radio_left">靠左</string>
<string name="manga_radio_center">居中</string>
<string name="manga_radio_disable">禁用</string>
<string name="manga_radio_enable">启用</string>
</resources>