"""
    MoinMoin - Multilingual functions

    Copyright (c) 2002 by Florian Festi
    All rights reserved, see COPYING for details.

    $Id: TranslationMenu.py,v 1.1.2.5 2002/12/02 05:34:52 thomaswaldmann Exp $
"""

from MoinMoin.Page import Page
from MoinMoin import wikiutil, config, multilang
import os

def translation_form(page_name, request):
    page = Page(page_name)
    if config.multilingual_dir:
        page.translation_menu(request)
    else:
        page.send_page(request)

def settranslation(page_name, request):
    """ """
    page = Page(page_name)
    errmsg = ""

    # in wiki with single language only show page
    if not config.multilingual_dir:
        page.send_page(request, msg = errmsg)
        return

    # got page parameter?
    if request.form.has_key("page"):
        name = wikiutil.unquoteWikiname(request.form["page"].value)
        errmsg = multilang.set_translation(page_name, name)
    # no page
    else:
        errmsg = 'no page given'
    
    page.translation_menu(request, msg = errmsg)


def unsettranslation(page_name, request):
    """ """
    page = Page(page_name)
    errmsg = ""

    # in wiki with single language only show page
    if not config.multilingual_dir:
        page.send_page(request, msg = errmsg)
        return                    

    if not request.form.has_key("page"):
        errmsg = "no page given"
        page.send_page(request, msg = errmsg)
        return
    name = wikiutil.unquoteWikiname(request.form["page"].value)
    errmsg = multilang.unset_translation(name)
        
    page.translation_menu(request, msg = errmsg)


def execute(pagename, request):
    msg = ''
    if not request.form.has_key('do'):
        translation_form(pagename, request)
    elif request.form['do'].value == 'set':
        settranslation(pagename, request)
    elif request.form['do'].value == 'unset':
        unsettranslation(pagename, request)
    else:
        msg = _('<b>Unsupported translation menu action: %s</b>') % (request.form['do'].value,)

    if msg:
        error_msg(pagename, request, msg)

