diff --git a/app/src/main/java/org/audiveris/omr/Main.java b/app/src/main/java/org/audiveris/omr/Main.java index acb808f91..c13d005cc 100644 --- a/app/src/main/java/org/audiveris/omr/Main.java +++ b/app/src/main/java/org/audiveris/omr/Main.java @@ -28,6 +28,7 @@ import org.audiveris.omr.constant.ConstantSet; import org.audiveris.omr.log.LogUtil; import org.audiveris.omr.sheet.BookManager; +import org.audiveris.omr.text.tesseract.Languages; import org.audiveris.omr.text.tesseract.TesseractOCR; import org.audiveris.omr.ui.MainGui; import org.audiveris.omr.ui.symbol.MusicFont; @@ -249,6 +250,9 @@ public static void main (String[] args) // Fix for issue #562: Disable this check when running in batch mode. ///Versions.considerPolling(); + // Check OCR languages + Languages.getInstance().checkSupport(); + // Check MusicFont is loaded MusicFont.checkMusicFont(); diff --git a/app/src/main/java/org/audiveris/omr/text/tesseract/Languages.java b/app/src/main/java/org/audiveris/omr/text/tesseract/Languages.java index eabd3d262..b0c603621 100644 --- a/app/src/main/java/org/audiveris/omr/text/tesseract/Languages.java +++ b/app/src/main/java/org/audiveris/omr/text/tesseract/Languages.java @@ -95,7 +95,7 @@ public class Languages //~ Instance fields ---------------------------------------------------------------------------- /** Component resources. */ - private final ResourceMap resources; + private ResourceMap resources; /** Remote data (languages, codes). */ private RemoteData remoteData; @@ -103,16 +103,6 @@ public class Languages /** The user interface to browse, select and install languages. */ private Selector selector; - //~ Constructors ------------------------------------------------------------------------------- - - /** - * Creates a new Languages object. - */ - public Languages () - { - resources = Application.getInstance().getContext().getResourceMap(getClass()); - } - //~ Methods ------------------------------------------------------------------------------------ //---------------// @@ -148,17 +138,19 @@ public void checkSupport () logger.info( "Installed OCR languages: {}", installed.stream().collect(Collectors.joining(","))); + } else if (OMR.gui == null) { + logger.warn("*** No installed OCR languages ***"); } else { // Prompt user - final String install = resources.getString("Check.install"); - final String later = resources.getString("Check.later"); + final String install = getResources().getString("Check.install"); + final String later = getResources().getString("Check.later"); final Object[] options = { install, later }; - final String message = resources.getString("Check.message"); + final String message = getResources().getString("Check.message"); final int choice = JOptionPane.showOptionDialog( OMR.gui.getFrame(), message, - resources.getString("Check.title"), + getResources().getString("Check.title"), JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, @@ -237,6 +229,18 @@ private RemoteData getRemoteData () return remoteData; } + //--------------// + // getResources // + //--------------// + private ResourceMap getResources () + { + if (resources == null) { + resources = Application.getInstance().getContext().getResourceMap(getClass()); + } + + return resources; + } + //-------------// // getSelector // //-------------// @@ -281,7 +285,7 @@ private class DownloadRemoteTask { DownloadRemoteTask () { - super(OmrGui.getApplication(), resources.getString("downloadTask.message")); + super(OmrGui.getApplication(), getResources().getString("downloadTask.message")); } @Override @@ -363,7 +367,7 @@ public class Selector { private final JDialog dialog; - private final String boxTip = resources.getString("box.shortDescription"); + private final String boxTip = getResources().getString("box.shortDescription"); /** * Creates a new Selector object. @@ -379,9 +383,9 @@ public Selector () framePane.add(new JScrollPane(defineLayout())); - // Closing (via close button) + // Closing (via exit button) JButton button = new JButton(); - button.setName("closeButton"); + button.setName("exitButton"); button.setAlignmentX(CENTER_ALIGNMENT); button.addActionListener(this); framePane.add(button); @@ -396,7 +400,7 @@ public void windowClosing (WindowEvent e) } }); - resources.injectComponents(dialog); + getResources().injectComponents(dialog); dialog.pack(); } diff --git a/app/src/main/java/org/audiveris/omr/text/tesseract/resources/Languages.properties b/app/src/main/java/org/audiveris/omr/text/tesseract/resources/Languages.properties index 78b545365..1a642aec4 100644 --- a/app/src/main/java/org/audiveris/omr/text/tesseract/resources/Languages.properties +++ b/app/src/main/java/org/audiveris/omr/text/tesseract/resources/Languages.properties @@ -17,7 +17,7 @@ LanguagesFrame.title = Installation of OCR languages downloadTask.message = Collecting languages from Tesseract site... box.shortDescription = Tick this box to install the language on-the-fly -closeButton.text = Close +exitButton.text = Exit Check.title = OCR languages Check.message = Your collection of languages is empty!\ diff --git a/app/src/main/java/org/audiveris/omr/text/tesseract/resources/Languages_fr.properties b/app/src/main/java/org/audiveris/omr/text/tesseract/resources/Languages_fr.properties index a3285fb55..1554e0bf8 100644 --- a/app/src/main/java/org/audiveris/omr/text/tesseract/resources/Languages_fr.properties +++ b/app/src/main/java/org/audiveris/omr/text/tesseract/resources/Languages_fr.properties @@ -17,7 +17,7 @@ LanguagesFrame.title = Installation de langues OCR downloadTask.message = Collecte des langues en cours box.shortDescription = Cochez cette case pour installer la langue \u00e0 la vol\u00e9e -closeButton.text = Fermer +exitButton.text = Exit Check.title = Langues OCR Check.message = Votre collection de langues est vide !\