Ejemplo n.º 1
0
Archivo: views.py Proyecto: simone/upy
def lang_sel(request, langid, idx):
    """
    Selects a file to be translated
    """
    storage = get_storage(request)
    if langid not in [l[0] for l in settings.LANGUAGES]:
        raise Http404
    else:

        rosetta_i18n_catalog_filter = storage.get('rosetta_i18n_catalog_filter', 'project')

        third_party_apps = rosetta_i18n_catalog_filter in ('all', 'third-party')
        django_apps = rosetta_i18n_catalog_filter in ('all', 'django')
        project_apps = rosetta_i18n_catalog_filter in ('all', 'project')
        file_ = find_pos(langid, project_apps=project_apps, django_apps=django_apps, third_party_apps=third_party_apps)[int(idx)]

        storage.set('rosetta_i18n_lang_code', langid)
        storage.set('rosetta_i18n_lang_name', unicode([l[1] for l in settings.LANGUAGES if l[0] == langid][0]))
        storage.set('rosetta_i18n_fn',  file_)
        po = pofile(file_)
        for entry in po:
            entry.md5hash = hashlib.md5(
                entry.msgid.encode("utf8") +
                entry.msgstr.encode("utf8") +
                (entry.msgctxt and entry.msgctxt.encode("utf8") or "")
            ).hexdigest()

        storage.set('rosetta_i18n_pofile', po)
        try:
            os.utime(file_, None)
            storage.set('rosetta_i18n_write', True)
        except OSError:
            storage.set('rosetta_i18n_write', False)

        return HttpResponseRedirect(reverse('rosetta-home'))
Ejemplo n.º 2
0
Archivo: views.py Proyecto: simone/upy
def list_languages(request, do_session_warn=False):
    """
    Lists the languages for the current project, the gettext catalog files
    that can be translated and their translation progress
    """
    storage = get_storage(request)
    languages = []

    if 'filter' in request.GET:
        if request.GET.get('filter') in ('project', 'third-party', 'django',
                                         'all'):
            filter_ = request.GET.get('filter')
            storage.set('rosetta_i18n_catalog_filter', filter_)
            return HttpResponseRedirect(reverse('rosetta-pick-file'))

    rosetta_i18n_catalog_filter = storage.get('rosetta_i18n_catalog_filter',
                                              'project')

    third_party_apps = rosetta_i18n_catalog_filter in ('all', 'third-party')
    django_apps = rosetta_i18n_catalog_filter in ('all', 'django')
    project_apps = rosetta_i18n_catalog_filter in ('all', 'project')

    has_pos = False
    for language in settings.LANGUAGES:
        pos = find_pos(language[0],
                       project_apps=project_apps,
                       django_apps=django_apps,
                       third_party_apps=third_party_apps)
        has_pos = has_pos or len(pos)
        languages.append((
            language[0],
            _(language[1]),
            [(get_app_name(l), os.path.realpath(l), pofile(l)) for l in pos],
        ))
    try:
        ADMIN_MEDIA_PREFIX = settings.ADMIN_MEDIA_PREFIX
    except AttributeError:
        ADMIN_MEDIA_PREFIX = settings.STATIC_URL + 'admin/'

    version = rosetta.get_version(True)
    do_session_warn = do_session_warn and 'SessionRosettaStorage' in rosetta_settings.STORAGE_CLASS and 'signed_cookies' in settings.SESSION_ENGINE
    return render_to_response('rosetta_languages.html',
                              locals(),
                              context_instance=RequestContext(request))
Ejemplo n.º 3
0
Archivo: views.py Proyecto: simone/upy
def lang_sel(request, langid, idx):
    """
    Selects a file to be translated
    """
    storage = get_storage(request)
    if langid not in [l[0] for l in settings.LANGUAGES]:
        raise Http404
    else:

        rosetta_i18n_catalog_filter = storage.get(
            'rosetta_i18n_catalog_filter', 'project')

        third_party_apps = rosetta_i18n_catalog_filter in ('all',
                                                           'third-party')
        django_apps = rosetta_i18n_catalog_filter in ('all', 'django')
        project_apps = rosetta_i18n_catalog_filter in ('all', 'project')
        file_ = find_pos(langid,
                         project_apps=project_apps,
                         django_apps=django_apps,
                         third_party_apps=third_party_apps)[int(idx)]

        storage.set('rosetta_i18n_lang_code', langid)
        storage.set(
            'rosetta_i18n_lang_name',
            unicode([l[1] for l in settings.LANGUAGES if l[0] == langid][0]))
        storage.set('rosetta_i18n_fn', file_)
        po = pofile(file_)
        for entry in po:
            entry.md5hash = hashlib.md5(
                entry.msgid.encode("utf8") + entry.msgstr.encode("utf8") +
                (entry.msgctxt and entry.msgctxt.encode("utf8") or "")
            ).hexdigest()

        storage.set('rosetta_i18n_pofile', po)
        try:
            os.utime(file_, None)
            storage.set('rosetta_i18n_write', True)
        except OSError:
            storage.set('rosetta_i18n_write', False)

        return HttpResponseRedirect(reverse('rosetta-home'))
Ejemplo n.º 4
0
Archivo: views.py Proyecto: 20tab/upy
def list_languages(request, do_session_warn=False):
    """
    Lists the languages for the current project, the gettext catalog files
    that can be translated and their translation progress
    """
    storage = get_storage(request)
    languages = []

    if "filter" in request.GET:
        if request.GET.get("filter") in ("project", "third-party", "django", "all"):
            filter_ = request.GET.get("filter")
            storage.set("rosetta_i18n_catalog_filter", filter_)
            return HttpResponseRedirect(reverse("rosetta-pick-file"))

    rosetta_i18n_catalog_filter = storage.get("rosetta_i18n_catalog_filter", "project")

    third_party_apps = rosetta_i18n_catalog_filter in ("all", "third-party")
    django_apps = rosetta_i18n_catalog_filter in ("all", "django")
    project_apps = rosetta_i18n_catalog_filter in ("all", "project")

    has_pos = False
    for language in settings.LANGUAGES:
        pos = find_pos(
            language[0], project_apps=project_apps, django_apps=django_apps, third_party_apps=third_party_apps
        )
        has_pos = has_pos or len(pos)
        languages.append(
            (language[0], _(language[1]), [(get_app_name(l), os.path.realpath(l), pofile(l)) for l in pos])
        )
    try:
        ADMIN_MEDIA_PREFIX = settings.ADMIN_MEDIA_PREFIX
    except AttributeError:
        ADMIN_MEDIA_PREFIX = settings.STATIC_URL + "admin/"

    version = rosetta.get_version(True)
    do_session_warn = (
        do_session_warn
        and "SessionRosettaStorage" in rosetta_settings.STORAGE_CLASS
        and "signed_cookies" in settings.SESSION_ENGINE
    )
    return render_to_response("rosetta_languages.html", locals(), context_instance=RequestContext(request))