首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免Deepl在html文本中翻译df [ text ]?

如何避免Deepl在html文本中翻译df [ text ]?
EN

Stack Overflow用户
提问于 2022-10-12 09:26:24
回答 1查看 62关注 0票数 1

我在我的html文本文件中有很多数据框架,比如[COMPANY],我想在Deepl翻译我的文本时排除它。我在api中使用Deepl Java,不允许更改数据帧格式。

知道如何将dfTEXT排除在翻译之外吗?

示例文本:

代码语言:javascript
复制
Dear client,

Please find enclosed [EVENT] for the order you wish to execute for your account [ACCOUNT_NAME_TEXT].


Kind regards,

[COMPANY_NAME]

html文件

代码语言:javascript
复制
<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
        <p>Dear client,</p>
        <p>Please find enclosed the Events for the order you wish to execute for your account [ACCOUNT_NAME_TEXT].</p>
        <p>&#160;</p>
        <p>Kind regards,</p>
        <p>[COMPANY_NAME]</p>
    </body>
</html>
EN

回答 1

Stack Overflow用户

发布于 2022-10-13 08:40:02

现在,我解决了这个问题,在翻译并将其设置为原始标记之前,我将df[TEXT]解析为忽略标记。参见下面的方法,它可以帮助具有相同请求的人。

代码语言:javascript
复制
  private static final String BEGIN_IGNORE_TAG = "<loveIgnoreTag>";
  private static final String END_IGNORE_TAG = "</loveIgnoreTag>";

  public String translate( String source , String target, String text )
                throws DeepLException, InterruptedException
        {
            //https://www.deepl.com/docs-api/xml/ignored-tags/
            ArrayList<String> ignoreTags = new ArrayList<>( ) ;
            ignoreTags.add( "loveIgnoreTag" );
            
            text = parseToIgnoreTage(text);
            
            TextTranslationOptions translationOptions = new TextTranslationOptions( )
                    .setTagHandling( "xml" )
                    .setFormality( Formality.PreferMore )
                    .setPreserveFormatting( true )
                    .setIgnoreTags( () -> ignoreTags.iterator( )  )
                    .setSentenceSplittingMode( SentenceSplittingMode.All );
    
            TextResult result = translator.translateText( text, source, target, translationOptions );
            String translationResult = parseToDataFrame(result.getText( ));     
            return translationResult;
        }
    
        private String parseToIgnoreTage( String text )
        {
            text = text.replace( "[", BEGIN_IGNORE_TAG ).replace( "]", END_IGNORE_TAG );
            return text;
        }
    
        private String parseToDataFrame( String result )
        {
            result = result.replace(BEGIN_IGNORE_TAG,"[" ).replace(  END_IGNORE_TAG, "]" );
            return result;
        }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74039527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档