Localization: Perform markdown parsing first (#6540)

This commit is contained in:
zubiden 2025-12-22 22:53:48 +01:00 committed by Alexander Zinchuk
parent 035fde54fd
commit 01d7cf294d

View File

@ -24,7 +24,7 @@ import {
import { DEBUG, FORCE_FALLBACK_LANG, LANG_PACK } from '../../config'; import { DEBUG, FORCE_FALLBACK_LANG, LANG_PACK } from '../../config';
import { callApi } from '../../api/gramjs'; import { callApi } from '../../api/gramjs';
import renderText from '../../components/common/helpers/renderText'; import renderText, { type TextFilter } from '../../components/common/helpers/renderText';
import { IS_INTL_LIST_FORMAT_SUPPORTED } from '../browser/globalEnvironment'; import { IS_INTL_LIST_FORMAT_SUPPORTED } from '../browser/globalEnvironment';
import { MAIN_IDB_STORE } from '../browser/idb'; import { MAIN_IDB_STORE } from '../browser/idb';
import { getBasicListFormat } from '../browser/intlListFormat'; import { getBasicListFormat } from '../browser/intlListFormat';
@ -32,7 +32,7 @@ import { notifyLangpackUpdate } from '../browser/multitab';
import { createCallbackManager } from '../callbacks'; import { createCallbackManager } from '../callbacks';
import readFallbackStrings from '../data/readFallbackStrings'; import readFallbackStrings from '../data/readFallbackStrings';
import { initialEstablishmentPromise, isCurrentTabMaster } from '../establishMultitabRole'; import { initialEstablishmentPromise, isCurrentTabMaster } from '../establishMultitabRole';
import { omit } from '../iteratees'; import { omit, unique } from '../iteratees';
import { replaceInStringsWithTeact } from '../replaceWithTeact'; import { replaceInStringsWithTeact } from '../replaceWithTeact';
import { fastRaf } from '../schedulers'; import { fastRaf } from '../schedulers';
@ -422,14 +422,9 @@ function processTranslationAdvanced(
const withRenderText = options?.withNodes; const withRenderText = options?.withNodes;
if (withRenderText) { if (withRenderText) {
const textFiltersSet = new Set(options?.renderTextFilters); const initialFilters: TextFilter[] = options.withMarkdown ? ['simple_markdown', 'emoji'] : ['emoji'];
textFiltersSet.add('emoji');
if (options?.withMarkdown) { const filters = unique([...initialFilters, ...options.renderTextFilters || []]);
textFiltersSet.add('simple_markdown');
}
const filters = Array.from(textFiltersSet);
const tempResultArray = Array.isArray(tempResult) ? tempResult : [tempResult]; const tempResultArray = Array.isArray(tempResult) ? tempResult : [tempResult];
return tempResultArray.flatMap((curr: TeactNode) => { return tempResultArray.flatMap((curr: TeactNode) => {