From 94bc485840fb4d032dad87dbb4f8f869fefe49b8 Mon Sep 17 00:00:00 2001 From: Raunak Raj <71929976+bajrangCoder@users.noreply.github.com> Date: Sun, 8 Mar 2026 16:03:36 +0530 Subject: [PATCH 01/14] feat: redesign the settings with grouping support --- src/components/searchbar/index.js | 67 +++- src/components/settingsPage.js | 251 +++++++++++--- src/components/settingsPage.scss | 537 ++++++++++++++++++++++++++++++ src/lib/acode.js | 9 + src/settings/appSettings.js | 202 +++++++---- src/settings/backupRestore.js | 9 +- src/settings/editorSettings.js | 170 ++++++---- src/settings/filesSettings.js | 7 +- src/settings/formatterSettings.js | 65 ++-- src/settings/helpSettings.js | 11 +- src/settings/mainSettings.js | 142 +++++--- src/settings/previewSettings.js | 23 +- src/settings/scrollSettings.js | 9 +- src/settings/searchSettings.js | 7 +- src/settings/terminalSettings.js | 27 ++ 15 files changed, 1263 insertions(+), 273 deletions(-) create mode 100644 src/components/settingsPage.scss diff --git a/src/components/searchbar/index.js b/src/components/searchbar/index.js index a0b195358..d6fdad317 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,63 @@ 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 groups = new Map(); + let hasGroups = false; + + result.forEach(($item) => { + const label = $item.dataset.searchGroup; + if (!label) return; + hasGroups = true; + + if (!groups.has(label)) { + groups.set(label, []); + } + groups.get(label).push($item); + }); + + if (!hasGroups) return result.map(cloneSearchItem); + + const countLabel = `${result.length} ${result.length === 1 ? "RESULT" : "RESULTS"}`; + const content = [ +
{countLabel}
, + ]; + + groups.forEach((items, label) => { + content.push( +
+
{label}
+
+ {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..61ae7ccbe 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] - Prefer item.info as subtitle instead of item.value + * @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,11 +52,20 @@ 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; + if (options.listClassName) { + $list.classList.add(...options.listClassName.split(" ").filter(Boolean)); + } + settings = settings.filter((setting) => { if ("note" in setting) { note = setting.note; @@ -82,15 +98,20 @@ export default function settingsPage( }); } : null, - type === "united" - ? (key) => { - const $items = []; - Object.values(appSettings.uiSettings).forEach((page) => { - $items.push(...page.search(key)); - }); - return $items; - } - : null, + (key) => { + if (type === "united") { + const $items = []; + Object.values(appSettings.uiSettings).forEach((page) => { + $items.push(...page.search(key)); + }); + return $items; + } + + return state.searchItems.filter((item) => { + const text = item.textContent.toLowerCase(); + return text.match(key, "i"); + }); + }, ); $page.header.append($search); @@ -103,24 +124,34 @@ export default function settingsPage( actionStack.remove(title); }; - listItems($list, settings, callback, options); + const state = listItems($list, settings, callback, { + defaultSearchGroup: title, + ...options, + }); + let children = [...state.children]; $page.body = $list; - /**@type {HTMLElement[]} */ - const children = [...$list.children]; + const searchableItems = state.searchItems; if (note) { - $page.append( + const $note = (
- + {strings.info}

-
, + ); + + if (options.notePosition === "top") { + children.unshift($note); + } else { + children.push($note); + } } + $list.content = children; $page.append(
); return { @@ -156,7 +187,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 +217,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 +234,12 @@ export default function settingsPage( * @param {SettingsPageOptions} [options={}] */ function listItems($list, items, callback, options = {}) { - const $items = []; + const renderedItems = []; + const $searchItems = []; + const $content = []; + /** @type {HTMLElement | null} */ + let $currentSectionCard = null; + let currentCategory = null; // sort settings by text before rendering (unless preserveOrder is true) if (!options.preserveOrder) { @@ -212,11 +251,12 @@ function listItems($list, items, callback, options = {}) { items.forEach((item) => { const $setting = Ref(); const $settingName = Ref(); + const $tail = Ref(); /**@type {HTMLDivElement} */ const $item = (
@@ -229,44 +269,141 @@ function listItems($list, items, callback, options = {}) { {item.text?.capitalize?.(0) ?? item.text}
+
); let $checkbox, $valueText; - - if (item.info) { - $settingName.append( - { - alert(strings.info, item.info); - }} - >, - ); + let $trailingValueText; + const subtitle = getSubtitleText(item, options); + const showInfoAsSubtitle = + options.infoAsDescription || (item.value === undefined && item.info); + const searchGroup = + item.searchGroup || item.category || options.defaultSearchGroup; + const hasSubtitle = + subtitle !== undefined && subtitle !== null && subtitle !== ""; + const shouldShowTailChevron = + item.chevron || + (!item.select && + Boolean(item.prompt || item.file || item.folder || item.link)); + + if (searchGroup) { + $item.dataset.searchGroup = searchGroup; } + let subtitleRendered = false; + 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) { + $tail.el.appendChild($checkbox); + } else if (subtitle !== undefined) { $valueText = ; - setValueText($valueText, item.value, item.valueText?.bind(item)); + setValueText( + $valueText, + subtitle, + showInfoAsSubtitle ? null : item.valueText?.bind(item), + ); + if (showInfoAsSubtitle) { + $valueText.classList.add("setting-info"); + } $setting.append($valueText); - setColor($item, item.value); + subtitleRendered = true; + if (!showInfoAsSubtitle) { + setColor($item, item.value); + } + } + + if (subtitleRendered) { + $item.classList.add("has-subtitle"); + } else { + $item.classList.add("compact"); + } + + if ( + options.valueInTail && + item.value !== undefined && + item.checkbox === undefined && + typeof item.value !== "boolean" + ) { + $trailingValueText = ( + + ); + setValueText($trailingValueText, item.value, item.valueText?.bind(item)); + + const $valueDisplay = ( +
+ {$trailingValueText} + {item.select + ? + : null} +
+ ); + $tail.el.append($valueDisplay); + } + + if (shouldShowTailChevron) { + $tail.el.append( + , + ); + } + + if (!$tail.el.children.length) { + $tail.el.remove(); } if (Number.isInteger(item.index)) { - $items.splice(item.index, 0, $item); + renderedItems.splice(item.index, 0, { item, $item }); } else { - $items.push($item); + renderedItems.push({ item, $item }); } $item.addEventListener("click", onclick); + $searchItems.push($item); }); - $list.content = $items; + 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 shouldShowLabel = category !== "__default__"; + const $label = shouldShowLabel + ?
{category}
+ : null; + $currentSectionCard =
; + $content.push( +
+ {$label} + {$currentSectionCard} +
, + ); + } + + $currentSectionCard.append($item); + }); + + const topLevelChildren = $content.length + ? $content + : renderedItems.map(({ $item }) => $item); + + $list.content = topLevelChildren; + + return { + children: topLevelChildren, + searchItems: $searchItems, + }; /** * Click handler for $list @@ -274,8 +411,8 @@ 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); if (!item) return; @@ -294,25 +431,32 @@ function listItems($list, items, callback, options = {}) { const $valueText = $target.get(".value"); const $checkbox = $target.get(".input-checkbox"); + const $trailingValueText = $target.get(".setting-trailing-value"); let res; + let shouldUpdateValue = false; try { if (options) { res = await select(text, options, { default: value, }); + shouldUpdateValue = res !== undefined; } else if (checkbox !== undefined) { $checkbox.toggle(); res = $checkbox.checked; + shouldUpdateValue = true; } else if (promptText) { res = await prompt(promptText, value, promptType, promptOptions); if (res === null) return; + shouldUpdateValue = true; } else if (file || folder) { const mode = file ? "file" : "folder"; const { url } = await FileBrowser(mode); res = url; + shouldUpdateValue = true; } else if (selectColor) { res = await colorPicker(value); + shouldUpdateValue = true; } else if (link) { system.openInBrowser(link); return; @@ -321,13 +465,25 @@ function listItems($list, items, callback, options = {}) { window.log("error", error); } - item.value = res; - setValueText($valueText, res, valueText?.bind(item)); - setColor($target, res); + if (shouldUpdateValue) { + item.value = res; + setValueText($valueText, res, valueText?.bind(item)); + setValueText($trailingValueText, res, valueText?.bind(item)); + setColor($target, res); + } + callback.call($target, key, item.value); } } +function getSubtitleText(item, options) { + if (options.infoAsDescription) { + return item.info; + } + + return item.value ?? item.info; +} + /** * Sets color decoration of a setting * @param {HTMLDivElement} $setting @@ -357,10 +513,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..1e651c09c --- /dev/null +++ b/src/components/settingsPage.scss @@ -0,0 +1,537 @@ +wc-page.main-settings-page { + background: var(--secondary-color); + + .main-settings-list { + 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.15rem 1rem; + font-size: 0.82rem; + font-weight: 700; + line-height: 1.25; + text-transform: uppercase; + letter-spacing: 0.06em; + color: color-mix(in srgb, var(--secondary-text-color), transparent 24%); + } + + .settings-section-label { + padding: 0.5rem 1rem 0.55rem; + font-size: 0.78rem; + font-weight: 700; + line-height: 1.25; + text-transform: uppercase; + letter-spacing: 0.06em; + color: color-mix(in srgb, var(--active-color), transparent 30%); + } + + .settings-section-card { + width: 100%; + overflow: hidden; + box-sizing: border-box; + } + + .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 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.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: 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: 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: color-mix(in srgb, var(--secondary-text-color), transparent 40%); + } + + @media screen and (min-width: 768px) { + .main-settings-list { + padding-left: 0.5rem; + padding-right: 0.5rem; + } + } + + .icon { + &:active, + &.active { + transform: none; + background-color: transparent !important; + } + } +} + +wc-page.detail-settings-page { + background: var(--secondary-color); + + .detail-settings-list { + 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.15rem 1rem; + font-size: 0.82rem; + font-weight: 700; + line-height: 1.25; + text-transform: uppercase; + letter-spacing: 0.06em; + color: color-mix(in srgb, var(--secondary-text-color), transparent 24%); + } + + .settings-section-label { + padding: 0.5rem 1rem 0.55rem; + font-size: 0.78rem; + font-weight: 700; + line-height: 1.25; + text-transform: uppercase; + letter-spacing: 0.06em; + color: color-mix(in srgb, var(--active-color), transparent 30%); + } + + .settings-section-card { + width: 100%; + overflow: hidden; + box-sizing: border-box; + } + + .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 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.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: 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.14rem; + + > .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: 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: auto; + align-self: center; + } + } + + .detail-settings-list > .list-item.has-subtitle > .container, + .settings-section-card > .list-item.has-subtitle > .container { + padding-top: 0.12rem; + } + + .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: color-mix(in srgb, var(--secondary-text-color), transparent 18%); + box-sizing: border-box; + + &.is-select { + gap: 0.15rem; + } + } + + .setting-trailing-value { + font-size: 0.88rem; + line-height: 1.2; + color: inherit; + text-transform: none; + white-space: nowrap; + } + + .setting-value-icon, + .settings-chevron { + display: flex; + align-items: center; + justify-content: center; + color: color-mix(in srgb, var(--secondary-text-color), transparent 40%); + } + + .setting-value-icon { + width: 1rem; + min-width: 1rem; + height: 1rem; + font-size: 1rem; + } + + .settings-chevron { + width: 1.2rem; + min-width: 1.2rem; + height: 1.2rem; + margin-left: 0.1rem; + font-size: 1.1rem; + } + + .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 color-mix(in srgb, var(--border-color), transparent 6%); + border-radius: 999px; + 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: 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; + } + } + + .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 color-mix(in srgb, var(--active-color), transparent 60%); + border-radius: 10px; + 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: 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: 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; + } + } + + .icon { + &:active, + &.active { + transform: none; + background-color: transparent !important; + } + } +} + +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/lib/acode.js b/src/lib/acode.js index 9ab4c414b..97305e761 100644 --- a/src/lib/acode.js +++ b/src/lib/acode.js @@ -677,6 +677,15 @@ export default class Acode { id, settings.list, settings.cb, + undefined, + { + preserveOrder: true, + pageClassName: "detail-settings-page", + listClassName: "detail-settings-list", + infoAsDescription: true, + valueInTail: true, + groupByDefault: true, + }, ); } diff --git a/src/settings/appSettings.js b/src/settings/appSettings.js index f23d3188a..371ed841c 100644 --- a/src/settings/appSettings.js +++ b/src/settings/appSettings.js @@ -20,9 +20,13 @@ export default function otherSettings() { const title = strings["app settings"].capitalize(); 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: "App language and translated labels", + category: "Interface", }, { key: "animation", @@ -34,58 +38,15 @@ export default function otherSettings() { ["yes", strings.yes], ["system", strings.system], ], + info: "Transition effects throughout the app", + category: "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: "Hide the system status bar", + category: "Interface", }, { key: "keyboardMode", @@ -102,26 +63,36 @@ export default function otherSettings() { strings["no suggestions aggressive"], ], ], + info: "How the software keyboard behaves while editing", + category: "Interface", }, { key: "vibrateOnTap", text: strings["vibrate on tap"], checkbox: values.vibrateOnTap, + info: "Haptic feedback on taps and controls", + category: "Interface", }, { - key: "rememberFiles", - text: strings["remember opened files"], - checkbox: values.rememberFiles, + key: "floatingButton", + text: strings["floating button"], + checkbox: values.floatingButton, + info: "Quick action overlay", + category: "Interface", }, { - key: "rememberFolders", - text: strings["remember opened folders"], - checkbox: values.rememberFolders, + key: "showSideButtons", + text: strings["show side buttons"], + checkbox: values.showSideButtons, + info: "Show the extra side action buttons", + category: "Interface", }, { - key: "floatingButton", - text: strings["floating button"], - checkbox: values.floatingButton, + key: "showSponsorSidebarApp", + text: `${strings.sponsor} (${strings.sidebar})`, + checkbox: values.showSponsorSidebarApp, + info: "Show the sponsor entry in the sidebar", + category: "Interface", }, { key: "openFileListPos", @@ -133,12 +104,15 @@ export default function otherSettings() { [appSettings.OPEN_FILE_LIST_POS_HEADER, strings.header], [appSettings.OPEN_FILE_LIST_POS_BOTTOM, strings.bottom], ], + info: "Where the active files list appears", + category: "Interface", }, { key: "quickTools", text: strings["quick tools"], checkbox: !!values.quickTools, info: strings["info-quickTools"], + category: "Interface", }, { key: "quickToolsTriggerMode", @@ -148,6 +122,15 @@ export default function otherSettings() { [appSettings.QUICKTOOLS_TRIGGER_MODE_CLICK, "click"], [appSettings.QUICKTOOLS_TRIGGER_MODE_TOUCH, "touch"], ], + info: "How quick tools open on tap or touch", + category: "Interface", + }, + { + key: "quickToolsSettings", + text: strings["shortcut buttons"], + info: "Reorder and customise quick tool shortcuts", + category: "Interface", + chevron: true, }, { key: "touchMoveThreshold", @@ -160,26 +143,36 @@ export default function otherSettings() { return value >= 0; }, }, - }, - { - key: "quickToolsSettings", - text: strings["shortcut buttons"], - index: 0, + info: "Minimum movement before touch drag is detected", + category: "Interface", }, { key: "fontManager", text: strings["fonts"], - index: 1, + info: "Install or remove app fonts", + category: "Personalization", + chevron: true, }, { - key: "showSideButtons", - text: strings["show side buttons"], - checkbox: values.showSideButtons, + key: "rememberFiles", + text: strings["remember opened files"], + checkbox: values.rememberFiles, + info: "Restore the files you had open last time", + category: "Workspace", }, { - key: "showSponsorSidebarApp", - text: `${strings.sponsor} (${strings.sidebar})`, - checkbox: values.showSponsorSidebarApp, + key: "rememberFolders", + text: strings["remember opened folders"], + checkbox: values.rememberFolders, + info: "Restore folders from the previous session", + category: "Workspace", + }, + { + key: "retryRemoteFsAfterFail", + text: strings["retry ftp/sftp when fail"], + checkbox: values.retryRemoteFsAfterFail, + info: "Retry remote file operations after a failed transfer", + category: "Workspace", }, { key: "excludeFolders", @@ -194,6 +187,8 @@ export default function otherSettings() { }); }, }, + info: "Folders and patterns to skip while searching or scanning", + category: "Workspace", }, { key: "defaultFileEncoding", @@ -208,10 +203,73 @@ export default function otherSettings() { return [id, encoding.label]; }), ], + info: "Default encoding when opening or creating files", + category: "Workspace", + }, + { + key: "keybindings", + text: strings["key bindings"], + value: "edit", + valueText: (value) => (value === "reset" ? strings.reset : strings.edit), + select: [ + ["edit", strings.edit], + ["reset", strings.reset], + ], + info: "Edit the key bindings file or reset shortcuts", + category: "Advanced", + }, + { + key: "confirmOnExit", + text: strings["confirm on exit"], + checkbox: values.confirmOnExit, + info: "Ask before leaving the app", + category: "Advanced", + }, + { + key: "checkFiles", + text: strings["check file changes"], + checkbox: values.checkFiles, + info: "Detect external file changes and refresh editors", + category: "Advanced", + }, + { + key: "checkForAppUpdates", + text: strings["check for app updates"], + checkbox: values.checkForAppUpdates, + info: strings["info-checkForAppUpdates"], + category: "Advanced", + }, + { + key: "console", + text: strings.console, + value: values.console, + select: [appSettings.CONSOLE_LEGACY, appSettings.CONSOLE_ERUDA], + info: "Which debug console integration to use", + category: "Advanced", + }, + { + key: "developerMode", + text: strings["developer mode"], + checkbox: values.developerMode, + info: strings["info-developermode"], + category: "Advanced", + }, + { + key: "cleanInstallState", + text: strings["clean install state"], + info: "Clear stored install state used by onboarding and setup flows", + category: "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) { 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..48bc75e19 100644 --- a/src/settings/editorSettings.js +++ b/src/settings/editorSettings.js @@ -8,6 +8,13 @@ export default function editorSettings() { const title = strings["editor settings"]; const values = appSettings.value; const items = [ + { + key: "scroll-settings", + text: strings["scroll settings"], + info: "Scrollbar size, speed, and gesture behaviour", + category: "Navigation", + chevron: true, + }, { key: "autosave", text: strings.autosave, @@ -21,6 +28,8 @@ export default function editorSettings() { return value >= 1000 || value === 0; }, }, + info: "Automatically save changes after a delay", + category: "Editing", }, { key: "fontSize", @@ -31,16 +40,15 @@ export default function editorSettings() { required: true, match: constants.FONT_SIZE, }, - }, - { - key: "shiftClickSelection", - text: strings["shift click selection"], - checkbox: values.shiftClickSelection, + info: "Editor text size", + category: "Editing", }, { key: "softTab", text: strings["soft tab"], checkbox: values.softTab, + info: "Use spaces instead of tabs", + category: "Editing", }, { key: "tabSize", @@ -54,16 +62,67 @@ export default function editorSettings() { return value >= 1 && value <= 8; }, }, + info: "Number of spaces for each tab step", + category: "Editing", + }, + { + key: "formatOnSave", + text: strings["format on save"], + checkbox: values.formatOnSave, + info: "Run the formatter when saving files", + category: "Editing", + }, + { + key: "editorFont", + text: strings["editor font"], + value: values.editorFont, + get select() { + return fonts.getNames(); + }, + info: "Typeface used in the editor", + category: "Editing", + }, + { + key: "liveAutoCompletion", + text: strings["live autocompletion"], + checkbox: values.liveAutoCompletion, + info: "Show suggestions while you type", + category: "Editing", + }, + { + key: "textWrap", + text: strings["text wrap"], + checkbox: values.textWrap, + info: "Wrap long lines inside the editor", + category: "Display", + }, + { + key: "hardWrap", + text: strings["hard wrap"], + checkbox: values.hardWrap, + info: "Insert line breaks instead of only wrapping visually", + category: "Display", }, { key: "linenumbers", text: strings["show line numbers"], checkbox: values.linenumbers, + info: "Show the gutter with line numbers", + category: "Display", + }, + { + key: "relativeLineNumbers", + text: strings["relative line numbers"], + checkbox: values.relativeLineNumbers, + info: "Show distance from the current line", + category: "Display", }, { key: "lintGutter", text: strings["lint gutter"] || "Show lint gutter", checkbox: values.lintGutter ?? true, + info: "Show diagnostics and lint markers in the gutter", + category: "Display", }, { key: "lineHeight", @@ -77,52 +136,22 @@ export default function editorSettings() { return value >= 1 && value <= 2; }, }, - }, - { - key: "formatOnSave", - text: strings["format on save"], - checkbox: values.formatOnSave, + info: "Vertical spacing between lines", + category: "Display", }, { key: "showSpaces", text: strings["show spaces"], checkbox: values.showSpaces, + info: "Display visible whitespace markers", + category: "Display", }, { - key: "editorFont", - text: strings["editor font"], - value: values.editorFont, - get select() { - return fonts.getNames(); - }, - }, - { - key: "liveAutoCompletion", - text: strings["live autocompletion"], - checkbox: values.liveAutoCompletion, - }, - // { - // 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: "colorPreview", + text: strings["color preview"], + checkbox: values.colorPreview, + info: "Preview color values inline", + category: "Display", }, { key: "teardropSize", @@ -137,60 +166,53 @@ export default function editorSettings() { [30, strings.medium], [60, strings.large], ], + info: "Cursor handle size for touch editing", + category: "Cursor & Selection", }, { - key: "relativeLineNumbers", - text: strings["relative line numbers"], - checkbox: values.relativeLineNumbers, + key: "shiftClickSelection", + text: strings["shift click selection"], + checkbox: values.shiftClickSelection, + info: "Extend selection with shift + tap or click", + category: "Cursor & Selection", }, - // { - // key: "elasticTabstops", - // text: strings["elastic tabstops"], - // checkbox: values.elasticTabstops, - // }, { key: "rtlText", text: strings["line based rtl switching"], checkbox: values.rtlText, + info: "Switch right-to-left behaviour per line", + category: "Cursor & Selection", }, - { - 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, + info: "Dim fold markers until they are needed", + category: "Cursor & Selection", }, { key: "rainbowBrackets", text: strings["rainbow brackets"] || "Rainbow brackets", checkbox: values.rainbowBrackets ?? true, + info: "Color matching brackets by nesting level", + category: "Cursor & Selection", }, { 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: "Show indentation guide lines", + category: "Cursor & Selection", }, ]; - 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 +223,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..44557d1f9 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: "Assign a formatter to each language. Install formatter plugins to see more options.", }); - 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/mainSettings.js b/src/settings/mainSettings.js index b6467bbc3..b8b058458 100644 --- a/src/settings/mainSettings.js +++ b/src/settings/mainSettings.js @@ -28,88 +28,124 @@ export default function mainSettings() { const title = strings.settings.capitalize(); 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: "Language, behavior, and quick tools", + category: "Core", + chevron: true, }, { key: "editor-settings", text: strings["editor settings"], icon: "text_format", - index: 3, + info: "Font, tabs, autocomplete, and display", + category: "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: "Theme, fonts, shell, and scrollback", + category: "Core", + chevron: true, + }, + { + key: "preview-settings", + text: strings["preview settings"], + icon: "public", + info: "Live preview, rendering, ports, and browser mode", + category: "Core", + chevron: true, }, { key: "formatter", text: strings.formatter, - icon: "stars", + icon: "spellcheck", + info: "Per-language format tools", + category: "Appearance & Tools", + 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: "App theme, contrast, and custom colors", + category: "Appearance & Tools", + chevron: true, }, { key: "plugins", text: strings["plugins"], icon: "extension", - }, - { - key: "reset", - text: strings["restore default settings"], - icon: "historyrestore", - index: 6, - }, - { - key: "preview-settings", - text: strings["preview settings"], - icon: "play_arrow", - index: 4, - }, - { - key: "terminal-settings", - text: `${strings["terminal settings"]}`, - icon: "licons terminal", - index: 5, + info: "Manage installed extensions and plugin actions", + category: "Appearance & Tools", + chevron: true, }, { key: "lsp-settings", text: strings?.lsp_settings || "Language servers", icon: "licons zap", - index: 7, + info: "Configure language servers and code intelligence", + category: "Appearance & Tools", + chevron: true, + }, + { + key: "backup-restore", + text: `${strings.backup.capitalize()} & ${strings.restore.capitalize()}`, + icon: "cached", + info: "Export or import your settings", + category: "Data", + chevron: true, }, { key: "editSettings", text: `${strings["edit"]} settings.json`, icon: "edit", + info: "Advanced raw configuration", + category: "Data", + chevron: true, + }, + { + key: "reset", + text: strings["restore default settings"], + icon: "historyrestore", + info: "Reset the app back to its default configuration", + category: "Data", + chevron: true, + }, + { + key: "about", + text: strings.about, + icon: "info", + info: `Version ${BuildInfo.version}`, + category: "About", + chevron: true, + }, + { + key: "sponsors", + text: strings.sponsor, + icon: "favorite", + info: "Support Acode development", + category: "About", + chevron: true, }, { key: "changeLog", text: `${strings["changelog"]}`, icon: "update", + info: "Recent updates and release notes", + category: "About", + chevron: true, + }, + { + key: "rateapp", + text: strings["rate acode"], + icon: "star_outline", + info: "Rate Acode on Google Play", + category: "About", + chevron: true, }, ]; @@ -118,11 +154,17 @@ export default function mainSettings() { key: "adRewards", text: "Earn ad-free time", icon: "play_arrow", + info: "Watch ads to unlock temporary ad-free access", + category: "Support", + chevron: true, }); items.push({ key: "removeads", text: strings["remove ads"], - icon: "cancel", + icon: "block", + info: "Unlock permanent ad-free access", + category: "Support", + chevron: true, }); } @@ -205,7 +247,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..9e69e50a0 100644 --- a/src/settings/previewSettings.js +++ b/src/settings/previewSettings.js @@ -1,4 +1,3 @@ -import Checkbox from "components/checkbox"; import settingsPage from "components/settingsPage"; import appSettings from "lib/settings"; @@ -19,6 +18,8 @@ export default function previewSettings() { return PORT_REGEX.test(value); }, }, + info: "Port used by the live preview server", + category: "Network", }, { key: "serverPort", @@ -31,6 +32,8 @@ export default function previewSettings() { return PORT_REGEX.test(value); }, }, + info: "Port used by the internal app server", + category: "Network", }, { key: "previewMode", @@ -40,6 +43,8 @@ export default function previewSettings() { [appSettings.PREVIEW_MODE_BROWSER, strings.browser], [appSettings.PREVIEW_MODE_INAPP, strings.inapp], ], + info: "Where preview opens when you launch it", + category: "Network", }, { key: "host", @@ -57,28 +62,42 @@ export default function previewSettings() { } }, }, + info: "Hostname used when opening the preview URL", + category: "Network", }, { key: "disableCache", text: strings["disable in-app-browser caching"], checkbox: values.disableCache, + info: "Always reload content in the in-app browser", + category: "Behavior", }, { key: "useCurrentFileForPreview", text: strings["should_use_current_file_for_preview"], checkbox: !!values.useCurrentFileForPreview, + info: "Prefer the current file when starting preview", + category: "Behavior", }, { key: "showConsoleToggler", text: strings["show console toggler"], checkbox: values.showConsoleToggler, + info: "Show the console button in preview", + category: "Behavior", }, { 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..4bf7efe17 100644 --- a/src/settings/terminalSettings.js +++ b/src/settings/terminalSettings.js @@ -33,6 +33,8 @@ export default function terminalSettings() { key: "all_file_access", text: strings["allFileAccess"], info: strings["info-all_file_access"], + category: "Access", + chevron: true, }, { key: "fontSize", @@ -47,6 +49,7 @@ export default function terminalSettings() { }, }, info: strings["info-fontSize"], + category: "Appearance", }, { key: "fontFamily", @@ -56,6 +59,7 @@ export default function terminalSettings() { return fonts.getNames(); }, info: strings["info-fontFamily"], + category: "Appearance", }, { key: "theme", @@ -72,6 +76,7 @@ export default function terminalSettings() { const option = this.select.find(([v]) => v === value); return option ? option[1] : value; }, + category: "Appearance", }, { key: "cursorStyle", @@ -79,6 +84,7 @@ export default function terminalSettings() { value: terminalValues.cursorStyle, select: ["block", "underline", "bar"], info: strings["info-cursorStyle"], + category: "Cursor", }, { key: "cursorInactiveStyle", @@ -86,6 +92,7 @@ export default function terminalSettings() { value: terminalValues.cursorInactiveStyle, select: ["outline", "block", "bar", "underline", "none"], info: strings["info-cursorInactiveStyle"], + category: "Cursor", }, { key: "fontWeight", @@ -105,12 +112,14 @@ export default function terminalSettings() { "900", ], info: strings["info-fontWeight"], + category: "Appearance", }, { key: "cursorBlink", text: strings["terminal:cursor blink"], checkbox: terminalValues.cursorBlink, info: strings["info-cursorBlink"], + category: "Cursor", }, { key: "scrollback", @@ -125,6 +134,7 @@ export default function terminalSettings() { }, }, info: strings["info-scrollback"], + category: "Behavior", }, { key: "tabStopWidth", @@ -139,6 +149,7 @@ export default function terminalSettings() { }, }, info: strings["info-tabStopWidth"], + category: "Behavior", }, { key: "letterSpacing", @@ -147,49 +158,65 @@ export default function terminalSettings() { prompt: strings["letter spacing"], promptType: "number", info: strings["info-letterSpacing"], + category: "Appearance", }, { key: "convertEol", text: strings["terminal:convert eol"], checkbox: terminalValues.convertEol, + info: "Convert line endings when pasting or rendering output", + category: "Behavior", }, { key: "imageSupport", text: strings["terminal:image support"], checkbox: terminalValues.imageSupport, info: strings["info-imageSupport"], + category: "Behavior", }, { key: "fontLigatures", text: strings["font ligatures"], checkbox: terminalValues.fontLigatures, info: strings["info-fontLigatures"], + category: "Appearance", }, { key: "confirmTabClose", text: strings["terminal:confirm tab close"], checkbox: terminalValues.confirmTabClose !== false, info: strings["info-confirmTabClose"], + category: "Behavior", }, { key: "backup", text: strings.backup, info: strings["info-backup"], + category: "Data", + chevron: true, }, { key: "restore", text: strings.restore, info: strings["info-restore"], + category: "Data", + chevron: true, }, { key: "uninstall", text: strings.uninstall, info: strings["info-uninstall"], + category: "Data", + chevron: true, }, ]; return settingsPage(title, items, callback, undefined, { preserveOrder: true, + pageClassName: "detail-settings-page", + listClassName: "detail-settings-list", + infoAsDescription: true, + valueInTail: true, }); /** From 1649cc2a3b03c807e9310fc11c2eda8efd8acc2e Mon Sep 17 00:00:00 2001 From: Raunak Raj <71929976+bajrangCoder@users.noreply.github.com> Date: Sun, 8 Mar 2026 16:32:22 +0530 Subject: [PATCH 02/14] fixed stuffs --- src/components/settingsPage.js | 12 ++-- src/components/settingsPage.scss | 4 +- src/lib/acode.js | 1 - src/settings/lspServerDetail.js | 94 ++++++++++++++++++++++++++------ src/settings/lspSettings.js | 5 ++ 5 files changed, 92 insertions(+), 24 deletions(-) diff --git a/src/components/settingsPage.js b/src/components/settingsPage.js index 61ae7ccbe..ed3949af5 100644 --- a/src/components/settingsPage.js +++ b/src/components/settingsPage.js @@ -27,7 +27,7 @@ import searchBar from "./searchbar"; * @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] - Prefer item.info as subtitle instead of item.value + * @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 @@ -237,6 +237,8 @@ function listItems($list, items, callback, options = {}) { const renderedItems = []; const $searchItems = []; const $content = []; + const useInfoAsDescription = + options.infoAsDescription ?? Boolean(options.valueInTail); /** @type {HTMLElement | null} */ let $currentSectionCard = null; let currentCategory = null; @@ -275,9 +277,9 @@ function listItems($list, items, callback, options = {}) { let $checkbox, $valueText; let $trailingValueText; - const subtitle = getSubtitleText(item, options); + const subtitle = getSubtitleText(item, useInfoAsDescription); const showInfoAsSubtitle = - options.infoAsDescription || (item.value === undefined && item.info); + useInfoAsDescription || (item.value === undefined && item.info); const searchGroup = item.searchGroup || item.category || options.defaultSearchGroup; const hasSubtitle = @@ -476,8 +478,8 @@ function listItems($list, items, callback, options = {}) { } } -function getSubtitleText(item, options) { - if (options.infoAsDescription) { +function getSubtitleText(item, useInfoAsDescription) { + if (useInfoAsDescription) { return item.info; } diff --git a/src/components/settingsPage.scss b/src/components/settingsPage.scss index 1e651c09c..8efeb8df4 100644 --- a/src/components/settingsPage.scss +++ b/src/components/settingsPage.scss @@ -258,6 +258,7 @@ wc-page.detail-settings-page { min-width: 0; overflow: visible; gap: 0.14rem; + padding-right: 0.35rem; > .text { display: flex; @@ -290,7 +291,7 @@ wc-page.detail-settings-page { flex-shrink: 0; min-height: 1.65rem; gap: 0.32rem; - margin-left: auto; + margin-left: 0.9rem; align-self: center; } } @@ -298,6 +299,7 @@ wc-page.detail-settings-page { .detail-settings-list > .list-item.has-subtitle > .container, .settings-section-card > .list-item.has-subtitle > .container { padding-top: 0.12rem; + padding-right: 0.55rem; } .detail-settings-list > .list-item.compact > .container, diff --git a/src/lib/acode.js b/src/lib/acode.js index 883c42a46..0845b8d99 100644 --- a/src/lib/acode.js +++ b/src/lib/acode.js @@ -675,7 +675,6 @@ export default class Acode { preserveOrder: true, pageClassName: "detail-settings-page", listClassName: "detail-settings-list", - infoAsDescription: true, valueInTail: true, groupByDefault: true, }, diff --git a/src/settings/lspServerDetail.js b/src/settings/lspServerDetail.js index 53fb6fd80..36e7e9535 100644 --- a/src/settings/lspServerDetail.js +++ b/src/settings/lspServerDetail.js @@ -115,6 +115,48 @@ function formatInstallStatus(result) { } } +function formatStartupTimeoutValue(timeout) { + return typeof timeout === "number" ? `${timeout} ms` : "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 + ? `Version ${result.version} is available.` + : "Language server is installed and ready."; + case "missing": + return "Language server is not installed in the terminal environment."; + case "failed": + return ( + cleanedMessage || "Acode could not verify the installation status." + ); + default: + return ( + cleanedMessage || + "Installation status could not be checked automatically." + ); + } +} + function formatValue(value) { if (value === undefined || value === null || value === "") return ""; let text = String(value); @@ -154,9 +196,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"); @@ -200,38 +249,44 @@ function createItems(snapshot) { text: "Enabled", checkbox: snapshot.merged.enabled !== false, info: "Enable or disable this language server", + category: "General", }, { key: "install_status", text: "Installed", value: formatInstallStatus(snapshot.installResult), - info: - snapshot.installResult.message || - "Current installation state for this language server", + info: formatInstallInfo(snapshot.installResult), + category: "Installation", + chevron: true, }, { key: "install_server", text: "Install / Repair", info: "Install or repair this language server", + category: "Installation", + chevron: true, }, { key: "update_server", text: "Update Server", info: "Update this language server if an update flow exists", + category: "Installation", + chevron: true, }, { key: "uninstall_server", text: "Uninstall Server", info: "Remove installed packages or binaries for this server", + category: "Installation", + chevron: true, }, { key: "startup_timeout", text: "Startup Timeout", - value: - typeof snapshot.merged.startupTimeout === "number" - ? `${snapshot.merged.startupTimeout} ms` - : "Default (5000 ms)", + value: formatStartupTimeoutValue(snapshot.merged.startupTimeout), info: "Configure how long Acode waits for the server to start", + category: "Advanced", + chevron: true, }, { key: "edit_init_options", @@ -240,11 +295,15 @@ function createItems(snapshot) { ? "Configured" : "Empty", info: "Edit initialization options as JSON", + category: "Advanced", + chevron: true, }, { key: "view_init_options", text: "View Initialization Options", info: "View the effective initialization options as JSON", + category: "Advanced", + chevron: true, }, ]; @@ -254,6 +313,7 @@ function createItems(snapshot) { text, checkbox: snapshot.builtinExts[extKey] !== false, info, + category: "Features", }); }); @@ -275,9 +335,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,9 +345,7 @@ 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, @@ -379,6 +435,9 @@ export default function lspServerDetail(serverId) { undefined, { preserveOrder: true, + pageClassName: "detail-settings-page", + listClassName: "detail-settings-list", + valueInTail: true, }, ); @@ -414,7 +473,8 @@ export default function lspServerDetail(serverId) { const result = await checkServerInstallation(snapshot.merged); const lines = [ `Status: ${formatInstallStatus(result)}`, - result.message ? `Details: ${result.message}` : null, + result.version ? `Version: ${result.version}` : null, + `Details: ${formatInstallInfo(result)}`, ].filter(Boolean); alert("Installation Status", lines.join("
")); break; diff --git a/src/settings/lspSettings.js b/src/settings/lspSettings.js index 58fcb99af..9e5e94f26 100644 --- a/src/settings/lspSettings.js +++ b/src/settings/lspSettings.js @@ -124,6 +124,7 @@ export default function lspSettings() { text: "Add Custom Server", info: "Register a user-defined language server with install, update, and launch commands", index: 0, + chevron: true, }, ]; @@ -140,6 +141,7 @@ export default function lspSettings() { key: `server:${server.id}`, text: server.label, info: languagesList || undefined, + chevron: true, }); } @@ -149,6 +151,9 @@ export default function lspSettings() { return settingsPage(title, items, callback, undefined, { preserveOrder: true, + pageClassName: "detail-settings-page", + listClassName: "detail-settings-list", + groupByDefault: true, }); async function callback(key) { From 583677a23d118852d7946e50fac9f9725e2df586 Mon Sep 17 00:00:00 2001 From: Raunak Raj <71929976+bajrangCoder@users.noreply.github.com> Date: Sun, 8 Mar 2026 16:48:54 +0530 Subject: [PATCH 03/14] fix --- src/components/settingsPage.scss | 28 +++++++++++ src/components/sidebar/style.scss | 6 ++- src/pages/plugin/plugin.scss | 9 +++- src/pages/plugins/plugins.scss | 84 ++++++++++++++++++++++--------- src/styles/wideScreen.scss | 22 ++++---- 5 files changed, 112 insertions(+), 37 deletions(-) diff --git a/src/components/settingsPage.scss b/src/components/settingsPage.scss index 8efeb8df4..ade5e7d8a 100644 --- a/src/components/settingsPage.scss +++ b/src/components/settingsPage.scss @@ -27,6 +27,7 @@ wc-page.main-settings-page { line-height: 1.25; text-transform: uppercase; letter-spacing: 0.06em; + color: var(--secondary-text-color); color: color-mix(in srgb, var(--secondary-text-color), transparent 24%); } @@ -37,6 +38,7 @@ wc-page.main-settings-page { line-height: 1.25; text-transform: uppercase; letter-spacing: 0.06em; + color: var(--active-color); color: color-mix(in srgb, var(--active-color), transparent 30%); } @@ -64,11 +66,13 @@ wc-page.main-settings-page { } &: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%); } @@ -87,6 +91,7 @@ wc-page.main-settings-page { 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%); } @@ -113,6 +118,7 @@ wc-page.main-settings-page { 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; @@ -135,6 +141,7 @@ wc-page.main-settings-page { 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%); } @@ -183,6 +190,7 @@ wc-page.detail-settings-page { line-height: 1.25; text-transform: uppercase; letter-spacing: 0.06em; + color: var(--secondary-text-color); color: color-mix(in srgb, var(--secondary-text-color), transparent 24%); } @@ -193,6 +201,7 @@ wc-page.detail-settings-page { line-height: 1.25; text-transform: uppercase; letter-spacing: 0.06em; + color: var(--active-color); color: color-mix(in srgb, var(--active-color), transparent 30%); } @@ -225,11 +234,13 @@ wc-page.detail-settings-page { } &: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%); } @@ -248,6 +259,7 @@ wc-page.detail-settings-page { 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%); } @@ -276,6 +288,7 @@ wc-page.detail-settings-page { 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; @@ -324,6 +337,7 @@ wc-page.detail-settings-page { 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; @@ -345,6 +359,7 @@ wc-page.detail-settings-page { display: flex; align-items: center; justify-content: center; + color: var(--secondary-text-color); color: color-mix(in srgb, var(--secondary-text-color), transparent 40%); } @@ -377,8 +392,10 @@ wc-page.detail-settings-page { 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), @@ -394,12 +411,16 @@ wc-page.detail-settings-page { 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); @@ -412,7 +433,9 @@ wc-page.detail-settings-page { 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%); } @@ -421,6 +444,7 @@ wc-page.detail-settings-page { 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%); } @@ -437,8 +461,10 @@ wc-page.detail-settings-page { 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 { @@ -459,6 +485,7 @@ wc-page.detail-settings-page { 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; @@ -474,6 +501,7 @@ wc-page.detail-settings-page { 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%); } } 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/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/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 +} From 7b7f4a797420731303f17c39be544766ce40ce31 Mon Sep 17 00:00:00 2001 From: Raunak Raj <71929976+bajrangCoder@users.noreply.github.com> Date: Sun, 8 Mar 2026 21:51:07 +0530 Subject: [PATCH 04/14] improve things --- src/components/settingsPage.js | 6 +++ src/components/settingsPage.scss | 79 ++++++++++++++++++++++++++++++-- 2 files changed, 81 insertions(+), 4 deletions(-) diff --git a/src/components/settingsPage.js b/src/components/settingsPage.js index ed3949af5..f7f256d5d 100644 --- a/src/components/settingsPage.js +++ b/src/components/settingsPage.js @@ -327,6 +327,12 @@ function listItems($list, items, callback, options = {}) { item.checkbox === undefined && typeof item.value !== "boolean" ) { + $item.classList.add("has-tail-value"); + + if (item.select) { + $item.classList.add("has-tail-select"); + } + $trailingValueText = ( .text { @@ -311,8 +311,21 @@ wc-page.detail-settings-page { .detail-settings-list > .list-item.has-subtitle > .container, .settings-section-card > .list-item.has-subtitle > .container { - padding-top: 0.12rem; - padding-right: 0.55rem; + gap: 0.24rem; + padding-top: 0.14rem; + padding-right: 0.6rem; + } + + .detail-settings-list > .list-item.has-subtitle.has-tail-value > .container, + .settings-section-card > .list-item.has-subtitle.has-tail-value > .container { + padding-right: 0.95rem; + } + + .detail-settings-list > .list-item.has-subtitle.has-tail-value > .setting-tail, + .settings-section-card > .list-item.has-subtitle.has-tail-value > .setting-tail { + align-self: flex-start; + margin-top: 0.16rem; + margin-left: 1.3rem; } .detail-settings-list > .list-item.compact > .container, @@ -342,7 +355,23 @@ wc-page.detail-settings-page { box-sizing: border-box; &.is-select { - gap: 0.15rem; + 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); } } @@ -352,6 +381,17 @@ wc-page.detail-settings-page { 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, @@ -368,6 +408,14 @@ wc-page.detail-settings-page { 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 { @@ -512,6 +560,29 @@ wc-page.detail-settings-page { 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% + ); } .icon { From 895fb861d52aae5eff2bc4a29cc905f674bb3828 Mon Sep 17 00:00:00 2001 From: Raunak Raj <71929976+bajrangCoder@users.noreply.github.com> Date: Mon, 9 Mar 2026 11:25:36 +0530 Subject: [PATCH 05/14] fix: grouping and alignment bug --- src/components/settingsPage.js | 16 ++- src/components/settingsPage.scss | 61 +++++------ src/settings/appSettings.js | 12 +-- src/settings/editorSettings.js | 168 +++++++++++++++---------------- src/settings/lspSettings.js | 2 + src/settings/mainSettings.js | 34 +++---- src/settings/previewSettings.js | 14 +-- src/settings/terminalSettings.js | 90 ++++++++--------- 8 files changed, 200 insertions(+), 197 deletions(-) diff --git a/src/components/settingsPage.js b/src/components/settingsPage.js index f7f256d5d..29b236411 100644 --- a/src/components/settingsPage.js +++ b/src/components/settingsPage.js @@ -254,6 +254,8 @@ function listItems($list, items, callback, options = {}) { const $setting = Ref(); const $settingName = Ref(); const $tail = Ref(); + const isCheckboxItem = + item.checkbox !== undefined || typeof item.value === "boolean"; /**@type {HTMLDivElement} */ const $item = (
; setValueText( $valueText, diff --git a/src/components/settingsPage.scss b/src/components/settingsPage.scss index 2d93f3081..de2ba09cc 100644 --- a/src/components/settingsPage.scss +++ b/src/components/settingsPage.scss @@ -21,25 +21,21 @@ wc-page.main-settings-page { } .settings-search-summary { - padding: 0.15rem 1rem; - font-size: 0.82rem; - font-weight: 700; - line-height: 1.25; - text-transform: uppercase; - letter-spacing: 0.06em; + 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 24%); + color: color-mix(in srgb, var(--secondary-text-color), transparent 18%); } .settings-section-label { - padding: 0.5rem 1rem 0.55rem; - font-size: 0.78rem; - font-weight: 700; - line-height: 1.25; - text-transform: uppercase; - letter-spacing: 0.06em; - color: var(--active-color); - color: color-mix(in srgb, var(--active-color), transparent 30%); + padding: 0.5rem 1rem 0.45rem; + font-size: 0.84rem; + font-weight: 600; + line-height: 1.3; + color: var(--popup-text-color); + color: color-mix(in srgb, var(--popup-text-color), transparent 22%); } .settings-section-card { @@ -184,25 +180,21 @@ wc-page.detail-settings-page { } .settings-search-summary { - padding: 0.15rem 1rem; - font-size: 0.82rem; - font-weight: 700; - line-height: 1.25; - text-transform: uppercase; - letter-spacing: 0.06em; + 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 24%); + color: color-mix(in srgb, var(--secondary-text-color), transparent 18%); } .settings-section-label { - padding: 0.5rem 1rem 0.55rem; - font-size: 0.78rem; - font-weight: 700; - line-height: 1.25; - text-transform: uppercase; - letter-spacing: 0.06em; - color: var(--active-color); - color: color-mix(in srgb, var(--active-color), transparent 30%); + padding: 0.5rem 1rem 0.45rem; + font-size: 0.84rem; + font-weight: 600; + line-height: 1.3; + color: var(--popup-text-color); + color: color-mix(in srgb, var(--popup-text-color), transparent 22%); } .settings-section-card { @@ -316,13 +308,13 @@ wc-page.detail-settings-page { padding-right: 0.6rem; } - .detail-settings-list > .list-item.has-subtitle.has-tail-value > .container, - .settings-section-card > .list-item.has-subtitle.has-tail-value > .container { + .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.has-subtitle.has-tail-value > .setting-tail, - .settings-section-card > .list-item.has-subtitle.has-tail-value > .setting-tail { + .detail-settings-list > .list-item.has-subtitle.has-tail-select > .setting-tail, + .settings-section-card > .list-item.has-subtitle.has-tail-select > .setting-tail { align-self: flex-start; margin-top: 0.16rem; margin-left: 1.3rem; @@ -424,6 +416,7 @@ wc-page.detail-settings-page { height: 1.2rem; margin-left: 0.1rem; font-size: 1.1rem; + line-height: 1; } .input-checkbox { diff --git a/src/settings/appSettings.js b/src/settings/appSettings.js index 371ed841c..c79d35227 100644 --- a/src/settings/appSettings.js +++ b/src/settings/appSettings.js @@ -150,7 +150,7 @@ export default function otherSettings() { key: "fontManager", text: strings["fonts"], info: "Install or remove app fonts", - category: "Personalization", + category: "Fonts", chevron: true, }, { @@ -158,21 +158,21 @@ export default function otherSettings() { text: strings["remember opened files"], checkbox: values.rememberFiles, info: "Restore the files you had open last time", - category: "Workspace", + category: "Files & sessions", }, { key: "rememberFolders", text: strings["remember opened folders"], checkbox: values.rememberFolders, info: "Restore folders from the previous session", - category: "Workspace", + category: "Files & sessions", }, { key: "retryRemoteFsAfterFail", text: strings["retry ftp/sftp when fail"], checkbox: values.retryRemoteFsAfterFail, info: "Retry remote file operations after a failed transfer", - category: "Workspace", + category: "Files & sessions", }, { key: "excludeFolders", @@ -188,7 +188,7 @@ export default function otherSettings() { }, }, info: "Folders and patterns to skip while searching or scanning", - category: "Workspace", + category: "Files & sessions", }, { key: "defaultFileEncoding", @@ -204,7 +204,7 @@ export default function otherSettings() { }), ], info: "Default encoding when opening or creating files", - category: "Workspace", + category: "Files & sessions", }, { key: "keybindings", diff --git a/src/settings/editorSettings.js b/src/settings/editorSettings.js index 48bc75e19..2c24e476c 100644 --- a/src/settings/editorSettings.js +++ b/src/settings/editorSettings.js @@ -12,9 +12,60 @@ export default function editorSettings() { key: "scroll-settings", text: strings["scroll settings"], info: "Scrollbar size, speed, and gesture behaviour", - category: "Navigation", + category: "Scrolling", chevron: true, }, + { + key: "editorFont", + text: strings["editor font"], + value: values.editorFont, + get select() { + return fonts.getNames(); + }, + info: "Typeface used in the editor", + category: "Text & layout", + }, + { + key: "fontSize", + text: strings["font size"], + value: values.fontSize, + prompt: strings["font size"], + promptOptions: { + required: true, + match: constants.FONT_SIZE, + }, + info: "Editor text size", + category: "Text & layout", + }, + { + 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: "Vertical spacing between lines", + category: "Text & layout", + }, + { + key: "textWrap", + text: strings["text wrap"], + checkbox: values.textWrap, + info: "Wrap long lines inside the editor", + category: "Text & layout", + }, + { + key: "hardWrap", + text: strings["hard wrap"], + checkbox: values.hardWrap, + info: "Insert line breaks instead of only wrapping visually", + category: "Text & layout", + }, { key: "autosave", text: strings.autosave, @@ -31,18 +82,6 @@ export default function editorSettings() { info: "Automatically save changes after a delay", category: "Editing", }, - { - key: "fontSize", - text: strings["font size"], - value: values.fontSize, - prompt: strings["font size"], - promptOptions: { - required: true, - match: constants.FONT_SIZE, - }, - info: "Editor text size", - category: "Editing", - }, { key: "softTab", text: strings["soft tab"], @@ -72,86 +111,68 @@ export default function editorSettings() { info: "Run the formatter when saving files", category: "Editing", }, - { - key: "editorFont", - text: strings["editor font"], - value: values.editorFont, - get select() { - return fonts.getNames(); - }, - info: "Typeface used in the editor", - category: "Editing", - }, { key: "liveAutoCompletion", text: strings["live autocompletion"], checkbox: values.liveAutoCompletion, info: "Show suggestions while you type", - category: "Editing", + category: "Assistance", }, { - key: "textWrap", - text: strings["text wrap"], - checkbox: values.textWrap, - info: "Wrap long lines inside the editor", - category: "Display", - }, - { - key: "hardWrap", - text: strings["hard wrap"], - checkbox: values.hardWrap, - info: "Insert line breaks instead of only wrapping visually", - category: "Display", + key: "colorPreview", + text: strings["color preview"], + checkbox: values.colorPreview, + info: "Preview color values inline", + category: "Assistance", }, { key: "linenumbers", text: strings["show line numbers"], checkbox: values.linenumbers, info: "Show the gutter with line numbers", - category: "Display", + category: "Guides & indicators", }, { key: "relativeLineNumbers", text: strings["relative line numbers"], checkbox: values.relativeLineNumbers, info: "Show distance from the current line", - category: "Display", + category: "Guides & indicators", }, { key: "lintGutter", text: strings["lint gutter"] || "Show lint gutter", checkbox: values.lintGutter ?? true, info: "Show diagnostics and lint markers in the gutter", - category: "Display", - }, - { - 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: "Vertical spacing between lines", - category: "Display", + category: "Guides & indicators", }, { key: "showSpaces", text: strings["show spaces"], checkbox: values.showSpaces, info: "Display visible whitespace markers", - category: "Display", + category: "Guides & indicators", }, { - key: "colorPreview", - text: strings["color preview"], - checkbox: values.colorPreview, - info: "Preview color values inline", - category: "Display", + key: "indentGuides", + text: strings["indent guides"] || "Indent guides", + checkbox: values.indentGuides ?? true, + info: "Show indentation guide lines", + category: "Guides & indicators", + }, + { + key: "rainbowBrackets", + text: strings["rainbow brackets"] || "Rainbow brackets", + checkbox: values.rainbowBrackets ?? true, + info: "Color matching brackets by nesting level", + category: "Guides & indicators", + }, + { + key: "fadeFoldWidgets", + text: strings["fade fold widgets"], + checkbox: values.fadeFoldWidgets, + info: "Dim fold markers until they are needed", + category: "Guides & indicators", }, { key: "teardropSize", @@ -167,42 +188,21 @@ export default function editorSettings() { [60, strings.large], ], info: "Cursor handle size for touch editing", - category: "Cursor & Selection", + category: "Cursor & selection", }, { key: "shiftClickSelection", text: strings["shift click selection"], checkbox: values.shiftClickSelection, info: "Extend selection with shift + tap or click", - category: "Cursor & Selection", + category: "Cursor & selection", }, { key: "rtlText", text: strings["line based rtl switching"], checkbox: values.rtlText, info: "Switch right-to-left behaviour per line", - category: "Cursor & Selection", - }, - { - key: "fadeFoldWidgets", - text: strings["fade fold widgets"], - checkbox: values.fadeFoldWidgets, - info: "Dim fold markers until they are needed", - category: "Cursor & Selection", - }, - { - key: "rainbowBrackets", - text: strings["rainbow brackets"] || "Rainbow brackets", - checkbox: values.rainbowBrackets ?? true, - info: "Color matching brackets by nesting level", - category: "Cursor & Selection", - }, - { - key: "indentGuides", - text: strings["indent guides"] || "Indent guides", - checkbox: values.indentGuides ?? true, - info: "Show indentation guide lines", - category: "Cursor & Selection", + category: "Cursor & selection", }, ]; diff --git a/src/settings/lspSettings.js b/src/settings/lspSettings.js index 9e5e94f26..d9596aae5 100644 --- a/src/settings/lspSettings.js +++ b/src/settings/lspSettings.js @@ -123,6 +123,7 @@ export default function lspSettings() { key: "add_custom_server", text: "Add Custom Server", info: "Register a user-defined language server with install, update, and launch commands", + category: "Custom servers", index: 0, chevron: true, }, @@ -141,6 +142,7 @@ export default function lspSettings() { key: `server:${server.id}`, text: server.label, info: languagesList || undefined, + category: "Servers", chevron: true, }); } diff --git a/src/settings/mainSettings.js b/src/settings/mainSettings.js index b8b058458..410e9982d 100644 --- a/src/settings/mainSettings.js +++ b/src/settings/mainSettings.js @@ -32,7 +32,7 @@ export default function mainSettings() { text: strings["app settings"], icon: "tune", info: "Language, behavior, and quick tools", - category: "Core", + category: "Core settings", chevron: true, }, { @@ -40,7 +40,7 @@ export default function mainSettings() { text: strings["editor settings"], icon: "text_format", info: "Font, tabs, autocomplete, and display", - category: "Core", + category: "Core settings", chevron: true, }, { @@ -48,7 +48,7 @@ export default function mainSettings() { text: `${strings["terminal settings"]}`, icon: "licons terminal", info: "Theme, fonts, shell, and scrollback", - category: "Core", + category: "Core settings", chevron: true, }, { @@ -56,7 +56,7 @@ export default function mainSettings() { text: strings["preview settings"], icon: "public", info: "Live preview, rendering, ports, and browser mode", - category: "Core", + category: "Core settings", chevron: true, }, { @@ -64,7 +64,7 @@ export default function mainSettings() { text: strings.formatter, icon: "spellcheck", info: "Per-language format tools", - category: "Appearance & Tools", + category: "Customization & tools", chevron: true, }, { @@ -72,7 +72,7 @@ export default function mainSettings() { text: strings.theme, icon: "color_lenspalette", info: "App theme, contrast, and custom colors", - category: "Appearance & Tools", + category: "Customization & tools", chevron: true, }, { @@ -80,7 +80,7 @@ export default function mainSettings() { text: strings["plugins"], icon: "extension", info: "Manage installed extensions and plugin actions", - category: "Appearance & Tools", + category: "Customization & tools", chevron: true, }, { @@ -88,7 +88,7 @@ export default function mainSettings() { text: strings?.lsp_settings || "Language servers", icon: "licons zap", info: "Configure language servers and code intelligence", - category: "Appearance & Tools", + category: "Customization & tools", chevron: true, }, { @@ -96,7 +96,7 @@ export default function mainSettings() { text: `${strings.backup.capitalize()} & ${strings.restore.capitalize()}`, icon: "cached", info: "Export or import your settings", - category: "Data", + category: "Maintenance", chevron: true, }, { @@ -104,7 +104,7 @@ export default function mainSettings() { text: `${strings["edit"]} settings.json`, icon: "edit", info: "Advanced raw configuration", - category: "Data", + category: "Maintenance", chevron: true, }, { @@ -112,7 +112,7 @@ export default function mainSettings() { text: strings["restore default settings"], icon: "historyrestore", info: "Reset the app back to its default configuration", - category: "Data", + category: "Maintenance", chevron: true, }, { @@ -120,7 +120,7 @@ export default function mainSettings() { text: strings.about, icon: "info", info: `Version ${BuildInfo.version}`, - category: "About", + category: "About Acode", chevron: true, }, { @@ -128,7 +128,7 @@ export default function mainSettings() { text: strings.sponsor, icon: "favorite", info: "Support Acode development", - category: "About", + category: "About Acode", chevron: true, }, { @@ -136,7 +136,7 @@ export default function mainSettings() { text: `${strings["changelog"]}`, icon: "update", info: "Recent updates and release notes", - category: "About", + category: "About Acode", chevron: true, }, { @@ -144,7 +144,7 @@ export default function mainSettings() { text: strings["rate acode"], icon: "star_outline", info: "Rate Acode on Google Play", - category: "About", + category: "About Acode", chevron: true, }, ]; @@ -155,7 +155,7 @@ export default function mainSettings() { text: "Earn ad-free time", icon: "play_arrow", info: "Watch ads to unlock temporary ad-free access", - category: "Support", + category: "Support Acode", chevron: true, }); items.push({ @@ -163,7 +163,7 @@ export default function mainSettings() { text: strings["remove ads"], icon: "block", info: "Unlock permanent ad-free access", - category: "Support", + category: "Support Acode", chevron: true, }); } diff --git a/src/settings/previewSettings.js b/src/settings/previewSettings.js index 9e69e50a0..0f77d0bdb 100644 --- a/src/settings/previewSettings.js +++ b/src/settings/previewSettings.js @@ -19,7 +19,7 @@ export default function previewSettings() { }, }, info: "Port used by the live preview server", - category: "Network", + category: "Server", }, { key: "serverPort", @@ -33,7 +33,7 @@ export default function previewSettings() { }, }, info: "Port used by the internal app server", - category: "Network", + category: "Server", }, { key: "previewMode", @@ -44,7 +44,7 @@ export default function previewSettings() { [appSettings.PREVIEW_MODE_INAPP, strings.inapp], ], info: "Where preview opens when you launch it", - category: "Network", + category: "Server", }, { key: "host", @@ -63,28 +63,28 @@ export default function previewSettings() { }, }, info: "Hostname used when opening the preview URL", - category: "Network", + category: "Server", }, { key: "disableCache", text: strings["disable in-app-browser caching"], checkbox: values.disableCache, info: "Always reload content in the in-app browser", - category: "Behavior", + category: "Preview", }, { key: "useCurrentFileForPreview", text: strings["should_use_current_file_for_preview"], checkbox: !!values.useCurrentFileForPreview, info: "Prefer the current file when starting preview", - category: "Behavior", + category: "Preview", }, { key: "showConsoleToggler", text: strings["show console toggler"], checkbox: values.showConsoleToggler, info: "Show the console button in preview", - category: "Behavior", + category: "Preview", }, { note: strings["preview settings note"], diff --git a/src/settings/terminalSettings.js b/src/settings/terminalSettings.js index 4bf7efe17..82e77bf28 100644 --- a/src/settings/terminalSettings.js +++ b/src/settings/terminalSettings.js @@ -33,7 +33,7 @@ export default function terminalSettings() { key: "all_file_access", text: strings["allFileAccess"], info: strings["info-all_file_access"], - category: "Access", + category: "Permissions", chevron: true, }, { @@ -49,7 +49,7 @@ export default function terminalSettings() { }, }, info: strings["info-fontSize"], - category: "Appearance", + category: "Display", }, { key: "fontFamily", @@ -59,7 +59,7 @@ export default function terminalSettings() { return fonts.getNames(); }, info: strings["info-fontFamily"], - category: "Appearance", + category: "Display", }, { key: "theme", @@ -76,23 +76,7 @@ export default function terminalSettings() { const option = this.select.find(([v]) => v === value); return option ? option[1] : value; }, - category: "Appearance", - }, - { - key: "cursorStyle", - text: strings["terminal:cursor style"], - value: terminalValues.cursorStyle, - select: ["block", "underline", "bar"], - info: strings["info-cursorStyle"], - category: "Cursor", - }, - { - key: "cursorInactiveStyle", - text: strings["terminal:cursor inactive style"], - value: terminalValues.cursorInactiveStyle, - select: ["outline", "block", "bar", "underline", "none"], - info: strings["info-cursorInactiveStyle"], - category: "Cursor", + category: "Display", }, { key: "fontWeight", @@ -112,7 +96,39 @@ export default function terminalSettings() { "900", ], info: strings["info-fontWeight"], - category: "Appearance", + category: "Display", + }, + { + key: "letterSpacing", + text: strings["letter spacing"], + value: terminalValues.letterSpacing, + prompt: strings["letter spacing"], + promptType: "number", + info: strings["info-letterSpacing"], + category: "Display", + }, + { + key: "fontLigatures", + text: strings["font ligatures"], + checkbox: terminalValues.fontLigatures, + info: strings["info-fontLigatures"], + category: "Display", + }, + { + key: "cursorStyle", + text: strings["terminal:cursor style"], + value: terminalValues.cursorStyle, + select: ["block", "underline", "bar"], + info: strings["info-cursorStyle"], + category: "Cursor", + }, + { + key: "cursorInactiveStyle", + text: strings["terminal:cursor inactive style"], + value: terminalValues.cursorInactiveStyle, + select: ["outline", "block", "bar", "underline", "none"], + info: strings["info-cursorInactiveStyle"], + category: "Cursor", }, { key: "cursorBlink", @@ -134,7 +150,7 @@ export default function terminalSettings() { }, }, info: strings["info-scrollback"], - category: "Behavior", + category: "Session", }, { key: "tabStopWidth", @@ -149,64 +165,48 @@ export default function terminalSettings() { }, }, info: strings["info-tabStopWidth"], - category: "Behavior", - }, - { - key: "letterSpacing", - text: strings["letter spacing"], - value: terminalValues.letterSpacing, - prompt: strings["letter spacing"], - promptType: "number", - info: strings["info-letterSpacing"], - category: "Appearance", + category: "Session", }, { key: "convertEol", text: strings["terminal:convert eol"], checkbox: terminalValues.convertEol, info: "Convert line endings when pasting or rendering output", - category: "Behavior", + category: "Session", }, { key: "imageSupport", text: strings["terminal:image support"], checkbox: terminalValues.imageSupport, info: strings["info-imageSupport"], - category: "Behavior", - }, - { - key: "fontLigatures", - text: strings["font ligatures"], - checkbox: terminalValues.fontLigatures, - info: strings["info-fontLigatures"], - category: "Appearance", + category: "Session", }, { key: "confirmTabClose", text: strings["terminal:confirm tab close"], checkbox: terminalValues.confirmTabClose !== false, info: strings["info-confirmTabClose"], - category: "Behavior", + category: "Session", }, { key: "backup", text: strings.backup, info: strings["info-backup"], - category: "Data", + category: "Maintenance", chevron: true, }, { key: "restore", text: strings.restore, info: strings["info-restore"], - category: "Data", + category: "Maintenance", chevron: true, }, { key: "uninstall", text: strings.uninstall, info: strings["info-uninstall"], - category: "Data", + category: "Maintenance", chevron: true, }, ]; From 2f14ce0d5d988b93b209ff21cb777e1d381e5577 Mon Sep 17 00:00:00 2001 From: Raunak Raj <71929976+bajrangCoder@users.noreply.github.com> Date: Mon, 9 Mar 2026 11:35:41 +0530 Subject: [PATCH 06/14] fix --- src/components/settingsPage.scss | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/components/settingsPage.scss b/src/components/settingsPage.scss index de2ba09cc..31500fbc2 100644 --- a/src/components/settingsPage.scss +++ b/src/components/settingsPage.scss @@ -34,8 +34,7 @@ wc-page.main-settings-page { font-size: 0.84rem; font-weight: 600; line-height: 1.3; - color: var(--popup-text-color); - color: color-mix(in srgb, var(--popup-text-color), transparent 22%); + color: color-mix(in srgb, var(--active-color), transparent 18%); } .settings-section-card { @@ -193,8 +192,7 @@ wc-page.detail-settings-page { font-size: 0.84rem; font-weight: 600; line-height: 1.3; - color: var(--popup-text-color); - color: color-mix(in srgb, var(--popup-text-color), transparent 22%); + color: color-mix(in srgb, var(--active-color), transparent 18%); } .settings-section-card { From 992bc534eee48e922f5ea482f9cb06edae49401c Mon Sep 17 00:00:00 2001 From: Raunak Raj <71929976+bajrangCoder@users.noreply.github.com> Date: Mon, 9 Mar 2026 12:05:21 +0530 Subject: [PATCH 07/14] improve the font manager --- src/pages/fontManager/fontManager.js | 35 +++-- src/pages/fontManager/style.scss | 214 ++++++++++++++++++++------- 2 files changed, 183 insertions(+), 66 deletions(-) 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 = (
{name}
+ {subtitle}
- + {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); + } + } + } +} From fbe364e46bb599cfd99fd5f50be2400c65ed02d7 Mon Sep 17 00:00:00 2001 From: Raunak Raj <71929976+bajrangCoder@users.noreply.github.com> Date: Mon, 9 Mar 2026 12:23:15 +0530 Subject: [PATCH 08/14] fix(settings): localize settings help text --- src/lang/ar-ye.json | 195 +++++++++++++++++++++- src/lang/be-by.json | 195 +++++++++++++++++++++- src/lang/bn-bd.json | 195 +++++++++++++++++++++- src/lang/cs-cz.json | 195 +++++++++++++++++++++- src/lang/de-de.json | 195 +++++++++++++++++++++- src/lang/en-us.json | 195 +++++++++++++++++++++- src/lang/es-sv.json | 195 +++++++++++++++++++++- src/lang/fr-fr.json | 195 +++++++++++++++++++++- src/lang/he-il.json | 195 +++++++++++++++++++++- src/lang/hi-in.json | 195 +++++++++++++++++++++- src/lang/hu-hu.json | 195 +++++++++++++++++++++- src/lang/id-id.json | 195 +++++++++++++++++++++- src/lang/ir-fa.json | 195 +++++++++++++++++++++- src/lang/it-it.json | 195 +++++++++++++++++++++- src/lang/ja-jp.json | 195 +++++++++++++++++++++- src/lang/ko-kr.json | 195 +++++++++++++++++++++- src/lang/ml-in.json | 195 +++++++++++++++++++++- src/lang/mm-unicode.json | 195 +++++++++++++++++++++- src/lang/mm-zawgyi.json | 195 +++++++++++++++++++++- src/lang/pl-pl.json | 195 +++++++++++++++++++++- src/lang/pt-br.json | 195 +++++++++++++++++++++- src/lang/pu-in.json | 195 +++++++++++++++++++++- src/lang/ru-ru.json | 195 +++++++++++++++++++++- src/lang/tl-ph.json | 195 +++++++++++++++++++++- src/lang/tr-tr.json | 195 +++++++++++++++++++++- src/lang/uk-ua.json | 195 +++++++++++++++++++++- src/lang/uz-uz.json | 195 +++++++++++++++++++++- src/lang/vi-vn.json | 195 +++++++++++++++++++++- src/lang/zh-cn.json | 195 +++++++++++++++++++++- src/lang/zh-hant.json | 195 +++++++++++++++++++++- src/lang/zh-tw.json | 195 +++++++++++++++++++++- src/settings/appSettings.js | 104 ++++++------ src/settings/editorSettings.js | 96 ++++++----- src/settings/formatterSettings.js | 2 +- src/settings/lspServerDetail.js | 267 ++++++++++++++++++------------ src/settings/lspSettings.js | 93 +++++++---- src/settings/mainSettings.js | 80 +++++---- src/settings/previewSettings.js | 32 ++-- src/settings/terminalSettings.js | 49 +++--- 39 files changed, 6431 insertions(+), 337 deletions(-) diff --git a/src/lang/ar-ye.json b/src/lang/ar-ye.json index 5279bc0af..b7cf65cc2 100644 --- a/src/lang/ar-ye.json +++ b/src/lang/ar-ye.json @@ -504,5 +504,198 @@ "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." } diff --git a/src/lang/be-by.json b/src/lang/be-by.json index 31405f517..0107f567d 100644 --- a/src/lang/be-by.json +++ b/src/lang/be-by.json @@ -506,5 +506,198 @@ "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." } diff --git a/src/lang/bn-bd.json b/src/lang/bn-bd.json index ddea279af..1300bff17 100644 --- a/src/lang/bn-bd.json +++ b/src/lang/bn-bd.json @@ -505,5 +505,198 @@ "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." } diff --git a/src/lang/cs-cz.json b/src/lang/cs-cz.json index 8ab39e3dd..62ebf1cea 100644 --- a/src/lang/cs-cz.json +++ b/src/lang/cs-cz.json @@ -505,5 +505,198 @@ "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." } diff --git a/src/lang/de-de.json b/src/lang/de-de.json index 45a1882fc..a84838d2c 100644 --- a/src/lang/de-de.json +++ b/src/lang/de-de.json @@ -505,5 +505,198 @@ "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." } diff --git a/src/lang/en-us.json b/src/lang/en-us.json index a52de8315..57fd32445 100644 --- a/src/lang/en-us.json +++ b/src/lang/en-us.json @@ -505,5 +505,198 @@ "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." } diff --git a/src/lang/es-sv.json b/src/lang/es-sv.json index af5a48db1..eb4900c56 100644 --- a/src/lang/es-sv.json +++ b/src/lang/es-sv.json @@ -505,5 +505,198 @@ "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." } diff --git a/src/lang/fr-fr.json b/src/lang/fr-fr.json index 7a2264b66..15b8ec138 100644 --- a/src/lang/fr-fr.json +++ b/src/lang/fr-fr.json @@ -505,5 +505,198 @@ "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." } diff --git a/src/lang/he-il.json b/src/lang/he-il.json index 7168e7b1e..e180ddcdb 100644 --- a/src/lang/he-il.json +++ b/src/lang/he-il.json @@ -506,5 +506,198 @@ "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." } diff --git a/src/lang/hi-in.json b/src/lang/hi-in.json index d3bb43651..9773f685f 100644 --- a/src/lang/hi-in.json +++ b/src/lang/hi-in.json @@ -506,5 +506,198 @@ "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." } diff --git a/src/lang/hu-hu.json b/src/lang/hu-hu.json index 559df68b5..c0b672e8f 100644 --- a/src/lang/hu-hu.json +++ b/src/lang/hu-hu.json @@ -505,5 +505,198 @@ "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." } diff --git a/src/lang/id-id.json b/src/lang/id-id.json index d4102f8a1..0335c5837 100644 --- a/src/lang/id-id.json +++ b/src/lang/id-id.json @@ -506,5 +506,198 @@ "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." } diff --git a/src/lang/ir-fa.json b/src/lang/ir-fa.json index 13c89f4e4..551892fb9 100644 --- a/src/lang/ir-fa.json +++ b/src/lang/ir-fa.json @@ -506,5 +506,198 @@ "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." } diff --git a/src/lang/it-it.json b/src/lang/it-it.json index f225a67cf..dc5f470a7 100644 --- a/src/lang/it-it.json +++ b/src/lang/it-it.json @@ -505,5 +505,198 @@ "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." } diff --git a/src/lang/ja-jp.json b/src/lang/ja-jp.json index 66eb11966..48f67b743 100644 --- a/src/lang/ja-jp.json +++ b/src/lang/ja-jp.json @@ -505,5 +505,198 @@ "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." } diff --git a/src/lang/ko-kr.json b/src/lang/ko-kr.json index 08f0df135..c694c0ca9 100644 --- a/src/lang/ko-kr.json +++ b/src/lang/ko-kr.json @@ -505,5 +505,198 @@ "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." } diff --git a/src/lang/ml-in.json b/src/lang/ml-in.json index c7eb73987..68937f682 100644 --- a/src/lang/ml-in.json +++ b/src/lang/ml-in.json @@ -505,5 +505,198 @@ "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." } diff --git a/src/lang/mm-unicode.json b/src/lang/mm-unicode.json index d3cc2edac..45b15db75 100644 --- a/src/lang/mm-unicode.json +++ b/src/lang/mm-unicode.json @@ -505,5 +505,198 @@ "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." } diff --git a/src/lang/mm-zawgyi.json b/src/lang/mm-zawgyi.json index a19c87f89..b51f594b1 100644 --- a/src/lang/mm-zawgyi.json +++ b/src/lang/mm-zawgyi.json @@ -505,5 +505,198 @@ "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." } diff --git a/src/lang/pl-pl.json b/src/lang/pl-pl.json index 02ccc427f..0a892f854 100644 --- a/src/lang/pl-pl.json +++ b/src/lang/pl-pl.json @@ -505,5 +505,198 @@ "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." } diff --git a/src/lang/pt-br.json b/src/lang/pt-br.json index 8aace563a..5a3140255 100644 --- a/src/lang/pt-br.json +++ b/src/lang/pt-br.json @@ -505,5 +505,198 @@ "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." } diff --git a/src/lang/pu-in.json b/src/lang/pu-in.json index 44c29a8b0..e4374d8a8 100644 --- a/src/lang/pu-in.json +++ b/src/lang/pu-in.json @@ -505,5 +505,198 @@ "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." } diff --git a/src/lang/ru-ru.json b/src/lang/ru-ru.json index 0ca00f3a5..b4fccfb04 100644 --- a/src/lang/ru-ru.json +++ b/src/lang/ru-ru.json @@ -505,5 +505,198 @@ "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." } diff --git a/src/lang/tl-ph.json b/src/lang/tl-ph.json index 02595aeba..6418fbd6a 100644 --- a/src/lang/tl-ph.json +++ b/src/lang/tl-ph.json @@ -505,5 +505,198 @@ "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." } diff --git a/src/lang/tr-tr.json b/src/lang/tr-tr.json index 505d05012..ce40f18c1 100644 --- a/src/lang/tr-tr.json +++ b/src/lang/tr-tr.json @@ -505,5 +505,198 @@ "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." } diff --git a/src/lang/uk-ua.json b/src/lang/uk-ua.json index eb8e30fa7..2064e034c 100644 --- a/src/lang/uk-ua.json +++ b/src/lang/uk-ua.json @@ -505,5 +505,198 @@ "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." } diff --git a/src/lang/uz-uz.json b/src/lang/uz-uz.json index e509255b9..05b47f20a 100644 --- a/src/lang/uz-uz.json +++ b/src/lang/uz-uz.json @@ -505,5 +505,198 @@ "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." } diff --git a/src/lang/vi-vn.json b/src/lang/vi-vn.json index 6f68fd626..389b11523 100644 --- a/src/lang/vi-vn.json +++ b/src/lang/vi-vn.json @@ -506,5 +506,198 @@ "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." } diff --git a/src/lang/zh-cn.json b/src/lang/zh-cn.json index 700ff0526..171872b58 100644 --- a/src/lang/zh-cn.json +++ b/src/lang/zh-cn.json @@ -505,5 +505,198 @@ "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." } diff --git a/src/lang/zh-hant.json b/src/lang/zh-hant.json index 2e635cff4..65af302b8 100644 --- a/src/lang/zh-hant.json +++ b/src/lang/zh-hant.json @@ -505,5 +505,198 @@ "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." } diff --git a/src/lang/zh-tw.json b/src/lang/zh-tw.json index 8a1e56c5b..f0ccde88a 100644 --- a/src/lang/zh-tw.json +++ b/src/lang/zh-tw.json @@ -505,5 +505,198 @@ "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." } diff --git a/src/settings/appSettings.js b/src/settings/appSettings.js index c79d35227..d6f2ce776 100644 --- a/src/settings/appSettings.js +++ b/src/settings/appSettings.js @@ -18,6 +18,12 @@ 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: "lang", @@ -25,8 +31,8 @@ export default function otherSettings() { value: values.lang, select: lang.list, valueText: (value) => lang.getName(value), - info: "App language and translated labels", - category: "Interface", + info: strings["settings-info-app-language"], + category: categories.interface, }, { key: "animation", @@ -38,15 +44,15 @@ export default function otherSettings() { ["yes", strings.yes], ["system", strings.system], ], - info: "Transition effects throughout the app", - category: "Interface", + info: strings["settings-info-app-animation"], + category: categories.interface, }, { key: "fullscreen", text: strings.fullscreen.capitalize(), checkbox: values.fullscreen, - info: "Hide the system status bar", - category: "Interface", + info: strings["settings-info-app-fullscreen"], + category: categories.interface, }, { key: "keyboardMode", @@ -63,36 +69,36 @@ export default function otherSettings() { strings["no suggestions aggressive"], ], ], - info: "How the software keyboard behaves while editing", - category: "Interface", + info: strings["settings-info-app-keyboard-mode"], + category: categories.interface, }, { key: "vibrateOnTap", text: strings["vibrate on tap"], checkbox: values.vibrateOnTap, - info: "Haptic feedback on taps and controls", - category: "Interface", + info: strings["settings-info-app-vibrate-on-tap"], + category: categories.interface, }, { key: "floatingButton", text: strings["floating button"], checkbox: values.floatingButton, - info: "Quick action overlay", - category: "Interface", + info: strings["settings-info-app-floating-button"], + category: categories.interface, }, { key: "showSideButtons", text: strings["show side buttons"], checkbox: values.showSideButtons, - info: "Show the extra side action buttons", - category: "Interface", + info: strings["settings-info-app-side-buttons"], + category: categories.interface, }, { key: "showSponsorSidebarApp", text: `${strings.sponsor} (${strings.sidebar})`, checkbox: values.showSponsorSidebarApp, - info: "Show the sponsor entry in the sidebar", - category: "Interface", + info: strings["settings-info-app-sponsor-sidebar"], + category: categories.interface, }, { key: "openFileListPos", @@ -104,15 +110,15 @@ export default function otherSettings() { [appSettings.OPEN_FILE_LIST_POS_HEADER, strings.header], [appSettings.OPEN_FILE_LIST_POS_BOTTOM, strings.bottom], ], - info: "Where the active files list appears", - category: "Interface", + 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: "Interface", + category: categories.interface, }, { key: "quickToolsTriggerMode", @@ -122,14 +128,14 @@ export default function otherSettings() { [appSettings.QUICKTOOLS_TRIGGER_MODE_CLICK, "click"], [appSettings.QUICKTOOLS_TRIGGER_MODE_TOUCH, "touch"], ], - info: "How quick tools open on tap or touch", - category: "Interface", + info: strings["settings-info-app-quick-tools-trigger-mode"], + category: categories.interface, }, { key: "quickToolsSettings", text: strings["shortcut buttons"], - info: "Reorder and customise quick tool shortcuts", - category: "Interface", + info: strings["settings-info-app-quick-tools-settings"], + category: categories.interface, chevron: true, }, { @@ -143,36 +149,36 @@ export default function otherSettings() { return value >= 0; }, }, - info: "Minimum movement before touch drag is detected", - category: "Interface", + info: strings["settings-info-app-touch-move-threshold"], + category: categories.interface, }, { key: "fontManager", text: strings["fonts"], - info: "Install or remove app fonts", - category: "Fonts", + info: strings["settings-info-app-font-manager"], + category: categories.fonts, chevron: true, }, { key: "rememberFiles", text: strings["remember opened files"], checkbox: values.rememberFiles, - info: "Restore the files you had open last time", - category: "Files & sessions", + info: strings["settings-info-app-remember-files"], + category: categories.filesSessions, }, { key: "rememberFolders", text: strings["remember opened folders"], checkbox: values.rememberFolders, - info: "Restore folders from the previous session", - category: "Files & sessions", + info: strings["settings-info-app-remember-folders"], + category: categories.filesSessions, }, { key: "retryRemoteFsAfterFail", text: strings["retry ftp/sftp when fail"], checkbox: values.retryRemoteFsAfterFail, - info: "Retry remote file operations after a failed transfer", - category: "Files & sessions", + info: strings["settings-info-app-retry-remote-fs"], + category: categories.filesSessions, }, { key: "excludeFolders", @@ -187,8 +193,8 @@ export default function otherSettings() { }); }, }, - info: "Folders and patterns to skip while searching or scanning", - category: "Files & sessions", + info: strings["settings-info-app-exclude-folders"], + category: categories.filesSessions, }, { key: "defaultFileEncoding", @@ -203,8 +209,8 @@ export default function otherSettings() { return [id, encoding.label]; }), ], - info: "Default encoding when opening or creating files", - category: "Files & sessions", + info: strings["settings-info-app-default-file-encoding"], + category: categories.filesSessions, }, { key: "keybindings", @@ -215,50 +221,50 @@ export default function otherSettings() { ["edit", strings.edit], ["reset", strings.reset], ], - info: "Edit the key bindings file or reset shortcuts", - category: "Advanced", + info: strings["settings-info-app-keybindings"], + category: categories.advanced, }, { key: "confirmOnExit", text: strings["confirm on exit"], checkbox: values.confirmOnExit, - info: "Ask before leaving the app", - category: "Advanced", + info: strings["settings-info-app-confirm-on-exit"], + category: categories.advanced, }, { key: "checkFiles", text: strings["check file changes"], checkbox: values.checkFiles, - info: "Detect external file changes and refresh editors", - category: "Advanced", + 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: "Advanced", + category: categories.advanced, }, { key: "console", text: strings.console, value: values.console, select: [appSettings.CONSOLE_LEGACY, appSettings.CONSOLE_ERUDA], - info: "Which debug console integration to use", - category: "Advanced", + info: strings["settings-info-app-console"], + category: categories.advanced, }, { key: "developerMode", text: strings["developer mode"], checkbox: values.developerMode, info: strings["info-developermode"], - category: "Advanced", + category: categories.advanced, }, { key: "cleanInstallState", text: strings["clean install state"], - info: "Clear stored install state used by onboarding and setup flows", - category: "Advanced", + info: strings["settings-info-app-clean-install-state"], + category: categories.advanced, chevron: true, }, ]; diff --git a/src/settings/editorSettings.js b/src/settings/editorSettings.js index 2c24e476c..83d727f37 100644 --- a/src/settings/editorSettings.js +++ b/src/settings/editorSettings.js @@ -7,12 +7,20 @@ 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: "scroll-settings", text: strings["scroll settings"], - info: "Scrollbar size, speed, and gesture behaviour", - category: "Scrolling", + info: strings["settings-info-editor-scroll-settings"], + category: categories.scrolling, chevron: true, }, { @@ -22,8 +30,8 @@ export default function editorSettings() { get select() { return fonts.getNames(); }, - info: "Typeface used in the editor", - category: "Text & layout", + info: strings["settings-info-editor-font-family"], + category: categories.textLayout, }, { key: "fontSize", @@ -34,8 +42,8 @@ export default function editorSettings() { required: true, match: constants.FONT_SIZE, }, - info: "Editor text size", - category: "Text & layout", + info: strings["settings-info-editor-font-size"], + category: categories.textLayout, }, { key: "lineHeight", @@ -49,22 +57,22 @@ export default function editorSettings() { return value >= 1 && value <= 2; }, }, - info: "Vertical spacing between lines", - category: "Text & layout", + info: strings["settings-info-editor-line-height"], + category: categories.textLayout, }, { key: "textWrap", text: strings["text wrap"], checkbox: values.textWrap, - info: "Wrap long lines inside the editor", - category: "Text & layout", + info: strings["settings-info-editor-text-wrap"], + category: categories.textLayout, }, { key: "hardWrap", text: strings["hard wrap"], checkbox: values.hardWrap, - info: "Insert line breaks instead of only wrapping visually", - category: "Text & layout", + info: strings["settings-info-editor-hard-wrap"], + category: categories.textLayout, }, { key: "autosave", @@ -79,15 +87,15 @@ export default function editorSettings() { return value >= 1000 || value === 0; }, }, - info: "Automatically save changes after a delay", - category: "Editing", + info: strings["settings-info-editor-autosave"], + category: categories.editing, }, { key: "softTab", text: strings["soft tab"], checkbox: values.softTab, - info: "Use spaces instead of tabs", - category: "Editing", + info: strings["settings-info-editor-soft-tab"], + category: categories.editing, }, { key: "tabSize", @@ -101,78 +109,78 @@ export default function editorSettings() { return value >= 1 && value <= 8; }, }, - info: "Number of spaces for each tab step", - category: "Editing", + info: strings["settings-info-editor-tab-size"], + category: categories.editing, }, { key: "formatOnSave", text: strings["format on save"], checkbox: values.formatOnSave, - info: "Run the formatter when saving files", - category: "Editing", + info: strings["settings-info-editor-format-on-save"], + category: categories.editing, }, { key: "liveAutoCompletion", text: strings["live autocompletion"], checkbox: values.liveAutoCompletion, - info: "Show suggestions while you type", - category: "Assistance", + info: strings["settings-info-editor-live-autocomplete"], + category: categories.assistance, }, { key: "colorPreview", text: strings["color preview"], checkbox: values.colorPreview, - info: "Preview color values inline", - category: "Assistance", + info: strings["settings-info-editor-color-preview"], + category: categories.assistance, }, { key: "linenumbers", text: strings["show line numbers"], checkbox: values.linenumbers, - info: "Show the gutter with line numbers", - category: "Guides & indicators", + info: strings["settings-info-editor-line-numbers"], + category: categories.guidesIndicators, }, { key: "relativeLineNumbers", text: strings["relative line numbers"], checkbox: values.relativeLineNumbers, - info: "Show distance from the current line", - category: "Guides & indicators", + info: strings["settings-info-editor-relative-line-numbers"], + category: categories.guidesIndicators, }, { key: "lintGutter", text: strings["lint gutter"] || "Show lint gutter", checkbox: values.lintGutter ?? true, - info: "Show diagnostics and lint markers in the gutter", - category: "Guides & indicators", + info: strings["settings-info-editor-lint-gutter"], + category: categories.guidesIndicators, }, { key: "showSpaces", text: strings["show spaces"], checkbox: values.showSpaces, - info: "Display visible whitespace markers", - category: "Guides & indicators", + info: strings["settings-info-editor-show-spaces"], + category: categories.guidesIndicators, }, { key: "indentGuides", text: strings["indent guides"] || "Indent guides", checkbox: values.indentGuides ?? true, - info: "Show indentation guide lines", - category: "Guides & indicators", + info: strings["settings-info-editor-indent-guides"], + category: categories.guidesIndicators, }, { key: "rainbowBrackets", text: strings["rainbow brackets"] || "Rainbow brackets", checkbox: values.rainbowBrackets ?? true, - info: "Color matching brackets by nesting level", - category: "Guides & indicators", + info: strings["settings-info-editor-rainbow-brackets"], + category: categories.guidesIndicators, }, { key: "fadeFoldWidgets", text: strings["fade fold widgets"], checkbox: values.fadeFoldWidgets, - info: "Dim fold markers until they are needed", - category: "Guides & indicators", + info: strings["settings-info-editor-fade-fold-widgets"], + category: categories.guidesIndicators, }, { key: "teardropSize", @@ -187,22 +195,22 @@ export default function editorSettings() { [30, strings.medium], [60, strings.large], ], - info: "Cursor handle size for touch editing", - category: "Cursor & selection", + info: strings["settings-info-editor-teardrop-size"], + category: categories.cursorSelection, }, { key: "shiftClickSelection", text: strings["shift click selection"], checkbox: values.shiftClickSelection, - info: "Extend selection with shift + tap or click", - category: "Cursor & selection", + info: strings["settings-info-editor-shift-click-selection"], + category: categories.cursorSelection, }, { key: "rtlText", text: strings["line based rtl switching"], checkbox: values.rtlText, - info: "Switch right-to-left behaviour per line", - category: "Cursor & selection", + info: strings["settings-info-editor-rtl-text"], + category: categories.cursorSelection, }, ]; diff --git a/src/settings/formatterSettings.js b/src/settings/formatterSettings.js index 44557d1f9..512510d6d 100644 --- a/src/settings/formatterSettings.js +++ b/src/settings/formatterSettings.js @@ -44,7 +44,7 @@ export default function formatterSettings(languageName) { }); items.unshift({ - note: "Assign a formatter to each language. Install formatter plugins to see more options.", + note: strings["settings-note-formatter-settings"], }); const page = settingsPage(title, items, callback, "separate", { diff --git a/src/settings/lspServerDetail.js b/src/settings/lspServerDetail.js index 36e7e9535..bddd0a8ab 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.replace(`{${key}}`, String(value)), + String(template || ""), + ); +} function clone(value) { if (!value || typeof value !== "object") return value; @@ -105,18 +114,24 @@ 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" ? `${timeout} ms` : "Default"; + return typeof timeout === "number" + ? fillTemplate(strings["lsp-timeout-ms"], { timeout }) + : strings["lsp-default"]; } function sanitizeInstallMessage(message) { @@ -141,19 +156,16 @@ function formatInstallInfo(result) { switch (result?.status) { case "present": return result.version - ? `Version ${result.version} is available.` - : "Language server is installed and ready."; + ? fillTemplate(strings["lsp-install-info-version-available"], { + version: result.version, + }) + : strings["lsp-install-info-ready"]; case "missing": - return "Language server is not installed in the terminal environment."; + return strings["lsp-install-info-missing"]; case "failed": - return ( - cleanedMessage || "Acode could not verify the installation status." - ); + return cleanedMessage || strings["lsp-install-info-check-failed"]; default: - return ( - cleanedMessage || - "Installation status could not be checked automatically." - ); + return cleanedMessage || strings["lsp-install-info-unknown"]; } } @@ -243,77 +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", - category: "General", + info: strings["settings-info-lsp-server-enabled"], + category: categories.general, }, { key: "install_status", - text: "Installed", + text: strings["lsp-installed"], value: formatInstallStatus(snapshot.installResult), info: formatInstallInfo(snapshot.installResult), - category: "Installation", + category: categories.installation, chevron: true, }, { key: "install_server", - text: "Install / Repair", - info: "Install or repair this language server", - category: "Installation", + 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", - category: "Installation", + 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", - category: "Installation", + text: strings["lsp-uninstall-server"], + info: strings["settings-info-lsp-uninstall-server"], + category: categories.installation, chevron: true, }, { key: "startup_timeout", - text: "Startup Timeout", + text: strings["lsp-startup-timeout"], value: formatStartupTimeoutValue(snapshot.merged.startupTimeout), - info: "Configure how long Acode waits for the server to start", - category: "Advanced", + 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", - category: "Advanced", + ? 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", - category: "Advanced", + 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: "Features", + category: categories.features, }); }); @@ -352,11 +371,11 @@ async function refreshVisibleState($list, itemsByKey, serverId) { 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, }); @@ -401,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; } @@ -414,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 || {}, @@ -456,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; } @@ -466,23 +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.version ? `Version: ${result.version}` : null, - `Details: ${formatInstallInfo(result)}`, + 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"); @@ -490,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"); @@ -498,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": { @@ -519,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", { @@ -536,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; } @@ -552,7 +589,7 @@ export default function lspServerDetail(serverId) { 2, ); const result = await prompt( - "Initialization Options (JSON)", + strings["lsp-initialization-options-json"], currentJson || "{}", "textarea", { @@ -572,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; } @@ -583,7 +620,7 @@ export default function lspServerDetail(serverId) { 2, ); alert( - "Initialization Options", + strings["lsp-initialization-options"], `
${escapeHtml(json)}
`, ); break; @@ -597,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 || {}; @@ -607,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 d9596aae5..25925c451 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,7 +117,12 @@ async function promptInstaller(binaryCommand) { * @returns {object} Settings page interface */ export default function lspSettings() { - const title = strings?.lsp_settings || "Language Servers"; + const title = + strings?.lsp_settings || strings["language servers"] || "Language Servers"; + const categories = { + customServers: strings["settings-category-custom-servers"], + servers: strings["settings-category-servers"], + }; const servers = serverRegistry.listServers(); const sortedServers = servers.sort((a, b) => { @@ -121,9 +138,9 @@ export default function lspSettings() { const items = [ { key: "add_custom_server", - text: "Add Custom Server", - info: "Register a user-defined language server with install, update, and launch commands", - category: "Custom servers", + text: strings["lsp-add-custom-server"], + info: strings["settings-info-lsp-add-custom-server"], + category: categories.customServers, index: 0, chevron: true, }, @@ -142,13 +159,13 @@ export default function lspSettings() { key: `server:${server.id}`, text: server.label, info: languagesList || undefined, - category: "Servers", + category: categories.servers, chevron: true, }); } 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.", + note: strings["settings-note-lsp-settings"], }); return settingsPage(title, items, callback, undefined, { @@ -161,39 +178,47 @@ export default function lspSettings() { 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", { @@ -213,7 +238,7 @@ export default function lspSettings() { if (installer === null) return; const checkCommand = await prompt( - "Check Command (optional override)", + strings["lsp-check-command-optional"], "", "text", ); @@ -235,11 +260,15 @@ export default function lspSettings() { enabled: true, }); - toast("Custom server added"); + toast(strings["lsp-custom-server-added"]); 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 410e9982d..25491d30d 100644 --- a/src/settings/mainSettings.js +++ b/src/settings/mainSettings.js @@ -26,93 +26,103 @@ 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: "app-settings", text: strings["app settings"], icon: "tune", - info: "Language, behavior, and quick tools", - category: "Core settings", + info: strings["settings-info-main-app-settings"], + category: categories.core, chevron: true, }, { key: "editor-settings", text: strings["editor settings"], icon: "text_format", - info: "Font, tabs, autocomplete, and display", - category: "Core settings", + info: strings["settings-info-main-editor-settings"], + category: categories.core, chevron: true, }, { key: "terminal-settings", text: `${strings["terminal settings"]}`, icon: "licons terminal", - info: "Theme, fonts, shell, and scrollback", - category: "Core settings", + info: strings["settings-info-main-terminal-settings"], + category: categories.core, chevron: true, }, { key: "preview-settings", text: strings["preview settings"], icon: "public", - info: "Live preview, rendering, ports, and browser mode", - category: "Core settings", + info: strings["settings-info-main-preview-settings"], + category: categories.core, chevron: true, }, { key: "formatter", text: strings.formatter, icon: "spellcheck", - info: "Per-language format tools", - category: "Customization & tools", + info: strings["settings-info-main-formatter"], + category: categories.customizationTools, chevron: true, }, { key: "theme", text: strings.theme, icon: "color_lenspalette", - info: "App theme, contrast, and custom colors", - category: "Customization & tools", + info: strings["settings-info-main-theme"], + category: categories.customizationTools, chevron: true, }, { key: "plugins", text: strings["plugins"], icon: "extension", - info: "Manage installed extensions and plugin actions", - category: "Customization & tools", + info: strings["settings-info-main-plugins"], + category: categories.customizationTools, chevron: true, }, { key: "lsp-settings", - text: strings?.lsp_settings || "Language servers", + text: + strings?.lsp_settings || + strings["language servers"] || + "Language servers", icon: "licons zap", - info: "Configure language servers and code intelligence", - category: "Customization & tools", + info: strings["settings-info-main-lsp-settings"], + category: categories.customizationTools, chevron: true, }, { key: "backup-restore", text: `${strings.backup.capitalize()} & ${strings.restore.capitalize()}`, icon: "cached", - info: "Export or import your settings", - category: "Maintenance", + info: strings["settings-info-main-backup-restore"], + category: categories.maintenance, chevron: true, }, { key: "editSettings", text: `${strings["edit"]} settings.json`, icon: "edit", - info: "Advanced raw configuration", - category: "Maintenance", + info: strings["settings-info-main-edit-settings"], + category: categories.maintenance, chevron: true, }, { key: "reset", text: strings["restore default settings"], icon: "historyrestore", - info: "Reset the app back to its default configuration", - category: "Maintenance", + info: strings["settings-info-main-reset"], + category: categories.maintenance, chevron: true, }, { @@ -120,31 +130,31 @@ export default function mainSettings() { text: strings.about, icon: "info", info: `Version ${BuildInfo.version}`, - category: "About Acode", + category: categories.aboutAcode, chevron: true, }, { key: "sponsors", text: strings.sponsor, icon: "favorite", - info: "Support Acode development", - category: "About Acode", + info: strings["settings-info-main-sponsors"], + category: categories.aboutAcode, chevron: true, }, { key: "changeLog", text: `${strings["changelog"]}`, icon: "update", - info: "Recent updates and release notes", - category: "About Acode", + info: strings["settings-info-main-changelog"], + category: categories.aboutAcode, chevron: true, }, { key: "rateapp", text: strings["rate acode"], icon: "star_outline", - info: "Rate Acode on Google Play", - category: "About Acode", + info: strings["settings-info-main-rateapp"], + category: categories.aboutAcode, chevron: true, }, ]; @@ -152,18 +162,18 @@ export default function mainSettings() { if (IS_FREE_VERSION) { items.push({ key: "adRewards", - text: "Earn ad-free time", + text: strings["earn ad-free time"], icon: "play_arrow", - info: "Watch ads to unlock temporary ad-free access", - category: "Support Acode", + info: strings["settings-info-main-ad-rewards"], + category: categories.supportAcode, chevron: true, }); items.push({ key: "removeads", text: strings["remove ads"], icon: "block", - info: "Unlock permanent ad-free access", - category: "Support Acode", + info: strings["settings-info-main-remove-ads"], + category: categories.supportAcode, chevron: true, }); } diff --git a/src/settings/previewSettings.js b/src/settings/previewSettings.js index 0f77d0bdb..7346ae85d 100644 --- a/src/settings/previewSettings.js +++ b/src/settings/previewSettings.js @@ -4,6 +4,10 @@ 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 = [ @@ -18,8 +22,8 @@ export default function previewSettings() { return PORT_REGEX.test(value); }, }, - info: "Port used by the live preview server", - category: "Server", + info: strings["settings-info-preview-preview-port"], + category: categories.server, }, { key: "serverPort", @@ -32,8 +36,8 @@ export default function previewSettings() { return PORT_REGEX.test(value); }, }, - info: "Port used by the internal app server", - category: "Server", + info: strings["settings-info-preview-server-port"], + category: categories.server, }, { key: "previewMode", @@ -43,8 +47,8 @@ export default function previewSettings() { [appSettings.PREVIEW_MODE_BROWSER, strings.browser], [appSettings.PREVIEW_MODE_INAPP, strings.inapp], ], - info: "Where preview opens when you launch it", - category: "Server", + info: strings["settings-info-preview-mode"], + category: categories.server, }, { key: "host", @@ -62,29 +66,29 @@ export default function previewSettings() { } }, }, - info: "Hostname used when opening the preview URL", - category: "Server", + info: strings["settings-info-preview-host"], + category: categories.server, }, { key: "disableCache", text: strings["disable in-app-browser caching"], checkbox: values.disableCache, - info: "Always reload content in the in-app browser", - category: "Preview", + info: strings["settings-info-preview-disable-cache"], + category: categories.preview, }, { key: "useCurrentFileForPreview", text: strings["should_use_current_file_for_preview"], checkbox: !!values.useCurrentFileForPreview, - info: "Prefer the current file when starting preview", - category: "Preview", + info: strings["settings-info-preview-use-current-file"], + category: categories.preview, }, { key: "showConsoleToggler", text: strings["show console toggler"], checkbox: values.showConsoleToggler, - info: "Show the console button in preview", - category: "Preview", + info: strings["settings-info-preview-show-console-toggler"], + category: categories.preview, }, { note: strings["preview settings note"], diff --git a/src/settings/terminalSettings.js b/src/settings/terminalSettings.js index 82e77bf28..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,7 +40,7 @@ export default function terminalSettings() { key: "all_file_access", text: strings["allFileAccess"], info: strings["info-all_file_access"], - category: "Permissions", + category: categories.permissions, chevron: true, }, { @@ -49,7 +56,7 @@ export default function terminalSettings() { }, }, info: strings["info-fontSize"], - category: "Display", + category: categories.display, }, { key: "fontFamily", @@ -59,7 +66,7 @@ export default function terminalSettings() { return fonts.getNames(); }, info: strings["info-fontFamily"], - category: "Display", + category: categories.display, }, { key: "theme", @@ -76,7 +83,7 @@ export default function terminalSettings() { const option = this.select.find(([v]) => v === value); return option ? option[1] : value; }, - category: "Display", + category: categories.display, }, { key: "fontWeight", @@ -96,7 +103,7 @@ export default function terminalSettings() { "900", ], info: strings["info-fontWeight"], - category: "Display", + category: categories.display, }, { key: "letterSpacing", @@ -105,14 +112,14 @@ export default function terminalSettings() { prompt: strings["letter spacing"], promptType: "number", info: strings["info-letterSpacing"], - category: "Display", + category: categories.display, }, { key: "fontLigatures", text: strings["font ligatures"], checkbox: terminalValues.fontLigatures, info: strings["info-fontLigatures"], - category: "Display", + category: categories.display, }, { key: "cursorStyle", @@ -120,7 +127,7 @@ export default function terminalSettings() { value: terminalValues.cursorStyle, select: ["block", "underline", "bar"], info: strings["info-cursorStyle"], - category: "Cursor", + category: categories.cursor, }, { key: "cursorInactiveStyle", @@ -128,14 +135,14 @@ export default function terminalSettings() { value: terminalValues.cursorInactiveStyle, select: ["outline", "block", "bar", "underline", "none"], info: strings["info-cursorInactiveStyle"], - category: "Cursor", + category: categories.cursor, }, { key: "cursorBlink", text: strings["terminal:cursor blink"], checkbox: terminalValues.cursorBlink, info: strings["info-cursorBlink"], - category: "Cursor", + category: categories.cursor, }, { key: "scrollback", @@ -150,7 +157,7 @@ export default function terminalSettings() { }, }, info: strings["info-scrollback"], - category: "Session", + category: categories.session, }, { key: "tabStopWidth", @@ -165,48 +172,48 @@ export default function terminalSettings() { }, }, info: strings["info-tabStopWidth"], - category: "Session", + category: categories.session, }, { key: "convertEol", text: strings["terminal:convert eol"], checkbox: terminalValues.convertEol, - info: "Convert line endings when pasting or rendering output", - category: "Session", + info: strings["settings-info-terminal-convert-eol"], + category: categories.session, }, { key: "imageSupport", text: strings["terminal:image support"], checkbox: terminalValues.imageSupport, info: strings["info-imageSupport"], - category: "Session", + category: categories.session, }, { key: "confirmTabClose", text: strings["terminal:confirm tab close"], checkbox: terminalValues.confirmTabClose !== false, info: strings["info-confirmTabClose"], - category: "Session", + category: categories.session, }, { key: "backup", text: strings.backup, info: strings["info-backup"], - category: "Maintenance", + category: categories.maintenance, chevron: true, }, { key: "restore", text: strings.restore, info: strings["info-restore"], - category: "Maintenance", + category: categories.maintenance, chevron: true, }, { key: "uninstall", text: strings.uninstall, info: strings["info-uninstall"], - category: "Maintenance", + category: categories.maintenance, chevron: true, }, ]; @@ -232,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; From 86b5b34f7683c7f69a5c9f6a7aa43379ad17effb Mon Sep 17 00:00:00 2001 From: Raunak Raj <71929976+bajrangCoder@users.noreply.github.com> Date: Mon, 9 Mar 2026 12:50:58 +0530 Subject: [PATCH 09/14] fix(settings): address review feedback --- src/components/searchbar/index.js | 6 +++++- src/lang/ar-ye.json | 4 +++- src/lang/be-by.json | 4 +++- src/lang/bn-bd.json | 4 +++- src/lang/cs-cz.json | 4 +++- src/lang/de-de.json | 4 +++- src/lang/en-us.json | 4 +++- src/lang/es-sv.json | 4 +++- src/lang/fr-fr.json | 4 +++- src/lang/he-il.json | 4 +++- src/lang/hi-in.json | 4 +++- src/lang/hu-hu.json | 4 +++- src/lang/id-id.json | 4 +++- src/lang/ir-fa.json | 4 +++- src/lang/it-it.json | 4 +++- src/lang/ja-jp.json | 4 +++- src/lang/ko-kr.json | 4 +++- src/lang/ml-in.json | 4 +++- src/lang/mm-unicode.json | 4 +++- src/lang/mm-zawgyi.json | 4 +++- src/lang/pl-pl.json | 4 +++- src/lang/pt-br.json | 4 +++- src/lang/pu-in.json | 4 +++- src/lang/ru-ru.json | 4 +++- src/lang/tl-ph.json | 4 +++- src/lang/tr-tr.json | 4 +++- src/lang/uk-ua.json | 4 +++- src/lang/uz-uz.json | 4 +++- src/lang/vi-vn.json | 4 +++- src/lang/zh-cn.json | 4 +++- src/lang/zh-hant.json | 4 +++- src/lang/zh-tw.json | 4 +++- src/settings/appSettings.js | 14 ++++++++------ src/settings/lspServerDetail.js | 2 +- 34 files changed, 107 insertions(+), 39 deletions(-) diff --git a/src/components/searchbar/index.js b/src/components/searchbar/index.js index d6fdad317..e0995637c 100644 --- a/src/components/searchbar/index.js +++ b/src/components/searchbar/index.js @@ -133,7 +133,11 @@ function searchBar($list, setHide, onhideCb, searchFunction) { if (!hasGroups) return result.map(cloneSearchItem); - const countLabel = `${result.length} ${result.length === 1 ? "RESULT" : "RESULTS"}`; + const countLabel = `${result.length} ${ + result.length === 1 + ? strings["search result label singular"] + : strings["search result label plural"] + }`; const content = [
{countLabel}
, ]; diff --git a/src/lang/ar-ye.json b/src/lang/ar-ye.json index b7cf65cc2..372e72c9d 100644 --- a/src/lang/ar-ye.json +++ b/src/lang/ar-ye.json @@ -697,5 +697,7 @@ "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." + "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 0107f567d..7ca60c9e5 100644 --- a/src/lang/be-by.json +++ b/src/lang/be-by.json @@ -699,5 +699,7 @@ "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." + "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 1300bff17..2bdaf826c 100644 --- a/src/lang/bn-bd.json +++ b/src/lang/bn-bd.json @@ -698,5 +698,7 @@ "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." + "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 62ebf1cea..0d58f8e7f 100644 --- a/src/lang/cs-cz.json +++ b/src/lang/cs-cz.json @@ -698,5 +698,7 @@ "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." + "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 a84838d2c..b372afa1a 100644 --- a/src/lang/de-de.json +++ b/src/lang/de-de.json @@ -698,5 +698,7 @@ "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." + "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 57fd32445..60b01d2c8 100644 --- a/src/lang/en-us.json +++ b/src/lang/en-us.json @@ -698,5 +698,7 @@ "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." + "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 eb4900c56..43f35aaf9 100644 --- a/src/lang/es-sv.json +++ b/src/lang/es-sv.json @@ -698,5 +698,7 @@ "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." + "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 15b8ec138..e91c7bf02 100644 --- a/src/lang/fr-fr.json +++ b/src/lang/fr-fr.json @@ -698,5 +698,7 @@ "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." + "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 e180ddcdb..372ba4fd9 100644 --- a/src/lang/he-il.json +++ b/src/lang/he-il.json @@ -699,5 +699,7 @@ "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." + "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 9773f685f..ed5e3a2b7 100644 --- a/src/lang/hi-in.json +++ b/src/lang/hi-in.json @@ -699,5 +699,7 @@ "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." + "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 c0b672e8f..ff8dffc62 100644 --- a/src/lang/hu-hu.json +++ b/src/lang/hu-hu.json @@ -698,5 +698,7 @@ "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." + "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 0335c5837..1e64f79df 100644 --- a/src/lang/id-id.json +++ b/src/lang/id-id.json @@ -699,5 +699,7 @@ "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." + "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 551892fb9..c511ee56e 100644 --- a/src/lang/ir-fa.json +++ b/src/lang/ir-fa.json @@ -699,5 +699,7 @@ "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." + "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 dc5f470a7..f75bc6876 100644 --- a/src/lang/it-it.json +++ b/src/lang/it-it.json @@ -698,5 +698,7 @@ "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." + "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 48f67b743..203ade0a6 100644 --- a/src/lang/ja-jp.json +++ b/src/lang/ja-jp.json @@ -698,5 +698,7 @@ "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." + "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 c694c0ca9..8d26db543 100644 --- a/src/lang/ko-kr.json +++ b/src/lang/ko-kr.json @@ -698,5 +698,7 @@ "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." + "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 68937f682..3c6d5a0df 100644 --- a/src/lang/ml-in.json +++ b/src/lang/ml-in.json @@ -698,5 +698,7 @@ "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." + "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 45b15db75..a390806bf 100644 --- a/src/lang/mm-unicode.json +++ b/src/lang/mm-unicode.json @@ -698,5 +698,7 @@ "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." + "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 b51f594b1..6de4e7239 100644 --- a/src/lang/mm-zawgyi.json +++ b/src/lang/mm-zawgyi.json @@ -698,5 +698,7 @@ "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." + "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 0a892f854..4943fb2bd 100644 --- a/src/lang/pl-pl.json +++ b/src/lang/pl-pl.json @@ -698,5 +698,7 @@ "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." + "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 5a3140255..28042037d 100644 --- a/src/lang/pt-br.json +++ b/src/lang/pt-br.json @@ -698,5 +698,7 @@ "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." + "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 e4374d8a8..5351c6ec0 100644 --- a/src/lang/pu-in.json +++ b/src/lang/pu-in.json @@ -698,5 +698,7 @@ "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." + "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 b4fccfb04..1144466e8 100644 --- a/src/lang/ru-ru.json +++ b/src/lang/ru-ru.json @@ -698,5 +698,7 @@ "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." + "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 6418fbd6a..f282bc8f5 100644 --- a/src/lang/tl-ph.json +++ b/src/lang/tl-ph.json @@ -698,5 +698,7 @@ "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." + "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 ce40f18c1..e44b2f55e 100644 --- a/src/lang/tr-tr.json +++ b/src/lang/tr-tr.json @@ -698,5 +698,7 @@ "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." + "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 2064e034c..bd6a35557 100644 --- a/src/lang/uk-ua.json +++ b/src/lang/uk-ua.json @@ -698,5 +698,7 @@ "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." + "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 05b47f20a..543e28ad2 100644 --- a/src/lang/uz-uz.json +++ b/src/lang/uz-uz.json @@ -698,5 +698,7 @@ "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." + "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 389b11523..a050f94cf 100644 --- a/src/lang/vi-vn.json +++ b/src/lang/vi-vn.json @@ -699,5 +699,7 @@ "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." + "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 171872b58..607bfe340 100644 --- a/src/lang/zh-cn.json +++ b/src/lang/zh-cn.json @@ -698,5 +698,7 @@ "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." + "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 65af302b8..e47069764 100644 --- a/src/lang/zh-hant.json +++ b/src/lang/zh-hant.json @@ -698,5 +698,7 @@ "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." + "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 f0ccde88a..346f1949f 100644 --- a/src/lang/zh-tw.json +++ b/src/lang/zh-tw.json @@ -698,5 +698,7 @@ "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." + "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/settings/appSettings.js b/src/settings/appSettings.js index d6f2ce776..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"; @@ -215,14 +216,9 @@ export default function otherSettings() { { key: "keybindings", text: strings["key bindings"], - value: "edit", - valueText: (value) => (value === "reset" ? strings.reset : strings.edit), - select: [ - ["edit", strings.edit], - ["reset", strings.reset], - ], info: strings["settings-info-app-keybindings"], category: categories.advanced, + chevron: true, }, { key: "confirmOnExit", @@ -280,6 +276,12 @@ export default function otherSettings() { 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/lspServerDetail.js b/src/settings/lspServerDetail.js index bddd0a8ab..22e918860 100644 --- a/src/settings/lspServerDetail.js +++ b/src/settings/lspServerDetail.js @@ -63,7 +63,7 @@ function getFeatureItems() { function fillTemplate(template, replacements) { return Object.entries(replacements).reduce( - (result, [key, value]) => result.replace(`{${key}}`, String(value)), + (result, [key, value]) => result.replaceAll(`{${key}}`, String(value)), String(template || ""), ); } From 008c9a6cad03f566dde01f73dcf444f7c46cd233 Mon Sep 17 00:00:00 2001 From: Raunak Raj <71929976+bajrangCoder@users.noreply.github.com> Date: Mon, 9 Mar 2026 16:26:35 +0530 Subject: [PATCH 10/14] fix: some value related issues --- src/components/settingsPage.js | 51 ++++++++++++++++++++++++++++++++-- 1 file changed, 49 insertions(+), 2 deletions(-) diff --git a/src/components/settingsPage.js b/src/components/settingsPage.js index 29b236411..d799e1fb2 100644 --- a/src/components/settingsPage.js +++ b/src/components/settingsPage.js @@ -448,6 +448,8 @@ function listItems($list, items, callback, options = {}) { const $valueText = $target.get(".value"); const $checkbox = $target.get(".input-checkbox"); const $trailingValueText = $target.get(".setting-trailing-value"); + const shouldUpdateInlineValue = + $valueText && !$valueText.classList.contains("setting-info"); let res; let shouldUpdateValue = false; @@ -483,8 +485,11 @@ function listItems($list, items, callback, options = {}) { if (shouldUpdateValue) { item.value = res; - setValueText($valueText, res, valueText?.bind(item)); - setValueText($trailingValueText, res, valueText?.bind(item)); + if (options.valueInTail) { + setValueText($trailingValueText, res, valueText?.bind(item)); + } else { + syncInlineValueDisplay($target, item, useInfoAsDescription); + } setColor($target, res); } @@ -492,6 +497,48 @@ function listItems($list, items, callback, options = {}) { } } +/** + * 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 subtitle = getSubtitleText(item, useInfoAsDescription); + const showInfoAsSubtitle = + item.checkbox !== undefined || + typeof item.value === "boolean" || + useInfoAsDescription || + (item.value === undefined && item.info); + const hasSubtitle = + subtitle !== undefined && subtitle !== null && subtitle !== ""; + let $valueText = $target.get(".value"); + const $container = $target.get(".container"); + + if (!$container) return; + + if (!hasSubtitle) { + $valueText?.remove(); + $target.classList.remove("has-subtitle"); + $target.classList.add("compact"); + return; + } + + if (!$valueText) { + $valueText = ; + $container.append($valueText); + } + + $valueText.classList.toggle("setting-info", showInfoAsSubtitle); + setValueText( + $valueText, + subtitle, + showInfoAsSubtitle ? null : item.valueText?.bind(item), + ); + $target.classList.add("has-subtitle"); + $target.classList.remove("compact"); +} + function getSubtitleText(item, useInfoAsDescription) { if (useInfoAsDescription) { return item.info; From 140889d44838943c3c85400dfa85cda2e7287c8e Mon Sep 17 00:00:00 2001 From: Raunak Raj <71929976+bajrangCoder@users.noreply.github.com> Date: Mon, 9 Mar 2026 16:34:29 +0530 Subject: [PATCH 11/14] cleanup --- src/components/settingsPage.js | 686 ++++++++++++++++++++------------- 1 file changed, 411 insertions(+), 275 deletions(-) diff --git a/src/components/settingsPage.js b/src/components/settingsPage.js index d799e1fb2..f7f3aebe8 100644 --- a/src/components/settingsPage.js +++ b/src/components/settingsPage.js @@ -59,63 +59,13 @@ export default function settingsPage( /**@type {HTMLDivElement} */ const $list =
; - /**@type {ListItem} */ - let note; if (options.listClassName) { $list.classList.add(...options.listClassName.split(" ").filter(Boolean)); } - settings = settings.filter((setting) => { - if ("note" in setting) { - note = setting.note; - return false; - } - - if (!setting.info) { - Object.defineProperty(setting, "info", { - get() { - return strings[`info-${this.key.toLocaleLowerCase()}`]; - }, - }); - } - - return true; - }); - - if (type === "united" || (type === "separate" && settings.length > 5)) { - const $search = ; - $search.onclick = () => - searchBar( - $list, - (hide) => { - hideSearchBar = hide; - }, - type === "united" - ? () => { - Object.values(appSettings.uiSettings).forEach((page) => { - page.restoreList(); - }); - } - : null, - (key) => { - if (type === "united") { - const $items = []; - Object.values(appSettings.uiSettings).forEach((page) => { - $items.push(...page.search(key)); - }); - return $items; - } - - return state.searchItems.filter((item) => { - const text = item.textContent.toLowerCase(); - return text.match(key, "i"); - }); - }, - ); - - $page.header.append($search); - } + const normalized = normalizeSettings(settings); + settings = normalized.settings; /** DISCLAIMER: do not assign hideSearchBar directly because it can change */ $page.ondisconnect = () => hideSearchBar(); @@ -133,16 +83,23 @@ export default function settingsPage( const searchableItems = state.searchItems; - if (note) { - const $note = ( -
-
- - {strings.info} -
-

-
- ); + if (shouldEnableSearch(type, settings.length)) { + const $search = ; + $search.onclick = () => + searchBar( + $list, + (hide) => { + hideSearchBar = hide; + }, + type === "united" ? restoreAllSettingsPages : null, + createSearchHandler(type, state.searchItems), + ); + + $page.header.append($search); + } + + if (normalized.note) { + const $note = createNote(normalized.note); if (options.notePosition === "top") { children.unshift($note); @@ -236,12 +193,9 @@ export default function settingsPage( function listItems($list, items, callback, options = {}) { const renderedItems = []; const $searchItems = []; - const $content = []; const useInfoAsDescription = options.infoAsDescription ?? Boolean(options.valueInTail); - /** @type {HTMLElement | null} */ - let $currentSectionCard = null; - let currentCategory = null; + const itemByKey = new Map(items.map((item) => [item.key, item])); // sort settings by text before rendering (unless preserveOrder is true) if (!options.preserveOrder) { @@ -251,135 +205,264 @@ function listItems($list, items, callback, options = {}) { }); } items.forEach((item) => { - const $setting = Ref(); - const $settingName = Ref(); - const $tail = Ref(); - const isCheckboxItem = - item.checkbox !== undefined || typeof item.value === "boolean"; - /**@type {HTMLDivElement} */ - const $item = ( -
- -
-
- {item.text?.capitalize?.(0) ?? item.text} -
-
-
-
- ); + const $item = createListItemElement(item, options, useInfoAsDescription); + insertRenderedItem(renderedItems, item, $item); + $item.addEventListener("click", onclick); + $searchItems.push($item); + }); - let $checkbox, $valueText; - let $trailingValueText; - const subtitle = isCheckboxItem - ? item.info - : getSubtitleText(item, useInfoAsDescription); - const showInfoAsSubtitle = - isCheckboxItem || - useInfoAsDescription || - (item.value === undefined && item.info); - const searchGroup = - item.searchGroup || item.category || options.defaultSearchGroup; - const hasSubtitle = - subtitle !== undefined && subtitle !== null && subtitle !== ""; - const shouldShowTailChevron = - item.chevron || - (!item.select && - Boolean(item.prompt || item.file || item.folder || item.link)); - - if (searchGroup) { - $item.dataset.searchGroup = searchGroup; - } + const topLevelChildren = buildListContent(renderedItems, options); - let subtitleRendered = false; + $list.content = topLevelChildren; - if (isCheckboxItem) { - $checkbox = Checkbox("", item.checkbox || item.value); - $tail.el.appendChild($checkbox); - } + return { + children: topLevelChildren, + searchItems: $searchItems, + }; - if (hasSubtitle) { - $valueText = ; - setValueText( - $valueText, - subtitle, - showInfoAsSubtitle ? null : item.valueText?.bind(item), - ); - if (showInfoAsSubtitle) { - $valueText.classList.add("setting-info"); - } - $setting.append($valueText); - subtitleRendered = true; - if (!showInfoAsSubtitle) { - setColor($item, item.value); - } - } + /** + * Click handler for $list + * @this {HTMLElement} + * @param {MouseEvent} e + */ + async function onclick(e) { + const $target = e.currentTarget; + const { key } = $target.dataset; - if (subtitleRendered) { - $item.classList.add("has-subtitle"); - } else { - $item.classList.add("compact"); - } + 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); - if ( - options.valueInTail && - item.value !== undefined && - item.checkbox === undefined && - typeof item.value !== "boolean" - ) { - $item.classList.add("has-tail-value"); + item.value = result.value; + updateItemValueDisplay($target, item, options, useInfoAsDescription); - if (item.select) { - $item.classList.add("has-tail-select"); - } + callback.call($target, key, item.value); + } +} - $trailingValueText = ( - - ); - setValueText($trailingValueText, item.value, item.valueText?.bind(item)); - - const $valueDisplay = ( -
- {$trailingValueText} - {item.select - ? - : null} -
- ); - $tail.el.append($valueDisplay); +function normalizeSettings(settings) { + /** @type {string | undefined} */ + let note; + const normalizedSettings = settings.filter((setting) => { + if ("note" in setting) { + note = setting.note; + return false; } - if (shouldShowTailChevron) { - $tail.el.append( - , - ); + 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; } - if (!$tail.el.children.length) { - $tail.el.remove(); + 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 (Number.isInteger(item.index)) { - renderedItems.splice(item.index, 0, { item, $item }); - } else { - renderedItems.push({ item, $item }); + if (shouldShowTrailingValue(item, options)) { + $item.classList.add("has-tail-value"); + if (item.select) { + $item.classList.add("has-tail-select"); } + $tail.el.append(createTrailingValueDisplay(item)); + } - $item.addEventListener("click", onclick); - $searchItems.push($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 = @@ -394,107 +477,167 @@ function listItems($list, items, callback, options = {}) { if (currentCategory !== category || !$currentSectionCard) { currentCategory = category; - const shouldShowLabel = category !== "__default__"; - const $label = shouldShowLabel - ?
{category}
- : null; - $currentSectionCard =
; - $content.push( -
- {$label} - {$currentSectionCard} -
, - ); + const section = createSectionElements(category); + $currentSectionCard = section.$card; + $content.push(section.$section); } $currentSectionCard.append($item); }); - const topLevelChildren = $content.length - ? $content - : renderedItems.map(({ $item }) => $item); - - $list.content = topLevelChildren; + return $content.length ? $content : renderedItems.map(({ $item }) => $item); +} +function createSectionElements(category) { + const shouldShowLabel = category !== "__default__"; + const $label = shouldShowLabel + ?
{category}
+ : null; + const $card =
; return { - children: topLevelChildren, - searchItems: $searchItems, + $card, + $section: ( +
+ {$label} + {$card} +
+ ), }; +} - /** - * Click handler for $list - * @this {HTMLElement} - * @param {MouseEvent} e - */ - async function onclick(e) { - const $target = e.currentTarget; - const { key } = $target.dataset; +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, + }); - const item = items.find((item) => item.key === key); - if (!item) return; + return { + shouldUpdateValue: selectedValue !== undefined, + value: selectedValue, + }; + } - 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"); - const $trailingValueText = $target.get(".setting-trailing-value"); - const shouldUpdateInlineValue = - $valueText && !$valueText.classList.contains("setting-info"); - let res; - let shouldUpdateValue = false; - - try { - if (options) { - res = await select(text, options, { - default: value, - }); - shouldUpdateValue = res !== undefined; - } else if (checkbox !== undefined) { - $checkbox.toggle(); - res = $checkbox.checked; - shouldUpdateValue = true; - } else if (promptText) { - res = await prompt(promptText, value, promptType, promptOptions); - if (res === null) return; - shouldUpdateValue = true; - } else if (file || folder) { - const mode = file ? "file" : "folder"; - const { url } = await FileBrowser(mode); - res = url; - shouldUpdateValue = true; - } else if (selectColor) { - res = await colorPicker(value); - shouldUpdateValue = true; - } else if (link) { - system.openInBrowser(link); - return; - } - } catch (error) { - window.log("error", error); + if (checkbox !== undefined) { + const $checkbox = $target.get(".input-checkbox"); + $checkbox.toggle(); + return { + shouldUpdateValue: true, + value: $checkbox.checked, + }; } - if (shouldUpdateValue) { - item.value = res; - if (options.valueInTail) { - setValueText($trailingValueText, res, valueText?.bind(item)); - } else { - syncInlineValueDisplay($target, item, useInfoAsDescription); + if (promptText) { + const promptedValue = await prompt( + promptText, + value, + promptType, + promptOptions, + ); + if (promptedValue === null) { + return { + shouldUpdateValue: false, + shouldCallCallback: false, + }; } - setColor($target, res); + + return { + shouldUpdateValue: true, + value: promptedValue, + }; } - 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)); } /** @@ -504,20 +647,13 @@ function listItems($list, items, callback, options = {}) { * @param {boolean} useInfoAsDescription */ function syncInlineValueDisplay($target, item, useInfoAsDescription) { - const subtitle = getSubtitleText(item, useInfoAsDescription); - const showInfoAsSubtitle = - item.checkbox !== undefined || - typeof item.value === "boolean" || - useInfoAsDescription || - (item.value === undefined && item.info); - const hasSubtitle = - subtitle !== undefined && subtitle !== null && subtitle !== ""; + const state = getItemDisplayState(item, useInfoAsDescription); let $valueText = $target.get(".value"); const $container = $target.get(".container"); if (!$container) return; - if (!hasSubtitle) { + if (!state.hasSubtitle) { $valueText?.remove(); $target.classList.remove("has-subtitle"); $target.classList.add("compact"); @@ -529,11 +665,11 @@ function syncInlineValueDisplay($target, item, useInfoAsDescription) { $container.append($valueText); } - $valueText.classList.toggle("setting-info", showInfoAsSubtitle); + $valueText.classList.toggle("setting-info", state.showInfoAsSubtitle); setValueText( $valueText, - subtitle, - showInfoAsSubtitle ? null : item.valueText?.bind(item), + state.subtitle, + state.showInfoAsSubtitle ? null : item.valueText?.bind(item), ); $target.classList.add("has-subtitle"); $target.classList.remove("compact"); From 705126d1a6e1db123992d8458118282d025d31c8 Mon Sep 17 00:00:00 2001 From: Raunak Raj <71929976+bajrangCoder@users.noreply.github.com> Date: Mon, 9 Mar 2026 18:53:30 +0530 Subject: [PATCH 12/14] fix --- src/components/searchbar/index.js | 38 +++-- src/components/settingsPage.scss | 232 +++++++++++++++++++++++++++++- 2 files changed, 254 insertions(+), 16 deletions(-) diff --git a/src/components/searchbar/index.js b/src/components/searchbar/index.js index e0995637c..1ace29954 100644 --- a/src/components/searchbar/index.js +++ b/src/components/searchbar/index.js @@ -117,18 +117,33 @@ function searchBar($list, setHide, onhideCb, searchFunction) { function buildSearchContent(result, val) { if (!val || !result.length) return result; - const groups = new Map(); + const groupedSections = []; + const sectionIndexByLabel = new Map(); let hasGroups = false; result.forEach(($item) => { const label = $item.dataset.searchGroup; - if (!label) return; - hasGroups = true; + if (!label) { + groupedSections.push({ + items: [$item], + type: "ungrouped", + }); + return; + } - if (!groups.has(label)) { - groups.set(label, []); + hasGroups = true; + const existingSectionIndex = sectionIndexByLabel.get(label); + if (existingSectionIndex !== undefined) { + groupedSections[existingSectionIndex].items.push($item); + return; } - groups.get(label).push($item); + + sectionIndexByLabel.set(label, groupedSections.length); + groupedSections.push({ + items: [$item], + label, + type: "group", + }); }); if (!hasGroups) return result.map(cloneSearchItem); @@ -142,12 +157,17 @@ function searchBar($list, setHide, onhideCb, searchFunction) {
{countLabel}
, ]; - groups.forEach((items, label) => { + groupedSections.forEach((section) => { + if (section.type === "ungrouped") { + content.push(...section.items.map(cloneSearchItem)); + return; + } + content.push(
-
{label}
+
{section.label}
- {items.map(cloneSearchItem)} + {section.items.map(cloneSearchItem)}
, ); diff --git a/src/components/settingsPage.scss b/src/components/settingsPage.scss index 31500fbc2..4a7e2c8e0 100644 --- a/src/components/settingsPage.scss +++ b/src/components/settingsPage.scss @@ -140,6 +140,216 @@ wc-page.main-settings-page { 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; @@ -147,6 +357,21 @@ wc-page.main-settings-page { } } + @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; + } + } + .icon { &:active, &.active { @@ -311,13 +536,6 @@ wc-page.detail-settings-page { padding-right: 0.95rem; } - .detail-settings-list > .list-item.has-subtitle.has-tail-select > .setting-tail, - .settings-section-card > .list-item.has-subtitle.has-tail-select > .setting-tail { - align-self: flex-start; - margin-top: 0.16rem; - margin-left: 1.3rem; - } - .detail-settings-list > .list-item.compact > .container, .settings-section-card > .list-item.compact > .container { align-self: center; From 92c1db910de686ccbc4909ece55c5a8e97e38581 Mon Sep 17 00:00:00 2001 From: Raunak Raj <71929976+bajrangCoder@users.noreply.github.com> Date: Mon, 9 Mar 2026 19:08:36 +0530 Subject: [PATCH 13/14] update when added new entry --- src/settings/lspSettings.js | 115 +++++++++++++++++++++++------------- 1 file changed, 73 insertions(+), 42 deletions(-) diff --git a/src/settings/lspSettings.js b/src/settings/lspSettings.js index 25925c451..a2db7fbe6 100644 --- a/src/settings/lspSettings.js +++ b/src/settings/lspSettings.js @@ -123,57 +123,87 @@ export default function lspSettings() { customServers: strings["settings-category-custom-servers"], servers: strings["settings-category-servers"], }; - const servers = serverRegistry.listServers(); + let page = createPage(); - const sortedServers = servers.sort((a, b) => { - const aEnabled = getServerOverride(a.id).enabled ?? a.enabled; - const bEnabled = getServerOverride(b.id).enabled ?? b.enabled; + 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); + }, + }; - if (aEnabled !== bEnabled) { - return bEnabled ? 1 : -1; - } - return a.label.localeCompare(b.label); - }); + function createPage() { + const servers = serverRegistry.listServers(); - 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, - }, - ]; + const sortedServers = servers.sort((a, b) => { + const aEnabled = getServerOverride(a.id).enabled ?? a.enabled; + const bEnabled = getServerOverride(b.id).enabled ?? b.enabled; - 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); + 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); + + 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, - category: categories.servers, - chevron: true, + note: strings["settings-note-lsp-settings"], }); - } - items.push({ - note: strings["settings-note-lsp-settings"], - }); + 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, - pageClassName: "detail-settings-page", - listClassName: "detail-settings-list", - groupByDefault: true, - }); + function refreshVisiblePage() { + page.hide(); + page = createPage(); + page.show(); + } async function callback(key) { if (key === "add_custom_server") { @@ -261,6 +291,7 @@ export default function lspSettings() { }); toast(strings["lsp-custom-server-added"]); + refreshVisiblePage(); const detailPage = lspServerDetail(serverId); detailPage?.show(); } catch (error) { From b9f2a5e7ae0b54067228643cfb50c37cc1922405 Mon Sep 17 00:00:00 2001 From: Raunak Raj <71929976+bajrangCoder@users.noreply.github.com> Date: Mon, 9 Mar 2026 19:13:14 +0530 Subject: [PATCH 14/14] fix --- src/components/settingsPage.scss | 80 ++++++++------------------------ 1 file changed, 20 insertions(+), 60 deletions(-) diff --git a/src/components/settingsPage.scss b/src/components/settingsPage.scss index 4a7e2c8e0..aba4f617f 100644 --- a/src/components/settingsPage.scss +++ b/src/components/settingsPage.scss @@ -1,7 +1,5 @@ -wc-page.main-settings-page { - background: var(--secondary-color); - - .main-settings-list { +@mixin settings-page-shell($list-selector) { + #{$list-selector} { display: flex; flex-direction: column; gap: 1.2rem; @@ -42,6 +40,21 @@ wc-page.main-settings-page { 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 { @@ -372,59 +385,12 @@ wc-page.main-settings-page { } } - .icon { - &:active, - &.active { - transform: none; - background-color: transparent !important; - } - } + @include settings-icon-reset; } wc-page.detail-settings-page { background: var(--secondary-color); - - .detail-settings-list { - 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; - } + @include settings-page-shell(".detail-settings-list"); .detail-settings-list > .list-item, .settings-section-card > .list-item { @@ -794,13 +760,7 @@ wc-page.detail-settings-page { ); } - .icon { - &:active, - &.active { - transform: none; - background-color: transparent !important; - } - } + @include settings-icon-reset; } wc-page.detail-settings-page.formatter-settings-page {