Skip to content

Internationalisation helper for SQLAlchemy-based projects

License

Notifications You must be signed in to change notification settings

paylogic/traduki

Folders and files

NameName
Last commit message
Last commit date
Jul 30, 2020
Aug 2, 2024
Sep 11, 2014
Feb 10, 2020
Aug 2, 2024
Feb 5, 2014
Feb 5, 2014
Nov 14, 2018
Jul 30, 2020
Jul 30, 2020
Aug 2, 2024
Jul 30, 2020

Repository files navigation

traduki: SQLAlchemy internationalisation

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

https://api.travis-ci.org/paylogic/traduki.png 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.

About

Internationalisation helper for SQLAlchemy-based projects

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages