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();
}
}
}
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() {
}
});
}
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);
}
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();
}
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);
}
Aggregations