1

我在 LinguaPlone 遇到以下情况

  • 我有页面 a1-en、a1-fi 和 a1-sv

  • a1-fi 和 a1-sv 认为 a1-en 是规范翻译

  • a1-enisCanonical()返回 False

  • 这是因为isCanonical()检查当前项目是否有“翻译”参考

  • a1-en 是一个不幸的页面,因为实际上存在“翻译”参考,但它是一个损坏的参考,其中 UID 参考指向的项目消失了。(它仅检查 UID 的引用,而不检查实际内容项是否存在)。

现在,我需要以某种方式解决这种情况,以使 a1-en 再次相信它是规范页面。我需要从正在检查的“sourceUID”索引中的reference_catalog 中删除这个损坏的引用。

问题

  • 是否有自动方法来维护 reference_catalog 并清除损坏的条目

  • 如果不是,那么修复reference_catalog中这个损坏条目的手动方法是什么

4

1 回答 1

2

像这样:

badCanonical = app.Plone.en.offering.restaurants
badCanonical.isCanonical()  # False - contains a corrupted translationOf link
badCanonical.getTranslations()   # Get list of what translations should exist
cat = app.Plone.reference_catalog
cat.getReferences(badCanonical, relationship="translationOf")  # Displays UID referring object not existing
# Delete forward relationships
for b in cat.getReferences(badCanonical, "translationOf"): cat._deleteReference(b)  
badCanonical.isCanonical()  # True - fixed
badCanonical.getTranslations() 

# Check that one of the translated versions still work
translated = app.Plone.sv["kalajoki-erbjuder"].restauranger
translated.isCanonical()
translated.getTranslations()
于 2014-03-19T22:58:17.773 回答