Skip to main content
https://travis-ci.org/plone/plone.app.multilingualindexes.svg?branch=master https://img.shields.io/badge/code%20style-black-000000.svg https://coveralls.io/repos/github/plone/plone.app.multilingualindexes/badge.svg?branch=master

Indexes optimized to query multilingual content made with plone.app.multilingual.

Features

tgpath Index (Translation Group Path)

Utility and index to get the path of an item as UUIDs of its translationgroup.

language_or_fallback Index

Index to query items and get one fallback if not available in the current language. Fallbacks can be configured in control-panel and are stored in the registry.

Integration with Collections

Both indexes are available in Collections and other places using plone.app.querystring under the hood. Both indexes do only need activation.

tgpath is available as a switch Language independent location. If this is selected, the normal path will be converted to a tgpath! If no path is selected this switch has no effect.

Querystring selection with Translationgroup path

language_or_fallback is available as Fallback languages. If a path is selected together with this option, the path will be converted to a tgpath.

If the tgpath or language_or_fallback is used in a Collection, the path will be set to the portal. Thus the usal automatically added fixation to the current INavigationRoot wont be set, because language root folders are navigation roots.

Querystring selection with Language fallback and (optional) location.

Behind the scenes

Fallback Index

It is in fact a simple FieldIndex. Fallback detection happens on index time. On query time it has the same functionality and performance as the normal Language index.

Browse the index to get a feeling what fallbacks are in there.
Translation Group Index

It is in fact a normal ExtendendPathIndex. Just the path it indexes consists out of the translation group uids. If an item is not translatable and thus is not part of an translationgroup, then its normal id is taken as patyh element. Path example: /Plone/f5843e426b5d47cdb44af587b322f7ea/320b1ffbf0f64603803043d48bd57516.

In order to query the index, you need to use the translationgroup path instead of the id path:

from plone.app.multilingualindexes.tgpath import tg_path
import plone.api

plone.api.content.find(
    tgpath='/'.join(tg_path(context)),
    language_or_fallback=plone.api.portal.get_current_language()
)

Installation

Install plone.app.multilingualindexes by adding it to your buildout:

[buildout]

...

eggs =
    plone.app.multilingualindexes

and then running bin/buildout

Contribute

License

The project is licensed under the GPLv2.

Contributors

Changelog

3.0.2 (2021-11-22)

  • Make request caching more test friendly (where there is no request). [jensens]

3.0.1 (2021-11-17)

  • Fix import for Plone 6 and add CI [jensens]

3.0.0 (2021-11-16)

2.1 (2020-08-04)

2.0 (2019-07-12)

  • Patch CMFCore because of https://github.com/zopefoundation/Products.CMFCore/issues/79 [jensens]

  • Fix bugs on rename/move/delete (wrong fallbacks) [jensens]

  • Drop support of Plone 5.1 [jensens]

  • Python 3 compatibility [jensens]

  • Refactor index to be less complex on indexing. [jensens]

  • Bugfix: Use latest plone.app.multilingual and add subscribers to ensure in-/rein-/unindexing. [jensens]

  • Fixing “RuntimeError: the bucket being iterated changed size” (issue #3) [gogobd]

  • Depend on Products.CMFPlone instead of Plone to not fetch unnecessary dependencies. [thet]

1.0 (2016-10-15)

  • Initial release. [jensens]

Release files for plone.app.multilingualindexes 3.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for plone.app.multilingualindexes 3.0.2
File Size Uploaded
plone.app.multilingualindexes-3.0.2.tar.gz 180.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for plone.app.multilingualindexes 3.0.2
File Interpreter ABI Platform
plone.app.multilingualindexes-3.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 206.8 kB

Release files / plone.app.multilingualindexes-3.0.2.tar.gz

Download URL plone.app.multilingualindexes-3.0.2.tar.gz
Size 180.2 kB
Tags Source
SHA-256 checksum
How to use checksums
d7bc8224106ba45c833b022d086dba4fe848ca74ae7828b5003cd026ff5bfce5
BLAKE2b-256 checksum
How to use checksums
23bb94a039b3bc58070f0c73de2b5dbd965dfb6bbc25462d2c9cff4386611391
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

Release files / plone.app.multilingualindexes-3.0.2-py3-none-any.whl

Download URL plone.app.multilingualindexes-3.0.2-py3-none-any.whl
Size 26.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
01b43be5dc7bee8b14c85956d22eb9d1bfe8a81eeea1d9f780fc691c69f6c6bd
BLAKE2b-256 checksum
How to use checksums
c299940e1bafc3823bba847a4c7ec3bbbd043d5e1ef87beefbd57055fd6d8229
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.8

Release history Release notifications | RSS feed

This release

3.0.2 This release

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.1

2 release files

2.0

2 release files

1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page