mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2025-09-03 17:52:30 +02:00
Merge branch 'main' into jwt
This commit is contained in:
commit
fc4d976c9c
16
.github/CODEOWNERS
vendored
16
.github/CODEOWNERS
vendored
@ -2,20 +2,20 @@
|
||||
* @Frooodle @Ludy87 @jbrunton96 @ConnorYoh
|
||||
|
||||
# Backend
|
||||
/app/** @DarioGii
|
||||
/app/** @DarioGii @Frooodle @Ludy87 @jbrunton96 @ConnorYoh
|
||||
|
||||
#V1 frontend
|
||||
/app/core/src/main/resources/static/** @reecebrowne @ConnorYoh @EthanHealy01 @jbrunton96
|
||||
/app/core/src/main/resources/templates/** @reecebrowne @ConnorYoh @EthanHealy01 @jbrunton96
|
||||
/app/core/src/main/resources/static/** @reecebrowne @ConnorYoh @EthanHealy01 @jbrunton96 @Frooodle @Ludy87
|
||||
/app/core/src/main/resources/templates/** @reecebrowne @ConnorYoh @EthanHealy01 @jbrunton96 @Frooodle @Ludy87
|
||||
|
||||
#V2 frontend
|
||||
/frontend/** @reecebrowne @ConnorYoh @EthanHealy01 @jbrunton96
|
||||
/frontend/** @reecebrowne @ConnorYoh @EthanHealy01 @jbrunton96 @Frooodle
|
||||
|
||||
#V2 docker
|
||||
/docker/backend/** @Frooodle @Ludy87 @DarioGii
|
||||
/docker/frontend/** @reecebrowne @ConnorYoh @EthanHealy01 @jbrunton96
|
||||
/docker/compose/** @reecebrowne @ConnorYoh @EthanHealy01 @DarioGii @jbrunton96
|
||||
/docker/backend/** @Frooodle @Ludy87 @DarioGii @Ludy87
|
||||
/docker/frontend/** @reecebrowne @ConnorYoh @EthanHealy01 @jbrunton96 @Frooodle @Ludy87
|
||||
/docker/compose/** @reecebrowne @ConnorYoh @EthanHealy01 @DarioGii @jbrunton96 @Frooodle @Ludy87
|
||||
|
||||
|
||||
#GHA (All users)
|
||||
/.github/** @reecebrowne @ConnorYoh @EthanHealy01 @DarioGii @jbrunton96
|
||||
/.github/** @reecebrowne @ConnorYoh @EthanHealy01 @DarioGii @jbrunton96 @Frooodle @Ludy87
|
||||
|
2
.github/config/.files.yaml
vendored
2
.github/config/.files.yaml
vendored
@ -27,3 +27,5 @@ project: &project
|
||||
- gradlew.bat
|
||||
- launch4jConfig.xml
|
||||
- settings.gradle
|
||||
- frontend/**
|
||||
- docker/**
|
||||
|
2
.github/labels.yml
vendored
2
.github/labels.yml
vendored
@ -182,4 +182,4 @@
|
||||
description: "Pull request has been deployed to a test environment"
|
||||
- name: "codex"
|
||||
color: "ededed"
|
||||
description: "chatgpt AI generated code"
|
||||
description: "chatgpt AI generated code"
|
||||
|
74
README.md
74
README.md
@ -116,47 +116,47 @@ Stirling-PDF currently supports 40 languages!
|
||||
|
||||
| Language | Progress |
|
||||
| -------------------------------------------- | -------------------------------------- |
|
||||
| Arabic (العربية) (ar_AR) |  |
|
||||
| Azerbaijani (Azərbaycan Dili) (az_AZ) |  |
|
||||
| Basque (Euskara) (eu_ES) |  |
|
||||
| Bulgarian (Български) (bg_BG) |  |
|
||||
| Catalan (Català) (ca_CA) |  |
|
||||
| Croatian (Hrvatski) (hr_HR) |  |
|
||||
| Czech (Česky) (cs_CZ) |  |
|
||||
| Danish (Dansk) (da_DK) |  |
|
||||
| Dutch (Nederlands) (nl_NL) |  |
|
||||
| Arabic (العربية) (ar_AR) |  |
|
||||
| Azerbaijani (Azərbaycan Dili) (az_AZ) |  |
|
||||
| Basque (Euskara) (eu_ES) |  |
|
||||
| Bulgarian (Български) (bg_BG) |  |
|
||||
| Catalan (Català) (ca_CA) |  |
|
||||
| Croatian (Hrvatski) (hr_HR) |  |
|
||||
| Czech (Česky) (cs_CZ) |  |
|
||||
| Danish (Dansk) (da_DK) |  |
|
||||
| Dutch (Nederlands) (nl_NL) |  |
|
||||
| English (English) (en_GB) |  |
|
||||
| English (US) (en_US) |  |
|
||||
| French (Français) (fr_FR) |  |
|
||||
| German (Deutsch) (de_DE) |  |
|
||||
| Greek (Ελληνικά) (el_GR) |  |
|
||||
| Hindi (हिंदी) (hi_IN) |  |
|
||||
| French (Français) (fr_FR) |  |
|
||||
| German (Deutsch) (de_DE) |  |
|
||||
| Greek (Ελληνικά) (el_GR) |  |
|
||||
| Hindi (हिंदी) (hi_IN) |  |
|
||||
| Hungarian (Magyar) (hu_HU) |  |
|
||||
| Indonesian (Bahasa Indonesia) (id_ID) |  |
|
||||
| Irish (Gaeilge) (ga_IE) |  |
|
||||
| Indonesian (Bahasa Indonesia) (id_ID) |  |
|
||||
| Irish (Gaeilge) (ga_IE) |  |
|
||||
| Italian (Italiano) (it_IT) |  |
|
||||
| Japanese (日本語) (ja_JP) |  |
|
||||
| Korean (한국어) (ko_KR) |  |
|
||||
| Norwegian (Norsk) (no_NB) |  |
|
||||
| Persian (فارسی) (fa_IR) |  |
|
||||
| Polish (Polski) (pl_PL) |  |
|
||||
| Portuguese (Português) (pt_PT) |  |
|
||||
| Portuguese Brazilian (Português) (pt_BR) |  |
|
||||
| Romanian (Română) (ro_RO) |  |
|
||||
| Russian (Русский) (ru_RU) |  |
|
||||
| Serbian Latin alphabet (Srpski) (sr_LATN_RS) |  |
|
||||
| Simplified Chinese (简体中文) (zh_CN) |  |
|
||||
| Slovakian (Slovensky) (sk_SK) |  |
|
||||
| Slovenian (Slovenščina) (sl_SI) |  |
|
||||
| Spanish (Español) (es_ES) |  |
|
||||
| Swedish (Svenska) (sv_SE) |  |
|
||||
| Thai (ไทย) (th_TH) |  |
|
||||
| Tibetan (བོད་ཡིག་) (bo_CN) |  |
|
||||
| Traditional Chinese (繁體中文) (zh_TW) |  |
|
||||
| Turkish (Türkçe) (tr_TR) |  |
|
||||
| Ukrainian (Українська) (uk_UA) |  |
|
||||
| Vietnamese (Tiếng Việt) (vi_VN) |  |
|
||||
| Malayalam (മലയാളം) (ml_IN) |  |
|
||||
| Japanese (日本語) (ja_JP) |  |
|
||||
| Korean (한국어) (ko_KR) |  |
|
||||
| Norwegian (Norsk) (no_NB) |  |
|
||||
| Persian (فارسی) (fa_IR) |  |
|
||||
| Polish (Polski) (pl_PL) |  |
|
||||
| Portuguese (Português) (pt_PT) |  |
|
||||
| Portuguese Brazilian (Português) (pt_BR) |  |
|
||||
| Romanian (Română) (ro_RO) |  |
|
||||
| Russian (Русский) (ru_RU) |  |
|
||||
| Serbian Latin alphabet (Srpski) (sr_LATN_RS) |  |
|
||||
| Simplified Chinese (简体中文) (zh_CN) |  |
|
||||
| Slovakian (Slovensky) (sk_SK) |  |
|
||||
| Slovenian (Slovenščina) (sl_SI) |  |
|
||||
| Spanish (Español) (es_ES) |  |
|
||||
| Swedish (Svenska) (sv_SE) |  |
|
||||
| Thai (ไทย) (th_TH) |  |
|
||||
| Tibetan (བོད་ཡིག་) (bo_CN) |  |
|
||||
| Traditional Chinese (繁體中文) (zh_TW) |  |
|
||||
| Turkish (Türkçe) (tr_TR) |  |
|
||||
| Ukrainian (Українська) (uk_UA) |  |
|
||||
| Vietnamese (Tiếng Việt) (vi_VN) |  |
|
||||
| Malayalam (മലയാളം) (ml_IN) |  |
|
||||
|
||||
## Stirling PDF Enterprise
|
||||
|
||||
|
@ -198,7 +198,7 @@ public class ApplicationProperties {
|
||||
@JsonIgnore
|
||||
public InputStream getIdpMetadataUri() throws IOException {
|
||||
if (idpMetadataUri.startsWith("classpath:")) {
|
||||
return new ClassPathResource(idpMetadataUri.substring("classpath".length()))
|
||||
return new ClassPathResource(idpMetadataUri.substring("classpath:".length()))
|
||||
.getInputStream();
|
||||
}
|
||||
try {
|
||||
@ -234,6 +234,7 @@ public class ApplicationProperties {
|
||||
|
||||
@JsonIgnore
|
||||
public Resource getPrivateKey() {
|
||||
if (privateKey == null) return null;
|
||||
if (privateKey.startsWith("classpath:")) {
|
||||
return new ClassPathResource(privateKey.substring("classpath:".length()));
|
||||
} else {
|
||||
|
@ -5,8 +5,11 @@ import java.awt.image.*;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.Iterator;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import javax.imageio.ImageReader;
|
||||
import javax.imageio.stream.ImageInputStream;
|
||||
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
@ -115,7 +118,36 @@ public class ImageProcessingUtils {
|
||||
|
||||
public static BufferedImage loadImageWithExifOrientation(MultipartFile file)
|
||||
throws IOException {
|
||||
BufferedImage image = ImageIO.read(file.getInputStream());
|
||||
BufferedImage image = null;
|
||||
String filename = file.getOriginalFilename();
|
||||
|
||||
if (filename != null && filename.toLowerCase().endsWith(".psd")) {
|
||||
// For PSD files, try explicit ImageReader
|
||||
Iterator<ImageReader> readers = ImageIO.getImageReadersByFormatName("PSD");
|
||||
if (readers.hasNext()) {
|
||||
ImageReader reader = readers.next();
|
||||
try (ImageInputStream iis = ImageIO.createImageInputStream(file.getInputStream())) {
|
||||
reader.setInput(iis);
|
||||
image = reader.read(0);
|
||||
} finally {
|
||||
reader.dispose();
|
||||
}
|
||||
}
|
||||
if (image == null) {
|
||||
throw new IOException(
|
||||
"Unable to read image from file: "
|
||||
+ filename
|
||||
+ ". Supported PSD formats: RGB/CMYK/Gray 8-32 bit, RLE/ZIP compression");
|
||||
}
|
||||
} else {
|
||||
// For non-PSD files, use standard ImageIO
|
||||
image = ImageIO.read(file.getInputStream());
|
||||
}
|
||||
|
||||
if (image == null) {
|
||||
throw new IOException("Unable to read image from file: " + filename);
|
||||
}
|
||||
|
||||
double orientation = extractImageOrientation(file.getInputStream());
|
||||
return applyOrientation(image, orientation);
|
||||
}
|
||||
|
@ -0,0 +1,59 @@
|
||||
package stirling.software.common.model;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.MockedStatic;
|
||||
import org.mockito.Mockito;
|
||||
import org.springframework.core.env.ConfigurableEnvironment;
|
||||
import org.springframework.core.env.StandardEnvironment;
|
||||
|
||||
import stirling.software.common.configuration.InstallationPathConfig;
|
||||
|
||||
class ApplicationPropertiesDynamicYamlPropertySourceTest {
|
||||
|
||||
@Test
|
||||
void loads_yaml_into_environment() throws Exception {
|
||||
// YAML-Config in Temp-Datei schreiben
|
||||
String yaml =
|
||||
""
|
||||
+ "ui:\n"
|
||||
+ " appName: \"My App\"\n"
|
||||
+ "system:\n"
|
||||
+ " enableAnalytics: true\n";
|
||||
Path tmp = Files.createTempFile("spdf-settings-", ".yml");
|
||||
Files.writeString(tmp, yaml);
|
||||
|
||||
// Pfad per statischem Mock liefern
|
||||
try (MockedStatic<InstallationPathConfig> mocked =
|
||||
Mockito.mockStatic(InstallationPathConfig.class)) {
|
||||
mocked.when(InstallationPathConfig::getSettingsPath).thenReturn(tmp.toString());
|
||||
|
||||
ConfigurableEnvironment env = new StandardEnvironment();
|
||||
ApplicationProperties props = new ApplicationProperties();
|
||||
|
||||
props.dynamicYamlPropertySource(env); // fügt PropertySource an erster Stelle ein
|
||||
|
||||
assertEquals("My App", env.getProperty("ui.appName"));
|
||||
assertEquals("true", env.getProperty("system.enableAnalytics"));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void throws_when_settings_file_missing() throws Exception {
|
||||
String missing = "/path/does/not/exist/spdf.yml";
|
||||
try (MockedStatic<InstallationPathConfig> mocked =
|
||||
Mockito.mockStatic(InstallationPathConfig.class)) {
|
||||
mocked.when(InstallationPathConfig::getSettingsPath).thenReturn(missing);
|
||||
|
||||
ConfigurableEnvironment env = new StandardEnvironment();
|
||||
ApplicationProperties props = new ApplicationProperties();
|
||||
|
||||
assertThrows(IOException.class, () -> props.dynamicYamlPropertySource(env));
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,248 @@
|
||||
package stirling.software.common.model;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import stirling.software.common.model.ApplicationProperties.Driver;
|
||||
import stirling.software.common.model.ApplicationProperties.Premium;
|
||||
import stirling.software.common.model.ApplicationProperties.Security;
|
||||
import stirling.software.common.model.exception.UnsupportedProviderException;
|
||||
|
||||
class ApplicationPropertiesLogicTest {
|
||||
|
||||
@Test
|
||||
void system_isAnalyticsEnabled_null_false_true() {
|
||||
ApplicationProperties.System sys = new ApplicationProperties.System();
|
||||
|
||||
sys.setEnableAnalytics(null);
|
||||
assertFalse(sys.isAnalyticsEnabled());
|
||||
|
||||
sys.setEnableAnalytics(Boolean.FALSE);
|
||||
assertFalse(sys.isAnalyticsEnabled());
|
||||
|
||||
sys.setEnableAnalytics(Boolean.TRUE);
|
||||
assertTrue(sys.isAnalyticsEnabled());
|
||||
}
|
||||
|
||||
@Test
|
||||
void tempFileManagement_defaults_and_overrides() {
|
||||
ApplicationProperties.TempFileManagement tfm =
|
||||
new ApplicationProperties.TempFileManagement();
|
||||
|
||||
String expectedBase =
|
||||
java.lang.System.getProperty("java.io.tmpdir").replaceAll("/+$", "")
|
||||
+ "/stirling-pdf";
|
||||
assertEquals(expectedBase, tfm.getBaseTmpDir());
|
||||
|
||||
String expectedLibre = expectedBase + "/libreoffice";
|
||||
assertEquals(expectedLibre, tfm.getLibreofficeDir());
|
||||
|
||||
tfm.setBaseTmpDir("/custom/base");
|
||||
assertEquals("/custom/base", tfm.getBaseTmpDir());
|
||||
|
||||
tfm.setLibreofficeDir("/opt/libre");
|
||||
assertEquals("/opt/libre", tfm.getLibreofficeDir());
|
||||
}
|
||||
|
||||
@Test
|
||||
void oauth2_scope_parsing_and_validity() {
|
||||
Security.OAUTH2 oauth2 = new Security.OAUTH2();
|
||||
oauth2.setIssuer("https://issuer");
|
||||
oauth2.setClientId("client");
|
||||
oauth2.setClientSecret("secret");
|
||||
oauth2.setUseAsUsername("email");
|
||||
oauth2.setScopes("openid, profile ,email");
|
||||
assertTrue(oauth2.isSettingsValid());
|
||||
}
|
||||
|
||||
@Test
|
||||
void security_login_method_flags() {
|
||||
Security sec = new Security();
|
||||
|
||||
sec.getOauth2().setEnabled(true);
|
||||
sec.getSaml2().setEnabled(true);
|
||||
|
||||
assertTrue(sec.isUserPass());
|
||||
assertTrue(sec.isOauth2Active());
|
||||
assertTrue(sec.isSaml2Active());
|
||||
|
||||
sec.setLoginMethod(Security.LoginMethods.NORMAL.toString());
|
||||
assertTrue(sec.isUserPass());
|
||||
assertFalse(sec.isOauth2Active());
|
||||
assertFalse(sec.isSaml2Active());
|
||||
}
|
||||
|
||||
@Test
|
||||
void security_isAltLogin_reflects_oauth2_or_saml2() {
|
||||
Security sec = new Security();
|
||||
|
||||
assertFalse(sec.isAltLogin());
|
||||
|
||||
sec.getOauth2().setEnabled(true);
|
||||
sec.getSaml2().setEnabled(false);
|
||||
assertTrue(sec.isAltLogin());
|
||||
|
||||
sec.getOauth2().setEnabled(false);
|
||||
sec.getSaml2().setEnabled(true);
|
||||
assertTrue(sec.isAltLogin());
|
||||
|
||||
sec.getOauth2().setEnabled(true);
|
||||
sec.getSaml2().setEnabled(true);
|
||||
assertTrue(sec.isAltLogin());
|
||||
}
|
||||
|
||||
@Test
|
||||
void oauth2_client_provider_mapping_and_unsupported() throws UnsupportedProviderException {
|
||||
Security.OAUTH2.Client client = new Security.OAUTH2.Client();
|
||||
|
||||
assertNotNull(client.get("google"));
|
||||
assertNotNull(client.get("github"));
|
||||
assertNotNull(client.get("keycloak"));
|
||||
|
||||
UnsupportedProviderException ex =
|
||||
assertThrows(UnsupportedProviderException.class, () -> client.get("unknown"));
|
||||
assertTrue(ex.getMessage().toLowerCase().contains("not supported"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void premium_google_drive_getters_return_empty_string_on_null_or_blank() {
|
||||
Premium.ProFeatures.GoogleDrive gd = new Premium.ProFeatures.GoogleDrive();
|
||||
|
||||
assertEquals("", gd.getClientId());
|
||||
assertEquals("", gd.getApiKey());
|
||||
assertEquals("", gd.getAppId());
|
||||
|
||||
gd.setClientId(" id ");
|
||||
gd.setApiKey(" key ");
|
||||
gd.setAppId(" app ");
|
||||
assertEquals(" id ", gd.getClientId());
|
||||
assertEquals(" key ", gd.getApiKey());
|
||||
assertEquals(" app ", gd.getAppId());
|
||||
}
|
||||
|
||||
@Test
|
||||
void ui_getters_return_null_for_blank() {
|
||||
ApplicationProperties.Ui ui = new ApplicationProperties.Ui();
|
||||
ui.setAppName(" ");
|
||||
ui.setHomeDescription("");
|
||||
ui.setAppNameNavbar(null);
|
||||
|
||||
assertNull(ui.getAppName());
|
||||
assertNull(ui.getHomeDescription());
|
||||
assertNull(ui.getAppNameNavbar());
|
||||
|
||||
ui.setAppName("Stirling-PDF");
|
||||
ui.setHomeDescription("Home");
|
||||
ui.setAppNameNavbar("Nav");
|
||||
assertEquals("Stirling-PDF", ui.getAppName());
|
||||
assertEquals("Home", ui.getHomeDescription());
|
||||
assertEquals("Nav", ui.getAppNameNavbar());
|
||||
}
|
||||
|
||||
@Test
|
||||
void driver_toString_contains_driver_name() {
|
||||
assertTrue(Driver.H2.toString().contains("h2"));
|
||||
assertTrue(Driver.POSTGRESQL.toString().contains("postgresql"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void session_limits_and_timeouts_have_reasonable_defaults() {
|
||||
ApplicationProperties.ProcessExecutor pe = new ApplicationProperties.ProcessExecutor();
|
||||
|
||||
ApplicationProperties.ProcessExecutor.SessionLimit s = pe.getSessionLimit();
|
||||
assertEquals(2, s.getQpdfSessionLimit());
|
||||
assertEquals(1, s.getTesseractSessionLimit());
|
||||
assertEquals(1, s.getLibreOfficeSessionLimit());
|
||||
assertEquals(1, s.getPdfToHtmlSessionLimit());
|
||||
assertEquals(8, s.getPythonOpenCvSessionLimit());
|
||||
assertEquals(16, s.getWeasyPrintSessionLimit());
|
||||
assertEquals(1, s.getInstallAppSessionLimit());
|
||||
assertEquals(1, s.getCalibreSessionLimit());
|
||||
assertEquals(8, s.getGhostscriptSessionLimit());
|
||||
assertEquals(2, s.getOcrMyPdfSessionLimit());
|
||||
|
||||
ApplicationProperties.ProcessExecutor.TimeoutMinutes t = pe.getTimeoutMinutes();
|
||||
assertEquals(30, t.getTesseractTimeoutMinutes());
|
||||
assertEquals(30, t.getQpdfTimeoutMinutes());
|
||||
assertEquals(30, t.getLibreOfficeTimeoutMinutes());
|
||||
assertEquals(20, t.getPdfToHtmlTimeoutMinutes());
|
||||
assertEquals(30, t.getPythonOpenCvTimeoutMinutes());
|
||||
assertEquals(30, t.getWeasyPrintTimeoutMinutes());
|
||||
assertEquals(60, t.getInstallAppTimeoutMinutes());
|
||||
assertEquals(30, t.getCalibreTimeoutMinutes());
|
||||
assertEquals(30, t.getGhostscriptTimeoutMinutes());
|
||||
assertEquals(30, t.getOcrMyPdfTimeoutMinutes());
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
@Test
|
||||
void enterprise_metadata_defaults() {
|
||||
ApplicationProperties.EnterpriseEdition ee = new ApplicationProperties.EnterpriseEdition();
|
||||
ApplicationProperties.EnterpriseEdition.CustomMetadata eMeta = ee.getCustomMetadata();
|
||||
eMeta.setCreator(" ");
|
||||
eMeta.setProducer(null);
|
||||
assertEquals("Stirling-PDF", eMeta.getCreator());
|
||||
assertEquals("Stirling-PDF", eMeta.getProducer());
|
||||
}
|
||||
|
||||
@Test
|
||||
void premium_metadata_defaults() {
|
||||
Premium.ProFeatures pf = new Premium.ProFeatures();
|
||||
Premium.ProFeatures.CustomMetadata pMeta = pf.getCustomMetadata();
|
||||
pMeta.setCreator("");
|
||||
pMeta.setProducer("");
|
||||
assertEquals("Stirling-PDF", pMeta.getCreator());
|
||||
assertEquals("Stirling-PDF", pMeta.getProducer());
|
||||
}
|
||||
|
||||
@Test
|
||||
void premium_metadata_awesome() {
|
||||
Premium.ProFeatures pf = new Premium.ProFeatures();
|
||||
Premium.ProFeatures.CustomMetadata pMeta = pf.getCustomMetadata();
|
||||
pMeta.setCreator("Awesome PDF Tool");
|
||||
pMeta.setProducer("Awesome PDF Tool");
|
||||
assertEquals("Awesome PDF Tool", pMeta.getCreator());
|
||||
assertEquals("Awesome PDF Tool", pMeta.getProducer());
|
||||
}
|
||||
|
||||
@Test
|
||||
void string_isValid_handles_null_empty_blank_and_trimmed() {
|
||||
ApplicationProperties.Security.OAUTH2 oauth2 = new ApplicationProperties.Security.OAUTH2();
|
||||
|
||||
assertFalse(oauth2.isValid((String) null, "issuer"));
|
||||
assertFalse(oauth2.isValid("", "issuer"));
|
||||
assertFalse(oauth2.isValid(" ", "issuer"));
|
||||
|
||||
assertTrue(oauth2.isValid("x", "issuer"));
|
||||
assertTrue(oauth2.isValid(" x ", "issuer")); // trimmt intern
|
||||
}
|
||||
|
||||
@Test
|
||||
void collection_isValid_handles_null_and_empty() {
|
||||
ApplicationProperties.Security.OAUTH2 oauth2 = new ApplicationProperties.Security.OAUTH2();
|
||||
|
||||
Collection<String> nullColl = null;
|
||||
Collection<String> empty = List.of();
|
||||
|
||||
assertFalse(oauth2.isValid(nullColl, "scopes"));
|
||||
assertFalse(oauth2.isValid(empty, "scopes"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void collection_isValid_true_when_non_empty_even_if_element_is_blank() {
|
||||
ApplicationProperties.Security.OAUTH2 oauth2 = new ApplicationProperties.Security.OAUTH2();
|
||||
|
||||
// Aktuelles Verhalten: prüft NUR !isEmpty(), nicht Inhalt
|
||||
Collection<String> oneBlank = new ArrayList<>();
|
||||
oneBlank.add(" ");
|
||||
|
||||
assertTrue(
|
||||
oauth2.isValid(oneBlank, "scopes"),
|
||||
"Dokumentiert aktuelles Verhalten: nicht-leere Liste gilt als gültig, auch wenn Element leer/blank ist");
|
||||
}
|
||||
}
|
@ -0,0 +1,80 @@
|
||||
package stirling.software.common.model;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.core.io.FileSystemResource;
|
||||
import org.springframework.core.io.Resource;
|
||||
|
||||
import okhttp3.mockwebserver.MockResponse;
|
||||
import okhttp3.mockwebserver.MockWebServer;
|
||||
|
||||
class ApplicationPropertiesSaml2HttpTest {
|
||||
|
||||
@Test
|
||||
void idpMetadataUri_http_is_resolved_via_mockwebserver() throws Exception {
|
||||
try (MockWebServer server = new MockWebServer()) {
|
||||
server.enqueue(
|
||||
new MockResponse()
|
||||
.setResponseCode(200)
|
||||
.addHeader("Content-Type", "application/xml")
|
||||
.setBody("<EntityDescriptor/>"));
|
||||
server.start();
|
||||
|
||||
String url = server.url("/meta").toString();
|
||||
|
||||
var s = new ApplicationProperties.Security.SAML2();
|
||||
s.setIdpMetadataUri(url);
|
||||
|
||||
try (InputStream in = s.getIdpMetadataUri()) {
|
||||
String body = new String(in.readAllBytes(), StandardCharsets.UTF_8);
|
||||
assertTrue(body.contains("EntityDescriptor"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void idpMetadataUri_invalidUri_triggers_catch_and_throwsIOException() {
|
||||
// Ungültige URI -> new URI(...) wirft URISyntaxException -> catch -> IOException
|
||||
var s = new ApplicationProperties.Security.SAML2();
|
||||
s.setIdpMetadataUri("http:##invalid uri"); // absichtlich kaputt (Leerzeichen + ##)
|
||||
|
||||
assertThrows(IOException.class, s::getIdpMetadataUri);
|
||||
}
|
||||
|
||||
@Test
|
||||
void spCert_else_branch_returns_FileSystemResource_for_filesystem_path() throws Exception {
|
||||
var s = new ApplicationProperties.Security.SAML2();
|
||||
|
||||
// temporäre Datei simuliert "Filesystem"-Pfad (-> else-Zweig)
|
||||
Path tmp = Files.createTempFile("spdf-spcert-", ".crt");
|
||||
Files.writeString(tmp, "CERT");
|
||||
|
||||
s.setSpCert(tmp.toString());
|
||||
Resource r = s.getSpCert();
|
||||
|
||||
assertNotNull(r);
|
||||
assertTrue(r instanceof FileSystemResource, "Expected FileSystemResource for FS path");
|
||||
assertTrue(r.exists(), "Temp file should exist");
|
||||
}
|
||||
|
||||
@Test
|
||||
void idpCert_else_branch_returns_FileSystemResource_even_if_missing() {
|
||||
var s = new ApplicationProperties.Security.SAML2();
|
||||
|
||||
// bewusst nicht existierender Pfad -> else-Zweig wird trotzdem genommen
|
||||
String missing = "/this/path/does/not/exist/idp.crt";
|
||||
s.setIdpCert(missing);
|
||||
Resource r = s.getIdpCert();
|
||||
|
||||
assertNotNull(r);
|
||||
assertTrue(r instanceof FileSystemResource, "Expected FileSystemResource for FS path");
|
||||
assertFalse(r.exists(), "Resource should not exist for missing file");
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
package stirling.software.common.model;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.core.io.Resource;
|
||||
|
||||
class ApplicationPropertiesSaml2ResourceTest {
|
||||
|
||||
@Test
|
||||
void idpMetadataUri_classpath_is_resolved() throws Exception {
|
||||
var s = new ApplicationProperties.Security.SAML2();
|
||||
s.setIdpMetadataUri("classpath:saml/dummy.txt");
|
||||
|
||||
try (InputStream in = s.getIdpMetadataUri()) {
|
||||
assertNotNull(in, "Classpath InputStream should not be null");
|
||||
String txt = new String(in.readAllBytes(), StandardCharsets.UTF_8);
|
||||
assertTrue(txt.contains("ok"));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void spCert_idpCert_privateKey_null_classpath_and_filesystem() throws Exception {
|
||||
var s = new ApplicationProperties.Security.SAML2();
|
||||
|
||||
s.setSpCert(null);
|
||||
s.setIdpCert(null);
|
||||
s.setPrivateKey(null);
|
||||
assertNull(s.getSpCert());
|
||||
assertNull(s.getIdpCert());
|
||||
assertNull(s.getPrivateKey());
|
||||
|
||||
s.setSpCert("classpath:saml/dummy.txt");
|
||||
s.setIdpCert("classpath:saml/dummy.txt");
|
||||
s.setPrivateKey("classpath:saml/dummy.txt");
|
||||
Resource sp = s.getSpCert();
|
||||
Resource idp = s.getIdpCert();
|
||||
Resource pk = s.getPrivateKey();
|
||||
assertTrue(sp.exists());
|
||||
assertTrue(idp.exists());
|
||||
assertTrue(pk.exists());
|
||||
|
||||
Path tmp = Files.createTempFile("spdf-key-", ".pem");
|
||||
Files.writeString(tmp, "KEY");
|
||||
s.setPrivateKey(tmp.toString());
|
||||
Resource pkFs = s.getPrivateKey();
|
||||
assertNotNull(pkFs);
|
||||
assertTrue(pkFs.exists());
|
||||
}
|
||||
}
|
1
app/common/src/test/resources/saml/dummy.txt
Normal file
1
app/common/src/test/resources/saml/dummy.txt
Normal file
@ -0,0 +1 @@
|
||||
ok
|
@ -91,7 +91,7 @@ dependencies {
|
||||
// runtimeOnly "com.twelvemonkeys.imageio:imageio-pcx:$imageioVersion@
|
||||
// runtimeOnly "com.twelvemonkeys.imageio:imageio-pict:$imageioVersion"
|
||||
// runtimeOnly "com.twelvemonkeys.imageio:imageio-pnm:$imageioVersion"
|
||||
// runtimeOnly "com.twelvemonkeys.imageio:imageio-psd:$imageioVersion"
|
||||
runtimeOnly "com.twelvemonkeys.imageio:imageio-psd:$imageioVersion"
|
||||
// runtimeOnly "com.twelvemonkeys.imageio:imageio-sgi:$imageioVersion"
|
||||
// runtimeOnly "com.twelvemonkeys.imageio:imageio-tga:$imageioVersion"
|
||||
// runtimeOnly "com.twelvemonkeys.imageio:imageio-thumbsdb:$imageioVersion"
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=المفضل
|
||||
settings.title=الإعدادات
|
||||
settings.update=التحديث متاح
|
||||
settings.updateAvailable={0} هو الإصدار المثبت حاليًا. إصدار جديد ({1}) متاح.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=إصدار التطبيق:
|
||||
settings.downloadOption.title=تحديد خيار التنزيل (للتنزيلات ذات الملف الواحد غير المضغوط):
|
||||
settings.downloadOption.1=فتح في نفس النافذة
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Populyar
|
||||
settings.title=Parametrlər
|
||||
settings.update=Yeniləmə mövcuddur
|
||||
settings.updateAvailable={0} cari quraşdırılmış versiyadır. Yeni ({1}) versiyası mövcuddur.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=Proqram Versiyası:
|
||||
settings.downloadOption.title=Yükləmə versiyasını seçin (Tək fayllı zip olmayan yükləmələr üçün):
|
||||
settings.downloadOption.1=Eyni pəncərədə açın
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Популярни
|
||||
settings.title=Настройки
|
||||
settings.update=Налична актуализация
|
||||
settings.updateAvailable={0} е текущата инсталирана версия. Налична е нова версия ({1}).
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=Версия на приложението:
|
||||
settings.downloadOption.title=Изберете опция за изтегляне (за изтегляния на един файл без да е архивиран):
|
||||
settings.downloadOption.1=Отваряне в същия прозорец
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=སྤྱི་མོས།
|
||||
settings.title=སྒྲིག་འགོད།
|
||||
settings.update=གསར་སྒྱུར་ཡོད།
|
||||
settings.updateAvailable={0} ནི་ད་ལྟ་སྒྲིག་འཇུག་བྱས་པའི་པར་གཞི་ཡིན། པར་གཞི་གསར་པ་ ({1}) ཡོད།
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=མཉེན་ཆས་པར་གཞི།
|
||||
settings.downloadOption.title=ཕབ་ལེན་གདམ་ག་འདེམས་རོགས། (ཡིག་ཆ་རྐྱང་པ་ zip མིན་པའི་ཕབ་ལེན་ཆེད།):
|
||||
settings.downloadOption.1=སྒེའུ་ཁུང་གཅིག་པའི་ནང་ཁ་ཕྱེ།
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Popular
|
||||
settings.title=Opcions
|
||||
settings.update=Actualització Disponible
|
||||
settings.updateAvailable=La versió actual instal·lada és {0}. Una nova versió ({1}) està disponible.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=Versió de l'App:
|
||||
settings.downloadOption.title=Trieu l'opció de descàrrega (per a descàrregues d'un sol fitxer no comprimit):
|
||||
settings.downloadOption.1=Obre en la mateixa finestra
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Oblíbené
|
||||
settings.title=Nastavení
|
||||
settings.update=K dispozici je aktualizace
|
||||
settings.updateAvailable={0} je aktuálně nainstalovaná verze. Je k dispozici nová verze ({1}).
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=Verze aplikace:
|
||||
settings.downloadOption.title=Vyberte možnost stahování (Pro stahování jednoho souboru bez zipu):
|
||||
settings.downloadOption.1=Otevřít ve stejném okně
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Populære
|
||||
settings.title=Indstillinger
|
||||
settings.update=Opdatering tilgængelig
|
||||
settings.updateAvailable={0} er den aktuelt installerede version. En ny version ({1}) er tilgængelig.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=App Version:
|
||||
settings.downloadOption.title=Vælg download mulighed (For enkelt fil ikke-zip downloads):
|
||||
settings.downloadOption.1=Åbn i samme vindue
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Beliebt
|
||||
settings.title=Einstellungen
|
||||
settings.update=Update verfügbar
|
||||
settings.updateAvailable={0} ist die aktuelle installierte Version. Eine neue Version ({1}) ist verfügbar.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=App-Version:
|
||||
settings.downloadOption.title=Download-Option wählen (für einzelne Dateien, die keine Zip-Downloads sind):
|
||||
settings.downloadOption.1=Im selben Fenster öffnen
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Δημοφιλή
|
||||
settings.title=Ρυθμίσεις
|
||||
settings.update=Διαθέσιμη ενημέρωση
|
||||
settings.updateAvailable={0} είναι η τρέχουσα εγκατεστημένη έκδοση. Μια νέα έκδοση ({1}) είναι διαθέσιμη.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=Έκδοση εφαρμογής:
|
||||
settings.downloadOption.title=Επιλογή λήψης (Για μεμονωμένη λήψη αρχείων χωρίς συμπίεση):
|
||||
settings.downloadOption.1=Άνοιγμα στο ίδιο παράθυρο
|
||||
|
@ -601,12 +601,12 @@ rotate.tags=server side
|
||||
|
||||
|
||||
home.imageToPdf.title=Image to PDF
|
||||
home.imageToPdf.desc=Convert a image (PNG, JPEG, GIF) to PDF.
|
||||
imageToPdf.tags=conversion,img,jpg,picture,photo
|
||||
home.imageToPdf.desc=Convert a image (PNG, JPEG, GIF, PSD) to PDF.
|
||||
imageToPdf.tags=conversion,img,jpg,picture,photo,psd,photoshop
|
||||
|
||||
home.pdfToImage.title=PDF to Image
|
||||
home.pdfToImage.desc=Convert a PDF to a image. (PNG, JPEG, GIF)
|
||||
pdfToImage.tags=conversion,img,jpg,picture,photo
|
||||
home.pdfToImage.desc=Convert a PDF to a image. (PNG, JPEG, GIF, PSD)
|
||||
pdfToImage.tags=conversion,img,jpg,picture,photo,psd,photoshop
|
||||
|
||||
home.pdfOrganiser.title=Organise
|
||||
home.pdfOrganiser.desc=Remove/Rearrange pages in any order
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Popular
|
||||
settings.title=Settings
|
||||
settings.update=Update available
|
||||
settings.updateAvailable={0} is the current installed version. A new version ({1}) is available.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=App Version:
|
||||
settings.downloadOption.title=Choose download option (For single file non zip downloads):
|
||||
settings.downloadOption.1=Open in same window
|
||||
@ -569,12 +601,12 @@ rotate.tags=server side
|
||||
|
||||
|
||||
home.imageToPdf.title=Image to PDF
|
||||
home.imageToPdf.desc=Convert a image (PNG, JPEG, GIF) to PDF.
|
||||
imageToPdf.tags=conversion,img,jpg,picture,photo
|
||||
home.imageToPdf.desc=Convert a image (PNG, JPEG, GIF, PSD) to PDF.
|
||||
imageToPdf.tags=conversion,img,jpg,picture,photo,psd,photoshop
|
||||
|
||||
home.pdfToImage.title=PDF to Image
|
||||
home.pdfToImage.desc=Convert a PDF to a image. (PNG, JPEG, GIF)
|
||||
pdfToImage.tags=conversion,img,jpg,picture,photo
|
||||
home.pdfToImage.desc=Convert a PDF to a image. (PNG, JPEG, GIF, PSD)
|
||||
pdfToImage.tags=conversion,img,jpg,picture,photo,psd,photoshop
|
||||
|
||||
home.pdfOrganiser.title=Organize
|
||||
home.pdfOrganiser.desc=Remove/Rearrange pages in any order
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Populares
|
||||
settings.title=Configuración
|
||||
settings.update=Actualización disponible
|
||||
settings.updateAvailable={0} es la versión instalada. Hay disponible una versión nueva ({1}).
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=Versión de la aplicación:
|
||||
settings.downloadOption.title=Elegir la opción de descarga (para descargas de un solo archivo sin ZIP):
|
||||
settings.downloadOption.1=Abrir en la misma ventana
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Popular
|
||||
settings.title=Ezarpenak
|
||||
settings.update=Eguneratze eskuragarria
|
||||
settings.updateAvailable={0} is the current installed version. A new version ({1}) is available.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=Aplikazioaren bertsioa:
|
||||
settings.downloadOption.title=Hautatu deskargatzeko aukera (fitxategi bakarra deskargatzeko ZIP gabe):
|
||||
settings.downloadOption.1=Ireki leiho berean
|
||||
@ -570,11 +602,11 @@ rotate.tags=server side
|
||||
|
||||
home.imageToPdf.title=Irudia PDF bihurtu
|
||||
home.imageToPdf.desc=Irudi bat(PNG, JPEG, GIF)PDF bihurtu
|
||||
imageToPdf.tags=conversion,img,jpg,picture,photo
|
||||
imageToPdf.tags=conversion,img,jpg,picture,photo,psd,photoshop
|
||||
|
||||
home.pdfToImage.title=PDFa irudi bihurtu
|
||||
home.pdfToImage.desc=PDF bat irudi (PNG, JPEG, GIF) bihurtu
|
||||
pdfToImage.tags=conversion,img,jpg,picture,photo
|
||||
pdfToImage.tags=conversion,img,jpg,picture,photo,psd,photoshop
|
||||
|
||||
home.pdfOrganiser.title=Antolatzailea
|
||||
home.pdfOrganiser.desc=Ezabatu/Berrantolatu orrialdeak edozein ordenatan
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=محبوب
|
||||
settings.title=تنظیمات
|
||||
settings.update=بهروزرسانی موجود است
|
||||
settings.updateAvailable={0} نسخه نصب شده فعلی است. یک نسخه جدید ({1}) موجود است.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=نسخه برنامه:
|
||||
settings.downloadOption.title=گزینه دانلود را انتخاب کنید (برای دانلود یک فایل غیر فشرده):
|
||||
settings.downloadOption.1=باز کردن در همان پنجره
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Populaire
|
||||
settings.title=Paramètres
|
||||
settings.update=Mise à jour disponible
|
||||
settings.updateAvailable={0} est la version actuellement installée. Une nouvelle version ({1}) est disponible.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=Version de l'application :
|
||||
settings.downloadOption.title=Choisissez l'option de téléchargement (pour les téléchargements à fichier unique non ZIP) :
|
||||
settings.downloadOption.1=Ouvrir dans la même fenêtre
|
||||
@ -569,7 +601,7 @@ rotate.tags=pivoter,server side,rotate
|
||||
|
||||
|
||||
home.imageToPdf.title=Image en PDF
|
||||
home.imageToPdf.desc=Convertissez une image (PNG, JPEG, GIF) en PDF.
|
||||
home.imageToPdf.desc=Convertissez une image (PNG, JPEG, GIF, PSD) en PDF.
|
||||
imageToPdf.tags=pdf,conversion,img,jpg,image,photo
|
||||
|
||||
home.pdfToImage.title=PDF en image
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Coitianta
|
||||
settings.title=Socruithe
|
||||
settings.update=Nuashonrú ar fáil
|
||||
settings.updateAvailable=Is é {0} an leagan suiteáilte reatha. Tá leagan nua ({1}) ar fáil.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=Leagan Aipe:
|
||||
settings.downloadOption.title=Roghnaigh rogha íoslódála (Le haghaidh íoslódálacha comhad amháin seachas zip):
|
||||
settings.downloadOption.1=Oscail sa bhfuinneog chéanna
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=लोकप्रिय
|
||||
settings.title=सेटिंग्स
|
||||
settings.update=अपडेट उपलब्ध है
|
||||
settings.updateAvailable={0} वर्तमान स्थापित संस्करण है। एक नया संस्करण ({1}) उपलब्ध है।
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=ऐप संस्करण:
|
||||
settings.downloadOption.title=डाउनलोड विकल्प चुनें (एकल फ़ाइल गैर-ज़िप डाउनलोड के लिए):
|
||||
settings.downloadOption.1=उसी विंडो में खोलें
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Popularno
|
||||
settings.title=Postavke
|
||||
settings.update=Dostupno ažuriranje
|
||||
settings.updateAvailable={0} je trenutno instalirana verzija. Dostupna je nova verzija ({1}).
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=Verzija aplikacije:
|
||||
settings.downloadOption.title=Odaberite opciju preuzimanja (Za preuzimanje pojedinačnih datoteka bez zip formata):
|
||||
settings.downloadOption.1=Otvori u istom prozoru
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Népszerű
|
||||
settings.title=Beállítások
|
||||
settings.update=Frissítés elérhető
|
||||
settings.updateAvailable=A jelenlegi telepített verzió: {0}. Új verzió ({1}) érhető el.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Sürgős frissítés érhető el
|
||||
update.updateAvailable=Frissítés érhető el
|
||||
update.modalTitle=Frissítés érhető el
|
||||
update.current=Jelenlegi verzió
|
||||
update.latest=Legújabb verzió
|
||||
update.latestStable=Legújabb stabil verzió
|
||||
update.priority=Fontosság
|
||||
update.recommendedAction=Ajánlott lépés
|
||||
update.breakingChangesDetected=⚠️ Jelentős változások észlelve
|
||||
update.breakingChangesMessage=Ez a frissítés jelentős változásokat tartalmaz. Kérjük, olvassa el az alábbi migrációs útmutatót.
|
||||
update.migrationGuides=Migrációs útmutatók:
|
||||
update.viewGuide=Útmutató megtekintése
|
||||
update.loadingDetailedInfo=Részletes verzióinformációk betöltése folyamatban...
|
||||
update.close=Bezárás
|
||||
update.viewAllReleases=Összes kiadás megtekintése
|
||||
update.downloadLatest=Legújabb verzió letöltése
|
||||
update.availableUpdates=Elérhető frissítések:
|
||||
update.unableToLoadDetails=Nem sikerült betölteni a részletes verzióinformációkat.
|
||||
update.version=Verzió
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=SÜRGETŐ
|
||||
update.priority.normal=NORMÁL
|
||||
update.priority.minor=KISEBB
|
||||
update.priority.low=ALACSONY
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Megszakító változások:
|
||||
update.breakingChangesDefault=Ez a verzió megszakító változásokat tartalmaz
|
||||
update.migrationGuide=Migrációs útmutató
|
||||
settings.appVersion=Alkalmazás verziója:
|
||||
settings.downloadOption.title=Letöltési beállítás (egyetlen fájl, nem tömörített letöltések esetén):
|
||||
settings.downloadOption.1=Megnyitás ugyanabban az ablakban
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Populer
|
||||
settings.title=Pengaturan
|
||||
settings.update=Pembaruan tersedia
|
||||
settings.updateAvailable={0} adalah versi yang terpasang saat ini. Versi baru ({1}) tersedia.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=Versi Aplikasi:
|
||||
settings.downloadOption.title=Pilih opsi unduhan (Untuk unduhan berkas tunggal non zip):
|
||||
settings.downloadOption.1=Buka di jendela yang sama
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Popolare
|
||||
settings.title=Impostazioni
|
||||
settings.update=Aggiornamento disponibile
|
||||
settings.updateAvailable={0} è la versione attualmente installata. Una nuova versione ({1}) è disponibile.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Aggiornamento disponibile
|
||||
update.updateAvailable=Aggiornamento disponibile
|
||||
update.modalTitle=Aggiornamento disponibile
|
||||
update.current=Corrente
|
||||
update.latest=Ultimo
|
||||
update.latestStable=Ultima versione stabile
|
||||
update.priority=Priorità
|
||||
update.recommendedAction=Azione consigliata
|
||||
update.breakingChangesDetected=⚠️ Rilevate modifiche sostanziali
|
||||
update.breakingChangesMessage=Questo aggiornamento contiene modifiche sostanziali. Consulta le guide alla migrazione riportate di seguito.
|
||||
update.migrationGuides=Guide alla migrazione:
|
||||
update.viewGuide=Visualizza la guida
|
||||
update.loadingDetailedInfo=Caricamento delle informazioni dettagliate sulla versione...
|
||||
update.close=Chiudi
|
||||
update.viewAllReleases=Visualizza tutte le versioni
|
||||
update.downloadLatest=Scarica l'ultima
|
||||
update.availableUpdates=Aggiornamenti disponibili:
|
||||
update.unableToLoadDetails=Impossibile caricare informazioni dettagliate sulla versione.
|
||||
update.version=Versione
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENTE
|
||||
update.priority.normal=NORMALE
|
||||
update.priority.minor=MINORE
|
||||
update.priority.low=BASSA
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Modifiche sostanziali:
|
||||
update.breakingChangesDefault=Questa versione contiene modifiche sostanziali
|
||||
update.migrationGuide=Guida alla migrazione
|
||||
settings.appVersion=Versione App:
|
||||
settings.downloadOption.title=Scegli opzione di download (Per file singoli non compressi):
|
||||
settings.downloadOption.1=Apri in questa finestra
|
||||
@ -1664,7 +1696,7 @@ fileChooser.dragAndDrop=Trascina & Rilascia
|
||||
fileChooser.dragAndDropPDF=Trascina & rilascia il file PDF
|
||||
fileChooser.dragAndDropImage=Trascina & rilascia il file immagine
|
||||
fileChooser.hoveredDragAndDrop=Trascina & rilascia i file qui
|
||||
fileChooser.extractPDF=Estraendo...
|
||||
fileChooser.extractPDF=Estrazione...
|
||||
fileChooser.addAttachments=trascina & rilascia gli allegati qui
|
||||
|
||||
#release notes
|
||||
@ -1860,12 +1892,12 @@ editTableOfContents.replaceExisting=Sostituisci i segnalibri esistenti (deselezi
|
||||
editTableOfContents.editorTitle=Editor segnalibri
|
||||
editTableOfContents.editorDesc=Aggiungi e disponi i segnalibri qui sotto. Fai clic su + per aggiungere segnalibri secondari.
|
||||
editTableOfContents.addBookmark=Aggiungi nuovo segnalibro
|
||||
editTableOfContents.importBookmarksDefault=Import
|
||||
editTableOfContents.importBookmarksFromJsonFile=Upload JSON file
|
||||
editTableOfContents.importBookmarksFromClipboard=Paste from clipboard
|
||||
editTableOfContents.exportBookmarksDefault=Export
|
||||
editTableOfContents.exportBookmarksAsJson=Download as JSON
|
||||
editTableOfContents.exportBookmarksAsText=Copy as text
|
||||
editTableOfContents.importBookmarksDefault=Importa
|
||||
editTableOfContents.importBookmarksFromJsonFile=Carica file JSON
|
||||
editTableOfContents.importBookmarksFromClipboard=Incolla dagli appunti
|
||||
editTableOfContents.exportBookmarksDefault=Esporta
|
||||
editTableOfContents.exportBookmarksAsJson=Scarica come JSON
|
||||
editTableOfContents.exportBookmarksAsText=Copia come testo
|
||||
editTableOfContents.desc.1=Questo strumento consente di aggiungere o modificare il sommario (segnalibri) in un documento PDF.
|
||||
editTableOfContents.desc.2=È possibile creare una struttura gerarchica aggiungendo segnalibri secondari a quelli principali.
|
||||
editTableOfContents.desc.3=Ogni segnalibro richiede un titolo e un numero di pagina di destinazione.
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=人気
|
||||
settings.title=設定
|
||||
settings.update=利用可能なアップデート
|
||||
settings.updateAvailable=バージョン {0} がインストールされています。 新しいバージョン ({1}) が利用可能です。
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=Appバージョン:
|
||||
settings.downloadOption.title=ダウンロードオプション(zip以外の単一ファイル):
|
||||
settings.downloadOption.1=同じウィンドウで開く
|
||||
@ -570,11 +602,11 @@ rotate.tags=server side
|
||||
|
||||
home.imageToPdf.title=画像をPDFに変換
|
||||
home.imageToPdf.desc=画像 (PNG, JPEG, GIF) をPDFに変換します。
|
||||
imageToPdf.tags=conversion,img,jpg,picture,photo
|
||||
imageToPdf.tags=conversion,img,jpg,picture,photo,psd,photoshop
|
||||
|
||||
home.pdfToImage.title=PDFを画像に変換
|
||||
home.pdfToImage.desc=PDFを画像 (PNG, JPEG, GIF) に変換します。
|
||||
pdfToImage.tags=conversion,img,jpg,picture,photo
|
||||
pdfToImage.tags=conversion,img,jpg,picture,photo,psd,photoshop
|
||||
|
||||
home.pdfOrganiser.title=整理
|
||||
home.pdfOrganiser.desc=ページの削除/並べ替えします。
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=인기
|
||||
settings.title=설정
|
||||
settings.update=업데이트 가능
|
||||
settings.updateAvailable={0}은(는) 현재 설치된 버전입니다. 새 버전({1})이 사용 가능합니다.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=앱 버전:
|
||||
settings.downloadOption.title=다운로드 옵션 선택 (단일 파일 비압축 다운로드용):
|
||||
settings.downloadOption.1=같은 창에서 열기
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=ജനപ്രിയം
|
||||
settings.title=ക്രമീകരണങ്ങൾ
|
||||
settings.update=അപ്ഡേറ്റ് ലഭ്യമാണ്
|
||||
settings.updateAvailable={0} നിലവിൽ ഇൻസ്റ്റാൾ ചെയ്ത പതിപ്പാണ്. ഒരു പുതിയ പതിപ്പ് ({1}) ലഭ്യമാണ്.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=ആപ്പ് പതിപ്പ്:
|
||||
settings.downloadOption.title=ഡൗൺലോഡ് ഓപ്ഷൻ തിരഞ്ഞെടുക്കുക (സിംഗിൾ ഫയൽ നോൺ-സിപ്പ് ഡൗൺലോഡുകൾക്ക്):
|
||||
settings.downloadOption.1=ഒരേ വിൻഡോയിൽ തുറക്കുക
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Popular
|
||||
settings.title=Instellingen
|
||||
settings.update=Update beschikbaar
|
||||
settings.updateAvailable={0} is de huidig geïnstalleerde versie. Een nieuwe versie ({1}) is beschikbaar.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=App versie:
|
||||
settings.downloadOption.title=Kies download optie (Voor enkelvoudige bestanddownloads zonder zip):
|
||||
settings.downloadOption.1=Open in hetzelfde venster
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Populært
|
||||
settings.title=Innstillinger
|
||||
settings.update=Oppdatering tilgjengelig
|
||||
settings.updateAvailable={0} er den nåværende installerte versjonen. En ny versjon ({1}) er tilgjengelig.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=App Versjon:
|
||||
settings.downloadOption.title=Velg nedlastingsalternativ (For enkeltfil ikke-zip nedlastinger):
|
||||
settings.downloadOption.1=Åpne i samme vindu
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Popularne
|
||||
settings.title=Ustawienia
|
||||
settings.update=Dostępna aktualizacja
|
||||
settings.updateAvailable=Wersja {0} jest obecenia zainstalowana, dostępna jest nowa wersja ({1}).
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=Wersja aplikacji:
|
||||
settings.downloadOption.title=Wybierz opcję pobierania (w przypadku pobierania pojedynczych plików innych niż ZIP):
|
||||
settings.downloadOption.1=Otwórz w tym samym oknie
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Populares
|
||||
settings.title=Configurações
|
||||
settings.update=Atualização disponível
|
||||
settings.updateAvailable={0} é a versão atualmente instalada. Uma nova versão ({1}) está disponível.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=Versão do Aplicativo:
|
||||
settings.downloadOption.title=Escolha a opção de download (para download de arquivo único, não compactados):
|
||||
settings.downloadOption.1=Abrir na mesma janela
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Popular
|
||||
settings.title=Definições
|
||||
settings.update=Atualização disponível
|
||||
settings.updateAvailable={0} é a versão atual instalada. Uma nova versão ({1}) está disponível.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=Versão da Aplicação:
|
||||
settings.downloadOption.title=Escolha a opção de download (Para downloads de ficheiro único não zipado):
|
||||
settings.downloadOption.1=Abrir na mesma janela
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Popular
|
||||
settings.title=Setări
|
||||
settings.update=Actualizare disponibilă
|
||||
settings.updateAvailable={0} este versiunea instalată curent. O nouă versiune ({1}) este disponibilă.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=Versiune aplicație:
|
||||
settings.downloadOption.title=Alege opțiunea de descărcare (pentru descărcarea unui singur fișier non-zip):
|
||||
settings.downloadOption.1=Deschide în aceeași fereastră
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Популярное
|
||||
settings.title=Настройки
|
||||
settings.update=Доступно обновление
|
||||
settings.updateAvailable=Текущая установленная версия - {0}. Доступна новая версия ({1}).
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=Версия приложения:
|
||||
settings.downloadOption.title=Выберите вариант загрузки (для одиночных файлов без архивации):
|
||||
settings.downloadOption.1=Открыть в том же окне
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Popular
|
||||
settings.title=Nastavenia
|
||||
settings.update=Dostupná aktualizácia
|
||||
settings.updateAvailable={0} je aktuálne nainštalovaná verzia. Nová verzia ({1}) je dostupná.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=Verzia aplikácie:
|
||||
settings.downloadOption.title=Vyberte možnosť sťahovania (Pre jednotlivé neskomprimované súbory):
|
||||
settings.downloadOption.1=Otvoriť v rovnakom okne
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Priljubljeno
|
||||
settings.title=Nastavitve
|
||||
settings.update=Na voljo je posodobitev
|
||||
settings.updateAvailable={0} je trenutno nameščena različica. Na voljo je nova različica ({1}).
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=Različica aplikacije:
|
||||
settings.downloadOption.title=Izberi možnost prenosa (za prenose ene datoteke brez zip):
|
||||
settings.downloadOption.1=Odpri v istem oknu
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Popularno
|
||||
settings.title=Podešavanja
|
||||
settings.update=Dostupno ažuriranje
|
||||
settings.updateAvailable={0} je trenutno instalirana verzija. Nova verzija ({1}) je dostupna.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=Verzija aplikacije:
|
||||
settings.downloadOption.title=Odaberi opciju preuzimanja (Za preuzimanje pojedinačnih fajlova bez zip formata):
|
||||
settings.downloadOption.1=Otvori u istom prozoru
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Populära
|
||||
settings.title=Inställningar
|
||||
settings.update=Uppdatering tillgänglig
|
||||
settings.updateAvailable={0} är den aktuella installerade versionen. En ny version ({1}) finns tillgänglig.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=Appversion:
|
||||
settings.downloadOption.title=Välj nedladdningsalternativ (för nedladdning av en fil utan zip):
|
||||
settings.downloadOption.1=Öppnas i samma fönster
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=ยอดนิยม
|
||||
settings.title=การตั้งค่า
|
||||
settings.update=มีการอัปเดต
|
||||
settings.updateAvailable={0} คือเวอร์ชันที่ติดตั้งในปัจจุบัน มีเวอร์ชันใหม่ ({1}) พร้อมให้บริการ
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=เวอร์ชันแอป:
|
||||
settings.downloadOption.title=เลือกตัวเลือกการดาวน์โหลด (สำหรับการดาวน์โหลดไฟล์เดียวที่ไม่ใช่ zip):
|
||||
settings.downloadOption.1=เปิดในหน้าต่างเดียวกัน
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Popular
|
||||
settings.title=Ayarlar
|
||||
settings.update=Güncelleme mevcut
|
||||
settings.updateAvailable={0} mevcut kurulu sürümdür. Yeni bir sürüm ({1}) mevcuttur.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=Uygulama Sürümü:
|
||||
settings.downloadOption.title=İndirme seçeneği seçin (Zip olmayan tek dosya indirmeler için):
|
||||
settings.downloadOption.1=Aynı pencerede aç
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Популярне
|
||||
settings.title=Налаштування
|
||||
settings.update=Доступне оновлення
|
||||
settings.updateAvailable=Зараз встановлена версія {0}. Нова версія ({1}) доступна.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=Версія додатку:
|
||||
settings.downloadOption.title=Виберіть варіант завантаження (для завантаження одного файлу без zip):
|
||||
settings.downloadOption.1=Відкрити в тому ж вікні
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=Popular
|
||||
settings.title=Cài đặt
|
||||
settings.update=Có bản cập nhật
|
||||
settings.updateAvailable={0} là phiên bản hiện tại đã cài đặt. Một phiên bản mới ({1}) đã có sẵn.
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=Phiên bản ứng dụng:
|
||||
settings.downloadOption.title=Chọn tùy chọn tải xuống (Đối với tải xuống tệp đơn không nén):
|
||||
settings.downloadOption.1=Mở trong cùng cửa sổ
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=热门
|
||||
settings.title=设置
|
||||
settings.update=有可用的更新
|
||||
settings.updateAvailable=当前版本为 {0},新版本 ({1}) 可用。
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=应用程序版本:
|
||||
settings.downloadOption.title=选择下载选项(单个文件非压缩文件):
|
||||
settings.downloadOption.1=在同一窗口打开
|
||||
|
@ -366,6 +366,38 @@ navbar.sections.popular=熱門功能
|
||||
settings.title=設定
|
||||
settings.update=有更新可用
|
||||
settings.updateAvailable=目前安裝的版本是 {0}。有新版本({1})可供使用。
|
||||
|
||||
# Update modal and notification strings
|
||||
update.urgentUpdateAvailable=🚨 Update Available
|
||||
update.updateAvailable=Update Available
|
||||
update.modalTitle=Update Available
|
||||
update.current=Current
|
||||
update.latest=Latest
|
||||
update.latestStable=Latest Stable
|
||||
update.priority=Priority
|
||||
update.recommendedAction=Recommended Action
|
||||
update.breakingChangesDetected=⚠️ Breaking Changes Detected
|
||||
update.breakingChangesMessage=This update contains breaking changes. Please review the migration guides below.
|
||||
update.migrationGuides=Migration Guides:
|
||||
update.viewGuide=View Guide
|
||||
update.loadingDetailedInfo=Loading detailed version information...
|
||||
update.close=Close
|
||||
update.viewAllReleases=View All Releases
|
||||
update.downloadLatest=Download Latest
|
||||
update.availableUpdates=Available Updates:
|
||||
update.unableToLoadDetails=Unable to load detailed version information.
|
||||
update.version=Version
|
||||
|
||||
# Update priority levels
|
||||
update.priority.urgent=URGENT
|
||||
update.priority.normal=NORMAL
|
||||
update.priority.minor=MINOR
|
||||
update.priority.low=LOW
|
||||
|
||||
# Breaking changes text
|
||||
update.breakingChanges=Breaking Changes:
|
||||
update.breakingChangesDefault=This version contains breaking changes
|
||||
update.migrationGuide=Migration Guide
|
||||
settings.appVersion=應用程式版本:
|
||||
settings.downloadOption.title=選擇下載選項(適用於單一檔案非壓縮下載):
|
||||
settings.downloadOption.1=在同一視窗中開啟
|
||||
|
@ -336,6 +336,12 @@
|
||||
"moduleLicense": "The BSD License",
|
||||
"moduleLicenseUrl": "https://github.com/haraldk/TwelveMonkeys#license"
|
||||
},
|
||||
{
|
||||
"moduleName": "com.twelvemonkeys.imageio:imageio-psd",
|
||||
"moduleVersion": "3.12.0",
|
||||
"moduleLicense": "The BSD License",
|
||||
"moduleLicenseUrl": "https://github.com/haraldk/TwelveMonkeys#license"
|
||||
},
|
||||
{
|
||||
"moduleName": "com.twelvemonkeys.imageio:imageio-tiff",
|
||||
"moduleVersion": "3.12.0",
|
||||
@ -623,21 +629,21 @@
|
||||
{
|
||||
"moduleName": "io.swagger.core.v3:swagger-annotations-jakarta",
|
||||
"moduleUrl": "https://github.com/swagger-api/swagger-core/modules/swagger-annotations",
|
||||
"moduleVersion": "2.2.34",
|
||||
"moduleVersion": "2.2.35",
|
||||
"moduleLicense": "Apache License, Version 2.0",
|
||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||
},
|
||||
{
|
||||
"moduleName": "io.swagger.core.v3:swagger-core-jakarta",
|
||||
"moduleUrl": "https://github.com/swagger-api/swagger-core/modules/swagger-core",
|
||||
"moduleVersion": "2.2.34",
|
||||
"moduleVersion": "2.2.35",
|
||||
"moduleLicense": "Apache License, Version 2.0",
|
||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||
},
|
||||
{
|
||||
"moduleName": "io.swagger.core.v3:swagger-models-jakarta",
|
||||
"moduleUrl": "https://github.com/swagger-api/swagger-core/modules/swagger-models",
|
||||
"moduleVersion": "2.2.34",
|
||||
"moduleVersion": "2.2.35",
|
||||
"moduleLicense": "Apache License, Version 2.0",
|
||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0"
|
||||
},
|
||||
@ -980,13 +986,13 @@
|
||||
},
|
||||
{
|
||||
"moduleName": "org.commonmark:commonmark",
|
||||
"moduleVersion": "0.25.0",
|
||||
"moduleVersion": "0.25.1",
|
||||
"moduleLicense": "BSD-2-Clause",
|
||||
"moduleLicenseUrl": "https://opensource.org/licenses/BSD-2-Clause"
|
||||
},
|
||||
{
|
||||
"moduleName": "org.commonmark:commonmark-ext-gfm-tables",
|
||||
"moduleVersion": "0.25.0",
|
||||
"moduleVersion": "0.25.1",
|
||||
"moduleLicense": "BSD-2-Clause",
|
||||
"moduleLicenseUrl": "https://opensource.org/licenses/BSD-2-Clause"
|
||||
},
|
||||
|
@ -321,7 +321,7 @@ async function showUpdateModal() {
|
||||
const modalBody = document.getElementById('updateModalBody');
|
||||
if (fullUpdateInfo && fullUpdateInfo.new_versions) {
|
||||
const storedMode = localStorage.getItem("dark-mode");
|
||||
const isDarkMode = storedMode === "on" ||
|
||||
const isDarkMode = storedMode === "on" ||
|
||||
(storedMode === null && window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches);
|
||||
const darkClasses = isDarkMode ? {
|
||||
accordionItem: 'bg-dark border-secondary text-light',
|
||||
|
@ -22,7 +22,7 @@
|
||||
<form id="imageToPDFForm" method="post" enctype="multipart/form-data"
|
||||
th:action="@{'/api/v1/convert/img/pdf'}">
|
||||
<div
|
||||
th:replace="~{fragments/common :: fileSelector(name='fileInput', multipleInputsForSingleRequest=false, accept='image/*', inputText=#{imgPrompt})}">
|
||||
th:replace="~{fragments/common :: fileSelector(name='fileInput', multipleInputsForSingleRequest=false, accept='image/*,.psd', inputText=#{imgPrompt})}">
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label for="fitOption" th:text="#{imageToPDF.selectLabel}">Fit Options</label>
|
||||
|
21
build.gradle
21
build.gradle
@ -58,7 +58,7 @@ repositories {
|
||||
|
||||
allprojects {
|
||||
group = 'stirling.software'
|
||||
version = '1.1.2'
|
||||
version = '1.2.0'
|
||||
|
||||
configurations.configureEach {
|
||||
exclude group: 'commons-logging', module: 'commons-logging'
|
||||
@ -69,7 +69,7 @@ allprojects {
|
||||
tasks.register('writeVersion', WriteProperties) {
|
||||
outputFile = layout.projectDirectory.file('app/common/src/main/resources/version.properties')
|
||||
println "Writing version.properties to ${outputFile.path}"
|
||||
comment "${new Date()}"
|
||||
comment = "${new Date()}"
|
||||
property 'version', project.provider { project.version.toString() }
|
||||
}
|
||||
|
||||
@ -128,6 +128,9 @@ subprojects {
|
||||
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
||||
testRuntimeOnly 'org.mockito:mockito-inline:5.2.0'
|
||||
testRuntimeOnly "org.junit.platform:junit-platform-launcher:$junitPlatformVersion"
|
||||
|
||||
testImplementation platform("com.squareup.okhttp3:okhttp-bom:5.1.0")
|
||||
testImplementation "com.squareup.okhttp3:mockwebserver"
|
||||
}
|
||||
|
||||
tasks.withType(JavaCompile).configureEach {
|
||||
@ -153,6 +156,17 @@ subprojects {
|
||||
}
|
||||
}
|
||||
|
||||
jacocoTestCoverageVerification {
|
||||
dependsOn jacocoTestReport
|
||||
violationRules {
|
||||
rule {
|
||||
limit {
|
||||
minimum = 0.0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.named("processResources") {
|
||||
dependsOn(rootProject.tasks.writeVersion)
|
||||
}
|
||||
@ -569,6 +583,9 @@ dependencies {
|
||||
|
||||
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
||||
testRuntimeOnly "org.junit.platform:junit-platform-launcher:$junitPlatformVersion"
|
||||
|
||||
testImplementation platform("com.squareup.okhttp3:okhttp-bom:5.1.0")
|
||||
testImplementation "com.squareup.okhttp3:mockwebserver"
|
||||
}
|
||||
|
||||
tasks.named("test") {
|
||||
|
Loading…
Reference in New Issue
Block a user