Search in sources :

Example 1 with SourceTextEntry

use of org.omegat.core.data.SourceTextEntry in project omegat by omegat-org.

the class Searcher method searchProject.

private void searchProject() {
    // reset the number of search hits
    m_numFinds = 0;
    // search the Memory, if requested
    if (m_searchExpression.memory) {
        // search through all project entries
        IProject dataEngine = m_project;
        for (int i = 0; i < m_project.getAllEntries().size(); i++) {
            // stop searching if the max. nr of hits has been reached
            if (m_numFinds >= expression.numberOfResults) {
                return;
            }
            // get the source and translation of the next entry
            SourceTextEntry ste = dataEngine.getAllEntries().get(i);
            TMXEntry te = m_project.getTranslationInfo(ste);
            checkEntry(ste.getSrcText(), te.translation, te.note, ste.getComment(), te, i, null);
            checkStop.checkInterrupted();
        }
        // search in orphaned
        if (!m_searchExpression.excludeOrphans) {
            m_project.iterateByDefaultTranslations(new IProject.DefaultTranslationsIterator() {

                final String file = OStrings.getString("CT_ORPHAN_STRINGS");

                public void iterate(String source, TMXEntry en) {
                    // stop searching if the max. nr of hits has been reached
                    if (m_numFinds >= expression.numberOfResults) {
                        return;
                    }
                    checkStop.checkInterrupted();
                    if (m_project.isOrphaned(source)) {
                        checkEntry(en.source, en.translation, en.note, null, en, ENTRY_ORIGIN_ORPHAN, file);
                    }
                }
            });
            m_project.iterateByMultipleTranslations(new IProject.MultipleTranslationsIterator() {

                final String file = OStrings.getString("CT_ORPHAN_STRINGS");

                public void iterate(EntryKey source, TMXEntry en) {
                    // reached
                    if (m_numFinds >= expression.numberOfResults) {
                        return;
                    }
                    checkStop.checkInterrupted();
                    if (m_project.isOrphaned(source)) {
                        checkEntry(en.source, en.translation, en.note, null, en, ENTRY_ORIGIN_ORPHAN, file);
                    }
                }
            });
        }
    }
    // search the TM, if requested
    if (m_searchExpression.tm) {
        // that case.
        if (!expression.searchAuthor && !expression.searchDateAfter && !expression.searchDateBefore) {
            for (Map.Entry<String, ExternalTMX> tmEn : m_project.getTransMemories().entrySet()) {
                final String fileTM = tmEn.getKey();
                if (!searchEntries(tmEn.getValue().getEntries(), fileTM)) {
                    return;
                }
                checkStop.checkInterrupted();
            }
            for (Map.Entry<Language, ProjectTMX> tmEn : m_project.getOtherTargetLanguageTMs().entrySet()) {
                final Language langTM = tmEn.getKey();
                if (!searchEntriesAlternative(tmEn.getValue().getDefaults(), langTM.getLanguage())) {
                    return;
                }
                if (!searchEntriesAlternative(tmEn.getValue().getAlternatives(), langTM.getLanguage())) {
                    return;
                }
                checkStop.checkInterrupted();
            }
        }
    }
    // search the glossary, if requested
    if (m_searchExpression.glossary) {
        String intro = OStrings.getString("SW_GLOSSARY_RESULT");
        List<GlossaryEntry> entries = Core.getGlossaryManager().getLocalEntries();
        for (GlossaryEntry en : entries) {
            checkEntry(en.getSrcText(), en.getLocText(), null, null, null, ENTRY_ORIGIN_GLOSSARY, intro);
            // stop searching if the max. nr of hits has been reached
            if (m_numFinds >= expression.numberOfResults) {
                return;
            }
            checkStop.checkInterrupted();
        }
    }
}
Also used : ProjectTMX(org.omegat.core.data.ProjectTMX) EntryKey(org.omegat.core.data.EntryKey) IProject(org.omegat.core.data.IProject) Language(org.omegat.util.Language) GlossaryEntry(org.omegat.gui.glossary.GlossaryEntry) SourceTextEntry(org.omegat.core.data.SourceTextEntry) ExternalTMX(org.omegat.core.data.ExternalTMX) HashMap(java.util.HashMap) Map(java.util.Map) PrepareTMXEntry(org.omegat.core.data.PrepareTMXEntry) TMXEntry(org.omegat.core.data.TMXEntry)

