Initial commit
This commit is contained in:
0
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/__init__.py
vendored
Normal file
0
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/__init__.py
vendored
Normal file
Binary file not shown.
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/__pycache__/apps.cpython-310.pyc
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/__pycache__/apps.cpython-310.pyc
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
9
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/apps.py
vendored
Normal file
9
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/apps.py
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
from django.apps import AppConfig
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
||||
class SimpleTranslationAppConfig(AppConfig):
|
||||
name = "wagtail.contrib.simple_translation"
|
||||
label = "simple_translation"
|
||||
verbose_name = _("Wagtail simple translation")
|
||||
default_auto_field = "django.db.models.AutoField"
|
||||
132
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/forms.py
vendored
Normal file
132
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/forms.py
vendored
Normal file
@@ -0,0 +1,132 @@
|
||||
from django import forms
|
||||
from django.urls import reverse
|
||||
from django.utils.safestring import mark_safe
|
||||
from django.utils.translation import gettext_lazy, ngettext
|
||||
|
||||
from wagtail.models import Locale, Page
|
||||
|
||||
|
||||
class CheckboxSelectMultipleWithDisabledOptions(forms.CheckboxSelectMultiple):
|
||||
option_template_name = "simple_translation/admin/input_option.html"
|
||||
disabled_values = []
|
||||
|
||||
def create_option(self, *args, **kwargs):
|
||||
option = super().create_option(*args, **kwargs)
|
||||
if option["value"] in self.disabled_values:
|
||||
option["attrs"]["disabled"] = True
|
||||
else:
|
||||
# Only set target/action if not disabled to ignore change on disabled items
|
||||
option["attrs"]["data-action"] = "w-bulk#toggle"
|
||||
option["attrs"]["data-w-bulk-target"] = "item"
|
||||
return option
|
||||
|
||||
|
||||
class SubmitTranslationForm(forms.Form):
|
||||
# Note: We don't actually use select_all in Python, it is just the
|
||||
# easiest way to add the widget to the form. It's controlled in JS.
|
||||
select_all = forms.BooleanField(
|
||||
label=gettext_lazy("Select all"),
|
||||
required=False,
|
||||
widget=forms.CheckboxInput(
|
||||
attrs={
|
||||
"data-action": "w-bulk#toggleAll",
|
||||
"data-w-bulk-target": "all",
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
locales = forms.ModelMultipleChoiceField(
|
||||
label=gettext_lazy("Locales"),
|
||||
queryset=Locale.objects.none(),
|
||||
widget=CheckboxSelectMultipleWithDisabledOptions,
|
||||
)
|
||||
include_subtree = forms.BooleanField(
|
||||
required=False, help_text=gettext_lazy("All child pages will be created.")
|
||||
)
|
||||
|
||||
def __init__(self, instance, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
hide_include_subtree = True
|
||||
self.show_submit = True
|
||||
|
||||
if isinstance(instance, Page):
|
||||
descendant_count = instance.get_descendants().count()
|
||||
|
||||
if descendant_count > 0:
|
||||
hide_include_subtree = False
|
||||
self.fields["include_subtree"].label = ngettext(
|
||||
"Include subtree (%(descendant_count)s page)",
|
||||
"Include subtree (%(descendant_count)s pages)",
|
||||
descendant_count,
|
||||
) % {"descendant_count": descendant_count}
|
||||
|
||||
if hide_include_subtree:
|
||||
self.fields["include_subtree"].widget = forms.HiddenInput()
|
||||
|
||||
untranslated_locales = Locale.objects.exclude(
|
||||
id__in=instance.get_translations(inclusive=True).values_list(
|
||||
"locale_id", flat=True
|
||||
)
|
||||
)
|
||||
self.fields["locales"].queryset = untranslated_locales
|
||||
|
||||
# For snippets, hide select all if there is one option.
|
||||
# Using len() instead of count() here as we're going to evaluate this queryset
|
||||
# anyway and it gets cached so it'll only have one query in the end.
|
||||
hide_select_all = len(untranslated_locales) < 2
|
||||
|
||||
if isinstance(instance, Page):
|
||||
parent = instance.get_parent()
|
||||
|
||||
# Find allowed locale options.
|
||||
if parent.is_root():
|
||||
# All locale options are allowed.
|
||||
allowed_locale_ids = Locale.objects.all().values_list("id", flat=True)
|
||||
else:
|
||||
# Only the locale options that have a translated parent are allowed.
|
||||
allowed_locale_ids = (
|
||||
instance.get_parent()
|
||||
.get_translations(inclusive=True)
|
||||
.values_list("locale_id", flat=True)
|
||||
)
|
||||
|
||||
# Get and set the locale options that are disabled.
|
||||
disabled_locales = Locale.objects.exclude(
|
||||
id__in=allowed_locale_ids
|
||||
).values_list("id", flat=True)
|
||||
self.fields["locales"].widget.disabled_values = disabled_locales
|
||||
|
||||
if disabled_locales:
|
||||
# Display a help text.
|
||||
url = reverse(
|
||||
"simple_translation:submit_page_translation", args=[parent.id]
|
||||
)
|
||||
help_text = ngettext(
|
||||
"A locale is disabled because a parent page is not translated.",
|
||||
"Some locales are disabled because some parent pages are not translated.",
|
||||
len(disabled_locales),
|
||||
)
|
||||
help_text += "<br>"
|
||||
help_text += f'<a href="{url}">'
|
||||
help_text += ngettext(
|
||||
"Translate the parent page.",
|
||||
"Translate the parent pages.",
|
||||
len(disabled_locales),
|
||||
)
|
||||
help_text += "</a>"
|
||||
self.fields["locales"].help_text = mark_safe(help_text)
|
||||
|
||||
# For pages, if there is one locale or all locales are disabled.
|
||||
hide_select_all = (
|
||||
len(untranslated_locales) == 1
|
||||
or len(untranslated_locales) - len(disabled_locales) == 0
|
||||
)
|
||||
|
||||
# Hide the submit if all untranslated locales are disabled.
|
||||
# This property is used in the template.
|
||||
if len(untranslated_locales) == len(disabled_locales):
|
||||
self.show_submit = False
|
||||
|
||||
if hide_select_all:
|
||||
self.fields["select_all"].widget = forms.HiddenInput()
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/ar/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/ar/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,26 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Younes Oumakhou, 2022
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Younes Oumakhou, 2022\n"
|
||||
"Language-Team: Arabic (https://app.transifex.com/torchbox/teams/8009/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ar\n"
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
|
||||
"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "تحديد الكل"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/be/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/be/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,99 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Andrei Satsevich, 2023
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Andrei Satsevich, 2023\n"
|
||||
"Language-Team: Belarusian (https://app.transifex.com/torchbox/teams/8009/"
|
||||
"be/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: be\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || "
|
||||
"(n%100>=11 && n%100<=14)? 2 : 3);\n"
|
||||
|
||||
msgid "Wagtail simple translation"
|
||||
msgstr "Просты пераклад Wagtail "
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Выбраць усе"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "Лакалізацыі "
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "Будуць створаны ўсе даччыныя старонкі."
|
||||
|
||||
#, python-format
|
||||
msgid "Include subtree (%(descendant_count)s page)"
|
||||
msgid_plural "Include subtree (%(descendant_count)s pages)"
|
||||
msgstr[0] "Уключаючая дрэва (%(descendant_count)s старонаку)"
|
||||
msgstr[1] "Уключаючая дрэва (%(descendant_count)s старонакі)"
|
||||
msgstr[2] "Уключаючая дрэва (%(descendant_count)s старонак)"
|
||||
msgstr[3] "Уключаючая дрэва (%(descendant_count)s старонак)"
|
||||
|
||||
msgid "A locale is disabled because a parent page is not translated."
|
||||
msgid_plural ""
|
||||
"Some locales are disabled because some parent pages are not translated."
|
||||
msgstr[0] "Лакаль адключана, паколькі бацькоўская старонка не перакладзеная."
|
||||
msgstr[1] ""
|
||||
"Некаторыя лакалі адключаны, паколькі некаторыя бацькоўскія старонкі не "
|
||||
"перакладзены."
|
||||
msgstr[2] ""
|
||||
"Некаторыя лакалі адключаны, паколькі некаторыя бацькоўскія старонкі не "
|
||||
"перакладзены."
|
||||
msgstr[3] ""
|
||||
"Некаторыя лакалі адключаны, паколькі некаторыя бацькоўскія старонкі не "
|
||||
"перакладзены."
|
||||
|
||||
msgid "Translate the parent page."
|
||||
msgid_plural "Translate the parent pages."
|
||||
msgstr[0] "Перакласці бацькоўскую старонку."
|
||||
msgstr[1] "Перакласці бацькоўскія старонкі."
|
||||
msgstr[2] "Перакласці бацькоўскія старонкі."
|
||||
msgstr[3] "Перакласці бацькоўскія старонкі."
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "Адправіць"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "Перавесці"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s лакалізацыі"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "Перакласці старонку"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr "Старонка '%(page_title)s ' была паспяхова створана ў %(locales)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "Перакласці %(model_name)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Successfully created %(locales)s for %(model_name)s '%(object)s'"
|
||||
msgstr "Паспяхова створаны %(locales)s для %(model_name)s '%(object)s'"
|
||||
|
||||
msgid "Translate this page"
|
||||
msgstr "Перакласці гэтую старонку"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr "Пераклад '%(title)s'"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/ca/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/ca/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,91 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Roger Pons <rogerpons@gmail.com>, 2024
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Roger Pons <rogerpons@gmail.com>, 2024\n"
|
||||
"Language-Team: Catalan (https://app.transifex.com/torchbox/teams/8009/ca/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ca\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Wagtail simple translation"
|
||||
msgstr "Traducció simple de Wagtail"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Seleccionar tot"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "Configuracions regionals"
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "Seran creades totes les pàgines filles"
|
||||
|
||||
#, python-format
|
||||
msgid "Include subtree (%(descendant_count)s page)"
|
||||
msgid_plural "Include subtree (%(descendant_count)s pages)"
|
||||
msgstr[0] "Incloure subarbre (%(descendant_count)s pàgina)"
|
||||
msgstr[1] "Incloure subarbre (%(descendant_count)s pàgines)"
|
||||
|
||||
msgid "A locale is disabled because a parent page is not translated."
|
||||
msgid_plural ""
|
||||
"Some locales are disabled because some parent pages are not translated."
|
||||
msgstr[0] ""
|
||||
"Una configuració regional està desactivada perquè una pàgina pare no està "
|
||||
"traduïda."
|
||||
msgstr[1] ""
|
||||
"Algunes configuracions regionals estan desactivades perquè algunes pàgines "
|
||||
"pare no estan traduïdes."
|
||||
|
||||
msgid "Translate the parent page."
|
||||
msgid_plural "Translate the parent pages."
|
||||
msgstr[0] "Traduir la pàgina pare"
|
||||
msgstr[1] "Traduir les pàgines pare."
|
||||
|
||||
msgid "Can submit translations"
|
||||
msgstr "Pot enviar traduccions"
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "Enviar"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "Traduir"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s configuracions regionals"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "Traduir pàgina"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr "S'ha creat correctament la pàgina '%(page_title)s' a %(locales)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "Traduir %(model_name)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Successfully created %(locales)s for %(model_name)s '%(object)s'"
|
||||
msgstr "S'ha creat correctament %(locales)s per %(model_name)s '%(object)s'"
|
||||
|
||||
msgid "Translate this page"
|
||||
msgstr "Traduir aquesta pàgina"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr "Traduir '%(title)s'"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/cs/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/cs/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,69 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Mirek Zvolský <zvolsky@seznam.cz>, 2022
|
||||
# Loic Teixeira, 2022
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Loic Teixeira, 2022\n"
|
||||
"Language-Team: Czech (https://app.transifex.com/torchbox/teams/8009/cs/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: cs\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n "
|
||||
"<= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
|
||||
|
||||
msgid "Wagtail simple translation"
|
||||
msgstr "Wagtail jednoduchý překlad"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Vybrat vše"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "Místní nastavení (locales)"
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "Budou vytvořeny všechny podstránky."
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "Potvrdit"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "Přeložit"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s místních nastavení (locales)"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "Přeložit stránku"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr "Stránka '%(page_title)s' byla úspěšně vytvořena v %(locales)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "Přeložit %(model_name)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Successfully created %(locales)s for %(model_name)s '%(object)s'"
|
||||
msgstr "Úspěšně vytvořeno %(locales)s pro %(model_name)s '%(object)s'"
|
||||
|
||||
msgid "Translate this page"
|
||||
msgstr "Přeložit tuto stránku"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr "Přeložit '%(title)s'"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/cy/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/cy/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,93 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Philip Crisp, 2022
|
||||
# Loic Teixeira, 2022
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Loic Teixeira, 2022\n"
|
||||
"Language-Team: Welsh (https://app.transifex.com/torchbox/teams/8009/cy/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: cy\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != "
|
||||
"11) ? 2 : 3;\n"
|
||||
|
||||
msgid "Wagtail simple translation"
|
||||
msgstr "Cyfieithiad Wagtail syml"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Dewiswch bob un"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "Locales"
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "Bydd holl dudalennau plentyn yn cael eu creu."
|
||||
|
||||
msgid "A locale is disabled because a parent page is not translated."
|
||||
msgid_plural ""
|
||||
"Some locales are disabled because some parent pages are not translated."
|
||||
msgstr[0] ""
|
||||
"Mae locale wedi'i analluogi oherwydd nad yw tudalen rhiant yn cael ei "
|
||||
"chyfieithu."
|
||||
msgstr[1] ""
|
||||
"Mae rhai locales wedi'u hanalluogi oherwydd nad yw rhai tudalennau rhiant yn "
|
||||
"cael eu cyfieithu."
|
||||
msgstr[2] ""
|
||||
"Mae rhai locales wedi'u hanalluogi oherwydd nad yw rhai tudalennau rhiant yn "
|
||||
"cael eu cyfieithu."
|
||||
msgstr[3] ""
|
||||
"Mae rhai locales wedi'u hanalluogi oherwydd nad yw rhai tudalennau rhiant yn "
|
||||
"cael eu cyfieithu."
|
||||
|
||||
msgid "Translate the parent page."
|
||||
msgid_plural "Translate the parent pages."
|
||||
msgstr[0] "Cyfieithwch y tudalen rhiant."
|
||||
msgstr[1] "Cyfieithwch y tudalennau rhiant."
|
||||
msgstr[2] "Cyfieithwch y tudalennau rhiant."
|
||||
msgstr[3] "Cyfieithwch y tudalennau rhiant."
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "Cyflwyno"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "Cyfieithu"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s locales"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "Cyfieithu tudalen"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr "Crëwyd y dudalen '%(page_title)s' yn llwyddiannus yn %(locales)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "Cyfieithu %(model_name)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Successfully created %(locales)s for %(model_name)s '%(object)s'"
|
||||
msgstr ""
|
||||
"Wedi creu %(locales)s yn llwyddiannus ar gyfer %(model_name)s '%(object)s'"
|
||||
|
||||
msgid "Translate this page"
|
||||
msgstr "Gyfieithu'r tudalen hon"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr "Cyfieithu '%(title)s'"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/de/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/de/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,93 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Oliver Engel <codeangel@posteo.de>, 2022
|
||||
# Loic Teixeira, 2022
|
||||
# Stefan Hammer <stefan@hammerworxx.com>, 2024
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Stefan Hammer <stefan@hammerworxx.com>, 2024\n"
|
||||
"Language-Team: German (https://app.transifex.com/torchbox/teams/8009/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: de\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Wagtail simple translation"
|
||||
msgstr "Wagtail einfache Übersetzung"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Alles auswählen"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "Locale"
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "Alle Unterseiten werden erstellt."
|
||||
|
||||
#, python-format
|
||||
msgid "Include subtree (%(descendant_count)s page)"
|
||||
msgid_plural "Include subtree (%(descendant_count)s pages)"
|
||||
msgstr[0] "Teilbaum (%(descendant_count)s Seite) einbeziehen"
|
||||
msgstr[1] "Teilbaum (%(descendant_count)s Seiten) einbeziehen"
|
||||
|
||||
msgid "A locale is disabled because a parent page is not translated."
|
||||
msgid_plural ""
|
||||
"Some locales are disabled because some parent pages are not translated."
|
||||
msgstr[0] ""
|
||||
"Eine Locale ist deaktiviert, weil eine übergeordnete Seite nicht übersetzt "
|
||||
"ist."
|
||||
msgstr[1] ""
|
||||
"Einige Locales sind deaktiviert, weil manche übergeordneten Seiten nicht "
|
||||
"übersetzt sind."
|
||||
|
||||
msgid "Translate the parent page."
|
||||
msgid_plural "Translate the parent pages."
|
||||
msgstr[0] "Die übergeordnete Seite übersetzen"
|
||||
msgstr[1] "Die übergeordneten Seiten übersetzen"
|
||||
|
||||
msgid "Can submit translations"
|
||||
msgstr "Kann Übersetzungen einreichen"
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "Absenden"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "Übersetzen"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s locale"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "Seite übersetzen"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr "Die Seite '%(page_title)s' wurde erfolgreich in %(locales)s erstellt"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "Übersetze %(model_name)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Successfully created %(locales)s for %(model_name)s '%(object)s'"
|
||||
msgstr "Erfolgreich erstellt %(locales)s für %(model_name)s '%(object)s'"
|
||||
|
||||
msgid "Translate this page"
|
||||
msgstr "Diese Seite übersetzen"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr "’%(title)s' übersetzen"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/dv/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/dv/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,84 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Fauzaan Gasim, 2024
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Fauzaan Gasim, 2024\n"
|
||||
"Language-Team: Divehi (https://app.transifex.com/torchbox/teams/8009/dv/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: dv\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Wagtail simple translation"
|
||||
msgstr "ވެގްޓޭލް އާއްމު ތަރުޖަމާ"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "ހުރިހާއެއްޗެއް ސެލެކްޓް ކޮށްލާ"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "ބަސްތައް"
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "ހުރިހާ ޗައިލްޑް ޕޭޖްތަކެއް ވެސް ހެދޭނެ"
|
||||
|
||||
#, python-format
|
||||
msgid "Include subtree (%(descendant_count)s page)"
|
||||
msgid_plural "Include subtree (%(descendant_count)s pages)"
|
||||
msgstr[0] "ދަށު ގަސް ހިމަނާ ( %(descendant_count)s ސަފްހާ)"
|
||||
msgstr[1] "ދަށު ގަސް ހިމަނާ (%(descendant_count)sސަފްހާތައް)"
|
||||
|
||||
msgid "A locale is disabled because a parent page is not translated."
|
||||
msgid_plural ""
|
||||
"Some locales are disabled because some parent pages are not translated."
|
||||
msgstr[0] "އެއް ބެލެނިވެރި ސަފްހާ ތަރުޖަމާ ކުރެވިފައި ނުވާތީ އެއް locales ވަނީ ޑިސޭބަލް ކޮށްލާފައި"
|
||||
msgstr[1] "ބައެއް ބެލެނިވެރި ސަފްހާތައް ތަރުޖަމާ ކުރެވިފައި ނުވާތީ ބަައެއް ބަސްތައް ވަނީ ޑިސޭބަލް ކޮށްލާފައި"
|
||||
|
||||
msgid "Translate the parent page."
|
||||
msgid_plural "Translate the parent pages."
|
||||
msgstr[0] "ބެލެނިވެރި ޞަފްޙާ ތަރުޖަމާ ކުރޭ"
|
||||
msgstr[1] "ބެލެނިވެރި ޞަފްޙާތައް ތަރުޖަމާ ކުރޭ"
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "ހުށައަޅާ"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "ތަރުޖަމާ ކުރޭ"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s ބަސްތައް"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "ސަފްހާ ތަރުޖަމާ ކުރޭ"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr "ސަފުހާ '%(page_title)s' ވަނީ %(locales)s އިން ކާމިޔާބުކަމާއެކީ އުފެއްދިފައި"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "%(model_name)sތަރުޖަމާ ކުރޭ"
|
||||
|
||||
#, python-format
|
||||
msgid "Successfully created %(locales)s for %(model_name)s '%(object)s'"
|
||||
msgstr "ކާމިޔާބުކަމާއެކީ %(model_name)s%(object)s އަށް %(locales)s އުފެއްދިއްޖެ "
|
||||
|
||||
msgid "Translate this page"
|
||||
msgstr "މި ޞަފްޙާ ތަރުޖަމާ ކުރޭ"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr " '%(title)s' ތަރުޖަމާ ކުރޭ"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/el/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/el/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,25 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# fekioh, 2022
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: fekioh, 2022\n"
|
||||
"Language-Team: Greek (https://app.transifex.com/torchbox/teams/8009/el/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: el\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Επιλογή όλων"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/en/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/en/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
101
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/en/LC_MESSAGES/django.po
vendored
Normal file
101
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/en/LC_MESSAGES/django.po
vendored
Normal file
@@ -0,0 +1,101 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-08-07 10:06+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: apps.py:8
|
||||
msgid "Wagtail simple translation"
|
||||
msgstr ""
|
||||
|
||||
#: forms.py:28
|
||||
msgid "Select all"
|
||||
msgstr ""
|
||||
|
||||
#: forms.py:39
|
||||
msgid "Locales"
|
||||
msgstr ""
|
||||
|
||||
#: forms.py:44
|
||||
msgid "All child pages will be created."
|
||||
msgstr ""
|
||||
|
||||
#: forms.py:59
|
||||
#, python-format
|
||||
msgid "Include subtree (%(descendant_count)s page)"
|
||||
msgid_plural "Include subtree (%(descendant_count)s pages)"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: forms.py:106
|
||||
msgid "A locale is disabled because a parent page is not translated."
|
||||
msgid_plural ""
|
||||
"Some locales are disabled because some parent pages are not translated."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: forms.py:113
|
||||
msgid "Translate the parent page."
|
||||
msgid_plural "Translate the parent pages."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: models.py:21
|
||||
msgid "Can submit translations"
|
||||
msgstr ""
|
||||
|
||||
#: templates/simple_translation/admin/submit_translation.html:26
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:22 wagtail_hooks.py:63 wagtail_hooks.py:80 wagtail_hooks.py:111
|
||||
msgid "Translate"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: always plural
|
||||
#: views.py:78
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:98
|
||||
msgid "Translate page"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:122
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:128
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:157
|
||||
#, python-format
|
||||
msgid "Successfully created %(locales)s for %(model_name)s '%(object)s'"
|
||||
msgstr ""
|
||||
|
||||
#: wagtail_hooks.py:84
|
||||
msgid "Translate this page"
|
||||
msgstr ""
|
||||
|
||||
#: wagtail_hooks.py:114
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr ""
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/es/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/es/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,87 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Amós Oviedo <amos.oviedo@gmail.com>, 2022
|
||||
# Loic Teixeira, 2022
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Loic Teixeira, 2022\n"
|
||||
"Language-Team: Spanish (https://app.transifex.com/torchbox/teams/8009/es/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? "
|
||||
"1 : 2;\n"
|
||||
|
||||
msgid "Wagtail simple translation"
|
||||
msgstr "Traducción simple de Wagtail"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Seleccionar todo"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "Regiones"
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "Todas las páginas hijas serán creadas."
|
||||
|
||||
msgid "A locale is disabled because a parent page is not translated."
|
||||
msgid_plural ""
|
||||
"Some locales are disabled because some parent pages are not translated."
|
||||
msgstr[0] ""
|
||||
"Una región está deshabilitada porque una página padre no está traducida."
|
||||
msgstr[1] ""
|
||||
"Algunas regiones están deshabilitadas porque algunas páginas padre no están "
|
||||
"traducidas."
|
||||
msgstr[2] ""
|
||||
"Algunas regiones están deshabilitadas porque algunas páginas padre no están "
|
||||
"traducidas."
|
||||
|
||||
msgid "Translate the parent page."
|
||||
msgid_plural "Translate the parent pages."
|
||||
msgstr[0] "Traduce la página padre."
|
||||
msgstr[1] "Traduce las páginas padre."
|
||||
msgstr[2] "Traduce las páginas padre."
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "Enviar"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "Traducir"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s regiones"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "Traducir página"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr "La página '%(page_title)s' fue creada con éxito en %(locales)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "Traducir %(model_name)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Successfully created %(locales)s for %(model_name)s '%(object)s'"
|
||||
msgstr "Creado con éxito %(locales)s para %(model_name)s '%(object)s'"
|
||||
|
||||
msgid "Translate this page"
|
||||
msgstr "Traducir esta página"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr "Traducir '%(title)s'"
|
||||
Binary file not shown.
@@ -0,0 +1,27 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Rodrigo Yanez, 2023
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Rodrigo Yanez, 2023\n"
|
||||
"Language-Team: Spanish (Latin America) (https://app.transifex.com/torchbox/"
|
||||
"teams/8009/es_419/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es_419\n"
|
||||
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? "
|
||||
"1 : 2;\n"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Seleccionar todo"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/fa/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/fa/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,25 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Amir Mahmoodi, 2023
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Amir Mahmoodi, 2023\n"
|
||||
"Language-Team: Persian (https://app.transifex.com/torchbox/teams/8009/fa/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: fa\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "انتخاب همه"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/fi/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/fi/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,62 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Jiri Grönroos <jiri.gronroos@iki.fi>, 2022
|
||||
# Loic Teixeira, 2022
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Loic Teixeira, 2022\n"
|
||||
"Language-Team: Finnish (https://app.transifex.com/torchbox/teams/8009/fi/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: fi\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Valitse kaikki"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "Maa-asetustot"
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "Kaikki lapsisivut luodaan."
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "Lähetä"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "Käännä"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s maa-asetustoa"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "Käännä sivu"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr ""
|
||||
"Sivu '%(page_title)s' luotiin onnistuneesti maa-asetustoille %(locales)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "Käännä %(model_name)s"
|
||||
|
||||
msgid "Translate this page"
|
||||
msgstr "Käännä tämä sivu"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr "Käännä '%(title)s'"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/fr/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/fr/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,98 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Loic Teixeira, 2022
|
||||
# Sébastien Corbin <seb.corbin@gmail.com>, 2024
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Sébastien Corbin <seb.corbin@gmail.com>, 2024\n"
|
||||
"Language-Team: French (https://app.transifex.com/torchbox/teams/8009/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % "
|
||||
"1000000 == 0 ? 1 : 2;\n"
|
||||
|
||||
msgid "Wagtail simple translation"
|
||||
msgstr "Traduction Simple Wagtail"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Tout sélectionner"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "Régions"
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "Toutes les sous-pages seront crées."
|
||||
|
||||
#, python-format
|
||||
msgid "Include subtree (%(descendant_count)s page)"
|
||||
msgid_plural "Include subtree (%(descendant_count)s pages)"
|
||||
msgstr[0] "Inclure le sous-arbre (%(descendant_count)s page)"
|
||||
msgstr[1] "Inclure le sous-arbre (%(descendant_count)s page)"
|
||||
msgstr[2] "Inclure le sous-arbre (%(descendant_count)s page)"
|
||||
|
||||
msgid "A locale is disabled because a parent page is not translated."
|
||||
msgid_plural ""
|
||||
"Some locales are disabled because some parent pages are not translated."
|
||||
msgstr[0] "Une région est désactivée car une page parente n'est pas traduite."
|
||||
msgstr[1] ""
|
||||
"Certaines régions sont désactivées car certaines pages parentes ne sont pas "
|
||||
"traduites."
|
||||
msgstr[2] ""
|
||||
"Certaines régions sont désactivées car certaines pages parentes ne sont pas "
|
||||
"traduites."
|
||||
|
||||
msgid "Translate the parent page."
|
||||
msgid_plural "Translate the parent pages."
|
||||
msgstr[0] "Traduire la page parente."
|
||||
msgstr[1] "Traduire les pages parentes."
|
||||
msgstr[2] "Traduire les pages parentes."
|
||||
|
||||
msgid "Can submit translations"
|
||||
msgstr "Peut soumettre des traductions"
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "Soumettre"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "Traduire"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s régions"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "Traduire la page"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr "La page '%(page_title)s' a été crée avec succès en %(locales)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "Traduire %(model_name)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Successfully created %(locales)s for %(model_name)s '%(object)s'"
|
||||
msgstr ""
|
||||
"Les régions %(locales)s ont été créées avec succès pour %(model_name)s "
|
||||
"'%(object)s'"
|
||||
|
||||
msgid "Translate this page"
|
||||
msgstr "Traduire cette page"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr "Traduire '%(title)s'"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/gl/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/gl/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,91 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Loic Teixeira, 2022
|
||||
# X Bello <xbello@gmail.com>, 2024
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: X Bello <xbello@gmail.com>, 2024\n"
|
||||
"Language-Team: Galician (https://app.transifex.com/torchbox/teams/8009/gl/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: gl\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Wagtail simple translation"
|
||||
msgstr "Traducción simple de Wagtail"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Seleccionar todo"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "Idiomas"
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "Vanse crear tódalas páxinas fillas."
|
||||
|
||||
#, python-format
|
||||
msgid "Include subtree (%(descendant_count)s page)"
|
||||
msgid_plural "Include subtree (%(descendant_count)s pages)"
|
||||
msgstr[0] "Incluir subárbore (%(descendant_count)s páxina)"
|
||||
msgstr[1] "Incluir subárbore (%(descendant_count)s páxinas)"
|
||||
|
||||
msgid "A locale is disabled because a parent page is not translated."
|
||||
msgid_plural ""
|
||||
"Some locales are disabled because some parent pages are not translated."
|
||||
msgstr[0] ""
|
||||
"Deshabilitouse unha rexión porque unha páxina nai non está traducida."
|
||||
msgstr[1] ""
|
||||
"Deshabilitáronse algunhas rexións porque algunas páxinas nai non está "
|
||||
"traducidas."
|
||||
|
||||
msgid "Translate the parent page."
|
||||
msgid_plural "Translate the parent pages."
|
||||
msgstr[0] "Traducir a páxina nai."
|
||||
msgstr[1] "Traducir as páxinas nai."
|
||||
|
||||
msgid "Can submit translations"
|
||||
msgstr "Pode enviar traducións"
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "Enviar"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "Traducir"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s rexións"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "Traducir páxina"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr "A páxina '%(page_title)s' creouse con éxito en %(locales)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "Traducir %(model_name)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Successfully created %(locales)s for %(model_name)s '%(object)s'"
|
||||
msgstr "Creados con éxito %(locales)s para %(model_name)s '%(object)s'"
|
||||
|
||||
msgid "Translate this page"
|
||||
msgstr "Traducir esta páxina"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr "Traducir '%(title)s'"
|
||||
Binary file not shown.
@@ -0,0 +1,95 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Loic Teixeira, 2022
|
||||
# Dino Aljević <dino8890@protonmail.com>, 2023
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Dino Aljević <dino8890@protonmail.com>, 2023\n"
|
||||
"Language-Team: Croatian (Croatia) (https://app.transifex.com/torchbox/"
|
||||
"teams/8009/hr_HR/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: hr_HR\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
|
||||
msgid "Wagtail simple translation"
|
||||
msgstr "Wagtail jednostavno prevođenje"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Odaberi sve"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "Lokaliteti"
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "Sve podstranice će biti stvorene."
|
||||
|
||||
#, python-format
|
||||
msgid "Include subtree (%(descendant_count)s page)"
|
||||
msgid_plural "Include subtree (%(descendant_count)s pages)"
|
||||
msgstr[0] "Uključi podstranice (%(descendant_count)s stranica)"
|
||||
msgstr[1] "Uključi podstranice (%(descendant_count)s stranica)"
|
||||
msgstr[2] "Uključi podstranice (%(descendant_count)s stranica)"
|
||||
|
||||
msgid "A locale is disabled because a parent page is not translated."
|
||||
msgid_plural ""
|
||||
"Some locales are disabled because some parent pages are not translated."
|
||||
msgstr[0] ""
|
||||
"Lokalitet je onemogućen budući da roditeljska stranica nije prevedena."
|
||||
msgstr[1] ""
|
||||
"Neki lokaliteti su onemogućeni budući da roditeljske stranice nisu prevedene."
|
||||
msgstr[2] ""
|
||||
"Neki lokaliteti su onemogućeni budući da roditeljske stranice nisu prevedene."
|
||||
|
||||
msgid "Translate the parent page."
|
||||
msgid_plural "Translate the parent pages."
|
||||
msgstr[0] "Prevedi roditeljsku stranicu."
|
||||
msgstr[1] "Prevedi roditeljske stranice."
|
||||
msgstr[2] "Prevedi roditeljske stranice."
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "Prevedi"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "Prevedi"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s lokaliteti"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "Prevedi stranicu"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr ""
|
||||
"Stranica '%(page_title)s' je uspješno stvorena u lokalitetu %(locales)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "Prevedi %(model_name)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Successfully created %(locales)s for %(model_name)s '%(object)s'"
|
||||
msgstr ""
|
||||
"Uspješno stvoreni lokaliteti %(locales)s za %(model_name)s '%(object)s'"
|
||||
|
||||
msgid "Translate this page"
|
||||
msgstr "Prevedi ovu stranicu"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr "Prevedi '%(title)s'"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/hu/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/hu/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,91 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Loic Teixeira, 2022
|
||||
# Istvan Farkas <istvan.farkas@gmail.com>, 2023
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Istvan Farkas <istvan.farkas@gmail.com>, 2023\n"
|
||||
"Language-Team: Hungarian (https://app.transifex.com/torchbox/teams/8009/"
|
||||
"hu/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: hu\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Wagtail simple translation"
|
||||
msgstr "Wagtail egyszerű fordítás"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Összes kiválasztása"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "Nyelvek"
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "Minden gyermekoldal létre lesz hozva."
|
||||
|
||||
#, python-format
|
||||
msgid "Include subtree (%(descendant_count)s page)"
|
||||
msgid_plural "Include subtree (%(descendant_count)s pages)"
|
||||
msgstr[0] "Alatta lévőkkel együtt (%(descendant_count)s oldal)"
|
||||
msgstr[1] "Alatta lévőkkel együtt (%(descendant_count)s oldal)"
|
||||
|
||||
msgid "A locale is disabled because a parent page is not translated."
|
||||
msgid_plural ""
|
||||
"Some locales are disabled because some parent pages are not translated."
|
||||
msgstr[0] "Egy nyelv le lett tiltva, mert egy szülőoldal nincs lefordítva."
|
||||
msgstr[1] ""
|
||||
"Néhány nyelv le van tiltva, mert egyes szülő oldalak nincsenek lefordítva."
|
||||
|
||||
msgid "Translate the parent page."
|
||||
msgid_plural "Translate the parent pages."
|
||||
msgstr[0] "Szülőoldal lefordítása."
|
||||
msgstr[1] "Szülőoldalak lefordítása."
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "Mehet"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "Fordítás"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s nyelv"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "Oldal fordítása"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr ""
|
||||
"A(z) '%(page_title)s' oldal sikeresen létrehozva a következő nyelveken: "
|
||||
"%(locales)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "%(model_name)s fordítása"
|
||||
|
||||
#, python-format
|
||||
msgid "Successfully created %(locales)s for %(model_name)s '%(object)s'"
|
||||
msgstr ""
|
||||
"A(z) '%(object)s' %(model_name)s sikeresen létrehozva a következő nyelveken: "
|
||||
"%(locales)s"
|
||||
|
||||
msgid "Translate this page"
|
||||
msgstr "Oldal lefordítása"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr "'%(title)s' lefordítása"
|
||||
Binary file not shown.
@@ -0,0 +1,86 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Loic Teixeira, 2022
|
||||
# Arnar Tumi Þorsteinsson <arnartumi@gmail.com>, 2023
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Arnar Tumi Þorsteinsson <arnartumi@gmail.com>, 2023\n"
|
||||
"Language-Team: Icelandic (Iceland) (https://app.transifex.com/torchbox/"
|
||||
"teams/8009/is_IS/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: is_IS\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n"
|
||||
|
||||
msgid "Wagtail simple translation"
|
||||
msgstr "Wagtail einfaldar þýðingar"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Velja allt"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "Þýðingar"
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "Allar undirsíður verða búnar til"
|
||||
|
||||
#, python-format
|
||||
msgid "Include subtree (%(descendant_count)s page)"
|
||||
msgid_plural "Include subtree (%(descendant_count)s pages)"
|
||||
msgstr[0] "Innifela undirsíður (%(descendant_count)s síðu)"
|
||||
msgstr[1] "Innifela undirsíður (%(descendant_count)s síður)"
|
||||
|
||||
msgid "A locale is disabled because a parent page is not translated."
|
||||
msgid_plural ""
|
||||
"Some locales are disabled because some parent pages are not translated."
|
||||
msgstr[0] "Tungumál er ekki aðgengilegt þar sem yfirsíða er ekki þýdd."
|
||||
msgstr[1] "Sum tungumál eru ekki aðgengileg þar sem yfirsíður eru ekki þýddar."
|
||||
|
||||
msgid "Translate the parent page."
|
||||
msgid_plural "Translate the parent pages."
|
||||
msgstr[0] "Þýða yfirsíðuna"
|
||||
msgstr[1] "Þýða yfirsíður."
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "Senda"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "Þýða"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s þýðingar"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "Þýða síðu"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr "Tókst að búa til síðuna '%(page_title)s' í %(locales)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "Þýða %(model_name)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Successfully created %(locales)s for %(model_name)s '%(object)s'"
|
||||
msgstr "Tókst að búa til %(locales)s fyrir %(model_name)s '%(object)s'"
|
||||
|
||||
msgid "Translate this page"
|
||||
msgstr "Þýða þessa síðu"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr "Þýða '%(title)s'"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/it/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/it/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,94 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Loic Teixeira, 2022
|
||||
# Marco Badan <marco.badan@gmail.com>, 2022
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Marco Badan <marco.badan@gmail.com>, 2022\n"
|
||||
"Language-Team: Italian (https://app.transifex.com/torchbox/teams/8009/it/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: it\n"
|
||||
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? "
|
||||
"1 : 2;\n"
|
||||
|
||||
msgid "Wagtail simple translation"
|
||||
msgstr "Wagtail traduzione semplificata"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Seleziona tutti"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "Lingue"
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "Tutte le pagine figlio verranno create."
|
||||
|
||||
#, python-format
|
||||
msgid "Include subtree (%(descendant_count)s page)"
|
||||
msgid_plural "Include subtree (%(descendant_count)s pages)"
|
||||
msgstr[0] "Include sotto-albero (%(descendant_count)s pagina)"
|
||||
msgstr[1] "Include sotto-albero (%(descendant_count)s pagine)"
|
||||
msgstr[2] "Include sotto-albero (%(descendant_count)s pagine)"
|
||||
|
||||
msgid "A locale is disabled because a parent page is not translated."
|
||||
msgid_plural ""
|
||||
"Some locales are disabled because some parent pages are not translated."
|
||||
msgstr[0] ""
|
||||
"Una lingua è disabilitata perché una pagina genitore non è stata tradotta."
|
||||
msgstr[1] ""
|
||||
"Alcune lingue sono disabilitate perché alcune pagine genitore non sono state "
|
||||
"tradotte."
|
||||
msgstr[2] ""
|
||||
"Alcune lingue sono disabilitate perché alcune pagine genitore non sono state "
|
||||
"tradotte."
|
||||
|
||||
msgid "Translate the parent page."
|
||||
msgid_plural "Translate the parent pages."
|
||||
msgstr[0] "Traduci la pagina genitore."
|
||||
msgstr[1] "Traduci le pagine genitori."
|
||||
msgstr[2] "Traduci le pagine genitori."
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "Invia"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "Traduci"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s lingue"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "Traduci pagina"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr "La pagina '%(page_title)s' è stata creata con successo in %(locales)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "Traduci %(model_name)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Successfully created %(locales)s for %(model_name)s '%(object)s'"
|
||||
msgstr "%(locales)s creato con successo per %(model_name)s '%(object)s'"
|
||||
|
||||
msgid "Translate this page"
|
||||
msgstr "Traduci questa pagina"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr "Traduci '%(title)s'"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/ko/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/ko/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,74 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Kyu Choi, 2022
|
||||
# Loic Teixeira, 2022
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Loic Teixeira, 2022\n"
|
||||
"Language-Team: Korean (https://app.transifex.com/torchbox/teams/8009/ko/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ko\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
msgid "Wagtail simple translation"
|
||||
msgstr "웨그테일 간단 번역"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "모두 선택"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "영역"
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "모든 하위 페이지가 생성될 것"
|
||||
|
||||
msgid "A locale is disabled because a parent page is not translated."
|
||||
msgid_plural ""
|
||||
"Some locales are disabled because some parent pages are not translated."
|
||||
msgstr[0] "몇몇 상위 페이지가 번역되지 않아 몇몇 영역 사용불가"
|
||||
|
||||
msgid "Translate the parent page."
|
||||
msgid_plural "Translate the parent pages."
|
||||
msgstr[0] "상위 페이지 번역"
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "제출하다"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "번역하다"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s영역"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "페이지 번역"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr "페이지 '%(page_title)s'이 %(locales)s에서 생성되었습니다."
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "%(model_name)s번역"
|
||||
|
||||
#, python-format
|
||||
msgid "Successfully created %(locales)s for %(model_name)s '%(object)s'"
|
||||
msgstr "%(model_name)s '%(object)s'에 대한 %(locales)s을 생성했습니다."
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr "'%(title)s'번역"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/lt/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/lt/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,64 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Naglis Jonaitis, 2022
|
||||
# Loic Teixeira, 2022
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Loic Teixeira, 2022\n"
|
||||
"Language-Team: Lithuanian (https://app.transifex.com/torchbox/teams/8009/"
|
||||
"lt/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: lt\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < "
|
||||
"11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? "
|
||||
"1 : n % 1 != 0 ? 2: 3);\n"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Pažymėti visas"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "Lokalės"
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "Bus sukurti visi vidiniai puslapiai,"
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "Pateikti"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "Versti"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s lokalės"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "Versti puslapį"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr "'%(page_title)s' puslapis sėkminai sukurtas %(locales)s lokalėse"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "Versti %(model_name)s"
|
||||
|
||||
msgid "Translate this page"
|
||||
msgstr "Versti šį puslapį"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr "Versti '%(title)s'"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/mi/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/mi/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,25 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Awatea Randall <awatea@octave.nz>, 2021
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Awatea Randall <awatea@octave.nz>, 2021\n"
|
||||
"Language-Team: Maori (https://app.transifex.com/torchbox/teams/8009/mi/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: mi\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "Rohe"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/mn/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/mn/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,26 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# visual, 2022
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: visual, 2022\n"
|
||||
"Language-Team: Mongolian (https://app.transifex.com/torchbox/teams/8009/"
|
||||
"mn/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: mn\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Бүгдийг сонгох"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/nb/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/nb/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,26 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Jonathan D, 2023
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Jonathan D, 2023\n"
|
||||
"Language-Team: Norwegian Bokmål (https://app.transifex.com/torchbox/"
|
||||
"teams/8009/nb/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: nb\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Velg alle"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/nl/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/nl/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,95 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Loic Teixeira, 2022
|
||||
# Storm Heg <storm@stormbase.digital>, 2024
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Storm Heg <storm@stormbase.digital>, 2024\n"
|
||||
"Language-Team: Dutch (https://app.transifex.com/torchbox/teams/8009/nl/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: nl\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Wagtail simple translation"
|
||||
msgstr "Wagtail simpele vertalingen"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Selecteer alles"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "Taalregio's"
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "Alle onderliggende pagina's zullen worden aangemaakt."
|
||||
|
||||
#, python-format
|
||||
msgid "Include subtree (%(descendant_count)s page)"
|
||||
msgid_plural "Include subtree (%(descendant_count)s pages)"
|
||||
msgstr[0] "Neem onderliggende boomstructuur mee (%(descendant_count)s pagina)"
|
||||
msgstr[1] ""
|
||||
"Neem onderliggende boomstructuur mee (%(descendant_count)s pagina's)"
|
||||
|
||||
msgid "A locale is disabled because a parent page is not translated."
|
||||
msgid_plural ""
|
||||
"Some locales are disabled because some parent pages are not translated."
|
||||
msgstr[0] ""
|
||||
"Een taalregio is uitgeschakeld omdat een bovenliggende pagina niet vertaald "
|
||||
"is."
|
||||
msgstr[1] ""
|
||||
"Sommige taalregio's zijn uitgeschakeld omdat bovenliggende pagina's niet "
|
||||
"vertaald zijn."
|
||||
|
||||
msgid "Translate the parent page."
|
||||
msgid_plural "Translate the parent pages."
|
||||
msgstr[0] "Vertaal de bovenliggende pagina."
|
||||
msgstr[1] "Vertaal de bovenliggende paginas."
|
||||
|
||||
msgid "Can submit translations"
|
||||
msgstr "Kan vertalingen indienen"
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "Verzenden"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "Vertaal"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s taalregio's"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "Vertaal pagina"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr "De pagina '%(page_title)s' is succesvol aangemaakt in %(locales)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "Vertaal %(model_name)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Successfully created %(locales)s for %(model_name)s '%(object)s'"
|
||||
msgstr ""
|
||||
"Vertalingen in %(locales)s voor %(model_name)s '%(object)s' zijn succesvol "
|
||||
"aangemaakt"
|
||||
|
||||
msgid "Translate this page"
|
||||
msgstr "Vertaal deze pagina"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr "Vertaal '%(title)s'"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/pl/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/pl/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
101
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/pl/LC_MESSAGES/django.po
vendored
Normal file
101
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/pl/LC_MESSAGES/django.po
vendored
Normal file
@@ -0,0 +1,101 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Dominik Lech, 2022
|
||||
# Loic Teixeira, 2022
|
||||
# Miłosz Miśkiewicz, 2023
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Miłosz Miśkiewicz, 2023\n"
|
||||
"Language-Team: Polish (https://app.transifex.com/torchbox/teams/8009/pl/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: pl\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && "
|
||||
"(n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && "
|
||||
"n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
|
||||
|
||||
msgid "Wagtail simple translation"
|
||||
msgstr "Proste tłumaczenie Wagtail"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Zaznacz wszystkie"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "Lokalizacje"
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "Wszystkie strony podrzędne zostaną utworzone."
|
||||
|
||||
#, python-format
|
||||
msgid "Include subtree (%(descendant_count)s page)"
|
||||
msgid_plural "Include subtree (%(descendant_count)s pages)"
|
||||
msgstr[0] "Uwzględnij poddrzewo (%(descendant_count)s strona)"
|
||||
msgstr[1] "Uwzględnij poddrzewo (%(descendant_count)s stron)"
|
||||
msgstr[2] "Uwzględnij poddrzewo (%(descendant_count)s stron)"
|
||||
msgstr[3] "Uwzględnij poddrzewo (%(descendant_count)s stron)"
|
||||
|
||||
msgid "A locale is disabled because a parent page is not translated."
|
||||
msgid_plural ""
|
||||
"Some locales are disabled because some parent pages are not translated."
|
||||
msgstr[0] ""
|
||||
"Tłumaczenie jest wyłączone ponieważ strona nadrzędna nie jest przetłumaczona."
|
||||
msgstr[1] ""
|
||||
"Niektóre tłumaczenia są wyłączone ponieważ niektóre strony nadrzędne nie są "
|
||||
"przetłumaczone."
|
||||
msgstr[2] ""
|
||||
"Niektóre tłumaczenia są wyłączone ponieważ niektóre strony nadrzędne nie są "
|
||||
"przetłumaczone."
|
||||
msgstr[3] ""
|
||||
"Niektóre tłumaczenia są wyłączone ponieważ niektóre strony nadrzędne nie są "
|
||||
"przetłumaczone."
|
||||
|
||||
msgid "Translate the parent page."
|
||||
msgid_plural "Translate the parent pages."
|
||||
msgstr[0] "Przetłumacz stronę nadrzędną"
|
||||
msgstr[1] "Przetłumacz strony nadrzędne"
|
||||
msgstr[2] "Przetłumacz strony nadrzędne"
|
||||
msgstr[3] "Przetłumacz strony nadrzędne"
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "Wyślij"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "Tłumacz"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s tłumaczeń"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "Przetłumacz stronę"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr "Strona '%(page_title)s' została pomyślnie utworzona w %(locales)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "Przetłumacz %(model_name)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Successfully created %(locales)s for %(model_name)s '%(object)s'"
|
||||
msgstr "Pomyślnie utworzono %(locales)s dla %(model_name)s '%(object)s'"
|
||||
|
||||
msgid "Translate this page"
|
||||
msgstr "Przetłumacz tę stronę"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr "Przetłumacz '%(title)s'"
|
||||
Binary file not shown.
@@ -0,0 +1,98 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Ed Wurch <ewurch@gmail.com>, 2021
|
||||
# Rodrigo Sottomaior Macedo <sottomaiormacedotec@sottomaiormacedo.tech>, 2021
|
||||
# Iuri L. Machado, 2022
|
||||
# Loic Teixeira, 2022
|
||||
# Luiz Boaretto <lboaretto@gmail.com>, 2024
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Luiz Boaretto <lboaretto@gmail.com>, 2024\n"
|
||||
"Language-Team: Portuguese (Brazil) (https://app.transifex.com/torchbox/"
|
||||
"teams/8009/pt_BR/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: pt_BR\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % "
|
||||
"1000000 == 0 ? 1 : 2;\n"
|
||||
|
||||
msgid "Wagtail simple translation"
|
||||
msgstr "Tradução simples do Wagtail"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Selecionar todos"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "Localidades"
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "Todas páginas filho serão criadas"
|
||||
|
||||
#, python-format
|
||||
msgid "Include subtree (%(descendant_count)s page)"
|
||||
msgid_plural "Include subtree (%(descendant_count)s pages)"
|
||||
msgstr[0] "Incluir subárvore (%(descendant_count)s página)"
|
||||
msgstr[1] "Incluir subárvore (%(descendant_count)s páginas)"
|
||||
msgstr[2] "Incluir subárvore (%(descendant_count)s páginas)"
|
||||
|
||||
msgid "A locale is disabled because a parent page is not translated."
|
||||
msgid_plural ""
|
||||
"Some locales are disabled because some parent pages are not translated."
|
||||
msgstr[0] ""
|
||||
"Uma localidade está desativada porque uma página pai não foi traduzida."
|
||||
msgstr[1] ""
|
||||
"Algumas localidades estão desabilitadas porque algumas páginas-pai não foram "
|
||||
"traduzidas."
|
||||
msgstr[2] ""
|
||||
"Algumas localidades estão desabilitadas porque algumas páginas-pai não foram "
|
||||
"traduzidas."
|
||||
|
||||
msgid "Translate the parent page."
|
||||
msgid_plural "Translate the parent pages."
|
||||
msgstr[0] "Traduza a páginas principal."
|
||||
msgstr[1] "Traduza as páginas principais."
|
||||
msgstr[2] "Traduza as páginas principais."
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "Enviar"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "Traduzir"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s localidades"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "Traduzir página"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr "A página '%(page_title)s' foi criada com sucesso em %(locales)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "Traduzir %(model_name)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Successfully created %(locales)s for %(model_name)s '%(object)s'"
|
||||
msgstr "%(locales)s Criadas com sucesso para %(model_name)s '%(object)s'"
|
||||
|
||||
msgid "Translate this page"
|
||||
msgstr "Traduzir esta página"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr "Traduzir %(title)s"
|
||||
Binary file not shown.
@@ -0,0 +1,89 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Tiago Henriques <trinosauro@gmail.com>, 2022
|
||||
# Luís Tiago Favas <traducoes@favas.eu>, 2022
|
||||
# Loic Teixeira, 2022
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Loic Teixeira, 2022\n"
|
||||
"Language-Team: Portuguese (Portugal) (https://app.transifex.com/torchbox/"
|
||||
"teams/8009/pt_PT/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: pt_PT\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % "
|
||||
"1000000 == 0 ? 1 : 2;\n"
|
||||
|
||||
msgid "Wagtail simple translation"
|
||||
msgstr "Tradução simples Wagtail"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Selecionar tudo"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "Regiões"
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "Todas as páginas-filha irão ser criadas."
|
||||
|
||||
msgid "A locale is disabled because a parent page is not translated."
|
||||
msgid_plural ""
|
||||
"Some locales are disabled because some parent pages are not translated."
|
||||
msgstr[0] ""
|
||||
"Uma região está desativada porque uma página-mãe ainda não foi traduzida."
|
||||
msgstr[1] ""
|
||||
"Algumas regiões estão desativadas porque algumas páginas-mãe ainda não foram "
|
||||
"traduzidas."
|
||||
msgstr[2] ""
|
||||
"Algumas regiões estão desativadas porque algumas páginas-mãe ainda não foram "
|
||||
"traduzidas."
|
||||
|
||||
msgid "Translate the parent page."
|
||||
msgid_plural "Translate the parent pages."
|
||||
msgstr[0] "Traduzir a página-mãe."
|
||||
msgstr[1] "Traduzir as páginas-mãe."
|
||||
msgstr[2] "Traduzir as páginas-mãe."
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "Enviar"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "Traduzir"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s regiões"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "Traduzir página"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr "A página '%(page_title)s' foi criada com sucesso em %(locales)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "Traduzir %(model_name)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Successfully created %(locales)s for %(model_name)s '%(object)s'"
|
||||
msgstr "Criado com sucesso %(locales)s para %(model_name)s '%(object)s'"
|
||||
|
||||
msgid "Translate this page"
|
||||
msgstr "Traduzir esta página"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr "Traduzir '%(title)s'"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/ro/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/ro/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,96 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Julian C <jcuotpc@gmail.com>, 2021
|
||||
# Dan Braghis, 2022
|
||||
# Loic Teixeira, 2022
|
||||
# Alex Morega, 2023
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Alex Morega, 2023\n"
|
||||
"Language-Team: Romanian (https://app.transifex.com/torchbox/teams/8009/ro/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ro\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?"
|
||||
"2:1));\n"
|
||||
|
||||
msgid "Wagtail simple translation"
|
||||
msgstr "Wagtail traducere simplă"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Seleactază toate"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "Localizări"
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "Toate paginile descendente vor fi create."
|
||||
|
||||
#, python-format
|
||||
msgid "Include subtree (%(descendant_count)s page)"
|
||||
msgid_plural "Include subtree (%(descendant_count)s pages)"
|
||||
msgstr[0] "Include pagini descendente (%(descendant_count)s pagină)"
|
||||
msgstr[1] "Include pagini descendente (%(descendant_count)s pagini)"
|
||||
msgstr[2] "Include pagini descendente (%(descendant_count)s de pagini)"
|
||||
|
||||
msgid "A locale is disabled because a parent page is not translated."
|
||||
msgid_plural ""
|
||||
"Some locales are disabled because some parent pages are not translated."
|
||||
msgstr[0] ""
|
||||
"O localizăre estea dezactivată deoarece o pagină părinte nu este tradusă."
|
||||
msgstr[1] ""
|
||||
"Unele localizări sunt dezactivate deoarece unele pagini părinte nu sunt "
|
||||
"traduse."
|
||||
msgstr[2] ""
|
||||
"Unele localizări sunt dezactivate deoarece unele pagini părinte nu sunt "
|
||||
"traduse."
|
||||
|
||||
msgid "Translate the parent page."
|
||||
msgid_plural "Translate the parent pages."
|
||||
msgstr[0] "Traduceți pagina părinte."
|
||||
msgstr[1] "Traduceți paginile părinte."
|
||||
msgstr[2] "Traduceți paginile părinte."
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "Trimite"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "Traduce"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s localizări"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "Traduce pagină"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr "Pagina '%(page_title)s' a fost creată în %(locales)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "Tradu %(model_name)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Successfully created %(locales)s for %(model_name)s '%(object)s'"
|
||||
msgstr "%(locales)s creat cu success pentru %(model_name)s '%(object)s'"
|
||||
|
||||
msgid "Translate this page"
|
||||
msgstr "Traduceți această pagină"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr "Traduce '%(title)s'"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/ru/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/ru/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
105
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/ru/LC_MESSAGES/django.po
vendored
Normal file
105
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/ru/LC_MESSAGES/django.po
vendored
Normal file
@@ -0,0 +1,105 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Anatoly <pandorinpan@gmail.com>, 2021
|
||||
# Влад <integration.into.society@gmail.com>, 2022
|
||||
# sergeybe <sergeybe@gmail.com>, 2022
|
||||
# Loic Teixeira, 2022
|
||||
# Andrei Satsevich, 2024
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Andrei Satsevich, 2024\n"
|
||||
"Language-Team: Russian (https://app.transifex.com/torchbox/teams/8009/ru/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ru\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || "
|
||||
"(n%100>=11 && n%100<=14)? 2 : 3);\n"
|
||||
|
||||
msgid "Wagtail simple translation"
|
||||
msgstr "Простой перевод Wagtail"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Выбрать все"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "Локали"
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "Все дочерние страницы были созданы."
|
||||
|
||||
#, python-format
|
||||
msgid "Include subtree (%(descendant_count)s page)"
|
||||
msgid_plural "Include subtree (%(descendant_count)s pages)"
|
||||
msgstr[0] "Включить (%(descendant_count)s страницу) поддерева"
|
||||
msgstr[1] "Включить (%(descendant_count)s страницы) поддерева"
|
||||
msgstr[2] "Включить (%(descendant_count)s страницы) поддерева"
|
||||
msgstr[3] "Включить (%(descendant_count)s страницы) поддерева"
|
||||
|
||||
msgid "A locale is disabled because a parent page is not translated."
|
||||
msgid_plural ""
|
||||
"Some locales are disabled because some parent pages are not translated."
|
||||
msgstr[0] "Локаль отключена, поскольку родительская страница не переведена."
|
||||
msgstr[1] ""
|
||||
"Некоторые локали отключены, поскольку некоторые родительские страницы не "
|
||||
"переведены."
|
||||
msgstr[2] ""
|
||||
"Некоторые локали отключены, поскольку некоторые родительские страницы не "
|
||||
"переведены."
|
||||
msgstr[3] ""
|
||||
"Некоторые локали отключены, поскольку некоторые родительские страницы не "
|
||||
"переведены."
|
||||
|
||||
msgid "Translate the parent page."
|
||||
msgid_plural "Translate the parent pages."
|
||||
msgstr[0] "Перевести родительскую страницу."
|
||||
msgstr[1] "Перевести родительские страницы."
|
||||
msgstr[2] "Перевести родительские страницы."
|
||||
msgstr[3] "Перевести родительские страницы."
|
||||
|
||||
msgid "Can submit translations"
|
||||
msgstr "Может представлять переводы"
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "Применить"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "Перевести"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s локалей"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "Перевести страницу"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr "Страница '%(page_title)s' была успешно создана в %(locales)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "Перевести %(model_name)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Successfully created %(locales)s for %(model_name)s '%(object)s'"
|
||||
msgstr "Создано успешно %(locales)s для %(model_name)s '%(object)s'"
|
||||
|
||||
msgid "Translate this page"
|
||||
msgstr "Перевести эту страницу"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr "Перевести '%(title)s'"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/sl/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/sl/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,98 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# andrej55 <andrej.marsetic@gmail.com>, 2022
|
||||
# Loic Teixeira, 2022
|
||||
# Andrej Marsetič, 2023
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Andrej Marsetič, 2023\n"
|
||||
"Language-Team: Slovenian (https://app.transifex.com/torchbox/teams/8009/"
|
||||
"sl/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: sl\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || "
|
||||
"n%100==4 ? 2 : 3);\n"
|
||||
|
||||
msgid "Wagtail simple translation"
|
||||
msgstr "Wagtail preprost prevod"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Izberi vse"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "Območja"
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "Vse podrejene strani bodo ustvarjene."
|
||||
|
||||
#, python-format
|
||||
msgid "Include subtree (%(descendant_count)s page)"
|
||||
msgid_plural "Include subtree (%(descendant_count)s pages)"
|
||||
msgstr[0] "Vključi poddrevo (%(descendant_count)s stran)"
|
||||
msgstr[1] "Vključi poddrevo (%(descendant_count)s strani)"
|
||||
msgstr[2] "Vključi poddrevo (%(descendant_count)s strani)"
|
||||
msgstr[3] "Vključi poddrevo (%(descendant_count)s strani)"
|
||||
|
||||
msgid "A locale is disabled because a parent page is not translated."
|
||||
msgid_plural ""
|
||||
"Some locales are disabled because some parent pages are not translated."
|
||||
msgstr[0] ""
|
||||
"Področne nastavitve so onemogočene, ker nadrejena stran ni prevedena."
|
||||
msgstr[1] ""
|
||||
"Nekateri jeziki so onemogočeni, ker nekatere nadrejene strani niso prevedene."
|
||||
msgstr[2] ""
|
||||
"Nekateri jeziki so onemogočeni, ker nekatere nadrejene strani niso prevedene."
|
||||
msgstr[3] ""
|
||||
"Nekateri jeziki so onemogočeni, ker nekatere nadrejene strani niso prevedene."
|
||||
|
||||
msgid "Translate the parent page."
|
||||
msgid_plural "Translate the parent pages."
|
||||
msgstr[0] "Prevedite nadrejeno stran."
|
||||
msgstr[1] "Prevedite nadrejeni strani."
|
||||
msgstr[2] "Prevedite nadrejene strani."
|
||||
msgstr[3] "Prevedite nadrejene strani."
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "Pošlji"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "Prevedi"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s lokalizacij"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "Prevedi stran"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr "Stran '%(page_title)s je bila uspešno kreirana v ' %(locales)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "Prevesti %(model_name)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Successfully created %(locales)s for %(model_name)s '%(object)s'"
|
||||
msgstr "Uspešno ustvarjeno %(locales)s za %(model_name)s '%(object)s'"
|
||||
|
||||
msgid "Translate this page"
|
||||
msgstr "Prevedi to stran"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr "Prevedite '%(title)s'"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/sv/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/sv/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,88 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Thomas Kunambi <kunambi@gmail.com>, 2022
|
||||
# Loic Teixeira, 2022
|
||||
# Tomas Walch <tomas@alternaliv.se>, 2023
|
||||
# Martin Sandström <martin@marteinn.se>, 2023
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Martin Sandström <martin@marteinn.se>, 2023\n"
|
||||
"Language-Team: Swedish (https://app.transifex.com/torchbox/teams/8009/sv/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: sv\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "Wagtail simple translation"
|
||||
msgstr "Wagtail förenklad översättning"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Välj alla"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "Språk"
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "Alla undersidor kommer att skapas"
|
||||
|
||||
#, python-format
|
||||
msgid "Include subtree (%(descendant_count)s page)"
|
||||
msgid_plural "Include subtree (%(descendant_count)s pages)"
|
||||
msgstr[0] "Inkludera underträd (%(descendant_count)s sida)"
|
||||
msgstr[1] "Inkludera underträd (%(descendant_count)s sidor)"
|
||||
|
||||
msgid "A locale is disabled because a parent page is not translated."
|
||||
msgid_plural ""
|
||||
"Some locales are disabled because some parent pages are not translated."
|
||||
msgstr[0] "Ett språk är avstängt pga en föräldrasida är inte översatt."
|
||||
msgstr[1] ""
|
||||
"Några språk är avstängda p g a att vissa föräldrasidor är inte översatta."
|
||||
|
||||
msgid "Translate the parent page."
|
||||
msgid_plural "Translate the parent pages."
|
||||
msgstr[0] "Översätt föräldrasidan."
|
||||
msgstr[1] "Översätt föräldrasidorna."
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "Skicka"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "Översätt"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s platser"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "Översätt sida"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr "Sidan '%(page_title)s' skapades med framgång i %(locales)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "Översätt %(model_name)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Successfully created %(locales)s for %(model_name)s '%(object)s'"
|
||||
msgstr "Skapade framgångsrikt %(locales)s för %(model_name)s '%(object)s'"
|
||||
|
||||
msgid "Translate this page"
|
||||
msgstr "Översätt den här sidan"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr "Översätt '%(title)s'"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/uk/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/uk/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,92 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# d55ee35323c0c760f088259cd23b1b6d_9e8a7d1 <5459f3ae99ecdd5ed0be0220acd46004_1019581>, 2021
|
||||
# Anastasiia La, 2022
|
||||
# Loic Teixeira, 2022
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Loic Teixeira, 2022\n"
|
||||
"Language-Team: Ukrainian (https://app.transifex.com/torchbox/teams/8009/"
|
||||
"uk/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: uk\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != "
|
||||
"11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % "
|
||||
"100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || "
|
||||
"(n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
|
||||
|
||||
msgid "Wagtail simple translation"
|
||||
msgstr "Простий переклад Wagtail"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Обрати все"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "Локалі"
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "Всі дочірні сторінки буде створено."
|
||||
|
||||
msgid "A locale is disabled because a parent page is not translated."
|
||||
msgid_plural ""
|
||||
"Some locales are disabled because some parent pages are not translated."
|
||||
msgstr[0] ""
|
||||
"Деякі локалі вимкнено, оскільки батьківська сторінка не перекладена."
|
||||
msgstr[1] ""
|
||||
"Деякі локалі вимкнено, оскільки деякі батьківські сторінки не перекладені."
|
||||
msgstr[2] ""
|
||||
"Деякі локалі вимкнено, оскільки деякі батьківські сторінки не перекладені."
|
||||
msgstr[3] ""
|
||||
"Деякі локалі вимкнено, оскільки деякі батьківські сторінки не перекладені."
|
||||
|
||||
msgid "Translate the parent page."
|
||||
msgid_plural "Translate the parent pages."
|
||||
msgstr[0] "Перекласти батьківську сторінку."
|
||||
msgstr[1] "Перекласти батьківські сторінки."
|
||||
msgstr[2] "Перекласти батьківські сторінки."
|
||||
msgstr[3] "Перекласти батьківські сторінки."
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "Застосувати"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "Перекласти"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s локалі"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "Перекласти сторінку"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr "Сторінка '%(page_title)s' була успішно створена в %(locales)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "Перекласти %(model_name)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Successfully created %(locales)s for %(model_name)s '%(object)s'"
|
||||
msgstr "Успішно створено %(locales)s для %(model_name)s '%(object)s'"
|
||||
|
||||
msgid "Translate this page"
|
||||
msgstr "Перекладіть цю сторінку"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr "Перекладено %(title)s"
|
||||
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/vi/LC_MESSAGES/django.mo
vendored
Normal file
BIN
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/locale/vi/LC_MESSAGES/django.mo
vendored
Normal file
Binary file not shown.
@@ -0,0 +1,29 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Vu Pham, 2022
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Vu Pham, 2022\n"
|
||||
"Language-Team: Vietnamese (https://app.transifex.com/torchbox/teams/8009/"
|
||||
"vi/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: vi\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "Chọn tất cả"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "Dịch"
|
||||
Binary file not shown.
@@ -0,0 +1,80 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Yin Guanhao <sopium@mysterious.site>, 2021
|
||||
# Favo Yang <favoyang@gmail.com>, 2021
|
||||
# Ford Guo <agile.guo@gmail.com>, 2022
|
||||
# Loic Teixeira, 2022
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Loic Teixeira, 2022\n"
|
||||
"Language-Team: Chinese (China) (https://app.transifex.com/torchbox/"
|
||||
"teams/8009/zh_CN/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: zh_CN\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
msgid "Wagtail simple translation"
|
||||
msgstr "Wagtail 简单翻译"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "全选"
|
||||
|
||||
msgid "Locales"
|
||||
msgstr "区域"
|
||||
|
||||
msgid "All child pages will be created."
|
||||
msgstr "所有的子页面将被创建。"
|
||||
|
||||
msgid "A locale is disabled because a parent page is not translated."
|
||||
msgid_plural ""
|
||||
"Some locales are disabled because some parent pages are not translated."
|
||||
msgstr[0] "某些区域是无效的因为某个父页面还没有被翻译。"
|
||||
|
||||
msgid "Translate the parent page."
|
||||
msgid_plural "Translate the parent pages."
|
||||
msgstr[0] "翻译这些父页面。"
|
||||
|
||||
msgid "Submit"
|
||||
msgstr "提交"
|
||||
|
||||
msgid "Translate"
|
||||
msgstr "翻译"
|
||||
|
||||
#. Translators: always plural
|
||||
#, python-format
|
||||
msgid "%(locales_count)s locales"
|
||||
msgstr "%(locales_count)s 区域"
|
||||
|
||||
msgid "Translate page"
|
||||
msgstr "翻译页面"
|
||||
|
||||
#, python-format
|
||||
msgid "The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
msgstr "页面“%(page_title)s”已在%(locales)s成功创建"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate %(model_name)s"
|
||||
msgstr "翻译 %(model_name)s"
|
||||
|
||||
#, python-format
|
||||
msgid "Successfully created %(locales)s for %(model_name)s '%(object)s'"
|
||||
msgstr "成功为%(model_name)s“%(object)s”创建了%(locales)s"
|
||||
|
||||
msgid "Translate this page"
|
||||
msgstr "翻译此页"
|
||||
|
||||
#, python-format
|
||||
msgid "Translate '%(title)s'"
|
||||
msgstr "翻译“%(title)s”"
|
||||
Binary file not shown.
@@ -0,0 +1,26 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Chih Wang <ihcgno@icloud.com>, 2021
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-07-19 16:26+0100\n"
|
||||
"PO-Revision-Date: 2021-04-21 08:38+0000\n"
|
||||
"Last-Translator: Chih Wang <ihcgno@icloud.com>, 2021\n"
|
||||
"Language-Team: Chinese Traditional (https://app.transifex.com/torchbox/"
|
||||
"teams/8009/zh-Hant/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: zh-Hant\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
msgid "Select all"
|
||||
msgstr "全選"
|
||||
31
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/migrations/0001_initial.py
vendored
Normal file
31
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/migrations/0001_initial.py
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
# Generated by Django 2.2.16 on 2021-04-12 20:22
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = []
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="SimpleTranslation",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.AutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"permissions": [("submit_translation", "Can submit translations")],
|
||||
"default_permissions": [],
|
||||
},
|
||||
),
|
||||
]
|
||||
0
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/migrations/__init__.py
vendored
Normal file
0
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/migrations/__init__.py
vendored
Normal file
Binary file not shown.
Binary file not shown.
41
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/models.py
vendored
Normal file
41
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/models.py
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
from django.conf import settings
|
||||
from django.db.models import Model
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from wagtail import hooks
|
||||
from wagtail.models import Locale
|
||||
|
||||
|
||||
class SimpleTranslation(Model):
|
||||
"""
|
||||
SimpleTranslation, dummy model to create the `submit_translation` permission.
|
||||
|
||||
We need this model to be concrete or the following management commands will misbehave:
|
||||
- `remove_stale_contenttypes`, will drop the perm
|
||||
- `dump_data`, will complain about the missing table
|
||||
"""
|
||||
|
||||
class Meta:
|
||||
default_permissions = []
|
||||
permissions = [
|
||||
("submit_translation", _("Can submit translations")),
|
||||
]
|
||||
|
||||
|
||||
@hooks.register("after_create_page")
|
||||
def after_create_page(request, page):
|
||||
"""Creates page aliases in other locales when a page is created.
|
||||
|
||||
Whenever a page is created under a specific locale, this signal handler
|
||||
creates an alias page for that page under the other locales.
|
||||
|
||||
e.g. When an editor creates the page "blog/my-blog-post" under the English
|
||||
tree, this signal handler creates an alias of that page called
|
||||
"blog/my-blog-post" under the other locales' trees.
|
||||
"""
|
||||
if getattr(settings, "WAGTAILSIMPLETRANSLATION_SYNC_PAGE_TREE", False):
|
||||
# Check if the source tree needs to be synchronised into any other trees
|
||||
# Create aliases in all those locales
|
||||
for locale in Locale.objects.exclude(pk=page.locale_id):
|
||||
if not page.has_translation(locale):
|
||||
page.copy_for_translation(locale, copy_parents=True, alias=True)
|
||||
@@ -0,0 +1,7 @@
|
||||
{% if widget.wrap_label %}
|
||||
<label{% if widget.attrs.id %} for="{{ widget.attrs.id }}"{% endif %}{% if widget.attrs.disabled %} class="disabled"{% endif %}>
|
||||
{% include "django/forms/widgets/input.html" %} {{ widget.label }}
|
||||
</label>
|
||||
{% else %}
|
||||
{% include "django/forms/widgets/input.html" %} {{ widget.label }}
|
||||
{% endif %}
|
||||
@@ -0,0 +1,32 @@
|
||||
{% extends "wagtailadmin/base.html" %}
|
||||
{% load i18n wagtailadmin_tags %}
|
||||
{% block titletag %}{{ view.get_title }} {{ view.get_subtitle }}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% include "wagtailadmin/shared/header.html" with title=view.get_title subtitle=view.get_subtitle icon="doc-empty-inverse" %}
|
||||
|
||||
<div class="nice-padding">
|
||||
<form method="POST" data-controller="w-bulk">
|
||||
{% csrf_token %}
|
||||
|
||||
{% if next_url %}
|
||||
<input type="hidden" name="next" value="{{ next_url }}">
|
||||
{% endif %}
|
||||
|
||||
{% for field in form.hidden_fields %}{{ field }}{% endfor %}
|
||||
|
||||
<ul class="fields">
|
||||
{% block visible_fields %}
|
||||
{% for field in form.visible_fields %}
|
||||
<li>{% formattedfield field %}</li>
|
||||
{% endfor %}
|
||||
{% endblock %}
|
||||
{% if form.show_submit %}
|
||||
<li>
|
||||
<input type="submit" value="{% trans 'Submit' %}" class="button" />
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
||||
0
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/tests/__init__.py
vendored
Normal file
0
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/tests/__init__.py
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
140
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/tests/test_forms.py
vendored
Normal file
140
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/tests/test_forms.py
vendored
Normal file
@@ -0,0 +1,140 @@
|
||||
from django.forms import CheckboxInput, HiddenInput
|
||||
from django.test import TestCase, override_settings
|
||||
|
||||
from wagtail.contrib.simple_translation.forms import SubmitTranslationForm
|
||||
from wagtail.models import Locale, Page
|
||||
from wagtail.test.i18n.models import TestPage
|
||||
from wagtail.test.utils import WagtailTestUtils
|
||||
|
||||
|
||||
@override_settings(
|
||||
LANGUAGES=[
|
||||
("en", "English"),
|
||||
("fr", "French"),
|
||||
("de", "German"),
|
||||
],
|
||||
WAGTAIL_CONTENT_LANGUAGES=[
|
||||
("en", "English"),
|
||||
("fr", "French"),
|
||||
("de", "German"),
|
||||
],
|
||||
)
|
||||
class TestSubmitPageTranslation(WagtailTestUtils, TestCase):
|
||||
def setUp(self):
|
||||
self.en_locale = Locale.objects.first()
|
||||
self.fr_locale = Locale.objects.create(language_code="fr")
|
||||
self.de_locale = Locale.objects.create(language_code="de")
|
||||
|
||||
self.en_homepage = Page.objects.get(depth=2)
|
||||
self.fr_homepage = self.en_homepage.copy_for_translation(self.fr_locale)
|
||||
self.de_homepage = self.en_homepage.copy_for_translation(self.de_locale)
|
||||
|
||||
self.en_blog_index = TestPage(title="Blog", slug="blog")
|
||||
self.en_homepage.add_child(instance=self.en_blog_index)
|
||||
|
||||
self.en_blog_post = TestPage(title="Blog post", slug="blog-post")
|
||||
self.en_blog_index.add_child(instance=self.en_blog_post)
|
||||
|
||||
def test_include_subtree(self):
|
||||
form = SubmitTranslationForm(instance=self.en_blog_post)
|
||||
self.assertIsInstance(form.fields["include_subtree"].widget, HiddenInput)
|
||||
|
||||
form = SubmitTranslationForm(instance=self.en_blog_index)
|
||||
self.assertIsInstance(form.fields["include_subtree"].widget, CheckboxInput)
|
||||
self.assertEqual(
|
||||
form.fields["include_subtree"].label, "Include subtree (1 page)"
|
||||
)
|
||||
|
||||
form = SubmitTranslationForm(instance=self.en_homepage)
|
||||
self.assertEqual(
|
||||
form.fields["include_subtree"].label, "Include subtree (2 pages)"
|
||||
)
|
||||
|
||||
def test_locales_queryset(self):
|
||||
# Homepage is translated to all locales.
|
||||
form = SubmitTranslationForm(instance=self.en_homepage)
|
||||
self.assertEqual(
|
||||
list(
|
||||
form.fields["locales"].queryset.values_list("language_code", flat=True)
|
||||
),
|
||||
[],
|
||||
)
|
||||
# Blog index can be translated to `de` and `fr`.
|
||||
form = SubmitTranslationForm(instance=self.en_blog_index)
|
||||
self.assertEqual(
|
||||
list(
|
||||
form.fields["locales"].queryset.values_list("language_code", flat=True)
|
||||
),
|
||||
["de", "fr"],
|
||||
)
|
||||
# Blog post can be translated to `de` and `fr`.
|
||||
form = SubmitTranslationForm(instance=self.en_blog_post)
|
||||
self.assertEqual(
|
||||
list(
|
||||
form.fields["locales"].queryset.values_list("language_code", flat=True)
|
||||
),
|
||||
["de", "fr"],
|
||||
)
|
||||
|
||||
def test_select_all(self):
|
||||
form = SubmitTranslationForm(instance=self.en_homepage)
|
||||
# Homepage is translated to all locales.
|
||||
self.assertIsInstance(form.fields["select_all"].widget, HiddenInput)
|
||||
|
||||
form = SubmitTranslationForm(instance=self.en_blog_index)
|
||||
# Blog post can be translated to `de` and `fr`.
|
||||
self.assertIsInstance(form.fields["select_all"].widget, CheckboxInput)
|
||||
|
||||
def test_locale_disabled(self):
|
||||
form = SubmitTranslationForm(instance=self.en_blog_post)
|
||||
# The parent (blog_index) is translated to English.
|
||||
# German and French are disabled.
|
||||
self.assertEqual(
|
||||
list(form.fields["locales"].widget.disabled_values),
|
||||
[self.de_locale.id, self.fr_locale.id],
|
||||
)
|
||||
label = f"""
|
||||
<label class="disabled">
|
||||
<input type="checkbox" name="None" value="{self.de_locale.id}" disabled>
|
||||
German
|
||||
</label>
|
||||
"""
|
||||
self.assertInHTML(label, form.fields["locales"].widget.render(None, None))
|
||||
|
||||
def test_locale_help_text(self):
|
||||
# German and French are disabled.
|
||||
# The help_text is plural
|
||||
form = SubmitTranslationForm(instance=self.en_blog_post)
|
||||
help_text = f"""
|
||||
Some locales are disabled because some parent pages are not translated.
|
||||
<br>
|
||||
<a href="/admin/translation/submit/page/{self.en_blog_index.id}/">
|
||||
Translate the parent pages.
|
||||
</a>
|
||||
"""
|
||||
self.assertHTMLEqual(form.fields["locales"].help_text, help_text)
|
||||
|
||||
# Add German translation
|
||||
self.en_blog_index.copy_for_translation(self.de_locale)
|
||||
# French is disabled.
|
||||
# The help_text is singular.
|
||||
form = SubmitTranslationForm(instance=self.en_blog_post)
|
||||
help_text = f"""
|
||||
A locale is disabled because a parent page is not translated.
|
||||
<br>
|
||||
<a href="/admin/translation/submit/page/{self.en_blog_index.id}/">
|
||||
Translate the parent page.
|
||||
</a>
|
||||
"""
|
||||
self.assertHTMLEqual(form.fields["locales"].help_text, help_text)
|
||||
|
||||
def test_hide_submit(self):
|
||||
# German and French are disabled.
|
||||
# There are no other pages to be translated.
|
||||
# Submit is hidden.
|
||||
form = SubmitTranslationForm(instance=self.en_blog_post)
|
||||
self.assertFalse(form.show_submit)
|
||||
# A parent is translated
|
||||
self.en_blog_index.copy_for_translation(self.de_locale)
|
||||
form = SubmitTranslationForm(instance=self.en_blog_post)
|
||||
self.assertTrue(form.show_submit)
|
||||
18
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/tests/test_migrations.py
vendored
Normal file
18
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/tests/test_migrations.py
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
from django.contrib.auth.models import Permission
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
|
||||
from wagtail.test.utils import TestCase
|
||||
|
||||
|
||||
class TestMigrations(TestCase):
|
||||
def test_content_type_exists(self):
|
||||
self.assertTrue(
|
||||
ContentType.objects.filter(
|
||||
app_label="simple_translation", model="simpletranslation"
|
||||
).exists()
|
||||
)
|
||||
|
||||
def test_permission_exists(self):
|
||||
self.assertTrue(
|
||||
Permission.objects.filter(codename="submit_translation").exists()
|
||||
)
|
||||
440
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/tests/test_views.py
vendored
Normal file
440
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/tests/test_views.py
vendored
Normal file
@@ -0,0 +1,440 @@
|
||||
from django.contrib.admin.utils import quote
|
||||
from django.contrib.auth.models import Group, Permission
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.http import Http404
|
||||
from django.test import RequestFactory, override_settings
|
||||
from django.urls import reverse
|
||||
from django.utils.translation import gettext_lazy
|
||||
|
||||
from wagtail import hooks
|
||||
from wagtail.actions.copy_for_translation import ParentNotTranslatedError
|
||||
from wagtail.contrib.simple_translation.forms import SubmitTranslationForm
|
||||
from wagtail.contrib.simple_translation.models import after_create_page
|
||||
from wagtail.contrib.simple_translation.views import (
|
||||
SubmitPageTranslationView,
|
||||
SubmitSnippetTranslationView,
|
||||
SubmitTranslationView,
|
||||
)
|
||||
from wagtail.models import Locale, Page
|
||||
from wagtail.test.i18n.models import TestPage
|
||||
from wagtail.test.snippets.models import TranslatableSnippet
|
||||
from wagtail.test.testapp.models import FullFeaturedSnippet
|
||||
from wagtail.test.utils import TestCase, WagtailTestUtils
|
||||
|
||||
|
||||
@override_settings(
|
||||
LANGUAGES=[
|
||||
("en", "English"),
|
||||
("fr", "French"),
|
||||
("de", "German"),
|
||||
],
|
||||
WAGTAIL_CONTENT_LANGUAGES=[
|
||||
("en", "English"),
|
||||
("fr", "French"),
|
||||
("de", "German"),
|
||||
],
|
||||
)
|
||||
class TestSubmitTranslationView(WagtailTestUtils, TestCase):
|
||||
def setUp(self):
|
||||
self.en_locale = Locale.objects.first()
|
||||
self.fr_locale = Locale.objects.create(language_code="fr")
|
||||
self.de_locale = Locale.objects.create(language_code="de")
|
||||
self.en_homepage = Page.objects.get(depth=2)
|
||||
self.factory = RequestFactory()
|
||||
|
||||
def test_template_name(self):
|
||||
self.assertEqual(
|
||||
SubmitTranslationView.template_name,
|
||||
"simple_translation/admin/submit_translation.html",
|
||||
)
|
||||
|
||||
def test_title(self):
|
||||
self.assertEqual(SubmitTranslationView().title, gettext_lazy("Translate"))
|
||||
self.assertEqual(SubmitTranslationView().get_title(), gettext_lazy("Translate"))
|
||||
|
||||
def test_subtitle(self):
|
||||
view = SubmitTranslationView()
|
||||
view.object = self.en_homepage
|
||||
self.assertEqual(view.get_subtitle(), str(self.en_homepage))
|
||||
|
||||
def test_get_form(self):
|
||||
view = SubmitTranslationView()
|
||||
view.request = self.factory.get("/path/does/not/matter/")
|
||||
view.object = self.en_homepage
|
||||
form = view.get_form()
|
||||
self.assertIsInstance(form, SubmitTranslationForm)
|
||||
|
||||
def test_get_success_url(self):
|
||||
with self.assertRaises(NotImplementedError):
|
||||
view = SubmitTranslationView()
|
||||
view.object = self.en_homepage
|
||||
view.get_success_url()
|
||||
|
||||
def test_get_context_data(self, **kwargs):
|
||||
view = SubmitTranslationView()
|
||||
view.request = self.factory.get("/path/does/not/matter/")
|
||||
view.object = self.en_homepage
|
||||
context = view.get_context_data()
|
||||
self.assertIn("form", context.keys())
|
||||
self.assertIsInstance(context["form"], SubmitTranslationForm)
|
||||
|
||||
def test_dispatch_as_anon(self):
|
||||
url = reverse(
|
||||
"simple_translation:submit_page_translation", args=(self.en_homepage.id,)
|
||||
)
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(response.url, f"/admin/login/?next={url}")
|
||||
|
||||
def test_dispatch_as_moderator(self):
|
||||
url = reverse(
|
||||
"simple_translation:submit_page_translation", args=(self.en_homepage.id,)
|
||||
)
|
||||
user = self.login()
|
||||
group = Group.objects.get(name="Moderators")
|
||||
user.groups.add(group)
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
def test_dispatch_as_user_with_perm(self):
|
||||
url = reverse(
|
||||
"simple_translation:submit_page_translation", args=(self.en_homepage.id,)
|
||||
)
|
||||
user = self.login()
|
||||
permission = Permission.objects.get(codename="submit_translation")
|
||||
user.user_permissions.add(permission)
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
|
||||
@override_settings(
|
||||
LANGUAGES=[
|
||||
("en", "English"),
|
||||
("fr", "French"),
|
||||
("de", "German"),
|
||||
],
|
||||
WAGTAIL_CONTENT_LANGUAGES=[
|
||||
("en", "English"),
|
||||
("fr", "French"),
|
||||
("de", "German"),
|
||||
],
|
||||
)
|
||||
class TestSubmitPageTranslationView(WagtailTestUtils, TestCase):
|
||||
def setUp(self):
|
||||
self.en_locale = Locale.objects.first()
|
||||
self.fr_locale = Locale.objects.create(language_code="fr")
|
||||
self.de_locale = Locale.objects.create(language_code="de")
|
||||
|
||||
self.en_homepage = Page.objects.get(depth=2)
|
||||
self.fr_homepage = self.en_homepage.copy_for_translation(self.fr_locale)
|
||||
self.de_homepage = self.en_homepage.copy_for_translation(self.de_locale)
|
||||
|
||||
self.en_blog_index = TestPage(title="Blog", slug="blog")
|
||||
self.en_homepage.add_child(instance=self.en_blog_index)
|
||||
|
||||
self.en_blog_post = TestPage(title="Blog post", slug="blog-post")
|
||||
self.en_blog_index.add_child(instance=self.en_blog_post)
|
||||
|
||||
def test_title(self):
|
||||
self.assertEqual(SubmitPageTranslationView.title, "Translate page")
|
||||
|
||||
def test_get_subtitle(self):
|
||||
view = SubmitPageTranslationView()
|
||||
view.object = self.en_homepage
|
||||
self.assertEqual(view.get_subtitle(), "Welcome to your new Wagtail site!")
|
||||
|
||||
def test_submit_page_translation_view_test_get(self):
|
||||
url = reverse(
|
||||
"simple_translation:submit_page_translation", args=(self.en_blog_index.id,)
|
||||
)
|
||||
self.login()
|
||||
response = self.client.get(url)
|
||||
assert isinstance(response.context["form"], SubmitTranslationForm)
|
||||
|
||||
def test_submit_page_translation_view_test_post_invalid(self):
|
||||
url = reverse(
|
||||
"simple_translation:submit_page_translation", args=(self.en_blog_index.id,)
|
||||
)
|
||||
self.login()
|
||||
response = self.client.post(url, {})
|
||||
assert response.status_code == 200
|
||||
assert response.context["form"].errors == {
|
||||
"locales": ["This field is required."]
|
||||
}
|
||||
|
||||
def test_submit_page_translation_view_test_post_single_locale(self):
|
||||
url = reverse(
|
||||
"simple_translation:submit_page_translation", args=(self.en_blog_index.id,)
|
||||
)
|
||||
de = Locale.objects.get(language_code="de").id
|
||||
data = {"locales": [de], "include_subtree": True}
|
||||
self.login()
|
||||
response = self.client.post(url, data, follow=True)
|
||||
|
||||
translated_page = self.en_blog_index.get_translation(de)
|
||||
self.assertRedirects(
|
||||
response, reverse("wagtailadmin_pages:edit", args=[translated_page.pk])
|
||||
)
|
||||
|
||||
self.assertIn(
|
||||
"The page 'Blog' was successfully created in German",
|
||||
[msg.message for msg in response.context["messages"]],
|
||||
)
|
||||
|
||||
def test_submit_page_translation_view_test_post_multiple_locales(self):
|
||||
# Needs an extra page to hit recursive function
|
||||
en_blog_post_sub = Page(title="Blog post sub", slug="blog-post-sub")
|
||||
self.en_blog_post.add_child(instance=en_blog_post_sub)
|
||||
|
||||
url = reverse(
|
||||
"simple_translation:submit_page_translation", args=(self.en_blog_post.id,)
|
||||
)
|
||||
de = Locale.objects.get(language_code="de").id
|
||||
fr = Locale.objects.get(language_code="fr").id
|
||||
data = {"locales": [de, fr], "include_subtree": True}
|
||||
self.login()
|
||||
|
||||
with self.assertRaisesMessage(ParentNotTranslatedError, ""):
|
||||
self.client.post(url, data)
|
||||
|
||||
url = reverse(
|
||||
"simple_translation:submit_page_translation", args=(self.en_blog_index.id,)
|
||||
)
|
||||
response = self.client.post(url, data)
|
||||
|
||||
assert response.status_code == 302
|
||||
assert response.url == f"/admin/pages/{self.en_blog_index.get_parent().id}/"
|
||||
|
||||
response = self.client.get(response.url) # follow the redirect
|
||||
assert [msg.message for msg in response.context["messages"]] == [
|
||||
"The page 'Blog' was successfully created in 2 locales"
|
||||
]
|
||||
|
||||
|
||||
@override_settings(
|
||||
LANGUAGES=[
|
||||
("en", "English"),
|
||||
("fr", "French"),
|
||||
("de", "German"),
|
||||
],
|
||||
WAGTAIL_CONTENT_LANGUAGES=[
|
||||
("en", "English"),
|
||||
("fr", "French"),
|
||||
("de", "German"),
|
||||
],
|
||||
)
|
||||
class TestSubmitSnippetTranslationView(WagtailTestUtils, TestCase):
|
||||
def setUp(self):
|
||||
self.en_locale = Locale.objects.first()
|
||||
self.fr_locale = Locale.objects.create(language_code="fr")
|
||||
self.en_snippet = TranslatableSnippet(text="Hello world", locale=self.en_locale)
|
||||
self.en_snippet.save()
|
||||
|
||||
def test_get_title(self):
|
||||
view = SubmitSnippetTranslationView()
|
||||
view.object = self.en_snippet
|
||||
self.assertEqual(view.get_title(), "Translate translatable snippet")
|
||||
|
||||
def test_get_object(self):
|
||||
view = SubmitSnippetTranslationView()
|
||||
view.object = self.en_snippet
|
||||
view.kwargs = {
|
||||
"app_label": "some_app",
|
||||
"model_name": "some_model",
|
||||
"pk": 1,
|
||||
}
|
||||
with self.assertRaises(Http404):
|
||||
view.get_object()
|
||||
|
||||
content_type = ContentType.objects.get_for_model(self.en_snippet)
|
||||
view.kwargs = {
|
||||
"app_label": content_type.app_label,
|
||||
"model_name": content_type.model,
|
||||
"pk": str(self.en_snippet.pk),
|
||||
}
|
||||
self.assertEqual(view.get_object(), self.en_snippet)
|
||||
|
||||
def test_get_success_url(self):
|
||||
view = SubmitSnippetTranslationView()
|
||||
view.object = self.en_snippet
|
||||
view.kwargs = {
|
||||
"app_label": "snippetstests",
|
||||
"model_name": "translatablesnippet",
|
||||
"pk": 99,
|
||||
}
|
||||
self.assertEqual(
|
||||
view.get_success_url(),
|
||||
"/admin/snippets/snippetstests/translatablesnippet/edit/99/",
|
||||
)
|
||||
|
||||
def test_get_success_url_for_single_locale(self):
|
||||
view = SubmitSnippetTranslationView()
|
||||
view.object = self.en_snippet
|
||||
view.kwargs = {
|
||||
"app_label": "snippetstests",
|
||||
"model_name": "translatablesnippet",
|
||||
"pk": 99,
|
||||
}
|
||||
|
||||
self.assertEqual(
|
||||
view.get_success_url(view.object),
|
||||
reverse(
|
||||
"wagtailsnippets_snippetstests_translatablesnippet:edit",
|
||||
args=[view.object.pk],
|
||||
),
|
||||
)
|
||||
|
||||
def test_get_success_message(self):
|
||||
view = SubmitSnippetTranslationView()
|
||||
view.object = self.en_snippet
|
||||
self.assertEqual(
|
||||
view.get_success_message(self.fr_locale),
|
||||
f"Successfully created French for translatable snippet 'TranslatableSnippet object ({self.en_snippet.id})'",
|
||||
)
|
||||
|
||||
|
||||
@override_settings(
|
||||
LANGUAGES=[
|
||||
("en", "English"),
|
||||
("fr", "French"),
|
||||
("de", "German"),
|
||||
],
|
||||
WAGTAIL_CONTENT_LANGUAGES=[
|
||||
("en", "English"),
|
||||
("fr", "French"),
|
||||
("de", "German"),
|
||||
],
|
||||
WAGTAIL_I18N_ENABLED=True,
|
||||
)
|
||||
class TestSubmitSnippetTranslationWithDraftState(WagtailTestUtils, TestCase):
|
||||
def setUp(self):
|
||||
self.login()
|
||||
self.en_locale = Locale.objects.first()
|
||||
self.fr_locale = Locale.objects.create(language_code="fr")
|
||||
self.de_locale = Locale.objects.create(language_code="de")
|
||||
|
||||
self.en_snippet = FullFeaturedSnippet.objects.create(
|
||||
text="Hello world", locale=self.en_locale, live=False
|
||||
)
|
||||
self.en_snippet.save_revision().publish()
|
||||
self.en_snippet.text = "It's edited"
|
||||
self.en_snippet.save_revision()
|
||||
self.en_snippet.refresh_from_db()
|
||||
|
||||
self.model_opts = self.en_snippet._meta
|
||||
self.app_label = self.model_opts.app_label
|
||||
self.model_name = self.model_opts.model_name
|
||||
|
||||
def get_submit_url(self):
|
||||
return reverse(
|
||||
"simple_translation:submit_snippet_translation",
|
||||
args=(self.app_label, self.model_name, quote(self.en_snippet.pk)),
|
||||
)
|
||||
|
||||
def get_snippet_url(self, view, snippet):
|
||||
return reverse(
|
||||
snippet.snippet_viewset.get_url_name(view),
|
||||
args=(quote(snippet.pk),),
|
||||
)
|
||||
|
||||
def test_submit_snippet_translation_view_test_get(self):
|
||||
response = self.client.get(self.get_submit_url())
|
||||
self.assertIsInstance(response.context["form"], SubmitTranslationForm)
|
||||
|
||||
def test_submit_snippet_translation_view_test_post_invalid(self):
|
||||
response = self.client.post(self.get_submit_url(), {})
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(
|
||||
response.context["form"].errors,
|
||||
{"locales": ["This field is required."]},
|
||||
)
|
||||
|
||||
def test_submit_snippet_translation_view_test_post_single_locale(self):
|
||||
data = {"locales": [self.de_locale.id], "include_subtree": True}
|
||||
response = self.client.post(self.get_submit_url(), data, follow=True)
|
||||
|
||||
translated_snippet = self.en_snippet.get_translation(self.de_locale.id)
|
||||
self.assertRedirects(response, self.get_snippet_url("edit", translated_snippet))
|
||||
|
||||
self.assertContains(response, "It's edited", count=1)
|
||||
self.assertContains(response, '<h3 id="status-sidebar-german"', count=1)
|
||||
self.assertContains(
|
||||
response,
|
||||
f'<a href="{self.get_snippet_url("edit", self.en_snippet)}"',
|
||||
count=1,
|
||||
)
|
||||
self.assertNotContains(
|
||||
response,
|
||||
f'<a href="{self.get_snippet_url("edit", translated_snippet)}"',
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
[msg.message for msg in response.context["messages"]],
|
||||
["Successfully created German for full-featured snippet 'It's edited'"],
|
||||
)
|
||||
|
||||
def test_submit_snippet_translation_view_test_post_multiple_locales(self):
|
||||
url = self.get_submit_url()
|
||||
data = {"locales": [self.de_locale.id, self.fr_locale.id]}
|
||||
|
||||
response = self.client.post(url, data)
|
||||
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(response.url, self.get_snippet_url("edit", self.en_snippet))
|
||||
|
||||
response = self.client.get(response.url) # follow the redirect
|
||||
self.assertEqual(
|
||||
[msg.message for msg in response.context["messages"]],
|
||||
["Successfully created 2 locales for full-featured snippet 'It's edited'"],
|
||||
)
|
||||
|
||||
|
||||
@override_settings(
|
||||
LANGUAGES=[
|
||||
("en", "English"),
|
||||
("fr", "French"),
|
||||
("de", "German"),
|
||||
],
|
||||
WAGTAIL_CONTENT_LANGUAGES=[
|
||||
("en", "English"),
|
||||
("fr", "French"),
|
||||
("de", "German"),
|
||||
],
|
||||
WAGTAILSIMPLETRANSLATION_SYNC_PAGE_TREE=True,
|
||||
)
|
||||
class TestPageTreeSync(WagtailTestUtils, TestCase):
|
||||
def setUp(self):
|
||||
self.en_locale = Locale.objects.first()
|
||||
self.fr_locale = Locale.objects.create(language_code="fr")
|
||||
self.de_locale = Locale.objects.create(language_code="de")
|
||||
|
||||
self.en_homepage = Page.objects.get(depth=2)
|
||||
self.fr_homepage = self.en_homepage.copy_for_translation(self.fr_locale)
|
||||
self.de_homepage = self.en_homepage.copy_for_translation(self.de_locale)
|
||||
|
||||
def test_hook_function_registered(self):
|
||||
fns = hooks.get_hooks("after_create_page")
|
||||
|
||||
self.assertIn(after_create_page, fns)
|
||||
|
||||
def test_alias_created_after_page_saved(self):
|
||||
en_blog_index = TestPage(title="Blog", slug="blog")
|
||||
self.en_homepage.add_child(instance=en_blog_index)
|
||||
|
||||
after_create_page(None, en_blog_index)
|
||||
|
||||
fr_blog_index = en_blog_index.get_translation(self.fr_locale)
|
||||
de_blog_index = en_blog_index.get_translation(self.de_locale)
|
||||
|
||||
self.assertEqual(fr_blog_index.alias_of.specific, en_blog_index)
|
||||
self.assertEqual(de_blog_index.alias_of.specific, en_blog_index)
|
||||
|
||||
@override_settings(WAGTAILSIMPLETRANSLATION_SYNC_PAGE_TREE=False)
|
||||
def test_page_sync_disabled(self):
|
||||
en_blog_index = TestPage(title="Blog", slug="blog")
|
||||
self.en_homepage.add_child(instance=en_blog_index)
|
||||
|
||||
after_create_page(None, en_blog_index)
|
||||
|
||||
self.assertFalse(en_blog_index.has_translation(self.fr_locale))
|
||||
self.assertFalse(en_blog_index.has_translation(self.de_locale))
|
||||
555
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/tests/test_wagtail_hooks.py
vendored
Normal file
555
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/tests/test_wagtail_hooks.py
vendored
Normal file
@@ -0,0 +1,555 @@
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.contrib.auth.models import Group, Permission
|
||||
from django.test import TestCase, override_settings
|
||||
from django.urls import reverse
|
||||
|
||||
from wagtail import hooks
|
||||
from wagtail.actions.create_alias import CreatePageAliasAction
|
||||
from wagtail.actions.move_page import MovePageAction
|
||||
from wagtail.admin import widgets as wagtailadmin_widgets
|
||||
from wagtail.contrib.simple_translation.wagtail_hooks import (
|
||||
page_listing_more_buttons,
|
||||
register_submit_translation_permission,
|
||||
)
|
||||
from wagtail.models import Locale, Page
|
||||
from wagtail.test.i18n.models import TestPage
|
||||
from wagtail.test.utils import WagtailTestUtils
|
||||
|
||||
|
||||
class Utils(WagtailTestUtils, TestCase):
|
||||
def setUp(self):
|
||||
self.en_locale = Locale.objects.first()
|
||||
self.fr_locale = Locale.objects.create(language_code="fr")
|
||||
self.de_locale = Locale.objects.create(language_code="de")
|
||||
|
||||
self.en_homepage = Page.objects.get(depth=2)
|
||||
self.fr_homepage = self.en_homepage.copy_for_translation(self.fr_locale)
|
||||
self.de_homepage = self.en_homepage.copy_for_translation(self.de_locale)
|
||||
|
||||
self.en_blog_index = TestPage(title="Blog", slug="blog")
|
||||
self.en_homepage.add_child(instance=self.en_blog_index)
|
||||
|
||||
self.en_blog_post = TestPage(title="Blog post", slug="blog-post")
|
||||
self.en_blog_index.add_child(instance=self.en_blog_post)
|
||||
|
||||
|
||||
class TestWagtailHooksURLs(TestCase):
|
||||
def test_register_admin_urls_page(self):
|
||||
self.assertEqual(
|
||||
reverse("simple_translation:submit_page_translation", args=(1,)),
|
||||
"/admin/translation/submit/page/1/",
|
||||
)
|
||||
|
||||
def test_register_admin_urls_snippet(self):
|
||||
app_label = "foo"
|
||||
model_name = "bar"
|
||||
pk = 1
|
||||
self.assertEqual(
|
||||
reverse(
|
||||
"simple_translation:submit_snippet_translation",
|
||||
args=(app_label, model_name, pk),
|
||||
),
|
||||
"/admin/translation/submit/snippet/foo/bar/1/",
|
||||
)
|
||||
|
||||
|
||||
class TestWagtailHooksPermission(Utils):
|
||||
def test_register_submit_translation_permission(self):
|
||||
assert list(
|
||||
register_submit_translation_permission().values_list("id", flat=True)
|
||||
) == [
|
||||
Permission.objects.get(
|
||||
content_type__app_label="simple_translation",
|
||||
codename="submit_translation",
|
||||
).id
|
||||
]
|
||||
|
||||
|
||||
class TestWagtailHooksButtons(Utils):
|
||||
def test_page_listing_more_buttons(self):
|
||||
# Root, no button
|
||||
root_page = self.en_blog_index.get_root()
|
||||
|
||||
if get_user_model().USERNAME_FIELD == "email":
|
||||
user = get_user_model().objects.create_user(email="jos@example.com")
|
||||
else:
|
||||
user = get_user_model().objects.create_user(username="jos")
|
||||
assert list(page_listing_more_buttons(root_page, user)) == []
|
||||
|
||||
# No permissions, no button
|
||||
home_page = self.en_homepage
|
||||
assert list(page_listing_more_buttons(root_page, user)) == []
|
||||
|
||||
# Homepage is translated to all languages, no button
|
||||
perm = Permission.objects.get(codename="submit_translation")
|
||||
|
||||
if get_user_model().USERNAME_FIELD == "email":
|
||||
user = get_user_model().objects.create_user(email="henk@example.com")
|
||||
else:
|
||||
user = get_user_model().objects.create_user(username="henk")
|
||||
|
||||
# New user, to prevent permission cache.
|
||||
user.user_permissions.add(perm)
|
||||
group = Group.objects.get(name="Editors")
|
||||
user.groups.add(group)
|
||||
assert list(page_listing_more_buttons(home_page, user)) == []
|
||||
|
||||
# Page does not have translations yet... button!
|
||||
blog_page = self.en_blog_post
|
||||
assert isinstance(
|
||||
list(page_listing_more_buttons(blog_page, user))[0],
|
||||
wagtailadmin_widgets.Button,
|
||||
)
|
||||
|
||||
|
||||
class TestConstructSyncedPageTreeListHook(Utils):
|
||||
def unpublish_hook(self, pages, action):
|
||||
self.assertEqual(action, "unpublish")
|
||||
self.assertIsInstance(pages, list)
|
||||
|
||||
def missing_hook_action(self, pages, action):
|
||||
self.assertEqual(action, "")
|
||||
self.assertIsInstance(pages, list)
|
||||
|
||||
def test_double_registered_hook(self):
|
||||
# We should have two implementations of `construct_translated_pages_to_cascade_actions`
|
||||
# One in simple_translation.wagtail_hooks and the other will be
|
||||
# registered as a temporary hook.
|
||||
with hooks.register_temporarily(
|
||||
"construct_translated_pages_to_cascade_actions", self.unpublish_hook
|
||||
):
|
||||
defined_hooks = hooks.get_hooks(
|
||||
"construct_translated_pages_to_cascade_actions"
|
||||
)
|
||||
self.assertEqual(len(defined_hooks), 2)
|
||||
|
||||
@override_settings(WAGTAILSIMPLETRANSLATION_SYNC_PAGE_TREE=True)
|
||||
def test_page_tree_sync_on(self):
|
||||
with hooks.register_temporarily(
|
||||
"construct_translated_pages_to_cascade_actions", self.unpublish_hook
|
||||
):
|
||||
for fn in hooks.get_hooks("construct_translated_pages_to_cascade_actions"):
|
||||
response = fn([self.en_homepage], "unpublish")
|
||||
if response:
|
||||
self.assertIsInstance(response, dict)
|
||||
self.assertEqual(len(response.items()), 1)
|
||||
|
||||
@override_settings(WAGTAILSIMPLETRANSLATION_SYNC_PAGE_TREE=False)
|
||||
def test_page_tree_sync_off(self):
|
||||
with hooks.register_temporarily(
|
||||
"construct_translated_pages_to_cascade_actions", self.unpublish_hook
|
||||
):
|
||||
for fn in hooks.get_hooks("construct_translated_pages_to_cascade_actions"):
|
||||
response = fn([self.en_homepage], "unpublish")
|
||||
self.assertIsNone(response)
|
||||
|
||||
@override_settings(WAGTAILSIMPLETRANSLATION_SYNC_PAGE_TREE=True)
|
||||
def test_missing_hook_action(self):
|
||||
with hooks.register_temporarily(
|
||||
"construct_translated_pages_to_cascade_actions", self.missing_hook_action
|
||||
):
|
||||
for fn in hooks.get_hooks("construct_translated_pages_to_cascade_actions"):
|
||||
response = fn([self.en_homepage], "")
|
||||
if response is not None:
|
||||
self.assertIsInstance(response, dict)
|
||||
|
||||
@override_settings(
|
||||
WAGTAILSIMPLETRANSLATION_SYNC_PAGE_TREE=True, WAGTAIL_I18N_ENABLED=True
|
||||
)
|
||||
def test_other_l10n_pages_were_unpublished(self):
|
||||
# Login to access the admin
|
||||
self.login()
|
||||
|
||||
# Make sure the French homepage is published/live
|
||||
self.fr_homepage.live = True
|
||||
self.fr_homepage.save()
|
||||
self.assertTrue(self.en_homepage.live)
|
||||
self.assertTrue(self.fr_homepage.live)
|
||||
|
||||
response = self.client.post(
|
||||
reverse("wagtailadmin_pages:unpublish", args=(self.en_homepage.id,)),
|
||||
{"include_descendants": False},
|
||||
follow=True,
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
# Refresh objects from the database
|
||||
self.en_homepage.refresh_from_db()
|
||||
self.fr_homepage.refresh_from_db()
|
||||
|
||||
# Test that both the English and French homepages are unpublished
|
||||
self.assertFalse(self.en_homepage.live)
|
||||
self.assertFalse(self.fr_homepage.live)
|
||||
|
||||
|
||||
class TestMovingTranslatedPages(Utils):
|
||||
@override_settings(
|
||||
WAGTAILSIMPLETRANSLATION_SYNC_PAGE_TREE=True, WAGTAIL_I18N_ENABLED=True
|
||||
)
|
||||
def test_move_translated_pages(self):
|
||||
self.login()
|
||||
|
||||
# BlogIndex needs translated pages before child pages can be translated
|
||||
self.fr_blog_index = self.en_blog_index.copy_for_translation(self.fr_locale)
|
||||
self.de_blog_index = self.en_blog_index.copy_for_translation(self.de_locale)
|
||||
|
||||
# Create blog_post copies for translation
|
||||
self.fr_blog_post = self.en_blog_post.copy_for_translation(self.fr_locale)
|
||||
self.de_blog_post = self.en_blog_post.copy_for_translation(self.de_locale)
|
||||
|
||||
# Confirm location of English blog post page before it is moved
|
||||
# Should be living at /blog/blog-post/ right now. But will eventually
|
||||
# exist at /blog-post/
|
||||
self.assertEqual(self.en_blog_post.get_parent().id, self.en_blog_index.id)
|
||||
|
||||
# Check if fr and de blog post parent ids are in the translated list
|
||||
# This is to make sure the fr blog_post is situated under /fr/blog/
|
||||
# (same concept with /de/).
|
||||
# We'll check these after the move to ensure they exist under /fr/ without
|
||||
# the /blog/ parent page.
|
||||
original_translated_parent_ids = [
|
||||
p.id for p in self.en_blog_index.get_translations()
|
||||
]
|
||||
self.assertIn(self.fr_blog_post.get_parent().id, original_translated_parent_ids)
|
||||
self.assertIn(self.de_blog_post.get_parent().id, original_translated_parent_ids)
|
||||
|
||||
response = self.client.post(
|
||||
reverse(
|
||||
"wagtailadmin_pages:move_confirm",
|
||||
args=(
|
||||
self.en_blog_post.id,
|
||||
self.en_homepage.id,
|
||||
),
|
||||
),
|
||||
follow=True,
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
self.fr_blog_post.refresh_from_db()
|
||||
self.de_blog_post.refresh_from_db()
|
||||
|
||||
# Check if the new pages exist under their respective translated homepages
|
||||
home_page_translation_ids = [p.id for p in self.en_homepage.get_translations()]
|
||||
self.assertIn(
|
||||
self.fr_blog_post.get_parent(update=True).id, home_page_translation_ids
|
||||
)
|
||||
self.assertIn(
|
||||
self.de_blog_post.get_parent(update=True).id, home_page_translation_ids
|
||||
)
|
||||
|
||||
@override_settings(WAGTAILSIMPLETRANSLATION_SYNC_PAGE_TREE=False)
|
||||
def test_unmovable_translation_pages(self):
|
||||
"""
|
||||
Test that moving a page with WAGTAILSIMPLETRANSLATION_SYNC_PAGE_TREE
|
||||
disabled doesn't apply to its translations.
|
||||
"""
|
||||
self.login()
|
||||
|
||||
# BlogIndex needs translated pages before child pages can be translated
|
||||
self.fr_blog_index = self.en_blog_index.copy_for_translation(self.fr_locale)
|
||||
self.de_blog_index = self.en_blog_index.copy_for_translation(self.de_locale)
|
||||
|
||||
# Create blog_post copies for translation
|
||||
self.fr_blog_post = self.en_blog_post.copy_for_translation(self.fr_locale)
|
||||
self.de_blog_post = self.en_blog_post.copy_for_translation(self.de_locale)
|
||||
|
||||
# Confirm location of English blog post page before it is moved
|
||||
# Should be living at /blog/blog-post/ right now. But will eventually
|
||||
# exist at /blog-post/
|
||||
self.assertEqual(self.en_blog_post.get_parent().id, self.en_blog_index.id)
|
||||
|
||||
# Confirm the fr and de blog post pages are under the blog index page
|
||||
# We'll confirm these have not moved after the POST request.
|
||||
original_translated_parent_ids = [
|
||||
p.id for p in self.en_blog_index.get_translations()
|
||||
]
|
||||
self.assertIn(self.fr_blog_post.get_parent().id, original_translated_parent_ids)
|
||||
self.assertIn(self.de_blog_post.get_parent().id, original_translated_parent_ids)
|
||||
|
||||
response = self.client.post(
|
||||
reverse(
|
||||
"wagtailadmin_pages:move_confirm",
|
||||
args=(
|
||||
self.en_blog_post.id,
|
||||
self.en_homepage.id,
|
||||
),
|
||||
),
|
||||
follow=True,
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
self.en_blog_post.refresh_from_db()
|
||||
self.fr_blog_post.refresh_from_db()
|
||||
self.de_blog_post.refresh_from_db()
|
||||
|
||||
# Check that the en_blog_post page has moved directly under the home page.
|
||||
self.assertEqual(
|
||||
self.en_blog_post.get_parent(update=True).id, self.en_homepage.id
|
||||
)
|
||||
|
||||
# Check if the fr and de pages exist under their original parent page (/blog/)
|
||||
self.assertIn(
|
||||
self.fr_blog_post.get_parent(update=True).id, original_translated_parent_ids
|
||||
)
|
||||
self.assertIn(
|
||||
self.de_blog_post.get_parent(update=True).id, original_translated_parent_ids
|
||||
)
|
||||
|
||||
@override_settings(
|
||||
WAGTAILSIMPLETRANSLATION_SYNC_PAGE_TREE=True, WAGTAIL_I18N_ENABLED=True
|
||||
)
|
||||
def test_translation_count_in_context(self):
|
||||
"""Test translation count is correct in the confirm_move.html template."""
|
||||
self.login()
|
||||
|
||||
# BlogIndex needs translated pages before child pages can be translated
|
||||
self.fr_blog_index = self.en_blog_index.copy_for_translation(self.fr_locale)
|
||||
self.de_blog_index = self.en_blog_index.copy_for_translation(self.de_locale)
|
||||
|
||||
# create translation in FR tree
|
||||
self.fr_blog_post = self.en_blog_post.copy_for_translation(self.fr_locale)
|
||||
# create alias in DE tree
|
||||
self.de_blog_post = self.en_blog_post.copy_for_translation(
|
||||
self.de_locale, alias=True
|
||||
)
|
||||
|
||||
response = self.client.get(
|
||||
reverse(
|
||||
"wagtailadmin_pages:move_confirm",
|
||||
args=(
|
||||
self.en_blog_post.id,
|
||||
self.en_homepage.id,
|
||||
),
|
||||
),
|
||||
follow=True,
|
||||
)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response.context["translations_to_move_count"], 1)
|
||||
self.assertIn(
|
||||
"This will also move one translation of this page and its child pages",
|
||||
response.content.decode("utf-8"),
|
||||
)
|
||||
|
||||
|
||||
@override_settings(
|
||||
WAGTAILSIMPLETRANSLATION_SYNC_PAGE_TREE=True, WAGTAIL_I18N_ENABLED=True
|
||||
)
|
||||
class TestDeletingTranslatedPages(Utils):
|
||||
def delete_hook(self, pages, action):
|
||||
self.assertEqual(action, "delete")
|
||||
self.assertIsInstance(pages, list)
|
||||
|
||||
def test_construct_translated_pages_to_cascade_actions_when_deleting(self):
|
||||
with hooks.register_temporarily(
|
||||
"construct_translated_pages_to_cascade_actions", self.delete_hook
|
||||
):
|
||||
for fn in hooks.get_hooks("construct_translated_pages_to_cascade_actions"):
|
||||
response = fn([self.en_homepage], "delete")
|
||||
if response is not None:
|
||||
self.assertIsInstance(response, dict)
|
||||
self.assertEqual(len(response.items()), 1)
|
||||
|
||||
def test_delete_translated_pages(self):
|
||||
# Login to the Wagtail admin with a superuser account
|
||||
self.login()
|
||||
|
||||
# BlogIndex needs translated pages before child pages can be translated
|
||||
self.fr_blog_index = self.en_blog_index.copy_for_translation(self.fr_locale)
|
||||
# Create a copy of the en_blog_post object as a translated page
|
||||
self.fr_blog_post = self.en_blog_post.copy_for_translation(self.fr_locale)
|
||||
|
||||
# 1. Delete the en_blog_post by making a POST request to /delete/
|
||||
response = self.client.post(
|
||||
reverse(
|
||||
"wagtailadmin_pages:delete",
|
||||
args=(self.en_blog_post.id,),
|
||||
),
|
||||
follow=True,
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
# 2. Confirm fr_blog_post is deleted
|
||||
self.assertIsNone(Page.objects.filter(pk=self.fr_blog_post.id).first())
|
||||
|
||||
def test_delete_confirmation_template(self):
|
||||
"""Test the context info is correct in the confirm_delete.html template."""
|
||||
self.login()
|
||||
|
||||
# BlogIndex needs translated pages before child pages can be translated
|
||||
self.fr_blog_index = self.en_blog_index.copy_for_translation(self.fr_locale)
|
||||
# Create a copy of the en_blog_post object as a translated page
|
||||
self.fr_blog_post = self.en_blog_post.copy_for_translation(self.fr_locale)
|
||||
|
||||
# Create an alias page to test the `translations_to_move_count`
|
||||
# in the template context
|
||||
new_page = CreatePageAliasAction(
|
||||
self.en_blog_post,
|
||||
recursive=False,
|
||||
parent=self.en_blog_index,
|
||||
update_slug="alias-page-slug",
|
||||
user=None,
|
||||
)
|
||||
new_page.execute(skip_permission_checks=True)
|
||||
|
||||
response = self.client.get(
|
||||
reverse(
|
||||
"wagtailadmin_pages:delete",
|
||||
args=(self.en_blog_post.id,),
|
||||
),
|
||||
follow=True,
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response.context["translation_count"], 1)
|
||||
self.assertEqual(response.context["translation_descendant_count"], 0)
|
||||
self.assertIn(
|
||||
"Deleting this page will also delete 1 translation of this page.",
|
||||
response.content.decode("utf-8"),
|
||||
)
|
||||
|
||||
def test_deleting_page_with_divergent_translation_tree(self):
|
||||
self.login()
|
||||
|
||||
# New parent to eventually hold the fr_blog_post object.
|
||||
self.en_new_parent = TestPage(title="Test Parent", slug="test-parent")
|
||||
self.en_homepage.add_child(instance=self.en_new_parent)
|
||||
|
||||
# Copy the /blog/ and French /blog-post/ pages.
|
||||
self.fr_blog_index = self.en_blog_index.copy_for_translation(self.fr_locale)
|
||||
self.fr_blog_post = self.en_blog_post.copy_for_translation(self.fr_locale)
|
||||
# Copy the en new parent to be a french page
|
||||
self.fr_new_parent = self.en_new_parent.copy_for_translation(self.fr_locale)
|
||||
|
||||
# Manually move the fr_blog_post to live under fr_new_parent
|
||||
# Because this does not go through the POST request in pages/move.py
|
||||
# this action will create a diverged tree scnenario where en_blog_post
|
||||
# and fr_blog_post don't mirror their original positions in the tree.
|
||||
action = MovePageAction(
|
||||
self.fr_blog_post,
|
||||
self.fr_new_parent,
|
||||
pos="last-child",
|
||||
user=None,
|
||||
)
|
||||
action.execute(skip_permission_checks=True)
|
||||
|
||||
self.fr_blog_post.refresh_from_db()
|
||||
self.en_blog_post.refresh_from_db()
|
||||
|
||||
# Confirm fr_blog_post parent id is the fr_new_parent id.
|
||||
# Confirm en_blog_post parent id is the en_blog_index id
|
||||
self.assertEqual(
|
||||
self.fr_blog_post.get_parent(update=True).id, self.fr_new_parent.id
|
||||
)
|
||||
self.assertEqual(
|
||||
self.en_blog_post.get_parent(update=True).id, self.en_blog_index.id
|
||||
)
|
||||
|
||||
# Make a post request to move the en_blog_post to live under en_homepage
|
||||
response = self.client.post(
|
||||
reverse(
|
||||
"wagtailadmin_pages:delete",
|
||||
args=(self.en_blog_post.id,),
|
||||
),
|
||||
follow=True,
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
# Confirm that the en_blog_post object no longer exists.
|
||||
self.assertFalse(Page.objects.filter(pk=self.en_blog_post.id).exists())
|
||||
# Confirm that the fr_blog_post object stll exists, because it was moved
|
||||
self.assertTrue(Page.objects.filter(pk=self.fr_blog_post.id).exists())
|
||||
|
||||
# Confirm the fr_blog_post parent id matches the new_parent_page id
|
||||
# This confirms is hasn't moved and hasn't been deleted.
|
||||
# to a different location in the tree.
|
||||
self.fr_blog_post.refresh_from_db()
|
||||
self.assertEqual(
|
||||
self.fr_blog_post.get_parent(update=True).id, self.fr_new_parent.id
|
||||
)
|
||||
|
||||
def test_alias_pages_when_deleting_source_page(self):
|
||||
"""
|
||||
When deleting a page that has an alias page in the same tree, the alias page
|
||||
should continue to exist while the original page should be deleted
|
||||
while using the `construct_translated_pages_to_cascade_actions` hook is active.
|
||||
"""
|
||||
self.login()
|
||||
|
||||
# Test the source page exists in the right tree location
|
||||
self.assertEqual(self.en_blog_post.get_parent().id, self.en_blog_index.id)
|
||||
|
||||
# Create an alias page from en_blog_post
|
||||
action = CreatePageAliasAction(
|
||||
self.en_blog_post,
|
||||
recursive=False,
|
||||
parent=self.en_blog_index,
|
||||
update_slug="sample-slug",
|
||||
user=None,
|
||||
)
|
||||
new_page = action.execute(skip_permission_checks=True)
|
||||
# Make sure the alias page is an alias of the en_blog_post
|
||||
# and exists under the same parent page.
|
||||
self.assertEqual(new_page.get_parent().id, self.en_blog_index.id)
|
||||
# Test alias of source page
|
||||
self.assertEqual(new_page.alias_of_id, self.en_blog_post.id)
|
||||
|
||||
# Delete the en_blog_post page and make sure the alias page is kept in tact.
|
||||
response = self.client.post(
|
||||
reverse(
|
||||
"wagtailadmin_pages:delete",
|
||||
args=(self.en_blog_post.id,),
|
||||
),
|
||||
follow=True,
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertFalse(Page.objects.filter(pk=self.en_blog_post.id).exists())
|
||||
self.assertTrue(Page.objects.filter(pk=new_page.id).exists())
|
||||
|
||||
def test_translation_alias_pages_when_deleting_source_page(self):
|
||||
"""
|
||||
When deleting a page that has an alias page, the alias page
|
||||
should be deleted while using the `construct_translated_pages_to_cascade_actions`
|
||||
hook is active.
|
||||
"""
|
||||
self.login()
|
||||
|
||||
# BlogIndex needs translated pages before child pages can be translated
|
||||
self.fr_blog_index = self.en_blog_index.copy_for_translation(self.fr_locale)
|
||||
# Create a copy of the en_blog_post object as a translated alias page
|
||||
self.fr_blog_post = self.en_blog_post.copy_for_translation(
|
||||
self.fr_locale, alias=True
|
||||
)
|
||||
self.assertEqual(self.fr_blog_post.alias_of_id, self.en_blog_post.id)
|
||||
self.assertEqual(self.fr_blog_post.get_parent().id, self.fr_blog_index.id)
|
||||
|
||||
# Test that the fr_blog_post alias_id is in the list of translations, is a
|
||||
# proper alias of en_blog_post, and is using the french locale (fr).
|
||||
# Also check that the page is in the correct language tree
|
||||
translation_ids = [p.id for p in self.fr_blog_post.get_translations()]
|
||||
self.assertIn(self.fr_blog_post.alias_of_id, translation_ids)
|
||||
self.assertEqual(self.fr_blog_post.alias_of_id, self.en_blog_post.id)
|
||||
self.assertEqual(self.fr_blog_post.locale.language_code, "fr")
|
||||
|
||||
# Test the source is in the source tree root (source HomePage)
|
||||
# Test that the translated alias is in the translated root (fr HomePage)
|
||||
en_root = Page.objects.filter(depth__gt=1, locale=self.en_locale).first()
|
||||
fr_root = Page.objects.filter(depth__gt=1, locale=self.fr_locale).first()
|
||||
self.assertIn(self.en_blog_post, en_root.get_descendants().specific())
|
||||
self.assertIn(self.fr_blog_post, fr_root.get_descendants().specific())
|
||||
|
||||
# Delete the en_blog_post page and make sure the alias page is kept in tact.
|
||||
response = self.client.post(
|
||||
reverse(
|
||||
"wagtailadmin_pages:delete",
|
||||
args=(self.en_blog_post.id,),
|
||||
),
|
||||
follow=True,
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertFalse(Page.objects.filter(pk=self.en_blog_post.id).exists())
|
||||
self.assertFalse(Page.objects.filter(pk=self.fr_blog_post.id).exists())
|
||||
|
||||
# The source page continues to exist in the source tree root (HomePage)
|
||||
self.assertNotIn(self.en_blog_post, en_root.get_descendants().specific())
|
||||
# The alias should no longer be in the translated tree root (fr HomePage)
|
||||
self.assertNotIn(self.fr_blog_post, fr_root.get_descendants().specific())
|
||||
161
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/views.py
vendored
Normal file
161
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/views.py
vendored
Normal file
@@ -0,0 +1,161 @@
|
||||
from django.contrib import messages
|
||||
from django.contrib.admin.utils import unquote
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.db import transaction
|
||||
from django.http import Http404
|
||||
from django.shortcuts import get_object_or_404, redirect
|
||||
from django.urls import reverse
|
||||
from django.utils.translation import gettext as _
|
||||
from django.utils.translation import gettext_lazy
|
||||
from django.views.generic import TemplateView
|
||||
from django.views.generic.detail import SingleObjectMixin
|
||||
|
||||
from wagtail.actions.copy_for_translation import CopyPageForTranslationAction
|
||||
from wagtail.models import DraftStateMixin, Page, TranslatableMixin
|
||||
from wagtail.snippets.views.snippets import get_snippet_model_from_url_params
|
||||
|
||||
from .forms import SubmitTranslationForm
|
||||
|
||||
|
||||
class SubmitTranslationView(SingleObjectMixin, TemplateView):
|
||||
template_name = "simple_translation/admin/submit_translation.html"
|
||||
title = gettext_lazy("Translate")
|
||||
|
||||
def get_title(self):
|
||||
return self.title
|
||||
|
||||
def get_subtitle(self):
|
||||
return str(self.object)
|
||||
|
||||
def get_form(self):
|
||||
if self.request.method == "POST":
|
||||
return SubmitTranslationForm(self.object, self.request.POST)
|
||||
return SubmitTranslationForm(self.object)
|
||||
|
||||
def get_success_url(self, translated_object=None):
|
||||
raise NotImplementedError
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
context.update(
|
||||
{
|
||||
"form": self.get_form(),
|
||||
}
|
||||
)
|
||||
return context
|
||||
|
||||
def post(self, request, **kwargs): # pragma: no mccabe
|
||||
form = self.get_form()
|
||||
|
||||
if form.is_valid():
|
||||
include_subtree = form.cleaned_data["include_subtree"]
|
||||
user = request.user
|
||||
|
||||
with transaction.atomic():
|
||||
for locale in form.cleaned_data["locales"]:
|
||||
if isinstance(self.object, Page):
|
||||
action = CopyPageForTranslationAction(
|
||||
page=self.object,
|
||||
locale=locale,
|
||||
include_subtree=include_subtree,
|
||||
user=user,
|
||||
)
|
||||
action.execute(skip_permission_checks=True)
|
||||
|
||||
else:
|
||||
self.object.copy_for_translation(
|
||||
locale
|
||||
).save() # pragma: no cover
|
||||
|
||||
single_translated_object = None
|
||||
if len(form.cleaned_data["locales"]) == 1:
|
||||
locales = form.cleaned_data["locales"][0].get_display_name()
|
||||
single_translated_object = self.object.get_translation(
|
||||
form.cleaned_data["locales"][0]
|
||||
)
|
||||
else:
|
||||
# Translators: always plural
|
||||
locales = _("%(locales_count)s locales") % {
|
||||
"locales_count": len(form.cleaned_data["locales"])
|
||||
}
|
||||
|
||||
messages.success(self.request, self.get_success_message(locales))
|
||||
|
||||
return redirect(self.get_success_url(single_translated_object))
|
||||
|
||||
context = self.get_context_data(**kwargs)
|
||||
return self.render_to_response(context)
|
||||
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
if not request.user.has_perms(["simple_translation.submit_translation"]):
|
||||
raise PermissionDenied
|
||||
|
||||
self.object = self.get_object()
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
|
||||
class SubmitPageTranslationView(SubmitTranslationView):
|
||||
title = gettext_lazy("Translate page")
|
||||
|
||||
def get_subtitle(self):
|
||||
return self.object.get_admin_display_title()
|
||||
|
||||
def get_object(self):
|
||||
page = get_object_or_404(Page, id=self.kwargs["page_id"]).specific
|
||||
|
||||
# Can't translate the root page
|
||||
if page.is_root():
|
||||
raise Http404
|
||||
|
||||
return page
|
||||
|
||||
def get_success_url(self, translated_page=None):
|
||||
if translated_page:
|
||||
# If the editor chose a single locale to translate to, redirect to
|
||||
# the newly translated page's edit view.
|
||||
return reverse("wagtailadmin_pages:edit", args=[translated_page.id])
|
||||
|
||||
return reverse("wagtailadmin_explore", args=[self.get_object().get_parent().id])
|
||||
|
||||
def get_success_message(self, locales):
|
||||
return _(
|
||||
"The page '%(page_title)s' was successfully created in %(locales)s"
|
||||
) % {"page_title": self.object.get_admin_display_title(), "locales": locales}
|
||||
|
||||
|
||||
class SubmitSnippetTranslationView(SubmitTranslationView):
|
||||
def get_title(self):
|
||||
return _("Translate %(model_name)s") % {
|
||||
"model_name": self.object._meta.verbose_name
|
||||
}
|
||||
|
||||
def get_object(self):
|
||||
model = get_snippet_model_from_url_params(
|
||||
self.kwargs["app_label"], self.kwargs["model_name"]
|
||||
)
|
||||
|
||||
if not issubclass(model, TranslatableMixin):
|
||||
raise Http404
|
||||
|
||||
object = get_object_or_404(model, pk=unquote(str(self.kwargs["pk"])))
|
||||
if isinstance(object, DraftStateMixin):
|
||||
object = object.get_latest_revision_as_object()
|
||||
|
||||
return object
|
||||
|
||||
def get_success_url(self, translated_snippet=None):
|
||||
pk = self.kwargs["pk"]
|
||||
|
||||
if translated_snippet:
|
||||
# If the editor chose a single locale to translate to, redirect to
|
||||
# the newly translated snippet's edit view.
|
||||
pk = translated_snippet.pk
|
||||
|
||||
return reverse(self.object.snippet_viewset.get_url_name("edit"), args=[pk])
|
||||
|
||||
def get_success_message(self, locales):
|
||||
return _("Successfully created %(locales)s for %(model_name)s '%(object)s'") % {
|
||||
"model_name": self.object._meta.verbose_name,
|
||||
"object": str(self.object),
|
||||
"locales": locales,
|
||||
}
|
||||
137
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/wagtail_hooks.py
vendored
Normal file
137
env/lib/python3.10/site-packages/wagtail/contrib/simple_translation/wagtail_hooks.py
vendored
Normal file
@@ -0,0 +1,137 @@
|
||||
from typing import List
|
||||
|
||||
from django.conf import settings
|
||||
from django.contrib.admin.utils import quote
|
||||
from django.contrib.auth.models import Permission
|
||||
from django.urls import include, path, reverse
|
||||
from django.utils.translation import gettext as _
|
||||
|
||||
from wagtail import hooks
|
||||
from wagtail.admin import widgets as wagtailadmin_widgets
|
||||
from wagtail.models import Locale, Page, TranslatableMixin
|
||||
from wagtail.snippets.widgets import SnippetListingButton
|
||||
|
||||
from .views import SubmitPageTranslationView, SubmitSnippetTranslationView
|
||||
|
||||
|
||||
@hooks.register("register_admin_urls")
|
||||
def register_admin_urls():
|
||||
urls = [
|
||||
path(
|
||||
"submit/page/<int:page_id>/",
|
||||
SubmitPageTranslationView.as_view(),
|
||||
name="submit_page_translation",
|
||||
),
|
||||
path(
|
||||
"submit/snippet/<slug:app_label>/<slug:model_name>/<str:pk>/",
|
||||
SubmitSnippetTranslationView.as_view(),
|
||||
name="submit_snippet_translation",
|
||||
),
|
||||
]
|
||||
|
||||
return [
|
||||
path(
|
||||
"translation/",
|
||||
include(
|
||||
(urls, "simple_translation"),
|
||||
namespace="simple_translation",
|
||||
),
|
||||
)
|
||||
]
|
||||
|
||||
|
||||
@hooks.register("register_permissions")
|
||||
def register_submit_translation_permission():
|
||||
return Permission.objects.filter(
|
||||
content_type__app_label="simple_translation", codename="submit_translation"
|
||||
)
|
||||
|
||||
|
||||
@hooks.register("register_page_listing_more_buttons")
|
||||
def page_listing_more_buttons(page, user, next_url=None):
|
||||
if user.has_perm("simple_translation.submit_translation") and not page.is_root():
|
||||
# If there's at least one locale that we haven't translated into yet,
|
||||
# show "Translate this page" button
|
||||
has_locale_to_translate_to = Locale.objects.exclude(
|
||||
id__in=page.get_translations(inclusive=True).values_list(
|
||||
"locale_id", flat=True
|
||||
)
|
||||
).exists()
|
||||
|
||||
if has_locale_to_translate_to:
|
||||
url = reverse("simple_translation:submit_page_translation", args=[page.id])
|
||||
yield wagtailadmin_widgets.Button(_("Translate"), url, priority=60)
|
||||
|
||||
|
||||
@hooks.register("register_page_header_buttons")
|
||||
def page_header_buttons(page, user, view_name, next_url=None):
|
||||
if not page.is_root() and user.has_perm("simple_translation.submit_translation"):
|
||||
# If there's at least one locale that we haven't translated into yet,
|
||||
# show "Translate this page" button
|
||||
has_locale_to_translate_to = Locale.objects.exclude(
|
||||
id__in=page.get_translations(inclusive=True).values_list(
|
||||
"locale_id", flat=True
|
||||
)
|
||||
).exists()
|
||||
|
||||
if has_locale_to_translate_to:
|
||||
url = reverse("simple_translation:submit_page_translation", args=[page.id])
|
||||
yield wagtailadmin_widgets.Button(
|
||||
_("Translate"),
|
||||
url,
|
||||
icon_name="globe",
|
||||
attrs={
|
||||
"title": _("Translate this page")
|
||||
% {"title": page.get_admin_display_title()}
|
||||
},
|
||||
priority=80,
|
||||
)
|
||||
|
||||
|
||||
@hooks.register("register_snippet_listing_buttons")
|
||||
def register_snippet_listing_buttons(snippet, user, next_url=None):
|
||||
model = type(snippet)
|
||||
|
||||
if issubclass(model, TranslatableMixin) and user.has_perm(
|
||||
"simple_translation.submit_translation"
|
||||
):
|
||||
# If there's at least one locale that we haven't translated into yet, show "Translate" button
|
||||
has_locale_to_translate_to = Locale.objects.exclude(
|
||||
id__in=snippet.get_translations(inclusive=True).values_list(
|
||||
"locale_id", flat=True
|
||||
)
|
||||
).exists()
|
||||
|
||||
if has_locale_to_translate_to:
|
||||
url = reverse(
|
||||
"simple_translation:submit_snippet_translation",
|
||||
args=[model._meta.app_label, model._meta.model_name, quote(snippet.pk)],
|
||||
)
|
||||
yield SnippetListingButton(
|
||||
_("Translate"),
|
||||
url,
|
||||
attrs={
|
||||
"aria-label": _("Translate '%(title)s'") % {"title": str(snippet)}
|
||||
},
|
||||
priority=100,
|
||||
)
|
||||
|
||||
|
||||
@hooks.register("construct_translated_pages_to_cascade_actions")
|
||||
def construct_translated_pages_to_cascade_actions(pages: List[Page], action: str):
|
||||
if not getattr(settings, "WAGTAILSIMPLETRANSLATION_SYNC_PAGE_TREE", False):
|
||||
return
|
||||
|
||||
page_list = {}
|
||||
if action == "unpublish":
|
||||
# Only return non-alias translations of the page
|
||||
for page in pages:
|
||||
page_list[page] = Page.objects.translation_of(page, inclusive=False).filter(
|
||||
alias_of__isnull=True
|
||||
)
|
||||
elif action == "move" or action == "delete":
|
||||
# Return all translations or aliases in other trees
|
||||
for page in pages:
|
||||
page_list[page] = Page.objects.translation_of(page, inclusive=False)
|
||||
|
||||
return page_list
|
||||
Reference in New Issue
Block a user