use of org.languagetool.Language in project languagetool by languagetool-org.
the class Example method main.
public static void main(String[] args) throws IOException {
List<Language> realLanguages = Languages.get();
System.out.println("This example will test a short string with all languages known to LanguageTool.");
System.out.println("It's just a test to make sure there's at least no crash.");
System.out.println("Using LanguageTool " + JLanguageTool.VERSION + " (" + JLanguageTool.BUILD_DATE + ")");
System.out.println("Supported languages: " + realLanguages.size());
for (Language language : realLanguages) {
JLanguageTool langTool = new JLanguageTool(language);
String input = "And the the";
List<RuleMatch> result = langTool.check(input);
System.out.println("Checking '" + input + "' with " + language + ":");
for (RuleMatch ruleMatch : result) {
System.out.println(" " + ruleMatch);
}
}
}
use of org.languagetool.Language in project languagetool by languagetool-org.
the class Main method createGUI.
private void createGUI() {
loadRecentFiles();
frame = new JFrame("LanguageTool " + JLanguageTool.VERSION);
setLookAndFeel();
openAction = new OpenAction();
saveAction = new SaveAction();
saveAsAction = new SaveAsAction();
checkAction = new CheckAction();
autoCheckAction = new AutoCheckAction(true);
showResultAction = new ShowResultAction(true);
frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
frame.addWindowListener(new CloseListener());
URL iconUrl = JLanguageTool.getDataBroker().getFromResourceDirAsUrl(TRAY_ICON);
frame.setIconImage(new ImageIcon(iconUrl).getImage());
textArea = new JTextArea();
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
textArea.addKeyListener(new ControlReturnTextCheckingListener());
resultArea = new JTextPane();
undoRedo = new UndoRedoSupport(this.textArea, messages);
frame.setJMenuBar(createMenuBar());
GridBagConstraints buttonCons = new GridBagConstraints();
JPanel insidePanel = new JPanel();
insidePanel.setOpaque(false);
insidePanel.setLayout(new GridBagLayout());
buttonCons.gridx = 0;
buttonCons.gridy = 0;
buttonCons.anchor = GridBagConstraints.LINE_START;
insidePanel.add(new JLabel(messages.getString("textLanguage") + " "), buttonCons);
//create a ComboBox with flags, do not include hidden languages
languageBox = LanguageComboBox.create(messages, EXTERNAL_LANGUAGE_SUFFIX, true, false);
buttonCons.gridx = 1;
buttonCons.gridy = 0;
buttonCons.anchor = GridBagConstraints.LINE_START;
insidePanel.add(languageBox, buttonCons);
JCheckBox autoDetectBox = new JCheckBox(messages.getString("atd"));
buttonCons.gridx = 2;
buttonCons.gridy = 0;
buttonCons.gridwidth = GridBagConstraints.REMAINDER;
buttonCons.anchor = GridBagConstraints.LINE_START;
insidePanel.add(autoDetectBox, buttonCons);
buttonCons.gridx = 0;
buttonCons.gridy = 1;
buttonCons.gridwidth = GridBagConstraints.REMAINDER;
buttonCons.fill = GridBagConstraints.HORIZONTAL;
buttonCons.anchor = GridBagConstraints.LINE_END;
buttonCons.weightx = 1.0;
insidePanel.add(statusLabel, buttonCons);
Container contentPane = frame.getContentPane();
GridBagLayout gridLayout = new GridBagLayout();
contentPane.setLayout(gridLayout);
GridBagConstraints cons = new GridBagConstraints();
cons.gridx = 0;
cons.gridy = 1;
cons.fill = GridBagConstraints.HORIZONTAL;
cons.anchor = GridBagConstraints.FIRST_LINE_START;
JToolBar toolbar = new JToolBar("Toolbar", JToolBar.HORIZONTAL);
toolbar.setFloatable(false);
contentPane.add(toolbar, cons);
JButton openButton = new JButton(openAction);
openButton.setHideActionText(true);
openButton.setFocusable(false);
toolbar.add(openButton);
JButton saveButton = new JButton(saveAction);
saveButton.setHideActionText(true);
saveButton.setFocusable(false);
toolbar.add(saveButton);
JButton saveAsButton = new JButton(saveAsAction);
saveAsButton.setHideActionText(true);
saveAsButton.setFocusable(false);
toolbar.add(saveAsButton);
JButton spellButton = new JButton(this.checkAction);
spellButton.setHideActionText(true);
spellButton.setFocusable(false);
toolbar.add(spellButton);
JToggleButton autoSpellButton = new JToggleButton(autoCheckAction);
autoSpellButton.setHideActionText(true);
autoSpellButton.setFocusable(false);
toolbar.add(autoSpellButton);
JButton clearTextButton = new JButton(new ClearTextAction());
clearTextButton.setHideActionText(true);
clearTextButton.setFocusable(false);
toolbar.add(clearTextButton);
cons.insets = new Insets(5, 5, 5, 5);
cons.fill = GridBagConstraints.BOTH;
cons.weightx = 10.0f;
cons.weighty = 10.0f;
cons.gridx = 0;
cons.gridy = 2;
cons.weighty = 5.0f;
splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, new JScrollPane(textArea), new JScrollPane(resultArea));
mainPanel.setLayout(new GridLayout(0, 1));
contentPane.add(mainPanel, cons);
mainPanel.add(splitPane);
cons.fill = GridBagConstraints.HORIZONTAL;
cons.gridx = 0;
cons.gridy = 3;
cons.weightx = 1.0f;
cons.weighty = 0.0f;
cons.insets = new Insets(4, 12, 4, 12);
contentPane.add(insidePanel, cons);
ltSupport = new LanguageToolSupport(this.frame, this.textArea, this.undoRedo);
ResultAreaHelper.install(messages, ltSupport, resultArea);
languageBox.selectLanguage(ltSupport.getLanguage());
languageBox.setEnabled(!ltSupport.getConfig().getAutoDetect());
autoDetectBox.setSelected(ltSupport.getConfig().getAutoDetect());
taggerShowsDisambigLog = ltSupport.getConfig().getTaggerShowsDisambigLog();
languageBox.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
// we cannot re-use the existing LT object anymore
frame.applyComponentOrientation(ComponentOrientation.getOrientation(Locale.getDefault()));
Language lang = languageBox.getSelectedLanguage();
ComponentOrientation componentOrientation = ComponentOrientation.getOrientation(lang.getLocale());
textArea.applyComponentOrientation(componentOrientation);
resultArea.applyComponentOrientation(componentOrientation);
ltSupport.setLanguage(lang);
}
}
});
autoDetectBox.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
boolean selected = e.getStateChange() == ItemEvent.SELECTED;
languageBox.setEnabled(!selected);
ltSupport.getConfig().setAutoDetect(selected);
if (selected) {
Language detected = ltSupport.autoDetectLanguage(textArea.getText());
languageBox.selectLanguage(detected);
}
}
});
ltSupport.addLanguageToolListener(new LanguageToolListener() {
@Override
public void languageToolEventOccurred(LanguageToolEvent event) {
if (event.getType() == LanguageToolEvent.Type.CHECKING_STARTED) {
String msg = org.languagetool.tools.Tools.i18n(messages, "checkStart");
statusLabel.setText(msg);
if (event.getCaller() == getFrame()) {
setWaitCursor();
checkAction.setEnabled(false);
}
} else if (event.getType() == LanguageToolEvent.Type.CHECKING_FINISHED) {
if (event.getCaller() == getFrame()) {
checkAction.setEnabled(true);
unsetWaitCursor();
}
String msg = org.languagetool.tools.Tools.i18n(messages, "checkDone", event.getSource().getMatches().size(), event.getElapsedTime());
statusLabel.setText(msg);
} else if (event.getType() == LanguageToolEvent.Type.LANGUAGE_CHANGED) {
languageBox.selectLanguage(ltSupport.getLanguage());
} else if (event.getType() == LanguageToolEvent.Type.RULE_ENABLED) {
//this will trigger a check and the result will be updated by
//the CHECKING_FINISHED event
} else if (event.getType() == LanguageToolEvent.Type.RULE_DISABLED) {
String msg = org.languagetool.tools.Tools.i18n(messages, "checkDoneNoTime", event.getSource().getMatches().size());
statusLabel.setText(msg);
}
}
});
frame.applyComponentOrientation(ComponentOrientation.getOrientation(Locale.getDefault()));
Language lang = ltSupport.getLanguage();
ComponentOrientation componentOrientation = ComponentOrientation.getOrientation(lang.getLocale());
textArea.applyComponentOrientation(componentOrientation);
resultArea.applyComponentOrientation(componentOrientation);
ResourceBundle textLanguageMessageBundle = JLanguageTool.getMessageBundle(ltSupport.getLanguage());
textArea.setText(textLanguageMessageBundle.getString("guiDemoText"));
Configuration config = ltSupport.getConfig();
if (config.getFontName() != null || config.getFontStyle() != Configuration.FONT_STYLE_INVALID || config.getFontSize() != Configuration.FONT_SIZE_INVALID) {
String fontName = config.getFontName();
if (fontName == null) {
fontName = textArea.getFont().getFamily();
}
int fontSize = config.getFontSize();
if (fontSize == Configuration.FONT_SIZE_INVALID) {
fontSize = textArea.getFont().getSize();
}
Font font = new Font(fontName, config.getFontStyle(), fontSize);
textArea.setFont(font);
}
frame.pack();
frame.setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
frame.setLocationByPlatform(true);
splitPane.setDividerLocation(200);
MainWindowStateBean state = localStorage.loadProperty("gui.state", MainWindowStateBean.class);
if (state != null) {
if (state.getBounds() != null) {
frame.setBounds(state.getBounds());
ResizeComponentListener.setBoundsProperty(frame, state.getBounds());
}
if (state.getDividerLocation() != null) {
splitPane.setDividerLocation(state.getDividerLocation());
}
if (state.getState() != null) {
frame.setExtendedState(state.getState());
}
}
ResizeComponentListener.attachToWindow(frame);
maybeStartServer();
}
use of org.languagetool.Language in project languagetool by languagetool-org.
the class ResultAreaHelper method languageToolEventOccurred.
@Override
public void languageToolEventOccurred(LanguageToolEvent event) {
if (event.getType() == LanguageToolEvent.Type.CHECKING_STARTED) {
Language lang = ltSupport.getLanguage();
String langName;
if (lang.isExternal()) {
langName = lang.getTranslatedName(messages) + Main.EXTERNAL_LANGUAGE_SUFFIX;
} else {
langName = lang.getTranslatedName(messages);
}
String msg = org.languagetool.tools.Tools.i18n(messages, "startChecking", langName) + "...";
setHeader(msg);
setMain(EMPTY_PARA);
if (event.getCaller() == this) {
statusPane.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
}
} else if (event.getType() == LanguageToolEvent.Type.CHECKING_FINISHED) {
setRunTime(event.getElapsedTime());
String inputText = event.getSource().getTextComponent().getText();
displayResult(inputText, event.getSource().getMatches());
if (event.getCaller() == this) {
statusPane.setCursor(Cursor.getDefaultCursor());
}
} else if (event.getType() == LanguageToolEvent.Type.RULE_DISABLED || event.getType() == LanguageToolEvent.Type.RULE_ENABLED) {
String inputText = event.getSource().getTextComponent().getText();
displayResult(inputText, event.getSource().getMatches());
}
}
use of org.languagetool.Language in project languagetool by languagetool-org.
the class SynthDictionaryBuilderTest method testExportPosDictAndCreateSynth.
@Test
@Ignore("for interactive use only")
public void testExportPosDictAndCreateSynth() throws Exception {
for (Language language : Languages.get()) {
String langCode = language.getShortCode();
File dir = new File("./languagetool-language-modules/" + langCode + "/src/main/resources/org/languagetool/resource/" + langCode);
File oldBinarySynthFile = new File(dir, language.getName().toLowerCase() + "_synth.dict");
if (!oldBinarySynthFile.exists()) {
System.out.println("Ignoring " + language + ", no synth file found");
continue;
}
File oldBinaryFile = new File(dir, language.getName().toLowerCase() + ".dict");
File infoFile = new File(dir, language.getName().toLowerCase() + "_synth.info");
File exportFile = exportDictionaryContents(oldBinaryFile);
if (exportFile.length() == 0) {
System.out.println("Zero-size output for " + language + ", skipping dictionary generation");
exportFile.delete();
continue;
}
SynthDictionaryBuilder builder = new SynthDictionaryBuilder(infoFile);
File newBinarySynthFile = builder.build(exportFile, infoFile);
exportFile.delete();
System.out.println(language + " old binary file size: " + oldBinarySynthFile.length() + " bytes (" + oldBinarySynthFile.getName() + ")");
System.out.println(language + " new binary file size: " + newBinarySynthFile.length() + " bytes (" + newBinarySynthFile.getAbsolutePath() + ")");
// comment in to copy the new files over the old ones:
/*boolean b = newBinarySynthFile.renameTo(oldBinarySynthFile);
if (!b) {
throw new RuntimeException("Could not rename " + newBinarySynthFile.getAbsolutePath() + " to " + oldBinarySynthFile.getCanonicalPath());
}*/
System.out.println("");
}
}
use of org.languagetool.Language in project languagetool by languagetool-org.
the class LanguageManagerDialog method getLanguages.
/**
* Return all external Languages.
*/
List<Language> getLanguages() throws IllegalAccessException, InstantiationException {
List<Language> languages = new ArrayList<>();
for (File ruleFile : ruleFiles) {
if (ruleFile != null) {
Language newLanguage = LanguageBuilder.makeAdditionalLanguage(ruleFile);
languages.add(newLanguage);
}
}
return languages;
}
Aggregations