110 lines
3.8 KiB
Python
110 lines
3.8 KiB
Python
import pytz
|
|
from django.conf import settings
|
|
from django.utils.dates import MONTHS, WEEKDAYS, WEEKDAYS_ABBR
|
|
from django.utils.translation import gettext as _
|
|
|
|
# Wagtail languages with >=90% coverage
|
|
# This list is manually maintained
|
|
WAGTAILADMIN_PROVIDED_LANGUAGES = [
|
|
("ar", "Arabic"),
|
|
("ca", "Catalan"),
|
|
("cs", "Czech"),
|
|
("de", "German"),
|
|
("el", "Greek"),
|
|
("en", "English"),
|
|
("es", "Spanish"),
|
|
("et", "Estonian"),
|
|
("fi", "Finnish"),
|
|
("fr", "French"),
|
|
("gl", "Galician"),
|
|
("hr", "Croatian"),
|
|
("hu", "Hungarian"),
|
|
("id-id", "Indonesian"),
|
|
("is-is", "Icelandic"),
|
|
("it", "Italian"),
|
|
("ja", "Japanese"),
|
|
("ko", "Korean"),
|
|
("lt", "Lithuanian"),
|
|
("mn", "Mongolian"),
|
|
("nb", "Norwegian Bokmål"),
|
|
("nl", "Dutch"),
|
|
("fa", "Persian"),
|
|
("pl", "Polish"),
|
|
("pt-br", "Brazilian Portuguese"),
|
|
("pt-pt", "Portuguese"),
|
|
("ro", "Romanian"),
|
|
("ru", "Russian"),
|
|
("sv", "Swedish"),
|
|
("sk-sk", "Slovak"),
|
|
("sl", "Slovenian"),
|
|
("th", "Thai"),
|
|
("tr", "Turkish"),
|
|
("uk", "Ukrainian"),
|
|
("zh-hans", "Chinese (Simplified)"),
|
|
("zh-hant", "Chinese (Traditional)"),
|
|
]
|
|
|
|
|
|
# Translatable strings to be made available to JavaScript code
|
|
# as the wagtailConfig.STRINGS object
|
|
def get_js_translation_strings():
|
|
return {
|
|
"MONTHS": [str(m) for m in MONTHS.values()],
|
|
# Django's WEEKDAYS list begins on Monday, but ours should start on Sunday, so start
|
|
# counting from -1 and use modulo 7 to get an array index
|
|
"WEEKDAYS": [str(WEEKDAYS[d % 7]) for d in range(-1, 6)],
|
|
"WEEKDAYS_SHORT": [str(WEEKDAYS_ABBR[d % 7]) for d in range(-1, 6)],
|
|
# used by bulk actions
|
|
"BULK_ACTIONS": {
|
|
"PAGE": {
|
|
"SINGULAR": _("1 page selected"),
|
|
"PLURAL": _("%(objects)s pages selected"),
|
|
"ALL": _("All %(objects)s pages on this screen selected"),
|
|
"ALL_IN_LISTING": _("All pages in listing selected"),
|
|
},
|
|
"DOCUMENT": {
|
|
"SINGULAR": _("1 document selected"),
|
|
"PLURAL": _("%(objects)s documents selected"),
|
|
"ALL": _("All %(objects)s documents on this screen selected"),
|
|
"ALL_IN_LISTING": _("All documents in listing selected"),
|
|
},
|
|
"IMAGE": {
|
|
"SINGULAR": _("1 image selected"),
|
|
"PLURAL": _("%(objects)s images selected"),
|
|
"ALL": _("All %(objects)s images on this screen selected"),
|
|
"ALL_IN_LISTING": _("All images in listing selected"),
|
|
},
|
|
"USER": {
|
|
"SINGULAR": _("1 user selected"),
|
|
"PLURAL": _("%(objects)s users selected"),
|
|
"ALL": _("All %(objects)s users on this screen selected"),
|
|
"ALL_IN_LISTING": _("All users in listing selected"),
|
|
},
|
|
"SNIPPET": {
|
|
"SINGULAR": _("1 snippet selected"),
|
|
"PLURAL": _("%(objects)s snippets selected"),
|
|
"ALL": _("All %(objects)s snippets on this screen selected"),
|
|
"ALL_IN_LISTING": _("All snippets in listing selected"),
|
|
},
|
|
"ITEM": {
|
|
"SINGULAR": _("1 item selected"),
|
|
"PLURAL": _("%(objects)s items selected"),
|
|
"ALL": _("All %(objects)s items on this screen selected"),
|
|
"ALL_IN_LISTING": _("All items in listing selected"),
|
|
},
|
|
},
|
|
}
|
|
|
|
|
|
def get_available_admin_languages():
|
|
return getattr(
|
|
settings, "WAGTAILADMIN_PERMITTED_LANGUAGES", WAGTAILADMIN_PROVIDED_LANGUAGES
|
|
)
|
|
|
|
|
|
def get_available_admin_time_zones():
|
|
if not settings.USE_TZ:
|
|
return []
|
|
|
|
return getattr(settings, "WAGTAIL_USER_TIME_ZONES", pytz.common_timezones)
|