Esempio n. 1
0
def test_link_translation(multilingual_doc, root, db_session):
    from kotti_multilingual.api import link_translation
    from kotti_multilingual.api import get_translations

    doc2 = root['sl']['doc2'] = Document(language=u'sl')
    link_translation(multilingual_doc, doc2)

    assert get_translations(multilingual_doc) == {'sl': doc2}
Esempio n. 2
0
def test_unlink_translation(translated_docs, db_session):
    from kotti_multilingual.api import unlink_translation
    from kotti_multilingual.api import get_translations

    source, target = translated_docs
    unlink_translation(target)

    assert get_translations(source) == {}
def test_language_root_autolink(root, ml_events, config, db_session):
    from kotti_multilingual.resources import LanguageRoot
    from kotti_multilingual.api import get_source
    from kotti_multilingual.api import get_translations

    root['sl'] = LanguageRoot(language=u'sl')
    db_session.flush()
    root['en'] = LanguageRoot(language=u'en')
    db_session.flush()

    assert get_translations(root['sl']) == {'en': root['en']}
    assert get_source(root['en']) == root['sl']

    # Add another language root.  This one should also connect to 'sl'
    # automatically.
    root['de'] = LanguageRoot(language=u'de')

    assert get_source(root['de']) == root['sl']
    assert get_translations(root['de']) == {'en': root['en'], 'sl': root['sl']}
Esempio n. 4
0
def test_get_translations_alotta(translated_docs, root, db_session):
    from kotti_multilingual.api import get_translations
    from kotti_multilingual.api import link_translation
    from kotti_multilingual.resources import LanguageRoot

    source, target = translated_docs
    fr = root['fr'] = LanguageRoot(language=u'fr', title=u'Le root')
    fr['doc'] = Document(title=u'English doc')

    link_translation(source, fr['doc'])
    assert get_translations(fr['doc']) == {'en': source, 'sl': target}
Esempio n. 5
0
def translation_dropdown(context, request):
    languages = api.get_languages(request)
    translations = api.get_translations(context)
    translatable_into = []

    for lang in languages:
        if lang['id'] in translations or lang['id'] == context.language:
            continue
        translated_parent = find_parent(
            context.__parent__,
            lambda item: lang['id'] in api.get_translations(item))
        if translated_parent is None:
            continue
        container = api.get_translations(translated_parent).get(lang['id'])
        url = request.resource_url(
            container,
            'add-translation',
            query={'id': context.id}
        )

        if has_permission('add', container, request):
            translatable_into.append({
                'language': lang['id'],
                'title': lang['title'],
                'url': url
            })
    translations = [
        {
            'language': tr.language,
            'title': api.get_language_title(tr.language),
            'url': request.resource_url(tr),
        } for tr in translations.values()
    ]
    return {
        'translations': translations,
        'translatable_into': translatable_into
    }
Esempio n. 6
0
def test_get_translations_none(root, db_session):
    from kotti_multilingual.api import get_translations

    assert get_translations(root) == {}
Esempio n. 7
0
def test_get_translations(translated_docs, db_session):
    from kotti_multilingual.api import get_translations

    source, target = translated_docs
    assert get_translations(source) == {'sl': target}
    assert get_translations(target) == {'en': source}