Menu

#1238 OmegaT does not use cached MT result for translated segments

6.1
open-fixed
None
5
2024-02-12
2023-12-24
No

OmegaT 6.0 and later has BasedCachedTranslate class that defines getTranslation as

    @Override
    public final String getTranslation(Language sLang, Language tLang, String text) throws Exception {
        if (enabled) {
            String trText = getTruncateText(text);
            return putCache(sLang, tLang, trText, translate(sLang, tLang, trText));
        } else {
            return null;
        }
    }

This does not check cached translation before run translate.
MachineTraslateTextArea#getTranslation call it when "force" translate by "Ctrl-M" entered, or configured "Auto fetch" is on, and "only translated" is on and untranslated segment or "only translated" is off.

           if (!force) {
                if (!Preferences.isPreferenceDefault(Preferences.MT_AUTO_FETCH, true)) {
                    return translator.getCachedTranslation(source, target, src);
                }
                if (Preferences.isPreference(Preferences.MT_ONLY_UNTRANSLATED)) {
                    TMXEntry entry = Core.getProject().getTranslationInfo(currentlyProcessedEntry);
                    if (entry.isTranslated()) {
                        return translator.getCachedTranslation(source, target, src);
                    }
                }
            }
            try {
                return translator.getTranslation(source, target, src);

I think we visit translated segment, we should check cache first then ask to engine.

Discussion

  • Hiroshi Miura

    Hiroshi Miura - 2023-12-24
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -14,4 +14,22 @@
     ```
    
     This does not check cached translation before run `translate`.
    -It causes an unnecessary request  to the engine.
    +`MachineTraslateTextArea#getTranslation` call it when "force" translate by "Ctrl-M" entered, or configured "Auto fetch"  is  on, and  "only translated" is on and untranslated segment or "only translated" is off.
    +
    +```
    +           if (!force) {
    +                if (!Preferences.isPreferenceDefault(Preferences.MT_AUTO_FETCH, true)) {
    +                    return translator.getCachedTranslation(source, target, src);
    +                }
    +                if (Preferences.isPreference(Preferences.MT_ONLY_UNTRANSLATED)) {
    +                    TMXEntry entry = Core.getProject().getTranslationInfo(currentlyProcessedEntry);
    +                    if (entry.isTranslated()) {
    +                        return translator.getCachedTranslation(source, target, src);
    +                    }
    +                }
    +            }
    +            try {
    +                return translator.getTranslation(source, target, src);
    +   ```
    +   
    +   I think we visit translated segment, we should check cache first then ask to engine.
    
     
  • Hiroshi Miura

    Hiroshi Miura - 2023-12-24
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -30,6 +30,6 @@
                 }
                 try {
                     return translator.getTranslation(source, target, src);
    -   ```
    +```
    
        I think we visit translated segment, we should check cache first then ask to engine.
    
     
  • Hiroshi Miura

    Hiroshi Miura - 2024-01-11
     
  • Hiroshi Miura

    Hiroshi Miura - 2024-02-12
    • status: open --> open-fixed
     

Log in to post a comment.