Skip to main content

SQLAlchemy internationalisation

Project description

traduki: SQLAlchemy internationalisation

The traduki package provides internationalisation helper classes for SQLAlchemy-based projects.

https://api.travis-ci.org/paylogic/traduki.png https://img.shields.io/pypi/v/traduki.svg https://coveralls.io/repos/paylogic/traduki/badge.png?branch=master

Installation

pip install traduki

Usage

traduki usage example:

from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

import traduki

def get_current_language():
    """Current language callback for our project."""
    return request.locale

def get_language_chain():
    """Language chain (fallback rule) callback for our project."""
    return {'*': request.locale}

i18n_attributes = traduki.initialize(Base, ['en', 'ru'], get_current_language, get_language_chain)

Session = sessionmaker(bind=engine)
sess = Session()

class MyModel(Base)

    title_id = i18n_attributes.i18n_column(nullable=False, unique=False)
    title = i18n_attributes.i18n_relation(title_id)
    """Title."""

my_object = MyModel()
my_object.title = {'en': 'English title', 'pt': 'Portugese title'}
sess.add(my_object)
sess.commit()

assert sess.refresh(my_object).title.get_dict() == {'en': 'English title', 'pt': 'Portugese title'}

Contact

If you have questions, bug reports, suggestions, etc. please create an issue on the GitHub project page.

License

This software is licensed under the MIT license

See License

© 2018 Paylogic International.

Changelog

1.3.3

  • Fix sqlalchemy 2.0 compatibility warning by using sqlalchemy.orm.Mapper instead of sqlalchemy.orm.mapper.

1.3.2

  • Fix a bug where the get_ordered_languages would mutate in place the list of configured languages.

1.3.1

  • Fix UnicodeDecodeError when installing this library on python 3 on some configurations.

1.3.0

  • Fix python 3 compatibility

  • Declare support for python 2.7, 3.5, 3.6, 3.7, 3.8

1.2.0

  • Do not use deprecated AttributeExtension, use Attribute Events instead.

1.1.0

  • Use an OR operator for LIKE_OPS to find matches in all language columns.

1.0.1

  • Fix get_text_from_dict raising an exception when no language can be detected.

1.0.0

  • Initial public release

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

traduki-1.3.3.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

traduki-1.3.3-py2.py3-none-any.whl (8.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file traduki-1.3.3.tar.gz.

File metadata

  • Download URL: traduki-1.3.3.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for traduki-1.3.3.tar.gz
Algorithm Hash digest
SHA256 25937b30d78e6a68e0065215e3742da1d6a9e454cc19e9382d33871fbbf81057
MD5 c903d782f774f512f997957d4adbbdfb
BLAKE2b-256 af0f8b0cf6d9b67e789bfab7a0e38e6a86a7910011f692cb0dbfef9fbcba81d6

See more details on using hashes here.

File details

Details for the file traduki-1.3.3-py2.py3-none-any.whl.

File metadata

  • Download URL: traduki-1.3.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for traduki-1.3.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 627500e4a24517b02ef6e4e4874c4f5616c1eda31a5b3cb60e1df0a2ca2222c5
MD5 23201775cd10d1d2421586b345cc039a
BLAKE2b-256 53c77211917638872a90f7e642916a105a8db0638beb00d34a88e6ec7a1edd6e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page