diff --git a/README.md b/README.md index f8058d906..211301b99 100644 --- a/README.md +++ b/README.md @@ -115,46 +115,46 @@ Stirling-PDF currently supports 40 languages! | Language | Progress | | -------------------------------------------- | -------------------------------------- | -| Arabic (العربية) (ar_AR) | ![83%](https://geps.dev/progress/83) | -| Azerbaijani (Azərbaycan Dili) (az_AZ) | ![32%](https://geps.dev/progress/32) | -| Basque (Euskara) (eu_ES) | ![18%](https://geps.dev/progress/18) | -| Bulgarian (Български) (bg_BG) | ![35%](https://geps.dev/progress/35) | -| Catalan (Català) (ca_CA) | ![34%](https://geps.dev/progress/34) | -| Croatian (Hrvatski) (hr_HR) | ![31%](https://geps.dev/progress/31) | -| Czech (Česky) (cs_CZ) | ![34%](https://geps.dev/progress/34) | -| Danish (Dansk) (da_DK) | ![30%](https://geps.dev/progress/30) | -| Dutch (Nederlands) (nl_NL) | ![30%](https://geps.dev/progress/30) | +| Arabic (العربية) (ar_AR) | ![64%](https://geps.dev/progress/64) | +| Azerbaijani (Azərbaycan Dili) (az_AZ) | ![24%](https://geps.dev/progress/24) | +| Basque (Euskara) (eu_ES) | ![14%](https://geps.dev/progress/14) | +| Bulgarian (Български) (bg_BG) | ![26%](https://geps.dev/progress/26) | +| Catalan (Català) (ca_CA) | ![26%](https://geps.dev/progress/26) | +| Croatian (Hrvatski) (hr_HR) | ![24%](https://geps.dev/progress/24) | +| Czech (Česky) (cs_CZ) | ![26%](https://geps.dev/progress/26) | +| Danish (Dansk) (da_DK) | ![23%](https://geps.dev/progress/23) | +| Dutch (Nederlands) (nl_NL) | ![23%](https://geps.dev/progress/23) | | English (English) (en_GB) | ![100%](https://geps.dev/progress/100) | | English (US) (en_US) | ![100%](https://geps.dev/progress/100) | -| French (Français) (fr_FR) | ![82%](https://geps.dev/progress/82) | -| German (Deutsch) (de_DE) | ![84%](https://geps.dev/progress/84) | -| Greek (Ελληνικά) (el_GR) | ![34%](https://geps.dev/progress/34) | -| Hindi (हिंदी) (hi_IN) | ![34%](https://geps.dev/progress/34) | -| Hungarian (Magyar) (hu_HU) | ![38%](https://geps.dev/progress/38) | -| Indonesian (Bahasa Indonesia) (id_ID) | ![31%](https://geps.dev/progress/31) | -| Irish (Gaeilge) (ga_IE) | ![34%](https://geps.dev/progress/34) | -| Italian (Italiano) (it_IT) | ![84%](https://geps.dev/progress/84) | -| Japanese (日本語) (ja_JP) | ![62%](https://geps.dev/progress/62) | -| Korean (한국어) (ko_KR) | ![34%](https://geps.dev/progress/34) | -| Norwegian (Norsk) (no_NB) | ![32%](https://geps.dev/progress/32) | -| Persian (فارسی) (fa_IR) | ![34%](https://geps.dev/progress/34) | -| Polish (Polski) (pl_PL) | ![36%](https://geps.dev/progress/36) | -| Portuguese (Português) (pt_PT) | ![34%](https://geps.dev/progress/34) | -| Portuguese Brazilian (Português) (pt_BR) | ![83%](https://geps.dev/progress/83) | -| Romanian (Română) (ro_RO) | ![28%](https://geps.dev/progress/28) | -| Russian (Русский) (ru_RU) | ![83%](https://geps.dev/progress/83) | -| Serbian Latin alphabet (Srpski) (sr_LATN_RS) | ![37%](https://geps.dev/progress/37) | -| Simplified Chinese (简体中文) (zh_CN) | ![85%](https://geps.dev/progress/85) | -| Slovakian (Slovensky) (sk_SK) | ![26%](https://geps.dev/progress/26) | -| Slovenian (Slovenščina) (sl_SI) | ![36%](https://geps.dev/progress/36) | -| Spanish (Español) (es_ES) | ![84%](https://geps.dev/progress/84) | -| Swedish (Svenska) (sv_SE) | ![33%](https://geps.dev/progress/33) | -| Thai (ไทย) (th_TH) | ![31%](https://geps.dev/progress/31) | +| French (Français) (fr_FR) | ![63%](https://geps.dev/progress/63) | +| German (Deutsch) (de_DE) | ![64%](https://geps.dev/progress/64) | +| Greek (Ελληνικά) (el_GR) | ![26%](https://geps.dev/progress/26) | +| Hindi (हिंदी) (hi_IN) | ![26%](https://geps.dev/progress/26) | +| Hungarian (Magyar) (hu_HU) | ![29%](https://geps.dev/progress/29) | +| Indonesian (Bahasa Indonesia) (id_ID) | ![24%](https://geps.dev/progress/24) | +| Irish (Gaeilge) (ga_IE) | ![26%](https://geps.dev/progress/26) | +| Italian (Italiano) (it_IT) | ![64%](https://geps.dev/progress/64) | +| Japanese (日本語) (ja_JP) | ![47%](https://geps.dev/progress/47) | +| Korean (한국어) (ko_KR) | ![26%](https://geps.dev/progress/26) | +| Norwegian (Norsk) (no_NB) | ![24%](https://geps.dev/progress/24) | +| Persian (فارسی) (fa_IR) | ![26%](https://geps.dev/progress/26) | +| Polish (Polski) (pl_PL) | ![27%](https://geps.dev/progress/27) | +| Portuguese (Português) (pt_PT) | ![26%](https://geps.dev/progress/26) | +| Portuguese Brazilian (Português) (pt_BR) | ![64%](https://geps.dev/progress/64) | +| Romanian (Română) (ro_RO) | ![22%](https://geps.dev/progress/22) | +| Russian (Русский) (ru_RU) | ![63%](https://geps.dev/progress/63) | +| Serbian Latin alphabet (Srpski) (sr_LATN_RS) | ![28%](https://geps.dev/progress/28) | +| Simplified Chinese (简体中文) (zh_CN) | ![65%](https://geps.dev/progress/65) | +| Slovakian (Slovensky) (sk_SK) | ![19%](https://geps.dev/progress/19) | +| Slovenian (Slovenščina) (sl_SI) | ![27%](https://geps.dev/progress/27) | +| Spanish (Español) (es_ES) | ![64%](https://geps.dev/progress/64) | +| Swedish (Svenska) (sv_SE) | ![25%](https://geps.dev/progress/25) | +| Thai (ไทย) (th_TH) | ![23%](https://geps.dev/progress/23) | | Tibetan (བོད་ཡིག་) (bo_CN) | ![65%](https://geps.dev/progress/65) | -| Traditional Chinese (繁體中文) (zh_TW) | ![38%](https://geps.dev/progress/38) | -| Turkish (Türkçe) (tr_TR) | ![37%](https://geps.dev/progress/37) | -| Ukrainian (Українська) (uk_UA) | ![36%](https://geps.dev/progress/36) | -| Vietnamese (Tiếng Việt) (vi_VN) | ![28%](https://geps.dev/progress/28) | +| Traditional Chinese (繁體中文) (zh_TW) | ![29%](https://geps.dev/progress/29) | +| Turkish (Türkçe) (tr_TR) | ![28%](https://geps.dev/progress/28) | +| Ukrainian (Українська) (uk_UA) | ![28%](https://geps.dev/progress/28) | +| Vietnamese (Tiếng Việt) (vi_VN) | ![21%](https://geps.dev/progress/21) | | Malayalam (മലയാളം) (ml_IN) | ![73%](https://geps.dev/progress/73) | ## Stirling PDF Enterprise diff --git a/frontend/src/core/components/tools/compare/CompareDocumentPane.tsx b/frontend/src/core/components/tools/compare/CompareDocumentPane.tsx index 78f9a4b75..18adf6ac6 100644 --- a/frontend/src/core/components/tools/compare/CompareDocumentPane.tsx +++ b/frontend/src/core/components/tools/compare/CompareDocumentPane.tsx @@ -1,5 +1,5 @@ import { Group, Loader, Stack, Text } from '@mantine/core'; -import { useMemo, useRef, useEffect } from 'react'; +import { useMemo, useRef, useEffect, useState } from 'react'; import type { PagePreview } from '@app/types/compare'; import type { TokenBoundingBox, CompareDocumentPaneProps } from '@app/types/compare'; import { mergeConnectedRects, normalizeRotation, groupWordRects, computePageLayoutMetrics } from '@app/components/tools/compare/compare'; @@ -53,6 +53,8 @@ const CompareDocumentPane = ({ // Track which page images have finished loading to avoid flashing between states const imageLoadedRef = useRef>(new Map()); + // Force a re-render when an image load state changes (refs don't trigger renders) + const [, setImageLoadedTick] = useState(0); const visiblePageRafRef = useRef(null); const lastReportedVisiblePageRef = useRef(null); const pageNodesRef = useRef(null); @@ -252,6 +254,7 @@ const CompareDocumentPane = ({ onLoad={() => { if (!imageLoadedRef.current.get(page.pageNumber)) { imageLoadedRef.current.set(page.pageNumber, true); + setImageLoadedTick((v) => v + 1); // refs don't trigger renders } }} /> diff --git a/scripts/ignore_translation.toml b/scripts/ignore_translation.toml index f0d1d7d2b..83e2df925 100644 --- a/scripts/ignore_translation.toml +++ b/scripts/ignore_translation.toml @@ -242,7 +242,6 @@ ignore = [ 'team.status', 'text', 'update.version', - 'validateSignature.cert.bits', 'validateSignature.cert.version', 'validateSignature.status', 'watermark.type.1',