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 !\