mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2025-08-02 13:48:15 +02:00
Merge branch 'main' into settings
This commit is contained in:
commit
a0445cebfe
12
.github/workflows/build.yml
vendored
12
.github/workflows/build.yml
vendored
@ -7,6 +7,18 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
branches: ["main"]
|
branches: ["main"]
|
||||||
|
|
||||||
|
# cancel in-progress jobs if a new job is triggered
|
||||||
|
# This is useful to avoid running multiple builds for the same branch if a new commit is pushed
|
||||||
|
# or a pull request is updated.
|
||||||
|
# It helps to save resources and time by ensuring that only the latest commit is built and tested
|
||||||
|
# This is particularly useful for long-running jobs that may take a while to complete.
|
||||||
|
# The `group` is set to a combination of the workflow name, event name, and branch name.
|
||||||
|
# This ensures that jobs are grouped by the workflow and branch, allowing for cancellation of
|
||||||
|
# in-progress jobs when a new commit is pushed to the same branch or a new pull request is opened.
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref_name || github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
|
||||||
|
12
.github/workflows/check_properties.yml
vendored
12
.github/workflows/check_properties.yml
vendored
@ -6,6 +6,18 @@ on:
|
|||||||
paths:
|
paths:
|
||||||
- "app/core/src/main/resources/messages_*.properties"
|
- "app/core/src/main/resources/messages_*.properties"
|
||||||
|
|
||||||
|
# cancel in-progress jobs if a new job is triggered
|
||||||
|
# This is useful to avoid running multiple builds for the same branch if a new commit is pushed
|
||||||
|
# or a pull request is updated.
|
||||||
|
# It helps to save resources and time by ensuring that only the latest commit is built and tested
|
||||||
|
# This is particularly useful for long-running jobs that may take a while to complete.
|
||||||
|
# The `group` is set to a combination of the workflow name, event name, and branch name.
|
||||||
|
# This ensures that jobs are grouped by the workflow and branch, allowing for cancellation of
|
||||||
|
# in-progress jobs when a new commit is pushed to the same branch or a new pull request is opened.
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref_name || github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read # Allow read access to repository content
|
contents: read # Allow read access to repository content
|
||||||
|
|
||||||
|
12
.github/workflows/licenses-update.yml
vendored
12
.github/workflows/licenses-update.yml
vendored
@ -7,6 +7,18 @@ on:
|
|||||||
paths:
|
paths:
|
||||||
- "build.gradle"
|
- "build.gradle"
|
||||||
|
|
||||||
|
# cancel in-progress jobs if a new job is triggered
|
||||||
|
# This is useful to avoid running multiple builds for the same branch if a new commit is pushed
|
||||||
|
# or a pull request is updated.
|
||||||
|
# It helps to save resources and time by ensuring that only the latest commit is built and tested
|
||||||
|
# This is particularly useful for long-running jobs that may take a while to complete.
|
||||||
|
# The `group` is set to a combination of the workflow name, event name, and branch name.
|
||||||
|
# This ensures that jobs are grouped by the workflow and branch, allowing for cancellation of
|
||||||
|
# in-progress jobs when a new commit is pushed to the same branch or a new pull request is opened.
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref_name || github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
|
||||||
|
12
.github/workflows/push-docker.yml
vendored
12
.github/workflows/push-docker.yml
vendored
@ -7,6 +7,18 @@ on:
|
|||||||
- master
|
- master
|
||||||
- main
|
- main
|
||||||
|
|
||||||
|
# cancel in-progress jobs if a new job is triggered
|
||||||
|
# This is useful to avoid running multiple builds for the same branch if a new commit is pushed
|
||||||
|
# or a pull request is updated.
|
||||||
|
# It helps to save resources and time by ensuring that only the latest commit is built and tested
|
||||||
|
# This is particularly useful for long-running jobs that may take a while to complete.
|
||||||
|
# The `group` is set to a combination of the workflow name, event name, and branch name.
|
||||||
|
# This ensures that jobs are grouped by the workflow and branch, allowing for cancellation of
|
||||||
|
# in-progress jobs when a new commit is pushed to the same branch or a new pull request is opened.
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref_name || github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
|
||||||
|
12
.github/workflows/sonarqube.yml
vendored
12
.github/workflows/sonarqube.yml
vendored
@ -9,6 +9,18 @@ on:
|
|||||||
- main
|
- main
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
|
# cancel in-progress jobs if a new job is triggered
|
||||||
|
# This is useful to avoid running multiple builds for the same branch if a new commit is pushed
|
||||||
|
# or a pull request is updated.
|
||||||
|
# It helps to save resources and time by ensuring that only the latest commit is built and tested
|
||||||
|
# This is particularly useful for long-running jobs that may take a while to complete.
|
||||||
|
# The `group` is set to a combination of the workflow name, event name, and branch name.
|
||||||
|
# This ensures that jobs are grouped by the workflow and branch, allowing for cancellation of
|
||||||
|
# in-progress jobs when a new commit is pushed to the same branch or a new pull request is opened.
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref_name || github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
pull-requests: read
|
pull-requests: read
|
||||||
actions: read
|
actions: read
|
||||||
|
12
.github/workflows/swagger.yml
vendored
12
.github/workflows/swagger.yml
vendored
@ -6,6 +6,18 @@ on:
|
|||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
|
# cancel in-progress jobs if a new job is triggered
|
||||||
|
# This is useful to avoid running multiple builds for the same branch if a new commit is pushed
|
||||||
|
# or a pull request is updated.
|
||||||
|
# It helps to save resources and time by ensuring that only the latest commit is built and tested
|
||||||
|
# This is particularly useful for long-running jobs that may take a while to complete.
|
||||||
|
# The `group` is set to a combination of the workflow name, event name, and branch name.
|
||||||
|
# This ensures that jobs are grouped by the workflow and branch, allowing for cancellation of
|
||||||
|
# in-progress jobs when a new commit is pushed to the same branch or a new pull request is opened.
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref_name || github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
|
||||||
|
12
.github/workflows/sync_files.yml
vendored
12
.github/workflows/sync_files.yml
vendored
@ -12,6 +12,18 @@ on:
|
|||||||
- "app/core/src/main/resources/static/3rdPartyLicenses.json"
|
- "app/core/src/main/resources/static/3rdPartyLicenses.json"
|
||||||
- "scripts/ignore_translation.toml"
|
- "scripts/ignore_translation.toml"
|
||||||
|
|
||||||
|
# cancel in-progress jobs if a new job is triggered
|
||||||
|
# This is useful to avoid running multiple builds for the same branch if a new commit is pushed
|
||||||
|
# or a pull request is updated.
|
||||||
|
# It helps to save resources and time by ensuring that only the latest commit is built and tested
|
||||||
|
# This is particularly useful for long-running jobs that may take a while to complete.
|
||||||
|
# The `group` is set to a combination of the workflow name, event name, and branch name.
|
||||||
|
# This ensures that jobs are grouped by the workflow and branch, allowing for cancellation of
|
||||||
|
# in-progress jobs when a new commit is pushed to the same branch or a new pull request is opened.
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref_name || github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
|
||||||
|
12
.github/workflows/testdriver.yml
vendored
12
.github/workflows/testdriver.yml
vendored
@ -4,6 +4,18 @@ on:
|
|||||||
push:
|
push:
|
||||||
branches: ["master", "UITest", "testdriver"]
|
branches: ["master", "UITest", "testdriver"]
|
||||||
|
|
||||||
|
# cancel in-progress jobs if a new job is triggered
|
||||||
|
# This is useful to avoid running multiple builds for the same branch if a new commit is pushed
|
||||||
|
# or a pull request is updated.
|
||||||
|
# It helps to save resources and time by ensuring that only the latest commit is built and tested
|
||||||
|
# This is particularly useful for long-running jobs that may take a while to complete.
|
||||||
|
# The `group` is set to a combination of the workflow name, event name, and branch name.
|
||||||
|
# This ensures that jobs are grouped by the workflow and branch, allowing for cancellation of
|
||||||
|
# in-progress jobs when a new commit is pushed to the same branch or a new pull request is opened.
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref_name || github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
|
||||||
|
@ -25,12 +25,12 @@ class CustomHtmlSanitizerTest {
|
|||||||
SsrfProtectionService mockSsrfProtectionService = mock(SsrfProtectionService.class);
|
SsrfProtectionService mockSsrfProtectionService = mock(SsrfProtectionService.class);
|
||||||
stirling.software.common.model.ApplicationProperties mockApplicationProperties = mock(stirling.software.common.model.ApplicationProperties.class);
|
stirling.software.common.model.ApplicationProperties mockApplicationProperties = mock(stirling.software.common.model.ApplicationProperties.class);
|
||||||
stirling.software.common.model.ApplicationProperties.System mockSystem = mock(stirling.software.common.model.ApplicationProperties.System.class);
|
stirling.software.common.model.ApplicationProperties.System mockSystem = mock(stirling.software.common.model.ApplicationProperties.System.class);
|
||||||
|
|
||||||
// Allow all URLs by default for basic tests
|
// Allow all URLs by default for basic tests
|
||||||
when(mockSsrfProtectionService.isUrlAllowed(org.mockito.ArgumentMatchers.anyString())).thenReturn(true);
|
when(mockSsrfProtectionService.isUrlAllowed(org.mockito.ArgumentMatchers.anyString())).thenReturn(true);
|
||||||
when(mockApplicationProperties.getSystem()).thenReturn(mockSystem);
|
when(mockApplicationProperties.getSystem()).thenReturn(mockSystem);
|
||||||
when(mockSystem.getDisableSanitize()).thenReturn(false); // Enable sanitization for tests
|
when(mockSystem.getDisableSanitize()).thenReturn(false); // Enable sanitization for tests
|
||||||
|
|
||||||
customHtmlSanitizer = new CustomHtmlSanitizer(mockSsrfProtectionService, mockApplicationProperties);
|
customHtmlSanitizer = new CustomHtmlSanitizer(mockSsrfProtectionService, mockApplicationProperties);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,11 +47,11 @@ class EmlToPdfTest {
|
|||||||
SsrfProtectionService mockSsrfProtectionService = mock(SsrfProtectionService.class);
|
SsrfProtectionService mockSsrfProtectionService = mock(SsrfProtectionService.class);
|
||||||
stirling.software.common.model.ApplicationProperties mockApplicationProperties = mock(stirling.software.common.model.ApplicationProperties.class);
|
stirling.software.common.model.ApplicationProperties mockApplicationProperties = mock(stirling.software.common.model.ApplicationProperties.class);
|
||||||
stirling.software.common.model.ApplicationProperties.System mockSystem = mock(stirling.software.common.model.ApplicationProperties.System.class);
|
stirling.software.common.model.ApplicationProperties.System mockSystem = mock(stirling.software.common.model.ApplicationProperties.System.class);
|
||||||
|
|
||||||
when(mockSsrfProtectionService.isUrlAllowed(org.mockito.ArgumentMatchers.anyString())).thenReturn(true);
|
when(mockSsrfProtectionService.isUrlAllowed(org.mockito.ArgumentMatchers.anyString())).thenReturn(true);
|
||||||
when(mockApplicationProperties.getSystem()).thenReturn(mockSystem);
|
when(mockApplicationProperties.getSystem()).thenReturn(mockSystem);
|
||||||
when(mockSystem.getDisableSanitize()).thenReturn(false);
|
when(mockSystem.getDisableSanitize()).thenReturn(false);
|
||||||
|
|
||||||
customHtmlSanitizer = new CustomHtmlSanitizer(mockSsrfProtectionService, mockApplicationProperties);
|
customHtmlSanitizer = new CustomHtmlSanitizer(mockSsrfProtectionService, mockApplicationProperties);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -588,7 +588,7 @@ class EmlToPdfTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Disabled("Complex static mocking - temporarily disabled while refactoring")
|
@Disabled("Complex static mocking - temporarily disabled while refactoring")
|
||||||
@DisplayName("Should convert EML to PDF with attachments when requested")
|
@DisplayName("Should convert EML to PDF with attachments when requested")
|
||||||
void convertEmlToPdfWithAttachments() throws Exception {
|
void convertEmlToPdfWithAttachments() throws Exception {
|
||||||
String boundary = "----=_Part_1234567890";
|
String boundary = "----=_Part_1234567890";
|
||||||
@ -671,7 +671,7 @@ class EmlToPdfTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Disabled("Complex static mocking - temporarily disabled while refactoring")
|
@Disabled("Complex static mocking - temporarily disabled while refactoring")
|
||||||
@DisplayName("Should handle errors during EML to PDF conversion")
|
@DisplayName("Should handle errors during EML to PDF conversion")
|
||||||
void handleErrorsDuringConversion() {
|
void handleErrorsDuringConversion() {
|
||||||
String emlContent =
|
String emlContent =
|
||||||
createSimpleTextEmail("from@test.com", "to@test.com", "Subject", "Body");
|
createSimpleTextEmail("from@test.com", "to@test.com", "Subject", "Body");
|
||||||
|
@ -26,11 +26,11 @@ public class FileToPdfTest {
|
|||||||
SsrfProtectionService mockSsrfProtectionService = mock(SsrfProtectionService.class);
|
SsrfProtectionService mockSsrfProtectionService = mock(SsrfProtectionService.class);
|
||||||
stirling.software.common.model.ApplicationProperties mockApplicationProperties = mock(stirling.software.common.model.ApplicationProperties.class);
|
stirling.software.common.model.ApplicationProperties mockApplicationProperties = mock(stirling.software.common.model.ApplicationProperties.class);
|
||||||
stirling.software.common.model.ApplicationProperties.System mockSystem = mock(stirling.software.common.model.ApplicationProperties.System.class);
|
stirling.software.common.model.ApplicationProperties.System mockSystem = mock(stirling.software.common.model.ApplicationProperties.System.class);
|
||||||
|
|
||||||
when(mockSsrfProtectionService.isUrlAllowed(org.mockito.ArgumentMatchers.anyString())).thenReturn(true);
|
when(mockSsrfProtectionService.isUrlAllowed(org.mockito.ArgumentMatchers.anyString())).thenReturn(true);
|
||||||
when(mockApplicationProperties.getSystem()).thenReturn(mockSystem);
|
when(mockApplicationProperties.getSystem()).thenReturn(mockSystem);
|
||||||
when(mockSystem.getDisableSanitize()).thenReturn(false);
|
when(mockSystem.getDisableSanitize()).thenReturn(false);
|
||||||
|
|
||||||
customHtmlSanitizer = new CustomHtmlSanitizer(mockSsrfProtectionService, mockApplicationProperties);
|
customHtmlSanitizer = new CustomHtmlSanitizer(mockSsrfProtectionService, mockApplicationProperties);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,135 +5,135 @@
|
|||||||
language.direction=ltr
|
language.direction=ltr
|
||||||
|
|
||||||
# Language names for reuse throughout the application
|
# Language names for reuse throughout the application
|
||||||
lang.afr=Afrikaans
|
lang.afr=南非荷蘭語
|
||||||
lang.amh=Amharic
|
lang.amh=阿姆哈拉語
|
||||||
lang.ara=Arabic
|
lang.ara=阿拉伯文
|
||||||
lang.asm=Assamese
|
lang.asm=阿薩姆語
|
||||||
lang.aze=Azerbaijani
|
lang.aze=亞塞拜然語
|
||||||
lang.aze_cyrl=Azerbaijani (Cyrillic)
|
lang.aze_cyrl=亞塞拜然語(西里爾字母)
|
||||||
lang.bel=Belarusian
|
lang.bel=白俄羅斯語
|
||||||
lang.ben=Bengali
|
lang.ben=孟加拉語
|
||||||
lang.bod=Tibetan
|
lang.bod=藏文
|
||||||
lang.bos=Bosnian
|
lang.bos=波士尼亞語
|
||||||
lang.bre=Breton
|
lang.bre=布列塔尼語
|
||||||
lang.bul=Bulgarian
|
lang.bul=保加利亞語
|
||||||
lang.cat=Catalan
|
lang.cat=加泰隆尼亞語
|
||||||
lang.ceb=Cebuano
|
lang.ceb=宿霧語
|
||||||
lang.ces=Czech
|
lang.ces=捷克語
|
||||||
lang.chi_sim=Chinese (Simplified)
|
lang.chi_sim=簡體中文
|
||||||
lang.chi_sim_vert=Chinese (Simplified, Vertical)
|
lang.chi_sim_vert=簡體中文(直書)
|
||||||
lang.chi_tra=Chinese (Traditional)
|
lang.chi_tra=繁體中文
|
||||||
lang.chi_tra_vert=Chinese (Traditional, Vertical)
|
lang.chi_tra_vert=繁體中文(直書)
|
||||||
lang.chr=Cherokee
|
lang.chr=切羅基語
|
||||||
lang.cos=Corsican
|
lang.cos=科西嘉語
|
||||||
lang.cym=Welsh
|
lang.cym=威爾斯語
|
||||||
lang.dan=Danish
|
lang.dan=丹麥文
|
||||||
lang.dan_frak=Danish (Fraktur)
|
lang.dan_frak=丹麥文(德文尖角體)
|
||||||
lang.deu=German
|
lang.deu=德文
|
||||||
lang.deu_frak=German (Fraktur)
|
lang.deu_frak=德文(德文尖角體)
|
||||||
lang.div=Divehi
|
lang.div=迪維希語
|
||||||
lang.dzo=Dzongkha
|
lang.dzo=宗卡文(不丹語)
|
||||||
lang.ell=Greek
|
lang.ell=希臘文
|
||||||
lang.eng=English
|
lang.eng=英文
|
||||||
lang.enm=English, Middle (1100-1500)
|
lang.enm=中古英文(約西元 1100-1500 年)
|
||||||
lang.epo=Esperanto
|
lang.epo=世界語
|
||||||
lang.equ=Math / equation detection module
|
lang.equ=數學/方程式偵測模組
|
||||||
lang.est=Estonian
|
lang.est=愛沙尼亞語
|
||||||
lang.eus=Basque
|
lang.eus=巴斯克語
|
||||||
lang.fao=Faroese
|
lang.fao=法羅語
|
||||||
lang.fas=Persian
|
lang.fas=波斯文
|
||||||
lang.fil=Filipino
|
lang.fil=菲律賓語
|
||||||
lang.fin=Finnish
|
lang.fin=芬蘭文
|
||||||
lang.fra=French
|
lang.fra=法文
|
||||||
lang.frk=Frankish
|
lang.frk=法蘭克語
|
||||||
lang.frm=French, Middle (ca.1400-1600)
|
lang.frm=中古法文(約西元 1400-1600 年)
|
||||||
lang.fry=Western Frisian
|
lang.fry=西弗里斯蘭語
|
||||||
lang.gla=Scottish Gaelic
|
lang.gla=蘇格蘭蓋爾語
|
||||||
lang.gle=Irish
|
lang.gle=愛爾蘭語
|
||||||
lang.glg=Galician
|
lang.glg=加利西亞語
|
||||||
lang.grc=Ancient Greek
|
lang.grc=古希臘文
|
||||||
lang.guj=Gujarati
|
lang.guj=古吉拉特語
|
||||||
lang.hat=Haitian, Haitian Creole
|
lang.hat=海地克里奧爾語
|
||||||
lang.heb=Hebrew
|
lang.heb=希伯來文
|
||||||
lang.hin=Hindi
|
lang.hin=印地語
|
||||||
lang.hrv=Croatian
|
lang.hrv=克羅埃西亞語
|
||||||
lang.hun=Hungarian
|
lang.hun=匈牙利文
|
||||||
lang.hye=Armenian
|
lang.hye=亞美尼亞文
|
||||||
lang.iku=Inuktitut
|
lang.iku=伊努克提圖特語
|
||||||
lang.ind=Indonesian
|
lang.ind=印尼文
|
||||||
lang.isl=Icelandic
|
lang.isl=冰島文
|
||||||
lang.ita=Italian
|
lang.ita=義大利文
|
||||||
lang.ita_old=Italian (Old)
|
lang.ita_old=古義大利文
|
||||||
lang.jav=Javanese
|
lang.jav=爪哇語
|
||||||
lang.jpn=Japanese
|
lang.jpn=日文
|
||||||
lang.jpn_vert=Japanese (Vertical)
|
lang.jpn_vert=日文(直書)
|
||||||
lang.kan=Kannada
|
lang.kan=卡納達語
|
||||||
lang.kat=Georgian
|
lang.kat=喬治亞語
|
||||||
lang.kat_old=Georgian (Old)
|
lang.kat_old=古喬治亞語
|
||||||
lang.kaz=Kazakh
|
lang.kaz=哈薩克語
|
||||||
lang.khm=Central Khmer
|
lang.khm=高棉語
|
||||||
lang.kir=Kirghiz, Kyrgyz
|
lang.kir=吉爾吉斯語
|
||||||
lang.kmr=Northern Kurdish
|
lang.kmr=北庫德語(庫爾曼吉語)
|
||||||
lang.kor=Korean
|
lang.kor=韓文
|
||||||
lang.kor_vert=Korean (Vertical)
|
lang.kor_vert=韓文(直書)
|
||||||
lang.lao=Lao
|
lang.lao=寮文
|
||||||
lang.lat=Latin
|
lang.lat=拉丁文
|
||||||
lang.lav=Latvian
|
lang.lav=拉脫維亞語
|
||||||
lang.lit=Lithuanian
|
lang.lit=立陶宛語
|
||||||
lang.ltz=Luxembourgish
|
lang.ltz=盧森堡語
|
||||||
lang.mal=Malayalam
|
lang.mal=馬拉雅拉姆語
|
||||||
lang.mar=Marathi
|
lang.mar=馬拉地語
|
||||||
lang.mkd=Macedonian
|
lang.mkd=馬其頓語
|
||||||
lang.mlt=Maltese
|
lang.mlt=馬爾他語
|
||||||
lang.mon=Mongolian
|
lang.mon=蒙古文
|
||||||
lang.mri=Maori
|
lang.mri=毛利語
|
||||||
lang.msa=Malay
|
lang.msa=馬來文
|
||||||
lang.mya=Burmese
|
lang.mya=緬甸文
|
||||||
lang.nep=Nepali
|
lang.nep=尼泊爾語
|
||||||
lang.nld=Dutch; Flemish
|
lang.nld=荷蘭文;佛萊明語
|
||||||
lang.nor=Norwegian
|
lang.nor=挪威文
|
||||||
lang.oci=Occitan (post 1500)
|
lang.oci=奧克西坦語(西元 1500 年後)
|
||||||
lang.ori=Oriya
|
lang.ori=奧里亞語
|
||||||
lang.osd=Orientation and script detection module
|
lang.osd=文字方向與書寫系統偵測模組
|
||||||
lang.pan=Panjabi, Punjabi
|
lang.pan=旁遮普語
|
||||||
lang.pol=Polish
|
lang.pol=波蘭文
|
||||||
lang.por=Portuguese
|
lang.por=葡萄牙文
|
||||||
lang.pus=Pushto, Pashto
|
lang.pus=普什圖語
|
||||||
lang.que=Quechua
|
lang.que=克丘亞語
|
||||||
lang.ron=Romanian, Moldavian, Moldovan
|
lang.ron=羅馬尼亞語;摩爾多瓦語
|
||||||
lang.rus=Russian
|
lang.rus=俄文
|
||||||
lang.san=Sanskrit
|
lang.san=梵文
|
||||||
lang.sin=Sinhala, Sinhalese
|
lang.sin=僧伽羅語
|
||||||
lang.slk=Slovak
|
lang.slk=斯洛伐克語
|
||||||
lang.slk_frak=Slovak (Fraktur)
|
lang.slk_frak=斯洛伐克語(德文尖角體)
|
||||||
lang.slv=Slovenian
|
lang.slv=斯洛維尼亞語
|
||||||
lang.snd=Sindhi
|
lang.snd=信德語
|
||||||
lang.spa=Spanish
|
lang.spa=西班牙文
|
||||||
lang.spa_old=Spanish (Old)
|
lang.spa_old=古西班牙文
|
||||||
lang.sqi=Albanian
|
lang.sqi=阿爾巴尼亞語
|
||||||
lang.srp=Serbian
|
lang.srp=塞爾維亞語
|
||||||
lang.srp_latn=Serbian (Latin)
|
lang.srp_latn=塞爾維亞語(拉丁字母)
|
||||||
lang.sun=Sundanese
|
lang.sun=巽他語
|
||||||
lang.swa=Swahili
|
lang.swa=斯瓦希里語
|
||||||
lang.swe=Swedish
|
lang.swe=瑞典文
|
||||||
lang.syr=Syriac
|
lang.syr=敘利亞語
|
||||||
lang.tam=Tamil
|
lang.tam=坦米爾文
|
||||||
lang.tat=Tatar
|
lang.tat=韃靼語
|
||||||
lang.tel=Telugu
|
lang.tel=泰盧固語
|
||||||
lang.tgk=Tajik
|
lang.tgk=塔吉克語
|
||||||
lang.tgl=Tagalog
|
lang.tgl=他加祿語
|
||||||
lang.tha=Thai
|
lang.tha=泰文
|
||||||
lang.tir=Tigrinya
|
lang.tir=提格利尼亞語
|
||||||
lang.ton=Tonga (Tonga Islands)
|
lang.ton=東加語(東加群島)
|
||||||
lang.tur=Turkish
|
lang.tur=土耳其文
|
||||||
lang.uig=Uighur, Uyghur
|
lang.uig=維吾爾語
|
||||||
lang.ukr=Ukrainian
|
lang.ukr=烏克蘭文
|
||||||
lang.urd=Urdu
|
lang.urd=烏爾都語
|
||||||
lang.uzb=Uzbek
|
lang.uzb=烏茲別克語
|
||||||
lang.uzb_cyrl=Uzbek (Cyrillic)
|
lang.uzb_cyrl=烏茲別克語(西里爾字母)
|
||||||
lang.vie=Vietnamese
|
lang.vie=越南文
|
||||||
lang.yid=Yiddish
|
lang.yid=意第緒語
|
||||||
lang.yor=Yoruba
|
lang.yor=約魯巴語
|
||||||
|
|
||||||
addPageNumbers.fontSize=字型大小
|
addPageNumbers.fontSize=字型大小
|
||||||
addPageNumbers.fontName=字型名稱
|
addPageNumbers.fontName=字型名稱
|
||||||
@ -170,67 +170,67 @@ sizes.medium=中
|
|||||||
sizes.large=大
|
sizes.large=大
|
||||||
sizes.x-large=特大
|
sizes.x-large=特大
|
||||||
error.pdfPassword=PDF 檔案已加密,但未提供密碼或密碼不正確
|
error.pdfPassword=PDF 檔案已加密,但未提供密碼或密碼不正確
|
||||||
error.pdfCorrupted=PDF file appears to be corrupted or damaged. Please try using the 'Repair PDF' feature first to fix the file before proceeding with this operation.
|
error.pdfCorrupted=PDF 檔案似乎已毀損或遭到破壞。請先嘗試使用「修復 PDF」功能來修復檔案,然後再繼續此操作。
|
||||||
error.pdfCorruptedMultiple=One or more PDF files appear to be corrupted or damaged. Please try using the 'Repair PDF' feature on each file first before attempting to merge them.
|
error.pdfCorruptedMultiple=一個或多個 PDF 檔案似乎已毀損或遭到破壞。請先嘗試對每個檔案使用「修復 PDF」功能,然後再嘗試合併它們。
|
||||||
error.pdfCorruptedDuring=Error {0}: PDF file appears to be corrupted or damaged. Please try using the 'Repair PDF' feature first to fix the file before proceeding with this operation.
|
error.pdfCorruptedDuring=錯誤 {0}:PDF 檔案似乎已毀損或遭到破壞。請先嘗試使用「修復 PDF」功能來修復檔案,然後再繼續此操作。
|
||||||
|
|
||||||
# Frontend corruption error messages
|
# Frontend corruption error messages
|
||||||
error.pdfInvalid=The PDF file "{0}" appears to be corrupted or has an invalid structure. Please try using the 'Repair PDF' feature to fix the file before proceeding.
|
error.pdfInvalid=PDF 檔案「{0}」似乎已損毀或結構無效。請先嘗試使用「修復 PDF」功能來修復檔案,然後再繼續。
|
||||||
error.tryRepair=Try using the Repair PDF feature to fix corrupted files.
|
error.tryRepair=請嘗試使用「修復 PDF」功能來修復損毀的檔案。
|
||||||
|
|
||||||
# Additional error messages
|
# Additional error messages
|
||||||
error.pdfEncryption=The PDF appears to have corrupted encryption data. This can happen when the PDF was created with incompatible encryption methods. Please try using the 'Repair PDF' feature first, or contact the document creator for a new copy.
|
error.pdfEncryption=此 PDF 的加密資料似乎已損毀。這可能是因為 PDF 是使用不相容的加密方法建立的。請先嘗試使用「修復 PDF」功能,或聯絡文件建立者以取得新副本。
|
||||||
error.fileProcessing=An error occurred while processing the file during {0} operation: {1}
|
error.fileProcessing=在 {0} 操作期間處理檔案時發生錯誤:{1}
|
||||||
|
|
||||||
# Generic error message templates
|
# Generic error message templates
|
||||||
error.toolNotInstalled={0} is not installed
|
error.toolNotInstalled=未安裝 {0}
|
||||||
error.toolRequired={0} is required for {1}
|
error.toolRequired={1} 需要 {0}
|
||||||
error.conversionFailed={0} conversion failed
|
error.conversionFailed={0} 轉換失敗
|
||||||
error.commandFailed={0} command failed
|
error.commandFailed={0} 指令失敗
|
||||||
error.algorithmNotAvailable={0} algorithm not available
|
error.algorithmNotAvailable=無法使用 {0} 演算法
|
||||||
error.optionsNotSpecified={0} options are not specified
|
error.optionsNotSpecified=未指定 {0} 選項
|
||||||
error.fileFormatRequired=File must be in {0} format
|
error.fileFormatRequired=檔案必須為 {0} 格式
|
||||||
error.invalidFormat=Invalid {0} format: {1}
|
error.invalidFormat=無效的 {0} 格式:{1}
|
||||||
error.endpointDisabled=This endpoint has been disabled by the admin
|
error.endpointDisabled=此端點已被管理員停用
|
||||||
error.urlNotReachable=URL is not reachable, please provide a valid URL
|
error.urlNotReachable=無法連線至 URL,請提供有效的 URL
|
||||||
|
|
||||||
# DPI and image rendering messages - used by frontend for dynamic translation
|
# DPI and image rendering messages - used by frontend for dynamic translation
|
||||||
# Backend sends: [TRANSLATE:messageKey:arg1,arg2] English message
|
# Backend sends: [TRANSLATE:messageKey:arg1,arg2] English message
|
||||||
# Frontend parses this and replaces with localized versions using these keys
|
# Frontend parses this and replaces with localized versions using these keys
|
||||||
error.dpiExceedsLimit=DPI value {0} exceeds maximum safe limit of {1}. High DPI values can cause memory issues and crashes. Please use a lower DPI value.
|
error.dpiExceedsLimit=DPI 值 {0} 超出最大安全限制 {1}。高 DPI 值可能導致記憶體問題和當機。請使用較低的 DPI 值。
|
||||||
error.pageTooBigForDpi=PDF page {0} is too large to render at {1} DPI. Please try a lower DPI value (recommended: 150 or less).
|
error.pageTooBigForDpi=PDF 頁面 {0} 太大,無法以 {1} DPI 進行渲染。請嘗試較低的 DPI 值(建議:150 或更低)。
|
||||||
error.pageTooBigExceedsArray=PDF page {0} is too large to render at {1} DPI. The resulting image would exceed Java's maximum array size. Please try a lower DPI value (recommended: 150 or less).
|
error.pageTooBigExceedsArray=PDF 頁面 {0} 太大,無法以 {1} DPI 進行渲染。產生的影像將超出 Java 的最大陣列大小。請嘗試較低的 DPI 值(建議:150 或更低)。
|
||||||
error.pageTooBigFor300Dpi=PDF page {0} is too large to render at 300 DPI. The resulting image would exceed Java's maximum array size. Please use a lower DPI value for PDF-to-image conversion.
|
error.pageTooBigFor300Dpi=PDF 頁面 {0} 太大,無法以 300 DPI 進行渲染。產生的影像將超出 Java 的最大陣列大小。請在 PDF 轉影像時使用較低的 DPI 值。
|
||||||
|
|
||||||
# URL and website conversion messages
|
# URL and website conversion messages
|
||||||
|
|
||||||
# System requirements messages
|
# System requirements messages
|
||||||
|
|
||||||
# Authentication and security messages
|
# Authentication and security messages
|
||||||
error.apiKeyInvalid=API key is not valid.
|
error.apiKeyInvalid=API 金鑰無效。
|
||||||
error.userNotFound=User not found.
|
error.userNotFound=找不到使用者。
|
||||||
error.passwordRequired=Password must not be null.
|
error.passwordRequired=密碼不得為空。
|
||||||
error.accountLocked=Your account has been locked due to too many failed login attempts.
|
error.accountLocked=由於登入失敗次數過多,您的帳號已被鎖定。
|
||||||
error.invalidEmail=Invalid email addresses provided.
|
error.invalidEmail=提供了無效的電子郵件地址。
|
||||||
error.emailAttachmentRequired=An attachment is required to send the email.
|
error.emailAttachmentRequired=需要附件才能傳送電子郵件。
|
||||||
error.signatureNotFound=Signature file not found.
|
error.signatureNotFound=找不到簽章檔案。
|
||||||
|
|
||||||
# File processing messages
|
# File processing messages
|
||||||
error.fileNotFound=File not found with ID: {0}
|
error.fileNotFound=找不到 ID 為 {0} 的檔案
|
||||||
|
|
||||||
# Database and configuration messages
|
# Database and configuration messages
|
||||||
error.noBackupScripts=No backup scripts were found.
|
error.noBackupScripts=找不到任何備份指令稿。
|
||||||
error.unsupportedProvider={0} is not currently supported.
|
error.unsupportedProvider=目前不支援 {0}。
|
||||||
error.pathTraversalDetected=Path traversal detected for security reasons.
|
error.pathTraversalDetected=因安全因素偵測到路徑遍歷。
|
||||||
|
|
||||||
# Validation messages
|
# Validation messages
|
||||||
error.invalidArgument=Invalid argument: {0}
|
error.invalidArgument=無效的參數:{0}
|
||||||
error.argumentRequired={0} must not be null
|
error.argumentRequired={0} 不得為空
|
||||||
error.operationFailed=Operation failed: {0}
|
error.operationFailed=操作失敗:{0}
|
||||||
error.angleNotMultipleOf90=Angle must be a multiple of 90
|
error.angleNotMultipleOf90=角度必須是 90 的倍數
|
||||||
error.pdfBookmarksNotFound=No PDF bookmarks/outline found in document
|
error.pdfBookmarksNotFound=在文件中找不到 PDF 書籤/大綱
|
||||||
error.fontLoadingFailed=Error processing font file
|
error.fontLoadingFailed=處理字型檔案時發生錯誤
|
||||||
error.fontDirectoryReadFailed=Failed to read font directory
|
error.fontDirectoryReadFailed=讀取字型目錄失敗
|
||||||
delete=刪除
|
delete=刪除
|
||||||
username=使用者名稱
|
username=使用者名稱
|
||||||
password=密碼
|
password=密碼
|
||||||
@ -281,12 +281,12 @@ addToDoc=新增至文件
|
|||||||
reset=重設
|
reset=重設
|
||||||
apply=套用
|
apply=套用
|
||||||
noFileSelected=未選擇檔案,請上傳一個。
|
noFileSelected=未選擇檔案,請上傳一個。
|
||||||
view=View
|
view=檢視
|
||||||
cancel=Cancel
|
cancel=取消
|
||||||
|
|
||||||
back.toSettings=Back to Settings
|
back.toSettings=返回設定
|
||||||
back.toHome=Back to Home
|
back.toHome=返回首頁
|
||||||
back.toAdmin=Back to Admin
|
back.toAdmin=返回管理員頁面
|
||||||
|
|
||||||
legal.privacy=隱私權政策
|
legal.privacy=隱私權政策
|
||||||
legal.terms=使用條款
|
legal.terms=使用條款
|
||||||
@ -327,7 +327,7 @@ enterpriseEdition.button=升級至專業版
|
|||||||
enterpriseEdition.warning=此功能僅提供給專業版使用者使用。
|
enterpriseEdition.warning=此功能僅提供給專業版使用者使用。
|
||||||
enterpriseEdition.yamlAdvert=Stirling PDF 專業版支援 YAML 設定檔和其他單一登入 (SSO) 功能。
|
enterpriseEdition.yamlAdvert=Stirling PDF 專業版支援 YAML 設定檔和其他單一登入 (SSO) 功能。
|
||||||
enterpriseEdition.ssoAdvert=需要更多使用者管理功能嗎?請參考 Stirling PDF 專業版
|
enterpriseEdition.ssoAdvert=需要更多使用者管理功能嗎?請參考 Stirling PDF 專業版
|
||||||
enterpriseEdition.proTeamFeatureDisabled=Team management features require a Pro licence or higher
|
enterpriseEdition.proTeamFeatureDisabled=團隊管理功能需要專業版或更進階的授權
|
||||||
|
|
||||||
|
|
||||||
#################
|
#################
|
||||||
@ -408,8 +408,8 @@ account.property=屬性
|
|||||||
account.webBrowserSettings=網頁瀏覽器設定
|
account.webBrowserSettings=網頁瀏覽器設定
|
||||||
account.syncToBrowser=同步帳號 → 瀏覽器
|
account.syncToBrowser=同步帳號 → 瀏覽器
|
||||||
account.syncToAccount=同步帳號 ← 瀏覽器
|
account.syncToAccount=同步帳號 ← 瀏覽器
|
||||||
account.adminTitle=Administrator Tools
|
account.adminTitle=管理員工具
|
||||||
account.adminNotif=You have admin privileges. Access system settings and user management.
|
account.adminNotif=您具有管理員權限,可存取系統設定和使用者管理。
|
||||||
|
|
||||||
|
|
||||||
adminUserSettings.title=使用者控制設定
|
adminUserSettings.title=使用者控制設定
|
||||||
@ -440,48 +440,48 @@ adminUserSettings.disabledUsers=已停用的使用者:
|
|||||||
adminUserSettings.totalUsers=使用者總數:
|
adminUserSettings.totalUsers=使用者總數:
|
||||||
adminUserSettings.lastRequest=最後請求時間
|
adminUserSettings.lastRequest=最後請求時間
|
||||||
adminUserSettings.usage=檢視使用情況
|
adminUserSettings.usage=檢視使用情況
|
||||||
adminUserSettings.teams=View/Edit Teams
|
adminUserSettings.teams=檢視/編輯團隊
|
||||||
adminUserSettings.team=Team
|
adminUserSettings.team=團隊
|
||||||
adminUserSettings.manageTeams=Manage Teams
|
adminUserSettings.manageTeams=管理團隊
|
||||||
adminUserSettings.createTeam=Create Team
|
adminUserSettings.createTeam=建立團隊
|
||||||
adminUserSettings.viewTeam=View Team
|
adminUserSettings.viewTeam=檢視團隊
|
||||||
adminUserSettings.deleteTeam=Delete Team
|
adminUserSettings.deleteTeam=刪除團隊
|
||||||
adminUserSettings.teamName=Team Name
|
adminUserSettings.teamName=團隊名稱
|
||||||
adminUserSettings.teamExists=Team already exists
|
adminUserSettings.teamExists=團隊已存在
|
||||||
adminUserSettings.teamCreated=Team created successfully
|
adminUserSettings.teamCreated=團隊建立成功
|
||||||
adminUserSettings.teamChanged=User's team was updated
|
adminUserSettings.teamChanged=使用者的團隊已更新
|
||||||
adminUserSettings.teamHidden=Hidden
|
adminUserSettings.teamHidden=隱藏
|
||||||
adminUserSettings.totalMembers=Total Members
|
adminUserSettings.totalMembers=成員總數
|
||||||
adminUserSettings.confirmDeleteTeam=Are you sure you want to delete this team?
|
adminUserSettings.confirmDeleteTeam=您確定要刪除此團隊嗎?
|
||||||
|
|
||||||
teamCreated=Team created successfully
|
teamCreated=團隊建立成功
|
||||||
teamExists=A team with that name already exists
|
teamExists=該名稱的團隊已存在
|
||||||
teamNameExists=Another team with that name already exists
|
teamNameExists=已有同名的團隊存在
|
||||||
teamNotFound=Team not found
|
teamNotFound=找不到團隊
|
||||||
teamDeleted=Team deleted
|
teamDeleted=團隊已刪除
|
||||||
teamHasUsers=Cannot delete a team with users assigned
|
teamHasUsers=無法刪除已有指派使用者的團隊
|
||||||
teamRenamed=Team renamed successfully
|
teamRenamed=團隊重新命名成功
|
||||||
|
|
||||||
# Team user management
|
# Team user management
|
||||||
team.addUser=Add User to Team
|
team.addUser=新增使用者至團隊
|
||||||
team.selectUser=Select User
|
team.selectUser=選擇使用者
|
||||||
team.warning.moveUser=Warning: This will move the user from "{0}" team to "{1}" team. Are you sure?
|
team.warning.moveUser=警告:此操作會將使用者從「{0}」團隊移至「{1}」團隊。您確定嗎?
|
||||||
team.confirm.moveUser=Are you sure you want to move this user from "{0}" team to "{1}" team?
|
team.confirm.moveUser=您確定要將此使用者從「{0}」團隊移至「{1}」團隊嗎?
|
||||||
team.userAdded=User successfully added to team
|
team.userAdded=已成功將使用者新增至團隊
|
||||||
team.back=Back to Teams
|
team.back=返回團隊
|
||||||
team.internal=Internal Team
|
team.internal=內部團隊
|
||||||
team.internalTeamNotAccessible=The Internal team is a system team and cannot be accessed
|
team.internalTeamNotAccessible=內部團隊為系統團隊,無法存取
|
||||||
team.cannotMoveInternalUsers=Users in the Internal team cannot be moved to other teams
|
team.cannotMoveInternalUsers=無法將內部團隊中的使用者移動到其他團隊
|
||||||
team.hidden=Hidden
|
team.hidden=隱藏
|
||||||
team.name=Team Name
|
team.name=團隊名稱
|
||||||
team.totalMembers=Total Members
|
team.totalMembers=成員總數
|
||||||
team.members=Members
|
team.members=成員
|
||||||
team.username=Username
|
team.username=使用者名稱
|
||||||
team.role=Role
|
team.role=角色
|
||||||
team.status=Status
|
team.status=狀態
|
||||||
team.enabled=Enabled
|
team.enabled=已啟用
|
||||||
team.disabled=Disabled
|
team.disabled=已停用
|
||||||
team.noMembers=This team has no members yet.
|
team.noMembers=此團隊尚無成員。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -585,9 +585,9 @@ home.addImage.title=新增圖片
|
|||||||
home.addImage.desc=在 PDF 的指定位置新增圖片
|
home.addImage.desc=在 PDF 的指定位置新增圖片
|
||||||
addImage.tags=img,jpg,圖片,照片
|
addImage.tags=img,jpg,圖片,照片
|
||||||
|
|
||||||
home.attachments.title=Add Attachments
|
home.attachments.title=新增附件
|
||||||
home.attachments.desc=Add or remove embedded files (attachments) to/from a PDF
|
home.attachments.desc=將檔案(附件)新增或移除至/從 PDF
|
||||||
attachments.tags=embed,attach,file,attachment,attachments
|
attachments.tags=嵌入,附件,檔案,附加,附件管理
|
||||||
|
|
||||||
home.watermark.title=新增浮水印
|
home.watermark.title=新增浮水印
|
||||||
home.watermark.desc=在您的 PDF 檔案中新增自訂浮水印。
|
home.watermark.desc=在您的 PDF 檔案中新增自訂浮水印。
|
||||||
@ -715,8 +715,8 @@ home.auto-rename.title=自動重新命名 PDF 檔案
|
|||||||
home.auto-rename.desc=根據其偵測到的標頭自動重新命名 PDF 檔案
|
home.auto-rename.desc=根據其偵測到的標頭自動重新命名 PDF 檔案
|
||||||
auto-rename.tags=自動偵測,基於標頭,組織,重新標籤
|
auto-rename.tags=自動偵測,基於標頭,組織,重新標籤
|
||||||
|
|
||||||
home.adjust-contrast.title=調整顏色/對比度
|
home.adjust-contrast.title=調整顏色/對比
|
||||||
home.adjust-contrast.desc=調整 PDF 的對比度、飽和度和亮度
|
home.adjust-contrast.desc=調整 PDF 的對比、飽和度和亮度
|
||||||
adjust-contrast.tags=色彩校正,調整,修改,增強
|
adjust-contrast.tags=色彩校正,調整,修改,增強
|
||||||
|
|
||||||
home.crop.title=裁剪 PDF
|
home.crop.title=裁剪 PDF
|
||||||
@ -834,10 +834,10 @@ home.replaceColorPdf.title=取代與反轉顏色
|
|||||||
home.replaceColorPdf.desc=取代 PDF 中文字和背景的顏色,並反轉整個 PDF 的顏色以減少檔案大小
|
home.replaceColorPdf.desc=取代 PDF 中文字和背景的顏色,並反轉整個 PDF 的顏色以減少檔案大小
|
||||||
replaceColorPdf.tags=取代顏色,頁面操作,後端,伺服器端
|
replaceColorPdf.tags=取代顏色,頁面操作,後端,伺服器端
|
||||||
replace-color.selectText.1=取代或反轉顏色選項
|
replace-color.selectText.1=取代或反轉顏色選項
|
||||||
replace-color.selectText.2=預設(預設高對比度顏色)
|
replace-color.selectText.2=預設(預設高對比顏色)
|
||||||
replace-color.selectText.3=自訂(自訂顏色)
|
replace-color.selectText.3=自訂(自訂顏色)
|
||||||
replace-color.selectText.4=全部反轉(反轉所有顏色)
|
replace-color.selectText.4=全部反轉(反轉所有顏色)
|
||||||
replace-color.selectText.5=高對比度顏色選項
|
replace-color.selectText.5=高對比顏色選項
|
||||||
replace-color.selectText.6=黑底白字
|
replace-color.selectText.6=黑底白字
|
||||||
replace-color.selectText.7=白底黑字
|
replace-color.selectText.7=白底黑字
|
||||||
replace-color.selectText.8=黑底黃字
|
replace-color.selectText.8=黑底黃字
|
||||||
@ -875,7 +875,7 @@ login.userIsDisabled=使用者已停用,目前此使用者無法登入。請
|
|||||||
login.alreadyLoggedIn=您已經登入了
|
login.alreadyLoggedIn=您已經登入了
|
||||||
login.alreadyLoggedIn2=部裝置。請先從這些裝置登出後再試一次。
|
login.alreadyLoggedIn2=部裝置。請先從這些裝置登出後再試一次。
|
||||||
login.toManySessions=您有太多使用中的工作階段
|
login.toManySessions=您有太多使用中的工作階段
|
||||||
login.logoutMessage=You have been logged out.
|
login.logoutMessage=您已登出。
|
||||||
|
|
||||||
#auto-redact
|
#auto-redact
|
||||||
autoRedact.title=自動塗黑
|
autoRedact.title=自動塗黑
|
||||||
@ -1059,9 +1059,9 @@ auto-rename.submit=自動重新命名
|
|||||||
|
|
||||||
|
|
||||||
#adjustContrast
|
#adjustContrast
|
||||||
adjustContrast.title=調整對比度
|
adjustContrast.title=調整對比
|
||||||
adjustContrast.header=調整對比度
|
adjustContrast.header=調整對比
|
||||||
adjustContrast.contrast=對比度:
|
adjustContrast.contrast=對比:
|
||||||
adjustContrast.brightness=亮度:
|
adjustContrast.brightness=亮度:
|
||||||
adjustContrast.saturation=飽和度:
|
adjustContrast.saturation=飽和度:
|
||||||
adjustContrast.download=下載
|
adjustContrast.download=下載
|
||||||
@ -1270,11 +1270,11 @@ addImage.upload=新增圖片
|
|||||||
addImage.submit=新增圖片
|
addImage.submit=新增圖片
|
||||||
|
|
||||||
#attachments
|
#attachments
|
||||||
attachments.title=Add Attachments
|
attachments.title=新增附件
|
||||||
attachments.header=Add attachments
|
attachments.header=新增附件
|
||||||
attachments.description=Allows you to add attachments to the PDF
|
attachments.description=可將附件新增至 PDF
|
||||||
attachments.descriptionPlaceholder=Enter a description for the attachments...
|
attachments.descriptionPlaceholder=請輸入附件說明...
|
||||||
attachments.addButton=Add Attachments
|
attachments.addButton=新增附件
|
||||||
|
|
||||||
#merge
|
#merge
|
||||||
merge.title=合併
|
merge.title=合併
|
||||||
@ -1282,7 +1282,7 @@ merge.header=合併多個 PDF
|
|||||||
merge.sortByName=依名稱排序
|
merge.sortByName=依名稱排序
|
||||||
merge.sortByDate=依日期排序
|
merge.sortByDate=依日期排序
|
||||||
merge.removeCertSign=是否移除合併後檔案的憑證簽章?
|
merge.removeCertSign=是否移除合併後檔案的憑證簽章?
|
||||||
merge.generateToc=Generate table of contents in the merged file?
|
merge.generateToc=是否在合併後的檔案中產生目錄?
|
||||||
merge.submit=合併
|
merge.submit=合併
|
||||||
|
|
||||||
|
|
||||||
@ -1664,7 +1664,7 @@ fileChooser.dragAndDropPDF=拖放 PDF 檔案
|
|||||||
fileChooser.dragAndDropImage=拖放圖片檔案
|
fileChooser.dragAndDropImage=拖放圖片檔案
|
||||||
fileChooser.hoveredDragAndDrop=將檔案拖放至此
|
fileChooser.hoveredDragAndDrop=將檔案拖放至此
|
||||||
fileChooser.extractPDF=處理中...
|
fileChooser.extractPDF=處理中...
|
||||||
fileChooser.addAttachments=drag & drop attachments here
|
fileChooser.addAttachments=拖曳附件到此處
|
||||||
|
|
||||||
#release notes
|
#release notes
|
||||||
releases.footer=版本資訊
|
releases.footer=版本資訊
|
||||||
@ -1709,157 +1709,157 @@ validateSignature.cert.selfSigned=自我簽署
|
|||||||
validateSignature.cert.bits=位元
|
validateSignature.cert.bits=位元
|
||||||
|
|
||||||
# Audit Dashboard
|
# Audit Dashboard
|
||||||
audit.dashboard.title=Audit Dashboard
|
audit.dashboard.title=稽核儀表板
|
||||||
audit.dashboard.systemStatus=Audit System Status
|
audit.dashboard.systemStatus=稽核系統狀態
|
||||||
audit.dashboard.status=Status
|
audit.dashboard.status=狀態
|
||||||
audit.dashboard.enabled=Enabled
|
audit.dashboard.enabled=已啟用
|
||||||
audit.dashboard.disabled=Disabled
|
audit.dashboard.disabled=已停用
|
||||||
audit.dashboard.currentLevel=Current Level
|
audit.dashboard.currentLevel=目前層級
|
||||||
audit.dashboard.retentionPeriod=Retention Period
|
audit.dashboard.retentionPeriod=保留期間
|
||||||
audit.dashboard.days=days
|
audit.dashboard.days=天
|
||||||
audit.dashboard.totalEvents=Total Events
|
audit.dashboard.totalEvents=事件總數
|
||||||
|
|
||||||
# Audit Dashboard Tabs
|
# Audit Dashboard Tabs
|
||||||
audit.dashboard.tab.dashboard=Dashboard
|
audit.dashboard.tab.dashboard=儀表板
|
||||||
audit.dashboard.tab.events=Audit Events
|
audit.dashboard.tab.events=稽核事件
|
||||||
audit.dashboard.tab.export=Export
|
audit.dashboard.tab.export=匯出
|
||||||
# Dashboard Charts
|
# Dashboard Charts
|
||||||
audit.dashboard.eventsByType=Events by Type
|
audit.dashboard.eventsByType=依類型分類的事件
|
||||||
audit.dashboard.eventsByUser=Events by User
|
audit.dashboard.eventsByUser=依使用者分類的事件
|
||||||
audit.dashboard.eventsOverTime=Events Over Time
|
audit.dashboard.eventsOverTime=事件時間趨勢
|
||||||
audit.dashboard.period.7days=7 Days
|
audit.dashboard.period.7days=7 天
|
||||||
audit.dashboard.period.30days=30 Days
|
audit.dashboard.period.30days=30 天
|
||||||
audit.dashboard.period.90days=90 Days
|
audit.dashboard.period.90days=90 天
|
||||||
|
|
||||||
# Events Tab
|
# Events Tab
|
||||||
audit.dashboard.auditEvents=Audit Events
|
audit.dashboard.auditEvents=稽核事件
|
||||||
audit.dashboard.filter.eventType=Event Type
|
audit.dashboard.filter.eventType=事件類型
|
||||||
audit.dashboard.filter.allEventTypes=All event types
|
audit.dashboard.filter.allEventTypes=所有事件類型
|
||||||
audit.dashboard.filter.user=User
|
audit.dashboard.filter.user=使用者
|
||||||
audit.dashboard.filter.userPlaceholder=Filter by user
|
audit.dashboard.filter.userPlaceholder=依使用者篩選
|
||||||
audit.dashboard.filter.startDate=Start Date
|
audit.dashboard.filter.startDate=開始日期
|
||||||
audit.dashboard.filter.endDate=End Date
|
audit.dashboard.filter.endDate=結束日期
|
||||||
audit.dashboard.filter.apply=Apply Filters
|
audit.dashboard.filter.apply=套用篩選器
|
||||||
audit.dashboard.filter.reset=Reset Filters
|
audit.dashboard.filter.reset=重設篩選器
|
||||||
|
|
||||||
# Table Headers
|
# Table Headers
|
||||||
audit.dashboard.table.id=ID
|
audit.dashboard.table.id=ID
|
||||||
audit.dashboard.table.time=Time
|
audit.dashboard.table.time=時間
|
||||||
audit.dashboard.table.user=User
|
audit.dashboard.table.user=使用者
|
||||||
audit.dashboard.table.type=Type
|
audit.dashboard.table.type=類型
|
||||||
audit.dashboard.table.details=Details
|
audit.dashboard.table.details=詳細資訊
|
||||||
audit.dashboard.table.viewDetails=View Details
|
audit.dashboard.table.viewDetails=檢視詳細資訊
|
||||||
|
|
||||||
# Pagination
|
# Pagination
|
||||||
audit.dashboard.pagination.show=Show
|
audit.dashboard.pagination.show=顯示
|
||||||
audit.dashboard.pagination.entries=entries
|
audit.dashboard.pagination.entries=個項目
|
||||||
audit.dashboard.pagination.pageInfo1=Page
|
audit.dashboard.pagination.pageInfo1=第
|
||||||
audit.dashboard.pagination.pageInfo2=of
|
audit.dashboard.pagination.pageInfo2=頁,共
|
||||||
audit.dashboard.pagination.totalRecords=Total records:
|
audit.dashboard.pagination.totalRecords=總記錄數:
|
||||||
|
|
||||||
# Modal
|
# Modal
|
||||||
audit.dashboard.modal.eventDetails=Event Details
|
audit.dashboard.modal.eventDetails=事件詳細資訊
|
||||||
audit.dashboard.modal.id=ID
|
audit.dashboard.modal.id=ID
|
||||||
audit.dashboard.modal.user=User
|
audit.dashboard.modal.user=使用者
|
||||||
audit.dashboard.modal.type=Type
|
audit.dashboard.modal.type=類型
|
||||||
audit.dashboard.modal.time=Time
|
audit.dashboard.modal.time=時間
|
||||||
audit.dashboard.modal.data=Data
|
audit.dashboard.modal.data=資料
|
||||||
|
|
||||||
# Export Tab
|
# Export Tab
|
||||||
audit.dashboard.export.title=Export Audit Data
|
audit.dashboard.export.title=匯出稽核資料
|
||||||
audit.dashboard.export.format=Export Format
|
audit.dashboard.export.format=匯出格式
|
||||||
audit.dashboard.export.csv=CSV (Comma Separated Values)
|
audit.dashboard.export.csv=CSV (逗號分隔值)
|
||||||
audit.dashboard.export.json=JSON (JavaScript Object Notation)
|
audit.dashboard.export.json=JSON (JavaScript 物件表示法)
|
||||||
audit.dashboard.export.button=Export Data
|
audit.dashboard.export.button=匯出資料
|
||||||
audit.dashboard.export.infoTitle=Export Information
|
audit.dashboard.export.infoTitle=匯出資訊
|
||||||
audit.dashboard.export.infoDesc1=The export will include all audit events matching the selected filters. For large datasets, the export may take a few moments to generate.
|
audit.dashboard.export.infoDesc1=匯出的內容將包含所有符合所選篩選條件的稽核事件。若資料量龐大,匯出過程可能需要一些時間。
|
||||||
audit.dashboard.export.infoDesc2=Exported data will include:
|
audit.dashboard.export.infoDesc2=匯出的資料將包含:
|
||||||
audit.dashboard.export.infoItem1=Event ID
|
audit.dashboard.export.infoItem1=事件 ID
|
||||||
audit.dashboard.export.infoItem2=User
|
audit.dashboard.export.infoItem2=使用者
|
||||||
audit.dashboard.export.infoItem3=Event Type
|
audit.dashboard.export.infoItem3=事件類型
|
||||||
audit.dashboard.export.infoItem4=Timestamp
|
audit.dashboard.export.infoItem4=時間戳記
|
||||||
audit.dashboard.export.infoItem5=Event Data
|
audit.dashboard.export.infoItem5=事件資料
|
||||||
|
|
||||||
# JavaScript i18n keys
|
# JavaScript i18n keys
|
||||||
audit.dashboard.js.noEventsFound=No audit events found matching the current filters
|
audit.dashboard.js.noEventsFound=找不到符合目前篩選條件的稽核事件
|
||||||
audit.dashboard.js.errorLoading=Error loading data:
|
audit.dashboard.js.errorLoading=載入資料時發生錯誤:
|
||||||
audit.dashboard.js.errorRendering=Error rendering table:
|
audit.dashboard.js.errorRendering=呈現表格時發生錯誤:
|
||||||
audit.dashboard.js.loadingPage=Loading page
|
audit.dashboard.js.loadingPage=正在載入頁面
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# Cookie banner #
|
# Cookie banner #
|
||||||
####################
|
####################
|
||||||
cookieBanner.popUp.title=我們如何使用 Cookies
|
cookieBanner.popUp.title=我們如何使用 Cookie
|
||||||
cookieBanner.popUp.description.1=我們使用 Cookies 和其他技術來讓 Stirling PDF 變得更好——幫助我們改善工具並繼續創造您會喜愛的新功能
|
cookieBanner.popUp.description.1=我們使用 Cookie 和其他技術來讓 Stirling PDF 變得更好、協助我們改進並持續打造您會喜愛的新功能。
|
||||||
cookieBanner.popUp.description.2=如果您仍不想,點選「不,謝謝」只會開啟必要的 Cookies 好讓網站功能保持運作
|
cookieBanner.popUp.description.2=如果您不希望如此,點選「不,謝謝」將只會啟用維持網站正常運作所需的必要 Cookie。
|
||||||
cookieBanner.popUp.acceptAllBtn=接受
|
cookieBanner.popUp.acceptAllBtn=接受
|
||||||
cookieBanner.popUp.acceptNecessaryBtn=不,謝謝
|
cookieBanner.popUp.acceptNecessaryBtn=不,謝謝
|
||||||
cookieBanner.popUp.showPreferencesBtn=管理偏好設定
|
cookieBanner.popUp.showPreferencesBtn=管理偏好設定
|
||||||
cookieBanner.preferencesModal.title=喜好設定中心
|
cookieBanner.preferencesModal.title=偏好設定中心
|
||||||
cookieBanner.preferencesModal.acceptAllBtn=全部接受
|
cookieBanner.preferencesModal.acceptAllBtn=全部接受
|
||||||
cookieBanner.preferencesModal.acceptNecessaryBtn=全部拒絕
|
cookieBanner.preferencesModal.acceptNecessaryBtn=全部拒絕
|
||||||
cookieBanner.preferencesModal.savePreferencesBtn=儲存設定
|
cookieBanner.preferencesModal.savePreferencesBtn=儲存設定
|
||||||
cookieBanner.preferencesModal.closeIconLabel=關閉視窗
|
cookieBanner.preferencesModal.closeIconLabel=關閉視窗
|
||||||
cookieBanner.preferencesModal.serviceCounterLabel=服務|服務
|
cookieBanner.preferencesModal.serviceCounterLabel=服務|服務
|
||||||
cookieBanner.preferencesModal.subtitle=Cookies 的用途
|
cookieBanner.preferencesModal.subtitle=Cookie 的用途
|
||||||
cookieBanner.preferencesModal.description.1=Stirling PDF 使用 Cookies 與其他相似技術去改善您的體驗和分析您如何使用我們的工具。這有助於我們改善效能、開發您注目的功能,和提供使用者協助。
|
cookieBanner.preferencesModal.description.1=Stirling PDF 使用 Cookie 與其他相似技術去改善您的體驗和分析您如何使用我們的工具。這有助於我們改善效能、開發您注目的功能,和提供使用者協助。
|
||||||
cookieBanner.preferencesModal.description.2=Stirling PDF 不能——且永遠不會——追蹤或存取您的文件。
|
cookieBanner.preferencesModal.description.2=Stirling PDF 不能——且永遠不會——追蹤或存取您的文件。
|
||||||
cookieBanner.preferencesModal.description.3=您的隱私和信任是我們的核心理念。
|
cookieBanner.preferencesModal.description.3=您的隱私和信任是我們的核心理念。
|
||||||
cookieBanner.preferencesModal.necessary.title.1=必要的 Cookies
|
cookieBanner.preferencesModal.necessary.title.1=必要的 Cookie
|
||||||
cookieBanner.preferencesModal.necessary.title.2=永遠開啟
|
cookieBanner.preferencesModal.necessary.title.2=永遠開啟
|
||||||
cookieBanner.preferencesModal.necessary.description=這些 Cookies 對網站正常運作至關重要。它們讓核心功能,像是隱私設定、登入、填入表格能夠運作——這也是為什麼它們不能被關掉。
|
cookieBanner.preferencesModal.necessary.description=這些 Cookie 對網站正常運作至關重要。它們讓核心功能,像是隱私設定、登入、填入表格能夠運作——這也是為什麼它們不能被關掉。
|
||||||
cookieBanner.preferencesModal.analytics.title=分析 Cookies
|
cookieBanner.preferencesModal.analytics.title=分析 Cookie
|
||||||
cookieBanner.preferencesModal.analytics.description=這些 Cookies 幫助我們分析您如何使用我們的工具,好讓我們能專注在建構社群最重視的功能。儘管放心—— Stirling PDF 不會且永不追蹤您的文件
|
cookieBanner.preferencesModal.analytics.description=這些 Cookie 協助我們分析您如何使用我們的工具,好讓我們能專注在建構社群最重視的功能。儘管放心—— Stirling PDF 不會且永不追蹤您的文件
|
||||||
|
|
||||||
#scannerEffect
|
#scannerEffect
|
||||||
scannerEffect.title=Scanner Effect
|
scannerEffect.title=掃描器效果
|
||||||
scannerEffect.header=Scanner Effect
|
scannerEffect.header=掃描器效果
|
||||||
scannerEffect.description=Create a PDF that looks like it was scanned
|
scannerEffect.description=建立看起來像掃描過的 PDF
|
||||||
scannerEffect.selectPDF=Select PDF:
|
scannerEffect.selectPDF=選擇 PDF:
|
||||||
scannerEffect.quality=Scan Quality
|
scannerEffect.quality=掃描品質
|
||||||
scannerEffect.quality.low=Low
|
scannerEffect.quality.low=低
|
||||||
scannerEffect.quality.medium=Medium
|
scannerEffect.quality.medium=中
|
||||||
scannerEffect.quality.high=High
|
scannerEffect.quality.high=高
|
||||||
scannerEffect.rotation=Rotation Angle
|
scannerEffect.rotation=旋轉角度
|
||||||
scannerEffect.rotation.none=None
|
scannerEffect.rotation.none=無
|
||||||
scannerEffect.rotation.slight=Slight
|
scannerEffect.rotation.slight=輕微
|
||||||
scannerEffect.rotation.moderate=Moderate
|
scannerEffect.rotation.moderate=中等
|
||||||
scannerEffect.rotation.severe=Severe
|
scannerEffect.rotation.severe=嚴重
|
||||||
scannerEffect.submit=Create Scanner Effect
|
scannerEffect.submit=建立掃描器效果
|
||||||
|
|
||||||
#home.scannerEffect
|
#home.scannerEffect
|
||||||
home.scannerEffect.title=Scanner Effect
|
home.scannerEffect.title=掃描器效果
|
||||||
home.scannerEffect.desc=Create a PDF that looks like it was scanned
|
home.scannerEffect.desc=建立看起來像掃描過的 PDF
|
||||||
scannerEffect.tags=scan,simulate,realistic,convert
|
scannerEffect.tags=掃描,模擬,逼真,轉換
|
||||||
|
|
||||||
# ScannerEffect advanced settings (frontend)
|
# ScannerEffect advanced settings (frontend)
|
||||||
scannerEffect.advancedSettings=Enable Advanced Scan Settings
|
scannerEffect.advancedSettings=啟用進階掃描設定
|
||||||
scannerEffect.colorspace=Colorspace
|
scannerEffect.colorspace=色彩空間
|
||||||
scannerEffect.colorspace.grayscale=Grayscale
|
scannerEffect.colorspace.grayscale=灰階
|
||||||
scannerEffect.colorspace.color=Color
|
scannerEffect.colorspace.color=彩色
|
||||||
scannerEffect.border=Border (px)
|
scannerEffect.border=邊框 (px)
|
||||||
scannerEffect.rotate=Base Rotation (degrees)
|
scannerEffect.rotate=基礎旋轉 (度)
|
||||||
scannerEffect.rotateVariance=Rotation Variance (degrees)
|
scannerEffect.rotateVariance=旋轉變異 (度)
|
||||||
scannerEffect.brightness=Brightness
|
scannerEffect.brightness=亮度
|
||||||
scannerEffect.contrast=Contrast
|
scannerEffect.contrast=對比
|
||||||
scannerEffect.blur=Blur
|
scannerEffect.blur=模糊
|
||||||
scannerEffect.noise=Noise
|
scannerEffect.noise=雜訊
|
||||||
scannerEffect.yellowish=Yellowish (simulate old paper)
|
scannerEffect.yellowish=泛黃效果 (模擬舊紙張)
|
||||||
scannerEffect.resolution=Resolution (DPI)
|
scannerEffect.resolution=解析度 (DPI)
|
||||||
|
|
||||||
|
|
||||||
# Table of Contents Feature
|
# Table of Contents Feature
|
||||||
home.editTableOfContents.title=Edit Table of Contents
|
home.editTableOfContents.title=編輯目錄
|
||||||
home.editTableOfContents.desc=Add or edit bookmarks and table of contents in PDF documents
|
home.editTableOfContents.desc=在 PDF 文件中新增或編輯書籤和目錄
|
||||||
|
|
||||||
editTableOfContents.tags=bookmarks,toc,navigation,index,table of contents,chapters,sections,outline
|
editTableOfContents.tags=書籤,toc,導覽,索引,目錄,章節,區段,大綱
|
||||||
editTableOfContents.title=Edit Table of Contents
|
editTableOfContents.title=編輯目錄
|
||||||
editTableOfContents.header=Add or Edit PDF Table of Contents
|
editTableOfContents.header=新增或編輯 PDF 目錄
|
||||||
editTableOfContents.replaceExisting=Replace existing bookmarks (uncheck to append to existing)
|
editTableOfContents.replaceExisting=取代現有書籤 (取消勾選以附加到現有書籤)
|
||||||
editTableOfContents.editorTitle=Bookmark Editor
|
editTableOfContents.editorTitle=書籤編輯器
|
||||||
editTableOfContents.editorDesc=Add and arrange bookmarks below. Click + to add child bookmarks.
|
editTableOfContents.editorDesc=在下方新增和排列書籤。點選 + 新增子書籤。
|
||||||
editTableOfContents.addBookmark=Add New Bookmark
|
editTableOfContents.addBookmark=新增書籤
|
||||||
editTableOfContents.desc.1=This tool allows you to add or edit the table of contents (bookmarks) in a PDF document.
|
editTableOfContents.desc.1=此工具可讓您在 PDF 文件中新增或編輯目錄 (書籤)。
|
||||||
editTableOfContents.desc.2=You can create a hierarchical structure by adding child bookmarks to parent bookmarks.
|
editTableOfContents.desc.2=您可以透過將子書籤新增至父書籤來建立階層式結構。
|
||||||
editTableOfContents.desc.3=Each bookmark requires a title and target page number.
|
editTableOfContents.desc.3=每個書籤都需要標題和目標頁碼。
|
||||||
editTableOfContents.submit=Apply Table of Contents
|
editTableOfContents.submit=套用目錄
|
||||||
|
@ -91,7 +91,7 @@ mail:
|
|||||||
from: '' # sender email address
|
from: '' # sender email address
|
||||||
|
|
||||||
legal:
|
legal:
|
||||||
termsAndConditions: https://www.stirlingpdf.com/terms-and-conditions # URL to the terms and conditions of your application (e.g. https://example.com/terms). Empty string to disable or filename to load from local file in static folder
|
termsAndConditions: https://www.stirlingpdf.com/terms # URL to the terms and conditions of your application (e.g. https://example.com/terms). Empty string to disable or filename to load from local file in static folder
|
||||||
privacyPolicy: https://www.stirlingpdf.com/privacy-policy # URL to the privacy policy of your application (e.g. https://example.com/privacy). Empty string to disable or filename to load from local file in static folder
|
privacyPolicy: https://www.stirlingpdf.com/privacy-policy # URL to the privacy policy of your application (e.g. https://example.com/privacy). Empty string to disable or filename to load from local file in static folder
|
||||||
accessibilityStatement: '' # URL to the accessibility statement of your application (e.g. https://example.com/accessibility). Empty string to disable or filename to load from local file in static folder
|
accessibilityStatement: '' # URL to the accessibility statement of your application (e.g. https://example.com/accessibility). Empty string to disable or filename to load from local file in static folder
|
||||||
cookiePolicy: '' # URL to the cookie policy of your application (e.g. https://example.com/cookie). Empty string to disable or filename to load from local file in static folder
|
cookiePolicy: '' # URL to the cookie policy of your application (e.g. https://example.com/cookie). Empty string to disable or filename to load from local file in static folder
|
||||||
|
@ -85,21 +85,21 @@
|
|||||||
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "com.fasterxml.jackson.jaxrs:jackson-jaxrs-base",
|
"moduleName": "com.fasterxml.jackson.jakarta.rs:jackson-jakarta-rs-base",
|
||||||
"moduleUrl": "https://github.com/FasterXML/jackson-jaxrs-providers/jackson-jaxrs-base",
|
"moduleUrl": "https://github.com/FasterXML/jackson-jakarta-rs-providers/jackson-jakarta-rs-base",
|
||||||
"moduleVersion": "2.19.1",
|
"moduleVersion": "2.19.1",
|
||||||
"moduleLicense": "The Apache Software License, Version 2.0",
|
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider",
|
"moduleName": "com.fasterxml.jackson.jakarta.rs:jackson-jakarta-rs-json-provider",
|
||||||
"moduleUrl": "https://github.com/FasterXML/jackson-jaxrs-providers/jackson-jaxrs-json-provider",
|
"moduleUrl": "https://github.com/FasterXML/jackson-jakarta-rs-providers/jackson-jakarta-rs-json-provider",
|
||||||
"moduleVersion": "2.19.1",
|
"moduleVersion": "2.19.1",
|
||||||
"moduleLicense": "The Apache Software License, Version 2.0",
|
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "com.fasterxml.jackson.module:jackson-module-jaxb-annotations",
|
"moduleName": "com.fasterxml.jackson.module:jackson-module-jakarta-xmlbind-annotations",
|
||||||
"moduleUrl": "https://github.com/FasterXML/jackson-modules-base",
|
"moduleUrl": "https://github.com/FasterXML/jackson-modules-base",
|
||||||
"moduleVersion": "2.19.1",
|
"moduleVersion": "2.19.1",
|
||||||
"moduleLicense": "The Apache Software License, Version 2.0",
|
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||||
@ -358,14 +358,14 @@
|
|||||||
{
|
{
|
||||||
"moduleName": "com.unboundid.product.scim2:scim2-sdk-client",
|
"moduleName": "com.unboundid.product.scim2:scim2-sdk-client",
|
||||||
"moduleUrl": "https://github.com/pingidentity/scim2",
|
"moduleUrl": "https://github.com/pingidentity/scim2",
|
||||||
"moduleVersion": "2.3.5",
|
"moduleVersion": "4.0.0",
|
||||||
"moduleLicense": "UnboundID SCIM2 SDK Free Use License",
|
"moduleLicense": "UnboundID SCIM2 SDK Free Use License",
|
||||||
"moduleLicenseUrl": "https://github.com/pingidentity/scim2"
|
"moduleLicenseUrl": "https://github.com/pingidentity/scim2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"moduleName": "com.unboundid.product.scim2:scim2-sdk-common",
|
"moduleName": "com.unboundid.product.scim2:scim2-sdk-common",
|
||||||
"moduleUrl": "https://github.com/pingidentity/scim2",
|
"moduleUrl": "https://github.com/pingidentity/scim2",
|
||||||
"moduleVersion": "2.3.5",
|
"moduleVersion": "4.0.0",
|
||||||
"moduleLicense": "UnboundID SCIM2 SDK Free Use License",
|
"moduleLicense": "UnboundID SCIM2 SDK Free Use License",
|
||||||
"moduleLicenseUrl": "https://github.com/pingidentity/scim2"
|
"moduleLicenseUrl": "https://github.com/pingidentity/scim2"
|
||||||
},
|
},
|
||||||
@ -533,7 +533,7 @@
|
|||||||
{
|
{
|
||||||
"moduleName": "commons-io:commons-io",
|
"moduleName": "commons-io:commons-io",
|
||||||
"moduleUrl": "https://commons.apache.org/proper/commons-io/",
|
"moduleUrl": "https://commons.apache.org/proper/commons-io/",
|
||||||
"moduleVersion": "2.19.0",
|
"moduleVersion": "2.20.0",
|
||||||
"moduleLicense": "Apache-2.0",
|
"moduleLicense": "Apache-2.0",
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
},
|
},
|
||||||
@ -752,20 +752,6 @@
|
|||||||
"moduleLicense": "GNU General Public License, version 2 with the GNU Classpath Exception",
|
"moduleLicense": "GNU General Public License, version 2 with the GNU Classpath Exception",
|
||||||
"moduleLicenseUrl": "https://www.gnu.org/software/classpath/license.html"
|
"moduleLicenseUrl": "https://www.gnu.org/software/classpath/license.html"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"moduleName": "javax.activation:javax.activation-api",
|
|
||||||
"moduleUrl": "http://www.oracle.com",
|
|
||||||
"moduleVersion": "1.2.0",
|
|
||||||
"moduleLicense": "COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0",
|
|
||||||
"moduleLicenseUrl": "https://opensource.org/licenses/CDDL-1.0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"moduleName": "javax.xml.bind:jaxb-api",
|
|
||||||
"moduleUrl": "http://www.oracle.com/",
|
|
||||||
"moduleVersion": "2.3.1",
|
|
||||||
"moduleLicense": "GPL2 w/ CPE",
|
|
||||||
"moduleLicenseUrl": "https://oss.oracle.com/licenses/CDDL+GPL-1.1"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"moduleName": "me.friwi:gluegen-rt",
|
"moduleName": "me.friwi:gluegen-rt",
|
||||||
"moduleUrl": "http://jogamp.org/gluegen/www/",
|
"moduleUrl": "http://jogamp.org/gluegen/www/",
|
||||||
@ -1457,7 +1443,7 @@
|
|||||||
{
|
{
|
||||||
"moduleName": "org.snakeyaml:snakeyaml-engine",
|
"moduleName": "org.snakeyaml:snakeyaml-engine",
|
||||||
"moduleUrl": "https://bitbucket.org/snakeyaml/snakeyaml-engine",
|
"moduleUrl": "https://bitbucket.org/snakeyaml/snakeyaml-engine",
|
||||||
"moduleVersion": "2.9",
|
"moduleVersion": "2.10",
|
||||||
"moduleLicense": "Apache License, Version 2.0",
|
"moduleLicense": "Apache License, Version 2.0",
|
||||||
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
},
|
},
|
||||||
|
@ -91,7 +91,7 @@ mail:
|
|||||||
from: '' # sender email address
|
from: '' # sender email address
|
||||||
|
|
||||||
legal:
|
legal:
|
||||||
termsAndConditions: https://www.stirlingpdf.com/terms-and-conditions # URL to the terms and conditions of your application (e.g. https://example.com/terms). Empty string to disable or filename to load from local file in static folder
|
termsAndConditions: https://www.stirlingpdf.com/terms # URL to the terms and conditions of your application (e.g. https://example.com/terms). Empty string to disable or filename to load from local file in static folder
|
||||||
privacyPolicy: https://www.stirlingpdf.com/privacy-policy # URL to the privacy policy of your application (e.g. https://example.com/privacy). Empty string to disable or filename to load from local file in static folder
|
privacyPolicy: https://www.stirlingpdf.com/privacy-policy # URL to the privacy policy of your application (e.g. https://example.com/privacy). Empty string to disable or filename to load from local file in static folder
|
||||||
accessibilityStatement: '' # URL to the accessibility statement of your application (e.g. https://example.com/accessibility). Empty string to disable or filename to load from local file in static folder
|
accessibilityStatement: '' # URL to the accessibility statement of your application (e.g. https://example.com/accessibility). Empty string to disable or filename to load from local file in static folder
|
||||||
cookiePolicy: '' # URL to the cookie policy of your application (e.g. https://example.com/cookie). Empty string to disable or filename to load from local file in static folder
|
cookiePolicy: '' # URL to the cookie policy of your application (e.g. https://example.com/cookie). Empty string to disable or filename to load from local file in static folder
|
||||||
|
Loading…
Reference in New Issue
Block a user