Example 2 with SourceTextEntry

use of org.omegat.core.data.SourceTextEntry in project omegat by omegat-org.

the class TestCore method setUpCore.

@Before
public final void setUpCore() throws Exception {
    configDir = Files.createTempDirectory("omegat").toFile();
    TestPreferencesInitializer.init(configDir.getAbsolutePath());
    final IMainMenu mainMenu = new IMainMenu() {

        public JMenu getToolsMenu() {
            return new JMenu();
        }

        public JMenu getProjectMenu() {
            return new JMenu();
        }

        public JMenu getOptionsMenu() {
            return new JMenu();
        }

        public JMenu getMachineTranslationMenu() {
            return new JMenu();
        }

        public JMenu getGlossaryMenu() {
            return new JMenu();
        }

        public JMenu getAutoCompletionMenu() {
            return new JMenu();
        }

        public void invokeAction(String action, int modifiers) {
        }
    };
    Core.setMainWindow(new IMainWindow() {

        public void addDockable(Dockable pane) {
        }

        public void displayErrorRB(Throwable ex, String errorKey, Object... params) {
        }

        public Font getApplicationFont() {
            return new Font("Dialog", Font.PLAIN, 12);
        }

        public JFrame getApplicationFrame() {
            return new JFrame();
        }

        public void lockUI() {
        }

        public void showLengthMessage(String messageText) {
        }

        public void showProgressMessage(String messageText) {
        }

        public void showStatusMessageRB(String messageKey, Object... params) {
        }

        public void showTimedStatusMessageRB(String messageKey, Object... params) {
        }

        public void displayWarningRB(String warningKey, Object... params) {
        }

        public void displayWarningRB(String warningKey, String supercedesKey, Object... params) {
        }

        public void showErrorDialogRB(String title, String message, Object... args) {
        }

        public void unlockUI() {
        }

        public IMainMenu getMainMenu() {
            return mainMenu;
        }

        public Cursor getCursor() {
            return null;
        }

        public void setCursor(Cursor cursor) {
        }

        public int showConfirmDialog(Object message, String title, int optionType, int messageType) throws HeadlessException {
            return 0;
        }

        public void showMessageDialog(String message) {
        }

        public void showLockInsertMessage(String messageText, String toolTip) {
        }
    });
    Core.setCurrentProject(new NotLoadedProject());
    final IEditorSettings editorSettings = new IEditorSettings() {

        @Override
        public boolean isUseTabForAdvance() {
            return false;
        }

        @Override
        public void setUseTabForAdvance(boolean useTabForAdvance) {
        }

        @Override
        public boolean isMarkTranslated() {
            return false;
        }

        @Override
        public void setMarkTranslated(boolean markTranslated) {
        }

        @Override
        public boolean isMarkUntranslated() {
            return false;
        }

        @Override
        public void setMarkUntranslated(boolean markUntranslated) {
        }

        @Override
        public boolean isMarkAutoPopulated() {
            return false;
        }

        @Override
        public void setMarkAutoPopulated(boolean markAutoPopulated) {
        }

        @Override
        public boolean isDisplaySegmentSources() {
            return false;
        }

        @Override
        public void setDisplaySegmentSources(boolean displaySegmentSources) {
        }

        @Override
        public boolean isMarkNonUniqueSegments() {
            return false;
        }

        @Override
        public void setMarkNonUniqueSegments(boolean markNonUniqueSegments) {
        }

        @Override
        public boolean isMarkNotedSegments() {
            return false;
        }

        @Override
        public void setMarkNotedSegments(boolean markNotedSegments) {
        }

        @Override
        public boolean isMarkNBSP() {
            return false;
        }

        @Override
        public void setMarkNBSP(boolean markNBSP) {
        }

        @Override
        public boolean isMarkWhitespace() {
            return false;
        }

        @Override
        public void setMarkWhitespace(boolean markWhitespace) {
        }

        @Override
        public boolean isMarkBidi() {
            return false;
        }

        @Override
        public void setMarkBidi(boolean markBidi) {
        }

        @Override
        public boolean isAutoSpellChecking() {
            return false;
        }

        @Override
        public void setAutoSpellChecking(boolean isNeedToSpell) {
        }

        @Override
        public boolean isDoFontFallback() {
            return false;
        }

        @Override
        public void setDoFontFallback(boolean doFallback) {
        }

        @Override
        public String getDisplayModificationInfo() {
            return null;
        }

        @Override
        public void setDisplayModificationInfo(String displayModificationInfo) {
        }

        @Override
        public void updateTagValidationPreferences() {
        }

        @Override
        public void updateViewPreferences() {
        }

        @Override
        public boolean isMarkLanguageChecker() {
            return false;
        }

        @Override
        public void setMarkLanguageChecker(boolean markLanguageChecker) {
        }

        @Override
        public boolean isMarkGlossaryMatches() {
            return false;
        }

        @Override
        public void setMarkGlossaryMatches(boolean markGlossaryMatches) {
        }

        @Override
        public void setMarkParagraphDelimitations(boolean mark) {
        }

        @Override
        public boolean isMarkParagraphDelimitations() {
            return false;
        }
    };
    TestCoreInitializer.initEditor(new IEditor() {

        @Override
        public void windowDeactivated() {
        }

        @Override
        public void undo() {
        }

        @Override
        public void setFilter(IEditorFilter filter) {
        }

        @Override
        public void setAlternateTranslationForCurrentEntry(boolean alternate) {
        }

        @Override
        public void requestFocus() {
        }

        @Override
        public void replaceEditTextAndMark(String text) {
        }

        @Override
        public void replaceEditText(String text) {
        }

        @Override
        public void removeFilter() {
        }

        @Override
        public void remarkOneMarker(String markerClassName) {
        }

        @Override
        public void registerUntranslated() {
        }

        @Override
        public void registerPopupMenuConstructors(int priority, IPopupMenuConstructor constructor) {
        }

        @Override
        public void registerIdenticalTranslation() {
        }

        @Override
        public void registerEmptyTranslation() {
        }

        @Override
        public void refreshViewAfterFix(List<Integer> fixedEntries) {
        }

        @Override
        public void refreshView(boolean doCommit) {
        }

        @Override
        public void redo() {
        }

        @Override
        public void prevEntryWithNote() {
        }

        @Override
        public void prevEntry() {
        }

        @Override
        public void nextUntranslatedEntry() {
        }

        @Override
        public void nextUniqueEntry() {
        }

        @Override
        public void nextTranslatedEntry() {
        }

        @Override
        public void nextEntryWithNote() {
        }

        @Override
        public void nextEntry() {
        }

        @Override
        public void markActiveEntrySource(SourceTextEntry requiredActiveEntry, List<Mark> marks, String markerClassName) {
        }

        @Override
        public void insertText(String text) {
        }

        @Override
        public void insertTextAndMark(String text) {
        }

        @Override
        public void insertTag(String tag) {
        }

        @Override
        public void gotoHistoryForward() {
        }

        @Override
        public void gotoHistoryBack() {
        }

        @Override
        public void gotoFile(int fileIndex) {
        }

        @Override
        public void gotoEntryAfterFix(int fixedEntry, String fixedSource) {
        }

        @Override
        public void gotoEntry(String srcString, EntryKey key) {
        }

        @Override
        public void gotoEntry(int entryNum) {
        }

        @Override
        public void gotoEntry(int entryNum, CaretPosition pos) {
        }

        @Override
        public IEditorSettings getSettings() {
            return editorSettings;
        }

        @Override
        public String getSelectedText() {
            return null;
        }

        @Override
        public IEditorFilter getFilter() {
            return null;
        }

        @Override
        public String getCurrentTranslation() {
            return null;
        }

        @Override
        public String getCurrentTargetFile() {
            return null;
        }

        @Override
        public String getCurrentFile() {
            return null;
        }

        @Override
        public int getCurrentEntryNumber() {
            return 0;
        }

        @Override
        public SourceTextEntry getCurrentEntry() {
            return null;
        }

        @Override
        public IAutoCompleter getAutoCompleter() {
            return null;
        }

        @Override
        public void commitAndLeave() {
        }

        @Override
        public void commitAndDeactivate() {
        }

        @Override
        public void changeCase(CHANGE_CASE_TO newCase) {
        }

        @Override
        public void activateEntry() {
        }
    });
}
Also used : IEditor(org.omegat.gui.editor.IEditor) HeadlessException(java.awt.HeadlessException) IMainWindow(org.omegat.gui.main.IMainWindow) Dockable(com.vlsolutions.swing.docking.Dockable) Mark(org.omegat.gui.editor.mark.Mark) Cursor(java.awt.Cursor) Font(java.awt.Font) JFrame(javax.swing.JFrame) SourceTextEntry(org.omegat.core.data.SourceTextEntry) IAutoCompleter(org.omegat.gui.editor.autocompleter.IAutoCompleter) IEditorFilter(org.omegat.gui.editor.IEditorFilter) EntryKey(org.omegat.core.data.EntryKey) IPopupMenuConstructor(org.omegat.gui.editor.IPopupMenuConstructor) IEditorSettings(org.omegat.gui.editor.IEditorSettings) NotLoadedProject(org.omegat.core.data.NotLoadedProject) IMainMenu(org.omegat.gui.main.IMainMenu) JMenu(javax.swing.JMenu) Before(org.junit.Before)

