Entpacken (zum Laden) der Sprachdatei beim Start implementiert
This commit is contained in:
@@ -1,10 +1,15 @@
|
||||
package de.srsoftware.belegscanner;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import de.srsoftware.belegscanner.gui.MainFrame;
|
||||
import de.srsoftware.tools.translations.Translation;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
* Application to scan receipts : entry point
|
||||
*
|
||||
@@ -12,14 +17,30 @@ import de.srsoftware.tools.translations.Translation;
|
||||
*
|
||||
*/
|
||||
public class Application {
|
||||
private static String locale = Locale.getDefault().getLanguage().toLowerCase();
|
||||
|
||||
public static void main(String[] args) throws IOException {
|
||||
extractTranslation();
|
||||
Configuration config = new Configuration(Constants.APPLICATION_NAME);
|
||||
MainFrame app = new MainFrame(config);
|
||||
app.setDefaultCloseOperation(MainFrame.EXIT_ON_CLOSE);
|
||||
app.checkDependencies();
|
||||
}
|
||||
|
||||
|
||||
private static void extractTranslation() throws IOException {
|
||||
var name = String.join(".", Application.class.getSimpleName(), locale, "translation");
|
||||
var path = String.join("/", "", "translations", name);
|
||||
URL res = Application.class.getResource(path);
|
||||
if (res != null && res.toString().contains("jar!")) try {
|
||||
var outFile = new File(Application.class.getProtectionDomain().getCodeSource().getLocation().toURI()).getParentFile().toPath().resolve(name).toFile();
|
||||
try (var translation = res.openStream(); var file = new FileOutputStream(outFile)) {
|
||||
translation.transferTo(file);
|
||||
}
|
||||
} catch (URISyntaxException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Translate a text.
|
||||
* @param txt the text to be translated.
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
package de.srsoftware.belegscanner;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
@@ -8,11 +13,6 @@ import java.io.IOException;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
*
|
||||
* JSON-based Configuration manager for the Application.
|
||||
|
||||
@@ -22,8 +22,6 @@ import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
@@ -32,8 +30,6 @@ import java.util.Vector;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static de.srsoftware.belegscanner.Application.t;
|
||||
import static de.srsoftware.belegscanner.Constants.DEFAULT_HEIGHT;
|
||||
import static de.srsoftware.belegscanner.Constants.DEFAULT_WIDTH;
|
||||
import static de.srsoftware.belegscanner.Constants.JPG;
|
||||
import static de.srsoftware.belegscanner.Constants.OCR;
|
||||
import static de.srsoftware.belegscanner.Constants.PDF;
|
||||
|
||||
@@ -1,7 +1,14 @@
|
||||
package de.srsoftware.belegscanner.gui;
|
||||
|
||||
import static de.srsoftware.belegscanner.Application.t;
|
||||
import de.srsoftware.belegscanner.Worker;
|
||||
import de.srsoftware.belegscanner.listeners.ProjectListener;
|
||||
import de.srsoftware.belegscanner.model.ScanProject;
|
||||
import de.srsoftware.belegscanner.model.api.Project;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.border.MatteBorder;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.io.FilenameFilter;
|
||||
@@ -10,15 +17,7 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.border.MatteBorder;
|
||||
|
||||
import de.srsoftware.belegscanner.Worker;
|
||||
import de.srsoftware.belegscanner.listeners.ProjectListener;
|
||||
import de.srsoftware.belegscanner.model.ScanProject;
|
||||
import de.srsoftware.belegscanner.model.api.Project;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import static de.srsoftware.belegscanner.Application.t;
|
||||
|
||||
/**
|
||||
*
|
||||
|
||||
@@ -12,10 +12,8 @@ import java.awt.event.KeyEvent;
|
||||
import static de.srsoftware.belegscanner.Application.t;
|
||||
import static de.srsoftware.belegscanner.Constants.DEFAULT_HEIGHT;
|
||||
import static de.srsoftware.belegscanner.Constants.DEFAULT_WIDTH;
|
||||
import static java.awt.BorderLayout.CENTER;
|
||||
import static java.awt.BorderLayout.NORTH;
|
||||
import static java.awt.BorderLayout.SOUTH;
|
||||
import static java.awt.BorderLayout.WEST;
|
||||
import static javax.swing.BoxLayout.X_AXIS;
|
||||
import static javax.swing.BoxLayout.Y_AXIS;
|
||||
|
||||
|
||||
@@ -8,7 +8,6 @@ import org.icepdf.ri.common.views.DocumentViewController;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.nio.file.Path;
|
||||
|
||||
public class Preview extends JPanel {
|
||||
private final SwingController pdfViewer;
|
||||
|
||||
@@ -4,8 +4,8 @@ import de.srsoftware.belegscanner.Worker;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static de.srsoftware.belegscanner.Application.t;
|
||||
import static java.awt.BorderLayout.CENTER;
|
||||
|
||||
@@ -3,14 +3,13 @@ package de.srsoftware.belegscanner.gui;
|
||||
import de.srsoftware.belegscanner.Worker;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.List;
|
||||
import java.awt.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static de.srsoftware.belegscanner.Application.t;
|
||||
import static java.awt.BorderLayout.CENTER;
|
||||
import static java.awt.BorderLayout.NORTH;
|
||||
import static java.awt.BorderLayout.WEST;
|
||||
|
||||
public class RotationSelector extends JPanel {
|
||||
|
||||
|
||||
@@ -1,21 +1,17 @@
|
||||
package de.srsoftware.belegscanner.gui;
|
||||
|
||||
import java.awt.Desktop;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.swing.BoxLayout;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.border.EmptyBorder;
|
||||
|
||||
import de.srsoftware.belegscanner.Application;
|
||||
import de.srsoftware.belegscanner.Worker;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import de.srsoftware.belegscanner.Application;
|
||||
import javax.swing.*;
|
||||
import javax.swing.border.EmptyBorder;
|
||||
import java.awt.*;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* Simple status barwith updateable text.
|
||||
|
||||
@@ -1,24 +1,21 @@
|
||||
package de.srsoftware.belegscanner.gui;
|
||||
|
||||
import java.awt.Component;
|
||||
import java.awt.Dimension;
|
||||
import de.srsoftware.belegscanner.Worker;
|
||||
import de.srsoftware.tools.gui.DateChooser;
|
||||
import de.srsoftware.tools.gui.SelectComboBox;
|
||||
import org.json.JSONObject;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.border.EmptyBorder;
|
||||
import java.awt.*;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Vector;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.border.EmptyBorder;
|
||||
|
||||
import de.srsoftware.belegscanner.Worker;
|
||||
import org.json.JSONObject;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import de.srsoftware.tools.gui.DateChooser;
|
||||
import de.srsoftware.tools.gui.SelectComboBox;
|
||||
|
||||
import static de.srsoftware.belegscanner.Application.*;
|
||||
import static de.srsoftware.belegscanner.Application.t;
|
||||
import static javax.swing.BoxLayout.X_AXIS;
|
||||
import static javax.swing.BoxLayout.Y_AXIS;
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package de.srsoftware.belegscanner.gui;
|
||||
|
||||
import de.srsoftware.belegscanner.Configuration;
|
||||
import de.srsoftware.belegscanner.Worker;
|
||||
|
||||
import javax.swing.*;
|
||||
@@ -9,13 +8,11 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static de.srsoftware.belegscanner.Application.t;
|
||||
import static de.srsoftware.belegscanner.Constants.CONFIG_TARGET;
|
||||
import static de.srsoftware.belegscanner.Constants.JPG;
|
||||
import static de.srsoftware.belegscanner.Constants.OCR;
|
||||
import static de.srsoftware.belegscanner.Constants.PDF;
|
||||
import static java.awt.BorderLayout.CENTER;
|
||||
import static java.awt.BorderLayout.NORTH;
|
||||
import static java.awt.BorderLayout.WEST;
|
||||
import static javax.swing.BoxLayout.X_AXIS;
|
||||
|
||||
public class TypeSelector extends JPanel {
|
||||
|
||||
28
src/main/resources/logback.xml
Normal file
28
src/main/resources/logback.xml
Normal file
@@ -0,0 +1,28 @@
|
||||
<configuration scan="true" scanPeriod="30 seconds" debug="true">
|
||||
<!-- scan="true" enables automatic updates if config file changes, see http://logback.qos.ch/manual/configuration.html -->
|
||||
|
||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<layout class="ch.qos.logback.classic.PatternLayout">
|
||||
<Pattern>
|
||||
%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n
|
||||
</Pattern>
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
<logger name="de.srsoftware.belegscanner.gui" level="info" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
|
||||
<logger name="de.srsoftware.belegscanner.gui.MainFrame" level="debug" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
|
||||
<logger name="de.srsoftware.belegscanner.Configuration" level="debug" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</logger>
|
||||
|
||||
<root level="error">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</root>
|
||||
|
||||
</configuration>
|
||||
58
src/main/resources/translations/Application.de.translation
Normal file
58
src/main/resources/translations/Application.de.translation
Normal file
@@ -0,0 +1,58 @@
|
||||
Actions : Aktionen
|
||||
Adjusting brightness… : Helligkeitskorrektur…
|
||||
Adjustments : Verbesserungen
|
||||
Apps missing : Anwendungen fehlen
|
||||
Profile : Profil
|
||||
PROFILE : PROFIL
|
||||
Click here to open directory : Hier klicken, um das Verzeichnis zu öffnen
|
||||
Configuration problem : Konfigurations-Problem
|
||||
Conversion failed. : Konvertierung fehlgeschlagen.
|
||||
Converting to PDF… : Kovertiere zu PDF…
|
||||
current resolution : aktuelle Auflösung
|
||||
DAY : TAG
|
||||
December : Dezember
|
||||
Directory : Ordner
|
||||
display preview : Vorschau anzeigen
|
||||
drop file : Datei löschen
|
||||
done : fertig
|
||||
Error code\: {} for {} : Fehlercode: {} für {}
|
||||
February : Februar
|
||||
File "{}" does already exist and would be overwritten. Continue? : Die Datei „{}“ existiert bereits. Soll sie überschrieben werden?
|
||||
Finished text recognition. : Texterkennung beendet.
|
||||
German language support missing! : Unterstützung für deutsche Sprache fehlt!
|
||||
Height : Höhe
|
||||
help : Hilfe
|
||||
Improve brightness : Helligkeit verbessern
|
||||
January : Januar
|
||||
Joining PDFs… : Verbinde PDFs…
|
||||
join PDFs : PDFs zusammenführen
|
||||
July : Juli
|
||||
Language support : Sprach-Unterstützung
|
||||
May : Mai
|
||||
March : März
|
||||
MONTH : MONAT
|
||||
Month : Monat
|
||||
month : monat
|
||||
OCR failed. : OCR fehlgeschlagen.
|
||||
October : Oktober
|
||||
open folder : Ordner öffnen
|
||||
Overwrite file : Datei überschreiben
|
||||
PAGE : SEITE
|
||||
Path '{}' does not exist! : Pfad '{}' existiert nicht!
|
||||
Path : Pfad
|
||||
Please install the package : Bitte installiere das Paket
|
||||
Please remove the line<br/><br/>policy<br/><br/>from 'file'. : Bitte entferne die Zeile<br/><br/>policy<br/><br/> aus 'file'.
|
||||
PDFs joined. : Zusammengefügt.
|
||||
Press Shift + Delete to remove an entry. : Drücken Sie Umschalt + Entf um einen Eintrag zu löschen
|
||||
Remove [PAGE] when stitching : [Seite] beim Zusammenfügen entfernen
|
||||
Scan failed. : Scannen fehlgeschlagen.
|
||||
Scanning… : Scanne…
|
||||
scan! : scannen!
|
||||
State : Status
|
||||
Target type : Zieltyp
|
||||
{} terminated\: : {} abgebrochen:
|
||||
Text recognition… : Texterkennung…
|
||||
This application requires the following helper commands to be installed\: : Diese Anwendung erfordert es, dass auch die folgenden Hilfsprogramme installiert sind:
|
||||
Width : Breite
|
||||
YEAR : JAHR
|
||||
Your ImageMagick configuration prohibits conversion of jpg to pdf! : Deine ImageMagick-Konfiguration verbietet die Umwandlung von jpg zu PDF!
|
||||
12
src/main/resources/translations/DateChooser.de.translation
Normal file
12
src/main/resources/translations/DateChooser.de.translation
Normal file
@@ -0,0 +1,12 @@
|
||||
December : Dezember
|
||||
February : Februar
|
||||
January : Januar
|
||||
July : Juli
|
||||
June : Juni
|
||||
March : März
|
||||
May : Mai
|
||||
October : Oktober
|
||||
Su : So
|
||||
Th : Do
|
||||
Tu : Di
|
||||
We : Mi
|
||||
Reference in New Issue
Block a user