Class AITranslatePropertyWrapper
- java.lang.Object
-
- com.composum.ai.aem.core.impl.autotranslate.AITranslatePropertyWrapper
-
public class AITranslatePropertyWrapper extends Object
-
-
Field Summary
Fields Modifier and Type Field Description static String
AI_NEW_ORIGINAL_SUFFIX
Suffix for the property name of an inheritance cancelled property that saves the original value of the property as it is currently in the translation source, as an indicator what needs to be merged.static String
AI_NEW_TRANSLATED_SUFFIX
Suffix for the property name of an inheritance cancelled property that saves thestatic String
AI_ORIGINAL_SUFFIX
Suffix for the property name of a property that saves the original value of the property as it has been used to create a translation, to track when it has to be re-translated.static String
AI_PREFIX
Prefix for property names of saved values.static String
AI_TRANSLATED_SUFFIX
Suffix for the property name of a property that saves the translated value of the property, to track whether it has been manually changed after automatic translation and as used as translation when the translation source is still the same as saved inAI_ORIGINAL_SUFFIX
.static String
AI_TRANSLATION_ERRORMARKER
Attribute that is set on jcr:content of a page when the translation of a page failed, to make it easy to find such pages.static String
LC_PREFIX
Prefix for property names changed to language copies.static String
PROPERTY_AI_ADDINSTRUCTIONS
PageContent only property: saves the additional instructions the page was translated with.static String
PROPERTY_AI_TRANSLATED_BY
Saves user who triggered the automatic translation of the resource.static String
PROPERTY_AI_TRANSLATED_DATE
Saves the date when a resource was automatically translated.static String
PROPERTY_AI_TRANSLATED_MODEL
Informationally, saves the model that was used.
-
Constructor Summary
Constructors Constructor Description AITranslatePropertyWrapper(org.apache.sling.api.resource.ValueMap sourceValueMap, org.apache.sling.api.resource.ModifiableValueMap targetValueMap, String propertyName)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description String[]
allAiKeys()
String[]
allGeneralKeys()
String[]
allKeys()
String[]
allLcKeys()
static String
decodePropertyName(String prefix, String encodedPropertyName, String suffix, org.apache.sling.api.resource.Resource resource)
InvertsencodePropertyName(String, String, String)
by replacing _ with : if the property isn't present.static String
encodePropertyName(String prefix, String propertyName, String suffix)
Searches for propertiesString
getCurrentValue()
String
getLcOriginal()
String
getLcTranslated()
String
getNewOriginalCopy()
String
getNewTranslatedCopy()
String
getOriginal()
String
getOriginalCopy()
String
getPropertyName()
String
getTranslatedCopy()
boolean
hasSavedTranslation()
protected static boolean
isAiTranslateProperty(String name)
Checks whether a property was created by us and must not be translated etc.boolean
isMergeNeeded()
A merge is needed if the property is inheritance cancelled and this is true: there is a new original and a new translated copy.boolean
isOriginalAsWhenLastTranslating()
boolean
isRichText()
Tries to guess whether the property is richtext.void
setAiTranslatedBy(String value)
void
setAiTranslatedDate(Calendar value)
void
setAiTranslatedModel(String value)
void
setCurrentValue(String value)
void
setLcOriginal(String value)
void
setLcTranslated(String value)
void
setNewOriginalCopy(String value)
void
setNewTranslatedCopy(String value)
void
setOriginalCopy(String value)
void
setTranslatedCopy(String value)
-
-
-
Field Detail
-
PROPERTY_AI_ADDINSTRUCTIONS
public static final String PROPERTY_AI_ADDINSTRUCTIONS
PageContent only property: saves the additional instructions the page was translated with.- See Also:
- Constant Field Values
-
PROPERTY_AI_TRANSLATED_DATE
public static final String PROPERTY_AI_TRANSLATED_DATE
Saves the date when a resource was automatically translated. Find translated resources with /content//*[@ai_translated] .- See Also:
- Constant Field Values
-
PROPERTY_AI_TRANSLATED_BY
public static final String PROPERTY_AI_TRANSLATED_BY
Saves user who triggered the automatic translation of the resource.- See Also:
- Constant Field Values
-
PROPERTY_AI_TRANSLATED_MODEL
public static final String PROPERTY_AI_TRANSLATED_MODEL
Informationally, saves the model that was used.- See Also:
- Constant Field Values
-
AI_PREFIX
public static final String AI_PREFIX
Prefix for property names of saved values.- See Also:
- Constant Field Values
-
LC_PREFIX
public static final String LC_PREFIX
Prefix for property names changed to language copies. This is set if a property is a path and the path has a (translated) language copy in the desired target language.- See Also:
- Constant Field Values
-
AI_ORIGINAL_SUFFIX
public static final String AI_ORIGINAL_SUFFIX
Suffix for the property name of a property that saves the original value of the property as it has been used to create a translation, to track when it has to be re-translated.- See Also:
- Constant Field Values
-
AI_TRANSLATED_SUFFIX
public static final String AI_TRANSLATED_SUFFIX
Suffix for the property name of a property that saves the translated value of the property, to track whether it has been manually changed after automatic translation and as used as translation when the translation source is still the same as saved inAI_ORIGINAL_SUFFIX
.- See Also:
- Constant Field Values
-
AI_NEW_ORIGINAL_SUFFIX
public static final String AI_NEW_ORIGINAL_SUFFIX
Suffix for the property name of an inheritance cancelled property that saves the original value of the property as it is currently in the translation source, as an indicator what needs to be merged.- See Also:
- Constant Field Values
-
AI_NEW_TRANSLATED_SUFFIX
public static final String AI_NEW_TRANSLATED_SUFFIX
Suffix for the property name of an inheritance cancelled property that saves the- See Also:
- Constant Field Values
-
AI_TRANSLATION_ERRORMARKER
public static final String AI_TRANSLATION_ERRORMARKER
Attribute that is set on jcr:content of a page when the translation of a page failed, to make it easy to find such pages. Not set byAITranslatePropertyWrapper
, but since all property names are defined here... Is set to the time at which the error occurred, to make it easy to find in the logs.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
AITranslatePropertyWrapper
public AITranslatePropertyWrapper(org.apache.sling.api.resource.ValueMap sourceValueMap, org.apache.sling.api.resource.ModifiableValueMap targetValueMap, String propertyName)
-
-
Method Detail
-
getOriginal
public String getOriginal()
-
getCurrentValue
public String getCurrentValue()
-
setCurrentValue
public void setCurrentValue(String value)
-
getOriginalCopy
public String getOriginalCopy()
- See Also:
AI_ORIGINAL_SUFFIX
-
setOriginalCopy
public void setOriginalCopy(String value)
- See Also:
AI_ORIGINAL_SUFFIX
-
getTranslatedCopy
public String getTranslatedCopy()
- See Also:
AI_TRANSLATED_SUFFIX
-
setTranslatedCopy
public void setTranslatedCopy(String value)
- See Also:
AI_TRANSLATED_SUFFIX
-
getNewOriginalCopy
public String getNewOriginalCopy()
- See Also:
AI_NEW_ORIGINAL_SUFFIX
-
setNewOriginalCopy
public void setNewOriginalCopy(String value)
- See Also:
AI_NEW_ORIGINAL_SUFFIX
-
getNewTranslatedCopy
public String getNewTranslatedCopy()
- See Also:
AI_NEW_TRANSLATED_SUFFIX
-
setNewTranslatedCopy
public void setNewTranslatedCopy(String value)
- See Also:
AI_NEW_TRANSLATED_SUFFIX
-
getLcOriginal
public String getLcOriginal()
- See Also:
LC_PREFIX
,AI_ORIGINAL_SUFFIX
-
setLcOriginal
public void setLcOriginal(String value)
- See Also:
LC_PREFIX
,AI_ORIGINAL_SUFFIX
-
getLcTranslated
public String getLcTranslated()
- See Also:
LC_PREFIX
,AI_TRANSLATED_SUFFIX
-
setLcTranslated
public void setLcTranslated(String value)
- See Also:
LC_PREFIX
,AI_TRANSLATED_SUFFIX
-
setAiTranslatedBy
public void setAiTranslatedBy(String value)
- See Also:
PROPERTY_AI_TRANSLATED_BY
-
setAiTranslatedDate
public void setAiTranslatedDate(Calendar value)
- See Also:
PROPERTY_AI_TRANSLATED_DATE
-
getPropertyName
public String getPropertyName()
-
isRichText
public boolean isRichText()
Tries to guess whether the property is richtext. We have to be somewhat heuristic here since that's not easily determined. If the property name is "text" and the attribute "textIsRich" is present we use that, if it's "jcr:description" and there is no "text" attribute the same approach is used. Otherwise we check whether the first character is "<" and the last is ">", as this always seems to be the case for richtext properties. "textIsRich" is read out as Boolean, and if it's not present we use the heuristical check.
-
setAiTranslatedModel
public void setAiTranslatedModel(String value)
- See Also:
PROPERTY_AI_TRANSLATED_MODEL
-
hasSavedTranslation
public boolean hasSavedTranslation()
-
isOriginalAsWhenLastTranslating
public boolean isOriginalAsWhenLastTranslating()
-
isMergeNeeded
public boolean isMergeNeeded()
A merge is needed if the property is inheritance cancelled and this is true: there is a new original and a new translated copy.
-
allLcKeys
public String[] allLcKeys()
-
allAiKeys
public String[] allAiKeys()
-
allGeneralKeys
public String[] allGeneralKeys()
-
allKeys
public String[] allKeys()
-
isAiTranslateProperty
protected static boolean isAiTranslateProperty(String name)
Checks whether a property was created by us and must not be translated etc.
-
encodePropertyName
public static String encodePropertyName(String prefix, String propertyName, String suffix)
Searches for properties
-
decodePropertyName
@Nullable public static String decodePropertyName(@Nonnull String prefix, @Nonnull String encodedPropertyName, @Nonnull String suffix, @Nonnull org.apache.sling.api.resource.Resource resource)
InvertsencodePropertyName(String, String, String)
by replacing _ with : if the property isn't present. This assumes there was only one : in the original property name.- Returns:
- the property name or null if that doesn't seem like an encoded property name.
-
-