Example 3 with SourceTextEntry

use of org.omegat.core.data.SourceTextEntry in project omegat by omegat-org.

the class GlossarySearcherTest method glossarySearcherCommon.

private List<GlossaryEntry> glossarySearcherCommon(String sourceText, ITokenizer tok, Language language, List<GlossaryEntry> entries) {
    EntryKey key = new EntryKey("file", sourceText, "id", "prev", "next", "path");
    SourceTextEntry ste = new SourceTextEntry(key, 1, new String[0], sourceText, Collections.emptyList());
    GlossarySearcher searcher = new GlossarySearcher(tok, language, false);
    return searcher.searchSourceMatches(ste, entries);
}
Also used : EntryKey(org.omegat.core.data.EntryKey) SourceTextEntry(org.omegat.core.data.SourceTextEntry)

Example 4 with SourceTextEntry

use of org.omegat.core.data.SourceTextEntry in project omegat by omegat-org.

the class FalseFriendsTest method setUp.

@Before
public final void setUp() {
    final ProjectProperties props = new ProjectProperties() {

        public Language getSourceLanguage() {
            return new Language("en");
        }

        public Language getTargetLanguage() {
            return new Language("pl");
        }
    };
    Core.setProject(new IProject() {

        public void setTranslation(SourceTextEntry entry, PrepareTMXEntry trans, boolean defaultTranslation, TMXEntry.ExternalLinked externalLinked) {
        }

        public void setTranslation(SourceTextEntry entry, PrepareTMXEntry trans, boolean defaultTranslation, ExternalLinked externalLinked, AllTranslations previousTranslations) throws OptimisticLockingFail {
        }

        public void setNote(SourceTextEntry entry, TMXEntry oldTrans, String note) {
        }

        public void saveProjectProperties() throws Exception {
        }

        public void saveProject(boolean doTeamSync) {
        }

        public void iterateByMultipleTranslations(MultipleTranslationsIterator it) {
        }

        public void iterateByDefaultTranslations(DefaultTranslationsIterator it) {
        }

        public boolean isProjectModified() {
            return false;
        }

        public boolean isProjectLoaded() {
            return true;
        }

        public boolean isOrphaned(EntryKey entry) {
            return false;
        }

        public boolean isOrphaned(String source) {
            return false;
        }

        public TMXEntry getTranslationInfo(SourceTextEntry ste) {
            return null;
        }

        public AllTranslations getAllTranslations(SourceTextEntry ste) {
            return null;
        }

        public Map<String, ExternalTMX> getTransMemories() {
            return null;
        }

        public ITokenizer getTargetTokenizer() {
            return null;
        }

        public StatisticsInfo getStatistics() {
            return null;
        }

        public ITokenizer getSourceTokenizer() {
            return null;
        }

        public ProjectProperties getProjectProperties() {
            return props;
        }

        public List<FileInfo> getProjectFiles() {
            return null;
        }

        public Map<Language, ProjectTMX> getOtherTargetLanguageTMs() {
            return null;
        }

        public List<SourceTextEntry> getAllEntries() {
            return null;
        }

        public void compileProject(String sourcePattern) throws Exception {
        }

        public void closeProject() {
        }

        public List<String> getSourceFilesOrder() {
            return null;
        }

        public void setSourceFilesOrder(List<String> filesList) {
        }

        @Override
        public String getTargetPathForSourceFile(String sourceFile) {
            return null;
        }

        @Override
        public boolean isTeamSyncPrepared() {
            return false;
        }

        @Override
        public void teamSync() {
        }

        @Override
        public void teamSyncPrepare() throws Exception {
        }

        @Override
        public boolean isRemoteProject() {
            return false;
        }

        @Override
        public void commitSourceFiles() throws Exception {
        }

        @Override
        public void compileProjectAndCommit(String sourcePattern, boolean doPostProcessing, boolean commitTargetFiles) throws Exception {
        }
    });
    LanguageToolWrapper.setBridgeFromCurrentProject();
}
Also used : ExternalLinked(org.omegat.core.data.TMXEntry.ExternalLinked) EntryKey(org.omegat.core.data.EntryKey) StatisticsInfo(org.omegat.core.statistics.StatisticsInfo) ProjectProperties(org.omegat.core.data.ProjectProperties) IProject(org.omegat.core.data.IProject) ExternalLinked(org.omegat.core.data.TMXEntry.ExternalLinked) ITokenizer(org.omegat.tokenizer.ITokenizer) Language(org.omegat.util.Language) SourceTextEntry(org.omegat.core.data.SourceTextEntry) List(java.util.List) PrepareTMXEntry(org.omegat.core.data.PrepareTMXEntry) Map(java.util.Map) PrepareTMXEntry(org.omegat.core.data.PrepareTMXEntry) TMXEntry(org.omegat.core.data.TMXEntry) Before(org.junit.Before)

