diff --git a/app/src/main/java/org/wikipedia/bridge/JavaScriptActionHandler.kt b/app/src/main/java/org/wikipedia/bridge/JavaScriptActionHandler.kt
index bca144b0592..970f2dd8f34 100644
--- a/app/src/main/java/org/wikipedia/bridge/JavaScriptActionHandler.kt
+++ b/app/src/main/java/org/wikipedia/bridge/JavaScriptActionHandler.kt
@@ -28,6 +28,43 @@ object JavaScriptActionHandler {
return "pcs.c1.Page.setMargins({ top:'${top}px', bottom:'${bottom}px' })"
}
+ private fun buildTextFormattingCss(): String {
+ val sb = StringBuilder()
+ val selectors = "body, .pcs-body, .mw-parser-output, .mw-parser-output p, .mw-parser-output li," +
+ " .mw-parser-output dd, .mw-parser-output td"
+ val rules = mutableListOf()
+ if (Prefs.isTextJustifyEnabled) {
+ rules.add("text-align: justify !important")
+ }
+ if (Prefs.isTextHyphenationEnabled) {
+ rules.add("-webkit-hyphens: auto !important")
+ rules.add("hyphens: auto !important")
+ rules.add("word-wrap: break-word !important")
+ rules.add("overflow-wrap: break-word !important")
+ }
+ if (rules.isNotEmpty()) {
+ sb.append("$selectors { ${rules.joinToString("; ")}; }")
+ }
+ return sb.toString()
+ }
+
+ fun setHorizontalMargins(multiplier: Int): String {
+ // multiplier 10 = default PCS behavior (no margin override)
+ // multiplier 9..0 = progressively wider content
+ return "(function() {" +
+ "var s = document.getElementById('app-margin-style');" +
+ "if (!s) { s = document.createElement('style'); s.id = 'app-margin-style'; document.head.appendChild(s); }" +
+ "if ($multiplier >= 10) { s.innerHTML = '${buildTextFormattingCss()}'; return; }" +
+ "s.innerHTML = '" +
+ "html, body { overflow-x: hidden !important; }" +
+ " body, .pcs-body, .content, .mw-body, #content, #bodyContent, .mw-parser-output, section" +
+ " { max-width: 100% !important; box-sizing: border-box !important; }" +
+ " body { padding-left: ${multiplier + 1}vw !important; padding-right: ${multiplier + 1}vw !important;" +
+ " margin-left: auto !important; margin-right: auto !important; }" +
+ " ${buildTextFormattingCss()}';" +
+ "})();"
+ }
+
fun getTextSelection(): String {
return "pcs.c1.InteractionHandling.getSelectionInfo()"
}
diff --git a/app/src/main/java/org/wikipedia/events/ChangeMarginSizeEvent.kt b/app/src/main/java/org/wikipedia/events/ChangeMarginSizeEvent.kt
new file mode 100644
index 00000000000..9eb11109c59
--- /dev/null
+++ b/app/src/main/java/org/wikipedia/events/ChangeMarginSizeEvent.kt
@@ -0,0 +1,3 @@
+package org.wikipedia.events
+
+class ChangeMarginSizeEvent
diff --git a/app/src/main/java/org/wikipedia/page/PageActivity.kt b/app/src/main/java/org/wikipedia/page/PageActivity.kt
index 5f142e64b47..e804d2a5cf4 100644
--- a/app/src/main/java/org/wikipedia/page/PageActivity.kt
+++ b/app/src/main/java/org/wikipedia/page/PageActivity.kt
@@ -54,6 +54,7 @@ import org.wikipedia.descriptions.DescriptionEditSuccessActivity
import org.wikipedia.edit.EditHandler
import org.wikipedia.edit.EditSectionActivity
import org.wikipedia.events.ArticleSavedOrDeletedEvent
+import org.wikipedia.events.ChangeMarginSizeEvent
import org.wikipedia.events.ChangeTextSizeEvent
import org.wikipedia.extensions.parcelableExtra
import org.wikipedia.gallery.GalleryActivity
@@ -210,6 +211,9 @@ class PageActivity : BaseActivity(), PageFragment.Callback, LinkPreviewDialog.Lo
is ChangeTextSizeEvent -> {
pageFragment.updateFontSize()
}
+ is ChangeMarginSizeEvent -> {
+ pageFragment.updateMargins()
+ }
is ArticleSavedOrDeletedEvent -> {
pageFragment.title?.run {
if (event.pages.any { it.apiTitle == prefixedText && it.lang == wikiSite.languageCode }) {
diff --git a/app/src/main/java/org/wikipedia/page/PageFragment.kt b/app/src/main/java/org/wikipedia/page/PageFragment.kt
index 50f47aa7bcb..95ce2f193e2 100644
--- a/app/src/main/java/org/wikipedia/page/PageFragment.kt
+++ b/app/src/main/java/org/wikipedia/page/PageFragment.kt
@@ -964,6 +964,7 @@ class PageFragment : Fragment(), BackPressedHandler, CommunicationBridge.Communi
// Explicitly set the top margin (even though it might have already been set in the setup
// handler), since the page metadata might have altered the lead image display state.
bridge.execute(JavaScriptActionHandler.setTopMargin(leadImagesHandler.topMargin))
+ bridge.execute(JavaScriptActionHandler.setHorizontalMargins(Prefs.marginSizeMultiplier))
bridge.execute(JavaScriptActionHandler.setFooter(model))
}
@@ -1053,6 +1054,10 @@ class PageFragment : Fragment(), BackPressedHandler, CommunicationBridge.Communi
webView.settings.defaultFontSize = app.getFontSize().toInt()
}
+ fun updateMargins() {
+ bridge.execute(JavaScriptActionHandler.setHorizontalMargins(Prefs.marginSizeMultiplier))
+ }
+
fun updateQuickActionsAndMenuOptions() {
if (!isAdded) {
return
diff --git a/app/src/main/java/org/wikipedia/settings/Prefs.kt b/app/src/main/java/org/wikipedia/settings/Prefs.kt
index abc065b6a4c..2a9d7008cbc 100644
--- a/app/src/main/java/org/wikipedia/settings/Prefs.kt
+++ b/app/src/main/java/org/wikipedia/settings/Prefs.kt
@@ -128,6 +128,18 @@ object Prefs {
get() = PrefsIoUtil.getInt(R.string.preference_key_text_size_multiplier, 0)
set(multiplier) = PrefsIoUtil.setInt(R.string.preference_key_text_size_multiplier, multiplier)
+ var marginSizeMultiplier
+ get() = PrefsIoUtil.getInt(R.string.preference_key_margin_size_multiplier, 10)
+ set(multiplier) = PrefsIoUtil.setInt(R.string.preference_key_margin_size_multiplier, multiplier)
+
+ var isTextJustifyEnabled
+ get() = PrefsIoUtil.getBoolean(R.string.preference_key_text_justify, true)
+ set(value) = PrefsIoUtil.setBoolean(R.string.preference_key_text_justify, value)
+
+ var isTextHyphenationEnabled
+ get() = PrefsIoUtil.getBoolean(R.string.preference_key_text_hyphenation, true)
+ set(value) = PrefsIoUtil.setBoolean(R.string.preference_key_text_hyphenation, value)
+
var editingTextSizeMultiplier
get() = PrefsIoUtil.getInt(R.string.preference_key_editing_text_size_multiplier, 0)
set(multiplier) = PrefsIoUtil.setInt(R.string.preference_key_editing_text_size_multiplier, multiplier)
diff --git a/app/src/main/java/org/wikipedia/theme/ThemeChooserDialog.kt b/app/src/main/java/org/wikipedia/theme/ThemeChooserDialog.kt
index 60a791929bb..6807f80e912 100644
--- a/app/src/main/java/org/wikipedia/theme/ThemeChooserDialog.kt
+++ b/app/src/main/java/org/wikipedia/theme/ThemeChooserDialog.kt
@@ -27,6 +27,7 @@ import org.wikipedia.activity.FragmentUtil
import org.wikipedia.analytics.eventplatform.AppearanceSettingInteractionEvent
import org.wikipedia.concurrency.FlowEventBus
import org.wikipedia.databinding.DialogThemeChooserBinding
+import org.wikipedia.events.ChangeMarginSizeEvent
import org.wikipedia.events.WebViewInvalidateEvent
import org.wikipedia.page.ExtendedBottomSheetDialogFragment
import org.wikipedia.settings.Prefs
@@ -101,6 +102,40 @@ class ThemeChooserDialog : ExtendedBottomSheetDialogFragment() {
override fun onStopTrackingTouch(seekBar: SeekBar) {}
})
+ binding.marginSizeSeekBar.value = Prefs.marginSizeMultiplier
+ binding.buttonDecreaseMarginSize.setOnClickListener {
+ val newValue = (Prefs.marginSizeMultiplier - 1).coerceAtLeast(resources.getInteger(R.integer.minMarginSizeMultiplier))
+ Prefs.marginSizeMultiplier = newValue
+ binding.marginSizeSeekBar.value = newValue
+ FlowEventBus.post(ChangeMarginSizeEvent())
+ }
+ binding.buttonIncreaseMarginSize.setOnClickListener {
+ val newValue = (Prefs.marginSizeMultiplier + 1).coerceAtMost(resources.getInteger(R.integer.maxMarginSizeMultiplier))
+ Prefs.marginSizeMultiplier = newValue
+ binding.marginSizeSeekBar.value = newValue
+ FlowEventBus.post(ChangeMarginSizeEvent())
+ }
+ binding.marginSizeSeekBar.setOnSeekBarChangeListener(object : OnSeekBarChangeListener {
+ override fun onProgressChanged(seekBar: SeekBar, value: Int, fromUser: Boolean) {
+ if (!fromUser) return
+ Prefs.marginSizeMultiplier = binding.marginSizeSeekBar.value
+ FlowEventBus.post(ChangeMarginSizeEvent())
+ }
+ override fun onStartTrackingTouch(seekBar: SeekBar) {}
+ override fun onStopTrackingTouch(seekBar: SeekBar) {}
+ })
+
+ binding.textJustifySwitch.isChecked = Prefs.isTextJustifyEnabled
+ binding.textJustifySwitch.setOnCheckedChangeListener { _, isChecked ->
+ Prefs.isTextJustifyEnabled = isChecked
+ FlowEventBus.post(ChangeMarginSizeEvent())
+ }
+ binding.textHyphenationSwitch.isChecked = Prefs.isTextHyphenationEnabled
+ binding.textHyphenationSwitch.setOnCheckedChangeListener { _, isChecked ->
+ Prefs.isTextHyphenationEnabled = isChecked
+ FlowEventBus.post(ChangeMarginSizeEvent())
+ }
+
binding.syntaxHighlightSwitch.setOnCheckedChangeListener { _, isChecked ->
Prefs.editSyntaxHighlightEnabled = isChecked
callback()?.onEditingPrefsChanged()
@@ -157,6 +192,10 @@ class ThemeChooserDialog : ExtendedBottomSheetDialogFragment() {
private fun updateForEditing() {
binding.themeChooserDarkModeDimImagesSwitch.isVisible = !isEditing
+ binding.marginSizeContainer.isVisible = !isEditing
+ binding.textFormattingDividerTop.isVisible = !isEditing
+ binding.textFormattingContainer.isVisible = !isEditing
+ binding.textFormattingDividerBottom.isVisible = !isEditing
binding.readingFocusModeContainer.isVisible = !isEditing
binding.themeChooserReadingFocusModeDescription.isVisible = !isEditing
binding.fontFamilyContainer.isVisible = !isEditing
diff --git a/app/src/main/java/org/wikipedia/views/ObservableWebView.kt b/app/src/main/java/org/wikipedia/views/ObservableWebView.kt
index 791a6b447fc..df1ebc6b0f5 100644
--- a/app/src/main/java/org/wikipedia/views/ObservableWebView.kt
+++ b/app/src/main/java/org/wikipedia/views/ObservableWebView.kt
@@ -192,6 +192,19 @@ class ObservableWebView : WebView {
FlowEventBus.post(INVALIDATE_EVENT)
}
+ override fun overScrollBy(deltaX: Int, deltaY: Int, scrollX: Int, scrollY: Int,
+ scrollRangeX: Int, scrollRangeY: Int, maxOverScrollX: Int,
+ maxOverScrollY: Int, isTouchEvent: Boolean): Boolean {
+ // Block horizontal scrolling entirely
+ return super.overScrollBy(0, deltaY, 0, scrollY, 0, scrollRangeY, 0,
+ maxOverScrollY, isTouchEvent)
+ }
+
+ override fun scrollTo(x: Int, y: Int) {
+ // Only allow vertical scrolling
+ super.scrollTo(0, y)
+ }
+
companion object {
private val INVALIDATE_EVENT = WebViewInvalidateEvent()
private val FAST_SCROLL_THRESHOLD = (1000 * densityScalar).toInt()
diff --git a/app/src/main/res/layout/dialog_theme_chooser.xml b/app/src/main/res/layout/dialog_theme_chooser.xml
index ff79643ab8f..f2b4f6b8c90 100644
--- a/app/src/main/res/layout/dialog_theme_chooser.xml
+++ b/app/src/main/res/layout/dialog_theme_chooser.xml
@@ -180,6 +180,118 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Редактиране
Режим на фокусиране при четене
Скрива функциите за редактиране и долната лента с инструменти при превъртане
+ Увеличаване на полетата
+ Намаляване на полетата
+ Полета
+ Подравняване
+ Сричкопренасяне
Оцветяване на синтаксиса
Показване номерата на редовете
Използване на моноширинен шрифт
diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index 794b58423c2..c102fc6d760 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -522,6 +522,11 @@
Editace
Soustředěné čtení
Skryje funkce editace a spodní panel nástrojů při posouvání
+ Zvětšit okraje
+ Zmenšit okraje
+ Okraje
+ Zarovnat
+ Dělení
Zvýraznění syntaxe
Zobrazit čísla řádků
Použít monospace font
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index fb1e65df267..88776df93ad 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -539,6 +539,11 @@
Bearbeiten
Modus Lesefokus
Blendet Bearbeitungsfunktionen und untere Symbolleiste beim Scrollen aus
+ Ränder vergrößern
+ Ränder verkleinern
+ Ränder
+ Blocksatz
+ Silbentrennung
Syntaxhervorhebung
Zeilennummern anzeigen
Monospace-Schriftarten verwenden
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index f88687aafa1..c4c53c3ef09 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -583,6 +583,11 @@
Edición
Modo de lectura con concentración
Oculta las funciones de edición y la barra de herramientas inferior al desplazarse
+ Aumentar márgenes
+ Reducir márgenes
+ Márgenes
+ Justificar
+ Separación
Resaltado de sintaxis
Mostrar números de línea
Usar fuente monoespaciada
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index b2b047ff068..0a3d5b45856 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -558,7 +558,12 @@
Lecture
Modification
Mode de focalisation sur la lecture
- Masque les fonctionnalités de modification et la barre d’outil en bas lors du défilement
+ Masque les fonctionnalités de modification et la barre d\'outil en bas lors du défilement
+ Augmenter les marges
+ Réduire les marges
+ Marges
+ Justifier
+ Coupure
Mise en évidence de la syntaxe
Afficher les numéros de ligne
Utiliser une police à chasse fixe
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 0054d98225f..ef6099377dd 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -545,6 +545,11 @@
Modifica
Modalità di messa a fuoco della lettura
Nasconde le funzioni di modifica e la barra degli strumenti in basso durante lo scorrimento
+ Aumenta margini
+ Riduci margini
+ Margini
+ Giustifica
+ Sillabazione
Evidenziazione della sintassi
Mostra i numeri di riga
Usa carattere a monospazio
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index 18560a75d38..2ac534a74f3 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -543,6 +543,11 @@
編集
閲覧集中モード
編集機能とスクロール時の下部のツールバーを隠します
+ 余白を広げる
+ 余白を狭める
+ 余白
+ 両端揃え
+ ハイフネーション
構文の強調
行番号を表示
等幅フォントを使用
diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml
index e43917e8d0f..0e70e88e9c1 100644
--- a/app/src/main/res/values-ko/strings.xml
+++ b/app/src/main/res/values-ko/strings.xml
@@ -510,6 +510,11 @@
편집
읽기 집중 모드
스크롤할 때 편집 기능과 아래 도구 모음을 숨깁니다
+ 여백 늘리기
+ 여백 줄이기
+ 여백
+ 양쪽 맞춤
+ 하이픈
문법 강조
줄 번호 보이기
고정폭 글꼴 사용
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index e96089fb253..7719f346d6d 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -532,6 +532,11 @@
Edycja
Tryb skupienia na czytaniu
Ukrywa funkcje edycji i dolny pasek narzędzi podczas przewijania
+ Zwiększ marginesy
+ Zmniejsz marginesy
+ Marginesy
+ Justowanie
+ Dzielenie
Podświetlanie składni
Pokaż numery linii
Użyj czcionki o stałej szerokości
diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml
index 392f829fb8d..68255d92170 100644
--- a/app/src/main/res/values-pt/strings.xml
+++ b/app/src/main/res/values-pt/strings.xml
@@ -508,6 +508,11 @@
Edição
Modo de foco de leitura
Oculta as funcionalidades de edição e a barra de ferramentas do fundo quando desliza uma página
+ Aumentar margens
+ Reduzir margens
+ Margens
+ Justificar
+ Hifenização
Destaque de sintaxe
Mostrar números de linha
Usar tipo de letra monoespaçada
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 785908a538a..9e8403ac601 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -579,6 +579,11 @@
Редактирование
Режим чтения
Скрывает функциональность редактирования и инструменты при скроллинге
+ Увеличить поля
+ Уменьшить поля
+ Поля
+ По ширине
+ Переносы
Подсветка синтаксиса
Показывать номера строк
Использовать моноширинный шрифт
diff --git a/app/src/main/res/values-sh/strings.xml b/app/src/main/res/values-sh/strings.xml
index 0c00f7033f7..64783e95405 100644
--- a/app/src/main/res/values-sh/strings.xml
+++ b/app/src/main/res/values-sh/strings.xml
@@ -407,6 +407,11 @@
Smanji veličinu teksta
Font
Čitanje
+ Povećaj margine
+ Smanji margine
+ Margine
+ Poravnanje
+ Rastavljanje
Uređivanje
Isticanje sintakse
Prikaži brojeve redova
diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml
index 3daf5628b2b..2963fe1e45a 100644
--- a/app/src/main/res/values-sk/strings.xml
+++ b/app/src/main/res/values-sk/strings.xml
@@ -474,6 +474,11 @@
Upraviť
Mód sústredeného čítania
Skryje funkcie úprav a spodný panel nástrojov pri skrolovaní
+ Zväčšiť okraje
+ Zmenšiť okraje
+ Okraje
+ Zarovnať
+ Delenie
Zvýraznenie syntaxe
Zobraziť čísla riadkov
Používať písmo monospace
diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml
index 6c2d45636d6..1f7550551a3 100644
--- a/app/src/main/res/values-sl/strings.xml
+++ b/app/src/main/res/values-sl/strings.xml
@@ -501,6 +501,11 @@
Urejanje
Način za branje
Ob pomikanju skrije možnosti urejanja in orodno vrstico na dnu
+ Povečaj robove
+ Zmanjšaj robove
+ Robovi
+ Poravnaj
+ Deljenje
Označevanje skladnje
Prikaži številke vrstic
Uporabi pisavo monospace
diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml
index 2de22a0c24d..deec4bd743d 100644
--- a/app/src/main/res/values-sr/strings.xml
+++ b/app/src/main/res/values-sr/strings.xml
@@ -485,6 +485,11 @@
Повећај величину текста
Смањи величину текста
%s (подразумевано)
+ Повећај маргине
+ Смањи маргине
+ Маргине
+ Поравнање
+ Преламање
Фонт
Читање
Уређивање
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
index bc33834c3de..37c8f775cb3 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -522,6 +522,11 @@
Редагування
Режим фокусування читання
Приховує функції редагування та нижню панель інструментів під час прокручування
+ Збільшити поля
+ Зменшити поля
+ Поля
+ По ширині
+ Перенесення
Виділення синтаксису
Показати номери рядків
Використати моноширинний шрифт
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 832062e8853..3652d30b73e 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -521,6 +521,11 @@
編輯
專注閱讀模式
隱藏編輯功能與在滾軸的底端工具列
+ 增大邊距
+ 減小邊距
+ 邊距
+ 兩端對齊
+ 斷詞
語法醒目標示
顯示行號
使用等寬字體
diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml
index 2cbe39f7108..b7f6d1a43b4 100644
--- a/app/src/main/res/values-zh/strings.xml
+++ b/app/src/main/res/values-zh/strings.xml
@@ -550,6 +550,11 @@
编辑
专注阅读模式
滚动时隐藏编辑功能和底部工具栏
+ 增大边距
+ 减小边距
+ 边距
+ 两端对齐
+ 断词
语法高亮
显示行号
使用等宽字体
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index 9bb9b6c162f..72f35097365 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -29,6 +29,9 @@
8
- 0.1
+ 0
+ 10
+
56dp
240dp
diff --git a/app/src/main/res/values/preference_keys.xml b/app/src/main/res/values/preference_keys.xml
index dc30d4dbf24..d7ff2834a84 100644
--- a/app/src/main/res/values/preference_keys.xml
+++ b/app/src/main/res/values/preference_keys.xml
@@ -5,6 +5,9 @@
remote_config
readingAppInstallID
textSizeMultiplier
+ marginSizeMultiplier
+ textJustify
+ textHyphenation
editingTextSizeMultiplier
colorTheme
previousColorTheme
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index c1480c84e55..2028f82355b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -506,6 +506,11 @@
Font
Reading
Editing
+ Increase margin size
+ Decrease margin size
+ Margin
+ Justify
+ Hyphenation
Reading focus mode
Hides edit features and bottom toolbar on scroll
Syntax highlighting