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'))
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))
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'))
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))