Example 5 with SourceTextEntry

use of org.omegat.core.data.SourceTextEntry in project omegat by omegat-org.

the class XLIFFFilterTest method testTags.

@Test
public void testTags() throws Exception {
    String f = "test/data/filters/xliff/file-XLIFFFilter-tags.xlf";
    IProject.FileInfo fi = loadSourceFiles(filter, f);
    SourceTextEntry ste;
    checkMultiStart(fi, f);
    // #1988732
    checkMultiNoPrevNext("Link to <m0>http://localhost</m0>.", null, null, null);
    // #1988732
    checkMultiNoPrevNext("About <b0>Gandalf</b0>", null, null, "7");
    checkMultiNoPrevNext("<i0>Tags</i0> translation zz<i1>2</i1>z <b2>-NONTRANSLATED", null, null, null);
    checkMultiNoPrevNext("one <a0> two </b1> three <c2> four </d3> five", null, null, null);
    ste = checkMultiNoPrevNext("About <m0>Gandalf</m0> and <m1>other</m1>.", null, null, null);
    assertEquals(3, ste.getProtectedParts().length);
    assertEquals("<m0>Gandalf</m0>", ste.getProtectedParts()[0].getTextInSourceSegment());
    assertEquals("<mrk mtype=\"protected\">Gandalf</mrk>", ste.getProtectedParts()[0].getDetailsFromSourceFile());
    assertEquals("Gandalf", ste.getProtectedParts()[0].getReplacementMatchCalculation());
    assertEquals("<m1>", ste.getProtectedParts()[1].getTextInSourceSegment());
    assertEquals("<mrk mtype=\"other\">", ste.getProtectedParts()[1].getDetailsFromSourceFile());
    assertEquals(StaticUtils.TAG_REPLACEMENT, ste.getProtectedParts()[1].getReplacementMatchCalculation());
    assertEquals("</m1>", ste.getProtectedParts()[2].getTextInSourceSegment());
    assertEquals("</mrk>", ste.getProtectedParts()[2].getDetailsFromSourceFile());
    assertEquals(StaticUtils.TAG_REPLACEMENT, ste.getProtectedParts()[2].getReplacementMatchCalculation());
    checkMultiNoPrevNext("one <o0>two</o0> three", null, null, null);
    checkMultiNoPrevNext("one <t0/> three", null, null, null);
    checkMultiNoPrevNext("one <w0/> three", null, null, null);
    checkMultiNoPrevNext("Nested tags: before <g0><g1><x2/></g1></g0> after", null, null, null);
    checkMultiNoPrevNext("<m0>Check protected-only tag reading</m0>", null, null, null);
    checkMultiEnd();
    File inFile = new File("test/data/filters/xliff/file-XLIFFFilter-tags.xlf");
    filter.translateFile(inFile, outFile, new TreeMap<String, String>(), context, new ITranslateCallback() {

        public String getTranslation(String id, String source, String path) {
            return source.replace("NONTRANSLATED", "TRANSLATED");
        }

        public String getTranslation(String id, String source) {
            return source.replace("NONTRANSLATED", "TRANSLATED");
        }

        public void linkPrevNextSegments() {
        }

        public void setPass(int pass) {
        }
    });
    File trFile = new File(outFile.getPath() + "-translated");
    List<String> lines = Files.lines(inFile.toPath()).map(line -> line.replace("NONTRANSLATED", "TRANSLATED")).collect(Collectors.toList());
    Files.write(trFile.toPath(), lines);
    compareXML(trFile, outFile);
}
Also used : SourceTextEntry(org.omegat.core.data.SourceTextEntry) URISyntaxException(java.net.URISyntaxException) StatCount(org.omegat.core.statistics.StatCount) PatternConsts(org.omegat.util.PatternConsts) StaticUtils(org.omegat.util.StaticUtils) TranslationException(org.omegat.filters2.TranslationException) XMLTag(org.omegat.filters3.xml.XMLTag) Tag(org.omegat.filters3.Tag) Core(org.omegat.core.Core) Assert.fail(org.junit.Assert.fail) XLIFFFilter(org.omegat.filters3.xml.xliff.XLIFFFilter) Before(org.junit.Before) IProject(org.omegat.core.data.IProject) ITranslateCallback(org.omegat.filters2.ITranslateCallback) Files(java.nio.file.Files) Assert.assertTrue(org.junit.Assert.assertTrue) FileUtils(org.apache.commons.io.FileUtils) Test(org.junit.Test) XLIFFOptions(org.omegat.filters3.xml.xliff.XLIFFOptions) Collectors(java.util.stream.Collectors) File(java.io.File) StatisticsSettings(org.omegat.core.statistics.StatisticsSettings) List(java.util.List) XLIFFDialect(org.omegat.filters3.xml.xliff.XLIFFDialect) TreeMap(java.util.TreeMap) Assert.assertFalse(org.junit.Assert.assertFalse) SAXException(org.xml.sax.SAXException) Preferences(org.omegat.util.Preferences) Assert.assertEquals(org.junit.Assert.assertEquals) ITranslateCallback(org.omegat.filters2.ITranslateCallback) SourceTextEntry(org.omegat.core.data.SourceTextEntry) File(java.io.File) IProject(org.omegat.core.data.IProject) Test(org.junit.Test)

Aggregations

SourceTextEntry (org.omegat.core.data.SourceTextEntry)37 Point (java.awt.Point)14 TMXEntry (org.omegat.core.data.TMXEntry)14 ArrayList (java.util.ArrayList)9 PrepareTMXEntry (org.omegat.core.data.PrepareTMXEntry)9 IProject (org.omegat.core.data.IProject)8 HashMap (java.util.HashMap)7 Map (java.util.Map)7 EntryKey (org.omegat.core.data.EntryKey)7 FileInfo (org.omegat.core.data.IProject.FileInfo)6 ProtectedPart (org.omegat.core.data.ProtectedPart)6 NearString (org.omegat.core.matching.NearString)5 Language (org.omegat.util.Language)5 List (java.util.List)4 Cursor (java.awt.Cursor)3 HashSet (java.util.HashSet)3 Before (org.junit.Before)3 File (java.io.File)2 IOException (java.io.IOException)2 Locale (java.util.Locale)2