diff --git a/src/org/omegat/Bundle.properties b/src/org/omegat/Bundle.properties index dc21ec5a9d..5ca557932b 100644 --- a/src/org/omegat/Bundle.properties +++ b/src/org/omegat/Bundle.properties @@ -2160,6 +2160,8 @@ MATCHES_THIS_PROJECT=This project # 0 Number of additional matches. There is a non-break space between {0} and more MATCHES_MULTI_FILE_HINT=(+{0}\u00A0more) +MATCHES_SUBSEGMENTS_HINT=(+subsegments) + MATCHES_OPEN_PREFERENCES=TM Matching Options # Dictionary area popup menu diff --git a/src/org/omegat/Bundle_fr.properties b/src/org/omegat/Bundle_fr.properties index 996f961a98..d01135fbaa 100644 --- a/src/org/omegat/Bundle_fr.properties +++ b/src/org/omegat/Bundle_fr.properties @@ -1965,6 +1965,8 @@ MATCHES_THIS_PROJECT=Ce projet # 0 Number of additional matches. There is a non-break space between {0} and more MATCHES_MULTI_FILE_HINT=({0}\u00A0de\u00A0plus) +MATCHES_SUBSEGMENTS_HINT=(+sous-segments) + MATCHES_OPEN_PREFERENCES=Options des correspondances # Dictionary area popup menu diff --git a/src/org/omegat/core/statistics/FindMatches.java b/src/org/omegat/core/statistics/FindMatches.java index e6cbfcedd9..6f8ec48314 100644 --- a/src/org/omegat/core/statistics/FindMatches.java +++ b/src/org/omegat/core/statistics/FindMatches.java @@ -271,6 +271,7 @@ public List search(String searchText, boolean requiresTranslation, b if (segments.size() > 1) { List fsrc = new ArrayList<>(segments.size()); List ftrans = new ArrayList<>(segments.size()); + String first = OStrings.getString("MATCHES_THIS_PROJECT"); // multiple segments for (String onesrc : segments) { // find match for a separate segment @@ -280,6 +281,13 @@ public List search(String searchText, boolean requiresTranslation, b && segmentMatch.get(0).scores[0].score >= SUBSEGMENT_MATCH_THRESHOLD) { fsrc.add(segmentMatch.get(0).source); ftrans.add(segmentMatch.get(0).translation); + if ((segmentMatch.get(0).projs != null) && (segmentMatch.get(0).projs[0] != null)) { + if (segmentMatch.get(0).projs[0].length() > 0) { + first = segmentMatch.get(0).projs[0]; + } else { + first = OStrings.getString("MATCHES_THIS_PROJECT"); + } + } } else { fsrc.add(""); ftrans.add(""); @@ -289,7 +297,8 @@ public List search(String searchText, boolean requiresTranslation, b PrepareTMXEntry entry = new PrepareTMXEntry(); entry.source = segmenter.glue(sourceLang, sourceLang, fsrc, spaces, brules); entry.translation = segmenter.glue(sourceLang, targetLang, ftrans, spaces, brules); - processEntry(null, entry, "", NearString.MATCH_SOURCE.TM, false, 0); + processEntry(null, entry, first + " " + OStrings.getString("MATCHES_SUBSEGMENTS_HINT"), + NearString.MATCH_SOURCE.TM, false, 0); } } // fill similarity data only for a result