diff --git a/src/components/searchbar/index.js b/src/components/searchbar/index.js
index a0b195358..1ace29954 100644
--- a/src/components/searchbar/index.js
+++ b/src/components/searchbar/index.js
@@ -49,8 +49,6 @@ function searchBar($list, setHide, onhideCb, searchFunction) {
function hide() {
actionStack.remove("searchbar");
-
- if (!$list.parentElement) return;
if (typeof onhideCb === "function") onhideCb();
$list.content = children;
@@ -70,6 +68,12 @@ function searchBar($list, setHide, onhideCb, searchFunction) {
*/
async function searchNow() {
const val = $searchInput.value.toLowerCase();
+
+ if (!val) {
+ $list.content = children;
+ return;
+ }
+
let result;
if (searchFunction) {
@@ -89,7 +93,7 @@ function searchBar($list, setHide, onhideCb, searchFunction) {
}
$list.textContent = "";
- $list.append(...result);
+ $list.append(...buildSearchContent(result, val));
}
/**
@@ -103,6 +107,87 @@ function searchBar($list, setHide, onhideCb, searchFunction) {
return text.match(val, "i");
});
}
+
+ /**
+ * Keep grouped settings search results in section cards instead of flattening them.
+ * @param {HTMLElement[]} result
+ * @param {string} val
+ * @returns {HTMLElement[]}
+ */
+ function buildSearchContent(result, val) {
+ if (!val || !result.length) return result;
+
+ const groupedSections = [];
+ const sectionIndexByLabel = new Map();
+ let hasGroups = false;
+
+ result.forEach(($item) => {
+ const label = $item.dataset.searchGroup;
+ if (!label) {
+ groupedSections.push({
+ items: [$item],
+ type: "ungrouped",
+ });
+ return;
+ }
+
+ hasGroups = true;
+ const existingSectionIndex = sectionIndexByLabel.get(label);
+ if (existingSectionIndex !== undefined) {
+ groupedSections[existingSectionIndex].items.push($item);
+ return;
+ }
+
+ sectionIndexByLabel.set(label, groupedSections.length);
+ groupedSections.push({
+ items: [$item],
+ label,
+ type: "group",
+ });
+ });
+
+ if (!hasGroups) return result.map(cloneSearchItem);
+
+ const countLabel = `${result.length} ${
+ result.length === 1
+ ? strings["search result label singular"]
+ : strings["search result label plural"]
+ }`;
+ const content = [
+
{countLabel}
,
+ ];
+
+ groupedSections.forEach((section) => {
+ if (section.type === "ungrouped") {
+ content.push(...section.items.map(cloneSearchItem));
+ return;
+ }
+
+ content.push(
+
+ {section.label}
+
+ {section.items.map(cloneSearchItem)}
+
+ ,
+ );
+ });
+
+ return content;
+ }
+
+ /**
+ * Render search results without moving the original list items out of their groups.
+ * @param {HTMLElement} $item
+ * @returns {HTMLElement}
+ */
+ function cloneSearchItem($item) {
+ const $clone = $item.cloneNode(true);
+ $clone.addEventListener("click", () => {
+ $item.click();
+ });
+ return $clone;
+ }
}
export default searchBar;
diff --git a/src/components/settingsPage.js b/src/components/settingsPage.js
index 9134597d0..f7f3aebe8 100644
--- a/src/components/settingsPage.js
+++ b/src/components/settingsPage.js
@@ -1,4 +1,4 @@
-import alert from "dialogs/alert";
+import "./settingsPage.scss";
import colorPicker from "dialogs/color";
import prompt from "dialogs/prompt";
import select from "dialogs/select";
@@ -24,6 +24,13 @@ import searchBar from "./searchbar";
/**
* @typedef {Object} SettingsPageOptions
* @property {boolean} [preserveOrder] - If true, items are listed in the order provided instead of alphabetical
+ * @property {string} [pageClassName] - Extra classes to apply to the page element
+ * @property {string} [listClassName] - Extra classes to apply to the list element
+ * @property {string} [defaultSearchGroup] - Default search result group label for this page
+ * @property {boolean} [infoAsDescription] - Override subtitle behavior; defaults to true when valueInTail is enabled
+ * @property {boolean} [valueInTail] - Render item.value as a trailing control/value instead of subtitle
+ * @property {boolean} [groupByDefault] - Wrap uncategorized settings in a grouped section shell
+ * @property {"top"|"bottom"} [notePosition] - Render note before or after the settings list
*/
/**
@@ -45,29 +52,38 @@ export default function settingsPage(
let hideSearchBar = () => {};
const $page = Page(title);
$page.id = "settings";
+
+ if (options.pageClassName) {
+ $page.classList.add(...options.pageClassName.split(" ").filter(Boolean));
+ }
+
/**@type {HTMLDivElement} */
const $list = ;
- /**@type {ListItem} */
- let note;
- settings = settings.filter((setting) => {
- if ("note" in setting) {
- note = setting.note;
- return false;
- }
+ if (options.listClassName) {
+ $list.classList.add(...options.listClassName.split(" ").filter(Boolean));
+ }
- if (!setting.info) {
- Object.defineProperty(setting, "info", {
- get() {
- return strings[`info-${this.key.toLocaleLowerCase()}`];
- },
- });
- }
+ const normalized = normalizeSettings(settings);
+ settings = normalized.settings;
- return true;
+ /** DISCLAIMER: do not assign hideSearchBar directly because it can change */
+ $page.ondisconnect = () => hideSearchBar();
+ $page.onhide = () => {
+ helpers.hideAd();
+ actionStack.remove(title);
+ };
+
+ const state = listItems($list, settings, callback, {
+ defaultSearchGroup: title,
+ ...options,
});
+ let children = [...state.children];
+ $page.body = $list;
- if (type === "united" || (type === "separate" && settings.length > 5)) {
+ const searchableItems = state.searchItems;
+
+ if (shouldEnableSearch(type, settings.length)) {
const $search = ;
$search.onclick = () =>
searchBar(
@@ -75,52 +91,24 @@ export default function settingsPage(
(hide) => {
hideSearchBar = hide;
},
- type === "united"
- ? () => {
- Object.values(appSettings.uiSettings).forEach((page) => {
- page.restoreList();
- });
- }
- : null,
- type === "united"
- ? (key) => {
- const $items = [];
- Object.values(appSettings.uiSettings).forEach((page) => {
- $items.push(...page.search(key));
- });
- return $items;
- }
- : null,
+ type === "united" ? restoreAllSettingsPages : null,
+ createSearchHandler(type, state.searchItems),
);
$page.header.append($search);
}
- /** DISCLAIMER: do not assign hideSearchBar directly because it can change */
- $page.ondisconnect = () => hideSearchBar();
- $page.onhide = () => {
- helpers.hideAd();
- actionStack.remove(title);
- };
-
- listItems($list, settings, callback, options);
- $page.body = $list;
+ if (normalized.note) {
+ const $note = createNote(normalized.note);
- /**@type {HTMLElement[]} */
- const children = [...$list.children];
-
- if (note) {
- $page.append(
-
-
-
- {strings.info}
-
-
-
,
- );
+ if (options.notePosition === "top") {
+ children.unshift($note);
+ } else {
+ children.push($note);
+ }
}
+ $list.content = children;
$page.append();
return {
@@ -156,7 +144,7 @@ export default function settingsPage(
* @param {string} key
*/
search(key) {
- return children.filter((child) => {
+ return searchableItems.filter((child) => {
const text = child.textContent.toLowerCase();
return text.match(key, "i");
});
@@ -186,7 +174,10 @@ export default function settingsPage(
* @property {string} [info]
* @property {string} [value]
* @property {(value:string)=>string} [valueText]
+ * @property {string} [category]
+ * @property {string} [searchGroup]
* @property {boolean} [checkbox]
+ * @property {boolean} [chevron]
* @property {string} [prompt]
* @property {string} [promptType]
* @property {import('dialogs/prompt').PromptOptions} [promptOptions]
@@ -200,7 +191,11 @@ export default function settingsPage(
* @param {SettingsPageOptions} [options={}]
*/
function listItems($list, items, callback, options = {}) {
- const $items = [];
+ const renderedItems = [];
+ const $searchItems = [];
+ const useInfoAsDescription =
+ options.infoAsDescription ?? Boolean(options.valueInTail);
+ const itemByKey = new Map(items.map((item) => [item.key, item]));
// sort settings by text before rendering (unless preserveOrder is true)
if (!options.preserveOrder) {
@@ -210,63 +205,20 @@ function listItems($list, items, callback, options = {}) {
});
}
items.forEach((item) => {
- const $setting = Ref();
- const $settingName = Ref();
- /**@type {HTMLDivElement} */
- const $item = (
-
-
-
-
- {item.text?.capitalize?.(0) ?? item.text}
-
-
-
- );
-
- let $checkbox, $valueText;
-
- if (item.info) {
- $settingName.append(
- {
- alert(strings.info, item.info);
- }}
- >,
- );
- }
-
- if (item.checkbox !== undefined || typeof item.value === "boolean") {
- $checkbox = Checkbox("", item.checkbox || item.value);
- $item.appendChild($checkbox);
- $item.style.paddingRight = "10px";
- } else if (item.value !== undefined) {
- $valueText = ;
- setValueText($valueText, item.value, item.valueText?.bind(item));
- $setting.append($valueText);
- setColor($item, item.value);
- }
-
- if (Number.isInteger(item.index)) {
- $items.splice(item.index, 0, $item);
- } else {
- $items.push($item);
- }
-
+ const $item = createListItemElement(item, options, useInfoAsDescription);
+ insertRenderedItem(renderedItems, item, $item);
$item.addEventListener("click", onclick);
+ $searchItems.push($item);
});
- $list.content = $items;
+ const topLevelChildren = buildListContent(renderedItems, options);
+
+ $list.content = topLevelChildren;
+
+ return {
+ children: topLevelChildren,
+ searchItems: $searchItems,
+ };
/**
* Click handler for $list
@@ -274,58 +226,461 @@ function listItems($list, items, callback, options = {}) {
* @param {MouseEvent} e
*/
async function onclick(e) {
- const $target = e.target;
- const { key } = e.target.dataset;
+ const $target = e.currentTarget;
+ const { key } = $target.dataset;
- const item = items.find((item) => item.key === key);
+ const item = itemByKey.get(key);
if (!item) return;
+ const result = await resolveItemInteraction(item, $target);
+ if (result.shouldCallCallback === false) return;
+ if (!result.shouldUpdateValue)
+ return callback.call($target, key, item.value);
- const {
- select: options,
- prompt: promptText,
- color: selectColor,
- checkbox,
- file,
- folder,
- link,
- } = item;
- const { text, value, valueText } = item;
- const { promptType, promptOptions } = item;
-
- const $valueText = $target.get(".value");
- const $checkbox = $target.get(".input-checkbox");
- let res;
-
- try {
- if (options) {
- res = await select(text, options, {
- default: value,
- });
- } else if (checkbox !== undefined) {
- $checkbox.toggle();
- res = $checkbox.checked;
- } else if (promptText) {
- res = await prompt(promptText, value, promptType, promptOptions);
- if (res === null) return;
- } else if (file || folder) {
- const mode = file ? "file" : "folder";
- const { url } = await FileBrowser(mode);
- res = url;
- } else if (selectColor) {
- res = await colorPicker(value);
- } else if (link) {
- system.openInBrowser(link);
- return;
+ item.value = result.value;
+ updateItemValueDisplay($target, item, options, useInfoAsDescription);
+
+ callback.call($target, key, item.value);
+ }
+}
+
+function normalizeSettings(settings) {
+ /** @type {string | undefined} */
+ let note;
+ const normalizedSettings = settings.filter((setting) => {
+ if ("note" in setting) {
+ note = setting.note;
+ return false;
+ }
+
+ ensureSettingInfo(setting);
+ return true;
+ });
+
+ return {
+ note,
+ settings: normalizedSettings,
+ };
+}
+
+function ensureSettingInfo(setting) {
+ if (setting.info) return;
+
+ Object.defineProperty(setting, "info", {
+ get() {
+ return strings[`info-${this.key.toLocaleLowerCase()}`];
+ },
+ });
+}
+
+function shouldEnableSearch(type, settingsCount) {
+ return type === "united" || (type === "separate" && settingsCount > 5);
+}
+
+function restoreAllSettingsPages() {
+ Object.values(appSettings.uiSettings).forEach((page) => {
+ page.restoreList();
+ });
+}
+
+function createSearchHandler(type, searchItems) {
+ return (key) => {
+ if (type === "united") {
+ const $items = [];
+ Object.values(appSettings.uiSettings).forEach((page) => {
+ $items.push(...page.search(key));
+ });
+ return $items;
+ }
+
+ return searchItems.filter((item) => {
+ const text = item.textContent.toLowerCase();
+ return text.match(key, "i");
+ });
+ };
+}
+
+function createNote(note) {
+ return (
+
+
+
+ {strings.info}
+
+
+
+ );
+}
+
+function createListItemElement(item, options, useInfoAsDescription) {
+ const $setting = Ref();
+ const $tail = Ref();
+ const isCheckboxItem = isBooleanSetting(item);
+ const state = getItemDisplayState(item, useInfoAsDescription);
+ /**@type {HTMLDivElement} */
+ const $item = (
+
+
+
+
{item.text?.capitalize?.(0) ?? item.text}
+
+
+
+ );
+ const searchGroup =
+ item.searchGroup || item.category || options.defaultSearchGroup;
+
+ if (searchGroup) {
+ $item.dataset.searchGroup = searchGroup;
+ }
+
+ if (isCheckboxItem) {
+ const $checkbox = Checkbox("", item.checkbox || item.value);
+ $tail.el.appendChild($checkbox);
+ }
+
+ if (state.hasSubtitle) {
+ const $valueText = createSubtitleElement(item, state);
+ $setting.append($valueText);
+ $item.classList.add("has-subtitle");
+ if (!state.showInfoAsSubtitle) {
+ setColor($item, item.value);
+ }
+ } else {
+ $item.classList.add("compact");
+ }
+
+ if (shouldShowTrailingValue(item, options)) {
+ $item.classList.add("has-tail-value");
+ if (item.select) {
+ $item.classList.add("has-tail-select");
+ }
+ $tail.el.append(createTrailingValueDisplay(item));
+ }
+
+ if (shouldShowTailChevron(item)) {
+ $tail.el.append(
+ ,
+ );
+ }
+
+ if (!$tail.el.children.length) {
+ $tail.el.remove();
+ }
+
+ return $item;
+}
+
+function isBooleanSetting(item) {
+ return item.checkbox !== undefined || typeof item.value === "boolean";
+}
+
+function getItemDisplayState(item, useInfoAsDescription) {
+ const isCheckboxItem = isBooleanSetting(item);
+ const subtitle = isCheckboxItem
+ ? item.info
+ : getSubtitleText(item, useInfoAsDescription);
+ const showInfoAsSubtitle =
+ isCheckboxItem ||
+ useInfoAsDescription ||
+ (item.value === undefined && item.info);
+
+ return {
+ subtitle,
+ showInfoAsSubtitle,
+ hasSubtitle: subtitle !== undefined && subtitle !== null && subtitle !== "",
+ };
+}
+
+function createSubtitleElement(item, state) {
+ const $valueText = ;
+ setValueText(
+ $valueText,
+ state.subtitle,
+ state.showInfoAsSubtitle ? null : item.valueText?.bind(item),
+ );
+
+ if (state.showInfoAsSubtitle) {
+ $valueText.classList.add("setting-info");
+ }
+
+ return $valueText;
+}
+
+function shouldShowTrailingValue(item, options) {
+ return (
+ options.valueInTail &&
+ item.value !== undefined &&
+ item.checkbox === undefined &&
+ typeof item.value !== "boolean"
+ );
+}
+
+function createTrailingValueDisplay(item) {
+ const $trailingValueText = (
+
+ );
+ setValueText($trailingValueText, item.value, item.valueText?.bind(item));
+
+ return (
+
+ {$trailingValueText}
+ {item.select
+ ?
+ : null}
+
+ );
+}
+
+function shouldShowTailChevron(item) {
+ return (
+ item.chevron ||
+ (!item.select &&
+ Boolean(item.prompt || item.file || item.folder || item.link))
+ );
+}
+
+function insertRenderedItem(renderedItems, item, $item) {
+ if (Number.isInteger(item.index)) {
+ renderedItems.splice(item.index, 0, { item, $item });
+ return;
+ }
+
+ renderedItems.push({ item, $item });
+}
+
+function buildListContent(renderedItems, options) {
+ const $content = [];
+ /** @type {HTMLElement | null} */
+ let $currentSectionCard = null;
+ let currentCategory = null;
+
+ renderedItems.forEach(({ item, $item }) => {
+ const category =
+ item.category?.trim() || (options.groupByDefault ? "__default__" : "");
+
+ if (!category) {
+ currentCategory = null;
+ $currentSectionCard = null;
+ $content.push($item);
+ return;
+ }
+
+ if (currentCategory !== category || !$currentSectionCard) {
+ currentCategory = category;
+ const section = createSectionElements(category);
+ $currentSectionCard = section.$card;
+ $content.push(section.$section);
+ }
+
+ $currentSectionCard.append($item);
+ });
+
+ return $content.length ? $content : renderedItems.map(({ $item }) => $item);
+}
+
+function createSectionElements(category) {
+ const shouldShowLabel = category !== "__default__";
+ const $label = shouldShowLabel
+ ? {category}
+ : null;
+ const $card = ;
+ return {
+ $card,
+ $section: (
+
+ ),
+ };
+}
+
+async function resolveItemInteraction(item, $target) {
+ const {
+ select: selectOptions,
+ prompt: promptText,
+ color: selectColor,
+ checkbox,
+ file,
+ folder,
+ link,
+ text,
+ value,
+ promptType,
+ promptOptions,
+ } = item;
+
+ try {
+ if (selectOptions) {
+ const selectedValue = await select(text, selectOptions, {
+ default: value,
+ });
+
+ return {
+ shouldUpdateValue: selectedValue !== undefined,
+ value: selectedValue,
+ };
+ }
+
+ if (checkbox !== undefined) {
+ const $checkbox = $target.get(".input-checkbox");
+ $checkbox.toggle();
+ return {
+ shouldUpdateValue: true,
+ value: $checkbox.checked,
+ };
+ }
+
+ if (promptText) {
+ const promptedValue = await prompt(
+ promptText,
+ value,
+ promptType,
+ promptOptions,
+ );
+ if (promptedValue === null) {
+ return {
+ shouldUpdateValue: false,
+ shouldCallCallback: false,
+ };
}
- } catch (error) {
- window.log("error", error);
+
+ return {
+ shouldUpdateValue: true,
+ value: promptedValue,
+ };
}
- item.value = res;
- setValueText($valueText, res, valueText?.bind(item));
- setColor($target, res);
- callback.call($target, key, item.value);
+ if (file || folder) {
+ const mode = file ? "file" : "folder";
+ const { url } = await FileBrowser(mode);
+ return {
+ shouldUpdateValue: true,
+ value: url,
+ };
+ }
+
+ if (selectColor) {
+ const color = await colorPicker(value);
+ return {
+ shouldUpdateValue: true,
+ value: color,
+ };
+ }
+
+ if (link) {
+ system.openInBrowser(link);
+ return {
+ shouldUpdateValue: false,
+ shouldCallCallback: false,
+ };
+ }
+ } catch (error) {
+ window.log("error", error);
+ }
+
+ return {
+ shouldUpdateValue: false,
+ shouldCallCallback: true,
+ };
+}
+
+function updateItemValueDisplay($target, item, options, useInfoAsDescription) {
+ if (options.valueInTail) {
+ syncTrailingValueDisplay($target, item, options);
+ } else {
+ syncInlineValueDisplay($target, item, useInfoAsDescription);
}
+
+ setColor($target, item.value);
+}
+
+function syncTrailingValueDisplay($target, item, options) {
+ const shouldRenderTrailingValue = shouldShowTrailingValue(item, options);
+ let $tail = $target.get(".setting-tail");
+ let $valueDisplay = $target.get(".setting-value-display");
+
+ if (!shouldRenderTrailingValue) {
+ $valueDisplay?.remove();
+ $target.classList.remove("has-tail-value", "has-tail-select");
+ if ($tail && !$tail.children.length) {
+ $tail.remove();
+ }
+ return;
+ }
+
+ if (!$tail) {
+ $tail = ;
+ $target.append($tail);
+ }
+
+ if (!$valueDisplay) {
+ $valueDisplay = createTrailingValueDisplay(item);
+ const $chevron = $tail.get(".settings-chevron");
+ if ($chevron) {
+ $tail.insertBefore($valueDisplay, $chevron);
+ } else {
+ $tail.append($valueDisplay);
+ }
+ }
+
+ const $trailingValueText = $valueDisplay.get(".setting-trailing-value");
+ setValueText($trailingValueText, item.value, item.valueText?.bind(item));
+ $target.classList.add("has-tail-value");
+ $target.classList.toggle("has-tail-select", Boolean(item.select));
+}
+
+/**
+ * Keeps the inline subtitle/value block in sync when a setting value changes.
+ * @param {HTMLElement} $target
+ * @param {ListItem} item
+ * @param {boolean} useInfoAsDescription
+ */
+function syncInlineValueDisplay($target, item, useInfoAsDescription) {
+ const state = getItemDisplayState(item, useInfoAsDescription);
+ let $valueText = $target.get(".value");
+ const $container = $target.get(".container");
+
+ if (!$container) return;
+
+ if (!state.hasSubtitle) {
+ $valueText?.remove();
+ $target.classList.remove("has-subtitle");
+ $target.classList.add("compact");
+ return;
+ }
+
+ if (!$valueText) {
+ $valueText = ;
+ $container.append($valueText);
+ }
+
+ $valueText.classList.toggle("setting-info", state.showInfoAsSubtitle);
+ setValueText(
+ $valueText,
+ state.subtitle,
+ state.showInfoAsSubtitle ? null : item.valueText?.bind(item),
+ );
+ $target.classList.add("has-subtitle");
+ $target.classList.remove("compact");
+}
+
+function getSubtitleText(item, useInfoAsDescription) {
+ if (useInfoAsDescription) {
+ return item.info;
+ }
+
+ return item.value ?? item.info;
}
/**
@@ -357,10 +712,13 @@ function setValueText($valueText, value, valueText) {
}
if (typeof value === "string") {
- if (value.match("\n")) [value] = value.split("\n");
+ const shouldPreserveFullText = $valueText.classList.contains("value");
+ if (!shouldPreserveFullText) {
+ if (value.includes("\n")) [value] = value.split("\n");
- if (value.length > 47) {
- value = value.slice(0, 47) + "...";
+ if (value.length > 47) {
+ value = value.slice(0, 47) + "...";
+ }
}
}
diff --git a/src/components/settingsPage.scss b/src/components/settingsPage.scss
new file mode 100644
index 000000000..aba4f617f
--- /dev/null
+++ b/src/components/settingsPage.scss
@@ -0,0 +1,807 @@
+@mixin settings-page-shell($list-selector) {
+ #{$list-selector} {
+ display: flex;
+ flex-direction: column;
+ gap: 1.2rem;
+ width: 100%;
+ max-width: 48rem;
+ margin: 0 auto;
+ padding: 0.5rem 0 5.5rem;
+ box-sizing: border-box;
+ background: var(--secondary-color);
+ }
+
+ .settings-section {
+ display: flex;
+ flex-direction: column;
+ gap: 0;
+ width: 100%;
+ }
+
+ .settings-search-summary {
+ padding: 0.2rem 1rem;
+ font-size: 0.84rem;
+ font-weight: 600;
+ line-height: 1.35;
+ color: var(--secondary-text-color);
+ color: color-mix(in srgb, var(--secondary-text-color), transparent 18%);
+ }
+
+ .settings-section-label {
+ padding: 0.5rem 1rem 0.45rem;
+ font-size: 0.84rem;
+ font-weight: 600;
+ line-height: 1.3;
+ color: color-mix(in srgb, var(--active-color), transparent 18%);
+ }
+
+ .settings-section-card {
+ width: 100%;
+ overflow: hidden;
+ box-sizing: border-box;
+ }
+}
+
+@mixin settings-icon-reset {
+ .icon {
+ &:active,
+ &.active {
+ transform: none;
+ background-color: transparent !important;
+ }
+ }
+}
+
+wc-page.main-settings-page {
+ background: var(--secondary-color);
+ @include settings-page-shell(".main-settings-list");
+
+ .main-settings-list > .list-item,
+ .settings-section-card > .list-item {
+ display: flex;
+ width: 100%;
+ min-height: 64px;
+ margin: 0;
+ padding: 0.75rem 1rem;
+ box-sizing: border-box;
+ align-items: center;
+ gap: 0.85rem;
+ background: transparent;
+ cursor: pointer;
+
+ &.no-leading-icon {
+ gap: 0;
+ }
+
+ &:not(:last-of-type) {
+ border-bottom: 1px solid var(--border-color);
+ border-bottom: 1px solid color-mix(in srgb, var(--border-color), transparent 20%);
+ }
+
+ &:focus,
+ &:active {
+ background: var(--popup-background-color);
+ background: color-mix(in srgb, var(--secondary-color), var(--popup-text-color) 4%);
+ }
+
+ > .icon.no-icon {
+ width: 0;
+ min-width: 0;
+ height: 0;
+ margin: 0;
+ }
+
+ > .icon:first-child:not(.no-icon) {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 1.6rem;
+ min-width: 1.6rem;
+ height: 1.6rem;
+ font-size: 1.3rem;
+ color: var(--secondary-text-color);
+ color: color-mix(in srgb, var(--secondary-text-color), transparent 18%);
+ }
+
+ > .container {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ min-width: 0;
+ overflow: visible;
+ gap: 0.2rem;
+
+ > .text {
+ display: block;
+ flex: none;
+ min-width: 0;
+ font-size: 1rem;
+ line-height: 1.3;
+ font-weight: 600;
+ color: var(--popup-text-color);
+ }
+
+ > .value {
+ flex: none;
+ font-size: 0.82rem;
+ line-height: 1.35;
+ opacity: 1;
+ color: var(--secondary-text-color);
+ color: color-mix(in srgb, var(--secondary-text-color), transparent 30%);
+ text-transform: none;
+ white-space: normal;
+ overflow: visible;
+ overflow-wrap: anywhere;
+ }
+ }
+
+ &.compact {
+ min-height: 56px;
+ }
+ }
+
+ .main-settings-list .settings-chevron {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 1.2rem;
+ min-width: 1.2rem;
+ height: 1.2rem;
+ margin-left: 0.35rem;
+ font-size: 1.1rem;
+ color: var(--secondary-text-color);
+ color: color-mix(in srgb, var(--secondary-text-color), transparent 40%);
+ }
+
+ .settings-search-section .list-item {
+ > .container {
+ padding-right: 0.35rem;
+ gap: 0.18rem;
+ }
+
+ > .setting-tail {
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ flex-shrink: 0;
+ min-height: 1.65rem;
+ gap: 0.32rem;
+ margin-left: 0.9rem;
+ align-self: center;
+ }
+
+ &.has-subtitle > .container {
+ gap: 0.24rem;
+ padding-top: 0.14rem;
+ padding-right: 0.6rem;
+ }
+
+ &.has-subtitle.has-tail-select > .container {
+ padding-right: 0.95rem;
+ }
+
+ &.compact > .container {
+ align-self: center;
+ justify-content: center;
+ gap: 0;
+ padding-top: 0;
+ }
+
+ &.compact > .setting-tail {
+ align-self: center;
+ }
+ }
+
+ .settings-search-section .setting-value-display {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.15rem;
+ min-height: auto;
+ padding: 0;
+ border: none;
+ border-radius: 0;
+ background: transparent;
+ color: var(--secondary-text-color);
+ color: color-mix(in srgb, var(--secondary-text-color), transparent 18%);
+ box-sizing: border-box;
+
+ &.is-select {
+ min-width: clamp(6.75rem, 30vw, 8.5rem);
+ max-width: min(45vw, 11.5rem);
+ min-height: 2.35rem;
+ padding: 0 0.8rem 0 0.95rem;
+ gap: 0.55rem;
+ justify-content: space-between;
+ border: 1px solid var(--border-color);
+ border: 1px solid color-mix(in srgb, var(--border-color), transparent 12%);
+ border-radius: 0.56rem;
+ background: color-mix(
+ in srgb,
+ var(--secondary-color),
+ var(--popup-background-color) 42%
+ );
+ box-shadow:
+ inset 0 0 0 1px color-mix(in srgb, var(--border-color), transparent 44%),
+ 0 1px 2px rgba(0, 0, 0, 0.12);
+ }
+ }
+
+ .settings-search-section .setting-trailing-value {
+ font-size: 0.88rem;
+ line-height: 1.2;
+ color: inherit;
+ text-transform: none;
+ white-space: nowrap;
+
+ &.is-select {
+ flex: 1;
+ min-width: 0;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ font-size: 0.94rem;
+ font-weight: 500;
+ letter-spacing: -0.01em;
+ color: color-mix(in srgb, var(--popup-text-color), transparent 14%);
+ }
+ }
+
+ .settings-search-section .setting-value-icon,
+ .settings-search-section .settings-chevron,
+ .main-settings-list .settings-chevron {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: var(--secondary-text-color);
+ color: color-mix(in srgb, var(--secondary-text-color), transparent 40%);
+ }
+
+ .settings-search-section .setting-value-icon {
+ width: 1rem;
+ min-width: 1rem;
+ height: 1rem;
+ font-size: 1rem;
+
+ .setting-value-display.is-select & {
+ width: 0.95rem;
+ min-width: 0.95rem;
+ height: 0.95rem;
+ font-size: 1rem;
+ color: color-mix(in srgb, var(--secondary-text-color), transparent 22%);
+ }
+ }
+
+ .settings-search-section .settings-chevron,
+ .main-settings-list .settings-chevron {
+ width: 1.2rem;
+ min-width: 1.2rem;
+ height: 1.2rem;
+ margin-left: 0.1rem;
+ font-size: 1.1rem;
+ line-height: 1;
+ }
+
+ .settings-search-section .input-checkbox {
+ display: inline-flex;
+ align-items: center;
+ justify-content: flex-end;
+ line-height: 0;
+
+ span:last-child {
+ display: none;
+ }
+
+ .box {
+ width: 2.8rem !important;
+ height: 1.65rem !important;
+ margin: 0;
+ border: 1px solid var(--border-color);
+ border: 1px solid color-mix(in srgb, var(--border-color), transparent 6%);
+ border-radius: 999px;
+ background: var(--popup-background-color);
+ background: color-mix(
+ in srgb,
+ var(--secondary-color),
+ var(--popup-background-color) 30%
+ );
+ transition:
+ background-color 160ms ease,
+ border-color 160ms ease,
+ box-shadow 180ms ease;
+
+ &::after {
+ width: 1.25rem;
+ height: 1.25rem;
+ margin: 0.14rem;
+ border-radius: 999px;
+ background: var(--popup-text-color);
+ background: color-mix(
+ in srgb,
+ var(--popup-text-color),
+ var(--popup-background-color) 18%
+ );
+ opacity: 1;
+ box-shadow:
+ 0 0 0 1px color-mix(in srgb, var(--border-color), transparent 34%),
+ 0 1px 3px rgba(0, 0, 0, 0.22);
+ transition:
+ transform 180ms cubic-bezier(0.2, 0.9, 0.3, 1),
+ background-color 160ms ease,
+ box-shadow 180ms ease;
+ }
+ }
+
+ input:checked + .box {
+ background: var(--button-background-color);
+ border-color: color-mix(in srgb, var(--button-background-color), transparent 10%);
+ box-shadow: inset 0 0 0 1px
+ color-mix(in srgb, var(--button-background-color), transparent 12%);
+ }
+
+ input:checked + .box::after {
+ transform: translateX(1.12rem);
+ background: var(--button-text-color);
+ opacity: 1;
+ box-shadow: 0 2px 8px color-mix(in srgb, var(--button-background-color), transparent 55%);
+ }
+
+ input:not(:checked) + .box::after {
+ opacity: 1;
+ }
+ }
+
+ .settings-search-section
+ .list-item.has-tail-select:focus
+ .setting-value-display.is-select,
+ .settings-search-section
+ .list-item.has-tail-select:active
+ .setting-value-display.is-select {
+ border-color: color-mix(in srgb, var(--active-color), transparent 48%);
+ background: color-mix(
+ in srgb,
+ var(--popup-background-color),
+ var(--active-color) 9%
+ );
+ }
+
+ @media screen and (min-width: 768px) {
+ .main-settings-list {
+ padding-left: 0.5rem;
+ padding-right: 0.5rem;
+ }
+ }
+
+ @media screen and (max-width: 480px) {
+ .settings-search-section .setting-trailing-value {
+ max-width: 7rem;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ .settings-search-section .setting-value-display.is-select {
+ min-width: 6.25rem;
+ max-width: 9rem;
+ padding-left: 0.85rem;
+ padding-right: 0.7rem;
+ }
+ }
+
+ @include settings-icon-reset;
+}
+
+wc-page.detail-settings-page {
+ background: var(--secondary-color);
+ @include settings-page-shell(".detail-settings-list");
+
+ .detail-settings-list > .list-item,
+ .settings-section-card > .list-item {
+ display: flex;
+ width: 100%;
+ margin: 0;
+ padding: 0.75rem 1rem;
+ min-height: 3.2rem;
+ box-sizing: border-box;
+ align-items: center;
+ gap: 0.85rem;
+ background: transparent;
+ cursor: pointer;
+ transition: background-color 140ms ease;
+
+ &.compact {
+ align-items: center;
+ }
+
+ &.no-leading-icon {
+ gap: 0;
+ }
+
+ &:not(:last-of-type) {
+ border-bottom: 1px solid var(--border-color);
+ border-bottom: 1px solid color-mix(in srgb, var(--border-color), transparent 20%);
+ }
+
+ &:focus,
+ &:active {
+ background: var(--popup-background-color);
+ background: color-mix(in srgb, var(--secondary-color), var(--popup-text-color) 4%);
+ }
+
+ > .icon.no-icon {
+ width: 0;
+ min-width: 0;
+ height: 0;
+ margin: 0;
+ }
+
+ > .icon:first-child:not(.no-icon) {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 1.4rem;
+ min-width: 1.4rem;
+ height: 1.4rem;
+ font-size: 1.15rem;
+ color: var(--secondary-text-color);
+ color: color-mix(in srgb, var(--secondary-text-color), transparent 18%);
+ }
+
+ > .container {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ min-width: 0;
+ overflow: visible;
+ gap: 0.18rem;
+ padding-right: 0.35rem;
+
+ > .text {
+ display: flex;
+ align-items: center;
+ flex: none;
+ min-width: 0;
+ font-size: 1rem;
+ line-height: 1.2;
+ font-weight: 600;
+ color: var(--popup-text-color);
+ }
+
+ > .value {
+ flex: none;
+ font-size: 0.82rem;
+ line-height: 1.35;
+ opacity: 1;
+ color: var(--secondary-text-color);
+ color: color-mix(in srgb, var(--secondary-text-color), transparent 30%);
+ text-transform: none;
+ white-space: normal;
+ overflow: visible;
+ overflow-wrap: anywhere;
+ }
+ }
+
+ > .setting-tail {
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ flex-shrink: 0;
+ min-height: 1.65rem;
+ gap: 0.32rem;
+ margin-left: 0.9rem;
+ align-self: center;
+ }
+ }
+
+ .detail-settings-list > .list-item.has-subtitle > .container,
+ .settings-section-card > .list-item.has-subtitle > .container {
+ gap: 0.24rem;
+ padding-top: 0.14rem;
+ padding-right: 0.6rem;
+ }
+
+ .detail-settings-list > .list-item.has-subtitle.has-tail-select > .container,
+ .settings-section-card > .list-item.has-subtitle.has-tail-select > .container {
+ padding-right: 0.95rem;
+ }
+
+ .detail-settings-list > .list-item.compact > .container,
+ .settings-section-card > .list-item.compact > .container {
+ align-self: center;
+ justify-content: center;
+ gap: 0;
+ padding-top: 0;
+ }
+
+ .detail-settings-list > .list-item.compact > .setting-tail,
+ .settings-section-card > .list-item.compact > .setting-tail {
+ align-self: center;
+ }
+
+ .setting-value-display {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.15rem;
+ min-height: auto;
+ padding: 0;
+ border: none;
+ border-radius: 0;
+ background: transparent;
+ color: var(--secondary-text-color);
+ color: color-mix(in srgb, var(--secondary-text-color), transparent 18%);
+ box-sizing: border-box;
+
+ &.is-select {
+ min-width: clamp(6.75rem, 30vw, 8.5rem);
+ max-width: min(45vw, 11.5rem);
+ min-height: 2.35rem;
+ padding: 0 0.8rem 0 0.95rem;
+ gap: 0.55rem;
+ justify-content: space-between;
+ border: 1px solid var(--border-color);
+ border: 1px solid color-mix(in srgb, var(--border-color), transparent 12%);
+ border-radius: 0.56rem;
+ background: color-mix(
+ in srgb,
+ var(--secondary-color),
+ var(--popup-background-color) 42%
+ );
+ box-shadow:
+ inset 0 0 0 1px color-mix(in srgb, var(--border-color), transparent 44%),
+ 0 1px 2px rgba(0, 0, 0, 0.12);
+ }
+ }
+
+ .setting-trailing-value {
+ font-size: 0.88rem;
+ line-height: 1.2;
+ color: inherit;
+ text-transform: none;
+ white-space: nowrap;
+
+ &.is-select {
+ flex: 1;
+ min-width: 0;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ font-size: 0.94rem;
+ font-weight: 500;
+ letter-spacing: -0.01em;
+ color: color-mix(in srgb, var(--popup-text-color), transparent 14%);
+ }
+ }
+
+ .setting-value-icon,
+ .settings-chevron {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: var(--secondary-text-color);
+ color: color-mix(in srgb, var(--secondary-text-color), transparent 40%);
+ }
+
+ .setting-value-icon {
+ width: 1rem;
+ min-width: 1rem;
+ height: 1rem;
+ font-size: 1rem;
+
+ .setting-value-display.is-select & {
+ width: 0.95rem;
+ min-width: 0.95rem;
+ height: 0.95rem;
+ font-size: 1rem;
+ color: color-mix(in srgb, var(--secondary-text-color), transparent 22%);
+ }
+ }
+
+ .settings-chevron {
+ width: 1.2rem;
+ min-width: 1.2rem;
+ height: 1.2rem;
+ margin-left: 0.1rem;
+ font-size: 1.1rem;
+ line-height: 1;
+ }
+
+ .input-checkbox {
+ display: inline-flex;
+ align-items: center;
+ justify-content: flex-end;
+ line-height: 0;
+
+ span:last-child {
+ display: none;
+ }
+
+ .box {
+ width: 2.8rem !important;
+ height: 1.65rem !important;
+ margin: 0;
+ border: 1px solid var(--border-color);
+ border: 1px solid color-mix(in srgb, var(--border-color), transparent 6%);
+ border-radius: 999px;
+ background: var(--popup-background-color);
+ background: color-mix(
+ in srgb,
+ var(--secondary-color),
+ var(--popup-background-color) 30%
+ );
+ transition:
+ background-color 160ms ease,
+ border-color 160ms ease,
+ box-shadow 180ms ease;
+
+ &::after {
+ width: 1.25rem;
+ height: 1.25rem;
+ margin: 0.14rem;
+ border-radius: 999px;
+ background: var(--popup-text-color);
+ background: color-mix(
+ in srgb,
+ var(--popup-text-color),
+ var(--popup-background-color) 18%
+ );
+ opacity: 1;
+ box-shadow:
+ 0 0 0 1px var(--border-color),
+ 0 1px 3px rgba(0, 0, 0, 0.22);
+ box-shadow:
+ 0 0 0 1px color-mix(in srgb, var(--border-color), transparent 34%),
+ 0 1px 3px rgba(0, 0, 0, 0.22);
+ transition:
+ transform 180ms cubic-bezier(0.2, 0.9, 0.3, 1),
+ background-color 160ms ease,
+ box-shadow 180ms ease;
+ }
+ }
+
+ input:checked + .box {
+ background: var(--button-background-color);
+ border-color: var(--button-background-color);
+ border-color: color-mix(in srgb, var(--button-background-color), transparent 10%);
+ box-shadow: inset 0 0 0 1px var(--button-background-color);
+ box-shadow: inset 0 0 0 1px
+ color-mix(in srgb, var(--button-background-color), transparent 12%);
+ }
+
+ input:checked + .box::after {
+ transform: translateX(1.12rem);
+ background: var(--button-text-color);
+ opacity: 1;
+ box-shadow: 0 2px 8px var(--button-background-color);
+ box-shadow: 0 2px 8px color-mix(in srgb, var(--button-background-color), transparent 55%);
+ }
+
+ input:not(:checked) + .box::after {
+ opacity: 1;
+ }
+ }
+
+ .note {
+ display: flex;
+ align-items: flex-start;
+ gap: 0.6rem;
+ width: auto;
+ box-sizing: border-box;
+ margin: 0.25rem 0.75rem;
+ padding: 0.9rem 1rem;
+ border: 1px solid var(--active-color);
+ border: 1px solid color-mix(in srgb, var(--active-color), transparent 60%);
+ border-radius: 10px;
+ background: var(--popup-background-color);
+ background: color-mix(in srgb, var(--popup-background-color), var(--active-color) 8%);
+
+ .note-title {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-shrink: 0;
+ height: auto;
+ padding: 0;
+ background: transparent;
+ text-transform: none;
+
+ > .icon {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ width: 1.15rem;
+ min-width: 1.15rem;
+ height: 1.15rem;
+ background: transparent;
+ color: var(--active-color);
+ color: color-mix(in srgb, var(--active-color), transparent 10%);
+ font-size: 1.1rem;
+ margin-top: 0.12rem;
+ }
+
+ > span:last-child {
+ display: none;
+ }
+ }
+
+ p {
+ margin: 0;
+ padding: 0;
+ font-size: 0.84rem;
+ line-height: 1.55;
+ color: var(--secondary-text-color);
+ color: color-mix(in srgb, var(--secondary-text-color), transparent 8%);
+ }
+ }
+
+ @media screen and (max-width: 480px) {
+ .setting-trailing-value {
+ max-width: 7rem;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ .setting-value-display.is-select {
+ min-width: 6.25rem;
+ max-width: 9rem;
+ padding-left: 0.85rem;
+ padding-right: 0.7rem;
+ }
+ }
+
+ .detail-settings-list > .list-item.has-tail-select:focus .setting-value-display.is-select,
+ .detail-settings-list > .list-item.has-tail-select:active .setting-value-display.is-select,
+ .settings-section-card
+ > .list-item.has-tail-select:focus
+ .setting-value-display.is-select,
+ .settings-section-card
+ > .list-item.has-tail-select:active
+ .setting-value-display.is-select {
+ border-color: color-mix(in srgb, var(--active-color), transparent 48%);
+ background: color-mix(
+ in srgb,
+ var(--popup-background-color),
+ var(--active-color) 9%
+ );
+ }
+
+ @include settings-icon-reset;
+}
+
+wc-page.detail-settings-page.formatter-settings-page {
+ .detail-settings-list > .list-item,
+ .settings-section-card > .list-item {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+
+ &.compact {
+ min-height: 3.5rem;
+ padding-top: 0.18rem;
+ padding-bottom: 0.18rem;
+ }
+
+ &.has-subtitle {
+ min-height: 4.5rem;
+ padding-top: 0.74rem;
+ padding-bottom: 0.74rem;
+ }
+
+ > .icon:first-child:not(.no-icon) {
+ width: 1.1rem;
+ min-width: 1.1rem;
+ height: 1.1rem;
+ margin-right: 0.7rem;
+ font-size: 1rem;
+ }
+
+ > .container {
+ gap: 0.2rem;
+ }
+
+ > .container > .value {
+ -webkit-line-clamp: unset;
+ }
+ }
+
+ .detail-settings-list > .list-item.compact > .container,
+ .settings-section-card > .list-item.compact > .container,
+ .detail-settings-list > .list-item.compact > .setting-tail,
+ .settings-section-card > .list-item.compact > .setting-tail {
+ align-self: center;
+ }
+}
diff --git a/src/components/sidebar/style.scss b/src/components/sidebar/style.scss
index 9f5d53b0a..87d84afa6 100644
--- a/src/components/sidebar/style.scss
+++ b/src/components/sidebar/style.scss
@@ -288,6 +288,7 @@ body.no-animation {
input {
color: rgb(255, 255, 255);
color: var(--primary-text-color);
+ border: solid 1px var(--border-color);
border: solid 1px color-mix(in srgb, var(--border-color) 70%, transparent);
border-radius: 8px;
height: 30px;
@@ -300,6 +301,7 @@ body.no-animation {
&:focus {
border-color: var(--border-color) !important;
+ background: var(--secondary-color);
background: color-mix(in srgb, var(--secondary-color) 10%, transparent);
box-shadow: 0 0 0 2px var(---box-shadow-color);
}
@@ -365,6 +367,7 @@ body.no-animation {
.badge {
display: inline-flex;
align-items: center;
+ background-color: var(--popup-background-color);
background-color: color-mix(in srgb,
var(--error-text-color) 20%,
transparent);
@@ -379,6 +382,7 @@ body.no-animation {
.user-menu-email {
font-size: 12px;
+ color: var(--popup-text-color);
color: color-mix(in srgb, var(--popup-text-color) 70%, transparent);
}
}
@@ -400,4 +404,4 @@ body.no-animation {
background-color: var(--border-color);
margin: 4px 0;
}
-}
\ No newline at end of file
+}
diff --git a/src/lang/ar-ye.json b/src/lang/ar-ye.json
index 5279bc0af..372e72c9d 100644
--- a/src/lang/ar-ye.json
+++ b/src/lang/ar-ye.json
@@ -504,5 +504,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/be-by.json b/src/lang/be-by.json
index 31405f517..7ca60c9e5 100644
--- a/src/lang/be-by.json
+++ b/src/lang/be-by.json
@@ -506,5 +506,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/bn-bd.json b/src/lang/bn-bd.json
index ddea279af..2bdaf826c 100644
--- a/src/lang/bn-bd.json
+++ b/src/lang/bn-bd.json
@@ -505,5 +505,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/cs-cz.json b/src/lang/cs-cz.json
index 8ab39e3dd..0d58f8e7f 100644
--- a/src/lang/cs-cz.json
+++ b/src/lang/cs-cz.json
@@ -505,5 +505,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/de-de.json b/src/lang/de-de.json
index 45a1882fc..b372afa1a 100644
--- a/src/lang/de-de.json
+++ b/src/lang/de-de.json
@@ -505,5 +505,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/en-us.json b/src/lang/en-us.json
index a52de8315..60b01d2c8 100644
--- a/src/lang/en-us.json
+++ b/src/lang/en-us.json
@@ -505,5 +505,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/es-sv.json b/src/lang/es-sv.json
index af5a48db1..43f35aaf9 100644
--- a/src/lang/es-sv.json
+++ b/src/lang/es-sv.json
@@ -505,5 +505,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/fr-fr.json b/src/lang/fr-fr.json
index 7a2264b66..e91c7bf02 100644
--- a/src/lang/fr-fr.json
+++ b/src/lang/fr-fr.json
@@ -505,5 +505,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/he-il.json b/src/lang/he-il.json
index 7168e7b1e..372ba4fd9 100644
--- a/src/lang/he-il.json
+++ b/src/lang/he-il.json
@@ -506,5 +506,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/hi-in.json b/src/lang/hi-in.json
index d3bb43651..ed5e3a2b7 100644
--- a/src/lang/hi-in.json
+++ b/src/lang/hi-in.json
@@ -506,5 +506,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/hu-hu.json b/src/lang/hu-hu.json
index 559df68b5..ff8dffc62 100644
--- a/src/lang/hu-hu.json
+++ b/src/lang/hu-hu.json
@@ -505,5 +505,200 @@
"pin shortcuts not supported": "Ez az eszköz nem támogatja a kezdőképernyő-parancsikonokat.",
"save file before home shortcut": "A kezdőképernyőhöz való hozzáadás előtt mentse el a fájlt.",
"terminal_required_message_for_lsp": "A Terminál nincs telepítve. Először telepítse a Terminált, hogy használni tudja az LSP-kiszolgálókat.",
- "shift click selection": "Shift + koppintás/kattintás a kiválasztáshoz"
+ "shift click selection": "Shift + koppintás/kattintás a kiválasztáshoz",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/id-id.json b/src/lang/id-id.json
index d4102f8a1..1e64f79df 100644
--- a/src/lang/id-id.json
+++ b/src/lang/id-id.json
@@ -506,5 +506,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/ir-fa.json b/src/lang/ir-fa.json
index 13c89f4e4..c511ee56e 100644
--- a/src/lang/ir-fa.json
+++ b/src/lang/ir-fa.json
@@ -506,5 +506,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/it-it.json b/src/lang/it-it.json
index f225a67cf..f75bc6876 100644
--- a/src/lang/it-it.json
+++ b/src/lang/it-it.json
@@ -505,5 +505,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/ja-jp.json b/src/lang/ja-jp.json
index 66eb11966..203ade0a6 100644
--- a/src/lang/ja-jp.json
+++ b/src/lang/ja-jp.json
@@ -505,5 +505,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/ko-kr.json b/src/lang/ko-kr.json
index 08f0df135..8d26db543 100644
--- a/src/lang/ko-kr.json
+++ b/src/lang/ko-kr.json
@@ -505,5 +505,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/ml-in.json b/src/lang/ml-in.json
index c7eb73987..3c6d5a0df 100644
--- a/src/lang/ml-in.json
+++ b/src/lang/ml-in.json
@@ -505,5 +505,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/mm-unicode.json b/src/lang/mm-unicode.json
index d3cc2edac..a390806bf 100644
--- a/src/lang/mm-unicode.json
+++ b/src/lang/mm-unicode.json
@@ -505,5 +505,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/mm-zawgyi.json b/src/lang/mm-zawgyi.json
index a19c87f89..6de4e7239 100644
--- a/src/lang/mm-zawgyi.json
+++ b/src/lang/mm-zawgyi.json
@@ -505,5 +505,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/pl-pl.json b/src/lang/pl-pl.json
index 02ccc427f..4943fb2bd 100644
--- a/src/lang/pl-pl.json
+++ b/src/lang/pl-pl.json
@@ -505,5 +505,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/pt-br.json b/src/lang/pt-br.json
index 8aace563a..28042037d 100644
--- a/src/lang/pt-br.json
+++ b/src/lang/pt-br.json
@@ -505,5 +505,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/pu-in.json b/src/lang/pu-in.json
index 44c29a8b0..5351c6ec0 100644
--- a/src/lang/pu-in.json
+++ b/src/lang/pu-in.json
@@ -505,5 +505,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/ru-ru.json b/src/lang/ru-ru.json
index 0ca00f3a5..1144466e8 100644
--- a/src/lang/ru-ru.json
+++ b/src/lang/ru-ru.json
@@ -505,5 +505,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/tl-ph.json b/src/lang/tl-ph.json
index 02595aeba..f282bc8f5 100644
--- a/src/lang/tl-ph.json
+++ b/src/lang/tl-ph.json
@@ -505,5 +505,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/tr-tr.json b/src/lang/tr-tr.json
index 505d05012..e44b2f55e 100644
--- a/src/lang/tr-tr.json
+++ b/src/lang/tr-tr.json
@@ -505,5 +505,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/uk-ua.json b/src/lang/uk-ua.json
index eb8e30fa7..bd6a35557 100644
--- a/src/lang/uk-ua.json
+++ b/src/lang/uk-ua.json
@@ -505,5 +505,200 @@
"pin shortcuts not supported": "Ярлики на головному екрані не підтримуються на цьому пристрої.",
"save file before home shortcut": "Збережіть файл, перш ніж додавати його на головний екран.",
"terminal_required_message_for_lsp": "Термінал не встановлено. Будь ласка, спочатку встановіть Термінал, щоб використовувати сервери LSP.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/uz-uz.json b/src/lang/uz-uz.json
index e509255b9..543e28ad2 100644
--- a/src/lang/uz-uz.json
+++ b/src/lang/uz-uz.json
@@ -505,5 +505,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/vi-vn.json b/src/lang/vi-vn.json
index 6f68fd626..a050f94cf 100644
--- a/src/lang/vi-vn.json
+++ b/src/lang/vi-vn.json
@@ -506,5 +506,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/zh-cn.json b/src/lang/zh-cn.json
index 700ff0526..607bfe340 100644
--- a/src/lang/zh-cn.json
+++ b/src/lang/zh-cn.json
@@ -505,5 +505,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/zh-hant.json b/src/lang/zh-hant.json
index 2e635cff4..e47069764 100644
--- a/src/lang/zh-hant.json
+++ b/src/lang/zh-hant.json
@@ -505,5 +505,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lang/zh-tw.json b/src/lang/zh-tw.json
index 8a1e56c5b..346f1949f 100644
--- a/src/lang/zh-tw.json
+++ b/src/lang/zh-tw.json
@@ -505,5 +505,200 @@
"pin shortcuts not supported": "Home screen shortcuts are not supported on this device.",
"save file before home shortcut": "Save the file before adding it to the home screen.",
"terminal_required_message_for_lsp": "Terminal not installed. Please install Terminal first to use LSP servers.",
- "shift click selection": "Shift + tap/click selection"
+ "shift click selection": "Shift + tap/click selection",
+ "earn ad-free time": "Earn ad-free time",
+ "indent guides": "Indent guides",
+ "language servers": "Language servers",
+ "lint gutter": "Show lint gutter",
+ "rainbow brackets": "Rainbow brackets",
+ "lsp-add-custom-server": "Add custom server",
+ "lsp-binary-args": "Binary args (JSON array)",
+ "lsp-binary-command": "Binary command",
+ "lsp-binary-path-optional": "Binary path (optional)",
+ "lsp-check-command-optional": "Check command (optional override)",
+ "lsp-checking-installation-status": "Checking installation status...",
+ "lsp-configured": "Configured",
+ "lsp-custom-server-added": "Custom server added",
+ "lsp-default": "Default",
+ "lsp-details-line": "Details: {details}",
+ "lsp-edit-initialization-options": "Edit initialization options",
+ "lsp-empty": "Empty",
+ "lsp-enabled": "Enabled",
+ "lsp-error-add-server-failed": "Failed to add server",
+ "lsp-error-args-must-be-array": "Arguments must be a JSON array",
+ "lsp-error-binary-command-required": "Binary command is required",
+ "lsp-error-language-id-required": "At least one language ID is required",
+ "lsp-error-package-required": "At least one package is required",
+ "lsp-error-server-id-required": "Server ID is required",
+ "lsp-feature-completion": "Code completion",
+ "lsp-feature-completion-info": "Enable autocomplete suggestions from the server.",
+ "lsp-feature-diagnostics": "Diagnostics",
+ "lsp-feature-diagnostics-info": "Show errors and warnings from the language server.",
+ "lsp-feature-document-highlights": "Document highlights",
+ "lsp-feature-document-highlights-info": "Highlight all occurrences of the word under the cursor.",
+ "lsp-feature-formatting": "Formatting",
+ "lsp-feature-formatting-info": "Enable code formatting from the language server.",
+ "lsp-feature-hover": "Hover information",
+ "lsp-feature-hover-info": "Show type information and documentation on hover.",
+ "lsp-feature-inlay-hints": "Inlay hints",
+ "lsp-feature-inlay-hints-info": "Show inline type hints in the editor.",
+ "lsp-feature-signature": "Signature help",
+ "lsp-feature-signature-info": "Show function parameter hints while typing.",
+ "lsp-feature-state-toast": "{feature} {state}",
+ "lsp-initialization-options": "Initialization options",
+ "lsp-initialization-options-json": "Initialization options (JSON)",
+ "lsp-initialization-options-updated": "Initialization options updated",
+ "lsp-install-command": "Install command",
+ "lsp-install-command-unavailable": "Install command not available",
+ "lsp-install-info-check-failed": "Acode could not verify the installation status.",
+ "lsp-install-info-missing": "Language server is not installed in the terminal environment.",
+ "lsp-install-info-ready": "Language server is installed and ready.",
+ "lsp-install-info-unknown": "Installation status could not be checked automatically.",
+ "lsp-install-info-version-available": "Version {version} is available.",
+ "lsp-install-method-apk": "APK package",
+ "lsp-install-method-cargo": "Cargo crate",
+ "lsp-install-method-manual": "Manual binary",
+ "lsp-install-method-npm": "npm package",
+ "lsp-install-method-pip": "pip package",
+ "lsp-install-method-shell": "Custom shell",
+ "lsp-install-method-title": "Install method",
+ "lsp-install-repair": "Install / repair",
+ "lsp-installation-status": "Installation status",
+ "lsp-installed": "Installed",
+ "lsp-invalid-timeout": "Invalid timeout value",
+ "lsp-language-ids": "Language IDs (comma separated)",
+ "lsp-packages-prompt": "{method} packages (comma separated)",
+ "lsp-remove-installed-files": "Remove installed files for {server}?",
+ "lsp-server-disabled-toast": "Server disabled",
+ "lsp-server-enabled-toast": "Server enabled",
+ "lsp-server-id": "Server ID",
+ "lsp-server-label": "Server label",
+ "lsp-server-not-found": "Server not found",
+ "lsp-server-uninstalled": "Server uninstalled",
+ "lsp-startup-timeout": "Startup timeout",
+ "lsp-startup-timeout-ms": "Startup timeout (milliseconds)",
+ "lsp-startup-timeout-set": "Startup timeout set to {timeout} ms",
+ "lsp-state-disabled": "disabled",
+ "lsp-state-enabled": "enabled",
+ "lsp-status-check-failed": "Check failed",
+ "lsp-status-installed": "Installed",
+ "lsp-status-installed-version": "Installed ({version})",
+ "lsp-status-line": "Status: {status}",
+ "lsp-status-not-installed": "Not installed",
+ "lsp-status-unknown": "Unknown",
+ "lsp-timeout-ms": "{timeout} ms",
+ "lsp-uninstall-command-unavailable": "Uninstall command not available",
+ "lsp-uninstall-server": "Uninstall server",
+ "lsp-update-command-optional": "Update command (optional)",
+ "lsp-update-command-unavailable": "Update command not available",
+ "lsp-update-server": "Update server",
+ "lsp-version-line": "Version: {version}",
+ "lsp-view-initialization-options": "View initialization options",
+ "settings-category-about-acode": "About Acode",
+ "settings-category-advanced": "Advanced",
+ "settings-category-assistance": "Assistance",
+ "settings-category-core": "Core settings",
+ "settings-category-cursor": "Cursor",
+ "settings-category-cursor-selection": "Cursor & selection",
+ "settings-category-custom-servers": "Custom servers",
+ "settings-category-customization-tools": "Customization & tools",
+ "settings-category-display": "Display",
+ "settings-category-editing": "Editing",
+ "settings-category-features": "Features",
+ "settings-category-files-sessions": "Files & sessions",
+ "settings-category-fonts": "Fonts",
+ "settings-category-general": "General",
+ "settings-category-guides-indicators": "Guides & indicators",
+ "settings-category-installation": "Installation",
+ "settings-category-interface": "Interface",
+ "settings-category-maintenance": "Maintenance",
+ "settings-category-permissions": "Permissions",
+ "settings-category-preview": "Preview",
+ "settings-category-scrolling": "Scrolling",
+ "settings-category-server": "Server",
+ "settings-category-servers": "Servers",
+ "settings-category-session": "Session",
+ "settings-category-support-acode": "Support Acode",
+ "settings-category-text-layout": "Text & layout",
+ "settings-info-app-animation": "Control transition animations across the app.",
+ "settings-info-app-check-files": "Refresh editors when files change outside Acode.",
+ "settings-info-app-clean-install-state": "Clear stored install state used by onboarding and setup flows.",
+ "settings-info-app-confirm-on-exit": "Ask before closing the app.",
+ "settings-info-app-console": "Choose which debug console integration Acode uses.",
+ "settings-info-app-default-file-encoding": "Default encoding when opening or creating files.",
+ "settings-info-app-exclude-folders": "Skip folders and patterns while searching or scanning.",
+ "settings-info-app-floating-button": "Show the floating quick actions button.",
+ "settings-info-app-font-manager": "Install, manage, or remove app fonts.",
+ "settings-info-app-fullscreen": "Hide the system status bar while using Acode.",
+ "settings-info-app-keybindings": "Edit the key bindings file or reset shortcuts.",
+ "settings-info-app-keyboard-mode": "Choose how the software keyboard behaves while editing.",
+ "settings-info-app-language": "Choose the app language and translated labels.",
+ "settings-info-app-open-file-list-position": "Choose where the active files list appears.",
+ "settings-info-app-quick-tools-settings": "Reorder and customize quick tool shortcuts.",
+ "settings-info-app-quick-tools-trigger-mode": "Choose how quick tools open on tap or touch.",
+ "settings-info-app-remember-files": "Reopen the files that were open last time.",
+ "settings-info-app-remember-folders": "Reopen folders from the previous session.",
+ "settings-info-app-retry-remote-fs": "Retry remote file operations after a failed transfer.",
+ "settings-info-app-side-buttons": "Show extra action buttons beside the editor.",
+ "settings-info-app-sponsor-sidebar": "Show the sponsor entry in the sidebar.",
+ "settings-info-app-touch-move-threshold": "Minimum movement before a touch drag is detected.",
+ "settings-info-app-vibrate-on-tap": "Enable haptic feedback for taps and controls.",
+ "settings-info-editor-autosave": "Save changes automatically after a delay.",
+ "settings-info-editor-color-preview": "Preview color values inline in the editor.",
+ "settings-info-editor-fade-fold-widgets": "Dim fold markers until they are needed.",
+ "settings-info-editor-font-family": "Choose the typeface used in the editor.",
+ "settings-info-editor-font-size": "Set the editor text size.",
+ "settings-info-editor-format-on-save": "Run the formatter whenever a file is saved.",
+ "settings-info-editor-hard-wrap": "Insert real line breaks instead of only wrapping visually.",
+ "settings-info-editor-indent-guides": "Show indentation guide lines.",
+ "settings-info-editor-line-height": "Adjust vertical spacing between lines.",
+ "settings-info-editor-line-numbers": "Show line numbers in the gutter.",
+ "settings-info-editor-lint-gutter": "Show diagnostics and lint markers in the gutter.",
+ "settings-info-editor-live-autocomplete": "Show suggestions while you type.",
+ "settings-info-editor-rainbow-brackets": "Color matching brackets by nesting depth.",
+ "settings-info-editor-relative-line-numbers": "Show distance from the current line.",
+ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.",
+ "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.",
+ "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.",
+ "settings-info-editor-show-spaces": "Display visible whitespace markers.",
+ "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.",
+ "settings-info-editor-tab-size": "Set how many spaces each tab step uses.",
+ "settings-info-editor-teardrop-size": "Set the cursor handle size for touch editing.",
+ "settings-info-editor-text-wrap": "Wrap long lines inside the editor.",
+ "settings-info-lsp-add-custom-server": "Register a custom language server with install, update, and launch commands.",
+ "settings-info-lsp-edit-init-options": "Edit initialization options as JSON.",
+ "settings-info-lsp-install-server": "Install or repair this language server.",
+ "settings-info-lsp-server-enabled": "Enable or disable this language server.",
+ "settings-info-lsp-startup-timeout": "Set how long Acode waits for the server to start.",
+ "settings-info-lsp-uninstall-server": "Remove installed packages or binaries for this server.",
+ "settings-info-lsp-update-server": "Update this language server if an update flow is available.",
+ "settings-info-lsp-view-init-options": "View the effective initialization options as JSON.",
+ "settings-info-main-ad-rewards": "Watch ads to unlock temporary ad-free access.",
+ "settings-info-main-app-settings": "Language, app behavior, and quick access tools.",
+ "settings-info-main-backup-restore": "Export settings to a backup or restore them later.",
+ "settings-info-main-changelog": "See recent updates and release notes.",
+ "settings-info-main-edit-settings": "Edit the raw settings.json file directly.",
+ "settings-info-main-editor-settings": "Fonts, tabs, suggestions, and editor display.",
+ "settings-info-main-formatter": "Choose a formatter for each supported language.",
+ "settings-info-main-lsp-settings": "Configure language servers and editor intelligence.",
+ "settings-info-main-plugins": "Manage installed plugins and their available actions.",
+ "settings-info-main-preview-settings": "Preview mode, server ports, and browser behavior.",
+ "settings-info-main-rateapp": "Rate Acode on Google Play.",
+ "settings-info-main-remove-ads": "Unlock permanent ad-free access.",
+ "settings-info-main-reset": "Reset Acode to its default configuration.",
+ "settings-info-main-sponsors": "Support ongoing Acode development.",
+ "settings-info-main-terminal-settings": "Terminal theme, font, cursor, and session behavior.",
+ "settings-info-main-theme": "App theme, contrast, and custom colors.",
+ "settings-info-preview-disable-cache": "Always reload content in the in-app browser.",
+ "settings-info-preview-host": "Hostname used when opening the preview URL.",
+ "settings-info-preview-mode": "Choose where preview opens when you launch it.",
+ "settings-info-preview-preview-port": "Port used by the live preview server.",
+ "settings-info-preview-server-port": "Port used by the internal app server.",
+ "settings-info-preview-show-console-toggler": "Show the console button in preview.",
+ "settings-info-preview-use-current-file": "Prefer the current file when starting preview.",
+ "settings-info-terminal-convert-eol": "Convert line endings when pasting or rendering terminal output.",
+ "settings-note-formatter-settings": "Assign a formatter to each language. Install formatter plugins to unlock more options.",
+ "settings-note-lsp-settings": "Language servers add autocomplete, diagnostics, hover details, and more. You can install, update, or define custom servers here. Managed installers run inside the terminal/proot environment.",
+ "search result label singular": "result",
+ "search result label plural": "results"
}
diff --git a/src/lib/acode.js b/src/lib/acode.js
index 2f2280d37..0845b8d99 100644
--- a/src/lib/acode.js
+++ b/src/lib/acode.js
@@ -670,6 +670,14 @@ export default class Acode {
id,
settings.list,
settings.cb,
+ undefined,
+ {
+ preserveOrder: true,
+ pageClassName: "detail-settings-page",
+ listClassName: "detail-settings-list",
+ valueInTail: true,
+ groupByDefault: true,
+ },
);
}
diff --git a/src/pages/fontManager/fontManager.js b/src/pages/fontManager/fontManager.js
index e132b90a4..98a16b788 100644
--- a/src/pages/fontManager/fontManager.js
+++ b/src/pages/fontManager/fontManager.js
@@ -22,6 +22,7 @@ export default function fontManager() {
const $search = ;
const $addFont = ;
const list = Ref();
+ $page.classList.add("font-manager-page");
actionStack.push({
id: "fontManager",
@@ -36,7 +37,7 @@ export default function fontManager() {
actionStack.remove("fontManager");
};
- $page.body = ;
+ $page.body = ;
$page.querySelector("header").append($search, $addFont);
@@ -287,33 +288,49 @@ export default function fontManager() {
function FontItem({ name, isCurrent, onSelect, onDelete }) {
const defaultFonts = ["Fira Code", "Roboto Mono", "MesloLGS NF Regular"];
const isDefault = defaultFonts.includes(name);
+ const subtitle = isCurrent
+ ? "Current editor font"
+ : isDefault
+ ? "Built-in font"
+ : "Custom font";
const $item = (
-
+ {isCurrent || !isDefault
+ ?
+ {isCurrent
+ ? Current
+ : null}
+ {!isDefault
+ ?
+ : null}
+
+ : null}
);
$item.onclick = (e) => {
- const action = e.target.dataset.action;
+ const $target = e.target;
+ const action = $target.dataset.action;
if (action === "delete" && !isDefault) {
e.stopPropagation();
onDelete();
} else if (
- !e.target.classList.contains("icon") ||
+ !$target.classList.contains("font-manager-action") ||
action === "select-font"
) {
onSelect();
diff --git a/src/pages/fontManager/style.scss b/src/pages/fontManager/style.scss
index 670d8ec3b..2228ced44 100644
--- a/src/pages/fontManager/style.scss
+++ b/src/pages/fontManager/style.scss
@@ -1,63 +1,163 @@
-.main.list .list-item.current-font {
- background: var(--active-color-5, rgba(51, 153, 255, 0.1)) !important;
- border-left: 3px solid var(--active-color) !important;
+wc-page.font-manager-page {
+ background: var(--secondary-color);
- .text {
- font-weight: 600 !important;
- }
+ .font-manager-list {
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ max-width: 48rem;
+ margin: 0 auto;
+ padding: 0.5rem 0 5.5rem;
+ box-sizing: border-box;
+ background: var(--secondary-color);
+ }
- .icon:first-child {
- color: var(--active-color) !important;
- }
-}
+ .font-manager-list > .list-item {
+ display: flex;
+ width: 100%;
+ min-height: 4.1rem;
+ margin: 0;
+ padding: 0.75rem 1rem;
+ box-sizing: border-box;
+ align-items: center;
+ gap: 0.85rem;
+ background: transparent;
+ cursor: pointer;
+ transition: background-color 140ms ease;
+ text-decoration: none;
+
+ &:not(:last-of-type) {
+ border-bottom: 1px solid var(--border-color);
+ border-bottom: 1px solid color-mix(in srgb, var(--border-color), transparent 20%);
+ }
+
+ &:focus,
+ &:active {
+ background: color-mix(
+ in srgb,
+ var(--secondary-color),
+ var(--popup-text-color) 4%
+ );
+ }
+
+ > .icon:first-child {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 1.4rem;
+ min-width: 1.4rem;
+ height: 1.4rem;
+ font-size: 1.15rem;
+ color: color-mix(in srgb, var(--secondary-text-color), transparent 18%);
+ }
+
+ > .container {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ min-width: 0;
+ overflow: visible;
+ gap: 0.24rem;
+ padding-right: 0.6rem;
+
+ > .text {
+ display: flex;
+ align-items: center;
+ min-width: 0;
+ font-size: 1rem;
+ line-height: 1.2;
+ font-weight: 600;
+ color: var(--popup-text-color);
+ }
+
+ > .value {
+ display: block;
+ font-size: 0.82rem;
+ line-height: 1.35;
+ color: color-mix(in srgb, var(--secondary-text-color), transparent 30%);
+ text-transform: none;
+ white-space: normal;
+ overflow: visible;
+ overflow-wrap: anywhere;
+ opacity: 1;
+ }
+ }
+
+ > .setting-tail {
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ flex-shrink: 0;
+ min-height: 1.65rem;
+ gap: 0.65rem;
+ margin-left: 0.9rem;
+ align-self: center;
+ }
+ }
+
+ .font-manager-list > .list-item.current-font {
+ background: color-mix(in srgb, var(--secondary-color), var(--active-color) 8%);
+ }
-.font-manager {
- .list-item {
- .container {
- flex: 1;
- }
-
- .icon {
-
- &.visibility,
- &.delete {
- opacity: 0.6;
- transition: opacity 0.2s ease;
- cursor: pointer;
-
- &:hover {
- opacity: 1;
- }
- }
-
- &.delete {
- &:hover:not(.disabled) {
- color: var(--error-text-color);
- }
-
- &.disabled {
- opacity: 0.3;
- cursor: not-allowed;
-
- &:hover {
- opacity: 0.3;
- }
- }
- }
- }
- }
+ .font-manager-list > .list-item.current-font:focus,
+ .font-manager-list > .list-item.current-font:active {
+ background: color-mix(in srgb, var(--secondary-color), var(--active-color) 12%);
+ }
+
+ .font-manager-list > .list-item.current-font > .icon:first-child {
+ color: color-mix(in srgb, var(--active-color), transparent 10%);
+ }
+
+ .font-manager-list > .list-item.current-font > .container > .text {
+ font-weight: 700;
+ }
+
+ @media screen and (min-width: 768px) {
+ .font-manager-list {
+ padding-left: 0.5rem;
+ padding-right: 0.5rem;
+ }
+ }
+
+ .font-manager-current {
+ display: inline-flex;
+ align-items: center;
+ font-size: 0.82rem;
+ font-weight: 600;
+ line-height: 1.2;
+ color: color-mix(in srgb, var(--active-color), transparent 14%);
+ }
+
+ .font-manager-action {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ width: 1.2rem;
+ min-width: 1.2rem;
+ height: 1.2rem;
+ font-size: 1.1rem;
+ line-height: 1;
+ color: color-mix(in srgb, var(--secondary-text-color), transparent 28%);
+ cursor: pointer;
+ transition: color 140ms ease;
+
+ &:hover,
+ &:active {
+ color: var(--error-text-color);
+ }
+ }
}
.prompt.box {
- .font-css-editor {
- &.input {
- border-bottom: 1px solid var(--border-color);
- min-height: 120px;
- margin-top: 5px;
-
- &:focus {
- border-bottom-color: var(--active-color);
- }
- }
- }
-}
\ No newline at end of file
+ .font-css-editor {
+ &.input {
+ border-bottom: 1px solid var(--border-color);
+ min-height: 120px;
+ margin-top: 5px;
+
+ &:focus {
+ border-bottom-color: var(--active-color);
+ }
+ }
+ }
+}
diff --git a/src/pages/plugin/plugin.scss b/src/pages/plugin/plugin.scss
index b99ace95f..f3cca0b05 100644
--- a/src/pages/plugin/plugin.scss
+++ b/src/pages/plugin/plugin.scss
@@ -66,6 +66,7 @@
display: flex;
gap: 16px;
flex-wrap: wrap;
+ color: var(--secondary-text-color);
color: color-mix(in srgb, var(--primary-text-color) 60%, transparent);
font-size: 14px;
margin-bottom: 12px;
@@ -97,6 +98,7 @@
display: flex;
flex-wrap: wrap;
gap: 16px;
+ color: var(--secondary-text-color);
color: color-mix(in srgb, var(--primary-text-color) 60%, transparent);
font-size: 14px;
@@ -141,6 +143,7 @@
position: relative;
.keyword {
+ background: var(--popup-background-color);
background: color-mix(in srgb,
var(--link-text-color) 10%,
transparent);
@@ -149,6 +152,7 @@
border-radius: 12px;
font-size: 13px;
transition: all 0.2s;
+ border: 1px solid var(--link-text-color);
border: 1px solid color-mix(in srgb, var(--link-text-color) 25%, transparent);
}
}
@@ -226,6 +230,7 @@
border-bottom: 1px solid var(--border-color);
.tab {
+ color: var(--secondary-text-color);
color: color-mix(in srgb, var(--primary-text-color) 60%, transparent);
}
@@ -317,6 +322,7 @@
.contributor-role {
font-size: 13px;
+ color: var(--secondary-text-color);
color: color-mix(in srgb, var(--primary-text-color) 60%, transparent);
}
}
@@ -326,6 +332,7 @@
.no-changelog {
text-align: center;
padding: 2rem;
+ color: var(--secondary-text-color);
color: color-mix(in srgb, var(--primary-text-color) 60%, transparent);
i {
@@ -497,4 +504,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/src/pages/plugins/plugins.scss b/src/pages/plugins/plugins.scss
index 279cddeeb..d8b3635aa 100644
--- a/src/pages/plugins/plugins.scss
+++ b/src/pages/plugins/plugins.scss
@@ -65,6 +65,7 @@
position: relative;
&:hover {
+ background: var(--primary-color);
background: color-mix(in srgb, var(--primary-color) 12%, transparent);
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
@@ -213,56 +214,91 @@
.plugin-toggle-switch {
display: flex !important;
align-items: center;
- gap: 0.5rem;
+ gap: 0;
cursor: pointer;
z-index: 100;
- min-width: 100px;
+ min-width: auto;
pointer-events: auto !important;
position: relative;
margin-left: auto;
justify-content: flex-end;
- padding: 0.5rem;
- border-radius: 8px;
+ padding: 0;
+ border-radius: 999px;
transition: background-color 0.2s ease;
&:hover {
- background-color: var(--primary-color);
+ background-color: transparent;
}
}
.plugin-toggle-track {
- width: 40px;
- height: 22px;
- border-radius: 12px;
- background: #e5e7eb;
+ width: 2.8rem;
+ height: 1.65rem;
+ border-radius: 999px;
+ border: 1px solid var(--border-color);
+ border: 1px solid color-mix(in srgb, var(--border-color), transparent 6%);
+ background: var(--secondary-color);
+ background: color-mix(
+ in srgb,
+ var(--secondary-color),
+ var(--popup-background-color) 30%
+ );
position: relative;
- transition: all 0.3s ease;
+ transition:
+ background-color 160ms ease,
+ border-color 160ms ease,
+ box-shadow 180ms ease;
display: inline-block;
- margin-right: 0.5rem;
- box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
+ margin-right: 0;
+ box-sizing: border-box;
+ box-shadow: none;
}
.plugin-toggle-switch[data-enabled="true"] .plugin-toggle-track,
.plugin-toggle-track[data-enabled="true"] {
- background: var(--active-color);
- box-shadow: 0 2px 4px var(--box-shadow-color);
+ background: var(--button-background-color);
+ border-color: var(--button-background-color);
+ border-color: color-mix(in srgb, var(--button-background-color), transparent 10%);
+ box-shadow: inset 0 0 0 1px var(--button-background-color);
+ box-shadow: inset 0 0 0 1px
+ color-mix(in srgb, var(--button-background-color), transparent 12%);
}
.plugin-toggle-thumb {
position: absolute;
- left: 2px;
- top: 2px;
- width: 18px;
- height: 18px;
- border-radius: 50%;
- background: white;
- box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
- transition: all 0.3s ease;
+ left: 0;
+ top: 0;
+ width: 1.25rem;
+ height: 1.25rem;
+ margin: 0.14rem;
+ border-radius: 999px;
+ background: var(--popup-text-color);
+ background: color-mix(
+ in srgb,
+ var(--popup-text-color),
+ var(--popup-background-color) 18%
+ );
+ border: 1px solid var(--border-color);
+ border: 1px solid color-mix(in srgb, var(--border-color), transparent 15%);
+ box-sizing: border-box;
+ box-shadow:
+ 0 0 0 1px var(--border-color),
+ 0 1px 3px rgba(0, 0, 0, 0.22);
+ box-shadow:
+ 0 0 0 1px color-mix(in srgb, var(--border-color), transparent 34%),
+ 0 1px 3px rgba(0, 0, 0, 0.22);
+ transition:
+ transform 180ms cubic-bezier(0.2, 0.9, 0.3, 1),
+ background-color 160ms ease,
+ box-shadow 180ms ease;
}
.plugin-toggle-switch[data-enabled="true"] .plugin-toggle-thumb,
.plugin-toggle-track[data-enabled="true"] .plugin-toggle-thumb {
- left: 20px;
+ transform: translateX(1.12rem);
+ background: var(--button-text-color);
+ box-shadow: 0 2px 8px var(--button-background-color);
+ box-shadow: 0 2px 8px color-mix(in srgb, var(--button-background-color), transparent 55%);
}
}
-}
\ No newline at end of file
+}
diff --git a/src/settings/appSettings.js b/src/settings/appSettings.js
index f23d3188a..102ad025e 100644
--- a/src/settings/appSettings.js
+++ b/src/settings/appSettings.js
@@ -3,6 +3,7 @@ import ajax from "@deadlyjack/ajax";
import { resetKeyBindings } from "cm/commandRegistry";
import settingsPage from "components/settingsPage";
import loader from "dialogs/loader";
+import select from "dialogs/select";
import actions from "handlers/quickTools";
import actionStack from "lib/actionStack";
import constants from "lib/constants";
@@ -18,11 +19,21 @@ import Url from "utils/Url";
export default function otherSettings() {
const values = appSettings.value;
const title = strings["app settings"].capitalize();
+ const categories = {
+ interface: strings["settings-category-interface"],
+ fonts: strings["settings-category-fonts"],
+ filesSessions: strings["settings-category-files-sessions"],
+ advanced: strings["settings-category-advanced"],
+ };
const items = [
{
- key: "retryRemoteFsAfterFail",
- text: strings["retry ftp/sftp when fail"],
- checkbox: values.retryRemoteFsAfterFail,
+ key: "lang",
+ text: strings["change language"],
+ value: values.lang,
+ select: lang.list,
+ valueText: (value) => lang.getName(value),
+ info: strings["settings-info-app-language"],
+ category: categories.interface,
},
{
key: "animation",
@@ -34,58 +45,15 @@ export default function otherSettings() {
["yes", strings.yes],
["system", strings.system],
],
+ info: strings["settings-info-app-animation"],
+ category: categories.interface,
},
{
key: "fullscreen",
text: strings.fullscreen.capitalize(),
checkbox: values.fullscreen,
- },
- {
- key: "lang",
- text: strings["change language"],
- value: values.lang,
- select: lang.list,
- valueText: (value) => lang.getName(value),
- },
- {
- key: "keybindings",
- text: strings["key bindings"],
- select: [
- ["edit", strings.edit],
- ["reset", strings.reset],
- ],
- },
- {
- key: "confirmOnExit",
- text: strings["confirm on exit"],
- checkbox: values.confirmOnExit,
- },
- {
- key: "checkFiles",
- text: strings["check file changes"],
- checkbox: values.checkFiles,
- },
- {
- key: "checkForAppUpdates",
- text: strings["check for app updates"],
- checkbox: values.checkForAppUpdates,
- info: strings["info-checkForAppUpdates"],
- },
- {
- key: "console",
- text: strings.console,
- value: values.console,
- select: [appSettings.CONSOLE_LEGACY, appSettings.CONSOLE_ERUDA],
- },
- {
- key: "developerMode",
- text: strings["developer mode"],
- checkbox: values.developerMode,
- info: strings["info-developermode"],
- },
- {
- key: "cleanInstallState",
- text: strings["clean install state"],
+ info: strings["settings-info-app-fullscreen"],
+ category: categories.interface,
},
{
key: "keyboardMode",
@@ -102,26 +70,36 @@ export default function otherSettings() {
strings["no suggestions aggressive"],
],
],
+ info: strings["settings-info-app-keyboard-mode"],
+ category: categories.interface,
},
{
key: "vibrateOnTap",
text: strings["vibrate on tap"],
checkbox: values.vibrateOnTap,
+ info: strings["settings-info-app-vibrate-on-tap"],
+ category: categories.interface,
},
{
- key: "rememberFiles",
- text: strings["remember opened files"],
- checkbox: values.rememberFiles,
+ key: "floatingButton",
+ text: strings["floating button"],
+ checkbox: values.floatingButton,
+ info: strings["settings-info-app-floating-button"],
+ category: categories.interface,
},
{
- key: "rememberFolders",
- text: strings["remember opened folders"],
- checkbox: values.rememberFolders,
+ key: "showSideButtons",
+ text: strings["show side buttons"],
+ checkbox: values.showSideButtons,
+ info: strings["settings-info-app-side-buttons"],
+ category: categories.interface,
},
{
- key: "floatingButton",
- text: strings["floating button"],
- checkbox: values.floatingButton,
+ key: "showSponsorSidebarApp",
+ text: `${strings.sponsor} (${strings.sidebar})`,
+ checkbox: values.showSponsorSidebarApp,
+ info: strings["settings-info-app-sponsor-sidebar"],
+ category: categories.interface,
},
{
key: "openFileListPos",
@@ -133,12 +111,15 @@ export default function otherSettings() {
[appSettings.OPEN_FILE_LIST_POS_HEADER, strings.header],
[appSettings.OPEN_FILE_LIST_POS_BOTTOM, strings.bottom],
],
+ info: strings["settings-info-app-open-file-list-position"],
+ category: categories.interface,
},
{
key: "quickTools",
text: strings["quick tools"],
checkbox: !!values.quickTools,
info: strings["info-quickTools"],
+ category: categories.interface,
},
{
key: "quickToolsTriggerMode",
@@ -148,6 +129,15 @@ export default function otherSettings() {
[appSettings.QUICKTOOLS_TRIGGER_MODE_CLICK, "click"],
[appSettings.QUICKTOOLS_TRIGGER_MODE_TOUCH, "touch"],
],
+ info: strings["settings-info-app-quick-tools-trigger-mode"],
+ category: categories.interface,
+ },
+ {
+ key: "quickToolsSettings",
+ text: strings["shortcut buttons"],
+ info: strings["settings-info-app-quick-tools-settings"],
+ category: categories.interface,
+ chevron: true,
},
{
key: "touchMoveThreshold",
@@ -160,26 +150,36 @@ export default function otherSettings() {
return value >= 0;
},
},
- },
- {
- key: "quickToolsSettings",
- text: strings["shortcut buttons"],
- index: 0,
+ info: strings["settings-info-app-touch-move-threshold"],
+ category: categories.interface,
},
{
key: "fontManager",
text: strings["fonts"],
- index: 1,
+ info: strings["settings-info-app-font-manager"],
+ category: categories.fonts,
+ chevron: true,
},
{
- key: "showSideButtons",
- text: strings["show side buttons"],
- checkbox: values.showSideButtons,
+ key: "rememberFiles",
+ text: strings["remember opened files"],
+ checkbox: values.rememberFiles,
+ info: strings["settings-info-app-remember-files"],
+ category: categories.filesSessions,
},
{
- key: "showSponsorSidebarApp",
- text: `${strings.sponsor} (${strings.sidebar})`,
- checkbox: values.showSponsorSidebarApp,
+ key: "rememberFolders",
+ text: strings["remember opened folders"],
+ checkbox: values.rememberFolders,
+ info: strings["settings-info-app-remember-folders"],
+ category: categories.filesSessions,
+ },
+ {
+ key: "retryRemoteFsAfterFail",
+ text: strings["retry ftp/sftp when fail"],
+ checkbox: values.retryRemoteFsAfterFail,
+ info: strings["settings-info-app-retry-remote-fs"],
+ category: categories.filesSessions,
},
{
key: "excludeFolders",
@@ -194,6 +194,8 @@ export default function otherSettings() {
});
},
},
+ info: strings["settings-info-app-exclude-folders"],
+ category: categories.filesSessions,
},
{
key: "defaultFileEncoding",
@@ -208,14 +210,78 @@ export default function otherSettings() {
return [id, encoding.label];
}),
],
+ info: strings["settings-info-app-default-file-encoding"],
+ category: categories.filesSessions,
+ },
+ {
+ key: "keybindings",
+ text: strings["key bindings"],
+ info: strings["settings-info-app-keybindings"],
+ category: categories.advanced,
+ chevron: true,
+ },
+ {
+ key: "confirmOnExit",
+ text: strings["confirm on exit"],
+ checkbox: values.confirmOnExit,
+ info: strings["settings-info-app-confirm-on-exit"],
+ category: categories.advanced,
+ },
+ {
+ key: "checkFiles",
+ text: strings["check file changes"],
+ checkbox: values.checkFiles,
+ info: strings["settings-info-app-check-files"],
+ category: categories.advanced,
+ },
+ {
+ key: "checkForAppUpdates",
+ text: strings["check for app updates"],
+ checkbox: values.checkForAppUpdates,
+ info: strings["info-checkForAppUpdates"],
+ category: categories.advanced,
+ },
+ {
+ key: "console",
+ text: strings.console,
+ value: values.console,
+ select: [appSettings.CONSOLE_LEGACY, appSettings.CONSOLE_ERUDA],
+ info: strings["settings-info-app-console"],
+ category: categories.advanced,
+ },
+ {
+ key: "developerMode",
+ text: strings["developer mode"],
+ checkbox: values.developerMode,
+ info: strings["info-developermode"],
+ category: categories.advanced,
+ },
+ {
+ key: "cleanInstallState",
+ text: strings["clean install state"],
+ info: strings["settings-info-app-clean-install-state"],
+ category: categories.advanced,
+ chevron: true,
},
];
- return settingsPage(title, items, callback);
+ return settingsPage(title, items, callback, undefined, {
+ preserveOrder: true,
+ pageClassName: "detail-settings-page",
+ listClassName: "detail-settings-list",
+ infoAsDescription: true,
+ valueInTail: true,
+ });
async function callback(key, value) {
switch (key) {
case "keybindings": {
+ value = await select(strings["key bindings"], [
+ ["edit", strings.edit],
+ ["reset", strings.reset],
+ ]);
+ if (!value) return;
+
if (value === "edit") {
actionStack.pop(2);
openFile(KEYBINDING_FILE);
diff --git a/src/settings/backupRestore.js b/src/settings/backupRestore.js
index a181c2d47..e95b2b01b 100644
--- a/src/settings/backupRestore.js
+++ b/src/settings/backupRestore.js
@@ -142,18 +142,25 @@ function backupRestore() {
key: "backup",
text: strings.backup.capitalize(),
icon: "file_downloadget_app",
+ chevron: true,
},
{
key: "restore",
text: strings.restore.capitalize(),
icon: "historyrestore",
+ chevron: true,
},
{
note: strings["backup/restore note"],
},
];
- return settingsPage(title, items, callback);
+ return settingsPage(title, items, callback, undefined, {
+ preserveOrder: true,
+ pageClassName: "detail-settings-page",
+ listClassName: "detail-settings-list",
+ groupByDefault: true,
+ });
function callback(key) {
switch (key) {
diff --git a/src/settings/editorSettings.js b/src/settings/editorSettings.js
index caaaa98df..83d727f37 100644
--- a/src/settings/editorSettings.js
+++ b/src/settings/editorSettings.js
@@ -7,20 +7,31 @@ import scrollSettings from "./scrollSettings";
export default function editorSettings() {
const title = strings["editor settings"];
const values = appSettings.value;
+ const categories = {
+ scrolling: strings["settings-category-scrolling"],
+ textLayout: strings["settings-category-text-layout"],
+ editing: strings["settings-category-editing"],
+ assistance: strings["settings-category-assistance"],
+ guidesIndicators: strings["settings-category-guides-indicators"],
+ cursorSelection: strings["settings-category-cursor-selection"],
+ };
const items = [
{
- key: "autosave",
- text: strings.autosave,
- value: values.autosave,
- valueText: (value) => (value ? value : strings.no),
- prompt: strings.delay + " (>=1000 || 0)",
- promptType: "number",
- promptOptions: {
- test(value) {
- value = Number.parseInt(value);
- return value >= 1000 || value === 0;
- },
+ key: "scroll-settings",
+ text: strings["scroll settings"],
+ info: strings["settings-info-editor-scroll-settings"],
+ category: categories.scrolling,
+ chevron: true,
+ },
+ {
+ key: "editorFont",
+ text: strings["editor font"],
+ value: values.editorFont,
+ get select() {
+ return fonts.getNames();
},
+ info: strings["settings-info-editor-font-family"],
+ category: categories.textLayout,
},
{
key: "fontSize",
@@ -31,16 +42,60 @@ export default function editorSettings() {
required: true,
match: constants.FONT_SIZE,
},
+ info: strings["settings-info-editor-font-size"],
+ category: categories.textLayout,
},
{
- key: "shiftClickSelection",
- text: strings["shift click selection"],
- checkbox: values.shiftClickSelection,
+ key: "lineHeight",
+ text: strings["line height"],
+ value: values.lineHeight,
+ prompt: strings["line height"],
+ promptType: "number",
+ promptOptions: {
+ test(value) {
+ value = Number.parseFloat(value);
+ return value >= 1 && value <= 2;
+ },
+ },
+ info: strings["settings-info-editor-line-height"],
+ category: categories.textLayout,
+ },
+ {
+ key: "textWrap",
+ text: strings["text wrap"],
+ checkbox: values.textWrap,
+ info: strings["settings-info-editor-text-wrap"],
+ category: categories.textLayout,
+ },
+ {
+ key: "hardWrap",
+ text: strings["hard wrap"],
+ checkbox: values.hardWrap,
+ info: strings["settings-info-editor-hard-wrap"],
+ category: categories.textLayout,
+ },
+ {
+ key: "autosave",
+ text: strings.autosave,
+ value: values.autosave,
+ valueText: (value) => (value ? value : strings.no),
+ prompt: strings.delay + " (>=1000 || 0)",
+ promptType: "number",
+ promptOptions: {
+ test(value) {
+ value = Number.parseInt(value);
+ return value >= 1000 || value === 0;
+ },
+ },
+ info: strings["settings-info-editor-autosave"],
+ category: categories.editing,
},
{
key: "softTab",
text: strings["soft tab"],
checkbox: values.softTab,
+ info: strings["settings-info-editor-soft-tab"],
+ category: categories.editing,
},
{
key: "tabSize",
@@ -54,75 +109,78 @@ export default function editorSettings() {
return value >= 1 && value <= 8;
},
},
+ info: strings["settings-info-editor-tab-size"],
+ category: categories.editing,
+ },
+ {
+ key: "formatOnSave",
+ text: strings["format on save"],
+ checkbox: values.formatOnSave,
+ info: strings["settings-info-editor-format-on-save"],
+ category: categories.editing,
+ },
+ {
+ key: "liveAutoCompletion",
+ text: strings["live autocompletion"],
+ checkbox: values.liveAutoCompletion,
+ info: strings["settings-info-editor-live-autocomplete"],
+ category: categories.assistance,
+ },
+ {
+ key: "colorPreview",
+ text: strings["color preview"],
+ checkbox: values.colorPreview,
+ info: strings["settings-info-editor-color-preview"],
+ category: categories.assistance,
},
{
key: "linenumbers",
text: strings["show line numbers"],
checkbox: values.linenumbers,
+ info: strings["settings-info-editor-line-numbers"],
+ category: categories.guidesIndicators,
+ },
+ {
+ key: "relativeLineNumbers",
+ text: strings["relative line numbers"],
+ checkbox: values.relativeLineNumbers,
+ info: strings["settings-info-editor-relative-line-numbers"],
+ category: categories.guidesIndicators,
},
{
key: "lintGutter",
text: strings["lint gutter"] || "Show lint gutter",
checkbox: values.lintGutter ?? true,
- },
- {
- key: "lineHeight",
- text: strings["line height"],
- value: values.lineHeight,
- prompt: strings["line height"],
- promptType: "number",
- promptOptions: {
- test(value) {
- value = Number.parseFloat(value);
- return value >= 1 && value <= 2;
- },
- },
- },
- {
- key: "formatOnSave",
- text: strings["format on save"],
- checkbox: values.formatOnSave,
+ info: strings["settings-info-editor-lint-gutter"],
+ category: categories.guidesIndicators,
},
{
key: "showSpaces",
text: strings["show spaces"],
checkbox: values.showSpaces,
+ info: strings["settings-info-editor-show-spaces"],
+ category: categories.guidesIndicators,
},
{
- key: "editorFont",
- text: strings["editor font"],
- value: values.editorFont,
- get select() {
- return fonts.getNames();
- },
+ key: "indentGuides",
+ text: strings["indent guides"] || "Indent guides",
+ checkbox: values.indentGuides ?? true,
+ info: strings["settings-info-editor-indent-guides"],
+ category: categories.guidesIndicators,
},
{
- key: "liveAutoCompletion",
- text: strings["live autocompletion"],
- checkbox: values.liveAutoCompletion,
+ key: "rainbowBrackets",
+ text: strings["rainbow brackets"] || "Rainbow brackets",
+ checkbox: values.rainbowBrackets ?? true,
+ info: strings["settings-info-editor-rainbow-brackets"],
+ category: categories.guidesIndicators,
},
- // {
- // key: "showPrintMargin",
- // text: strings["show print margin"].capitalize(),
- // checkbox: values.showPrintMargin,
- // },
- // {
- // key: "printMargin",
- // text: strings["print margin"],
- // value: values.printMargin,
- // prompt: strings["print margin"],
- // promptType: "number",
- // promptOptions: {
- // test(value) {
- // value = Number.parseInt(value);
- // return value >= 10 && value <= 200;
- // },
- // },
- // },
{
- key: "textWrap",
- text: strings["text wrap"],
- checkbox: values.textWrap,
+ key: "fadeFoldWidgets",
+ text: strings["fade fold widgets"],
+ checkbox: values.fadeFoldWidgets,
+ info: strings["settings-info-editor-fade-fold-widgets"],
+ category: categories.guidesIndicators,
},
{
key: "teardropSize",
@@ -137,60 +195,32 @@ export default function editorSettings() {
[30, strings.medium],
[60, strings.large],
],
+ info: strings["settings-info-editor-teardrop-size"],
+ category: categories.cursorSelection,
},
{
- key: "relativeLineNumbers",
- text: strings["relative line numbers"],
- checkbox: values.relativeLineNumbers,
+ key: "shiftClickSelection",
+ text: strings["shift click selection"],
+ checkbox: values.shiftClickSelection,
+ info: strings["settings-info-editor-shift-click-selection"],
+ category: categories.cursorSelection,
},
- // {
- // key: "elasticTabstops",
- // text: strings["elastic tabstops"],
- // checkbox: values.elasticTabstops,
- // },
{
key: "rtlText",
text: strings["line based rtl switching"],
checkbox: values.rtlText,
- },
- {
- key: "hardWrap",
- text: strings["hard wrap"],
- checkbox: values.hardWrap,
- },
- // {
- // key: "useTextareaForIME",
- // text: strings["use textarea for ime"],
- // checkbox: values.useTextareaForIME,
- // },
- {
- key: "fadeFoldWidgets",
- text: strings["fade fold widgets"],
- checkbox: values.fadeFoldWidgets,
- },
- {
- key: "rainbowBrackets",
- text: strings["rainbow brackets"] || "Rainbow brackets",
- checkbox: values.rainbowBrackets ?? true,
- },
- {
- key: "indentGuides",
- text: strings["indent guides"] || "Indent guides",
- checkbox: values.indentGuides ?? true,
- },
- {
- index: 0,
- key: "scroll-settings",
- text: strings["scroll settings"],
- },
- {
- key: "colorPreview",
- text: strings["color preview"],
- checkbox: values.colorPreview,
+ info: strings["settings-info-editor-rtl-text"],
+ category: categories.cursorSelection,
},
];
- return settingsPage(title, items, callback);
+ return settingsPage(title, items, callback, undefined, {
+ preserveOrder: true,
+ pageClassName: "detail-settings-page",
+ listClassName: "detail-settings-list",
+ infoAsDescription: true,
+ valueInTail: true,
+ });
/**
* Callback for settings page when an item is clicked
@@ -201,7 +231,7 @@ export default function editorSettings() {
switch (key) {
case "scroll-settings":
appSettings.uiSettings[key].show();
- break;
+ return;
case "editorFont":
fonts.setFont(value);
diff --git a/src/settings/filesSettings.js b/src/settings/filesSettings.js
index c45a82b05..ca697c704 100644
--- a/src/settings/filesSettings.js
+++ b/src/settings/filesSettings.js
@@ -19,7 +19,12 @@ export default function filesSettings() {
},
];
- return settingsPage(title, items, callback);
+ return settingsPage(title, items, callback, undefined, {
+ preserveOrder: true,
+ pageClassName: "detail-settings-page",
+ listClassName: "detail-settings-list",
+ groupByDefault: true,
+ });
function callback(key, value) {
appSettings.value.fileBrowser[key] = value;
diff --git a/src/settings/formatterSettings.js b/src/settings/formatterSettings.js
index d59dc2c29..512510d6d 100644
--- a/src/settings/formatterSettings.js
+++ b/src/settings/formatterSettings.js
@@ -1,39 +1,58 @@
import { getModes } from "cm/modelist";
import settingsPage from "components/settingsPage";
import appSettings from "lib/settings";
+import helpers from "utils/helpers";
export default function formatterSettings(languageName) {
const title = strings.formatter;
const values = appSettings.value;
const { formatters } = acode;
+ const languagesLabel = strings.languages || "Languages";
// Build items from CodeMirror modelist
- const items = getModes().map((mode) => {
- const { name, caption, extensions } = mode;
- const formatterID = values.formatter[name] || null;
- // Only pass real extensions (skip anchored filename patterns like ^Dockerfile)
- const extList = String(extensions)
- .split("|")
- .filter((e) => e && !e.startsWith("^"));
- const options = acode.getFormatterFor(extList);
+ const items = getModes()
+ .slice()
+ .sort((a, b) =>
+ String(a.caption || a.name).localeCompare(String(b.caption || b.name)),
+ )
+ .map((mode) => {
+ const { name, caption, extensions } = mode;
+ const formatterID = values.formatter[name] || null;
+ // Only pass real extensions (skip anchored filename patterns like ^Dockerfile)
+ const extList = String(extensions)
+ .split("|")
+ .filter((e) => e && !e.startsWith("^"));
+ const options = acode.getFormatterFor(extList);
+ const sampleExt = extList[0] || name;
- return {
- key: name,
- text: caption,
- icon: `file file_type_default file_type_${name}`,
- value: formatterID,
- valueText: (value) => {
- const formatter = formatters.find(({ id }) => id === value);
- if (formatter) {
- return formatter.name;
- }
- return strings.none;
- },
- select: options,
- };
+ return {
+ key: name,
+ text: caption,
+ icon: helpers.getIconForFile(`sample.${sampleExt}`),
+ value: formatterID,
+ valueText: (value) => {
+ const formatter = formatters.find(({ id }) => id === value);
+ if (formatter) {
+ return formatter.name;
+ }
+ return strings.none;
+ },
+ select: options,
+ chevron: true,
+ category: languagesLabel,
+ };
+ });
+
+ items.unshift({
+ note: strings["settings-note-formatter-settings"],
});
- const page = settingsPage(title, items, callback, "separate");
+ const page = settingsPage(title, items, callback, "separate", {
+ preserveOrder: true,
+ pageClassName: "detail-settings-page formatter-settings-page",
+ listClassName: "detail-settings-list formatter-settings-list",
+ notePosition: "top",
+ });
page.show(languageName);
function callback(key, value) {
diff --git a/src/settings/helpSettings.js b/src/settings/helpSettings.js
index 5263ae65a..bd8cdf35a 100644
--- a/src/settings/helpSettings.js
+++ b/src/settings/helpSettings.js
@@ -8,24 +8,33 @@ export default function help() {
key: "docs",
text: strings.documentation,
link: constants.DOCS_URL,
+ chevron: true,
},
{
key: "help",
text: strings.help,
link: constants.TELEGRAM_URL,
+ chevron: true,
},
{
key: "faqs",
text: strings.faqs,
link: `${constants.WEBSITE_URL}/faqs`,
+ chevron: true,
},
{
key: "bug_report",
text: strings.bug_report,
link: `${constants.GITHUB_URL}/issues`,
+ chevron: true,
},
];
- const page = settingsPage(title, items, () => {}, "separate");
+ const page = settingsPage(title, items, () => {}, "separate", {
+ preserveOrder: true,
+ pageClassName: "detail-settings-page",
+ listClassName: "detail-settings-list",
+ groupByDefault: true,
+ });
page.show();
}
diff --git a/src/settings/lspServerDetail.js b/src/settings/lspServerDetail.js
index 53fb6fd80..22e918860 100644
--- a/src/settings/lspServerDetail.js
+++ b/src/settings/lspServerDetail.js
@@ -14,50 +14,59 @@ import confirm from "dialogs/confirm";
import prompt from "dialogs/prompt";
import { getServerOverride, updateServerConfig } from "./lspConfigUtils";
-const FEATURE_ITEMS = [
- [
- "ext_hover",
- "hover",
- "Hover Information",
- "Show type information and documentation on hover",
- ],
- [
- "ext_completion",
- "completion",
- "Code Completion",
- "Enable autocomplete suggestions from the server",
- ],
- [
- "ext_signature",
- "signature",
- "Signature Help",
- "Show function parameter hints while typing",
- ],
- [
- "ext_diagnostics",
- "diagnostics",
- "Diagnostics",
- "Show errors and warnings from the language server",
- ],
- [
- "ext_inlayHints",
- "inlayHints",
- "Inlay Hints",
- "Show inline type hints in the editor",
- ],
- [
- "ext_documentHighlights",
- "documentHighlights",
- "Document Highlights",
- "Highlight all occurrences of the word under cursor",
- ],
- [
- "ext_formatting",
- "formatting",
- "Formatting",
- "Enable code formatting from the language server",
- ],
-];
+function getFeatureItems() {
+ return [
+ [
+ "ext_hover",
+ "hover",
+ strings["lsp-feature-hover"],
+ strings["lsp-feature-hover-info"],
+ ],
+ [
+ "ext_completion",
+ "completion",
+ strings["lsp-feature-completion"],
+ strings["lsp-feature-completion-info"],
+ ],
+ [
+ "ext_signature",
+ "signature",
+ strings["lsp-feature-signature"],
+ strings["lsp-feature-signature-info"],
+ ],
+ [
+ "ext_diagnostics",
+ "diagnostics",
+ strings["lsp-feature-diagnostics"],
+ strings["lsp-feature-diagnostics-info"],
+ ],
+ [
+ "ext_inlayHints",
+ "inlayHints",
+ strings["lsp-feature-inlay-hints"],
+ strings["lsp-feature-inlay-hints-info"],
+ ],
+ [
+ "ext_documentHighlights",
+ "documentHighlights",
+ strings["lsp-feature-document-highlights"],
+ strings["lsp-feature-document-highlights-info"],
+ ],
+ [
+ "ext_formatting",
+ "formatting",
+ strings["lsp-feature-formatting"],
+ strings["lsp-feature-formatting-info"],
+ ],
+ ];
+}
+
+function fillTemplate(template, replacements) {
+ return Object.entries(replacements).reduce(
+ (result, [key, value]) => result.replaceAll(`{${key}}`, String(value)),
+ String(template || ""),
+ );
+}
function clone(value) {
if (!value || typeof value !== "object") return value;
@@ -105,13 +114,58 @@ function getMergedConfig(server) {
function formatInstallStatus(result) {
switch (result?.status) {
case "present":
- return result.version ? `Installed (${result.version})` : "Installed";
+ return result.version
+ ? fillTemplate(strings["lsp-status-installed-version"], {
+ version: result.version,
+ })
+ : strings["lsp-status-installed"];
case "missing":
- return "Not installed";
+ return strings["lsp-status-not-installed"];
case "failed":
- return "Check failed";
+ return strings["lsp-status-check-failed"];
default:
- return "Unknown";
+ return strings["lsp-status-unknown"];
+ }
+}
+
+function formatStartupTimeoutValue(timeout) {
+ return typeof timeout === "number"
+ ? fillTemplate(strings["lsp-timeout-ms"], { timeout })
+ : strings["lsp-default"];
+}
+
+function sanitizeInstallMessage(message) {
+ const lines = String(message || "")
+ .split("\n")
+ .map((line) => line.trim())
+ .filter(Boolean)
+ .filter(
+ (line) =>
+ !/^proot warning:/i.test(line) &&
+ !line.includes(`"/proc/self/fd/0"`) &&
+ !line.includes(`"/proc/self/fd/1"`) &&
+ !line.includes(`"/proc/self/fd/2"`),
+ );
+
+ return lines.join(" ");
+}
+
+function formatInstallInfo(result) {
+ const cleanedMessage = sanitizeInstallMessage(result?.message);
+
+ switch (result?.status) {
+ case "present":
+ return result.version
+ ? fillTemplate(strings["lsp-install-info-version-available"], {
+ version: result.version,
+ })
+ : strings["lsp-install-info-ready"];
+ case "missing":
+ return strings["lsp-install-info-missing"];
+ case "failed":
+ return cleanedMessage || strings["lsp-install-info-check-failed"];
+ default:
+ return cleanedMessage || strings["lsp-install-info-unknown"];
}
}
@@ -154,9 +208,16 @@ function updateItemDisplay($list, itemsByKey, key, value, extras = {}) {
const $item = $list?.querySelector?.(`[data-key="${key}"]`);
if (!$item) return;
- const $value = $item.querySelector(".value");
- if ($value) {
- $value.textContent = formatValue(item.value);
+ const $subtitle = $item.querySelector(".value");
+ if ($subtitle) {
+ $subtitle.textContent = $subtitle.classList.contains("setting-info")
+ ? String(item.info || "")
+ : formatValue(item.value);
+ }
+
+ const $trailingValue = $item.querySelector(".setting-trailing-value");
+ if ($trailingValue) {
+ $trailingValue.textContent = formatValue(item.value);
}
const $checkbox = $item.querySelector(".input-checkbox");
@@ -194,66 +255,84 @@ async function buildSnapshot(serverId) {
}
function createItems(snapshot) {
+ const featureItems = getFeatureItems();
+ const categories = {
+ general: strings["settings-category-general"],
+ installation: strings["settings-category-installation"],
+ advanced: strings["settings-category-advanced"],
+ features: strings["settings-category-features"],
+ };
const items = [
{
key: "enabled",
- text: "Enabled",
+ text: strings["lsp-enabled"],
checkbox: snapshot.merged.enabled !== false,
- info: "Enable or disable this language server",
+ info: strings["settings-info-lsp-server-enabled"],
+ category: categories.general,
},
{
key: "install_status",
- text: "Installed",
+ text: strings["lsp-installed"],
value: formatInstallStatus(snapshot.installResult),
- info:
- snapshot.installResult.message ||
- "Current installation state for this language server",
+ info: formatInstallInfo(snapshot.installResult),
+ category: categories.installation,
+ chevron: true,
},
{
key: "install_server",
- text: "Install / Repair",
- info: "Install or repair this language server",
+ text: strings["lsp-install-repair"],
+ info: strings["settings-info-lsp-install-server"],
+ category: categories.installation,
+ chevron: true,
},
{
key: "update_server",
- text: "Update Server",
- info: "Update this language server if an update flow exists",
+ text: strings["lsp-update-server"],
+ info: strings["settings-info-lsp-update-server"],
+ category: categories.installation,
+ chevron: true,
},
{
key: "uninstall_server",
- text: "Uninstall Server",
- info: "Remove installed packages or binaries for this server",
+ text: strings["lsp-uninstall-server"],
+ info: strings["settings-info-lsp-uninstall-server"],
+ category: categories.installation,
+ chevron: true,
},
{
key: "startup_timeout",
- text: "Startup Timeout",
- value:
- typeof snapshot.merged.startupTimeout === "number"
- ? `${snapshot.merged.startupTimeout} ms`
- : "Default (5000 ms)",
- info: "Configure how long Acode waits for the server to start",
+ text: strings["lsp-startup-timeout"],
+ value: formatStartupTimeoutValue(snapshot.merged.startupTimeout),
+ info: strings["settings-info-lsp-startup-timeout"],
+ category: categories.advanced,
+ chevron: true,
},
{
key: "edit_init_options",
- text: "Edit Initialization Options",
+ text: strings["lsp-edit-initialization-options"],
value: Object.keys(snapshot.override.initializationOptions || {}).length
- ? "Configured"
- : "Empty",
- info: "Edit initialization options as JSON",
+ ? strings["lsp-configured"]
+ : strings["lsp-empty"],
+ info: strings["settings-info-lsp-edit-init-options"],
+ category: categories.advanced,
+ chevron: true,
},
{
key: "view_init_options",
- text: "View Initialization Options",
- info: "View the effective initialization options as JSON",
+ text: strings["lsp-view-initialization-options"],
+ info: strings["settings-info-lsp-view-init-options"],
+ category: categories.advanced,
+ chevron: true,
},
];
- FEATURE_ITEMS.forEach(([key, extKey, text, info]) => {
+ featureItems.forEach(([key, extKey, text, info]) => {
items.push({
key,
text,
checkbox: snapshot.builtinExts[extKey] !== false,
info,
+ category: categories.features,
});
});
@@ -275,9 +354,7 @@ async function refreshVisibleState($list, itemsByKey, serverId) {
"install_status",
formatInstallStatus(snapshot.installResult),
{
- info:
- snapshot.installResult.message ||
- "Current installation state for this language server",
+ info: formatInstallInfo(snapshot.installResult),
},
);
updateItemDisplay($list, itemsByKey, "install_server", "");
@@ -287,20 +364,18 @@ async function refreshVisibleState($list, itemsByKey, serverId) {
$list,
itemsByKey,
"startup_timeout",
- typeof snapshot.merged.startupTimeout === "number"
- ? `${snapshot.merged.startupTimeout} ms`
- : "Default (5000 ms)",
+ formatStartupTimeoutValue(snapshot.merged.startupTimeout),
);
updateItemDisplay(
$list,
itemsByKey,
"edit_init_options",
Object.keys(snapshot.override.initializationOptions || {}).length
- ? "Configured"
- : "Empty",
+ ? strings["lsp-configured"]
+ : strings["lsp-empty"],
);
- FEATURE_ITEMS.forEach(([key, extKey]) => {
+ getFeatureItems().forEach(([key, extKey]) => {
updateItemDisplay($list, itemsByKey, key, undefined, {
checkbox: snapshot.builtinExts[extKey] !== false,
});
@@ -345,7 +420,7 @@ async function persistInitOptions(serverId, value) {
export default function lspServerDetail(serverId) {
const initialServer = lspApi.servers.get(serverId);
if (!initialServer) {
- toast("Server not found");
+ toast(strings["lsp-server-not-found"]);
return null;
}
@@ -358,7 +433,7 @@ export default function lspServerDetail(serverId) {
version: null,
canInstall: true,
canUpdate: true,
- message: "Checking installation status...",
+ message: strings["lsp-checking-installation-status"],
},
builtinExts:
getMergedConfig(initialServer).clientConfig?.builtinExtensions || {},
@@ -379,6 +454,9 @@ export default function lspServerDetail(serverId) {
undefined,
{
preserveOrder: true,
+ pageClassName: "detail-settings-page",
+ listClassName: "detail-settings-list",
+ valueInTail: true,
},
);
@@ -397,7 +475,7 @@ export default function lspServerDetail(serverId) {
const $list = this?.parentElement;
const snapshot = await buildSnapshot(serverId);
if (!snapshot) {
- toast("Server not found");
+ toast(strings["lsp-server-not-found"]);
return;
}
@@ -407,22 +485,35 @@ export default function lspServerDetail(serverId) {
if (!value) {
stopManagedServer(serverId);
}
- toast(value ? "Server enabled" : "Server disabled");
+ toast(
+ value
+ ? strings["lsp-server-enabled-toast"]
+ : strings["lsp-server-disabled-toast"],
+ );
break;
case "install_status": {
const result = await checkServerInstallation(snapshot.merged);
const lines = [
- `Status: ${formatInstallStatus(result)}`,
- result.message ? `Details: ${result.message}` : null,
+ fillTemplate(strings["lsp-status-line"], {
+ status: formatInstallStatus(result),
+ }),
+ result.version
+ ? fillTemplate(strings["lsp-version-line"], {
+ version: result.version,
+ })
+ : null,
+ fillTemplate(strings["lsp-details-line"], {
+ details: formatInstallInfo(result),
+ }),
].filter(Boolean);
- alert("Installation Status", lines.join("
"));
+ alert(strings["lsp-installation-status"], lines.join("
"));
break;
}
case "install_server":
if (!snapshot.installCommand) {
- toast("Install command not available");
+ toast(strings["lsp-install-command-unavailable"]);
break;
}
await installServer(snapshot.merged, "install");
@@ -430,7 +521,7 @@ export default function lspServerDetail(serverId) {
case "update_server":
if (!snapshot.updateCommand) {
- toast("Update command not available");
+ toast(strings["lsp-update-command-unavailable"]);
break;
}
await installServer(snapshot.merged, "update");
@@ -438,19 +529,21 @@ export default function lspServerDetail(serverId) {
case "uninstall_server":
if (!snapshot.uninstallCommand) {
- toast("Uninstall command not available");
+ toast(strings["lsp-uninstall-command-unavailable"]);
break;
}
if (
!(await confirm(
- "Uninstall Server",
- `Remove installed files for ${snapshot.liveServer.label || serverId}?`,
+ strings["lsp-uninstall-server"],
+ fillTemplate(strings["lsp-remove-installed-files"], {
+ server: snapshot.liveServer.label || serverId,
+ }),
))
) {
break;
}
await uninstallServer(snapshot.merged, { promptConfirm: false });
- toast("Server uninstalled");
+ toast(strings["lsp-server-uninstalled"]);
break;
case "startup_timeout": {
@@ -459,7 +552,7 @@ export default function lspServerDetail(serverId) {
snapshot.liveServer.startupTimeout ??
5000;
const result = await prompt(
- "Startup Timeout (milliseconds)",
+ strings["lsp-startup-timeout-ms"],
String(currentTimeout),
"number",
{
@@ -476,12 +569,16 @@ export default function lspServerDetail(serverId) {
const timeout = Number.parseInt(String(result), 10);
if (!Number.isFinite(timeout) || timeout < 1000) {
- toast("Invalid timeout value");
+ toast(strings["lsp-invalid-timeout"]);
break;
}
await persistStartupTimeout(serverId, timeout);
- toast(`Startup timeout set to ${timeout} ms`);
+ toast(
+ fillTemplate(strings["lsp-startup-timeout-set"], {
+ timeout,
+ }),
+ );
break;
}
@@ -492,7 +589,7 @@ export default function lspServerDetail(serverId) {
2,
);
const result = await prompt(
- "Initialization Options (JSON)",
+ strings["lsp-initialization-options-json"],
currentJson || "{}",
"textarea",
{
@@ -512,7 +609,7 @@ export default function lspServerDetail(serverId) {
}
await persistInitOptions(serverId, JSON.parse(result));
- toast("Initialization options updated");
+ toast(strings["lsp-initialization-options-updated"]);
break;
}
@@ -523,7 +620,7 @@ export default function lspServerDetail(serverId) {
2,
);
alert(
- "Initialization Options",
+ strings["lsp-initialization-options"],
`${escapeHtml(json)}`,
);
break;
@@ -537,6 +634,9 @@ export default function lspServerDetail(serverId) {
case "ext_documentHighlights":
case "ext_formatting": {
const extKey = key.replace("ext_", "");
+ const feature = getFeatureItems().find(
+ ([featureKey]) => featureKey === key,
+ );
const currentClientConfig = clone(snapshot.override.clientConfig || {});
const currentBuiltins = currentClientConfig.builtinExtensions || {};
@@ -547,7 +647,14 @@ export default function lspServerDetail(serverId) {
[extKey]: value,
},
});
- toast(`${extKey} ${value ? "enabled" : "disabled"}`);
+ toast(
+ fillTemplate(strings["lsp-feature-state-toast"], {
+ feature: feature?.[2] || extKey,
+ state: value
+ ? strings["lsp-state-enabled"]
+ : strings["lsp-state-disabled"],
+ }),
+ );
break;
}
diff --git a/src/settings/lspSettings.js b/src/settings/lspSettings.js
index 58fcb99af..a2db7fbe6 100644
--- a/src/settings/lspSettings.js
+++ b/src/settings/lspSettings.js
@@ -17,7 +17,7 @@ function parseArgsInput(value) {
const parsed = JSON.parse(normalized);
if (!Array.isArray(parsed)) {
- throw new Error("Arguments must be a JSON array");
+ throw new Error(strings["lsp-error-args-must-be-array"]);
}
return parsed.map((entry) => String(entry));
}
@@ -29,23 +29,28 @@ function normalizePackages(value) {
.filter(Boolean);
}
-const INSTALL_METHODS = [
- { value: "manual", text: "Manual binary" },
- { value: "apk", text: "APK package" },
- { value: "npm", text: "npm package" },
- { value: "pip", text: "pip package" },
- { value: "cargo", text: "cargo crate" },
- { value: "shell", text: "Custom shell" },
-];
+function getInstallMethods() {
+ return [
+ { value: "manual", text: strings["lsp-install-method-manual"] },
+ { value: "apk", text: strings["lsp-install-method-apk"] },
+ { value: "npm", text: strings["lsp-install-method-npm"] },
+ { value: "pip", text: strings["lsp-install-method-pip"] },
+ { value: "cargo", text: strings["lsp-install-method-cargo"] },
+ { value: "shell", text: strings["lsp-install-method-shell"] },
+ ];
+}
async function promptInstaller(binaryCommand) {
- const method = await select("Install Method", INSTALL_METHODS);
+ const method = await select(
+ strings["lsp-install-method-title"],
+ getInstallMethods(),
+ );
if (!method) return null;
switch (method) {
case "manual": {
const binaryPath = await prompt(
- "Binary Path (optional)",
+ strings["lsp-binary-path-optional"],
String(binaryCommand || "").includes("/") ? String(binaryCommand) : "",
"text",
);
@@ -62,14 +67,17 @@ async function promptInstaller(binaryCommand) {
case "pip":
case "cargo": {
const packagesInput = await prompt(
- `${method.toUpperCase()} Packages (comma separated)`,
+ strings["lsp-packages-prompt"].replace(
+ "{method}",
+ method.toUpperCase(),
+ ),
"",
"text",
);
if (packagesInput === null) return null;
const packages = normalizePackages(packagesInput);
if (!packages.length) {
- throw new Error("At least one package is required");
+ throw new Error(strings["lsp-error-package-required"]);
}
return {
kind: method,
@@ -79,10 +87,14 @@ async function promptInstaller(binaryCommand) {
};
}
case "shell": {
- const installCommand = await prompt("Install Command", "", "textarea");
+ const installCommand = await prompt(
+ strings["lsp-install-command"],
+ "",
+ "textarea",
+ );
if (installCommand === null) return null;
const updateCommand = await prompt(
- "Update Command (optional)",
+ strings["lsp-update-command-optional"],
String(installCommand || ""),
"textarea",
);
@@ -105,88 +117,138 @@ async function promptInstaller(binaryCommand) {
* @returns {object} Settings page interface
*/
export default function lspSettings() {
- const title = strings?.lsp_settings || "Language Servers";
- const servers = serverRegistry.listServers();
-
- const sortedServers = servers.sort((a, b) => {
- const aEnabled = getServerOverride(a.id).enabled ?? a.enabled;
- const bEnabled = getServerOverride(b.id).enabled ?? b.enabled;
+ const title =
+ strings?.lsp_settings || strings["language servers"] || "Language Servers";
+ const categories = {
+ customServers: strings["settings-category-custom-servers"],
+ servers: strings["settings-category-servers"],
+ };
+ let page = createPage();
- if (aEnabled !== bEnabled) {
- return bEnabled ? 1 : -1;
- }
- return a.label.localeCompare(b.label);
- });
-
- const items = [
- {
- key: "add_custom_server",
- text: "Add Custom Server",
- info: "Register a user-defined language server with install, update, and launch commands",
- index: 0,
+ return {
+ show(goTo) {
+ page = createPage();
+ page.show(goTo);
},
- ];
+ hide() {
+ page.hide();
+ },
+ search(key) {
+ page = createPage();
+ return page.search(key);
+ },
+ restoreList() {
+ page.restoreList();
+ },
+ setTitle(nextTitle) {
+ page.setTitle(nextTitle);
+ },
+ };
+
+ function createPage() {
+ const servers = serverRegistry.listServers();
+
+ const sortedServers = servers.sort((a, b) => {
+ const aEnabled = getServerOverride(a.id).enabled ?? a.enabled;
+ const bEnabled = getServerOverride(b.id).enabled ?? b.enabled;
+
+ if (aEnabled !== bEnabled) {
+ return bEnabled ? 1 : -1;
+ }
+ return a.label.localeCompare(b.label);
+ });
+
+ const items = [
+ {
+ key: "add_custom_server",
+ text: strings["lsp-add-custom-server"],
+ info: strings["settings-info-lsp-add-custom-server"],
+ category: categories.customServers,
+ index: 0,
+ chevron: true,
+ },
+ ];
+
+ for (const server of sortedServers) {
+ const source = server.launcher?.install?.source
+ ? ` • ${server.launcher.install.source}`
+ : "";
+ const languagesList =
+ Array.isArray(server.languages) && server.languages.length
+ ? `${server.languages.join(", ")}${source}`
+ : source.slice(3);
- for (const server of sortedServers) {
- const source = server.launcher?.install?.source
- ? ` • ${server.launcher.install.source}`
- : "";
- const languagesList =
- Array.isArray(server.languages) && server.languages.length
- ? `${server.languages.join(", ")}${source}`
- : source.slice(3);
+ items.push({
+ key: `server:${server.id}`,
+ text: server.label,
+ info: languagesList || undefined,
+ category: categories.servers,
+ chevron: true,
+ });
+ }
items.push({
- key: `server:${server.id}`,
- text: server.label,
- info: languagesList || undefined,
+ note: strings["settings-note-lsp-settings"],
});
- }
- items.push({
- note: "Language servers provide IDE features like autocomplete, diagnostics, and hover information. You can now install, update, and define custom servers from these settings. Managed installers still run inside the terminal/proot environment.",
- });
+ return settingsPage(title, items, callback, undefined, {
+ preserveOrder: true,
+ pageClassName: "detail-settings-page",
+ listClassName: "detail-settings-list",
+ groupByDefault: true,
+ });
+ }
- return settingsPage(title, items, callback, undefined, {
- preserveOrder: true,
- });
+ function refreshVisiblePage() {
+ page.hide();
+ page = createPage();
+ page.show();
+ }
async function callback(key) {
if (key === "add_custom_server") {
try {
- const idInput = await prompt("Server ID", "", "text");
+ const idInput = await prompt(strings["lsp-server-id"], "", "text");
if (idInput === null) return;
const serverId = normalizeServerId(idInput);
if (!serverId) {
- toast("Server id is required");
+ toast(strings["lsp-error-server-id-required"]);
return;
}
- const label = await prompt("Server Label", serverId, "text");
+ const label = await prompt(
+ strings["lsp-server-label"],
+ serverId,
+ "text",
+ );
if (label === null) return;
const languageInput = await prompt(
- "Language IDs (comma separated)",
+ strings["lsp-language-ids"],
"",
"text",
);
if (languageInput === null) return;
const languages = normalizeLanguages(languageInput);
if (!languages.length) {
- toast("At least one language id is required");
+ toast(strings["lsp-error-language-id-required"]);
return;
}
- const binaryCommand = await prompt("Binary Command", "", "text");
+ const binaryCommand = await prompt(
+ strings["lsp-binary-command"],
+ "",
+ "text",
+ );
if (binaryCommand === null) return;
if (!String(binaryCommand).trim()) {
- toast("Binary command is required");
+ toast(strings["lsp-error-binary-command-required"]);
return;
}
const argsInput = await prompt(
- "Binary Args (JSON array)",
+ strings["lsp-binary-args"],
"[]",
"textarea",
{
@@ -206,7 +268,7 @@ export default function lspSettings() {
if (installer === null) return;
const checkCommand = await prompt(
- "Check Command (optional override)",
+ strings["lsp-check-command-optional"],
"",
"text",
);
@@ -228,11 +290,16 @@ export default function lspSettings() {
enabled: true,
});
- toast("Custom server added");
+ toast(strings["lsp-custom-server-added"]);
+ refreshVisiblePage();
const detailPage = lspServerDetail(serverId);
detailPage?.show();
} catch (error) {
- toast(error instanceof Error ? error.message : "Failed to add server");
+ toast(
+ error instanceof Error
+ ? error.message
+ : strings["lsp-error-add-server-failed"],
+ );
}
return;
}
diff --git a/src/settings/mainSettings.js b/src/settings/mainSettings.js
index b6467bbc3..25491d30d 100644
--- a/src/settings/mainSettings.js
+++ b/src/settings/mainSettings.js
@@ -26,103 +26,155 @@ import terminalSettings from "./terminalSettings";
export default function mainSettings() {
const title = strings.settings.capitalize();
+ const categories = {
+ core: strings["settings-category-core"],
+ customizationTools: strings["settings-category-customization-tools"],
+ maintenance: strings["settings-category-maintenance"],
+ aboutAcode: strings["settings-category-about-acode"],
+ supportAcode: strings["settings-category-support-acode"],
+ };
const items = [
{
- key: "about",
- text: strings.about,
- icon: "acode",
- index: 0,
- },
- {
- key: "sponsors",
- text: strings.sponsor,
- icon: "favorite",
- iconColor: "orangered",
- index: 1,
+ key: "app-settings",
+ text: strings["app settings"],
+ icon: "tune",
+ info: strings["settings-info-main-app-settings"],
+ category: categories.core,
+ chevron: true,
},
{
key: "editor-settings",
text: strings["editor settings"],
icon: "text_format",
- index: 3,
+ info: strings["settings-info-main-editor-settings"],
+ category: categories.core,
+ chevron: true,
},
{
- key: "app-settings",
- text: strings["app settings"],
- icon: "tune",
- index: 2,
+ key: "terminal-settings",
+ text: `${strings["terminal settings"]}`,
+ icon: "licons terminal",
+ info: strings["settings-info-main-terminal-settings"],
+ category: categories.core,
+ chevron: true,
+ },
+ {
+ key: "preview-settings",
+ text: strings["preview settings"],
+ icon: "public",
+ info: strings["settings-info-main-preview-settings"],
+ category: categories.core,
+ chevron: true,
},
{
key: "formatter",
text: strings.formatter,
- icon: "stars",
+ icon: "spellcheck",
+ info: strings["settings-info-main-formatter"],
+ category: categories.customizationTools,
+ chevron: true,
},
{
key: "theme",
text: strings.theme,
icon: "color_lenspalette",
- },
- {
- key: "backup-restore",
- text: strings.backup.capitalize() + "/" + strings.restore.capitalize(),
- icon: "cached",
- },
- {
- key: "rateapp",
- text: strings["rate acode"],
- icon: "googleplay",
+ info: strings["settings-info-main-theme"],
+ category: categories.customizationTools,
+ chevron: true,
},
{
key: "plugins",
text: strings["plugins"],
icon: "extension",
+ info: strings["settings-info-main-plugins"],
+ category: categories.customizationTools,
+ chevron: true,
},
{
- key: "reset",
- text: strings["restore default settings"],
- icon: "historyrestore",
- index: 6,
+ key: "lsp-settings",
+ text:
+ strings?.lsp_settings ||
+ strings["language servers"] ||
+ "Language servers",
+ icon: "licons zap",
+ info: strings["settings-info-main-lsp-settings"],
+ category: categories.customizationTools,
+ chevron: true,
},
{
- key: "preview-settings",
- text: strings["preview settings"],
- icon: "play_arrow",
- index: 4,
+ key: "backup-restore",
+ text: `${strings.backup.capitalize()} & ${strings.restore.capitalize()}`,
+ icon: "cached",
+ info: strings["settings-info-main-backup-restore"],
+ category: categories.maintenance,
+ chevron: true,
},
{
- key: "terminal-settings",
- text: `${strings["terminal settings"]}`,
- icon: "licons terminal",
- index: 5,
+ key: "editSettings",
+ text: `${strings["edit"]} settings.json`,
+ icon: "edit",
+ info: strings["settings-info-main-edit-settings"],
+ category: categories.maintenance,
+ chevron: true,
},
{
- key: "lsp-settings",
- text: strings?.lsp_settings || "Language servers",
- icon: "licons zap",
- index: 7,
+ key: "reset",
+ text: strings["restore default settings"],
+ icon: "historyrestore",
+ info: strings["settings-info-main-reset"],
+ category: categories.maintenance,
+ chevron: true,
},
{
- key: "editSettings",
- text: `${strings["edit"]} settings.json`,
- icon: "edit",
+ key: "about",
+ text: strings.about,
+ icon: "info",
+ info: `Version ${BuildInfo.version}`,
+ category: categories.aboutAcode,
+ chevron: true,
+ },
+ {
+ key: "sponsors",
+ text: strings.sponsor,
+ icon: "favorite",
+ info: strings["settings-info-main-sponsors"],
+ category: categories.aboutAcode,
+ chevron: true,
},
{
key: "changeLog",
text: `${strings["changelog"]}`,
icon: "update",
+ info: strings["settings-info-main-changelog"],
+ category: categories.aboutAcode,
+ chevron: true,
+ },
+ {
+ key: "rateapp",
+ text: strings["rate acode"],
+ icon: "star_outline",
+ info: strings["settings-info-main-rateapp"],
+ category: categories.aboutAcode,
+ chevron: true,
},
];
if (IS_FREE_VERSION) {
items.push({
key: "adRewards",
- text: "Earn ad-free time",
+ text: strings["earn ad-free time"],
icon: "play_arrow",
+ info: strings["settings-info-main-ad-rewards"],
+ category: categories.supportAcode,
+ chevron: true,
});
items.push({
key: "removeads",
text: strings["remove ads"],
- icon: "cancel",
+ icon: "block",
+ info: strings["settings-info-main-remove-ads"],
+ category: categories.supportAcode,
+ chevron: true,
});
}
@@ -205,7 +257,11 @@ export default function mainSettings() {
}
}
- const page = settingsPage(title, items, callback);
+ const page = settingsPage(title, items, callback, undefined, {
+ preserveOrder: true,
+ pageClassName: "main-settings-page",
+ listClassName: "main-settings-list",
+ });
page.show();
appSettings.uiSettings["main-settings"] = page;
diff --git a/src/settings/previewSettings.js b/src/settings/previewSettings.js
index d9529f92e..7346ae85d 100644
--- a/src/settings/previewSettings.js
+++ b/src/settings/previewSettings.js
@@ -1,10 +1,13 @@
-import Checkbox from "components/checkbox";
import settingsPage from "components/settingsPage";
import appSettings from "lib/settings";
export default function previewSettings() {
const values = appSettings.value;
const title = strings["preview settings"];
+ const categories = {
+ server: strings["settings-category-server"],
+ preview: strings["settings-category-preview"],
+ };
const PORT_REGEX =
/^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$/;
const items = [
@@ -19,6 +22,8 @@ export default function previewSettings() {
return PORT_REGEX.test(value);
},
},
+ info: strings["settings-info-preview-preview-port"],
+ category: categories.server,
},
{
key: "serverPort",
@@ -31,6 +36,8 @@ export default function previewSettings() {
return PORT_REGEX.test(value);
},
},
+ info: strings["settings-info-preview-server-port"],
+ category: categories.server,
},
{
key: "previewMode",
@@ -40,6 +47,8 @@ export default function previewSettings() {
[appSettings.PREVIEW_MODE_BROWSER, strings.browser],
[appSettings.PREVIEW_MODE_INAPP, strings.inapp],
],
+ info: strings["settings-info-preview-mode"],
+ category: categories.server,
},
{
key: "host",
@@ -57,28 +66,42 @@ export default function previewSettings() {
}
},
},
+ info: strings["settings-info-preview-host"],
+ category: categories.server,
},
{
key: "disableCache",
text: strings["disable in-app-browser caching"],
checkbox: values.disableCache,
+ info: strings["settings-info-preview-disable-cache"],
+ category: categories.preview,
},
{
key: "useCurrentFileForPreview",
text: strings["should_use_current_file_for_preview"],
checkbox: !!values.useCurrentFileForPreview,
+ info: strings["settings-info-preview-use-current-file"],
+ category: categories.preview,
},
{
key: "showConsoleToggler",
text: strings["show console toggler"],
checkbox: values.showConsoleToggler,
+ info: strings["settings-info-preview-show-console-toggler"],
+ category: categories.preview,
},
{
note: strings["preview settings note"],
},
];
- return settingsPage(title, items, callback);
+ return settingsPage(title, items, callback, undefined, {
+ preserveOrder: true,
+ pageClassName: "detail-settings-page",
+ listClassName: "detail-settings-list",
+ infoAsDescription: true,
+ valueInTail: true,
+ });
function callback(key, value) {
appSettings.update({
diff --git a/src/settings/scrollSettings.js b/src/settings/scrollSettings.js
index 1edaa489f..0366f7280 100644
--- a/src/settings/scrollSettings.js
+++ b/src/settings/scrollSettings.js
@@ -38,7 +38,14 @@ export default function scrollSettings() {
},
];
- return settingsPage(title, items, callback);
+ return settingsPage(title, items, callback, undefined, {
+ preserveOrder: true,
+ pageClassName: "detail-settings-page",
+ listClassName: "detail-settings-list",
+ infoAsDescription: true,
+ valueInTail: true,
+ groupByDefault: true,
+ });
function callback(key, value) {
appSettings.update({
diff --git a/src/settings/searchSettings.js b/src/settings/searchSettings.js
index 485b9b907..21ff65602 100644
--- a/src/settings/searchSettings.js
+++ b/src/settings/searchSettings.js
@@ -22,7 +22,12 @@ export default function searchSettings() {
},
];
- return settingsPage(title, items, callback);
+ return settingsPage(title, items, callback, undefined, {
+ preserveOrder: true,
+ pageClassName: "detail-settings-page",
+ listClassName: "detail-settings-list",
+ groupByDefault: true,
+ });
function callback(key, value) {
values[key] = value;
diff --git a/src/settings/terminalSettings.js b/src/settings/terminalSettings.js
index 8821658c9..ca435600e 100644
--- a/src/settings/terminalSettings.js
+++ b/src/settings/terminalSettings.js
@@ -16,6 +16,13 @@ import helpers from "utils/helpers";
export default function terminalSettings() {
const title = strings["terminal settings"];
const values = appSettings.value;
+ const categories = {
+ permissions: strings["settings-category-permissions"],
+ display: strings["settings-category-display"],
+ cursor: strings["settings-category-cursor"],
+ session: strings["settings-category-session"],
+ maintenance: strings["settings-category-maintenance"],
+ };
// Initialize terminal settings with defaults if not present
if (!values.terminalSettings) {
@@ -33,6 +40,8 @@ export default function terminalSettings() {
key: "all_file_access",
text: strings["allFileAccess"],
info: strings["info-all_file_access"],
+ category: categories.permissions,
+ chevron: true,
},
{
key: "fontSize",
@@ -47,6 +56,7 @@ export default function terminalSettings() {
},
},
info: strings["info-fontSize"],
+ category: categories.display,
},
{
key: "fontFamily",
@@ -56,6 +66,7 @@ export default function terminalSettings() {
return fonts.getNames();
},
info: strings["info-fontFamily"],
+ category: categories.display,
},
{
key: "theme",
@@ -72,20 +83,7 @@ export default function terminalSettings() {
const option = this.select.find(([v]) => v === value);
return option ? option[1] : value;
},
- },
- {
- key: "cursorStyle",
- text: strings["terminal:cursor style"],
- value: terminalValues.cursorStyle,
- select: ["block", "underline", "bar"],
- info: strings["info-cursorStyle"],
- },
- {
- key: "cursorInactiveStyle",
- text: strings["terminal:cursor inactive style"],
- value: terminalValues.cursorInactiveStyle,
- select: ["outline", "block", "bar", "underline", "none"],
- info: strings["info-cursorInactiveStyle"],
+ category: categories.display,
},
{
key: "fontWeight",
@@ -105,12 +103,46 @@ export default function terminalSettings() {
"900",
],
info: strings["info-fontWeight"],
+ category: categories.display,
+ },
+ {
+ key: "letterSpacing",
+ text: strings["letter spacing"],
+ value: terminalValues.letterSpacing,
+ prompt: strings["letter spacing"],
+ promptType: "number",
+ info: strings["info-letterSpacing"],
+ category: categories.display,
+ },
+ {
+ key: "fontLigatures",
+ text: strings["font ligatures"],
+ checkbox: terminalValues.fontLigatures,
+ info: strings["info-fontLigatures"],
+ category: categories.display,
+ },
+ {
+ key: "cursorStyle",
+ text: strings["terminal:cursor style"],
+ value: terminalValues.cursorStyle,
+ select: ["block", "underline", "bar"],
+ info: strings["info-cursorStyle"],
+ category: categories.cursor,
+ },
+ {
+ key: "cursorInactiveStyle",
+ text: strings["terminal:cursor inactive style"],
+ value: terminalValues.cursorInactiveStyle,
+ select: ["outline", "block", "bar", "underline", "none"],
+ info: strings["info-cursorInactiveStyle"],
+ category: categories.cursor,
},
{
key: "cursorBlink",
text: strings["terminal:cursor blink"],
checkbox: terminalValues.cursorBlink,
info: strings["info-cursorBlink"],
+ category: categories.cursor,
},
{
key: "scrollback",
@@ -125,6 +157,7 @@ export default function terminalSettings() {
},
},
info: strings["info-scrollback"],
+ category: categories.session,
},
{
key: "tabStopWidth",
@@ -139,57 +172,58 @@ export default function terminalSettings() {
},
},
info: strings["info-tabStopWidth"],
- },
- {
- key: "letterSpacing",
- text: strings["letter spacing"],
- value: terminalValues.letterSpacing,
- prompt: strings["letter spacing"],
- promptType: "number",
- info: strings["info-letterSpacing"],
+ category: categories.session,
},
{
key: "convertEol",
text: strings["terminal:convert eol"],
checkbox: terminalValues.convertEol,
+ info: strings["settings-info-terminal-convert-eol"],
+ category: categories.session,
},
{
key: "imageSupport",
text: strings["terminal:image support"],
checkbox: terminalValues.imageSupport,
info: strings["info-imageSupport"],
- },
- {
- key: "fontLigatures",
- text: strings["font ligatures"],
- checkbox: terminalValues.fontLigatures,
- info: strings["info-fontLigatures"],
+ category: categories.session,
},
{
key: "confirmTabClose",
text: strings["terminal:confirm tab close"],
checkbox: terminalValues.confirmTabClose !== false,
info: strings["info-confirmTabClose"],
+ category: categories.session,
},
{
key: "backup",
text: strings.backup,
info: strings["info-backup"],
+ category: categories.maintenance,
+ chevron: true,
},
{
key: "restore",
text: strings.restore,
info: strings["info-restore"],
+ category: categories.maintenance,
+ chevron: true,
},
{
key: "uninstall",
text: strings.uninstall,
info: strings["info-uninstall"],
+ category: categories.maintenance,
+ chevron: true,
},
];
return settingsPage(title, items, callback, undefined, {
preserveOrder: true,
+ pageClassName: "detail-settings-page",
+ listClassName: "detail-settings-list",
+ infoAsDescription: true,
+ valueInTail: true,
});
/**
@@ -205,11 +239,11 @@ export default function terminalSettings() {
if (boolStr === "true") {
system.requestStorageManager(console.log, console.error);
} else {
- alert("This feature is not available.");
+ alert(strings["feature not available"]);
}
}, alert);
} else {
- alert("This feature is not available.");
+ alert(strings["feature not available"]);
}
return;
diff --git a/src/styles/wideScreen.scss b/src/styles/wideScreen.scss
index d74235efc..ea12e7844 100644
--- a/src/styles/wideScreen.scss
+++ b/src/styles/wideScreen.scss
@@ -221,24 +221,24 @@
}
.plugin-toggle-switch {
- min-width: 140px;
- padding: 0.75rem;
+ min-width: auto;
+ padding: 0;
.plugin-toggle-track {
- width: 52px;
- height: 28px;
- border-radius: 14px;
+ width: 2.8rem;
+ height: 1.65rem;
+ border-radius: 999px;
}
.plugin-toggle-thumb {
- width: 24px;
- height: 24px;
- left: 2px;
- top: 2px;
+ width: 1.25rem;
+ height: 1.25rem;
+ left: 0;
+ top: 0;
}
&[data-enabled="true"] .plugin-toggle-thumb {
- left: 26px;
+ transform: translateX(1.12rem);
}
}
}
@@ -421,4 +421,4 @@
}
}
}
-}
\ No newline at end of file
+}