diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 6ab2b30fe7dd1bba5743890c624b8172ab61ce35..890eeeb496c6a1325e7bf4d58923d11917ffdec3 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -28,10 +28,12 @@ Added * Notification drawer in top nav bar * GraphQL queries and mutations for core data management * [Dev] Introduce new mechanism to register classes over all apps. +* Data template for `room` model used for haystack search indexing moved to core. Changed ~~~~~~~ +* Show languages in local language * Rewrite of frontend using Vuetify * The runuwsgi dev server now starts a Vite dev server with HMR in the background @@ -45,11 +47,13 @@ Changed * [Dev] The undocumented field `check` on `DataCheckResult` was renamed to `data_check` * Frontend bundling migrated from Webpack to Vite * Get dashboard widgets and data checks from apps with new registration mechanism. +* Use write-through cache for sessions to retain on clear_cache * Better error page with redirect option to login page when user has no permission to access a route. Fixed ~~~~~ +* The error page displayed when an ObjectOverview component is not able to get the required data was incomplete. * The permission check for the dashboard edit page failed when the user had no person assigned. * In some cases, the IFrame for legacy pages was not properly sized for its content. * When accessing the person overview page without a person ID, the avatar image was not displayed properly. @@ -58,6 +62,9 @@ Fixed * Invitations for existing short name did not work. * Invitations for persons without pre-defined e-mail address did not behave correctly * OIDC scope "phone" had no claims. +* 2FA via messages or phone calls didn't work. +* [Dev] Site reference on extensible models can no longer cause name clashes + because of its related name. Removed ~~~~~~~ @@ -203,6 +210,7 @@ Fixed * Due to a merge error, the once removed account menu in the sidenav appeared again. * Scheduled notifications were shown on dashboard before time. * Remove broken notifications menu item in favor of item next to account menu. +* Serve OAuth discovery information under root of domain * [OAuth2] Resources which are protected with client credentials allowed access if no scopes were allowed (CVE-2022-29773). * The site logo could overlap with the menu for logos with an unexpected aspect ratio. diff --git a/aleksis/core/frontend/app/i18n.js b/aleksis/core/frontend/app/i18n.js index ed50743eddf2d7fe306b9fe1116ef17fc914911d..a345a13c457ca979a1a2cee7319d82f46cb67ca2 100644 --- a/aleksis/core/frontend/app/i18n.js +++ b/aleksis/core/frontend/app/i18n.js @@ -5,7 +5,6 @@ import dateTimeFormats from "./dateTimeFormats.js"; const i18nOpts = { - locale: "en", fallbackLocale: "en", messages: {}, dateTimeFormats, diff --git a/aleksis/core/frontend/components/app/AccountMenu.vue b/aleksis/core/frontend/components/app/AccountMenu.vue index 70e8c52fa770b743c138c6212f296b223be83340..ed5ee1ba5873756b37be18e21cea7c0603f1b8e2 100644 --- a/aleksis/core/frontend/components/app/AccountMenu.vue +++ b/aleksis/core/frontend/components/app/AccountMenu.vue @@ -52,7 +52,11 @@ <v-list-item-icon> <v-icon v-if="menuItem.icon">{{ menuItem.icon }}</v-icon> </v-list-item-icon> - <v-list-item-title>{{ $t(menuItem.titleKey) }}</v-list-item-title> + <v-list-item-title>{{ + !menuItem.rawTitleString + ? $t(menuItem.titleKey) + : menuItemm.rawTitleString + }}</v-list-item-title> </v-list-item> </div> </v-list> diff --git a/aleksis/core/frontend/components/app/App.vue b/aleksis/core/frontend/components/app/App.vue index da681615b320f70c3ac3c494bc12f1d70cd1d7f9..e11725a36e9dc33310750397a68305b3af05c566 100644 --- a/aleksis/core/frontend/components/app/App.vue +++ b/aleksis/core/frontend/components/app/App.vue @@ -82,8 +82,17 @@ </message-box> </div> + <error-page + v-if="error404" + short-error-message-key="network_errors.error_404" + long-error-message-key="network_errors.page_not_found" + redirect-button-text-key="network_errors.back_to_start" + redirect-route-name="dashboard" + redirect-button-icon="mdi-home-outline" + > + </error-page> <router-view - v-if=" + v-else-if=" !$route.meta.permission || checkPermission($route.meta.permission) || $route.name === 'dashboard' @@ -216,6 +225,7 @@ import gqlSystemProperties from "./systemProperties.graphql"; import useRegisterSWMixin from "../../mixins/useRegisterSW"; import offlineMixin from "../../mixins/offline"; import menusMixin from "../../mixins/menus"; +import routesMixin from "../../mixins/routes"; export default { data() { @@ -224,6 +234,7 @@ export default { whoAmI: null, systemProperties: null, messages: null, + error404: false, }; }, apollo: { @@ -244,8 +255,6 @@ export default { }, watch: { systemProperties: function (newProperties) { - this.$i18n.locale = newProperties.currentLanguage; - this.$vuetify.lang.current = newProperties.currentLanguage; this.$vuetify.theme.themes.light.primary = newProperties.sitePreferences.themePrimary; this.$vuetify.theme.themes.light.secondary = @@ -261,6 +270,16 @@ export default { }, deep: true, }, + $route: { + handler(newRoute) { + if (newRoute.matched.length == 0) { + this.error404 = true; + } else { + this.error404 = false; + } + }, + immediate: true, + }, }, name: "App", components: { @@ -272,7 +291,7 @@ export default { SideNav, SnackbarItem, }, - mixins: [useRegisterSWMixin, offlineMixin, menusMixin], + mixins: [useRegisterSWMixin, offlineMixin, menusMixin, routesMixin], }; </script> diff --git a/aleksis/core/frontend/components/app/ErrorPage.vue b/aleksis/core/frontend/components/app/ErrorPage.vue index abfb51fd08aad58aaed196b84aba8acf906964c9..18ee6e7db6f84dcaeb1e8a013ee70451769afea5 100644 --- a/aleksis/core/frontend/components/app/ErrorPage.vue +++ b/aleksis/core/frontend/components/app/ErrorPage.vue @@ -5,7 +5,11 @@ > <h1 class="text-h2">{{ $t(shortErrorMessageKey) }}</h1> <div>{{ $t(longErrorMessageKey) }}</div> - <v-btn color="secondary" :to="{ name: redirectRouteName }"> + <v-btn + color="secondary" + :to="{ name: redirectRouteName }" + v-if="!hideButton" + > <v-icon left>{{ redirectButtonIcon }}</v-icon> {{ $t(redirectButtonTextKey) }} </v-btn> @@ -36,6 +40,11 @@ export default { type: String, required: true, }, + hideButton: { + type: Boolean, + default: false, + required: false, + }, }, }; </script> diff --git a/aleksis/core/frontend/components/app/LanguageForm.vue b/aleksis/core/frontend/components/app/LanguageForm.vue index 355f719e45eb6e77f2ca6e439687986cbbf788de..12acbe613e94a23e25f5d1195b0badf420d92aa6 100644 --- a/aleksis/core/frontend/components/app/LanguageForm.vue +++ b/aleksis/core/frontend/components/app/LanguageForm.vue @@ -3,7 +3,7 @@ v-if="availableLanguages" v-model="language" :items="availableLanguages" - item-text="nameTranslated" + :item-text="nameForMenu" item-value="code" menu-props="auto" outlined @@ -40,6 +40,9 @@ export default { this.$i18n.locale = languageOption.code; this.$vuetify.lang.current = languageOption.code; }, + nameForMenu: function (item) { + return `${item.nameLocal} (${item.code})`; + }, }, name: "LanguageForm", }; diff --git a/aleksis/core/frontend/components/app/SideNav.vue b/aleksis/core/frontend/components/app/SideNav.vue index 79ee3745b7c4fc4199eda657d18482408ad06f29..0975c580cda88d03fd8a5d34b2fb16425ece69ee 100644 --- a/aleksis/core/frontend/components/app/SideNav.vue +++ b/aleksis/core/frontend/components/app/SideNav.vue @@ -1,5 +1,5 @@ <template> - <v-navigation-drawer app :value="value"> + <v-navigation-drawer app :value="value" @input="$emit('input', $event)"> <v-list nav dense shaped> <v-list-item class="logo"> <a @@ -19,11 +19,19 @@ v-if="menuItem.subMenu.length > 0" href="#!" :prepend-icon="menuItem.icon" - :value="$route.matched.slice(-2).shift().name === menuItem.name" + :value=" + $route.matched.slice(-2).shift() + ? $route.matched.slice(-2).shift().name === menuItem.name + : false + " > <template #activator> <v-list-item-title - >{{ $t(menuItem.titleKey) }} + >{{ + !menuItem.rawTitleString + ? $t(menuItem.titleKey) + : menuItem.rawTitleString + }} </v-list-item-title> </template> <v-list-item @@ -38,7 +46,11 @@ <v-icon v-if="subMenuItem.icon">{{ subMenuItem.icon }} </v-icon> </v-list-item-icon> <v-list-item-title - >{{ $t(subMenuItem.titleKey) }} + >{{ + !subMenuItem.rawTitleString + ? $t(subMenuItem.titleKey) + : subMenuItem.rawTitleString + }} </v-list-item-title> </v-list-item> </v-list-group> @@ -52,7 +64,11 @@ <v-list-item-icon> <v-icon v-if="menuItem.icon">{{ menuItem.icon }}</v-icon> </v-list-item-icon> - <v-list-item-title>{{ $t(menuItem.titleKey) }}</v-list-item-title> + <v-list-item-title>{{ + !menuItem.rawTitleString + ? $t(menuItem.titleKey) + : menuItem.rawTitleString + }}</v-list-item-title> </v-list-item> </div> </v-list-item-group> diff --git a/aleksis/core/frontend/components/app/SidenavSearch.vue b/aleksis/core/frontend/components/app/SidenavSearch.vue index 281e5abb9ffc3d07e9607f6af4e076d192b9fd8a..9901c345fc0b55a30afab7ec0edab9fd35474d49 100644 --- a/aleksis/core/frontend/components/app/SidenavSearch.vue +++ b/aleksis/core/frontend/components/app/SidenavSearch.vue @@ -55,6 +55,7 @@ export default { skip() { return !this.q; }, + fetchPolicy: "network-only", }, }, }; diff --git a/aleksis/core/frontend/components/app/dynamicRoutes.graphql b/aleksis/core/frontend/components/app/dynamicRoutes.graphql new file mode 100644 index 0000000000000000000000000000000000000000..49c208b729f4185b0053e8bfbff13fd3ca8c78f5 --- /dev/null +++ b/aleksis/core/frontend/components/app/dynamicRoutes.graphql @@ -0,0 +1,18 @@ +{ + dynamicRoutes { + parentRouteName + + routePath + routeName + + displayAccountMenu + displaySidenavMenu + menuNewTab + + menuTitle + menuIcon + + menuPermission + routePermission + } +} diff --git a/aleksis/core/frontend/components/app/systemProperties.graphql b/aleksis/core/frontend/components/app/systemProperties.graphql index e599cf04694c79a0bd7d1a38dd7f9bb0bd80a4ae..99533650b65369f4a07c330399a2f452a815b763 100644 --- a/aleksis/core/frontend/components/app/systemProperties.graphql +++ b/aleksis/core/frontend/components/app/systemProperties.graphql @@ -3,9 +3,9 @@ availableLanguages { code nameTranslated + nameLocal cookie } - currentLanguage sitePreferences { themePrimary themeSecondary diff --git a/aleksis/core/frontend/components/generic/ObjectOverview.vue b/aleksis/core/frontend/components/generic/ObjectOverview.vue index d962243e988167f266cf003fd81b01c6e41a0454..4839b3b8a8a3413ffa11ac2478a5c571c9378522 100644 --- a/aleksis/core/frontend/components/generic/ObjectOverview.vue +++ b/aleksis/core/frontend/components/generic/ObjectOverview.vue @@ -6,6 +6,9 @@ v-else :short-error-message-key="shortErrorMessageKey" :long-error-message-key="longErrorMessageKey" + :redirect-button-text-key="redirectButtonTextKey" + :redirect-route-name="redirectRouteName" + :redirect-button-icon="redirectButtonIcon" /> </div> </template> @@ -32,6 +35,21 @@ export default { required: false, default: "network_errors.page_not_found", }, + redirectButtonTextKey: { + type: String, + required: false, + default: "network_errors.back_to_start", + }, + redirectRouteName: { + type: String, + required: false, + default: "dashboard", + }, + redirectButtonIcon: { + type: String, + required: false, + default: "mdi-home-outline", + }, }, methods: { getTitleAttr(obj) { diff --git a/aleksis/core/frontend/components/two_factor/TwoFactor.vue b/aleksis/core/frontend/components/two_factor/TwoFactor.vue index 1d9dd9e78348bce2814dd22c631a58d4cc7610e2..6cdf7331a1f912f3f430a4f0b2443ac61de834ec 100644 --- a/aleksis/core/frontend/components/two_factor/TwoFactor.vue +++ b/aleksis/core/frontend/components/two_factor/TwoFactor.vue @@ -7,9 +7,7 @@ <div v-else-if="twoFactor && twoFactor.activated"> <v-card class="mb-4"> <v-card-title> - {{ - $t("accounts.two_factor.primary_device_title") - }} + {{ $t("accounts.two_factor.primary_device_title") }} </v-card-title> <v-card-text> {{ $t("accounts.two_factor.primary_device_description") }} @@ -21,15 +19,13 @@ <v-card class="mb-4"> <v-card-title> - {{ - $t("accounts.two_factor.other_devices_title") - }} + {{ $t("accounts.two_factor.other_devices_title") }} </v-card-title> <v-card-text> {{ $t("accounts.two_factor.other_devices_description") }} </v-card-text> <v-list three-line> - <div v-for="(device, index) in twoFactor.otherDevices"> + <div v-for="(device, index) in twoFactor.otherDevices" :key="index"> <two-factor-device :device="device" /> <v-divider /> </div> @@ -89,9 +85,7 @@ <div v-else> <v-card class="mb-4"> <v-card-title> - {{ - $t("accounts.two_factor.enable_title") - }} + {{ $t("accounts.two_factor.enable_title") }} </v-card-title> <v-card-text> {{ $t("accounts.two_factor.enable_description") }} diff --git a/aleksis/core/frontend/components/two_factor/TwoFactorDevice.vue b/aleksis/core/frontend/components/two_factor/TwoFactorDevice.vue index c01fc922f8c5c57dab3305ddeeebda3996ea42ba..5cd74e6ff5c03b8ad9699509cccebf32524120cc 100644 --- a/aleksis/core/frontend/components/two_factor/TwoFactorDevice.vue +++ b/aleksis/core/frontend/components/two_factor/TwoFactorDevice.vue @@ -3,9 +3,7 @@ <template #title>{{ device.methodVerboseName }}</template> <template #subtitles> <v-list-item-subtitle> - {{ - $t("accounts.two_factor.methods." + device.methodCode) - }} + {{ $t("accounts.two_factor.methods." + device.methodCode) }} </v-list-item-subtitle> <v-list-item-subtitle v-if="device.methodCode === 'call' || device.methodCode === 'sms'" diff --git a/aleksis/core/frontend/index.js b/aleksis/core/frontend/index.js index ef66ecf6576ed1d7d4581639a65b5607c7a75dc5..25df11b343a0708bbb6a1a378cfa1b17ab154749 100644 --- a/aleksis/core/frontend/index.js +++ b/aleksis/core/frontend/index.js @@ -9,6 +9,7 @@ import Vuetify from "@/vuetify"; import VueI18n from "@/vue-i18n"; import VueRouter from "@/vue-router"; import VueApollo from "@/vue-apollo"; +import VueCookies from "@/vue-cookies"; import AleksisVue from "./plugins/aleksis.js"; @@ -26,6 +27,7 @@ Vue.use(Vuetify); Vue.use(VueI18n); Vue.use(VueRouter); Vue.use(VueApollo); +Vue.use(VueCookies); // All of these imports yield config objects to be passed to the plugin constructors import vuetifyOpts from "./app/vuetify.js"; @@ -33,8 +35,20 @@ import i18nOpts from "./app/i18n.js"; import routerOpts from "./app/router.js"; import apolloOpts from "./app/apollo.js"; -const i18n = new VueI18n(i18nOpts); -const vuetify = new Vuetify(vuetifyOpts); +const i18n = new VueI18n({ + locale: Vue.$cookies.get("django_language") + ? Vue.$cookies.get("django_language") + : "en", + ...i18nOpts, +}); +const vuetify = new Vuetify({ + lang: { + current: Vue.$cookies.get("django_language") + ? Vue.$cookies.get("django_language") + : "en", + }, + ...vuetifyOpts, +}); const router = new VueRouter(routerOpts); const apolloProvider = new VueApollo(apolloOpts); diff --git a/aleksis/core/frontend/mixins/menus.js b/aleksis/core/frontend/mixins/menus.js index 8afed7f424ebf1bd4b33b316dc311f14831161fc..ee07678848c93436fc15f4f015b056f7a7728aa1 100644 --- a/aleksis/core/frontend/mixins/menus.js +++ b/aleksis/core/frontend/mixins/menus.js @@ -19,12 +19,19 @@ const menusMixin = { let permArray = []; for (const route of this.$router.getRoutes()) { - if ( - route.meta && - route.meta["permission"] && - !(route.meta["permission"] in permArray) - ) { - permArray.push(route.meta["permission"]); + if (route.meta) { + if ( + route.meta["permission"] && + !(route.meta["permission"] in permArray) + ) { + permArray.push(route.meta["permission"]); + } + if ( + route.meta["menuPermission"] && + !(route.meta["menuPermission"] in permArray) + ) { + permArray.push(route.meta["menuPermission"]); + } } } @@ -41,7 +48,9 @@ const menusMixin = { route.meta && route.meta[menuKey] && !route.parent && - (route.meta.permission + (route.meta.menuPermission + ? this.checkPermission(route.meta.menuPermission) + : route.meta.permission ? this.checkPermission(route.meta.permission) : true) && (route.meta.validators @@ -67,7 +76,9 @@ const menusMixin = { route.parent && route.parent.name && route.parent.name in menu && - (route.meta.permission + (route.meta.menuPermission + ? this.checkPermission(route.meta.menuPermission) + : route.meta.permission ? this.checkPermission(route.meta.permission) : true) && (route.meta.validators diff --git a/aleksis/core/frontend/mixins/routes.js b/aleksis/core/frontend/mixins/routes.js new file mode 100644 index 0000000000000000000000000000000000000000..813edd5777e9868680d5a5d9e8e495d70ef35790 --- /dev/null +++ b/aleksis/core/frontend/mixins/routes.js @@ -0,0 +1,60 @@ +import gqlDynamicRoutes from "../components/app/dynamicRoutes.graphql"; + +/** + * Vue mixin containing code getting dynamically added routes from other apps. + * + * Only used by main App component, but factored out for readability. + */ +const routesMixin = { + data() { + return { + dynamicRoutes: null, + }; + }, + apollo: { + dynamicRoutes: { + query: gqlDynamicRoutes, + pollInterval: 60000, + }, + }, + watch: { + dynamicRoutes: { + handler(newDynamicRoutes) { + for (const route of newDynamicRoutes) { + if (route) { + console.debug("Adding new dynamic route:", route.routeName); + let routeEntry = { + path: route.routePath, + name: route.routeName, + component: () => import("../components/LegacyBaseTemplate.vue"), + props: { + byTheGreatnessOfTheAlmightyAleksolotlISwearIAmWorthyOfUsingTheLegacyBaseTemplate: true, + }, + meta: { + inMenu: route.displaySidenavMenu, + inAccountMenu: route.displayAccountMenu, + icon: route.menuIcon, + rawTitleString: route.menuTitle, + menuPermission: route.menuPermission, + permission: route.routePermission, + newTab: route.menuNewTab, + }, + }; + + if (route.parentRouteName) { + this.$router.addRoute(route.parentRouteName, routeEntry); + } else { + this.$router.addRoute(routeEntry); + } + } + } + + this.getPermissionNames(); + this.buildMenus(); + }, + deep: true, + }, + }, +}; + +export default routesMixin; diff --git a/aleksis/core/frontend/routes.js b/aleksis/core/frontend/routes.js index ae73c4751416d6fc59a6a5195613f70dd97604c3..215f4d1485644883eef42f14216735547abb041a 100644 --- a/aleksis/core/frontend/routes.js +++ b/aleksis/core/frontend/routes.js @@ -37,6 +37,7 @@ const routes = [ inMenu: true, icon: "mdi-account-plus-outline", titleKey: "accounts.signup.menu_title", + menuPermission: "core.signup_rule", validators: [notLoggedInValidator], invalidate: "leave", }, @@ -1069,18 +1070,4 @@ for (const [appName, appRoutes] of Object.entries(appObjects)) { }); } -// Fallback route defined last to ensure 404 view works -routes.push({ - path: "/*", - component: () => import("./components/app/ErrorPage.vue"), - name: "core.error404", - props: { - shortErrorMessageKey: "network_errors.error_404", - longErrorMessageKey: "network_errors.page_not_found", - redirectButtonTextKey: "network_errors.back_to_start", - redirectRouteName: "dashboard", - redirectButtonIcon: "mdi-home-outline", - }, -}); - export default routes; diff --git a/aleksis/core/locale/ar/LC_MESSAGES/django.po b/aleksis/core/locale/ar/LC_MESSAGES/django.po index 7601d361668f068f942d130014ca1897f000d92b..0c841f397f7272dec10e501c103a069b11e51f3b 100644 --- a/aleksis/core/locale/ar/LC_MESSAGES/django.po +++ b/aleksis/core/locale/ar/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: AlekSIS (School Information System) 0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-22 20:49+0100\n" +"POT-Creation-Date: 2023-02-15 20:00+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" @@ -397,7 +397,7 @@ msgstr "" msgid "other" msgstr "" -#: aleksis/core/models.py:189 aleksis/core/models.py:1345 +#: aleksis/core/models.py:189 aleksis/core/models.py:1353 msgid "Linked user" msgstr "" @@ -406,7 +406,7 @@ msgid "Additional name(s)" msgstr "" #: aleksis/core/models.py:199 aleksis/core/models.py:511 -#: aleksis/core/models.py:1431 +#: aleksis/core/models.py:1439 msgid "Short name" msgstr "" @@ -468,7 +468,7 @@ msgstr "" #: aleksis/core/models.py:244 aleksis/core/models.py:724 #: aleksis/core/models.py:748 aleksis/core/models.py:843 -#: aleksis/core/models.py:1104 +#: aleksis/core/models.py:1112 msgid "Description" msgstr "" @@ -504,7 +504,7 @@ msgstr "" msgid "Can view statistics about group." msgstr "" -#: aleksis/core/models.py:509 aleksis/core/models.py:1432 +#: aleksis/core/models.py:509 aleksis/core/models.py:1440 msgid "Long name" msgstr "" @@ -531,7 +531,7 @@ msgid "Additional fields" msgstr "" #: aleksis/core/models.py:723 aleksis/core/models.py:747 -#: aleksis/core/models.py:842 aleksis/core/models.py:1262 +#: aleksis/core/models.py:842 aleksis/core/models.py:1270 #: aleksis/core/templates/core/announcement/list.html:18 msgid "Title" msgstr "" @@ -561,7 +561,7 @@ msgid "Link" msgstr "" #: aleksis/core/models.py:752 aleksis/core/models.py:1079 -#: aleksis/core/models.py:1392 +#: aleksis/core/models.py:1400 #: aleksis/core/templates/oauth2_provider/application/detail.html:26 msgid "Icon" msgstr "" @@ -744,205 +744,205 @@ msgstr "" msgid "Custom menu items" msgstr "" -#: aleksis/core/models.py:1103 +#: aleksis/core/models.py:1111 msgid "Title of type" msgstr "" -#: aleksis/core/models.py:1110 aleksis/core/templates/core/group/full.html:50 +#: aleksis/core/models.py:1118 aleksis/core/templates/core/group/full.html:50 msgid "Group type" msgstr "" -#: aleksis/core/models.py:1111 +#: aleksis/core/models.py:1119 #: aleksis/core/templates/core/group_type/list.html:8 #: aleksis/core/templates/core/group_type/list.html:9 msgid "Group types" msgstr "" -#: aleksis/core/models.py:1124 +#: aleksis/core/models.py:1132 msgid "Can view system status" msgstr "" -#: aleksis/core/models.py:1125 +#: aleksis/core/models.py:1133 msgid "Can manage data" msgstr "" -#: aleksis/core/models.py:1126 +#: aleksis/core/models.py:1134 msgid "Can impersonate" msgstr "" -#: aleksis/core/models.py:1127 +#: aleksis/core/models.py:1135 msgid "Can use search" msgstr "" -#: aleksis/core/models.py:1128 +#: aleksis/core/models.py:1136 msgid "Can change site preferences" msgstr "" -#: aleksis/core/models.py:1129 +#: aleksis/core/models.py:1137 msgid "Can change person preferences" msgstr "" -#: aleksis/core/models.py:1130 +#: aleksis/core/models.py:1138 msgid "Can change group preferences" msgstr "" -#: aleksis/core/models.py:1131 +#: aleksis/core/models.py:1139 msgid "Can test PDF generation" msgstr "" -#: aleksis/core/models.py:1132 +#: aleksis/core/models.py:1140 msgid "Can invite persons" msgstr "" -#: aleksis/core/models.py:1168 +#: aleksis/core/models.py:1176 msgid "Related data check task" msgstr "" -#: aleksis/core/models.py:1176 +#: aleksis/core/models.py:1184 msgid "Issue solved" msgstr "" -#: aleksis/core/models.py:1177 +#: aleksis/core/models.py:1185 msgid "Notification sent" msgstr "" -#: aleksis/core/models.py:1190 +#: aleksis/core/models.py:1198 msgid "Data check result" msgstr "" -#: aleksis/core/models.py:1191 +#: aleksis/core/models.py:1199 msgid "Data check results" msgstr "" -#: aleksis/core/models.py:1193 +#: aleksis/core/models.py:1201 msgid "Can run data checks" msgstr "" -#: aleksis/core/models.py:1194 +#: aleksis/core/models.py:1202 msgid "Can solve data check problems" msgstr "" -#: aleksis/core/models.py:1201 +#: aleksis/core/models.py:1209 msgid "E-Mail address" msgstr "" -#: aleksis/core/models.py:1233 +#: aleksis/core/models.py:1241 msgid "Owner" msgstr "" -#: aleksis/core/models.py:1237 +#: aleksis/core/models.py:1245 msgid "File expires at" msgstr "" -#: aleksis/core/models.py:1240 +#: aleksis/core/models.py:1248 msgid "Generated HTML file" msgstr "" -#: aleksis/core/models.py:1243 +#: aleksis/core/models.py:1251 msgid "Generated PDF file" msgstr "" -#: aleksis/core/models.py:1250 +#: aleksis/core/models.py:1258 msgid "PDF file" msgstr "" -#: aleksis/core/models.py:1251 +#: aleksis/core/models.py:1259 msgid "PDF files" msgstr "" -#: aleksis/core/models.py:1256 +#: aleksis/core/models.py:1264 msgid "Task result" msgstr "" -#: aleksis/core/models.py:1259 +#: aleksis/core/models.py:1267 msgid "Task user" msgstr "" -#: aleksis/core/models.py:1263 +#: aleksis/core/models.py:1271 msgid "Back URL" msgstr "" -#: aleksis/core/models.py:1264 +#: aleksis/core/models.py:1272 msgid "Progress title" msgstr "" -#: aleksis/core/models.py:1265 +#: aleksis/core/models.py:1273 msgid "Error message" msgstr "" -#: aleksis/core/models.py:1266 +#: aleksis/core/models.py:1274 msgid "Success message" msgstr "" -#: aleksis/core/models.py:1267 +#: aleksis/core/models.py:1275 msgid "Redirect on success URL" msgstr "" -#: aleksis/core/models.py:1269 +#: aleksis/core/models.py:1277 msgid "Additional button title" msgstr "" -#: aleksis/core/models.py:1271 +#: aleksis/core/models.py:1279 msgid "Additional button URL" msgstr "" -#: aleksis/core/models.py:1273 +#: aleksis/core/models.py:1281 msgid "Additional button icon" msgstr "" -#: aleksis/core/models.py:1275 +#: aleksis/core/models.py:1283 msgid "Result fetched" msgstr "" -#: aleksis/core/models.py:1300 +#: aleksis/core/models.py:1308 msgid "Background task completed successfully" msgstr "" -#: aleksis/core/models.py:1301 +#: aleksis/core/models.py:1309 msgid "The background task '{}' has been completed successfully." msgstr "" -#: aleksis/core/models.py:1307 +#: aleksis/core/models.py:1315 msgid "Background task failed" msgstr "" -#: aleksis/core/models.py:1308 +#: aleksis/core/models.py:1316 msgid "The background task '{}' has failed." msgstr "" -#: aleksis/core/models.py:1317 +#: aleksis/core/models.py:1325 msgid "Background task" msgstr "" -#: aleksis/core/models.py:1331 +#: aleksis/core/models.py:1339 msgid "Task user assignment" msgstr "" -#: aleksis/core/models.py:1332 +#: aleksis/core/models.py:1340 msgid "Task user assignments" msgstr "" -#: aleksis/core/models.py:1348 +#: aleksis/core/models.py:1356 msgid "Additional attributes" msgstr "" -#: aleksis/core/models.py:1386 +#: aleksis/core/models.py:1394 msgid "Allowed scopes that clients can request" msgstr "" -#: aleksis/core/models.py:1396 +#: aleksis/core/models.py:1404 msgid "This image will be shown as icon in the authorization flow. It should be squared." msgstr "" -#: aleksis/core/models.py:1441 +#: aleksis/core/models.py:1449 msgid "Can view room timetable" msgstr "" -#: aleksis/core/models.py:1443 +#: aleksis/core/models.py:1451 msgid "Room" msgstr "" -#: aleksis/core/models.py:1444 +#: aleksis/core/models.py:1452 msgid "Rooms" msgstr "" @@ -1154,15 +1154,15 @@ msgstr "" msgid "Country for phone number parsing" msgstr "" -#: aleksis/core/settings.py:539 +#: aleksis/core/settings.py:544 msgid "English" msgstr "" -#: aleksis/core/settings.py:540 +#: aleksis/core/settings.py:545 msgid "German" msgstr "" -#: aleksis/core/settings.py:541 +#: aleksis/core/settings.py:546 msgid "Ukrainian" msgstr "" @@ -2984,51 +2984,51 @@ msgstr "" msgid "The dashboard widget has been deleted." msgstr "" -#: aleksis/core/views.py:1030 +#: aleksis/core/views.py:1031 msgid "Your dashboard configuration has been saved successfully." msgstr "" -#: aleksis/core/views.py:1032 +#: aleksis/core/views.py:1033 msgid "The configuration of the default dashboard has been saved successfully." msgstr "" -#: aleksis/core/views.py:1103 +#: aleksis/core/views.py:1104 #, python-brace-format msgid "The invitation was successfully created. The invitation code is {code}" msgstr "" -#: aleksis/core/views.py:1200 +#: aleksis/core/views.py:1201 msgid "We have successfully assigned the permissions." msgstr "" -#: aleksis/core/views.py:1210 +#: aleksis/core/views.py:1211 msgid "The global user permission has been deleted." msgstr "" -#: aleksis/core/views.py:1220 +#: aleksis/core/views.py:1221 msgid "The global group permission has been deleted." msgstr "" -#: aleksis/core/views.py:1230 +#: aleksis/core/views.py:1231 msgid "The object user permission has been deleted." msgstr "" -#: aleksis/core/views.py:1240 +#: aleksis/core/views.py:1241 msgid "The object group permission has been deleted." msgstr "" -#: aleksis/core/views.py:1349 +#: aleksis/core/views.py:1350 msgid "The third-party account could not be disconnected because it is the only login method available." msgstr "" -#: aleksis/core/views.py:1356 +#: aleksis/core/views.py:1357 msgid "The third-party account has been successfully disconnected." msgstr "" -#: aleksis/core/views.py:1432 +#: aleksis/core/views.py:1433 msgid "Person was invited successfully and an email with further instructions has been send to them." msgstr "" -#: aleksis/core/views.py:1443 +#: aleksis/core/views.py:1444 msgid "Person was already invited." msgstr "" diff --git a/aleksis/core/locale/de_DE/LC_MESSAGES/django.po b/aleksis/core/locale/de_DE/LC_MESSAGES/django.po index d1d1ddf4e3ee080bbf511bf335169806a26fce5f..ec7c990b8b51e1db438b7599911f3c1ce32b8807 100644 --- a/aleksis/core/locale/de_DE/LC_MESSAGES/django.po +++ b/aleksis/core/locale/de_DE/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: AlekSIS (School Information System) 0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-05-24 19:37+0200\n" +"POT-Creation-Date: 2023-02-15 20:00+0100\n" "PO-Revision-Date: 2023-01-22 20:05+0000\n" "Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n" "Language-Team: German <https://translate.edugit.org/projects/aleksis/aleksis-core/de/>\n" @@ -18,80 +18,64 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.12.1\n" -#: aleksis/core/apps.py:166 aleksis/core/apps.py:155 +#: aleksis/core/apps.py:155 msgid "OpenID Connect scope" msgstr "OpenID-Connect-Scope" -#: aleksis/core/apps.py:167 aleksis/core/apps.py:156 +#: aleksis/core/apps.py:156 msgid "Given name, family name, link to profile and picture if existing." msgstr "Vorname, Nachname, Link zum Profil und Bild falls vorhanden." -#: aleksis/core/apps.py:168 aleksis/core/apps.py:157 +#: aleksis/core/apps.py:157 msgid "Full home postal address" msgstr "Vollständige Postanschrift" -#: aleksis/core/apps.py:169 aleksis/core/apps.py:158 +#: aleksis/core/apps.py:158 msgid "Email address" msgstr "E-Mail-Adresse" -#: aleksis/core/apps.py:170 aleksis/core/apps.py:159 +#: aleksis/core/apps.py:159 msgid "Home and mobile phone" msgstr "Festnetz- und Mobilfunknummer" -#: aleksis/core/apps.py:171 aleksis/core/forms.py:220 aleksis/core/menus.py:171 -#: aleksis/core/models.py:489 aleksis/core/templates/core/group/list.html:8 +#: aleksis/core/apps.py:160 aleksis/core/forms.py:220 +#: aleksis/core/models.py:494 aleksis/core/templates/core/group/list.html:8 #: aleksis/core/templates/core/group/list.html:9 -#: aleksis/core/templates/core/person/full.html:246 aleksis/core/models.py:494 -#: aleksis/core/apps.py:160 msgid "Groups" msgstr "Gruppen" -#: aleksis/core/data_checks.py:56 aleksis/core/data_checks.py:59 #: aleksis/core/data_checks.py:60 msgid "Ignore problem" msgstr "Problem ignorieren" -#: aleksis/core/data_checks.py:185 aleksis/core/data_checks.py:188 +#: aleksis/core/data_checks.py:188 #, python-brace-format msgid "Solve option '{solve_option_obj.verbose_name}' " msgstr "Lösungsoption \"{solve_option_obj.verbose_name}\" " -#: aleksis/core/data_checks.py:291 aleksis/core/data_checks.py:294 #: aleksis/core/data_checks.py:284 msgid "Deactivate DashboardWidget" msgstr "Dashboard-Widget deaktivieren" -#: aleksis/core/data_checks.py:303 aleksis/core/data_checks.py:306 #: aleksis/core/data_checks.py:296 msgid "Ensure that there are no broken DashboardWidgets." msgstr "Sicherstellen, dass es keine kaputten Dashboard-Widgets gibt." -#: aleksis/core/data_checks.py:304 aleksis/core/data_checks.py:307 #: aleksis/core/data_checks.py:297 msgid "The DashboardWidget was reported broken automatically." msgstr "Das Dashboard-Widget wurde automatisch als kaputt gemeldet." -#: aleksis/core/feeds.py:52 -msgid "Birthday Calendar" -msgstr "Geburtstagskalender" - -#: aleksis/core/feeds.py:53 -msgid "A Calendar of Birthdays" -msgstr "Ein Kalender mit Geburtstagen" - -#: aleksis/core/feeds.py:66 +#: aleksis/core/data_checks.py:320 #, python-format -msgid "%(name)s's birthday" -msgstr "%(name)ss Geburtstag" +msgid "Validate field %s of model %s." +msgstr "Feld %s von Model %s validieren." -#: aleksis/core/feeds.py:71 +#: aleksis/core/data_checks.py:322 #, python-format -msgid "%(name)s was born on %(birthday)s" -msgstr "%(name)s wurde am %(birthday)s geboren" +msgid "The field %s couldn't be validated successfully." +msgstr "Das Feld %s konnte nicht erfolgreich validiert werden." -#: aleksis/core/filters.py:42 aleksis/core/templates/core/base.html:139 -#: aleksis/core/templates/core/base.html:140 -#: aleksis/core/templates/core/group/list.html:20 +#: aleksis/core/filters.py:42 aleksis/core/templates/core/group/list.html:20 #: aleksis/core/templates/core/person/list.html:24 #: aleksis/core/templates/search/search.html:7 #: aleksis/core/templates/search/search.html:22 @@ -114,13 +98,11 @@ msgstr "Berechtigung" msgid "Content type" msgstr "Inhaltstyp" -#: aleksis/core/filters.py:113 aleksis/core/models.py:715 -#: aleksis/core/models.py:720 +#: aleksis/core/filters.py:113 aleksis/core/models.py:720 msgid "User" msgstr "Benutzer" -#: aleksis/core/filters.py:135 aleksis/core/models.py:488 -#: aleksis/core/models.py:493 +#: aleksis/core/filters.py:135 aleksis/core/models.py:493 msgid "Group" msgstr "Gruppe" @@ -150,16 +132,13 @@ msgstr "Neues Benutzerkonto erstellen" #: aleksis/core/forms.py:132 msgid "You cannot set a new username when also selecting an existing user." -msgstr "" -"Sie können keine neuen Benutzer erstellen, wenn Sie gleichzeitig einen " -"existierenden Benutzer auswählen." +msgstr "Sie können keine neuen Benutzer erstellen, wenn Sie gleichzeitig einen existierenden Benutzer auswählen." #: aleksis/core/forms.py:136 msgid "This username is already in use." msgstr "Dieser Benutzername wird bereits genutzt." -#: aleksis/core/forms.py:153 aleksis/core/models.py:136 -#: aleksis/core/models.py:141 +#: aleksis/core/forms.py:153 aleksis/core/models.py:141 msgid "School term" msgstr "Schuljahr" @@ -168,9 +147,8 @@ msgid "Common data" msgstr "Allgemeine Daten" #: aleksis/core/forms.py:155 aleksis/core/forms.py:207 -#: aleksis/core/menus.py:160 aleksis/core/models.py:159 -#: aleksis/core/templates/core/person/list.html:8 -#: aleksis/core/templates/core/person/list.html:9 aleksis/core/models.py:164 +#: aleksis/core/models.py:164 aleksis/core/templates/core/person/list.html:8 +#: aleksis/core/templates/core/person/list.html:9 msgid "Persons" msgstr "Personen" @@ -178,19 +156,18 @@ msgstr "Personen" msgid "Additional data" msgstr "Zusätzliche Daten" -#: aleksis/core/forms.py:157 aleksis/core/models.py:212 -#: aleksis/core/models.py:541 aleksis/core/models.py:217 +#: aleksis/core/forms.py:157 aleksis/core/models.py:217 #: aleksis/core/models.py:546 aleksis/core/tables.py:46 msgid "Photo" msgstr "Foto" #: aleksis/core/forms.py:199 aleksis/core/forms.py:202 -#: aleksis/core/models.py:79 aleksis/core/models.py:84 +#: aleksis/core/models.py:84 msgid "Date" msgstr "Datum" #: aleksis/core/forms.py:200 aleksis/core/forms.py:203 -#: aleksis/core/models.py:87 aleksis/core/models.py:92 +#: aleksis/core/models.py:92 msgid "Time" msgstr "Zeit" @@ -207,17 +184,12 @@ msgid "Write your announcement:" msgstr "Schreiben Sie ihre Ankündigung:" #: aleksis/core/forms.py:276 -msgid "" -"You are not allowed to create announcements which are only valid in the past." -msgstr "" -"Sie dürfen keine Ankündigungen erstellen, die nur für die Vergangenheit " -"gültig sind." +msgid "You are not allowed to create announcements which are only valid in the past." +msgstr "Sie dürfen keine Ankündigungen erstellen, die nur für die Vergangenheit gültig sind." #: aleksis/core/forms.py:280 msgid "The from date and time must be earlier then the until date and time." -msgstr "" -"Das Startdatum und die Startzeit müssen vor dem Enddatum und der Endzeit " -"sein." +msgstr "Das Startdatum und die Startzeit müssen vor dem Enddatum und der Endzeit sein." #: aleksis/core/forms.py:289 msgid "You need at least one recipient." @@ -231,13 +203,11 @@ msgstr "Einladungscode" msgid "Please enter your invitation code." msgstr "Bitte geben Sie Ihren Einladungscode ein." -#: aleksis/core/forms.py:418 aleksis/core/models.py:187 -#: aleksis/core/models.py:192 +#: aleksis/core/forms.py:418 aleksis/core/models.py:192 msgid "First name" msgstr "Vorname" -#: aleksis/core/forms.py:419 aleksis/core/models.py:188 -#: aleksis/core/models.py:193 +#: aleksis/core/forms.py:419 aleksis/core/models.py:193 msgid "Last name" msgstr "Nachname" @@ -255,25 +225,19 @@ msgstr "Auf was?" #: aleksis/core/forms.py:483 msgid "Select objects which the permission should be granted for:" -msgstr "" -"Wählen Sie die Objekte aus, für welche die Berechtigung vergeben werden soll:" +msgstr "Wählen Sie die Objekte aus, für welche die Berechtigung vergeben werden soll:" #: aleksis/core/forms.py:486 msgid "Grant the permission for all objects" msgstr "Vergebe die Berechtigung für alle Objekte" #: aleksis/core/forms.py:494 -msgid "" -"You must select at least one group or person which should get the permission." -msgstr "" -"Sie müssen mindestens eine Gruppe oder Person auswählen, welche die " -"Berechtigung erhalten soll." +msgid "You must select at least one group or person which should get the permission." +msgstr "Sie müssen mindestens eine Gruppe oder Person auswählen, welche die Berechtigung erhalten soll." #: aleksis/core/forms.py:499 -msgid "You must grant the permission to all objects and/or to some objects." -msgstr "" -"Sie müssen die Berechtigung auf alle Objekte und/oder für einige Objekte " -"vergeben." +msgid "You must grant the permission to all objects or to specific objects." +msgstr "Sie müssen die Berechtigung auf alle Objekte oder für spezifische Objekte vergeben." #: aleksis/core/forms.py:586 msgid "Address data" @@ -291,17 +255,15 @@ msgstr "Passwort" msgid "Password (again)" msgstr "Passwort wiederholen" -#: aleksis/core/forms.py:728 aleksis/core/forms.py:761 +#: aleksis/core/forms.py:761 msgid "The selected action does not exist." msgstr "Die ausgewählte Aktion existiert nicht." -#: aleksis/core/forms.py:739 aleksis/core/forms.py:772 +#: aleksis/core/forms.py:772 msgid "You do not have permission to run {} on all selected objects." -msgstr "" -"Sie haben nicht die Berechtigung, {} auf alle ausgewählten Objekte " -"auszuführen." +msgstr "Sie haben nicht die Berechtigung, {} auf alle ausgewählten Objekte auszuführen." -#: aleksis/core/forms.py:795 aleksis/core/forms.py:828 +#: aleksis/core/forms.py:828 msgid "No valid selection." msgstr "Keine gültige Auswahl." @@ -325,833 +287,664 @@ msgstr "Kein Backup gefunden!" msgid "No backup result found!" msgstr "Kein Backupergebnis gefunden!" -#: aleksis/core/menus.py:7 aleksis/core/templates/two_factor/core/login.html:6 -#: aleksis/core/templates/two_factor/core/login.html:32 -#: aleksis/core/templates/two_factor/core/login.html:95 -msgid "Login" -msgstr "Anmelden" - -#: aleksis/core/menus.py:13 aleksis/core/templates/account/signup.html:22 -#: aleksis/core/templates/socialaccount/signup.html:23 -msgid "Sign up" -msgstr "Registrieren" - -#: aleksis/core/menus.py:22 aleksis/core/templates/invitations/enter.html:7 -msgid "Accept invitation" -msgstr "Einladung akzeptieren" - -#: aleksis/core/menus.py:31 -msgid "Dashboard" -msgstr "Dashboard" - -#: aleksis/core/menus.py:39 -msgid "Admin" -msgstr "Admin" - -#: aleksis/core/menus.py:47 aleksis/core/models.py:867 -#: aleksis/core/templates/core/announcement/list.html:7 -#: aleksis/core/templates/core/announcement/list.html:8 -#: aleksis/core/models.py:872 aleksis/core/models.py:876 -msgid "Announcements" -msgstr "Ankündigungen" - -#: aleksis/core/menus.py:58 aleksis/core/models.py:137 -#: aleksis/core/templates/core/school_term/list.html:8 -#: aleksis/core/templates/core/school_term/list.html:9 -#: aleksis/core/models.py:142 -msgid "School terms" -msgstr "Schuljahre" - -#: aleksis/core/menus.py:69 -#: aleksis/core/templates/core/dashboard_widget/list.html:8 -#: aleksis/core/templates/core/dashboard_widget/list.html:9 -msgid "Dashboard widgets" -msgstr "Dashboard-Widgets" - -#: aleksis/core/menus.py:80 -#: aleksis/core/templates/core/management/data_management.html:6 -#: aleksis/core/templates/core/management/data_management.html:7 -msgid "Data management" -msgstr "Datenverwaltung" - -#: aleksis/core/menus.py:91 -#: aleksis/core/templates/core/pages/system_status.html:5 -#: aleksis/core/templates/core/pages/system_status.html:7 -msgid "System status" -msgstr "Systemstatus" - -#: aleksis/core/menus.py:102 -msgid "Configuration" -msgstr "Konfiguration" - -#: aleksis/core/menus.py:113 aleksis/core/templates/core/data_check/list.html:9 -#: aleksis/core/templates/core/data_check/list.html:10 -msgid "Data checks" -msgstr "Datenprüfungen" - -#: aleksis/core/menus.py:119 aleksis/core/templates/core/perms/list.html:13 -#: aleksis/core/templates/core/perms/list.html:14 -msgid "Manage permissions" -msgstr "Berechtigungen verwalten" - -#: aleksis/core/menus.py:130 -msgid "Backend Admin" -msgstr "Backend-Administration" - -#: aleksis/core/menus.py:138 -#: aleksis/core/templates/oauth2_provider/application/list.html:5 -#: aleksis/core/templates/oauth2_provider/application/list.html:6 -msgid "OAuth2 Applications" -msgstr "OAuth2-Anwendungen" - -#: aleksis/core/menus.py:151 -msgid "People" -msgstr "Leute" - -#: aleksis/core/menus.py:182 aleksis/core/models.py:1101 -#: aleksis/core/templates/core/group_type/list.html:8 -#: aleksis/core/templates/core/group_type/list.html:9 -#: aleksis/core/models.py:1111 -msgid "Group types" -msgstr "Gruppentypen" - -#: aleksis/core/menus.py:193 -msgid "Groups and child groups" -msgstr "Gruppen und Kindgruppen" - -#: aleksis/core/menus.py:204 aleksis/core/models.py:537 -#: aleksis/core/templates/core/additional_field/list.html:8 -#: aleksis/core/templates/core/additional_field/list.html:9 -#: aleksis/core/models.py:542 -msgid "Additional fields" -msgstr "Zusätzliche Felder" - -#: aleksis/core/menus.py:215 -msgid "Invite person" -msgstr "Person einladen" - -#: aleksis/core/menus.py:228 -#: aleksis/core/templates/core/group/child_groups.html:7 -#: aleksis/core/templates/core/group/child_groups.html:9 -msgid "Assign child groups to groups" -msgstr "Kindgruppen zu Gruppen zuordnen" - -#: aleksis/core/menus.py:240 -msgid "Stop impersonation" -msgstr "Verkleidung beenden" - -#: aleksis/core/menus.py:249 -msgid "Account" -msgstr "Konto" - -#: aleksis/core/menus.py:258 -#: aleksis/core/templates/dynamic_preferences/form.html:5 -msgid "Preferences" -msgstr "Einstellungen" - -#: aleksis/core/menus.py:267 -msgid "2FA" -msgstr "2FA" - -#: aleksis/core/menus.py:275 -#: aleksis/core/templates/account/password_change.html:5 -#: aleksis/core/templates/account/password_change.html:6 -#: aleksis/core/templates/account/password_change.html:19 -#: aleksis/core/templates/account/password_reset_from_key.html:5 -#: aleksis/core/templates/account/password_reset_from_key.html:42 -#: aleksis/core/templates/account/password_reset_from_key.html:46 -#: aleksis/core/templates/account/password_reset_from_key_done.html:5 -#: aleksis/core/templates/account/password_reset_from_key_done.html:6 -msgid "Change password" -msgstr "Passwort ändern" - -#: aleksis/core/menus.py:287 -msgid "Third-party accounts" -msgstr "Drittanbieter-Konten" - -#: aleksis/core/menus.py:296 -#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:5 -#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:6 -msgid "Authorized applications" -msgstr "Autorisierte Anwendungen" - -#: aleksis/core/menus.py:305 -msgid "Calendar Feeds" -msgstr "Kalender-Feeds" - -#: aleksis/core/menus.py:318 -msgid "Logout" -msgstr "Abmelden" - #: aleksis/core/mixins.py:511 msgid "Linked school term" msgstr "Zugeordnetes Schuljahr" -#: aleksis/core/models.py:77 aleksis/core/models.py:82 +#: aleksis/core/models.py:82 msgid "Boolean (Yes/No)" msgstr "Boolean (Ja/Nein)" -#: aleksis/core/models.py:78 aleksis/core/models.py:83 +#: aleksis/core/models.py:83 msgid "Text (one line)" msgstr "Text (eine Zeile)" -#: aleksis/core/models.py:80 aleksis/core/models.py:85 +#: aleksis/core/models.py:85 msgid "Date and time" msgstr "Datum und Uhrzeit" -#: aleksis/core/models.py:81 aleksis/core/models.py:86 +#: aleksis/core/models.py:86 msgid "Decimal number" msgstr "Dezimalzahl" -#: aleksis/core/models.py:82 aleksis/core/models.py:205 #: aleksis/core/models.py:87 aleksis/core/models.py:210 msgid "E-mail address" msgstr "E-Mail-Adresse" -#: aleksis/core/models.py:83 aleksis/core/models.py:88 +#: aleksis/core/models.py:88 msgid "Integer" msgstr "Ganze Zahl" -#: aleksis/core/models.py:84 aleksis/core/models.py:89 +#: aleksis/core/models.py:89 msgid "IP address" msgstr "IP-Adresse" -#: aleksis/core/models.py:85 aleksis/core/models.py:90 +#: aleksis/core/models.py:90 msgid "Boolean or empty (Yes/No/Neither)" msgstr "Boolean oder leer (Ja/Nein/weder)" -#: aleksis/core/models.py:86 aleksis/core/models.py:91 +#: aleksis/core/models.py:91 msgid "Text (multi-line)" msgstr "Text (mehrzeilig)" -#: aleksis/core/models.py:88 aleksis/core/models.py:93 +#: aleksis/core/models.py:93 msgid "URL / Link" msgstr "URL / Link" -#: aleksis/core/models.py:100 aleksis/core/models.py:1070 -#: aleksis/core/models.py:1374 aleksis/core/models.py:105 -#: aleksis/core/models.py:1077 aleksis/core/models.py:1384 +#: aleksis/core/models.py:105 aleksis/core/models.py:1077 msgid "Name" msgstr "Name" -#: aleksis/core/models.py:102 aleksis/core/models.py:107 +#: aleksis/core/models.py:107 msgid "Start date" msgstr "Startdatum" -#: aleksis/core/models.py:103 aleksis/core/models.py:108 +#: aleksis/core/models.py:108 msgid "End date" msgstr "Enddatum" -#: aleksis/core/models.py:122 aleksis/core/models.py:127 +#: aleksis/core/models.py:127 msgid "The start date must be earlier than the end date." msgstr "Das Startdatum muss vor dem Enddatum liegen." -#: aleksis/core/models.py:129 aleksis/core/models.py:134 +#: aleksis/core/models.py:134 msgid "There is already a school term for this time or a part of this time." -msgstr "" -"Es gibt bereits ein Schuljahr für diesen Zeitraum oder einen Teilzeitraum." +msgstr "Es gibt bereits ein Schuljahr für diesen Zeitraum oder einen Teilzeitraum." + +#: aleksis/core/models.py:142 +#: aleksis/core/templates/core/school_term/list.html:8 +#: aleksis/core/templates/core/school_term/list.html:9 +msgid "School terms" +msgstr "Schuljahre" -#: aleksis/core/models.py:158 aleksis/core/models.py:1019 -#: aleksis/core/models.py:1371 aleksis/core/models.py:163 -#: aleksis/core/models.py:1024 aleksis/core/models.py:1381 -#: aleksis/core/models.py:1026 +#: aleksis/core/models.py:163 aleksis/core/models.py:1026 msgid "Person" msgstr "Person" -#: aleksis/core/models.py:161 aleksis/core/models.py:166 +#: aleksis/core/models.py:166 msgid "Can view address" msgstr "Kann Adresse sehen" -#: aleksis/core/models.py:162 aleksis/core/models.py:167 +#: aleksis/core/models.py:167 msgid "Can view contact details" msgstr "Kann Kontaktdetails sehen" -#: aleksis/core/models.py:163 aleksis/core/models.py:168 +#: aleksis/core/models.py:168 msgid "Can view photo" msgstr "Kann Foto sehen" -#: aleksis/core/models.py:164 aleksis/core/models.py:169 +#: aleksis/core/models.py:169 msgid "Can view avatar image" msgstr "Kann Avatar-Bild sehen" -#: aleksis/core/models.py:165 aleksis/core/models.py:170 +#: aleksis/core/models.py:170 msgid "Can view persons groups" msgstr "Kann Gruppen einer Person sehen" -#: aleksis/core/models.py:166 aleksis/core/models.py:171 +#: aleksis/core/models.py:171 msgid "Can view personal details" msgstr "Kann persönliche Daten sehen" -#: aleksis/core/models.py:176 aleksis/core/models.py:181 +#: aleksis/core/models.py:181 msgid "female" msgstr "weiblich" -#: aleksis/core/models.py:176 aleksis/core/models.py:181 +#: aleksis/core/models.py:181 msgid "male" msgstr "männlich" -#: aleksis/core/models.py:184 aleksis/core/models.py:1273 -#: aleksis/core/models.py:189 aleksis/core/models.py:1283 -#: aleksis/core/models.py:1345 +#: aleksis/core/models.py:181 +msgid "other" +msgstr "andere" + +#: aleksis/core/models.py:189 aleksis/core/models.py:1353 msgid "Linked user" msgstr "Verknüpfter Benutzer" -#: aleksis/core/models.py:190 aleksis/core/models.py:195 +#: aleksis/core/models.py:195 msgid "Additional name(s)" msgstr "Zusätzliche Namen" -#: aleksis/core/models.py:194 aleksis/core/models.py:506 #: aleksis/core/models.py:199 aleksis/core/models.py:511 -#: aleksis/core/models.py:1431 +#: aleksis/core/models.py:1439 msgid "Short name" msgstr "Kurzname" -#: aleksis/core/models.py:197 aleksis/core/models.py:202 +#: aleksis/core/models.py:202 msgid "Street" msgstr "Straße" -#: aleksis/core/models.py:198 aleksis/core/models.py:203 +#: aleksis/core/models.py:203 msgid "Street number" msgstr "Hausnummer" -#: aleksis/core/models.py:199 aleksis/core/models.py:204 +#: aleksis/core/models.py:204 msgid "Postal code" msgstr "Postleitzahl" -#: aleksis/core/models.py:200 aleksis/core/models.py:205 +#: aleksis/core/models.py:205 msgid "Place" msgstr "Ort" -#: aleksis/core/models.py:202 aleksis/core/templates/core/person/full.html:160 #: aleksis/core/models.py:207 msgid "Home phone" msgstr "Festnetz" -#: aleksis/core/models.py:203 aleksis/core/templates/core/person/full.html:170 #: aleksis/core/models.py:208 msgid "Mobile phone" msgstr "Handy" -#: aleksis/core/models.py:207 aleksis/core/models.py:212 +#: aleksis/core/models.py:212 msgid "Date of birth" msgstr "Geburtsdatum" -#: aleksis/core/models.py:208 aleksis/core/models.py:213 +#: aleksis/core/models.py:213 msgid "Place of birth" msgstr "Geburtsort" -#: aleksis/core/models.py:209 aleksis/core/models.py:214 +#: aleksis/core/models.py:214 msgid "Sex" msgstr "Geschlecht" -#: aleksis/core/models.py:216 aleksis/core/models.py:545 #: aleksis/core/models.py:221 aleksis/core/models.py:550 -msgid "" -"This is an official photo, used for official documents and for internal use " -"cases." -msgstr "" -"Dies ist ein offizielles Foto, genutzt für offizielle Dokumente und interne " -"Zwecke." +msgid "This is an official photo, used for official documents and for internal use cases." +msgstr "Dies ist ein offizielles Foto, genutzt für offizielle Dokumente und interne Zwecke." -#: aleksis/core/models.py:221 aleksis/core/models.py:549 #: aleksis/core/models.py:226 aleksis/core/models.py:554 msgid "Display picture / Avatar" msgstr "Bild/Avatar anzeigen" -#: aleksis/core/models.py:224 aleksis/core/models.py:552 #: aleksis/core/models.py:229 aleksis/core/models.py:557 msgid "This is a picture or an avatar for public display." msgstr "Dies ist ein Bild oder ein Avatar für die öffentliche Darstellung." -#: aleksis/core/models.py:229 aleksis/core/templates/core/person/full.html:235 #: aleksis/core/models.py:234 msgid "Guardians / Parents" msgstr "Erziehungsberechtigte / Eltern" -#: aleksis/core/models.py:236 aleksis/core/models.py:241 +#: aleksis/core/models.py:241 msgid "Primary group" msgstr "Primärgruppe" -#: aleksis/core/models.py:239 aleksis/core/models.py:719 -#: aleksis/core/models.py:743 aleksis/core/models.py:834 -#: aleksis/core/models.py:1094 aleksis/core/models.py:244 -#: aleksis/core/models.py:724 aleksis/core/models.py:748 -#: aleksis/core/models.py:839 aleksis/core/models.py:1104 -#: aleksis/core/models.py:843 +#: aleksis/core/models.py:244 aleksis/core/models.py:724 +#: aleksis/core/models.py:748 aleksis/core/models.py:843 +#: aleksis/core/models.py:1112 msgid "Description" msgstr "Beschreibung" -#: aleksis/core/models.py:459 aleksis/core/models.py:464 +#: aleksis/core/models.py:464 msgid "Title of field" msgstr "Feldtitel" -#: aleksis/core/models.py:461 aleksis/core/models.py:466 +#: aleksis/core/models.py:466 msgid "Type of field" msgstr "Feldtyp" -#: aleksis/core/models.py:463 aleksis/core/models.py:468 +#: aleksis/core/models.py:468 msgid "Required" msgstr "Pflichtfeld" -#: aleksis/core/models.py:464 aleksis/core/models.py:469 +#: aleksis/core/models.py:469 msgid "Help text / description" msgstr "Hilfetext/Beschreibung" -#: aleksis/core/models.py:470 aleksis/core/models.py:475 +#: aleksis/core/models.py:475 msgid "Addtitional field for groups" msgstr "Zusätzliche Felder für Gruppen" -#: aleksis/core/models.py:471 aleksis/core/models.py:476 +#: aleksis/core/models.py:476 msgid "Addtitional fields for groups" msgstr "Zusätzliche Felder für Gruppen" -#: aleksis/core/models.py:491 aleksis/core/models.py:496 +#: aleksis/core/models.py:496 msgid "Can assign child groups to groups" msgstr "Kann Kindgruppen zu Gruppen zuordnen" -#: aleksis/core/models.py:492 aleksis/core/models.py:497 +#: aleksis/core/models.py:497 msgid "Can view statistics about group." msgstr "Kann Statistiken über Gruppen sehen." -#: aleksis/core/models.py:504 aleksis/core/models.py:509 -#: aleksis/core/models.py:1432 +#: aleksis/core/models.py:509 aleksis/core/models.py:1440 msgid "Long name" msgstr "Langname" -#: aleksis/core/models.py:514 aleksis/core/templates/core/group/full.html:85 #: aleksis/core/models.py:519 aleksis/core/templates/core/group/full.html:105 msgid "Members" msgstr "Mitglieder" -#: aleksis/core/models.py:517 aleksis/core/templates/core/group/full.html:82 #: aleksis/core/models.py:522 aleksis/core/templates/core/group/full.html:102 msgid "Owners" msgstr "Leiter/-innen" -#: aleksis/core/models.py:524 aleksis/core/templates/core/group/full.html:55 #: aleksis/core/models.py:529 aleksis/core/templates/core/group/full.html:59 msgid "Parent groups" msgstr "Übergeordnete Gruppen" -#: aleksis/core/models.py:532 aleksis/core/models.py:537 +#: aleksis/core/models.py:537 msgid "Type of group" msgstr "Gruppentyp" -#: aleksis/core/models.py:718 aleksis/core/models.py:742 -#: aleksis/core/models.py:833 -#: aleksis/core/templates/core/announcement/list.html:18 +#: aleksis/core/models.py:542 +#: aleksis/core/templates/core/additional_field/list.html:8 +#: aleksis/core/templates/core/additional_field/list.html:9 +msgid "Additional fields" +msgstr "Zusätzliche Felder" + #: aleksis/core/models.py:723 aleksis/core/models.py:747 -#: aleksis/core/models.py:838 aleksis/core/models.py:842 -#: aleksis/core/models.py:1262 +#: aleksis/core/models.py:842 aleksis/core/models.py:1270 +#: aleksis/core/templates/core/announcement/list.html:18 msgid "Title" msgstr "Titel" -#: aleksis/core/models.py:721 aleksis/core/models.py:726 +#: aleksis/core/models.py:726 msgid "Application" msgstr "Anwendung" -#: aleksis/core/models.py:727 aleksis/core/models.py:732 +#: aleksis/core/models.py:732 msgid "Activity" msgstr "Aktivität" -#: aleksis/core/models.py:728 aleksis/core/models.py:733 +#: aleksis/core/models.py:733 msgid "Activities" msgstr "Aktivitäten" -#: aleksis/core/models.py:734 aleksis/core/models.py:739 +#: aleksis/core/models.py:739 msgid "Sender" msgstr "Absender" -#: aleksis/core/models.py:739 aleksis/core/models.py:744 +#: aleksis/core/models.py:744 msgid "Recipient" msgstr "Empfänger" -#: aleksis/core/models.py:744 aleksis/core/models.py:1071 #: aleksis/core/models.py:749 aleksis/core/models.py:1078 msgid "Link" msgstr "Link" -#: aleksis/core/models.py:746 aleksis/core/models.py:751 +#: aleksis/core/models.py:752 aleksis/core/models.py:1079 +#: aleksis/core/models.py:1400 +#: aleksis/core/templates/oauth2_provider/application/detail.html:26 +msgid "Icon" +msgstr "Symbol" + #: aleksis/core/models.py:755 msgid "Send notification at" msgstr "Benachrichtigung schicken am" -#: aleksis/core/models.py:748 aleksis/core/models.py:753 #: aleksis/core/models.py:757 msgid "Read" msgstr "Gelesen" -#: aleksis/core/models.py:749 aleksis/core/models.py:754 #: aleksis/core/models.py:758 msgid "Sent" msgstr "Versandt" -#: aleksis/core/models.py:766 aleksis/core/models.py:771 #: aleksis/core/models.py:775 msgid "Notification" msgstr "Benachrichtigung" -#: aleksis/core/models.py:767 aleksis/core/preferences.py:29 -#: aleksis/core/templates/core/base.html:81 -#: aleksis/core/templates/core/notifications.html:4 -#: aleksis/core/templates/core/notifications.html:5 aleksis/core/models.py:772 -#: aleksis/core/models.py:776 +#: aleksis/core/models.py:776 aleksis/core/preferences.py:29 msgid "Notifications" msgstr "Benachrichtigungen" -#: aleksis/core/models.py:835 aleksis/core/models.py:840 #: aleksis/core/models.py:844 msgid "Link to detailed view" msgstr "Link zur detaillierten Ansicht" -#: aleksis/core/models.py:838 aleksis/core/models.py:843 #: aleksis/core/models.py:847 msgid "Date and time from when to show" msgstr "Datum und Uhrzeit des Anzeigestarts" -#: aleksis/core/models.py:841 aleksis/core/models.py:846 #: aleksis/core/models.py:850 msgid "Date and time until when to show" msgstr "Anzeigezeitraum" -#: aleksis/core/models.py:866 aleksis/core/models.py:871 #: aleksis/core/models.py:875 msgid "Announcement" msgstr "Ankündigung" -#: aleksis/core/models.py:904 aleksis/core/models.py:909 +#: aleksis/core/models.py:876 +#: aleksis/core/templates/core/announcement/list.html:7 +#: aleksis/core/templates/core/announcement/list.html:8 +msgid "Announcements" +msgstr "Ankündigungen" + #: aleksis/core/models.py:913 msgid "Announcement recipient" msgstr "Empfänger der Ankündigung" -#: aleksis/core/models.py:905 aleksis/core/models.py:910 #: aleksis/core/models.py:914 msgid "Announcement recipients" msgstr "Empfänger der Ankündigung" -#: aleksis/core/models.py:927 aleksis/core/models.py:932 #: aleksis/core/models.py:934 msgid "Widget Title" msgstr "Widget-Titel" -#: aleksis/core/models.py:928 aleksis/core/models.py:933 #: aleksis/core/models.py:935 msgid "Activate Widget" msgstr "Widget aktivieren" -#: aleksis/core/models.py:929 aleksis/core/models.py:934 #: aleksis/core/models.py:936 msgid "Widget is broken" msgstr "Widget ist kaputt" -#: aleksis/core/models.py:932 aleksis/core/models.py:937 #: aleksis/core/models.py:939 msgid "Size on mobile devices" msgstr "Größe auf Mobilgeräten" -#: aleksis/core/models.py:933 aleksis/core/models.py:938 #: aleksis/core/models.py:940 msgid "<= 600 px, 12 columns" msgstr "<= 600 px, 12 Spalten" -#: aleksis/core/models.py:938 aleksis/core/models.py:943 #: aleksis/core/models.py:945 msgid "Size on tablet devices" msgstr "Größe auf Tablets" -#: aleksis/core/models.py:939 aleksis/core/models.py:944 #: aleksis/core/models.py:946 msgid "> 600 px, 12 columns" msgstr "> 600px, 12 Spalten" -#: aleksis/core/models.py:944 aleksis/core/models.py:949 #: aleksis/core/models.py:951 msgid "Size on desktop devices" msgstr "Größe auf Desktopgeräten" -#: aleksis/core/models.py:945 aleksis/core/models.py:950 #: aleksis/core/models.py:952 msgid "> 992 px, 12 columns" msgstr "> 992 px, 12 Spalten" -#: aleksis/core/models.py:950 aleksis/core/models.py:955 #: aleksis/core/models.py:957 msgid "Size on large desktop devices" msgstr "Größe auf großen Desktopgeräten" -#: aleksis/core/models.py:951 aleksis/core/models.py:956 #: aleksis/core/models.py:958 msgid "> 1200 px>, 12 columns" msgstr "> 1200 px, 12 Spalten" -#: aleksis/core/models.py:982 aleksis/core/models.py:987 #: aleksis/core/models.py:989 msgid "Can edit default dashboard" msgstr "Kann Standarddashboard bearbeiten" -#: aleksis/core/models.py:983 aleksis/core/models.py:988 #: aleksis/core/models.py:990 msgid "Dashboard Widget" msgstr "Dashboard-Widget" -#: aleksis/core/models.py:984 aleksis/core/models.py:989 #: aleksis/core/models.py:991 msgid "Dashboard Widgets" msgstr "Dashboard-Widgets" -#: aleksis/core/models.py:990 aleksis/core/models.py:995 #: aleksis/core/models.py:997 msgid "URL" msgstr "URL" -#: aleksis/core/models.py:991 aleksis/core/models.py:996 #: aleksis/core/models.py:998 msgid "Icon URL" msgstr "Symbol-URL" -#: aleksis/core/models.py:997 aleksis/core/models.py:1002 #: aleksis/core/models.py:1004 msgid "External link widget" msgstr "Externer-Link-Widget" -#: aleksis/core/models.py:998 aleksis/core/models.py:1003 #: aleksis/core/models.py:1005 msgid "External link widgets" msgstr "Externer-Link-Widgets" -#: aleksis/core/models.py:1004 aleksis/core/models.py:1009 #: aleksis/core/models.py:1011 msgid "Content" msgstr "Inhalt" -#: aleksis/core/models.py:1010 aleksis/core/models.py:1015 #: aleksis/core/models.py:1017 msgid "Static content widget" msgstr "Statischer-Inhalt-Widget" -#: aleksis/core/models.py:1011 aleksis/core/models.py:1016 #: aleksis/core/models.py:1018 msgid "Static content widgets" msgstr "Statischer-Inhalt-Widgets" -#: aleksis/core/models.py:1016 aleksis/core/models.py:1021 #: aleksis/core/models.py:1023 msgid "Dashboard widget" msgstr "Dashboard-Widget" -#: aleksis/core/models.py:1021 aleksis/core/models.py:1026 #: aleksis/core/models.py:1028 msgid "Order" msgstr "Reihenfolge" -#: aleksis/core/models.py:1022 aleksis/core/models.py:1027 #: aleksis/core/models.py:1029 msgid "Part of the default dashboard" msgstr "Teil des Standarddashboards" -#: aleksis/core/models.py:1037 aleksis/core/models.py:1042 #: aleksis/core/models.py:1044 msgid "Dashboard widget order" msgstr "Reihenfolge der Dashboard-Widgets" -#: aleksis/core/models.py:1038 aleksis/core/models.py:1043 #: aleksis/core/models.py:1045 msgid "Dashboard widget orders" msgstr "Reihenfolgen der Dashboard-Widgets" -#: aleksis/core/models.py:1044 aleksis/core/models.py:1049 #: aleksis/core/models.py:1051 msgid "Menu ID" msgstr "Menü-ID" -#: aleksis/core/models.py:1057 aleksis/core/models.py:1062 #: aleksis/core/models.py:1064 msgid "Custom menu" msgstr "Benutzerdefiniertes Menü" -#: aleksis/core/models.py:1058 aleksis/core/models.py:1063 #: aleksis/core/models.py:1065 msgid "Custom menus" msgstr "Benutzerdefinierte Menüs" -#: aleksis/core/models.py:1068 aleksis/core/models.py:1075 +#: aleksis/core/models.py:1075 msgid "Menu" msgstr "Menü" -#: aleksis/core/models.py:1072 aleksis/core/models.py:1320 -#: aleksis/core/templates/oauth2_provider/application/detail.html:26 -#: aleksis/core/models.py:1079 aleksis/core/models.py:1330 -#: aleksis/core/models.py:752 aleksis/core/models.py:1392 -msgid "Icon" -msgstr "Symbol" - -#: aleksis/core/models.py:1078 aleksis/core/models.py:1085 +#: aleksis/core/models.py:1085 msgid "Custom menu item" msgstr "Benutzerdefiniertes Menüelement" -#: aleksis/core/models.py:1079 aleksis/core/models.py:1086 +#: aleksis/core/models.py:1086 msgid "Custom menu items" msgstr "Benutzerdefinierte Menüelemente" -#: aleksis/core/models.py:1093 aleksis/core/models.py:1103 +#: aleksis/core/models.py:1111 msgid "Title of type" msgstr "Titel des Typs" -#: aleksis/core/models.py:1100 aleksis/core/templates/core/group/full.html:47 -#: aleksis/core/models.py:1110 aleksis/core/templates/core/group/full.html:50 +#: aleksis/core/models.py:1118 aleksis/core/templates/core/group/full.html:50 msgid "Group type" msgstr "Gruppentyp" -#: aleksis/core/models.py:1114 aleksis/core/models.py:1124 +#: aleksis/core/models.py:1119 +#: aleksis/core/templates/core/group_type/list.html:8 +#: aleksis/core/templates/core/group_type/list.html:9 +msgid "Group types" +msgstr "Gruppentypen" + +#: aleksis/core/models.py:1132 msgid "Can view system status" msgstr "Kann Systemstatus sehen" -#: aleksis/core/models.py:1115 aleksis/core/models.py:1125 +#: aleksis/core/models.py:1133 msgid "Can manage data" msgstr "Kann Daten verwalten" -#: aleksis/core/models.py:1116 aleksis/core/models.py:1126 +#: aleksis/core/models.py:1134 msgid "Can impersonate" msgstr "Kann sich verkleiden" -#: aleksis/core/models.py:1117 aleksis/core/models.py:1127 +#: aleksis/core/models.py:1135 msgid "Can use search" msgstr "Kann Suche benutzen" -#: aleksis/core/models.py:1118 aleksis/core/models.py:1128 +#: aleksis/core/models.py:1136 msgid "Can change site preferences" msgstr "Kann Konfiguration ändern" -#: aleksis/core/models.py:1119 aleksis/core/models.py:1129 +#: aleksis/core/models.py:1137 msgid "Can change person preferences" msgstr "Kann Einstellungen einer Person verändern" -#: aleksis/core/models.py:1120 aleksis/core/models.py:1130 +#: aleksis/core/models.py:1138 msgid "Can change group preferences" msgstr "Kann Einstellungen einer Gruppe verändern" -#: aleksis/core/models.py:1121 aleksis/core/models.py:1131 +#: aleksis/core/models.py:1139 msgid "Can test PDF generation" msgstr "Kann die PDF-Generierung testen" -#: aleksis/core/models.py:1122 aleksis/core/models.py:1132 +#: aleksis/core/models.py:1140 msgid "Can invite persons" msgstr "Kann Personen einladen" -#: aleksis/core/models.py:1158 aleksis/core/models.py:1168 +#: aleksis/core/models.py:1176 msgid "Related data check task" msgstr "Zugehörige Datenprüfungsaufgabe" -#: aleksis/core/models.py:1166 aleksis/core/models.py:1176 +#: aleksis/core/models.py:1184 msgid "Issue solved" msgstr "Problem gelöst" -#: aleksis/core/models.py:1167 aleksis/core/models.py:1177 +#: aleksis/core/models.py:1185 msgid "Notification sent" msgstr "Benachrichtigung gesendet" -#: aleksis/core/models.py:1180 aleksis/core/models.py:1190 +#: aleksis/core/models.py:1198 msgid "Data check result" msgstr "Datenprüfungsergebnis" -#: aleksis/core/models.py:1181 aleksis/core/models.py:1191 +#: aleksis/core/models.py:1199 msgid "Data check results" msgstr "Datenprüfungsergebnisse" -#: aleksis/core/models.py:1183 aleksis/core/models.py:1193 +#: aleksis/core/models.py:1201 msgid "Can run data checks" msgstr "Kann Datenprüfungen ausführen" -#: aleksis/core/models.py:1184 aleksis/core/models.py:1194 +#: aleksis/core/models.py:1202 msgid "Can solve data check problems" msgstr "Kann Datenprüfungsprobleme lösen" -#: aleksis/core/models.py:1191 aleksis/core/models.py:1201 +#: aleksis/core/models.py:1209 msgid "E-Mail address" msgstr "E-Mail-Adresse" -#: aleksis/core/models.py:1223 aleksis/core/models.py:1233 +#: aleksis/core/models.py:1241 msgid "Owner" msgstr "Leiter" -#: aleksis/core/models.py:1227 aleksis/core/models.py:1237 +#: aleksis/core/models.py:1245 msgid "File expires at" msgstr "Datei abgelaufen am" -#: aleksis/core/models.py:1229 aleksis/core/models.py:1239 -#: aleksis/core/models.py:1240 +#: aleksis/core/models.py:1248 msgid "Generated HTML file" msgstr "Generierte HTML-Datei" -#: aleksis/core/models.py:1231 aleksis/core/models.py:1241 -#: aleksis/core/models.py:1243 +#: aleksis/core/models.py:1251 msgid "Generated PDF file" msgstr "Generierte PDF-Datei" -#: aleksis/core/models.py:1238 aleksis/core/models.py:1248 -#: aleksis/core/models.py:1250 +#: aleksis/core/models.py:1258 msgid "PDF file" msgstr "PDF-Datei" -#: aleksis/core/models.py:1239 aleksis/core/models.py:1249 -#: aleksis/core/models.py:1251 +#: aleksis/core/models.py:1259 msgid "PDF files" msgstr "PDF-Dateien" -#: aleksis/core/models.py:1244 aleksis/core/models.py:1254 -#: aleksis/core/models.py:1256 +#: aleksis/core/models.py:1264 msgid "Task result" msgstr "Task-Ergebnis" -#: aleksis/core/models.py:1247 aleksis/core/models.py:1257 -#: aleksis/core/models.py:1259 +#: aleksis/core/models.py:1267 msgid "Task user" msgstr "Task-Benutzer" -#: aleksis/core/models.py:1259 aleksis/core/models.py:1269 -#: aleksis/core/models.py:1331 +#: aleksis/core/models.py:1271 +msgid "Back URL" +msgstr "Zurück-URL" + +#: aleksis/core/models.py:1272 +msgid "Progress title" +msgstr "Fortschritt-Titel" + +#: aleksis/core/models.py:1273 +msgid "Error message" +msgstr "Fehlernachricht" + +#: aleksis/core/models.py:1274 +msgid "Success message" +msgstr "Erfolgsnachricht" + +#: aleksis/core/models.py:1275 +msgid "Redirect on success URL" +msgstr "URL, auf die bei Erfolg weitergeleitet wird" + +#: aleksis/core/models.py:1277 +msgid "Additional button title" +msgstr "Titel des zusätzlichen Buttons" + +#: aleksis/core/models.py:1279 +msgid "Additional button URL" +msgstr "URL des zusätzlichen Buttons" + +#: aleksis/core/models.py:1281 +msgid "Additional button icon" +msgstr "Symbol des zusätzlichen Buttons" + +#: aleksis/core/models.py:1283 +msgid "Result fetched" +msgstr "Ergebnis abgerufen" + +#: aleksis/core/models.py:1308 +msgid "Background task completed successfully" +msgstr "Hintergrundaufgabe erfolgreich fertiggestellt" + +#: aleksis/core/models.py:1309 +msgid "The background task '{}' has been completed successfully." +msgstr "Die Hintergrundaufgabe '{}' wurde erfolgreich fertiggestellt." + +#: aleksis/core/models.py:1315 +msgid "Background task failed" +msgstr "Hintergrundaufgabe fehlgeschlagen" + +#: aleksis/core/models.py:1316 +msgid "The background task '{}' has failed." +msgstr "Die Hintergrundaufgabe '{}' ist fehlgeschlagen." + +#: aleksis/core/models.py:1325 +msgid "Background task" +msgstr "Hintergrundaufgabe" + +#: aleksis/core/models.py:1339 msgid "Task user assignment" msgstr "Task-Benutzer-Zuordnung" -#: aleksis/core/models.py:1260 aleksis/core/models.py:1270 -#: aleksis/core/models.py:1332 +#: aleksis/core/models.py:1340 msgid "Task user assignments" msgstr "Task-Benutzer-Zuordnungen" -#: aleksis/core/models.py:1276 aleksis/core/models.py:1286 -#: aleksis/core/models.py:1348 +#: aleksis/core/models.py:1356 msgid "Additional attributes" msgstr "Zusätzliche Attribute" -#: aleksis/core/models.py:1314 aleksis/core/models.py:1324 -#: aleksis/core/models.py:1386 +#: aleksis/core/models.py:1394 msgid "Allowed scopes that clients can request" msgstr "Erlaubte Scopes, die ein Client anfordern kann" -#: aleksis/core/models.py:1324 aleksis/core/models.py:1334 -#: aleksis/core/models.py:1396 -msgid "" -"This image will be shown as icon in the authorization flow. It should be " -"squared." -msgstr "" -"Dieses Bild wird im Autorisierungs-Vorgang als Symbol angezeigt werden. Es " -"sollte rechteckig sein." - -#: aleksis/core/models.py:1373 aleksis/core/models.py:1383 -msgid "UUID" -msgstr "UUID" +#: aleksis/core/models.py:1404 +msgid "This image will be shown as icon in the authorization flow. It should be squared." +msgstr "Dieses Bild wird im Autorisierungs-Vorgang als Symbol angezeigt werden. Es sollte rechteckig sein." -#: aleksis/core/models.py:1377 aleksis/core/models.py:1387 -msgid "Selected ICal feed" -msgstr "Ausgewählter iCal-Feed" +#: aleksis/core/models.py:1449 +msgid "Can view room timetable" +msgstr "Kann Raum-Stundenplan sehen" -#: aleksis/core/models.py:1386 aleksis/core/models.py:1396 -msgid "Personal Calendar URL" -msgstr "Persönliche Kalender-URL" +#: aleksis/core/models.py:1451 +msgid "Room" +msgstr "Raum" -#: aleksis/core/models.py:1387 aleksis/core/models.py:1397 -msgid "Personal Calendar URLs" -msgstr "Persönliche Kalender-URLs" +#: aleksis/core/models.py:1452 +msgid "Rooms" +msgstr "Räume" #: aleksis/core/preferences.py:25 msgid "General" @@ -1241,191 +1034,163 @@ msgstr "Namensformat für Anreden" msgid "Channels to use for notifications" msgstr "Aktivierte Benachrichtungskanäle" -#: aleksis/core/preferences.py:209 aleksis/core/preferences.py:224 +#: aleksis/core/preferences.py:208 +msgid "Select Design" +msgstr "Design auswählen" + +#: aleksis/core/preferences.py:211 +msgid "Light mode" +msgstr "Heller Modus" + +#: aleksis/core/preferences.py:224 msgid "Regular expression to match primary group, e.g. '^Class .*'" msgstr "Regulärer Ausdruck um Primärgruppen zu finden, z.B. '^Class .*'" -#: aleksis/core/preferences.py:220 aleksis/core/preferences.py:235 +#: aleksis/core/preferences.py:235 msgid "Field on person to match primary group against" msgstr "Feld um Primärgruppen zu finden" -#: aleksis/core/preferences.py:232 aleksis/core/preferences.py:247 +#: aleksis/core/preferences.py:247 msgid "Automatically create new persons for new users" msgstr "Erstelle automatisch neue Personen für neue Benutzer" -#: aleksis/core/preferences.py:241 aleksis/core/preferences.py:256 -msgid "" -"Automatically link existing persons to new users by their e-mail address" -msgstr "" -"Verknüpfe existierende Personen automatisch mit neuen Personen anhand ihrer " -"E-Mail-Adresse" +#: aleksis/core/preferences.py:256 +msgid "Automatically link existing persons to new users by their e-mail address" +msgstr "Verknüpfe existierende Personen automatisch mit neuen Personen anhand ihrer E-Mail-Adresse" -#: aleksis/core/preferences.py:252 aleksis/core/preferences.py:267 +#: aleksis/core/preferences.py:267 msgid "Display name of the school" msgstr "Sichtbarer Name der Schule" -#: aleksis/core/preferences.py:263 aleksis/core/preferences.py:278 +#: aleksis/core/preferences.py:278 msgid "Official name of the school, e.g. as given by supervisory authority" -msgstr "" -"Offizieller Name der Schule, wie er z.B. von der Behörde vorgegeben ist" +msgstr "Offizieller Name der Schule, wie er z.B. von der Behörde vorgegeben ist" -#: aleksis/core/preferences.py:271 aleksis/core/preferences.py:286 +#: aleksis/core/preferences.py:286 msgid "Allow users to change their passwords" msgstr "Erlaube Benutzern, ihr Passwort zu ändern" -#: aleksis/core/preferences.py:279 aleksis/core/preferences.py:294 +#: aleksis/core/preferences.py:294 msgid "Allow users to reset their passwords" msgstr "Erlaube Benutzern, ihr Passwort zurückzusetzen" -#: aleksis/core/preferences.py:287 aleksis/core/preferences.py:302 +#: aleksis/core/preferences.py:302 msgid "Enable signup" msgstr "Registrierung aktivieren" -#: aleksis/core/preferences.py:295 aleksis/core/preferences.py:310 +#: aleksis/core/preferences.py:310 msgid "Regular expression for allowed usernames" msgstr "Regulärer Ausdruck für erlaubte Benutzernamen" -#: aleksis/core/preferences.py:303 aleksis/core/preferences.py:318 +#: aleksis/core/preferences.py:318 msgid "Enable invitations" msgstr "Einladungen aktivieren" -#: aleksis/core/preferences.py:311 aleksis/core/preferences.py:326 +#: aleksis/core/preferences.py:326 msgid "Length of invite code. (Default 3: abcde-acbde-abcde)" msgstr "Länge des Einladungscodes. (Standard: 3: abcde-acbde-abcde)" -#: aleksis/core/preferences.py:319 aleksis/core/preferences.py:334 +#: aleksis/core/preferences.py:334 msgid "Size of packets. (Default 5: abcde)" msgstr "Größe der Pakete. (Standard 5: abcde)" -#: aleksis/core/preferences.py:330 aleksis/core/preferences.py:345 +#: aleksis/core/preferences.py:345 msgid "Allowed Grant Flows for OAuth applications" msgstr "Erlaubte Grant Flows für OAuth-Anwendungen" -#: aleksis/core/preferences.py:344 -msgid "Available languages" -msgstr "Verfügbare Sprachen" - -#: aleksis/core/preferences.py:357 aleksis/core/preferences.py:343 #: aleksis/core/preferences.py:358 msgid "Send emails if data checks detect problems" msgstr "E-Mails versenden, wenn Datenprüfungen Probleme finden" -#: aleksis/core/preferences.py:368 aleksis/core/preferences.py:354 #: aleksis/core/preferences.py:369 msgid "Email recipients for data checks problem emails" msgstr "E-Mailempfänger für Datenprüfungsproblem-E-Mails" -#: aleksis/core/preferences.py:379 aleksis/core/preferences.py:365 #: aleksis/core/preferences.py:380 msgid "Email recipient groups for data checks problem emails" msgstr "E-Mail-Empfängergruppen für Datenprüfungsproblem-E-Mails" -#: aleksis/core/preferences.py:388 aleksis/core/preferences.py:374 #: aleksis/core/preferences.py:389 msgid "Show dashboard to users without login" msgstr "Zeige Dashboard für Benutzer ohne Login" -#: aleksis/core/preferences.py:397 aleksis/core/preferences.py:383 #: aleksis/core/preferences.py:398 msgid "Allow users to edit their dashboard" msgstr "Erlaube Benutzern, ihr Dashboard zu bearbeiten" -#: aleksis/core/preferences.py:408 aleksis/core/preferences.py:394 #: aleksis/core/preferences.py:409 msgid "Fields on person model which are editable by themselves." msgstr "Felder des Personen-Models welche von ihnen selbst editierbar sind." -#: aleksis/core/preferences.py:423 aleksis/core/preferences.py:409 #: aleksis/core/preferences.py:424 -msgid "" -"Editable fields on person model which should trigger a notification on change" -msgstr "" -"Editierbare Felder des Personen-Models welche eine Benachrichtigung für " -"Änderungen auslösen soll" +msgid "Editable fields on person model which should trigger a notification on change" +msgstr "Editierbare Felder des Personen-Models welche eine Benachrichtigung für Änderungen auslösen soll" -#: aleksis/core/preferences.py:437 aleksis/core/preferences.py:423 #: aleksis/core/preferences.py:438 msgid "Contact for notification if a person changes their data" msgstr "Kontakt für Benachrichtigung, wenn eine Person ihre Daten ändert" -#: aleksis/core/preferences.py:448 aleksis/core/preferences.py:434 #: aleksis/core/preferences.py:449 msgid "Prefer personal photos over avatars" msgstr "Persönliche Fotos Avataren vorziehen" -#: aleksis/core/preferences.py:458 aleksis/core/preferences.py:444 #: aleksis/core/preferences.py:459 msgid "PDF file expiration duration" msgstr "PDF-Datei-Ablaufdauer" -#: aleksis/core/preferences.py:459 aleksis/core/preferences.py:445 #: aleksis/core/preferences.py:460 msgid "in minutes" msgstr "in Minuten" -#: aleksis/core/preferences.py:469 aleksis/core/preferences.py:455 #: aleksis/core/preferences.py:470 msgid "Automatically update the dashboard and its widgets" msgstr "Automatisch das Dashboard und seine Widgets aktualisieren" -#: aleksis/core/preferences.py:479 aleksis/core/preferences.py:465 #: aleksis/core/preferences.py:480 msgid "Automatically update the dashboard and its widgets sitewide" -msgstr "" -"Automatisch das Dashboard und seine Widgets aktualisieren (auf der ganzen " -"Seite)" +msgstr "Automatisch das Dashboard und seine Widgets aktualisieren (auf der ganzen Seite)" -#: aleksis/core/preferences.py:489 aleksis/core/preferences.py:475 #: aleksis/core/preferences.py:490 msgid "Country for phone number parsing" msgstr "Land für das Einlesen von Telefonnummern" -#: aleksis/core/settings.py:540 aleksis/core/settings.py:541 -#: aleksis/core/settings.py:539 +#: aleksis/core/settings.py:544 msgid "English" msgstr "Englisch" -#: aleksis/core/settings.py:541 aleksis/core/settings.py:542 -#: aleksis/core/settings.py:540 +#: aleksis/core/settings.py:545 msgid "German" msgstr "Deutsch" -#: aleksis/core/tables.py:24 +#: aleksis/core/settings.py:546 +msgid "Ukrainian" +msgstr "Ukrainisch" + +#: aleksis/core/tables.py:25 #: aleksis/core/templates/core/announcement/list.html:36 -#: aleksis/core/templates/core/group/full.html:24 -#: aleksis/core/templates/core/person/full.html:26 -#: aleksis/core/templates/core/person/full.html:86 +#: aleksis/core/templates/core/group/full.html:26 #: aleksis/core/templates/oauth2_provider/application/detail.html:17 -#: aleksis/core/tables.py:25 aleksis/core/templates/core/group/full.html:26 msgid "Edit" msgstr "Bearbeiten" -#: aleksis/core/tables.py:26 aleksis/core/tables.py:94 -#: aleksis/core/tables.py:138 -#: aleksis/core/templates/core/announcement/list.html:22 #: aleksis/core/tables.py:27 aleksis/core/tables.py:148 #: aleksis/core/tables.py:192 +#: aleksis/core/templates/core/announcement/list.html:22 msgid "Actions" msgstr "Aktionen" -#: aleksis/core/tables.py:61 aleksis/core/tables.py:62 -#: aleksis/core/tables.py:76 aleksis/core/tables.py:92 -#: aleksis/core/tables.py:136 +#: aleksis/core/tables.py:115 aleksis/core/tables.py:116 +#: aleksis/core/tables.py:130 aleksis/core/tables.py:146 +#: aleksis/core/tables.py:190 #: aleksis/core/templates/core/announcement/list.html:42 -#: aleksis/core/templates/core/group/full.html:31 +#: aleksis/core/templates/core/group/full.html:33 #: aleksis/core/templates/core/pages/delete.html:22 -#: aleksis/core/templates/core/person/full.html:33 -#: aleksis/core/templates/core/person/full.html:93 #: aleksis/core/templates/oauth2_provider/application/detail.html:21 -#: aleksis/core/tables.py:115 aleksis/core/tables.py:116 -#: aleksis/core/tables.py:130 aleksis/core/tables.py:146 -#: aleksis/core/tables.py:190 aleksis/core/templates/core/group/full.html:33 msgid "Delete" msgstr "Löschen" #: aleksis/core/templates/403.html:14 aleksis/core/templates/500.html:10 #: aleksis/core/templates/oauth2_provider/authorize.html:54 -#: aleksis/core/templates/oauth2_provider/authorized-oob.html:24 msgid "Error" msgstr "Fehler" @@ -1440,14 +1205,12 @@ msgstr "" #: aleksis/core/templates/403.html:19 aleksis/core/templates/404.html:16 msgid "" "\n" -" If you think this is an error in AlekSIS, please contact your " -"site\n" +" If you think this is an error in AlekSIS, please contact your site\n" " administrators:\n" " " msgstr "" "\n" -" Wenn Sie der Meinung sind, dass es sich um einen Fehler in " -"AlekSIS handelt, kontaktieren Sie bitte einen Ihrer\n" +" Wenn Sie der Meinung sind, dass es sich um einen Fehler in AlekSIS handelt, kontaktieren Sie bitte einen Ihrer\n" " Systemadministratoren:\n" " " @@ -1459,15 +1222,14 @@ msgid "" " " msgstr "" "\n" -" Wenn Sie über einen Link auf einer externen Seite hierher " -"gelangt sind,\n" +" Wenn Sie über einen Link auf einer externen Seite hierher gelangt sind,\n" " ist es möglich, dass dieser veraltet war.\n" " " #: aleksis/core/templates/500.html:10 msgid "" "An unexpected error has\n" -" occured." +" occurred." msgstr "" "Ein unerwarteter Fehler ist\n" " aufgetreten." @@ -1475,14 +1237,12 @@ msgstr "" #: aleksis/core/templates/500.html:13 msgid "" "\n" -" Your site administrators will automatically be notified about " -"this\n" +" Your site administrators will automatically be notified about this\n" " error. You can also contact them directly:\n" " " msgstr "" "\n" -" Ihre Administratoren werden automatisch über diesen Fehler " -"informiert.\n" +" Ihre Administratoren werden automatisch über diesen Fehler informiert.\n" " Sie können diese auch direkt kontaktieren:\n" " " @@ -1501,13 +1261,11 @@ msgstr "" #: aleksis/core/templates/503.html:13 msgid "" "\n" -" This page is currently unavailable. If this error persists, " -"contact your site administrators:\n" +" This page is currently unavailable. If this error persists, contact your site administrators:\n" " " msgstr "" "\n" -" Diese Seite ist aktuell nicht erreichbar. Wenn dieser Fehler " -"bestehen bleibt, kontaktieren Sie bitte einen Ihrer Systemadministratoren:\n" +" Diese Seite ist aktuell nicht erreichbar. Wenn dieser Fehler bestehen bleibt, kontaktieren Sie bitte einen Ihrer Systemadministratoren:\n" " " #: aleksis/core/templates/account/account_inactive.html:5 @@ -1548,27 +1306,28 @@ msgstr "Bestätigen" #: aleksis/core/templates/account/email_confirm.html:12 #, python-format -msgid "" -"Please confirm that <a href=\"mailto:%(email)s\">%(email)s</a> is an e-mail " -"address for user %(user_display)s." -msgstr "" -"Bitte bestätigen Sie, dass <a href=\"mailto:%(email)s\">%(email)s</a> eine E-" -"Mail-Adresse für den Benutzer %(user_display)s ist." +msgid "Please confirm that <a href=\"mailto:%(email)s\">%(email)s</a> is an e-mail address for user %(user_display)s." +msgstr "Bitte bestätigen Sie, dass <a href=\"mailto:%(email)s\">%(email)s</a> eine E-Mail-Adresse für den Benutzer %(user_display)s ist." #: aleksis/core/templates/account/email_confirm.html:25 #, python-format -msgid "" -"This e-mail confirmation link expired or is invalid. Please <a href=" -"\"%(email_url)s\">issue a new e-mail confirmation request</a>." -msgstr "" -"Dieser E-Mail-Bestätigungslink ist abgelaufen oder nicht gültig. Bitte <a " -"href=\"%(email_url)s\">fragen Sie eine neue E-Mail-Bestätigung an</a>." +msgid "This e-mail confirmation link expired or is invalid. Please <a href=\"%(email_url)s\">issue a new e-mail confirmation request</a>." +msgstr "Dieser E-Mail-Bestätigungslink ist abgelaufen oder nicht gültig. Bitte <a href=\"%(email_url)s\">fragen Sie eine neue E-Mail-Bestätigung an</a>." + +#: aleksis/core/templates/account/password_change.html:5 +#: aleksis/core/templates/account/password_change.html:6 +#: aleksis/core/templates/account/password_change.html:19 +#: aleksis/core/templates/account/password_reset_from_key.html:5 +#: aleksis/core/templates/account/password_reset_from_key.html:42 +#: aleksis/core/templates/account/password_reset_from_key.html:46 +#: aleksis/core/templates/account/password_reset_from_key_done.html:5 +#: aleksis/core/templates/account/password_reset_from_key_done.html:6 +msgid "Change password" +msgstr "Passwort ändern" #: aleksis/core/templates/account/password_change.html:12 msgid "Forgot your current password? Click here to reset it:" -msgstr "" -"Haben Sie Ihr aktuelles Passwort vergessen? Klicken Sie hier, um es " -"zurückzusetzen:" +msgstr "Haben Sie Ihr aktuelles Passwort vergessen? Klicken Sie hier, um es zurückzusetzen:" #: aleksis/core/templates/account/password_change.html:12 msgid "Forgot Password?" @@ -1587,13 +1346,11 @@ msgstr "Passwortänderung deaktiviert." msgid "" "\n" " Users are not allowed to edit their own passwords. If you think\n" -" this is an error please contact one of your site " -"administrators.\n" +" this is an error please contact one of your site administrators.\n" " " msgstr "" "\n" -" Benutzer dürfen ihre eigenen Passwörter nicht ändern. Wenn Sie " -"denken, \n" +" Benutzer dürfen ihre eigenen Passwörter nicht ändern. Wenn Sie denken, \n" "dass dies ein Fehler ist, kontaktieren Sie bitte einen der Administratoren:\n" " " @@ -1608,12 +1365,8 @@ msgid "Reset password" msgstr "Passwort zurücksetzen" #: aleksis/core/templates/account/password_reset.html:17 -msgid "" -"Forgotten your password? Enter your e-mail address below, and we'll send you " -"an e-mail allowing you to reset it." -msgstr "" -"Passwort vergessen? Geben Sie Ihre E-Mail-Adresse hier ein und wir werden " -"Ihnen eine E-Mail zum Zurücksetzen des Passwortes schicken." +msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it." +msgstr "Passwort vergessen? Geben Sie Ihre E-Mail-Adresse hier ein und wir werden Ihnen eine E-Mail zum Zurücksetzen des Passwortes schicken." #: aleksis/core/templates/account/password_reset.html:30 msgid "" @@ -1636,8 +1389,7 @@ msgid "" " " msgstr "" "\n" -" Wir haben Ihnen eine E-Mail gesendet. Bitte kontaktieren Sie " -"einen der Administratoren,\n" +" Wir haben Ihnen eine E-Mail gesendet. Bitte kontaktieren Sie einen der Administratoren,\n" "wenn Sie diese nicht innerhalb weniger Minuten erhalten.\n" " " @@ -1649,16 +1401,12 @@ msgstr "Ungültiges Token" #, python-format msgid "" "\n" -" The password reset link was invalid, possibly because it has " -"already been used. Please request a <a href=\"%(passwd_reset_url)s\"\n" +" The password reset link was invalid, possibly because it has already been used. Please request a <a href=\"%(passwd_reset_url)s\"\n" " class=\"blue-text text-lighten-2\">new password reset</a>.\n" " " msgstr "" "\n" -" Der Link zum Zurücksetzen des Passwortes war falsch, " -"wahrscheinlich, weil er bereits benutzt wurde. Bitte starten Sie eine neue " -"Anfrage <a href=\"%(passwd_reset_url)s\" class=\"blue-text text-" -"lighten-2\">zum Zurücksetzen des Passwortes</a>.\n" +" Der Link zum Zurücksetzen des Passwortes war falsch, wahrscheinlich, weil er bereits benutzt wurde. Bitte starten Sie eine neue Anfrage <a href=\"%(passwd_reset_url)s\" class=\"blue-text text-lighten-2\">zum Zurücksetzen des Passwortes</a>.\n" " " #: aleksis/core/templates/account/password_reset_from_key.html:25 @@ -1707,11 +1455,13 @@ msgstr "Registrierung" #: aleksis/core/templates/account/signup.html:12 #, python-format -msgid "" -"Already have an account? Then please <a href=\"%(login_url)s\">sign in</a>." -msgstr "" -"Haben Sie bereits ein Konto? Dann <a href=\"%(login_url)s\">melden Sie sich " -"bitte an</a>." +msgid "Already have an account? Then please <a href=\"%(login_url)s\">sign in</a>." +msgstr "Haben Sie bereits ein Konto? Dann <a href=\"%(login_url)s\">melden Sie sich bitte an</a>." + +#: aleksis/core/templates/account/signup.html:22 +#: aleksis/core/templates/socialaccount/signup.html:23 +msgid "Sign up" +msgstr "Registrieren" #: aleksis/core/templates/account/signup_closed.html:5 #: aleksis/core/templates/account/signup_closed.html:6 @@ -1730,8 +1480,7 @@ msgid "" " " msgstr "" "\n" -" Die Registrierung ist aktuell geschlossen. Wenn Sie denken, dass " -"dies ein Fehler ist,\n" +" Die Registrierung ist aktuell geschlossen. Wenn Sie denken, dass dies ein Fehler ist,\n" " kontaktieren Sie bitte einen Ihrer Systemadministratoren.\n" " " @@ -1751,17 +1500,13 @@ msgstr "Verifizieren Sie Ihre E-Mail!" #: aleksis/core/templates/account/verification_sent.html:16 msgid "" "\n" -" This part of the site requires us to verify that you are who you " -"claim to be.\n" -" For this purpose, we require that you verify ownership of your e-" -"mail address.\n" +" This part of the site requires us to verify that you are who you claim to be.\n" +" For this purpose, we require that you verify ownership of your e-mail address.\n" " " msgstr "" "\n" -" Dieser Teil der Anwendung setzt voraus, dass wir verifizieren, " -"dass Sie die Person sind, die sie vorgeben, zu sein.\n" -"Zu diesem Zweck setzen wir voraus, dass Sie die Inhaberschaft Ihrer E-Mail-" -"Adresse bestätigen.\n" +" Dieser Teil der Anwendung setzt voraus, dass wir verifizieren, dass Sie die Person sind, die sie vorgeben, zu sein.\n" +"Zu diesem Zweck setzen wir voraus, dass Sie die Inhaberschaft Ihrer E-Mail-Adresse bestätigen.\n" " " #: aleksis/core/templates/account/verification_sent.html:22 @@ -1775,8 +1520,7 @@ msgstr "" "\n" " Wir haben Ihnen eine E-Mail zur Verifizierung geschickt.\n" "Bitte klicken Sie auf den Link in dieser E-Mail.\n" -"Bitte kontaktieren Sie uns, wenn Sie diese nicht binnen weniger Minuten " -"erhalten.\n" +"Bitte kontaktieren Sie uns, wenn Sie diese nicht binnen weniger Minuten erhalten.\n" " " #: aleksis/core/templates/core/additional_field/edit.html:6 @@ -1822,18 +1566,6 @@ msgstr "Empfänger" msgid "There are no announcements." msgstr "Es gibt aktuell keine Ankündigungen." -#: aleksis/core/templates/core/base.html:213 -msgid "About AlekSIS® — The Free School Information System" -msgstr "Über AlekSIS® — The Free School Information System" - -#: aleksis/core/templates/core/base.html:221 -msgid "Imprint" -msgstr "Impressum" - -#: aleksis/core/templates/core/base.html:229 -msgid "Privacy Policy" -msgstr "Datenschutzerklärung" - #: aleksis/core/templates/core/base_print.html:74 msgid "Powered by AlekSIS®" msgstr "Betrieben mit AlekSIS®" @@ -1857,8 +1589,7 @@ msgid "" " " msgstr "" "\n" -" Es ist ein Problem dabei aufgetreten, das Widget \"%(title)s\" " -"zu laden.\n" +" Es ist ein Problem dabei aufgetreten, das Widget \"%(title)s\" zu laden.\n" "Sie brauchen nichts weiter machen.\n" " " @@ -1868,6 +1599,11 @@ msgstr "" msgid "Edit %(widget)s" msgstr "%(widget)s bearbeiten" +#: aleksis/core/templates/core/dashboard_widget/list.html:8 +#: aleksis/core/templates/core/dashboard_widget/list.html:9 +msgid "Dashboard widgets" +msgstr "Dashboard-Widgets" + #: aleksis/core/templates/core/dashboard_widget/list.html:15 msgid "Create dashboard widget" msgstr "Dashboard-Widget erstellen" @@ -1883,6 +1619,11 @@ msgstr "%(name)s erstellen" msgid "Edit default dashboard" msgstr "Standard-Dashboard bearbeiten" +#: aleksis/core/templates/core/data_check/list.html:9 +#: aleksis/core/templates/core/data_check/list.html:10 +msgid "Data checks" +msgstr "Datenprüfungen" + #: aleksis/core/templates/core/data_check/list.html:15 msgid "Check data again" msgstr "Daten erneut prüfen" @@ -1954,42 +1695,29 @@ msgstr "Dashboard bearbeiten" #: aleksis/core/templates/core/edit_dashboard.html:24 msgid "" "\n" -" On this page you can arrange your personal dashboard. You can drag " -"any items from \"Available widgets\" to \"Your\n" -" Dashboard\" or change the order by moving the widgets. After you " -"have finished, please don't forget to click on\n" +" On this page you can arrange your personal dashboard. You can drag any items from \"Available widgets\" to \"Your\n" +" Dashboard\" or change the order by moving the widgets. After you have finished, please don't forget to click on\n" " \"Save\".\n" " " msgstr "" "\n" -" Auf dieser Seite können Sie Ihr persönliches Dashboard " -"zusammenstallen. Sie können beliebige Elemente von den \"Verfügbaren Widgets" -"\" \n" -"in \"Ihr Dashboard\" ziehen oder die Reihenfolge verändern, indem Sie die " -"Widgets bewegen. Wenn Sie fertig sind, vergessen Sie bitte nicht, \n" +" Auf dieser Seite können Sie Ihr persönliches Dashboard zusammenstallen. Sie können beliebige Elemente von den \"Verfügbaren Widgets\" \n" +"in \"Ihr Dashboard\" ziehen oder die Reihenfolge verändern, indem Sie die Widgets bewegen. Wenn Sie fertig sind, vergessen Sie bitte nicht, \n" "auf \"Speichern\" zu drücken.\n" " " #: aleksis/core/templates/core/edit_dashboard.html:30 msgid "" "\n" -" On this page you can arrange the default dashboard which is shown " -"when a user doesn't arrange his own\n" -" dashboard. You can drag any items from \"Available widgets\" to " -"\"Default Dashboard\" or change the order\n" -" by moving the widgets. After you have finished, please don't " -"forget to click on \"Save\".\n" +" On this page you can arrange the default dashboard which is shown when a user doesn't arrange his own\n" +" dashboard. You can drag any items from \"Available widgets\" to \"Default Dashboard\" or change the order\n" +" by moving the widgets. After you have finished, please don't forget to click on \"Save\".\n" " " msgstr "" "\n" -" Auf dieser Seite können Sie Ihr das Standard-Dashboard " -"zusammenstallen, welches angezeigt wird, wenn ein Benutzer kein eigenes " -"definiert. \n" -"Sie können beliebige Elemente von den \"Verfügbaren Widgets\" in \"Standard-" -"Dashboard\" ziehen oder die Reihenfolge verändern, indem Sie die Widgets " -"bewegen. \n" -"Wenn Sie fertig sind, vergessen Sie bitte nicht, auf \"Speichern\" zu " -"drücken.\n" +" Auf dieser Seite können Sie Ihr das Standard-Dashboard zusammenstallen, welches angezeigt wird, wenn ein Benutzer kein eigenes definiert. \n" +"Sie können beliebige Elemente von den \"Verfügbaren Widgets\" in \"Standard-Dashboard\" ziehen oder die Reihenfolge verändern, indem Sie die Widgets bewegen. \n" +"Wenn Sie fertig sind, vergessen Sie bitte nicht, auf \"Speichern\" zu drücken.\n" " " #: aleksis/core/templates/core/edit_dashboard.html:48 @@ -2004,18 +1732,20 @@ msgstr "Ihr Dashboard" msgid "Default dashboard" msgstr "Standard-Dashboard" +#: aleksis/core/templates/core/group/child_groups.html:7 +#: aleksis/core/templates/core/group/child_groups.html:9 +msgid "Assign child groups to groups" +msgstr "Kindgruppen zu Gruppen zuordnen" + #: aleksis/core/templates/core/group/child_groups.html:18 msgid "" "\n" -" You can use this to assign child groups to groups. Please use the " -"filters below to select groups you want to\n" +" You can use this to assign child groups to groups. Please use the filters below to select groups you want to\n" " change and click \"Next\".\n" " " msgstr "" "\n" -" Sie können diese Seite verwenden, um Kindgruppen zu Gruppen " -"zuzuordnen. Bitte nutzen Sie die folgenden Filter, um die Gruppen " -"auszuwählen, die Sie \n" +" Sie können diese Seite verwenden, um Kindgruppen zu Gruppen zuzuordnen. Bitte nutzen Sie die folgenden Filter, um die Gruppen auszuwählen, die Sie \n" " ändern möchten und klicken auf \"Weiter\".\n" " " @@ -2056,18 +1786,14 @@ msgstr "Bitte seien Sie vorsichtig!" #: aleksis/core/templates/core/group/child_groups.html:79 msgid "" "\n" -" If you click \"Back\" or \"Next\" the current group assignments " -"are not saved.\n" -" If you click \"Save\", you will overwrite all existing child " -"group relations for this group with what you\n" +" If you click \"Back\" or \"Next\" the current group assignments are not saved.\n" +" If you click \"Save\", you will overwrite all existing child group relations for this group with what you\n" " selected on this page.\n" " " msgstr "" "\n" -" Wenn Sie auf \"Zurück\" oder \"Weiter\" klicken, werden die " -"aktuellen Gruppenzuordnungen nicht gespeichert.\n" -"Wenn Sie auf \"Speichern\" klicken, werden alle existierenden Zuordnungen " -"von Kindgruppen für diese Gruppe\n" +" Wenn Sie auf \"Zurück\" oder \"Weiter\" klicken, werden die aktuellen Gruppenzuordnungen nicht gespeichert.\n" +"Wenn Sie auf \"Speichern\" klicken, werden alle existierenden Zuordnungen von Kindgruppen für diese Gruppe\n" "mit dem überschrieben, was Sie auf dieser Seite ausgewählt haben.\n" " " @@ -2101,40 +1827,36 @@ msgstr "Speichern und weiter" msgid "Edit group" msgstr "Gruppe editieren" -#: aleksis/core/templates/core/group/full.html:38 -#: aleksis/core/templates/core/person/full.html:40 -#: aleksis/core/templates/core/person/full.html:100 #: aleksis/core/templates/core/group/full.html:40 msgid "Change preferences" msgstr "Einstellungen ändern" -#: aleksis/core/templates/core/group/full.html:64 #: aleksis/core/templates/core/group/full.html:68 msgid "Statistics" msgstr "Statistiken" -#: aleksis/core/templates/core/group/full.html:67 #: aleksis/core/templates/core/group/full.html:73 msgid "Count of members" msgstr "Anzahl der Mitglieder" -#: aleksis/core/templates/core/group/full.html:71 #: aleksis/core/templates/core/group/full.html:81 msgid "Average age" msgstr "Durchschnittsalter" -#: aleksis/core/templates/core/group/full.html:76 #: aleksis/core/templates/core/group/full.html:90 msgid "Age range" msgstr "Altersbereich" -#: aleksis/core/templates/core/group/full.html:76 -msgid "years to" -msgstr "Jahre bis" - -#: aleksis/core/templates/core/group/full.html:76 -msgid "years " -msgstr "Jahre " +#: aleksis/core/templates/core/group/full.html:93 +#, python-format +msgid "" +"\n" +" %(min)s years to %(max)s years\n" +" " +msgstr "" +"\n" +" %(min)s Jahre bis %(max)s Jahre\n" +" " #: aleksis/core/templates/core/group/list.html:14 msgid "Create group" @@ -2162,188 +1884,30 @@ msgstr "Gruppentyp editieren" msgid "Create group type" msgstr "Gruppentyp erstellen" -#: aleksis/core/templates/core/ical/ical_create.html:4 -#: aleksis/core/templates/core/ical/ical_create.html:5 -#: aleksis/core/templates/core/ical/ical_list.html:12 -msgid "Create iCal URL" -msgstr "iCal-URL erstellen" - -#: aleksis/core/templates/core/ical/ical_create.html:16 -#: aleksis/core/templates/core/ical/ical_edit.html:16 -#: aleksis/core/templates/oauth2_provider/application/create.html:14 -#: aleksis/core/templates/oauth2_provider/application/edit.html:14 -#: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:24 -#: aleksis/core/templates/two_factor/_wizard_actions.html:6 -msgid "Cancel" -msgstr "Abbrechen" - -#: aleksis/core/templates/core/ical/ical_edit.html:4 -#: aleksis/core/templates/core/ical/ical_edit.html:5 -#, python-format -msgid "Edit iCal URL %(object)s" -msgstr "iCal-URL %(object)s bearbeiten" - -#: aleksis/core/templates/core/ical/ical_list.html:4 -#: aleksis/core/templates/core/ical/ical_list.html:5 -msgid "ICal Feeds" -msgstr "iCal-Feeds" - -#: aleksis/core/templates/core/ical/ical_list.html:8 -msgid "" -"These are URLs for different Calendar Feeds in the iCal (.ics) format. You " -"can create as many as you want and import them in your calendar software." -msgstr "" -"Dies sind URLs für verschiedene Kalender-Feeds im iCal-Format (.ics). Sie " -"können so viele erstellen, wie sie wollen, und in Ihre Kalender-Software " -"importieren." - -#: aleksis/core/templates/core/ical/ical_list.html:14 -msgid "Your iCal URLs" -msgstr "Deine iCal-URLs" - #: aleksis/core/templates/core/index.html:4 msgid "Home" msgstr "Startseite" -#: aleksis/core/templates/core/index.html:49 #: aleksis/core/templates/core/index.html:34 msgid "" "\n" -" You didn't customise your dashboard so that you see the system " -"default. Please click on \"Edit dashboard\" to\n" +" You didn't customise your dashboard so that you see the system default. Please click on \"Edit dashboard\" to\n" " customise your personal dashboard.\n" " " msgstr "" "\n" -" Sie haben Ihr Dashboard nicht angepasst, sodass Sie das Standard-" -"Dashboard sehen.\n" -"Bitte klicken Sie auf \"Dashboard bearbeiten\", um Ihr persönliches " -"Dashboard anzupassen.\n" +" Sie haben Ihr Dashboard nicht angepasst, sodass Sie das Standard-Dashboard sehen.\n" +"Bitte klicken Sie auf \"Dashboard bearbeiten\", um Ihr persönliches Dashboard anzupassen.\n" " " -#: aleksis/core/templates/core/index.html:59 #: aleksis/core/templates/core/index.html:44 msgid "Last activities" msgstr "Letzte Aktivitäten" -#: aleksis/core/templates/core/index.html:77 #: aleksis/core/templates/core/index.html:62 msgid "No activities available yet." msgstr "Aktuell keine Aktivitäten verfügbar." -#: aleksis/core/templates/core/index.html:82 -msgid "Recent notifications" -msgstr "Letzte Benachrichtigungen" - -#: aleksis/core/templates/core/index.html:98 -#: aleksis/core/templates/core/notifications.html:23 -msgid "More information →" -msgstr "Mehr Informationen →" - -#: aleksis/core/templates/core/index.html:105 -#: aleksis/core/templates/core/notifications.html:30 -msgid "No notifications available yet." -msgstr "Aktuell keine Benachrichtigungen verfügbar." - -#: aleksis/core/templates/core/pages/about.html:6 -msgid "About AlekSIS®" -msgstr "Über AlekSIS®" - -#: aleksis/core/templates/core/pages/about.html:7 -msgid "AlekSIS® – The Free School Information System" -msgstr "AlekSIS® – The Free School Information System" - -#: aleksis/core/templates/core/pages/about.html:15 -msgid "About AlekSIS" -msgstr "Über AlekSIS" - -#: aleksis/core/templates/core/pages/about.html:17 -msgid "" -"\n" -" This platform is powered by AlekSIS®, a web-based school " -"information system (SIS) which can be used\n" -" to manage and/or publish organisational artifacts of " -"educational institutions. AlekSIS is free software and\n" -" can be used by anyone.\n" -" " -msgstr "" -"\n" -" Diese Plattform wird mit AlekSIS®, einem webbasierten " -"Schulinformationssystem (SIS), \n" -"welches für die Verwaltung und/oder Veröffentlichung von " -"Bildungseinrichtungen verwendet werden kann.\n" -"AlekSIS ist freie Software und kann von jedem benutzt werden.\n" -" " - -#: aleksis/core/templates/core/pages/about.html:24 -msgid "" -"\n" -" AlekSIS® is a registered trademark of the AlekSIS open source " -"project, represented by Teckids e.V.\n" -" " -msgstr "" -"\n" -" AlekSIS® ist eine eingetragene Wortmarke des Open-Source-" -"Projektes AlekSIS, vertreten durch den Teckids e.V.\n" -" " - -#: aleksis/core/templates/core/pages/about.html:30 -msgid "Website of AlekSIS" -msgstr "Website von AlekSIS" - -#: aleksis/core/templates/core/pages/about.html:31 -msgid "Source code" -msgstr "Quellcode" - -#: aleksis/core/templates/core/pages/about.html:40 -msgid "Licence information" -msgstr "Lizenzinformationen" - -#: aleksis/core/templates/core/pages/about.html:42 -msgid "" -"\n" -" The core and the official apps of AlekSIS are licenced under " -"the EUPL, version 1.2 or later. For licence\n" -" information from third-party apps, if installed, refer to the " -"respective components below. The\n" -" licences are marked like this:\n" -" " -msgstr "" -"\n" -" Der Core und die offiziellen Apps von AlekSIS sind unter der " -"EUPL, Version 1.2 oder später, lizenziert. Für Lizenzinformationen\n" -"zu Apps von Drittanbietern, wenn installiert, siehe direkt bei der " -"jeweiligen App weiter unten auf dieser Seite. Die Lizenzen\n" -"sind wie folgt markiert:\n" -" " - -#: aleksis/core/templates/core/pages/about.html:50 -msgid "Free/Open Source Licence" -msgstr "Freie/Open Source Lizenz" - -#: aleksis/core/templates/core/pages/about.html:51 -msgid "Other Licence" -msgstr "Andere Lizenz" - -#: aleksis/core/templates/core/pages/about.html:55 -msgid "Full licence text" -msgstr "Kompletter Lizenztext" - -#: aleksis/core/templates/core/pages/about.html:56 -msgid "More information about the EUPL" -msgstr "Weitere Informationen über die EUPL" - -#: aleksis/core/templates/core/pages/about.html:95 -#, python-format -msgid "" -"\n" -" This app is licenced under %(licence)s.\n" -" " -msgstr "" -"\n" -" Diese App ist unter %(licence)s lizenziert.\n" -" " - #: aleksis/core/templates/core/pages/delete.html:6 #, python-format msgid "Delete %(object_name)s" @@ -2360,22 +1924,10 @@ msgstr "" " Möchten Sie wirklich %(object_name)s \"%(object)s\" löschen?\n" " " -#: aleksis/core/templates/core/pages/progress.html:27 -msgid "" -"\n" -" Without activated JavaScript the progress status can't be " -"updated.\n" -" " -msgstr "" -"\n" -" Ohne aktiviertes JavaScript kann der Fortschritt leider nicht " -"aktualisiert werden.\n" -" " - -#: aleksis/core/templates/core/pages/progress.html:47 -#: aleksis/core/templates/two_factor/core/otp_required.html:19 -msgid "Go back" -msgstr "Zurück" +#: aleksis/core/templates/core/pages/system_status.html:5 +#: aleksis/core/templates/core/pages/system_status.html:7 +msgid "System status" +msgstr "Systemstatus" #: aleksis/core/templates/core/pages/system_status.html:12 msgid "System checks" @@ -2388,13 +1940,11 @@ msgstr "Wartungsmodus aktiviert" #: aleksis/core/templates/core/pages/system_status.html:24 msgid "" "\n" -" Only admin and visitors from internal IPs can access " -"thesite.\n" +" Only admin and visitors from internal IPs can access the site.\n" " " msgstr "" "\n" -" Nur Administratoren und Besucher von internen IP-Adressen " -"können die Seite aufrufen.\n" +" Nur Administratoren und Besucher von internen IP-Adressen können die Seite aufrufen.\n" " " #: aleksis/core/templates/core/pages/system_status.html:36 @@ -2412,13 +1962,11 @@ msgstr "Debug-Modus aktiviert" #: aleksis/core/templates/core/pages/system_status.html:49 msgid "" "\n" -" The web server throws back debug information on errors. Do " -"not use in production!\n" +" The web server throws back debug information on errors. Do not use in production!\n" " " msgstr "" "\n" -" Der Server gibt Debug-Informationen bei Fehlern zurück. " -"Nicht im Produktivbetrieb nutzen!\n" +" Der Server gibt Debug-Informationen bei Fehlern zurück. Nicht im Produktivbetrieb nutzen!\n" " " #: aleksis/core/templates/core/pages/system_status.html:56 @@ -2428,13 +1976,11 @@ msgstr "Debug-Modus deaktivert" #: aleksis/core/templates/core/pages/system_status.html:58 msgid "" "\n" -" Debug mode is disabled. Default error pages are displayed on " -"errors.\n" +" Debug mode is disabled. Default error pages are displayed on errors.\n" " " msgstr "" "\n" -" Debug-Modus ist deaktiviert. Standard-Fehlerseiten werden " -"bei Fehlern angezeigt.\n" +" Debug-Modus ist deaktiviert. Standard-Fehlerseiten werden bei Fehlern angezeigt.\n" " " #: aleksis/core/templates/core/pages/system_status.html:71 @@ -2484,13 +2030,11 @@ msgstr "PDF-Generierung testen" #: aleksis/core/templates/core/pages/test_pdf.html:14 msgid "" "\n" -" This simple view can be used to ensure the correct function of the " -"built-in PDF generation system.\n" +" This simple view can be used to ensure the correct function of the built-in PDF generation system.\n" " " msgstr "" "\n" -" Diese einfache Seite kann genutzt werden, um die korrekte " -"Funktionalität des eingebauten PDF-Generierungssystem zu testen.\n" +" Diese einfache Seite kann genutzt werden, um die korrekte Funktionalität des eingebauten PDF-Generierungssystem zu testen.\n" " " #: aleksis/core/templates/core/partials/announcements.html:8 @@ -2529,14 +2073,11 @@ msgstr "" #: aleksis/core/templates/core/partials/avatar_content.html:14 #: aleksis/core/templates/core/partials/avatar_content.html:15 -#: aleksis/core/templates/core/person/full.html:213 -#: aleksis/core/templates/core/person/full.html:214 msgid "Avatar" msgstr "Avatar" -#: aleksis/core/templates/core/partials/avatar_content.html:19 -#: aleksis/core/templates/core/partials/avatar_content.html:20 #: aleksis/core/templates/core/partials/avatar_content.html:18 +#: aleksis/core/templates/core/partials/avatar_content.html:19 msgid "Identicon" msgstr "Identicon" @@ -2548,45 +2089,15 @@ msgstr "Verändert von" msgid "Unknown" msgstr "Unbekannt" -#: aleksis/core/templates/core/partials/language_form.html:15 -#: aleksis/core/templates/core/partials/language_form.html:17 -msgid "Language" -msgstr "Sprache" - -#: aleksis/core/templates/core/partials/language_form.html:27 -#: aleksis/core/templates/core/partials/language_form.html:29 -msgid "Select language" -msgstr "Sprache auswählen" - -#: aleksis/core/templates/core/partials/no_person.html:12 -msgid "" -"\n" -" Your administrator account is not linked to any person. " -"Therefore,\n" -" a dummy person has been linked to your account.\n" -" " -msgstr "" -"\n" -" Ihr Administratorenkonto ist mit keiner Person verknüpft. " -"Deshalb\n" -" wurde Ihr Konto mit einer Dummyperson verknüpft.\n" -" " - -#: aleksis/core/templates/core/partials/no_person.html:19 +#: aleksis/core/templates/core/partials/splash_screen.html:11 msgid "" "\n" -" Your user account is not linked to a person. This means you\n" -" cannot access any school-related information. Please contact\n" -" the managers of AlekSIS at your school.\n" -" " +" This webbrowser doesn't support JavaScript, or its execution is blocked. Please use another browser to continue.\n" +" " msgstr "" "\n" -" Ihr Benutzerkonto ist nicht mit einer Person verknüpft. Das " -"bedeutet, dass Sie\n" -" keine schulbezogenen Informationen aufrufen können. Bitte wenden Sie " -"sich an\n" -" die Verwaltenden von AlekSIS an Ihrer Schule.\n" -" " +" Dieser Webbrowser unterstützt kein JavaScript oder die Ausführung wurde blockiert. Bitte nutzen Sie einen anderen Browser, um fortzufahren.\n" +" " #: aleksis/core/templates/core/perms/assign.html:12 #: aleksis/core/templates/core/perms/assign.html:13 @@ -2601,6 +2112,11 @@ msgstr "Ausgewählte Berechtigung" msgid "Assign" msgstr "Zuweisen" +#: aleksis/core/templates/core/perms/list.html:13 +#: aleksis/core/templates/core/perms/list.html:14 +msgid "Manage permissions" +msgstr "Berechtigungen verwalten" + #: aleksis/core/templates/core/perms/list.html:21 msgid "Assign a new permission" msgstr "Eine neue Berechtigung zuweisen" @@ -2644,28 +2160,6 @@ msgstr "Person erstellen" msgid "Edit person" msgstr "Person editieren" -#: aleksis/core/templates/core/person/full.html:47 -#: aleksis/core/templates/core/person/full.html:107 -msgid "Impersonate" -msgstr "Verkleiden" - -#: aleksis/core/templates/core/person/full.html:54 -#: aleksis/core/templates/core/person/full.html:114 -msgid "Invite user" -msgstr "Benutzer einladen" - -#: aleksis/core/templates/core/person/full.html:121 -msgid "Contact details" -msgstr "Kontaktdetails" - -#: aleksis/core/templates/core/person/full.html:220 -msgid "This person didn't upload a personal photo." -msgstr "Diese Person hat kein persönliches Foto hochgeladen." - -#: aleksis/core/templates/core/person/full.html:228 -msgid "Children" -msgstr "Kinder" - #: aleksis/core/templates/core/person/list.html:21 msgid "Filter persons" msgstr "Personen filtern" @@ -2685,6 +2179,10 @@ msgstr "Schuljahr erstellen" msgid "Edit school term" msgstr "Schuljahr bearbeiten" +#: aleksis/core/templates/dynamic_preferences/form.html:5 +msgid "Preferences" +msgstr "Einstellungen" + #: aleksis/core/templates/dynamic_preferences/form.html:9 msgid "Site preferences" msgstr "Seiteneinstellungen ändern" @@ -2711,17 +2209,17 @@ msgid "The invite feature is disabled." msgstr "Die Einladungsfunktion ist deaktiviert." #: aleksis/core/templates/invitations/disabled.html:15 -msgid "" -"To enable it, switch on the corresponding checkbox in the authentication " -"section of the " -msgstr "" -"Um sie zu aktivieren, nutzen Sie die Checkbox im Abschnitt \"Authentifikation" -"\" der " +msgid "To enable it, switch on the corresponding checkbox in the authentication section of the " +msgstr "Um sie zu aktivieren, nutzen Sie die Checkbox im Abschnitt \"Authentifikation\" der " #: aleksis/core/templates/invitations/disabled.html:16 msgid "site preferences page" msgstr "Seiteneinstellungen" +#: aleksis/core/templates/invitations/enter.html:7 +msgid "Accept invitation" +msgstr "Einladung akzeptieren" + #: aleksis/core/templates/invitations/enter.html:21 msgid "Accept your invitation" msgstr "Ihre Einladung akzeptieren" @@ -2774,6 +2272,13 @@ msgstr "Die Einladung für %(email)s wurde akzeptiert." msgid "Register OAuth2 Application" msgstr "OAuth2-Anwendung registrieren" +#: aleksis/core/templates/oauth2_provider/application/create.html:14 +#: aleksis/core/templates/oauth2_provider/application/edit.html:14 +#: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:24 +#: aleksis/core/templates/two_factor/_wizard_actions.html:6 +msgid "Cancel" +msgstr "Abbrechen" + #: aleksis/core/templates/oauth2_provider/application/detail.html:5 msgid "OAuth2 Application" msgstr "OAuth2-Anwendung" @@ -2807,6 +2312,11 @@ msgstr "Authentifizierung überspringen" msgid "Edit OAuth2 Application" msgstr "OAuth2-Anwendung bearbeiten" +#: aleksis/core/templates/oauth2_provider/application/list.html:5 +#: aleksis/core/templates/oauth2_provider/application/list.html:6 +msgid "OAuth2 Applications" +msgstr "OAuth2-Anwendungen" + #: aleksis/core/templates/oauth2_provider/application/list.html:11 msgid "Register new application" msgstr "Neue Anwendung registrieren" @@ -2838,15 +2348,6 @@ msgstr "Erlauben" msgid "Disallow" msgstr "Verbieten" -#: aleksis/core/templates/oauth2_provider/authorized-oob.html:12 -msgid "Success!" -msgstr "Erfolg!" - -#: aleksis/core/templates/oauth2_provider/authorized-oob.html:14 -msgid "Please return to your application and enter this code:" -msgstr "" -"Bitte gehen Sie zurück in Ihre Anwendung und geben Sie diesen Code ein:" - #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:5 #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:6 #: aleksis/core/templates/oauth2_provider/authorized-tokens.html:23 @@ -2855,14 +2356,17 @@ msgstr "Zugriff zurückziehen" #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:12 msgid "Are you sure to revoke the access for this application?" -msgstr "" -"Sind Sie sicher, dass Sie den Zugriff für diese Anwendung zurückziehen " -"möchten?" +msgstr "Sind Sie sicher, dass Sie den Zugriff für diese Anwendung zurückziehen möchten?" #: aleksis/core/templates/oauth2_provider/authorized-token-delete.html:20 msgid "Revoke" msgstr "Zurückziehen" +#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:5 +#: aleksis/core/templates/oauth2_provider/authorized-tokens.html:6 +msgid "Authorized applications" +msgstr "Autorisierte Anwendungen" + #: aleksis/core/templates/oauth2_provider/authorized-tokens.html:33 msgid "No authorized applications." msgstr "Keine autorisierten Anwendungen." @@ -2872,25 +2376,20 @@ msgid "Network error" msgstr "Netzwerkfehler" #: aleksis/core/templates/offline.html:10 -msgid "No internet connection." -msgstr "Keine Internetverbindung." +msgid "Page not available offline." +msgstr "Seite nicht offline verfügbar." #: aleksis/core/templates/offline.html:14 msgid "" "\n" -" There was an error accessing this page. You probably don't have an " -"internet connection. Check to see if your WiFi\n" -" or mobile data is turned on and try again. If you think you are " -"connected, please contact the system\n" +" This page is not available offline. Since you probably don't have an internet connection, check to see if your WiFi\n" +" or mobile data is turned on and try again. If you think you are connected, please contact the system\n" " administrators:\n" " " msgstr "" "\n" -" Es ist ein Fehler beim Aufrufen der Seite aufgetreten. Eventuell haben " -"Sie keine Internetverbindung. Bitte prüfen Sie, ob WLAN oder mobile Daten " -"aktiv sind, \n" -" und probieren Sie es erneut. Wenn Sie der Meinung sind, dass Sie mit " -"dem Internet verbunden sind, kontaktieren Sie bitte einen Ihrer \n" +" Diese Seite ist offline nicht verfügbar. Da Sie vermutliche keine Internetverbindung haben, prüfen Sie, ob Ihr WLAN oder mobile Daten angeschaltet sind, \n" +" und probieren Sie es erneut. Wenn Sie der Meinung sind, dass Sie verbunden sind, kontaktieren Sie bitte die \n" " Systemadministratoren:\n" " " @@ -2926,14 +2425,12 @@ msgstr "Anmeldung über Drittanbieter-Konto fehlgeschlagen." #: aleksis/core/templates/socialaccount/authentication_error.html:15 msgid "" "\n" -" An error occurred while attempting to login via your third-party " -"account.\n" +" An error occurred while attempting to login via your third-party account.\n" " Please contact one of your site administrators.\n" " " msgstr "" "\n" -" Beim dem Versuch, die Anmeldung über Ihr Drittanbieter-Konto " -"durchzuführen, ist ein Fehler aufgetreten.\n" +" Beim dem Versuch, die Anmeldung über Ihr Drittanbieter-Konto durchzuführen, ist ein Fehler aufgetreten.\n" " Kontaktieren Sie bitte einen Ihrer Systemadministratoren:\n" " " @@ -2948,8 +2445,7 @@ msgstr "Löschen" #: aleksis/core/templates/socialaccount/connections.html:34 msgid "You currently have no third-party accounts connected to this account." -msgstr "" -"Sie haben aktuell keine Drittanbieter-Konten mit Ihrem Konto verbunden." +msgstr "Sie haben aktuell keine Drittanbieter-Konten mit Ihrem Konto verbunden." #: aleksis/core/templates/socialaccount/connections.html:37 msgid "Add a Third-party Account" @@ -2958,15 +2454,12 @@ msgstr "Ein Drittanbieter-Konto hinzufügen" #: aleksis/core/templates/socialaccount/login.html:12 #, python-format msgid "You are about to connect a new third party account from %(provider)s." -msgstr "" -"Sie sind dabei, ein neues Drittanbieterkonto von %(provider)s zu verbinden." +msgstr "Sie sind dabei, ein neues Drittanbieterkonto von %(provider)s zu verbinden." #: aleksis/core/templates/socialaccount/login.html:23 #, python-format msgid "You are about to sign in using a third party account from %(provider)s." -msgstr "" -"Sie sind dabei, sich mit einem Drittanbieterkonto von %(provider)s " -"anzumelden." +msgstr "Sie sind dabei, sich mit einem Drittanbieterkonto von %(provider)s anzumelden." #: aleksis/core/templates/socialaccount/login.html:28 msgid "Continue" @@ -2982,15 +2475,11 @@ msgstr "Login abgebrochen" #, python-format msgid "" "\n" -" You decided to cancel logging in to our site using one of your " -"existing accounts. If this was a mistake, please proceed to <a href=" -"\"%(login_url)s\">sign in</a>.\n" +" You decided to cancel logging in to our site using one of your existing accounts. If this was a mistake, please proceed to <a href=\"%(login_url)s\">sign in</a>.\n" " " msgstr "" "\n" -" Sie haben sich entschieden, die Anmeldung mit einem Ihrer " -"bestehenden Konten bei uns abzubrechen. Wenn dies ein Fehler war, <a href=" -"\"%(login_url)s\">fahren Sie bitte mit dem Login fort</a>.\n" +" Sie haben sich entschieden, die Anmeldung mit einem Ihrer bestehenden Konten bei uns abzubrechen. Wenn dies ein Fehler war, <a href=\"%(login_url)s\">fahren Sie bitte mit dem Login fort</a>.\n" " " #: aleksis/core/templates/socialaccount/signup.html:12 @@ -2999,8 +2488,7 @@ msgid "" "You are about to use your %(provider_name)s account to login to\n" " %(site_name)s. As a final step, please complete the following form:" msgstr "" -"Sie sind dabei, Ihr %(provider_name)s-Konto zur Anmeldung bei %(site_name)s " -"zu nutzen. \n" +"Sie sind dabei, Ihr %(provider_name)s-Konto zur Anmeldung bei %(site_name)s zu nutzen. \n" "Als ein letzter Schritt vervollständigen Sie bitte das folgende Formular:" #: aleksis/core/templates/socialaccount/snippets/provider_list.html:12 @@ -3048,8 +2536,7 @@ msgstr "Celery-Task %(task_name)s fehlgeschlagen!" #: aleksis/core/templates/templated_email/celery_failure.email:7 #, python-format msgid "the celery task %(task_name)s failed with following information:" -msgstr "" -"der Celery-Task %(task_name)s ist mit folgenden Informationen fehlgeschlagen:" +msgstr "der Celery-Task %(task_name)s ist mit folgenden Informationen fehlgeschlagen:" #: aleksis/core/templates/templated_email/celery_failure.email:10 #: aleksis/core/templates/templated_email/celery_failure.email:29 @@ -3079,8 +2566,7 @@ msgid "" " " msgstr "" "\n" -" der Celery-Task %(task_name)s ist mit folgenden Informationen " -"fehlgeschlagen:\n" +" der Celery-Task %(task_name)s ist mit folgenden Informationen fehlgeschlagen:\n" " " #: aleksis/core/templates/templated_email/data_checks.email:3 @@ -3090,25 +2576,21 @@ msgstr "Das System hat einige neue Probleme mit Ihren Daten entdeckt." #: aleksis/core/templates/templated_email/data_checks.email:6 msgid "" "the system detected some new problems with your data.\n" -"Please take some time to inspect them and solve the issues or mark them as " -"ignored." +"Please take some time to inspect them and solve the issues or mark them as ignored." msgstr "" "das System hat einige neue Probleme mit Ihren Daten entdeckt.\n" -"Bitte nehmen Sie sich etwas Zeit, diese zu überprüfen und sie zu lösen oder " -"als ignoriert zu markieren." +"Bitte nehmen Sie sich etwas Zeit, diese zu überprüfen und sie zu lösen oder als ignoriert zu markieren." #: aleksis/core/templates/templated_email/data_checks.email:15 msgid "" "\n" " the system detected some new problems with your data.\n" -" Please take some time to inspect them and solve the issues or mark them " -"as ignored.\n" +" Please take some time to inspect them and solve the issues or mark them as ignored.\n" " " msgstr "" "\n" " das System hat einige neue Probleme mit Ihren Daten entdeckt.\n" -"Bitte nehmen Sie sich etwas Zeit, diese zu überprüfen und sie zu lösen oder " -"als ignoriert zu markieren.\n" +"Bitte nehmen Sie sich etwas Zeit, diese zu überprüfen und sie zu lösen oder als ignoriert zu markieren.\n" " " #: aleksis/core/templates/templated_email/data_checks.email:23 @@ -3194,21 +2676,16 @@ msgid "" "\n" " Backup tokens can be used when your primary and backup\n" " phone numbers aren't available. The backup tokens below can be used\n" -" for login verification. If you've used up all your backup tokens, " -"you\n" -" can generate a new set of backup tokens. Only the backup tokens " -"shown\n" +" for login verification. If you've used up all your backup tokens, you\n" +" can generate a new set of backup tokens. Only the backup tokens shown\n" " below will be valid.\n" " " msgstr "" "\n" " Backup-Token können genutzt werden, wenn Ihre primären und Backup-\n" -" Telefonnummern nicht verfügbar sind. Die Backup-Tokens unten können " -"für\n" -" die Anmeldungsverifizierung genutzt werden. Wenn Sie alle Backup-" -"Tokens genutzt haben,\n" -" müssen Sie neue generieren. Nur gültige Backup-Tokens werden " -"angezeigt.\n" +" Telefonnummern nicht verfügbar sind. Die Backup-Tokens unten können für\n" +" die Anmeldungsverifizierung genutzt werden. Wenn Sie alle Backup-Tokens genutzt haben,\n" +" müssen Sie neue generieren. Nur gültige Backup-Tokens werden angezeigt.\n" " " #: aleksis/core/templates/two_factor/core/backup_tokens.html:33 @@ -3233,6 +2710,12 @@ msgstr "Zurück zur Kontosicherheit" msgid "Generate Tokens" msgstr "Tokens generieren" +#: aleksis/core/templates/two_factor/core/login.html:6 +#: aleksis/core/templates/two_factor/core/login.html:32 +#: aleksis/core/templates/two_factor/core/login.html:95 +msgid "Login" +msgstr "Anmelden" + #: aleksis/core/templates/two_factor/core/login.html:27 #, python-format msgid "Login for %(name)s" @@ -3252,9 +2735,7 @@ msgstr "" #: aleksis/core/templates/two_factor/core/login.html:47 msgid "Please login with your account to use the external application." -msgstr "" -"Bitte melden Sie sich mit Ihrem Konto an, um die externe Anwendung zu " -"benutzen." +msgstr "Bitte melden Sie sich mit Ihrem Konto an, um die externe Anwendung zu benutzen." #: aleksis/core/templates/two_factor/core/login.html:54 msgid "Please login to see this page." @@ -3263,8 +2744,7 @@ msgstr "Bitte melden Sie sich an, um diese Seite zu sehen." #: aleksis/core/templates/two_factor/core/login.html:65 msgid "" "\n" -" We are calling your phone right now, please enter " -"the\n" +" We are calling your phone right now, please enter the\n" " digits you hear.\n" " " msgstr "" @@ -3276,8 +2756,7 @@ msgstr "" #: aleksis/core/templates/two_factor/core/login.html:70 msgid "" "\n" -" We sent you a text message, please enter the tokens " -"we\n" +" We sent you a text message, please enter the tokens we\n" " sent.\n" " " msgstr "" @@ -3301,19 +2780,14 @@ msgstr "" #: aleksis/core/templates/two_factor/core/login.html:81 msgid "" "\n" -" Use this form for entering backup tokens for logging " -"in.\n" -" These tokens have been generated for you to print and " -"keep safe. Please\n" -" enter one of these backup tokens to login to your " -"account.\n" +" Use this form for entering backup tokens for logging in.\n" +" These tokens have been generated for you to print and keep safe. Please\n" +" enter one of these backup tokens to login to your account.\n" " " msgstr "" "\n" -" Nutzen Sie dieses Formular um Ihre Backup-Tokens zum " -"Anmelden einzugeben.\n" -" Diese Tokens wurden für Sie generiert, um diese gut " -"aufzubewahren. Bitte\n" +" Nutzen Sie dieses Formular um Ihre Backup-Tokens zum Anmelden einzugeben.\n" +" Diese Tokens wurden für Sie generiert, um diese gut aufzubewahren. Bitte\n" " geben Sie einen dieser Tokens ein, um sich einzuloggen.\n" " " @@ -3344,13 +2818,11 @@ msgstr "Zugriff verwehrt" #: aleksis/core/templates/two_factor/core/otp_required.html:10 msgid "" "The page you requested, enforces users to verify using\n" -" two-factor authentication for security reasons. You need to enable " -"these\n" +" two-factor authentication for security reasons. You need to enable these\n" " security features in order to access this page." msgstr "" "Die von Ihnen gewünschte Seite erfordert aus Sicherheitsgründen\n" -" eine Verifizierung durch Zwei-Faktor-Authentifizierung. Sie müssen " -"diese\n" +" eine Verifizierung durch Zwei-Faktor-Authentifizierung. Sie müssen diese\n" " Sicherheitsfunktion aktivieren, um diese Seite aufzurufen." #: aleksis/core/templates/two_factor/core/otp_required.html:14 @@ -3363,6 +2835,10 @@ msgstr "" " Aktivieren Sie Zwei-Faktor-Authentifizierung für eine verbesserte\n" " Accountsicherheit." +#: aleksis/core/templates/two_factor/core/otp_required.html:19 +msgid "Go back" +msgstr "Zurück" + #: aleksis/core/templates/two_factor/core/phone_register.html:5 #: aleksis/core/templates/two_factor/core/phone_register.html:9 msgid "Add Backup Phone" @@ -3396,8 +2872,7 @@ msgid "" msgstr "" "\n" " Sie sind dabei, Ihre Account-Sicherheit auf das\n" -" nächste Level zu erhöhen. Bitte folgen Sie den Schritten im " -"Assistenten, um die\n" +" nächste Level zu erhöhen. Bitte folgen Sie den Schritten im Assistenten, um die\n" " Zwei-Faktor-Authentifizierung zu aktivieren.\n" " " @@ -3408,16 +2883,14 @@ msgid "" " " msgstr "" "\n" -" Bitte wählen Sie aus, welche Authentifikationsmethode Sie nutzen " -"wollen:\n" +" Bitte wählen Sie aus, welche Authentifikationsmethode Sie nutzen wollen:\n" " " #: aleksis/core/templates/two_factor/core/setup.html:23 msgid "" "\n" " To start using a token generator, please use your\n" -" favourite two factor authentication (TOTP) app to scan the QR code " -"below.\n" +" favourite two factor authentication (TOTP) app to scan the QR code below.\n" " Then, enter the token generated by the app.\n" " " msgstr "" @@ -3436,8 +2909,7 @@ msgid "" msgstr "" "\n" " Bitte geben Sie die Telefonnummer des Gerätes an,\n" -" an die die SMS-Nachrichten geschickt werden sollen. Diese Nummer " -"wird im nächsten Schritt überprüft.\n" +" an die die SMS-Nachrichten geschickt werden sollen. Diese Nummer wird im nächsten Schritt überprüft.\n" " " #: aleksis/core/templates/two_factor/core/setup.html:41 @@ -3455,13 +2927,11 @@ msgstr "" #: aleksis/core/templates/two_factor/core/setup.html:50 msgid "" "\n" -" We are calling your phone right now, please enter the digits you " -"hear.\n" +" We are calling your phone right now, please enter the digits you hear.\n" " " msgstr "" "\n" -" Wir rufen Ihr Telefon jetzt an, bitte geben Sie die Zahlen ein, " -"die Sie hören.\n" +" Wir rufen Ihr Telefon jetzt an, bitte geben Sie die Zahlen ein, die Sie hören.\n" " " #: aleksis/core/templates/two_factor/core/setup.html:56 @@ -3471,30 +2941,23 @@ msgid "" " " msgstr "" "\n" -" Wir haben Ihnen eine SMS geschickt, bitte geben Sie die Tokens " -"ein, die wir geschickt haben.\n" +" Wir haben Ihnen eine SMS geschickt, bitte geben Sie die Tokens ein, die wir geschickt haben.\n" " " #: aleksis/core/templates/two_factor/core/setup.html:63 msgid "" "\n" -" We've encountered an issue with the selected authentication " -"method. Please\n" -" go back and verify that you entered your information correctly, " -"try\n" -" again, or use a different authentication method instead. If the " -"issue\n" +" We've encountered an issue with the selected authentication method. Please\n" +" go back and verify that you entered your information correctly, try\n" +" again, or use a different authentication method instead. If the issue\n" " persists, contact the site administrator.\n" " " msgstr "" "\n" -" Mit der ausgewählten Authentifizierungsmethode ist ein Fehler " -"aufgetreten. \n" -"Bitte gehen Sie zurück und überprüfen, dass Sie die Informationen korrekt " -"eingegeben haben, versuchen Sie es erneut,\n" +" Mit der ausgewählten Authentifizierungsmethode ist ein Fehler aufgetreten. \n" +"Bitte gehen Sie zurück und überprüfen, dass Sie die Informationen korrekt eingegeben haben, versuchen Sie es erneut,\n" "oder benutzen Sie stattdessen eine andere Authentifizierungsmethode. \n" -"Wenn der Fehler bestehen bleibt, kontaktieren Sie bitte einen der " -"Administratoren.\n" +"Wenn der Fehler bestehen bleibt, kontaktieren Sie bitte einen der Administratoren.\n" " " #: aleksis/core/templates/two_factor/core/setup.html:73 @@ -3519,13 +2982,11 @@ msgstr "Zwei-Faktor-Authentifizierung erfolgreich aktiviert" #: aleksis/core/templates/two_factor/core/setup_complete.html:14 msgid "" "\n" -" Congratulations, you've successfully enabled two-factor " -"authentication.\n" +" Congratulations, you've successfully enabled two-factor authentication.\n" " " msgstr "" "\n" -" Gratulation, Sie haben die Zwei-Faktor-Authentifizierung erfolgreich " -"aktiviert.\n" +" Gratulation, Sie haben die Zwei-Faktor-Authentifizierung erfolgreich aktiviert.\n" " " #: aleksis/core/templates/two_factor/core/setup_complete.html:24 @@ -3542,14 +3003,12 @@ msgstr "Backup-Codes generieren" msgid "" "\n" " However, it might happen that you don't have access to\n" -" your primary token device. To enable account recovery, generate " -"backup codes\n" +" your primary token device. To enable account recovery, generate backup codes\n" " or add a phone number.\n" " " msgstr "" "\n" -" Es kann passieren, dass Sie keinen Zugriff auf Ihren " -"Tokengenerator haben. \n" +" Es kann passieren, dass Sie keinen Zugriff auf Ihren Tokengenerator haben. \n" "Um die Wiederherstellung zu aktivieren,\n" "generieren Sie Backupcodes oder fügen eine Telefonnummer hinzu.\n" " " @@ -3567,12 +3026,8 @@ msgid "Disable Two-Factor Authentication" msgstr "Zwei-Faktor-Authentifizierung deaktiveren" #: aleksis/core/templates/two_factor/profile/disable.html:12 -msgid "" -"You are about to disable two-factor authentication. This weakens your " -"account security, are you sure?" -msgstr "" -"Sie sind dabei, Zwei-Faktor-Authentifizierung zu deaktivieren. Das " -"verschlechtert Ihre Kontosicherheit. Sind Sie sicher?" +msgid "You are about to disable two-factor authentication. This weakens your account security, are you sure?" +msgstr "Sie sind dabei, Zwei-Faktor-Authentifizierung zu deaktivieren. Das verschlechtert Ihre Kontosicherheit. Sind Sie sicher?" #: aleksis/core/templates/two_factor/profile/disable.html:26 msgid "Disable" @@ -3652,8 +3107,7 @@ msgid "" msgstr "" "\n" " Wir raten Ihnen jedoch dringend davon ab.\n" -" Sie können jedoch auch die Zwei-Faktor-Authentifizierung für Ihr " -"Konto deaktivieren.\n" +" Sie können jedoch auch die Zwei-Faktor-Authentifizierung für Ihr Konto deaktivieren.\n" " " #: aleksis/core/templates/two_factor/profile/profile.html:78 @@ -3665,8 +3119,7 @@ msgid "" " " msgstr "" "\n" -" Die Zwei-Faktor-Authentifizierung ist nicht für Ihren Account " -"aktiviert.\n" +" Die Zwei-Faktor-Authentifizierung ist nicht für Ihren Account aktiviert.\n" " Aktivieren Sie Zwei-Faktor-Authentifizierung für eine verbesserte\n" " Accountsicherheit.\n" " " @@ -3679,419 +3132,482 @@ msgstr "E-Mail" msgid "SMS" msgstr "SMS" -#: aleksis/core/util/pdf.py:118 aleksis/core/util/pdf.py:151 +#: aleksis/core/util/pdf.py:151 msgid "Progress: Generate PDF file" msgstr "Fortschritt: PDF-Datei generieren" -#: aleksis/core/util/pdf.py:119 aleksis/core/util/pdf.py:152 +#: aleksis/core/util/pdf.py:152 msgid "Generating PDF file …" msgstr "PDF-Datei wird generiert …" -#: aleksis/core/util/pdf.py:120 aleksis/core/util/pdf.py:153 +#: aleksis/core/util/pdf.py:153 msgid "The PDF file has been generated successfully." msgstr "Die PDF-Datei wurde erfolgreich generiert." -#: aleksis/core/util/pdf.py:121 aleksis/core/util/pdf.py:154 +#: aleksis/core/util/pdf.py:154 msgid "There was a problem while generating the PDF file." msgstr "Es ist ein Fehler beim Generieren der PDF-Datei aufgetreten." -#: aleksis/core/util/pdf.py:124 aleksis/core/util/pdf.py:157 +#: aleksis/core/util/pdf.py:157 msgid "Download PDF" msgstr "PDF herunterladen" -#: aleksis/core/views.py:292 aleksis/core/views.py:294 #: aleksis/core/views.py:278 msgid "The school term has been created." msgstr "Das Schuljahr wurde erstellt." -#: aleksis/core/views.py:304 aleksis/core/views.py:306 #: aleksis/core/views.py:290 msgid "The school term has been saved." msgstr "Das Schuljahr wurde gespeichert." -#: aleksis/core/views.py:424 aleksis/core/views.py:426 #: aleksis/core/views.py:394 msgid "The child groups were successfully saved." msgstr "Die Untergruppen wurden gespeichert." -#: aleksis/core/views.py:443 aleksis/core/views.py:453 -#: aleksis/core/views.py:445 aleksis/core/views.py:455 #: aleksis/core/views.py:413 aleksis/core/views.py:423 msgid "The person has been saved." msgstr "Die Person wurde gespeichert." -#: aleksis/core/views.py:503 aleksis/core/views.py:505 #: aleksis/core/views.py:473 msgid "The group has been saved." msgstr "Die Gruppe wurde gespeichert." -#: aleksis/core/views.py:600 aleksis/core/views.py:602 #: aleksis/core/views.py:556 msgid "The announcement has been saved." msgstr "Die Ankündigung wurde gespeichert." -#: aleksis/core/views.py:616 aleksis/core/views.py:618 #: aleksis/core/views.py:572 msgid "The announcement has been deleted." msgstr "Ankündigung wurde gelöscht." -#: aleksis/core/views.py:684 aleksis/core/views.py:686 #: aleksis/core/views.py:641 msgid "The requested preference registry does not exist" msgstr "Das angeforderte Einstellungsregister existiert nicht" -#: aleksis/core/views.py:703 aleksis/core/views.py:705 #: aleksis/core/views.py:660 msgid "The preferences have been saved successfully." msgstr "Die Einstellungen wurde gespeichert." -#: aleksis/core/views.py:727 aleksis/core/views.py:729 #: aleksis/core/views.py:684 msgid "The person has been deleted." msgstr "Die Person wurde gelöscht." -#: aleksis/core/views.py:741 aleksis/core/views.py:743 #: aleksis/core/views.py:698 msgid "The group has been deleted." msgstr "Die Gruppe wurde gelöscht." -#: aleksis/core/views.py:773 -msgid "The additional_field has been saved." +#: aleksis/core/views.py:730 +msgid "The additional field has been saved." msgstr "Das zusätzliche Feld wurde gespeichert." -#: aleksis/core/views.py:807 aleksis/core/views.py:809 #: aleksis/core/views.py:765 msgid "The additional field has been deleted." msgstr "Das zusätzliche Feld wurde gelöscht." -#: aleksis/core/views.py:832 aleksis/core/views.py:834 #: aleksis/core/views.py:790 msgid "The group type has been saved." msgstr "Der Gruppentyp wurde gespeichert." -#: aleksis/core/views.py:862 aleksis/core/views.py:864 #: aleksis/core/views.py:821 msgid "The group type has been deleted." msgstr "Der Gruppentyp wurde gelöscht." -#: aleksis/core/views.py:895 aleksis/core/views.py:897 #: aleksis/core/views.py:856 msgid "Progress: Run data checks" msgstr "Fortschritt: Datenprüfungen ausführen" -#: aleksis/core/views.py:896 aleksis/core/views.py:898 #: aleksis/core/views.py:857 msgid "Run data checks …" msgstr "Datenprüfungen laufen …" -#: aleksis/core/views.py:897 aleksis/core/views.py:899 #: aleksis/core/views.py:858 msgid "The data checks were run successfully." msgstr "Die Datenprüfungen wurden erfolgreich ausgeführt." -#: aleksis/core/views.py:898 aleksis/core/views.py:900 #: aleksis/core/views.py:859 msgid "There was a problem while running data checks." msgstr "Es gab ein Problem beim Ausführen der Datenprüfungen." -#: aleksis/core/views.py:914 aleksis/core/views.py:916 #: aleksis/core/views.py:876 #, python-brace-format msgid "The solve option '{solve_option_obj.verbose_name}' " msgstr "Die Lösungsoption \"{solve_option_obj.verbose_name}\" " -#: aleksis/core/views.py:924 aleksis/core/views.py:926 #: aleksis/core/views.py:886 msgid "The requested solve option does not exist" msgstr "Die angeforderte Lösungsoption existiert nicht" -#: aleksis/core/views.py:956 aleksis/core/views.py:958 #: aleksis/core/views.py:919 msgid "The dashboard widget has been saved." msgstr "Das Dashboard-Widget wurde gespeichert." -#: aleksis/core/views.py:986 aleksis/core/views.py:988 #: aleksis/core/views.py:949 msgid "The dashboard widget has been created." msgstr "Das Dashboard-Widget wurde erstellt." -#: aleksis/core/views.py:996 aleksis/core/views.py:998 #: aleksis/core/views.py:959 msgid "The dashboard widget has been deleted." msgstr "Das Dashboard-Widget wurde gelöscht." -#: aleksis/core/views.py:1067 aleksis/core/views.py:1069 -#: aleksis/core/views.py:1030 +#: aleksis/core/views.py:1031 msgid "Your dashboard configuration has been saved successfully." msgstr "Ihre Dashboardkonfiguration wurde erfolgreich gespeichert." -#: aleksis/core/views.py:1069 aleksis/core/views.py:1071 -#: aleksis/core/views.py:1032 +#: aleksis/core/views.py:1033 msgid "The configuration of the default dashboard has been saved successfully." -msgstr "" -"Die Konfiguration des Standard-Dashboardes wurde erfolgreich gespeichert." +msgstr "Die Konfiguration des Standard-Dashboardes wurde erfolgreich gespeichert." -#: aleksis/core/views.py:1145 aleksis/core/views.py:1147 -#: aleksis/core/views.py:1103 +#: aleksis/core/views.py:1104 #, python-brace-format msgid "The invitation was successfully created. The invitation code is {code}" -msgstr "" -"Die Einladung wurde erfolgreich erstellt. Der Einladungscode ist {code}" +msgstr "Die Einladung wurde erfolgreich erstellt. Der Einladungscode ist {code}" -#: aleksis/core/views.py:1236 aleksis/core/views.py:1238 -#: aleksis/core/views.py:1200 +#: aleksis/core/views.py:1201 msgid "We have successfully assigned the permissions." msgstr "Wir haben die Berechtigungen erfolgreich zugewiesen." -#: aleksis/core/views.py:1246 aleksis/core/views.py:1248 -#: aleksis/core/views.py:1210 +#: aleksis/core/views.py:1211 msgid "The global user permission has been deleted." msgstr "Die globale Benutzerberechtigung wurde gelöscht." -#: aleksis/core/views.py:1256 aleksis/core/views.py:1258 -#: aleksis/core/views.py:1220 +#: aleksis/core/views.py:1221 msgid "The global group permission has been deleted." msgstr "Die globale Gruppenberechtigung wurde gelöscht." -#: aleksis/core/views.py:1266 aleksis/core/views.py:1268 -#: aleksis/core/views.py:1230 +#: aleksis/core/views.py:1231 msgid "The object user permission has been deleted." msgstr "Die Objekt-Benutzerberechtigung wurde gelöscht." -#: aleksis/core/views.py:1276 aleksis/core/views.py:1278 -#: aleksis/core/views.py:1240 +#: aleksis/core/views.py:1241 msgid "The object group permission has been deleted." msgstr "Die Objekt-Gruppenberechtigung wurde gelöscht." -#: aleksis/core/views.py:1344 aleksis/core/views.py:1346 -msgid "The requested PDF file does not exist" -msgstr "Die angeforderte PDF-Datei existiert nicht" - -#: aleksis/core/views.py:1353 aleksis/core/views.py:1357 -#: aleksis/core/views.py:1355 aleksis/core/views.py:1359 -msgid "The requested task does not exist or is not accessible" -msgstr "Der angeforderte Task existiert nicht oder ist nicht abrufbar" - -#: aleksis/core/views.py:1409 aleksis/core/views.py:1411 -#: aleksis/core/views.py:1349 -msgid "" -"The third-party account could not be disconnected because it is the only " -"login method available." -msgstr "" -"Das Drittanbieter-Konto konnte nicht deaktiviert werden, weil es die einzige " -"verfügbare Anmeldeoption ist." +#: aleksis/core/views.py:1350 +msgid "The third-party account could not be disconnected because it is the only login method available." +msgstr "Das Drittanbieter-Konto konnte nicht deaktiviert werden, weil es die einzige verfügbare Anmeldeoption ist." -#: aleksis/core/views.py:1416 aleksis/core/views.py:1418 -#: aleksis/core/views.py:1356 +#: aleksis/core/views.py:1357 msgid "The third-party account has been successfully disconnected." msgstr "Das Drittanbieter-Konto wurde erfolgreich getrennt." -#: aleksis/core/views.py:1487 aleksis/core/views.py:1489 -#: aleksis/core/views.py:1432 -msgid "" -"Person was invited successfully and an email with further instructions has " -"been send to them." -msgstr "" -"Die Person wurde erfolgreich eingeladen und eine E-Mail mit weiteren " -"Anweisungen wurde an sie verschickt." +#: aleksis/core/views.py:1433 +msgid "Person was invited successfully and an email with further instructions has been send to them." +msgstr "Die Person wurde erfolgreich eingeladen und eine E-Mail mit weiteren Anweisungen wurde an sie verschickt." -#: aleksis/core/views.py:1498 aleksis/core/views.py:1500 -#: aleksis/core/views.py:1443 +#: aleksis/core/views.py:1444 msgid "Person was already invited." msgstr "Person wurde bereits eingeladen." -#: aleksis/core/views.py:1598 -msgid "ICal feed updated successfully" -msgstr "Der iCal-Feed wurde erfolgreich aktualisiert" +#~ msgid "Birthday Calendar" +#~ msgstr "Geburtstagskalender" -#: aleksis/core/views.py:1608 -msgid "ICal feed deleted successfully" -msgstr "Der iCal-Feed wurde erfolgreich gelöscht" +#~ msgid "A Calendar of Birthdays" +#~ msgstr "Ein Kalender mit Geburtstagen" -#: aleksis/core/views.py:1616 -msgid "ICal feed created successfully" -msgstr "Der iCal-Feed wurde erfolgreich erstellt" - -#: aleksis/core/data_checks.py:330 aleksis/core/data_checks.py:320 #, python-format -msgid "Validate field %s of model %s." -msgstr "Feld %s von Model %s validieren." +#~ msgid "%(name)s's birthday" +#~ msgstr "%(name)ss Geburtstag" -#: aleksis/core/data_checks.py:332 aleksis/core/data_checks.py:322 #, python-format -msgid "The field %s couldn't be validated successfully." -msgstr "Das Feld %s konnte nicht erfolgreich validiert werden." +#~ msgid "%(name)s was born on %(birthday)s" +#~ msgstr "%(name)s wurde am %(birthday)s geboren" -#: aleksis/core/models.py:181 -msgid "other" -msgstr "andere" +#~ msgid "You must grant the permission to all objects and/or to some objects." +#~ msgstr "Sie müssen die Berechtigung auf alle Objekte und/oder für einige Objekte vergeben." -#: aleksis/core/settings.py:543 aleksis/core/settings.py:541 -msgid "Ukrainian" -msgstr "Ukrainisch" +#~ msgid "Dashboard" +#~ msgstr "Dashboard" -#: aleksis/core/templates/500.html:10 -msgid "" -"An unexpected error has\n" -" occurred." -msgstr "" -"Ein unerwarteter Fehler ist\n" -" aufgetreten." +#~ msgid "Admin" +#~ msgstr "Admin" + +#~ msgid "Data management" +#~ msgstr "Datenverwaltung" + +#~ msgid "Configuration" +#~ msgstr "Konfiguration" + +#~ msgid "Backend Admin" +#~ msgstr "Backend-Administration" + +#~ msgid "People" +#~ msgstr "Leute" + +#~ msgid "Groups and child groups" +#~ msgstr "Gruppen und Kindgruppen" + +#~ msgid "Invite person" +#~ msgstr "Person einladen" + +#~ msgid "Stop impersonation" +#~ msgstr "Verkleidung beenden" + +#~ msgid "Account" +#~ msgstr "Konto" + +#~ msgid "2FA" +#~ msgstr "2FA" + +#~ msgid "Third-party accounts" +#~ msgstr "Drittanbieter-Konten" + +#~ msgid "Calendar Feeds" +#~ msgstr "Kalender-Feeds" + +#~ msgid "Logout" +#~ msgstr "Abmelden" + +#~ msgid "UUID" +#~ msgstr "UUID" + +#~ msgid "Selected ICal feed" +#~ msgstr "Ausgewählter iCal-Feed" + +#~ msgid "Personal Calendar URL" +#~ msgstr "Persönliche Kalender-URL" + +#~ msgid "Personal Calendar URLs" +#~ msgstr "Persönliche Kalender-URLs" + +#~ msgid "Available languages" +#~ msgstr "Verfügbare Sprachen" + +#~ msgid "" +#~ "An unexpected error has\n" +#~ " occured." +#~ msgstr "" +#~ "Ein unerwarteter Fehler ist\n" +#~ " aufgetreten." + +#~ msgid "About AlekSIS® — The Free School Information System" +#~ msgstr "Über AlekSIS® — The Free School Information System" + +#~ msgid "Imprint" +#~ msgstr "Impressum" + +#~ msgid "Privacy Policy" +#~ msgstr "Datenschutzerklärung" + +#~ msgid "years to" +#~ msgstr "Jahre bis" + +#~ msgid "years " +#~ msgstr "Jahre " + +#~ msgid "Create iCal URL" +#~ msgstr "iCal-URL erstellen" -#: aleksis/core/templates/core/group/full.html:93 #, python-format -msgid "" -"\n" -" %(min)s years to %(max)s years\n" -" " -msgstr "" -"\n" -" %(min)s Jahre bis %(max)s Jahre\n" -" " +#~ msgid "Edit iCal URL %(object)s" +#~ msgstr "iCal-URL %(object)s bearbeiten" -#: aleksis/core/templates/core/ical/ical_list.html:4 -#: aleksis/core/templates/core/ical/ical_list.html:5 -msgid "iCal Feeds" -msgstr "iCal-Feeds" +#~ msgid "ICal Feeds" +#~ msgstr "iCal-Feeds" -#: aleksis/core/views.py:775 aleksis/core/views.py:730 -msgid "The additional field has been saved." -msgstr "Das zusätzliche Feld wurde gespeichert." +#~ msgid "These are URLs for different Calendar Feeds in the iCal (.ics) format. You can create as many as you want and import them in your calendar software." +#~ msgstr "Dies sind URLs für verschiedene Kalender-Feeds im iCal-Format (.ics). Sie können so viele erstellen, wie sie wollen, und in Ihre Kalender-Software importieren." -#: aleksis/core/views.py:1600 -msgid "iCal feed updated successfully" -msgstr "Der iCal-Feed wurde erfolgreich aktualisiert" +#~ msgid "Your iCal URLs" +#~ msgstr "Deine iCal-URLs" -#: aleksis/core/views.py:1610 -msgid "iCal feed deleted successfully" -msgstr "Der iCal-Feed wurde erfolgreich gelöscht" +#~ msgid "Recent notifications" +#~ msgstr "Letzte Benachrichtigungen" -#: aleksis/core/views.py:1618 -msgid "iCal feed created successfully" -msgstr "Der iCal-Feed wurde erfolgreich erstellt" +#~ msgid "More information →" +#~ msgstr "Mehr Informationen →" -#: aleksis/core/templates/core/pages/system_status.html:24 -msgid "" -"\n" -" Only admin and visitors from internal IPs can access the " -"site.\n" -" " -msgstr "" -"\n" -" Nur Administratoren und Besucher von internen IP-Adressen " -"können die Seite aufrufen.\n" -" " +#~ msgid "No notifications available yet." +#~ msgstr "Aktuell keine Benachrichtigungen verfügbar." -#: aleksis/core/forms.py:499 -msgid "You must grant the permission to all objects or to specific objects." -msgstr "Sie müssen die Berechtigung auf alle Objekte oder für spezifische Objekte vergeben." +#~ msgid "About AlekSIS®" +#~ msgstr "Über AlekSIS®" -#: aleksis/core/models.py:1263 -msgid "Back URL" -msgstr "Zurück-URL" +#~ msgid "AlekSIS® – The Free School Information System" +#~ msgstr "AlekSIS® – The Free School Information System" -#: aleksis/core/models.py:1264 -msgid "Progress title" -msgstr "Fortschritt-Titel" +#~ msgid "About AlekSIS" +#~ msgstr "Über AlekSIS" -#: aleksis/core/models.py:1265 -msgid "Error message" -msgstr "Fehlernachricht" +#~ msgid "" +#~ "\n" +#~ " This platform is powered by AlekSIS®, a web-based school information system (SIS) which can be used\n" +#~ " to manage and/or publish organisational artifacts of educational institutions. AlekSIS is free software and\n" +#~ " can be used by anyone.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " Diese Plattform wird mit AlekSIS®, einem webbasierten Schulinformationssystem (SIS), \n" +#~ "welches für die Verwaltung und/oder Veröffentlichung von Bildungseinrichtungen verwendet werden kann.\n" +#~ "AlekSIS ist freie Software und kann von jedem benutzt werden.\n" +#~ " " -#: aleksis/core/models.py:1266 -msgid "Success message" -msgstr "Erfolgsnachricht" +#~ msgid "" +#~ "\n" +#~ " AlekSIS® is a registered trademark of the AlekSIS open source project, represented by Teckids e.V.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " AlekSIS® ist eine eingetragene Wortmarke des Open-Source-Projektes AlekSIS, vertreten durch den Teckids e.V.\n" +#~ " " -#: aleksis/core/models.py:1267 -msgid "Redirect on success URL" -msgstr "URL, auf die bei Erfolg weitergeleitet wird" +#~ msgid "Website of AlekSIS" +#~ msgstr "Website von AlekSIS" -#: aleksis/core/models.py:1269 -msgid "Additional button title" -msgstr "Titel des zusätzlichen Buttons" +#~ msgid "Source code" +#~ msgstr "Quellcode" -#: aleksis/core/models.py:1271 -msgid "Additional button URL" -msgstr "URL des zusätzlichen Buttons" +#~ msgid "Licence information" +#~ msgstr "Lizenzinformationen" -#: aleksis/core/models.py:1273 -msgid "Additional button icon" -msgstr "Symbol des zusätzlichen Buttons" +#~ msgid "" +#~ "\n" +#~ " The core and the official apps of AlekSIS are licenced under the EUPL, version 1.2 or later. For licence\n" +#~ " information from third-party apps, if installed, refer to the respective components below. The\n" +#~ " licences are marked like this:\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " Der Core und die offiziellen Apps von AlekSIS sind unter der EUPL, Version 1.2 oder später, lizenziert. Für Lizenzinformationen\n" +#~ "zu Apps von Drittanbietern, wenn installiert, siehe direkt bei der jeweiligen App weiter unten auf dieser Seite. Die Lizenzen\n" +#~ "sind wie folgt markiert:\n" +#~ " " -#: aleksis/core/models.py:1275 -msgid "Result fetched" -msgstr "Ergebnis abgerufen" +#~ msgid "Free/Open Source Licence" +#~ msgstr "Freie/Open Source Lizenz" -#: aleksis/core/models.py:1300 -msgid "Background task completed successfully" -msgstr "Hintergrundaufgabe erfolgreich fertiggestellt" +#~ msgid "Other Licence" +#~ msgstr "Andere Lizenz" -#: aleksis/core/models.py:1301 -msgid "The background task '{}' has been completed successfully." -msgstr "Die Hintergrundaufgabe '{}' wurde erfolgreich fertiggestellt." +#~ msgid "Full licence text" +#~ msgstr "Kompletter Lizenztext" -#: aleksis/core/models.py:1307 -msgid "Background task failed" -msgstr "Hintergrundaufgabe fehlgeschlagen" +#~ msgid "More information about the EUPL" +#~ msgstr "Weitere Informationen über die EUPL" -#: aleksis/core/models.py:1308 -msgid "The background task '{}' has failed." -msgstr "Die Hintergrundaufgabe '{}' ist fehlgeschlagen." +#, python-format +#~ msgid "" +#~ "\n" +#~ " This app is licenced under %(licence)s.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " Diese App ist unter %(licence)s lizenziert.\n" +#~ " " -#: aleksis/core/models.py:1317 -msgid "Background task" -msgstr "Hintergrundaufgabe" +#~ msgid "" +#~ "\n" +#~ " Without activated JavaScript the progress status can't be updated.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " Ohne aktiviertes JavaScript kann der Fortschritt leider nicht aktualisiert werden.\n" +#~ " " -#: aleksis/core/models.py:1441 -msgid "Can view room timetable" -msgstr "Kann Raum-Stundenplan sehen" +#~ msgid "" +#~ "\n" +#~ " Only admin and visitors from internal IPs can access thesite.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " Nur Administratoren und Besucher von internen IP-Adressen können die Seite aufrufen.\n" +#~ " " -#: aleksis/core/models.py:1443 -msgid "Room" -msgstr "Raum" +#~ msgid "Language" +#~ msgstr "Sprache" -#: aleksis/core/models.py:1444 -msgid "Rooms" -msgstr "Räume" +#~ msgid "Select language" +#~ msgstr "Sprache auswählen" -#: aleksis/core/preferences.py:208 -msgid "Select Design" -msgstr "Design auswählen" +#~ msgid "" +#~ "\n" +#~ " Your administrator account is not linked to any person. Therefore,\n" +#~ " a dummy person has been linked to your account.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " Ihr Administratorenkonto ist mit keiner Person verknüpft. Deshalb\n" +#~ " wurde Ihr Konto mit einer Dummyperson verknüpft.\n" +#~ " " -#: aleksis/core/preferences.py:211 -msgid "Light mode" -msgstr "Heller Modus" +#~ msgid "" +#~ "\n" +#~ " Your user account is not linked to a person. This means you\n" +#~ " cannot access any school-related information. Please contact\n" +#~ " the managers of AlekSIS at your school.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " Ihr Benutzerkonto ist nicht mit einer Person verknüpft. Das bedeutet, dass Sie\n" +#~ " keine schulbezogenen Informationen aufrufen können. Bitte wenden Sie sich an\n" +#~ " die Verwaltenden von AlekSIS an Ihrer Schule.\n" +#~ " " -#: aleksis/core/templates/core/partials/splash_screen.html:11 -msgid "" -"\n" -" This webbrowser doesn't support JavaScript, or its execution is " -"blocked. Please use another browser to continue.\n" -" " -msgstr "" -"\n" -" Dieser Webbrowser unterstützt kein JavaScript oder die Ausführung wurde blockiert. Bitte nutzen Sie einen anderen Browser, um fortzufahren.\n" -" " +#~ msgid "Impersonate" +#~ msgstr "Verkleiden" -#: aleksis/core/templates/offline.html:10 -msgid "Page not available offline." -msgstr "Seite nicht offline verfügbar." +#~ msgid "Invite user" +#~ msgstr "Benutzer einladen" -#: aleksis/core/templates/offline.html:14 -msgid "" -"\n" -" This page is not available offline. Since you probably don't have an " -"internet connection, check to see if your WiFi\n" -" or mobile data is turned on and try again. If you think you are " -"connected, please contact the system\n" -" administrators:\n" -" " -msgstr "" -"\n" -" Diese Seite ist offline nicht verfügbar. Da Sie vermutliche keine Internetverbindung haben, prüfen Sie, ob Ihr WLAN oder mobile Daten angeschaltet sind, \n" -" und probieren Sie es erneut. Wenn Sie der Meinung sind, dass Sie verbunden sind, kontaktieren Sie bitte die \n" -" Systemadministratoren:\n" -" " +#~ msgid "Contact details" +#~ msgstr "Kontaktdetails" + +#~ msgid "This person didn't upload a personal photo." +#~ msgstr "Diese Person hat kein persönliches Foto hochgeladen." + +#~ msgid "Children" +#~ msgstr "Kinder" + +#~ msgid "Success!" +#~ msgstr "Erfolg!" + +#~ msgid "Please return to your application and enter this code:" +#~ msgstr "Bitte gehen Sie zurück in Ihre Anwendung und geben Sie diesen Code ein:" + +#~ msgid "No internet connection." +#~ msgstr "Keine Internetverbindung." + +#~ msgid "" +#~ "\n" +#~ " There was an error accessing this page. You probably don't have an internet connection. Check to see if your WiFi\n" +#~ " or mobile data is turned on and try again. If you think you are connected, please contact the system\n" +#~ " administrators:\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " Es ist ein Fehler beim Aufrufen der Seite aufgetreten. Eventuell haben Sie keine Internetverbindung. Bitte prüfen Sie, ob WLAN oder mobile Daten aktiv sind, \n" +#~ " und probieren Sie es erneut. Wenn Sie der Meinung sind, dass Sie mit dem Internet verbunden sind, kontaktieren Sie bitte einen Ihrer \n" +#~ " Systemadministratoren:\n" +#~ " " + +#~ msgid "The additional_field has been saved." +#~ msgstr "Das zusätzliche Feld wurde gespeichert." + +#~ msgid "The requested PDF file does not exist" +#~ msgstr "Die angeforderte PDF-Datei existiert nicht" + +#~ msgid "The requested task does not exist or is not accessible" +#~ msgstr "Der angeforderte Task existiert nicht oder ist nicht abrufbar" + +#~ msgid "ICal feed updated successfully" +#~ msgstr "Der iCal-Feed wurde erfolgreich aktualisiert" + +#~ msgid "ICal feed deleted successfully" +#~ msgstr "Der iCal-Feed wurde erfolgreich gelöscht" + +#~ msgid "ICal feed created successfully" +#~ msgstr "Der iCal-Feed wurde erfolgreich erstellt" + +#~ msgid "iCal Feeds" +#~ msgstr "iCal-Feeds" + +#~ msgid "iCal feed updated successfully" +#~ msgstr "Der iCal-Feed wurde erfolgreich aktualisiert" + +#~ msgid "iCal feed deleted successfully" +#~ msgstr "Der iCal-Feed wurde erfolgreich gelöscht" + +#~ msgid "iCal feed created successfully" +#~ msgstr "Der iCal-Feed wurde erfolgreich erstellt" #~ msgid "Me" #~ msgstr "Ich" @@ -4155,8 +3671,7 @@ msgstr "" #~ " <li>ID des Tasks: %(task_id)s</li>\n" #~ " <li>Aufgetretene Exception: %(exception)s</li>\n" #~ " <li>Argumente, mit denen der Task aufgerufen wurde: %(args)s</li>\n" -#~ " <li>Keyword-Argumente, mit denen der Task aufgerufen wurde: " -#~ "%(kwargs)s</li>\n" +#~ " <li>Keyword-Argumente, mit denen der Task aufgerufen wurde: %(kwargs)s</li>\n" #~ " <li>Stacktrace: %(traceback)s</li>\n" #~ " </ul>\n" #~ " " @@ -4175,12 +3690,8 @@ msgstr "" #~ msgstr "Zustimmungen" #, python-brace-format -#~ msgid "" -#~ "I have read the <a href='{privacy_policy}'>Privacy policy</a> and agree " -#~ "with them." -#~ msgstr "" -#~ "Ich habe die <a href='{privacy_policy}'>Datenschutzerklärung</a> gelesen " -#~ "und stimme ihr zu." +#~ msgid "I have read the <a href='{privacy_policy}'>Privacy policy</a> and agree with them." +#~ msgstr "Ich habe die <a href='{privacy_policy}'>Datenschutzerklärung</a> gelesen und stimme ihr zu." #~ msgid "You must type the same password each time." #~ msgstr "Sie müssen zweimal das gleiche Passwort eingeben." @@ -4189,12 +3700,8 @@ msgstr "" #~ msgstr "Verkleidung" #, python-format -#~ msgid "" -#~ "<strong>Note:</strong> you can still <a href=\"%(email_url)s\">change " -#~ "your e-mail address</a>" -#~ msgstr "" -#~ "<strong>Hinweis:</strong> Sie können immer noch <a href=\"%(email_url)s" -#~ "\"> Ihre E-Mail-Adresse ändern</a>" +#~ msgid "<strong>Note:</strong> you can still <a href=\"%(email_url)s\">change your e-mail address</a>" +#~ msgstr "<strong>Hinweis:</strong> Sie können immer noch <a href=\"%(email_url)s\"> Ihre E-Mail-Adresse ändern</a>" #~ msgid "Impress" #~ msgstr "Impressum" @@ -4216,9 +3723,7 @@ msgstr "" #, python-format #~ msgid "Are you sure to delete the application %(application_name)s?" -#~ msgstr "" -#~ "Sind Sie sicher, dass Sie die Anwendung %(application_name)s löschen " -#~ "möchten?" +#~ msgstr "Sind Sie sicher, dass Sie die Anwendung %(application_name)s löschen möchten?" #~ msgid "Authorization Grant Type" #~ msgstr "Authorization Grant-Typ" @@ -4243,23 +3748,17 @@ msgstr "" #~ msgid "" #~ "\n" -#~ " You can use this form to assign user accounts to persons. Use " -#~ "the\n" -#~ " dropdowns to select existing accounts; use the text fields to " -#~ "create new\n" -#~ " accounts on-the-fly. The latter will create a new account with " -#~ "the\n" +#~ " You can use this form to assign user accounts to persons. Use the\n" +#~ " dropdowns to select existing accounts; use the text fields to create new\n" +#~ " accounts on-the-fly. The latter will create a new account with the\n" #~ " entered username and copy all other details from the person.\n" #~ " " #~ msgstr "" #~ "\n" -#~ " Sie können dieses Formular nutzen, um Benutzerkonten Personen " -#~ "zuzuweisen. Nutzen Sie das\n" -#~ " Auswahlfeld um ein existierendes Benutzerkonto auszuwählen; nutzen " -#~ "Sie das Textfeld, um einen neuen Benutzer zu\n" +#~ " Sie können dieses Formular nutzen, um Benutzerkonten Personen zuzuweisen. Nutzen Sie das\n" +#~ " Auswahlfeld um ein existierendes Benutzerkonto auszuwählen; nutzen Sie das Textfeld, um einen neuen Benutzer zu\n" #~ " erstellen. Letzteres erstellt ein neues Benutzerkonto mit dem\n" -#~ " eingegebenen Benutzernamen und kopiert alle anderen Daten der " -#~ "Person.\n" +#~ " eingegebenen Benutzernamen und kopiert alle anderen Daten der Person.\n" #~ " " #~ msgid "Existing account" @@ -4285,8 +3784,7 @@ msgstr "" #~ "We sent you a text message, please enter the tokens we\n" #~ " sent." #~ msgstr "" -#~ "Wir haben Ihnen eine Textnachricht geschickt. Bitte geben Sie die Tokens " -#~ "ein,\n" +#~ "Wir haben Ihnen eine Textnachricht geschickt. Bitte geben Sie die Tokens ein,\n" #~ " die wir Ihnen geschickt haben." #~ msgid "French" @@ -4295,12 +3793,8 @@ msgstr "" #~ msgid "Norwegian (bokmÃ¥l)" #~ msgstr "Norwegisch (bokmÃ¥l)" -#~ msgid "" -#~ "The data check has been started. Please note that it may take a while " -#~ "before you are able to fetch the data on this page." -#~ msgstr "" -#~ "Die Datenüberprüfung wurde gestartet. Bitte beachten Sie, dass es eine " -#~ "Weile dauern kann, bevor Sie auf dieser Seite Ergebnisse abrufen können." +#~ msgid "The data check has been started. Please note that it may take a while before you are able to fetch the data on this page." +#~ msgstr "Die Datenüberprüfung wurde gestartet. Bitte beachten Sie, dass es eine Weile dauern kann, bevor Sie auf dieser Seite Ergebnisse abrufen können." #~ msgid "The data check has finished." #~ msgstr "Die Datenüberprüfung wurde beendet." @@ -4354,8 +3848,7 @@ msgstr "" #~ " " #~ msgstr "" #~ "\n" -#~ " Wenn Sie der Meinung sind, dass es sich um einen Fehler in AlekSIS " -#~ "handelt, kontaktieren Sie bitte einen Ihrer\n" +#~ " Wenn Sie der Meinung sind, dass es sich um einen Fehler in AlekSIS handelt, kontaktieren Sie bitte einen Ihrer\n" #~ " Systemadministratoren:\n" #~ " " @@ -4429,9 +3922,7 @@ msgstr "" #~ msgstr "Markdown-Anleitung (Hilfe)" #~ msgid "You are not allowed to mark notifications from other users as read!" -#~ msgstr "" -#~ "Es ist Ihnen nicht erlaubt, Benachrichtigungen von anderen Benutzern als " -#~ "gelesen zu markieren!" +#~ msgstr "Es ist Ihnen nicht erlaubt, Benachrichtigungen von anderen Benutzern als gelesen zu markieren!" #, fuzzy #~ msgid "School name" @@ -4491,8 +3982,7 @@ msgstr "" #~ " " #~ msgstr "" #~ "\n" -#~ " Der Wartungsmodus ist aktuell aktiviert. Bitte versuchen Sie es " -#~ "später erneut.\n" +#~ " Der Wartungsmodus ist aktuell aktiviert. Bitte versuchen Sie es später erneut.\n" #~ " " #~ msgid "Details" diff --git a/aleksis/core/locale/fr/LC_MESSAGES/django.po b/aleksis/core/locale/fr/LC_MESSAGES/django.po index a37c9697651fb7c32c8af41a4631bce4f84d83b7..8925e976a23d950d62a99500c937bed7feb73ac0 100644 --- a/aleksis/core/locale/fr/LC_MESSAGES/django.po +++ b/aleksis/core/locale/fr/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: AlekSIS (School Information System) 0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-22 20:49+0100\n" +"POT-Creation-Date: 2023-02-15 20:00+0100\n" "PO-Revision-Date: 2021-06-16 12:00+0000\n" "Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n" "Language-Team: French <https://translate.edugit.org/projects/aleksis/aleksis/fr/>\n" @@ -429,7 +429,7 @@ msgstr "" msgid "other" msgstr "" -#: aleksis/core/models.py:189 aleksis/core/models.py:1345 +#: aleksis/core/models.py:189 aleksis/core/models.py:1353 msgid "Linked user" msgstr "" @@ -438,7 +438,7 @@ msgid "Additional name(s)" msgstr "" #: aleksis/core/models.py:199 aleksis/core/models.py:511 -#: aleksis/core/models.py:1431 +#: aleksis/core/models.py:1439 #, fuzzy #| msgid "First name" msgid "Short name" @@ -504,7 +504,7 @@ msgstr "" #: aleksis/core/models.py:244 aleksis/core/models.py:724 #: aleksis/core/models.py:748 aleksis/core/models.py:843 -#: aleksis/core/models.py:1104 +#: aleksis/core/models.py:1112 msgid "Description" msgstr "Description" @@ -544,7 +544,7 @@ msgstr "" msgid "Can view statistics about group." msgstr "Détails de contact" -#: aleksis/core/models.py:509 aleksis/core/models.py:1432 +#: aleksis/core/models.py:509 aleksis/core/models.py:1440 #, fuzzy #| msgid "Last name" msgid "Long name" @@ -573,7 +573,7 @@ msgid "Additional fields" msgstr "" #: aleksis/core/models.py:723 aleksis/core/models.py:747 -#: aleksis/core/models.py:842 aleksis/core/models.py:1262 +#: aleksis/core/models.py:842 aleksis/core/models.py:1270 #: aleksis/core/templates/core/announcement/list.html:18 msgid "Title" msgstr "" @@ -603,7 +603,7 @@ msgid "Link" msgstr "" #: aleksis/core/models.py:752 aleksis/core/models.py:1079 -#: aleksis/core/models.py:1392 +#: aleksis/core/models.py:1400 #: aleksis/core/templates/oauth2_provider/application/detail.html:26 msgid "Icon" msgstr "" @@ -786,17 +786,17 @@ msgstr "" msgid "Custom menu items" msgstr "" -#: aleksis/core/models.py:1103 +#: aleksis/core/models.py:1111 msgid "Title of type" msgstr "" -#: aleksis/core/models.py:1110 aleksis/core/templates/core/group/full.html:50 +#: aleksis/core/models.py:1118 aleksis/core/templates/core/group/full.html:50 #, fuzzy #| msgid "Group" msgid "Group type" msgstr "Groupe" -#: aleksis/core/models.py:1111 +#: aleksis/core/models.py:1119 #: aleksis/core/templates/core/group_type/list.html:8 #: aleksis/core/templates/core/group_type/list.html:9 #, fuzzy @@ -804,211 +804,211 @@ msgstr "Groupe" msgid "Group types" msgstr "Groupe" -#: aleksis/core/models.py:1124 +#: aleksis/core/models.py:1132 #, fuzzy #| msgid "Contact details" msgid "Can view system status" msgstr "Détails de contact" -#: aleksis/core/models.py:1125 +#: aleksis/core/models.py:1133 msgid "Can manage data" msgstr "" -#: aleksis/core/models.py:1126 +#: aleksis/core/models.py:1134 #, fuzzy #| msgid "Contact details" msgid "Can impersonate" msgstr "Détails de contact" -#: aleksis/core/models.py:1127 +#: aleksis/core/models.py:1135 msgid "Can use search" msgstr "" -#: aleksis/core/models.py:1128 +#: aleksis/core/models.py:1136 msgid "Can change site preferences" msgstr "" -#: aleksis/core/models.py:1129 +#: aleksis/core/models.py:1137 msgid "Can change person preferences" msgstr "" -#: aleksis/core/models.py:1130 +#: aleksis/core/models.py:1138 msgid "Can change group preferences" msgstr "" -#: aleksis/core/models.py:1131 +#: aleksis/core/models.py:1139 msgid "Can test PDF generation" msgstr "" -#: aleksis/core/models.py:1132 +#: aleksis/core/models.py:1140 #, fuzzy #| msgid "Contact details" msgid "Can invite persons" msgstr "Détails de contact" -#: aleksis/core/models.py:1168 +#: aleksis/core/models.py:1176 msgid "Related data check task" msgstr "" -#: aleksis/core/models.py:1176 +#: aleksis/core/models.py:1184 msgid "Issue solved" msgstr "" -#: aleksis/core/models.py:1177 +#: aleksis/core/models.py:1185 msgid "Notification sent" msgstr "" -#: aleksis/core/models.py:1190 +#: aleksis/core/models.py:1198 msgid "Data check result" msgstr "" -#: aleksis/core/models.py:1191 +#: aleksis/core/models.py:1199 msgid "Data check results" msgstr "" -#: aleksis/core/models.py:1193 +#: aleksis/core/models.py:1201 msgid "Can run data checks" msgstr "" -#: aleksis/core/models.py:1194 +#: aleksis/core/models.py:1202 msgid "Can solve data check problems" msgstr "" -#: aleksis/core/models.py:1201 +#: aleksis/core/models.py:1209 #, fuzzy #| msgid "Contact details" msgid "E-Mail address" msgstr "Détails de contact" -#: aleksis/core/models.py:1233 +#: aleksis/core/models.py:1241 #, fuzzy #| msgid "Owners" msgid "Owner" msgstr "Propriétaires" -#: aleksis/core/models.py:1237 +#: aleksis/core/models.py:1245 msgid "File expires at" msgstr "" -#: aleksis/core/models.py:1240 +#: aleksis/core/models.py:1248 msgid "Generated HTML file" msgstr "" -#: aleksis/core/models.py:1243 +#: aleksis/core/models.py:1251 msgid "Generated PDF file" msgstr "" -#: aleksis/core/models.py:1250 +#: aleksis/core/models.py:1258 msgid "PDF file" msgstr "" -#: aleksis/core/models.py:1251 +#: aleksis/core/models.py:1259 msgid "PDF files" msgstr "" -#: aleksis/core/models.py:1256 +#: aleksis/core/models.py:1264 msgid "Task result" msgstr "" -#: aleksis/core/models.py:1259 +#: aleksis/core/models.py:1267 msgid "Task user" msgstr "" -#: aleksis/core/models.py:1263 +#: aleksis/core/models.py:1271 msgid "Back URL" msgstr "" -#: aleksis/core/models.py:1264 +#: aleksis/core/models.py:1272 msgid "Progress title" msgstr "" -#: aleksis/core/models.py:1265 +#: aleksis/core/models.py:1273 msgid "Error message" msgstr "" -#: aleksis/core/models.py:1266 +#: aleksis/core/models.py:1274 msgid "Success message" msgstr "" -#: aleksis/core/models.py:1267 +#: aleksis/core/models.py:1275 msgid "Redirect on success URL" msgstr "" -#: aleksis/core/models.py:1269 +#: aleksis/core/models.py:1277 #, fuzzy #| msgid "Contact details" msgid "Additional button title" msgstr "Détails de contact" -#: aleksis/core/models.py:1271 +#: aleksis/core/models.py:1279 #, fuzzy #| msgid "Contact details" msgid "Additional button URL" msgstr "Détails de contact" -#: aleksis/core/models.py:1273 +#: aleksis/core/models.py:1281 #, fuzzy #| msgid "Contact details" msgid "Additional button icon" msgstr "Détails de contact" -#: aleksis/core/models.py:1275 +#: aleksis/core/models.py:1283 msgid "Result fetched" msgstr "" -#: aleksis/core/models.py:1300 +#: aleksis/core/models.py:1308 msgid "Background task completed successfully" msgstr "" -#: aleksis/core/models.py:1301 +#: aleksis/core/models.py:1309 msgid "The background task '{}' has been completed successfully." msgstr "" -#: aleksis/core/models.py:1307 +#: aleksis/core/models.py:1315 msgid "Background task failed" msgstr "" -#: aleksis/core/models.py:1308 +#: aleksis/core/models.py:1316 msgid "The background task '{}' has failed." msgstr "" -#: aleksis/core/models.py:1317 +#: aleksis/core/models.py:1325 msgid "Background task" msgstr "" -#: aleksis/core/models.py:1331 +#: aleksis/core/models.py:1339 msgid "Task user assignment" msgstr "" -#: aleksis/core/models.py:1332 +#: aleksis/core/models.py:1340 msgid "Task user assignments" msgstr "" -#: aleksis/core/models.py:1348 +#: aleksis/core/models.py:1356 #, fuzzy #| msgid "Contact details" msgid "Additional attributes" msgstr "Détails de contact" -#: aleksis/core/models.py:1386 +#: aleksis/core/models.py:1394 msgid "Allowed scopes that clients can request" msgstr "" -#: aleksis/core/models.py:1396 +#: aleksis/core/models.py:1404 msgid "This image will be shown as icon in the authorization flow. It should be squared." msgstr "" -#: aleksis/core/models.py:1441 +#: aleksis/core/models.py:1449 #, fuzzy #| msgid "Contact details" msgid "Can view room timetable" msgstr "Détails de contact" -#: aleksis/core/models.py:1443 +#: aleksis/core/models.py:1451 msgid "Room" msgstr "" -#: aleksis/core/models.py:1444 +#: aleksis/core/models.py:1452 msgid "Rooms" msgstr "" @@ -1230,15 +1230,15 @@ msgstr "" msgid "Country for phone number parsing" msgstr "" -#: aleksis/core/settings.py:539 +#: aleksis/core/settings.py:544 msgid "English" msgstr "" -#: aleksis/core/settings.py:540 +#: aleksis/core/settings.py:545 msgid "German" msgstr "" -#: aleksis/core/settings.py:541 +#: aleksis/core/settings.py:546 msgid "Ukrainian" msgstr "" @@ -3090,52 +3090,52 @@ msgstr "" msgid "The dashboard widget has been deleted." msgstr "" -#: aleksis/core/views.py:1030 +#: aleksis/core/views.py:1031 msgid "Your dashboard configuration has been saved successfully." msgstr "" -#: aleksis/core/views.py:1032 +#: aleksis/core/views.py:1033 msgid "The configuration of the default dashboard has been saved successfully." msgstr "" -#: aleksis/core/views.py:1103 +#: aleksis/core/views.py:1104 #, python-brace-format msgid "The invitation was successfully created. The invitation code is {code}" msgstr "" -#: aleksis/core/views.py:1200 +#: aleksis/core/views.py:1201 msgid "We have successfully assigned the permissions." msgstr "" -#: aleksis/core/views.py:1210 +#: aleksis/core/views.py:1211 msgid "The global user permission has been deleted." msgstr "" -#: aleksis/core/views.py:1220 +#: aleksis/core/views.py:1221 msgid "The global group permission has been deleted." msgstr "" -#: aleksis/core/views.py:1230 +#: aleksis/core/views.py:1231 msgid "The object user permission has been deleted." msgstr "" -#: aleksis/core/views.py:1240 +#: aleksis/core/views.py:1241 msgid "The object group permission has been deleted." msgstr "" -#: aleksis/core/views.py:1349 +#: aleksis/core/views.py:1350 msgid "The third-party account could not be disconnected because it is the only login method available." msgstr "" -#: aleksis/core/views.py:1356 +#: aleksis/core/views.py:1357 msgid "The third-party account has been successfully disconnected." msgstr "" -#: aleksis/core/views.py:1432 +#: aleksis/core/views.py:1433 msgid "Person was invited successfully and an email with further instructions has been send to them." msgstr "" -#: aleksis/core/views.py:1443 +#: aleksis/core/views.py:1444 #, fuzzy #| msgid "This username is already in use." msgid "Person was already invited." diff --git a/aleksis/core/locale/la/LC_MESSAGES/django.po b/aleksis/core/locale/la/LC_MESSAGES/django.po index 81cb58ba93fc0e0cb0132717762819fcd0b9bf63..217f324ef5c63ec5c7ed756887188bafa2fb1643 100644 --- a/aleksis/core/locale/la/LC_MESSAGES/django.po +++ b/aleksis/core/locale/la/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-22 20:49+0100\n" +"POT-Creation-Date: 2023-02-15 20:00+0100\n" "PO-Revision-Date: 2020-12-19 12:57+0000\n" "Last-Translator: Julian <leuckerj@gmail.com>\n" "Language-Team: Latin <https://translate.edugit.org/projects/aleksis/aleksis/la/>\n" @@ -441,7 +441,7 @@ msgstr "maskulinum" msgid "other" msgstr "" -#: aleksis/core/models.py:189 aleksis/core/models.py:1345 +#: aleksis/core/models.py:189 aleksis/core/models.py:1353 msgid "Linked user" msgstr "" @@ -450,7 +450,7 @@ msgid "Additional name(s)" msgstr "addita nomines" #: aleksis/core/models.py:199 aleksis/core/models.py:511 -#: aleksis/core/models.py:1431 +#: aleksis/core/models.py:1439 msgid "Short name" msgstr "Breve nomen" @@ -514,7 +514,7 @@ msgstr "" #: aleksis/core/models.py:244 aleksis/core/models.py:724 #: aleksis/core/models.py:748 aleksis/core/models.py:843 -#: aleksis/core/models.py:1104 +#: aleksis/core/models.py:1112 msgid "Description" msgstr "Descriptio" @@ -558,7 +558,7 @@ msgstr "" msgid "Can view statistics about group." msgstr "Personae et computi" -#: aleksis/core/models.py:509 aleksis/core/models.py:1432 +#: aleksis/core/models.py:509 aleksis/core/models.py:1440 #, fuzzy #| msgid "Last name" msgid "Long name" @@ -589,7 +589,7 @@ msgid "Additional fields" msgstr "addita nomines" #: aleksis/core/models.py:723 aleksis/core/models.py:747 -#: aleksis/core/models.py:842 aleksis/core/models.py:1262 +#: aleksis/core/models.py:842 aleksis/core/models.py:1270 #: aleksis/core/templates/core/announcement/list.html:18 msgid "Title" msgstr "Titulus" @@ -619,7 +619,7 @@ msgid "Link" msgstr "" #: aleksis/core/models.py:752 aleksis/core/models.py:1079 -#: aleksis/core/models.py:1392 +#: aleksis/core/models.py:1400 #: aleksis/core/templates/oauth2_provider/application/detail.html:26 msgid "Icon" msgstr "Nota" @@ -830,17 +830,17 @@ msgstr "" msgid "Custom menu items" msgstr "" -#: aleksis/core/models.py:1103 +#: aleksis/core/models.py:1111 msgid "Title of type" msgstr "" -#: aleksis/core/models.py:1110 aleksis/core/templates/core/group/full.html:50 +#: aleksis/core/models.py:1118 aleksis/core/templates/core/group/full.html:50 #, fuzzy #| msgid "Group" msgid "Group type" msgstr "Grex" -#: aleksis/core/models.py:1111 +#: aleksis/core/models.py:1119 #: aleksis/core/templates/core/group_type/list.html:8 #: aleksis/core/templates/core/group_type/list.html:9 #, fuzzy @@ -848,215 +848,215 @@ msgstr "Grex" msgid "Group types" msgstr "Greges" -#: aleksis/core/models.py:1124 +#: aleksis/core/models.py:1132 #, fuzzy #| msgid "System status" msgid "Can view system status" msgstr "Status systemae" -#: aleksis/core/models.py:1125 +#: aleksis/core/models.py:1133 #, fuzzy #| msgid "Data management" msgid "Can manage data" msgstr "Adminstratio datarum" -#: aleksis/core/models.py:1126 +#: aleksis/core/models.py:1134 #, fuzzy #| msgid "Stop impersonation" msgid "Can impersonate" msgstr "Simulandum aliquem finire" -#: aleksis/core/models.py:1127 +#: aleksis/core/models.py:1135 msgid "Can use search" msgstr "" -#: aleksis/core/models.py:1128 +#: aleksis/core/models.py:1136 msgid "Can change site preferences" msgstr "" -#: aleksis/core/models.py:1129 +#: aleksis/core/models.py:1137 msgid "Can change person preferences" msgstr "" -#: aleksis/core/models.py:1130 +#: aleksis/core/models.py:1138 msgid "Can change group preferences" msgstr "" -#: aleksis/core/models.py:1131 +#: aleksis/core/models.py:1139 msgid "Can test PDF generation" msgstr "" -#: aleksis/core/models.py:1132 +#: aleksis/core/models.py:1140 #, fuzzy #| msgid "Stop impersonation" msgid "Can invite persons" msgstr "Simulandum aliquem finire" -#: aleksis/core/models.py:1168 +#: aleksis/core/models.py:1176 msgid "Related data check task" msgstr "" -#: aleksis/core/models.py:1176 +#: aleksis/core/models.py:1184 msgid "Issue solved" msgstr "" -#: aleksis/core/models.py:1177 +#: aleksis/core/models.py:1185 #, fuzzy #| msgid "Notifications" msgid "Notification sent" msgstr "Nuntii" -#: aleksis/core/models.py:1190 +#: aleksis/core/models.py:1198 msgid "Data check result" msgstr "" -#: aleksis/core/models.py:1191 +#: aleksis/core/models.py:1199 msgid "Data check results" msgstr "" -#: aleksis/core/models.py:1193 +#: aleksis/core/models.py:1201 msgid "Can run data checks" msgstr "" -#: aleksis/core/models.py:1194 +#: aleksis/core/models.py:1202 msgid "Can solve data check problems" msgstr "" -#: aleksis/core/models.py:1201 +#: aleksis/core/models.py:1209 #, fuzzy #| msgid "E-mail address" msgid "E-Mail address" msgstr "Inscriptio electronica" -#: aleksis/core/models.py:1233 +#: aleksis/core/models.py:1241 msgid "Owner" msgstr "" -#: aleksis/core/models.py:1237 +#: aleksis/core/models.py:1245 msgid "File expires at" msgstr "" -#: aleksis/core/models.py:1240 +#: aleksis/core/models.py:1248 msgid "Generated HTML file" msgstr "" -#: aleksis/core/models.py:1243 +#: aleksis/core/models.py:1251 msgid "Generated PDF file" msgstr "" -#: aleksis/core/models.py:1250 +#: aleksis/core/models.py:1258 msgid "PDF file" msgstr "" -#: aleksis/core/models.py:1251 +#: aleksis/core/models.py:1259 msgid "PDF files" msgstr "" -#: aleksis/core/models.py:1256 +#: aleksis/core/models.py:1264 msgid "Task result" msgstr "" -#: aleksis/core/models.py:1259 +#: aleksis/core/models.py:1267 msgid "Task user" msgstr "" -#: aleksis/core/models.py:1263 +#: aleksis/core/models.py:1271 #, fuzzy #| msgid "Icon" msgid "Back URL" msgstr "Nota" -#: aleksis/core/models.py:1264 +#: aleksis/core/models.py:1272 msgid "Progress title" msgstr "" -#: aleksis/core/models.py:1265 +#: aleksis/core/models.py:1273 msgid "Error message" msgstr "" -#: aleksis/core/models.py:1266 +#: aleksis/core/models.py:1274 msgid "Success message" msgstr "" -#: aleksis/core/models.py:1267 +#: aleksis/core/models.py:1275 msgid "Redirect on success URL" msgstr "" -#: aleksis/core/models.py:1269 +#: aleksis/core/models.py:1277 #, fuzzy #| msgid "Additional name(s)" msgid "Additional button title" msgstr "addita nomines" -#: aleksis/core/models.py:1271 +#: aleksis/core/models.py:1279 #, fuzzy #| msgid "Additional name(s)" msgid "Additional button URL" msgstr "addita nomines" -#: aleksis/core/models.py:1273 +#: aleksis/core/models.py:1281 #, fuzzy #| msgid "Additional name(s)" msgid "Additional button icon" msgstr "addita nomines" -#: aleksis/core/models.py:1275 +#: aleksis/core/models.py:1283 msgid "Result fetched" msgstr "" -#: aleksis/core/models.py:1300 +#: aleksis/core/models.py:1308 msgid "Background task completed successfully" msgstr "" -#: aleksis/core/models.py:1301 +#: aleksis/core/models.py:1309 msgid "The background task '{}' has been completed successfully." msgstr "" -#: aleksis/core/models.py:1307 +#: aleksis/core/models.py:1315 msgid "Background task failed" msgstr "" -#: aleksis/core/models.py:1308 +#: aleksis/core/models.py:1316 msgid "The background task '{}' has failed." msgstr "" -#: aleksis/core/models.py:1317 +#: aleksis/core/models.py:1325 msgid "Background task" msgstr "" -#: aleksis/core/models.py:1331 +#: aleksis/core/models.py:1339 msgid "Task user assignment" msgstr "" -#: aleksis/core/models.py:1332 +#: aleksis/core/models.py:1340 msgid "Task user assignments" msgstr "" -#: aleksis/core/models.py:1348 +#: aleksis/core/models.py:1356 #, fuzzy #| msgid "Additional name(s)" msgid "Additional attributes" msgstr "addita nomines" -#: aleksis/core/models.py:1386 +#: aleksis/core/models.py:1394 msgid "Allowed scopes that clients can request" msgstr "" -#: aleksis/core/models.py:1396 +#: aleksis/core/models.py:1404 msgid "This image will be shown as icon in the authorization flow. It should be squared." msgstr "" -#: aleksis/core/models.py:1441 +#: aleksis/core/models.py:1449 #, fuzzy #| msgid "E-mail address" msgid "Can view room timetable" msgstr "Inscriptio electronica" -#: aleksis/core/models.py:1443 +#: aleksis/core/models.py:1451 msgid "Room" msgstr "" -#: aleksis/core/models.py:1444 +#: aleksis/core/models.py:1452 msgid "Rooms" msgstr "" @@ -1286,15 +1286,15 @@ msgstr "" msgid "Country for phone number parsing" msgstr "" -#: aleksis/core/settings.py:539 +#: aleksis/core/settings.py:544 msgid "English" msgstr "Britannicus" -#: aleksis/core/settings.py:540 +#: aleksis/core/settings.py:545 msgid "German" msgstr "Germanus" -#: aleksis/core/settings.py:541 +#: aleksis/core/settings.py:546 msgid "Ukrainian" msgstr "" @@ -3213,52 +3213,52 @@ msgstr "" msgid "The dashboard widget has been deleted." msgstr "" -#: aleksis/core/views.py:1030 +#: aleksis/core/views.py:1031 msgid "Your dashboard configuration has been saved successfully." msgstr "" -#: aleksis/core/views.py:1032 +#: aleksis/core/views.py:1033 msgid "The configuration of the default dashboard has been saved successfully." msgstr "" -#: aleksis/core/views.py:1103 +#: aleksis/core/views.py:1104 #, python-brace-format msgid "The invitation was successfully created. The invitation code is {code}" msgstr "" -#: aleksis/core/views.py:1200 +#: aleksis/core/views.py:1201 msgid "We have successfully assigned the permissions." msgstr "" -#: aleksis/core/views.py:1210 +#: aleksis/core/views.py:1211 msgid "The global user permission has been deleted." msgstr "" -#: aleksis/core/views.py:1220 +#: aleksis/core/views.py:1221 msgid "The global group permission has been deleted." msgstr "" -#: aleksis/core/views.py:1230 +#: aleksis/core/views.py:1231 msgid "The object user permission has been deleted." msgstr "" -#: aleksis/core/views.py:1240 +#: aleksis/core/views.py:1241 msgid "The object group permission has been deleted." msgstr "" -#: aleksis/core/views.py:1349 +#: aleksis/core/views.py:1350 msgid "The third-party account could not be disconnected because it is the only login method available." msgstr "" -#: aleksis/core/views.py:1356 +#: aleksis/core/views.py:1357 msgid "The third-party account has been successfully disconnected." msgstr "" -#: aleksis/core/views.py:1432 +#: aleksis/core/views.py:1433 msgid "Person was invited successfully and an email with further instructions has been send to them." msgstr "" -#: aleksis/core/views.py:1443 +#: aleksis/core/views.py:1444 msgid "Person was already invited." msgstr "" diff --git a/aleksis/core/locale/nb_NO/LC_MESSAGES/django.po b/aleksis/core/locale/nb_NO/LC_MESSAGES/django.po index 2ea99e7cad1be5a61c71b50784fec05db9003c9d..a92744d7bb504c8b8488c5b7a091e905ff06f151 100644 --- a/aleksis/core/locale/nb_NO/LC_MESSAGES/django.po +++ b/aleksis/core/locale/nb_NO/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: AlekSIS (School Information System) 0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-22 20:49+0100\n" +"POT-Creation-Date: 2023-02-15 20:00+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" @@ -396,7 +396,7 @@ msgstr "" msgid "other" msgstr "" -#: aleksis/core/models.py:189 aleksis/core/models.py:1345 +#: aleksis/core/models.py:189 aleksis/core/models.py:1353 msgid "Linked user" msgstr "" @@ -405,7 +405,7 @@ msgid "Additional name(s)" msgstr "" #: aleksis/core/models.py:199 aleksis/core/models.py:511 -#: aleksis/core/models.py:1431 +#: aleksis/core/models.py:1439 msgid "Short name" msgstr "" @@ -467,7 +467,7 @@ msgstr "" #: aleksis/core/models.py:244 aleksis/core/models.py:724 #: aleksis/core/models.py:748 aleksis/core/models.py:843 -#: aleksis/core/models.py:1104 +#: aleksis/core/models.py:1112 msgid "Description" msgstr "" @@ -503,7 +503,7 @@ msgstr "" msgid "Can view statistics about group." msgstr "" -#: aleksis/core/models.py:509 aleksis/core/models.py:1432 +#: aleksis/core/models.py:509 aleksis/core/models.py:1440 msgid "Long name" msgstr "" @@ -530,7 +530,7 @@ msgid "Additional fields" msgstr "" #: aleksis/core/models.py:723 aleksis/core/models.py:747 -#: aleksis/core/models.py:842 aleksis/core/models.py:1262 +#: aleksis/core/models.py:842 aleksis/core/models.py:1270 #: aleksis/core/templates/core/announcement/list.html:18 msgid "Title" msgstr "" @@ -560,7 +560,7 @@ msgid "Link" msgstr "" #: aleksis/core/models.py:752 aleksis/core/models.py:1079 -#: aleksis/core/models.py:1392 +#: aleksis/core/models.py:1400 #: aleksis/core/templates/oauth2_provider/application/detail.html:26 msgid "Icon" msgstr "" @@ -743,205 +743,205 @@ msgstr "" msgid "Custom menu items" msgstr "" -#: aleksis/core/models.py:1103 +#: aleksis/core/models.py:1111 msgid "Title of type" msgstr "" -#: aleksis/core/models.py:1110 aleksis/core/templates/core/group/full.html:50 +#: aleksis/core/models.py:1118 aleksis/core/templates/core/group/full.html:50 msgid "Group type" msgstr "" -#: aleksis/core/models.py:1111 +#: aleksis/core/models.py:1119 #: aleksis/core/templates/core/group_type/list.html:8 #: aleksis/core/templates/core/group_type/list.html:9 msgid "Group types" msgstr "" -#: aleksis/core/models.py:1124 +#: aleksis/core/models.py:1132 msgid "Can view system status" msgstr "" -#: aleksis/core/models.py:1125 +#: aleksis/core/models.py:1133 msgid "Can manage data" msgstr "" -#: aleksis/core/models.py:1126 +#: aleksis/core/models.py:1134 msgid "Can impersonate" msgstr "" -#: aleksis/core/models.py:1127 +#: aleksis/core/models.py:1135 msgid "Can use search" msgstr "" -#: aleksis/core/models.py:1128 +#: aleksis/core/models.py:1136 msgid "Can change site preferences" msgstr "" -#: aleksis/core/models.py:1129 +#: aleksis/core/models.py:1137 msgid "Can change person preferences" msgstr "" -#: aleksis/core/models.py:1130 +#: aleksis/core/models.py:1138 msgid "Can change group preferences" msgstr "" -#: aleksis/core/models.py:1131 +#: aleksis/core/models.py:1139 msgid "Can test PDF generation" msgstr "" -#: aleksis/core/models.py:1132 +#: aleksis/core/models.py:1140 msgid "Can invite persons" msgstr "" -#: aleksis/core/models.py:1168 +#: aleksis/core/models.py:1176 msgid "Related data check task" msgstr "" -#: aleksis/core/models.py:1176 +#: aleksis/core/models.py:1184 msgid "Issue solved" msgstr "" -#: aleksis/core/models.py:1177 +#: aleksis/core/models.py:1185 msgid "Notification sent" msgstr "" -#: aleksis/core/models.py:1190 +#: aleksis/core/models.py:1198 msgid "Data check result" msgstr "" -#: aleksis/core/models.py:1191 +#: aleksis/core/models.py:1199 msgid "Data check results" msgstr "" -#: aleksis/core/models.py:1193 +#: aleksis/core/models.py:1201 msgid "Can run data checks" msgstr "" -#: aleksis/core/models.py:1194 +#: aleksis/core/models.py:1202 msgid "Can solve data check problems" msgstr "" -#: aleksis/core/models.py:1201 +#: aleksis/core/models.py:1209 msgid "E-Mail address" msgstr "" -#: aleksis/core/models.py:1233 +#: aleksis/core/models.py:1241 msgid "Owner" msgstr "" -#: aleksis/core/models.py:1237 +#: aleksis/core/models.py:1245 msgid "File expires at" msgstr "" -#: aleksis/core/models.py:1240 +#: aleksis/core/models.py:1248 msgid "Generated HTML file" msgstr "" -#: aleksis/core/models.py:1243 +#: aleksis/core/models.py:1251 msgid "Generated PDF file" msgstr "" -#: aleksis/core/models.py:1250 +#: aleksis/core/models.py:1258 msgid "PDF file" msgstr "" -#: aleksis/core/models.py:1251 +#: aleksis/core/models.py:1259 msgid "PDF files" msgstr "" -#: aleksis/core/models.py:1256 +#: aleksis/core/models.py:1264 msgid "Task result" msgstr "" -#: aleksis/core/models.py:1259 +#: aleksis/core/models.py:1267 msgid "Task user" msgstr "" -#: aleksis/core/models.py:1263 +#: aleksis/core/models.py:1271 msgid "Back URL" msgstr "" -#: aleksis/core/models.py:1264 +#: aleksis/core/models.py:1272 msgid "Progress title" msgstr "" -#: aleksis/core/models.py:1265 +#: aleksis/core/models.py:1273 msgid "Error message" msgstr "" -#: aleksis/core/models.py:1266 +#: aleksis/core/models.py:1274 msgid "Success message" msgstr "" -#: aleksis/core/models.py:1267 +#: aleksis/core/models.py:1275 msgid "Redirect on success URL" msgstr "" -#: aleksis/core/models.py:1269 +#: aleksis/core/models.py:1277 msgid "Additional button title" msgstr "" -#: aleksis/core/models.py:1271 +#: aleksis/core/models.py:1279 msgid "Additional button URL" msgstr "" -#: aleksis/core/models.py:1273 +#: aleksis/core/models.py:1281 msgid "Additional button icon" msgstr "" -#: aleksis/core/models.py:1275 +#: aleksis/core/models.py:1283 msgid "Result fetched" msgstr "" -#: aleksis/core/models.py:1300 +#: aleksis/core/models.py:1308 msgid "Background task completed successfully" msgstr "" -#: aleksis/core/models.py:1301 +#: aleksis/core/models.py:1309 msgid "The background task '{}' has been completed successfully." msgstr "" -#: aleksis/core/models.py:1307 +#: aleksis/core/models.py:1315 msgid "Background task failed" msgstr "" -#: aleksis/core/models.py:1308 +#: aleksis/core/models.py:1316 msgid "The background task '{}' has failed." msgstr "" -#: aleksis/core/models.py:1317 +#: aleksis/core/models.py:1325 msgid "Background task" msgstr "" -#: aleksis/core/models.py:1331 +#: aleksis/core/models.py:1339 msgid "Task user assignment" msgstr "" -#: aleksis/core/models.py:1332 +#: aleksis/core/models.py:1340 msgid "Task user assignments" msgstr "" -#: aleksis/core/models.py:1348 +#: aleksis/core/models.py:1356 msgid "Additional attributes" msgstr "" -#: aleksis/core/models.py:1386 +#: aleksis/core/models.py:1394 msgid "Allowed scopes that clients can request" msgstr "" -#: aleksis/core/models.py:1396 +#: aleksis/core/models.py:1404 msgid "This image will be shown as icon in the authorization flow. It should be squared." msgstr "" -#: aleksis/core/models.py:1441 +#: aleksis/core/models.py:1449 msgid "Can view room timetable" msgstr "" -#: aleksis/core/models.py:1443 +#: aleksis/core/models.py:1451 msgid "Room" msgstr "" -#: aleksis/core/models.py:1444 +#: aleksis/core/models.py:1452 msgid "Rooms" msgstr "" @@ -1153,15 +1153,15 @@ msgstr "" msgid "Country for phone number parsing" msgstr "" -#: aleksis/core/settings.py:539 +#: aleksis/core/settings.py:544 msgid "English" msgstr "" -#: aleksis/core/settings.py:540 +#: aleksis/core/settings.py:545 msgid "German" msgstr "" -#: aleksis/core/settings.py:541 +#: aleksis/core/settings.py:546 msgid "Ukrainian" msgstr "" @@ -2979,52 +2979,52 @@ msgstr "" msgid "The dashboard widget has been deleted." msgstr "" -#: aleksis/core/views.py:1030 +#: aleksis/core/views.py:1031 msgid "Your dashboard configuration has been saved successfully." msgstr "" -#: aleksis/core/views.py:1032 +#: aleksis/core/views.py:1033 msgid "The configuration of the default dashboard has been saved successfully." msgstr "" -#: aleksis/core/views.py:1103 +#: aleksis/core/views.py:1104 #, python-brace-format msgid "The invitation was successfully created. The invitation code is {code}" msgstr "" -#: aleksis/core/views.py:1200 +#: aleksis/core/views.py:1201 msgid "We have successfully assigned the permissions." msgstr "" -#: aleksis/core/views.py:1210 +#: aleksis/core/views.py:1211 msgid "The global user permission has been deleted." msgstr "" -#: aleksis/core/views.py:1220 +#: aleksis/core/views.py:1221 msgid "The global group permission has been deleted." msgstr "" -#: aleksis/core/views.py:1230 +#: aleksis/core/views.py:1231 msgid "The object user permission has been deleted." msgstr "" -#: aleksis/core/views.py:1240 +#: aleksis/core/views.py:1241 msgid "The object group permission has been deleted." msgstr "" -#: aleksis/core/views.py:1349 +#: aleksis/core/views.py:1350 msgid "The third-party account could not be disconnected because it is the only login method available." msgstr "" -#: aleksis/core/views.py:1356 +#: aleksis/core/views.py:1357 msgid "The third-party account has been successfully disconnected." msgstr "" -#: aleksis/core/views.py:1432 +#: aleksis/core/views.py:1433 msgid "Person was invited successfully and an email with further instructions has been send to them." msgstr "" -#: aleksis/core/views.py:1443 +#: aleksis/core/views.py:1444 msgid "Person was already invited." msgstr "" diff --git a/aleksis/core/locale/ru/LC_MESSAGES/django.po b/aleksis/core/locale/ru/LC_MESSAGES/django.po index 90703e6c4415480c873dbdaf505af0622a2ea982..9abedfffc09e36b826d9b9388c3eea7450149f37 100644 --- a/aleksis/core/locale/ru/LC_MESSAGES/django.po +++ b/aleksis/core/locale/ru/LC_MESSAGES/django.po @@ -8,14 +8,17 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-01-22 20:49+0100\n" -"PO-Revision-Date: 2022-07-05 12:54+0000\n" +"PO-Revision-Date: 2023-02-08 22:40+0000\n" "Last-Translator: Serhii Horichenko <m@sgg.im>\n" -"Language-Team: Russian <https://translate.edugit.org/projects/aleksis/aleksis-core/ru/>\n" +"Language-Team: Russian <https://translate.edugit.org/projects/aleksis/" +"aleksis-core/ru/>\n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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" "X-Generator: Weblate 4.12.1\n" #: aleksis/core/apps.py:155 @@ -184,7 +187,8 @@ msgid "Write your announcement:" msgstr "Ðапишите Ñвое объÑвление:" #: aleksis/core/forms.py:276 -msgid "You are not allowed to create announcements which are only valid in the past." +msgid "" +"You are not allowed to create announcements which are only valid in the past." msgstr "ОбъÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¿Ñ€Ð¾ÑˆÐ»Ð¾Ð³Ð¾ Вам Ñоздавать не разрешено." #: aleksis/core/forms.py:280 @@ -232,14 +236,13 @@ msgid "Grant the permission for all objects" msgstr "ПредоÑтавить доÑтуп ко вÑем объектам" #: aleksis/core/forms.py:494 -msgid "You must select at least one group or person which should get the permission." +msgid "" +"You must select at least one group or person which should get the permission." msgstr "Вам нужно выбрать Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ одну группу или физлицо, кто получит доÑтуп." #: aleksis/core/forms.py:499 -#, fuzzy -#| msgid "You must grant the permission to all objects and/or to some objects." msgid "You must grant the permission to all objects or to specific objects." -msgstr "Ð’Ñ‹ должны предоÑтавить доÑтуп ко вÑем и/или к некоторым объектам." +msgstr "Ð’Ñ‹ должны предоÑтавить доÑтуп ко вÑем или к конкретным объектам." #: aleksis/core/forms.py:586 msgid "Address data" @@ -400,6 +403,7 @@ msgid "other" msgstr "другой" #: aleksis/core/models.py:189 aleksis/core/models.py:1345 +#: aleksis/core/models.py:1353 msgid "Linked user" msgstr "СвÑзанный пользователь" @@ -408,7 +412,7 @@ msgid "Additional name(s)" msgstr "Дополнительные имена" #: aleksis/core/models.py:199 aleksis/core/models.py:511 -#: aleksis/core/models.py:1431 +#: aleksis/core/models.py:1431 aleksis/core/models.py:1439 msgid "Short name" msgstr "Короткое имÑ" @@ -449,8 +453,11 @@ msgid "Sex" msgstr "Пол" #: aleksis/core/models.py:221 aleksis/core/models.py:550 -msgid "This is an official photo, used for official documents and for internal use cases." -msgstr "Ðто официальное фото, которое иÑпользуетÑÑ Ð´Ð»Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð¾Ð² и внутренних нужд." +msgid "" +"This is an official photo, used for official documents and for internal use " +"cases." +msgstr "" +"Ðто официальное фото, которое иÑпользуетÑÑ Ð´Ð»Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð¾Ð² и внутренних нужд." #: aleksis/core/models.py:226 aleksis/core/models.py:554 msgid "Display picture / Avatar" @@ -470,7 +477,7 @@ msgstr "ОÑÐ½Ð¾Ð²Ð½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð°" #: aleksis/core/models.py:244 aleksis/core/models.py:724 #: aleksis/core/models.py:748 aleksis/core/models.py:843 -#: aleksis/core/models.py:1104 +#: aleksis/core/models.py:1104 aleksis/core/models.py:1112 msgid "Description" msgstr "ОпиÑание" @@ -507,6 +514,7 @@ msgid "Can view statistics about group." msgstr "Может видеть ÑтатиÑтику группы." #: aleksis/core/models.py:509 aleksis/core/models.py:1432 +#: aleksis/core/models.py:1440 msgid "Long name" msgstr "Длинное имÑ" @@ -535,6 +543,7 @@ msgstr "Дополнительные полÑ" #: aleksis/core/models.py:723 aleksis/core/models.py:747 #: aleksis/core/models.py:842 aleksis/core/models.py:1262 #: aleksis/core/templates/core/announcement/list.html:18 +#: aleksis/core/models.py:1270 msgid "Title" msgstr "Ðазвание" @@ -565,6 +574,7 @@ msgstr "СÑылка" #: aleksis/core/models.py:752 aleksis/core/models.py:1079 #: aleksis/core/models.py:1392 #: aleksis/core/templates/oauth2_provider/application/detail.html:26 +#: aleksis/core/models.py:1400 msgid "Icon" msgstr "Иконка" @@ -746,227 +756,213 @@ msgstr "Пункт пользовательÑкого меню" msgid "Custom menu items" msgstr "Пункты пользовательÑкого меню" -#: aleksis/core/models.py:1103 +#: aleksis/core/models.py:1103 aleksis/core/models.py:1111 msgid "Title of type" msgstr "Ðазвание типа" #: aleksis/core/models.py:1110 aleksis/core/templates/core/group/full.html:50 +#: aleksis/core/models.py:1118 msgid "Group type" msgstr "Тип группы" #: aleksis/core/models.py:1111 #: aleksis/core/templates/core/group_type/list.html:8 #: aleksis/core/templates/core/group_type/list.html:9 +#: aleksis/core/models.py:1119 msgid "Group types" msgstr "Типы групп" -#: aleksis/core/models.py:1124 +#: aleksis/core/models.py:1124 aleksis/core/models.py:1132 msgid "Can view system status" msgstr "Может проÑматривать ÑоÑтоÑние ÑиÑтемы" -#: aleksis/core/models.py:1125 +#: aleksis/core/models.py:1125 aleksis/core/models.py:1133 msgid "Can manage data" msgstr "Может управлÑть данными" -#: aleksis/core/models.py:1126 +#: aleksis/core/models.py:1126 aleksis/core/models.py:1134 msgid "Can impersonate" msgstr "Может маÑкироватьÑÑ" -#: aleksis/core/models.py:1127 +#: aleksis/core/models.py:1127 aleksis/core/models.py:1135 msgid "Can use search" msgstr "Может иÑпользовать поиÑк" -#: aleksis/core/models.py:1128 +#: aleksis/core/models.py:1128 aleksis/core/models.py:1136 msgid "Can change site preferences" msgstr "Может менÑть ÑвойÑтва Ñайта" -#: aleksis/core/models.py:1129 +#: aleksis/core/models.py:1129 aleksis/core/models.py:1137 msgid "Can change person preferences" msgstr "Может менÑть перÑональные ÑвойÑтва" -#: aleksis/core/models.py:1130 +#: aleksis/core/models.py:1130 aleksis/core/models.py:1138 msgid "Can change group preferences" msgstr "Может менÑть ÑвойÑтва группы" -#: aleksis/core/models.py:1131 +#: aleksis/core/models.py:1131 aleksis/core/models.py:1139 msgid "Can test PDF generation" msgstr "Может генерировать теÑтовые PDF" -#: aleksis/core/models.py:1132 +#: aleksis/core/models.py:1132 aleksis/core/models.py:1140 msgid "Can invite persons" msgstr "Может приглашать других" -#: aleksis/core/models.py:1168 +#: aleksis/core/models.py:1168 aleksis/core/models.py:1176 msgid "Related data check task" msgstr "Задание проверки ÑвÑзанных данных" -#: aleksis/core/models.py:1176 +#: aleksis/core/models.py:1176 aleksis/core/models.py:1184 msgid "Issue solved" msgstr "Проблема решена" -#: aleksis/core/models.py:1177 +#: aleksis/core/models.py:1177 aleksis/core/models.py:1185 msgid "Notification sent" msgstr "Уведомление отправлено" -#: aleksis/core/models.py:1190 +#: aleksis/core/models.py:1190 aleksis/core/models.py:1198 msgid "Data check result" msgstr "Результат проверки данных" -#: aleksis/core/models.py:1191 +#: aleksis/core/models.py:1191 aleksis/core/models.py:1199 msgid "Data check results" msgstr "Результаты проверки данных" -#: aleksis/core/models.py:1193 +#: aleksis/core/models.py:1193 aleksis/core/models.py:1201 msgid "Can run data checks" msgstr "Может запуÑкать проверки данных" -#: aleksis/core/models.py:1194 +#: aleksis/core/models.py:1194 aleksis/core/models.py:1202 msgid "Can solve data check problems" msgstr "Может решать проблемы проверки данных" -#: aleksis/core/models.py:1201 +#: aleksis/core/models.py:1201 aleksis/core/models.py:1209 msgid "E-Mail address" msgstr "ÐÐ´Ñ€ÐµÑ Ñл.почты" -#: aleksis/core/models.py:1233 +#: aleksis/core/models.py:1233 aleksis/core/models.py:1241 msgid "Owner" msgstr "Владелец" -#: aleksis/core/models.py:1237 +#: aleksis/core/models.py:1237 aleksis/core/models.py:1245 msgid "File expires at" msgstr "Файл дейÑтвителен до" -#: aleksis/core/models.py:1240 +#: aleksis/core/models.py:1240 aleksis/core/models.py:1248 msgid "Generated HTML file" msgstr "Сгенерированный файл HTML" -#: aleksis/core/models.py:1243 +#: aleksis/core/models.py:1243 aleksis/core/models.py:1251 msgid "Generated PDF file" msgstr "Сгенерированный файл PDF" -#: aleksis/core/models.py:1250 +#: aleksis/core/models.py:1250 aleksis/core/models.py:1258 msgid "PDF file" msgstr "Файл PDF" -#: aleksis/core/models.py:1251 +#: aleksis/core/models.py:1251 aleksis/core/models.py:1259 msgid "PDF files" msgstr "Файлы PDF" -#: aleksis/core/models.py:1256 +#: aleksis/core/models.py:1256 aleksis/core/models.py:1264 msgid "Task result" msgstr "Результат заданиÑ" -#: aleksis/core/models.py:1259 +#: aleksis/core/models.py:1259 aleksis/core/models.py:1267 msgid "Task user" msgstr "Пользователь заданиÑ" #: aleksis/core/models.py:1263 -#, fuzzy -#| msgid "Back" msgid "Back URL" -msgstr "Ðазад" +msgstr "URL Ð´Ð»Ñ Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‚Ð°" #: aleksis/core/models.py:1264 -#, fuzzy -#| msgid "Progress: Generate PDF file" msgid "Progress title" -msgstr "Ð’ процеÑÑе: Генерирование файла PDF" +msgstr "Ðазвание процеÑÑа" #: aleksis/core/models.py:1265 msgid "Error message" -msgstr "" +msgstr "Сообщение об ошибке" #: aleksis/core/models.py:1266 -#, fuzzy -#| msgid "Success!" msgid "Success message" -msgstr "УÑпех!" +msgstr "Сообщение об уÑпехе" #: aleksis/core/models.py:1267 -#, fuzzy -#| msgid "Redirect URIs" msgid "Redirect on success URL" -msgstr "Перенаправление URI-адреÑов" +msgstr "URL Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² Ñлучае уÑпеха" #: aleksis/core/models.py:1269 -#, fuzzy -#| msgid "Additional attributes" msgid "Additional button title" -msgstr "Дополнительные атрибуты" +msgstr "Ðазвание дополнительной кнопки" #: aleksis/core/models.py:1271 -#, fuzzy -#| msgid "Additional data" msgid "Additional button URL" -msgstr "Дополнительные данные" +msgstr "URL дополнительной кнопки" #: aleksis/core/models.py:1273 -#, fuzzy -#| msgid "Additional attributes" msgid "Additional button icon" -msgstr "Дополнительные атрибуты" +msgstr "Иконка дополнительной кнопки" #: aleksis/core/models.py:1275 msgid "Result fetched" -msgstr "" +msgstr "Полученный результат" #: aleksis/core/models.py:1300 -#, fuzzy -#| msgid "ICal feed deleted successfully" msgid "Background task completed successfully" -msgstr "Лента iCal уÑпешно удалена" +msgstr "Фоновое задание уÑпешно завершено" #: aleksis/core/models.py:1301 -#, fuzzy -#| msgid "The PDF file has been generated successfully." msgid "The background task '{}' has been completed successfully." -msgstr "Файл PDF уÑпешно Ñоздан." +msgstr "Фоновое задание \"{}\" уÑпешно завершено." #: aleksis/core/models.py:1307 msgid "Background task failed" -msgstr "" +msgstr "Ошибка фонового заданиÑ" #: aleksis/core/models.py:1308 msgid "The background task '{}' has failed." -msgstr "" +msgstr "Ошибка фонового Ð·Ð°Ð´Ð°Ð½Ð¸Ñ \"{}\"." #: aleksis/core/models.py:1317 msgid "Background task" -msgstr "" +msgstr "Фоновое задание" -#: aleksis/core/models.py:1331 +#: aleksis/core/models.py:1331 aleksis/core/models.py:1339 msgid "Task user assignment" msgstr "Ðазначение Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð·Ð°Ð´Ð°Ð½Ð¸Ñ" -#: aleksis/core/models.py:1332 +#: aleksis/core/models.py:1332 aleksis/core/models.py:1340 msgid "Task user assignments" msgstr "ÐÐ°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹ заданиÑ" -#: aleksis/core/models.py:1348 +#: aleksis/core/models.py:1348 aleksis/core/models.py:1356 msgid "Additional attributes" msgstr "Дополнительные атрибуты" -#: aleksis/core/models.py:1386 +#: aleksis/core/models.py:1386 aleksis/core/models.py:1394 msgid "Allowed scopes that clients can request" msgstr "Разрешённые пределы дейÑтвиÑ, которые могут запрашивать клиенты" -#: aleksis/core/models.py:1396 -msgid "This image will be shown as icon in the authorization flow. It should be squared." -msgstr "Ðто изображение будет иÑпользоватьÑÑ Ð² качеÑтве значка во Ð²Ñ€ÐµÐ¼Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ð¸. Должно быть квадратным." +#: aleksis/core/models.py:1396 aleksis/core/models.py:1404 +msgid "" +"This image will be shown as icon in the authorization flow. It should be " +"squared." +msgstr "" +"Ðто изображение будет иÑпользоватьÑÑ Ð² качеÑтве значка во Ð²Ñ€ÐµÐ¼Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ð¸. " +"Должно быть квадратным." #: aleksis/core/models.py:1441 -#, fuzzy -#| msgid "Can view avatar image" msgid "Can view room timetable" -msgstr "Может видеть аватар" +msgstr "Может проÑмативать раÑпиÑание комнаты" #: aleksis/core/models.py:1443 msgid "Room" -msgstr "" +msgstr "Комната" #: aleksis/core/models.py:1444 msgid "Rooms" -msgstr "" +msgstr "Комнаты" #: aleksis/core/preferences.py:25 msgid "General" @@ -1057,14 +1053,12 @@ msgid "Channels to use for notifications" msgstr "Каналы Ð´Ð»Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ð¹" #: aleksis/core/preferences.py:208 -#, fuzzy -#| msgid "Selected persons" msgid "Select Design" -msgstr "Выбранные физлица" +msgstr "Выберите дизайн" #: aleksis/core/preferences.py:211 msgid "Light mode" -msgstr "" +msgstr "Светлый режим" #: aleksis/core/preferences.py:224 msgid "Regular expression to match primary group, e.g. '^Class .*'" @@ -1079,8 +1073,11 @@ msgid "Automatically create new persons for new users" msgstr "Ðовые физлица Ð´Ð»Ñ Ð½Ð¾Ð²Ñ‹Ñ… пользователей Ñоздавать автоматичеÑки" #: aleksis/core/preferences.py:256 -msgid "Automatically link existing persons to new users by their e-mail address" -msgstr "СвÑзывать ÑущеÑтвующие физлица Ñ Ð½Ð¾Ð²Ñ‹Ð¼Ð¸ пользователÑми автоматичеÑки по Ñл.адреÑам" +msgid "" +"Automatically link existing persons to new users by their e-mail address" +msgstr "" +"СвÑзывать ÑущеÑтвующие физлица Ñ Ð½Ð¾Ð²Ñ‹Ð¼Ð¸ пользователÑми автоматичеÑки по Ñл." +"адреÑам" #: aleksis/core/preferences.py:267 msgid "Display name of the school" @@ -1088,7 +1085,9 @@ msgstr "Ðазвание школы / уч.Ð·Ð°Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€ #: aleksis/core/preferences.py:278 msgid "Official name of the school, e.g. as given by supervisory authority" -msgstr "Официальное название школы / уч.заведениÑ, напр., как в региÑтрационных документах" +msgstr "" +"Официальное название школы / уч.заведениÑ, напр., как в региÑтрационных " +"документах" #: aleksis/core/preferences.py:286 msgid "Allow users to change their passwords" @@ -1147,8 +1146,11 @@ msgid "Fields on person model which are editable by themselves." msgstr "ÐŸÐ¾Ð»Ñ Ñ Ð¾Ð¿Ð¸Ñанием физлица, которые можно редактировать ÑамоÑтоÑтельно." #: aleksis/core/preferences.py:424 -msgid "Editable fields on person model which should trigger a notification on change" -msgstr "ИзменÑемые Ð¿Ð¾Ð»Ñ Ð¾Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ Ñ„Ð¸Ð·Ð»Ð¸Ñ†Ð°, при изменении которых должен Ñрабатывать триггер Ð´Ð»Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ" +msgid "" +"Editable fields on person model which should trigger a notification on change" +msgstr "" +"ИзменÑемые Ð¿Ð¾Ð»Ñ Ð¾Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ Ñ„Ð¸Ð·Ð»Ð¸Ñ†Ð°, при изменении которых должен Ñрабатывать " +"триггер Ð´Ð»Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ" #: aleksis/core/preferences.py:438 msgid "Contact for notification if a person changes their data" @@ -1178,15 +1180,15 @@ msgstr "ÐвтоматичеÑки обновлÑть информпанель msgid "Country for phone number parsing" msgstr "Страна Ð´Ð»Ñ Ð¿Ð°Ñ€Ñинга номера телефона" -#: aleksis/core/settings.py:539 +#: aleksis/core/settings.py:539 aleksis/core/settings.py:544 msgid "English" msgstr "ÐнглийÑкий" -#: aleksis/core/settings.py:540 +#: aleksis/core/settings.py:540 aleksis/core/settings.py:545 msgid "German" msgstr "Ðемецкий" -#: aleksis/core/settings.py:541 +#: aleksis/core/settings.py:541 aleksis/core/settings.py:546 msgid "Ukrainian" msgstr "УкраинÑкий" @@ -1229,12 +1231,14 @@ msgstr "" #: aleksis/core/templates/403.html:19 aleksis/core/templates/404.html:16 msgid "" "\n" -" If you think this is an error in AlekSIS, please contact your site\n" +" If you think this is an error in AlekSIS, please contact your " +"site\n" " administrators:\n" " " msgstr "" "\n" -" ЕÑли Ð’Ñ‹ думаете, что Ñто ошибка AlekSIS, обратитеÑÑŒ, пожалуйÑта,\n" +" ЕÑли Ð’Ñ‹ думаете, что Ñто ошибка AlekSIS, обратитеÑÑŒ, " +"пожалуйÑта,\n" " к админиÑтраторам Ñайта:\n" " " @@ -1261,12 +1265,14 @@ msgstr "" #: aleksis/core/templates/500.html:13 msgid "" "\n" -" Your site administrators will automatically be notified about this\n" +" Your site administrators will automatically be notified about " +"this\n" " error. You can also contact them directly:\n" " " msgstr "" "\n" -" ÐдминиÑтраторы Ñайта будут уведомлены об Ñтой ошибке автоматичеÑки.\n" +" ÐдминиÑтраторы Ñайта будут уведомлены об Ñтой ошибке " +"автоматичеÑки.\n" " Ð’Ñ‹ также можете обратитьÑÑ Ðº ним непоÑредÑтвенно:\n" " " @@ -1285,11 +1291,13 @@ msgstr "" #: aleksis/core/templates/503.html:13 msgid "" "\n" -" This page is currently unavailable. If this error persists, contact your site administrators:\n" +" This page is currently unavailable. If this error persists, " +"contact your site administrators:\n" " " msgstr "" "\n" -" Ðта Ñтраница ÑÐµÐ¹Ñ‡Ð°Ñ Ð½ÐµÐ´Ð¾Ñтупна. ЕÑли ошибка проÑвитÑÑ ÐµÑ‰Ñ‘ раз, обратитеÑÑŒ к админиÑтраторам Ñайта:\n" +" Ðта Ñтраница ÑÐµÐ¹Ñ‡Ð°Ñ Ð½ÐµÐ´Ð¾Ñтупна. ЕÑли ошибка проÑвитÑÑ ÐµÑ‰Ñ‘ раз, " +"обратитеÑÑŒ к админиÑтраторам Ñайта:\n" " " #: aleksis/core/templates/account/account_inactive.html:5 @@ -1330,13 +1338,21 @@ msgstr "Подтвердить" #: aleksis/core/templates/account/email_confirm.html:12 #, python-format -msgid "Please confirm that <a href=\"mailto:%(email)s\">%(email)s</a> is an e-mail address for user %(user_display)s." -msgstr "Подтвердите, пожалуйÑта, что <a href=\"mailto:%(email)s\">%(email)s</a> — Ñл.Ð°Ð´Ñ€ÐµÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %(user_display)s." +msgid "" +"Please confirm that <a href=\"mailto:%(email)s\">%(email)s</a> is an e-mail " +"address for user %(user_display)s." +msgstr "" +"Подтвердите, пожалуйÑта, что <a href=\"mailto:%(email)s\">%(email)s</a> — Ñл." +"Ð°Ð´Ñ€ÐµÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %(user_display)s." #: aleksis/core/templates/account/email_confirm.html:25 #, python-format -msgid "This e-mail confirmation link expired or is invalid. Please <a href=\"%(email_url)s\">issue a new e-mail confirmation request</a>." -msgstr "Ðта ÑÑылка Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ñл.почты проÑрочена или недейÑтвительна. Сделайте, пожалуйÑта, <a href=\"%(email_url)s\">новый запроÑ</a>." +msgid "" +"This e-mail confirmation link expired or is invalid. Please <a href=" +"\"%(email_url)s\">issue a new e-mail confirmation request</a>." +msgstr "" +"Ðта ÑÑылка Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ñл.почты проÑрочена или недейÑтвительна. " +"Сделайте, пожалуйÑта, <a href=\"%(email_url)s\">новый запроÑ</a>." #: aleksis/core/templates/account/password_change.html:5 #: aleksis/core/templates/account/password_change.html:6 @@ -1370,7 +1386,8 @@ msgstr "Изменение Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¾." msgid "" "\n" " Users are not allowed to edit their own passwords. If you think\n" -" this is an error please contact one of your site administrators.\n" +" this is an error please contact one of your site " +"administrators.\n" " " msgstr "" "\n" @@ -1389,8 +1406,12 @@ msgid "Reset password" msgstr "СброÑить пароль" #: aleksis/core/templates/account/password_reset.html:17 -msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it." -msgstr "Забыли пароль? Укажите ниже Ñвою Ñл.почту и мы отправим Вам пиÑьмо Ð´Ð»Ñ ÑброÑа паролÑ." +msgid "" +"Forgotten your password? Enter your e-mail address below, and we'll send you " +"an e-mail allowing you to reset it." +msgstr "" +"Забыли пароль? Укажите ниже Ñвою Ñл.почту и мы отправим Вам пиÑьмо Ð´Ð»Ñ " +"ÑброÑа паролÑ." #: aleksis/core/templates/account/password_reset.html:30 msgid "" @@ -1413,8 +1434,10 @@ msgid "" " " msgstr "" "\n" -" Мы отправили Вам Ñл.пиÑьмо. ЕÑли Ð’Ñ‹ не получите его на протÑжении\n" -" неÑкольких минут, обратитеÑÑŒ, пожалуйÑта, к админиÑтраторам Ñайта.\n" +" Мы отправили Вам Ñл.пиÑьмо. ЕÑли Ð’Ñ‹ не получите его на " +"протÑжении\n" +" неÑкольких минут, обратитеÑÑŒ, пожалуйÑта, к админиÑтраторам " +"Ñайта.\n" " " #: aleksis/core/templates/account/password_reset_from_key.html:15 @@ -1425,13 +1448,16 @@ msgstr "Ðеправильный токен" #, python-format msgid "" "\n" -" The password reset link was invalid, possibly because it has already been used. Please request a <a href=\"%(passwd_reset_url)s\"\n" +" The password reset link was invalid, possibly because it has " +"already been used. Please request a <a href=\"%(passwd_reset_url)s\"\n" " class=\"blue-text text-lighten-2\">new password reset</a>.\n" " " msgstr "" "\n" -" СÑылка на ÑÐ±Ñ€Ð¾Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð½ÐµÐ´ÐµÐ¹Ñтвительна или, возможно, уже иÑпользована. Сделайте, пожалуйÑта, <a href=\"%(passwd_reset_url)s\"\n" -" class=\"blue-text text-lighten-2\">новый Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑÐ±Ñ€Ð¾Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ</a>.\n" +" СÑылка на ÑÐ±Ñ€Ð¾Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð½ÐµÐ´ÐµÐ¹Ñтвительна или, возможно, уже " +"иÑпользована. Сделайте, пожалуйÑта, <a href=\"%(passwd_reset_url)s\"\n" +" class=\"blue-text text-lighten-2\">новый Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑÐ±Ñ€Ð¾Ñ " +"паролÑ</a>.\n" " " #: aleksis/core/templates/account/password_reset_from_key.html:25 @@ -1480,8 +1506,11 @@ msgstr "РегиÑтрациÑ" #: aleksis/core/templates/account/signup.html:12 #, python-format -msgid "Already have an account? Then please <a href=\"%(login_url)s\">sign in</a>." -msgstr "У Ð’Ð°Ñ ÑƒÐ¶Ðµ еÑть ÑƒÑ‡Ñ‘Ñ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ? Ð’ таком Ñлучае можете <a href=\"%(login_url)s\">войти</a>." +msgid "" +"Already have an account? Then please <a href=\"%(login_url)s\">sign in</a>." +msgstr "" +"У Ð’Ð°Ñ ÑƒÐ¶Ðµ еÑть ÑƒÑ‡Ñ‘Ñ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ? Ð’ таком Ñлучае можете <a href=\"%(login_url)s" +"\">войти</a>." #: aleksis/core/templates/account/signup.html:22 #: aleksis/core/templates/socialaccount/signup.html:23 @@ -1525,13 +1554,17 @@ msgstr "Подтвердите Ñвой Ð°Ð´Ñ€ÐµÑ Ñл.почты!" #: aleksis/core/templates/account/verification_sent.html:16 msgid "" "\n" -" This part of the site requires us to verify that you are who you claim to be.\n" -" For this purpose, we require that you verify ownership of your e-mail address.\n" +" This part of the site requires us to verify that you are who you " +"claim to be.\n" +" For this purpose, we require that you verify ownership of your e-" +"mail address.\n" " " msgstr "" "\n" -" Ð”Ð»Ñ Ñтой чаÑти Ñайта необходимо пройти проверку, что Ð’Ñ‹ - именно Ð’Ñ‹.\n" -" Ð”Ð»Ñ Ñтого нам нужно проверить как минимум, что Ð°Ð´Ñ€ÐµÑ Ñл.почты принадлежит именно Вам\n" +" Ð”Ð»Ñ Ñтой чаÑти Ñайта необходимо пройти проверку, что Ð’Ñ‹ - именно " +"Ð’Ñ‹.\n" +" Ð”Ð»Ñ Ñтого нам нужно проверить как минимум, что Ð°Ð´Ñ€ÐµÑ Ñл.почты " +"принадлежит именно Вам\n" " " #: aleksis/core/templates/account/verification_sent.html:22 @@ -1545,7 +1578,8 @@ msgstr "" "\n" " Мы отправили Вам Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ Ñл.пиÑьмо.\n" " ПожалуйÑта, перейдите по указанной ÑÑылке. ЕÑли Ð’Ñ‹ не получите\n" -" пиÑьмо в ближайшие неÑколько минут, обратитеÑÑŒ, пожалуйÑта, к нам.\n" +" пиÑьмо в ближайшие неÑколько минут, обратитеÑÑŒ, пожалуйÑта, к " +"нам.\n" " " #: aleksis/core/templates/core/additional_field/edit.html:6 @@ -1720,29 +1754,39 @@ msgstr "Редактировать информпанель" #: aleksis/core/templates/core/edit_dashboard.html:24 msgid "" "\n" -" On this page you can arrange your personal dashboard. You can drag any items from \"Available widgets\" to \"Your\n" -" Dashboard\" or change the order by moving the widgets. After you have finished, please don't forget to click on\n" +" On this page you can arrange your personal dashboard. You can drag " +"any items from \"Available widgets\" to \"Your\n" +" Dashboard\" or change the order by moving the widgets. After you " +"have finished, please don't forget to click on\n" " \"Save\".\n" " " msgstr "" "\n" -" Ðа Ñтой Ñтранице Ð’Ñ‹ можете упорÑдочить Ñвою информпанель. ПеретаÑкивайте любые Ñлементы из \"ДоÑтупных виджетов\"\n" -" в \"Свою информпанель\" или менÑйте порÑдок, перетÑÐ³Ð¸Ð²Ð°Ñ Ð²Ð¸Ð´Ð¶ÐµÑ‚Ñ‹. ПоÑле Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð½Ðµ забудьте нажать\n" +" Ðа Ñтой Ñтранице Ð’Ñ‹ можете упорÑдочить Ñвою информпанель. " +"ПеретаÑкивайте любые Ñлементы из \"ДоÑтупных виджетов\"\n" +" в \"Свою информпанель\" или менÑйте порÑдок, перетÑÐ³Ð¸Ð²Ð°Ñ Ð²Ð¸Ð´Ð¶ÐµÑ‚Ñ‹. " +"ПоÑле Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð½Ðµ забудьте нажать\n" " \"Сохранить\".\n" " " #: aleksis/core/templates/core/edit_dashboard.html:30 msgid "" "\n" -" On this page you can arrange the default dashboard which is shown when a user doesn't arrange his own\n" -" dashboard. You can drag any items from \"Available widgets\" to \"Default Dashboard\" or change the order\n" -" by moving the widgets. After you have finished, please don't forget to click on \"Save\".\n" +" On this page you can arrange the default dashboard which is shown " +"when a user doesn't arrange his own\n" +" dashboard. You can drag any items from \"Available widgets\" to " +"\"Default Dashboard\" or change the order\n" +" by moving the widgets. After you have finished, please don't " +"forget to click on \"Save\".\n" " " msgstr "" "\n" -" Ðа Ñтой Ñтранице Ð’Ñ‹ можете упорÑдочить типовую/Ñтандартную информпанель, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶Ð°ÐµÑ‚ÑÑ, еÑли пользователь\n" -" не наÑтроил Ñвою. ПеретÑгивайте любые Ñлементы из \"ДоÑтупных виджетов\" в \"Типовую информпанель\" или менÑйте \n" -" порÑдок, перетÑÐ³Ð¸Ð²Ð°Ñ Ð²Ð¸Ð´Ð¶ÐµÑ‚Ñ‹. ПоÑле Ð·Ð°Ð²Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð½Ðµ забудьте нажать \"Сохранить\".\n" +" Ðа Ñтой Ñтранице Ð’Ñ‹ можете упорÑдочить типовую/Ñтандартную " +"информпанель, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶Ð°ÐµÑ‚ÑÑ, еÑли пользователь\n" +" не наÑтроил Ñвою. ПеретÑгивайте любые Ñлементы из \"ДоÑтупных " +"виджетов\" в \"Типовую информпанель\" или менÑйте \n" +" порÑдок, перетÑÐ³Ð¸Ð²Ð°Ñ Ð²Ð¸Ð´Ð¶ÐµÑ‚Ñ‹. ПоÑле Ð·Ð°Ð²Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð½Ðµ забудьте нажать " +"\"Сохранить\".\n" " " #: aleksis/core/templates/core/edit_dashboard.html:48 @@ -1765,13 +1809,16 @@ msgstr "Определить дочерние группы к группе" #: aleksis/core/templates/core/group/child_groups.html:18 msgid "" "\n" -" You can use this to assign child groups to groups. Please use the filters below to select groups you want to\n" +" You can use this to assign child groups to groups. Please use the " +"filters below to select groups you want to\n" " change and click \"Next\".\n" " " msgstr "" "\n" -" Ð’Ñ‹ можете воÑпользоватьÑÑ Ñтим Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð²Ñзки дочерних групп к оÑновным. Ð”Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð° групп,\n" -" которые хотите изменить, иÑпользуйте фильтры, раÑположенные ниже и нажмите \"Далее\".\n" +" Ð’Ñ‹ можете воÑпользоватьÑÑ Ñтим Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð²Ñзки дочерних групп к " +"оÑновным. Ð”Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð° групп,\n" +" которые хотите изменить, иÑпользуйте фильтры, раÑположенные ниже и " +"нажмите \"Далее\".\n" " " #: aleksis/core/templates/core/group/child_groups.html:31 @@ -1797,7 +1844,8 @@ msgid "" " " msgstr "" "\n" -" Выберите, пожалуйÑта, неÑколько групп в порÑдке, по какому привÑзывать.\n" +" Выберите, пожалуйÑта, неÑколько групп в порÑдке, по какому " +"привÑзывать.\n" " " #: aleksis/core/templates/core/group/child_groups.html:72 @@ -1811,14 +1859,18 @@ msgstr "ПожалуйÑта, будьте аккуратны!" #: aleksis/core/templates/core/group/child_groups.html:79 msgid "" "\n" -" If you click \"Back\" or \"Next\" the current group assignments are not saved.\n" -" If you click \"Save\", you will overwrite all existing child group relations for this group with what you\n" +" If you click \"Back\" or \"Next\" the current group assignments " +"are not saved.\n" +" If you click \"Save\", you will overwrite all existing child " +"group relations for this group with what you\n" " selected on this page.\n" " " msgstr "" "\n" -" ЕÑли нажмёте \"Ðазад\" или \"Далее\" привÑзки Ñтой группы не ÑохранÑÑ‚ÑÑ.\n" -" ЕÑли нажмёте \"Сохранить\", вÑе ÑущеÑтвующие ÑвÑзи дочерней группы Ñ Ñтой группой будут заменены на\n" +" ЕÑли нажмёте \"Ðазад\" или \"Далее\" привÑзки Ñтой группы не " +"ÑохранÑÑ‚ÑÑ.\n" +" ЕÑли нажмёте \"Сохранить\", вÑе ÑущеÑтвующие ÑвÑзи дочерней " +"группы Ñ Ñтой группой будут заменены на\n" " выбранные на Ñтой Ñтранице.\n" " " @@ -1916,12 +1968,14 @@ msgstr "Домой" #: aleksis/core/templates/core/index.html:34 msgid "" "\n" -" You didn't customise your dashboard so that you see the system default. Please click on \"Edit dashboard\" to\n" +" You didn't customise your dashboard so that you see the system " +"default. Please click on \"Edit dashboard\" to\n" " customise your personal dashboard.\n" " " msgstr "" "\n" -" Ð’Ñ‹ ещё не наÑтроили Ñвою информпанель, так что пока наблюдаете типовую по-умолчанию. Ð”Ð»Ñ Ð½Ð°Ñтройки \n" +" Ð’Ñ‹ ещё не наÑтроили Ñвою информпанель, так что пока наблюдаете " +"типовую по-умолчанию. Ð”Ð»Ñ Ð½Ð°Ñтройки \n" " Ñвоей информпанели клацните \"Редактировать информпанель\".\n" " " @@ -1965,11 +2019,13 @@ msgstr "Включен режим обÑлуживаниÑ" #: aleksis/core/templates/core/pages/system_status.html:24 msgid "" "\n" -" Only admin and visitors from internal IPs can access the site.\n" +" Only admin and visitors from internal IPs can access the " +"site.\n" " " msgstr "" "\n" -" ДоÑтуп к Ñайту имеют только админиÑтратор и пользователи Ñ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½Ð¸Ð¼Ð¸ IP-адреÑами.\n" +" ДоÑтуп к Ñайту имеют только админиÑтратор и пользователи Ñ " +"внутренними IP-адреÑами.\n" " " #: aleksis/core/templates/core/pages/system_status.html:36 @@ -1987,11 +2043,13 @@ msgstr "Режим отладки включен" #: aleksis/core/templates/core/pages/system_status.html:49 msgid "" "\n" -" The web server throws back debug information on errors. Do not use in production!\n" +" The web server throws back debug information on errors. Do " +"not use in production!\n" " " msgstr "" "\n" -" Веб-Ñервер во Ð²Ñ€ÐµÐ¼Ñ Ð¾ÑˆÐ¸Ð±Ð¾Ðº пишет отладочную информацию. Ðе иÑпользуйте в продакшене!\n" +" Веб-Ñервер во Ð²Ñ€ÐµÐ¼Ñ Ð¾ÑˆÐ¸Ð±Ð¾Ðº пишет отладочную информацию. Ðе " +"иÑпользуйте в продакшене!\n" " " #: aleksis/core/templates/core/pages/system_status.html:56 @@ -2001,11 +2059,13 @@ msgstr "Режим отладки отключен" #: aleksis/core/templates/core/pages/system_status.html:58 msgid "" "\n" -" Debug mode is disabled. Default error pages are displayed on errors.\n" +" Debug mode is disabled. Default error pages are displayed on " +"errors.\n" " " msgstr "" "\n" -" Режим отладки отключен. Ð’ Ñлучае ошибок будут отображатьÑÑ Ñтандартные Ñтраницы об ошибках.\n" +" Режим отладки отключен. Ð’ Ñлучае ошибок будут отображатьÑÑ " +"Ñтандартные Ñтраницы об ошибках.\n" " " #: aleksis/core/templates/core/pages/system_status.html:71 @@ -2055,11 +2115,13 @@ msgstr "Пробное генерирование PDF" #: aleksis/core/templates/core/pages/test_pdf.html:14 msgid "" "\n" -" This simple view can be used to ensure the correct function of the built-in PDF generation system.\n" +" This simple view can be used to ensure the correct function of the " +"built-in PDF generation system.\n" " " msgstr "" "\n" -" Ðта проÑÑ‚Ð°Ñ Ñтраница может помочь проверить корректноÑть наÑтроек вÑтроенной ÑиÑтемы Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ PDF.\n" +" Ðта проÑÑ‚Ð°Ñ Ñтраница может помочь проверить корректноÑть наÑтроек " +"вÑтроенной ÑиÑтемы Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ PDF.\n" " " #: aleksis/core/templates/core/partials/announcements.html:8 @@ -2117,9 +2179,15 @@ msgstr "ÐеизвеÑтно" #: aleksis/core/templates/core/partials/splash_screen.html:11 msgid "" "\n" -" This webbrowser doesn't support JavaScript, or its execution is blocked. Please use another browser to continue.\n" +" This webbrowser doesn't support JavaScript, or its execution is " +"blocked. Please use another browser to continue.\n" " " msgstr "" +"\n" +" Ðтот веб-браузер не поддерживает JavaScript или его обработка " +"заблокирована. Ð”Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ Ð²Ð¾ÑпользуйтеÑÑŒ, пожалуйÑта, другим " +"браузером.\n" +" " #: aleksis/core/templates/core/perms/assign.html:12 #: aleksis/core/templates/core/perms/assign.html:13 @@ -2231,8 +2299,11 @@ msgid "The invite feature is disabled." msgstr "Ð¤ÑƒÐºÑ†Ð¸Ñ Ð¿Ñ€Ð¸Ð³Ð»Ð°ÑˆÐµÐ½Ð¸Ñ Ð²Ñ‹ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°." #: aleksis/core/templates/invitations/disabled.html:15 -msgid "To enable it, switch on the corresponding checkbox in the authentication section of the " -msgstr "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ включите ÑоответÑтвующий Ñ‡ÐµÐºÐ±Ð¾ÐºÑ Ð² разделе авторизации на " +msgid "" +"To enable it, switch on the corresponding checkbox in the authentication " +"section of the " +msgstr "" +"Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ включите ÑоответÑтвующий Ñ‡ÐµÐºÐ±Ð¾ÐºÑ Ð² разделе авторизации на " #: aleksis/core/templates/invitations/disabled.html:16 msgid "site preferences page" @@ -2399,26 +2470,23 @@ msgstr "Ошибка Ñети" #: aleksis/core/templates/offline.html:10 msgid "Page not available offline." -msgstr "" +msgstr "Ð’ автономном режиме Ñтраница не доÑтупна." #: aleksis/core/templates/offline.html:14 -#, fuzzy -#| msgid "" -#| "\n" -#| " There was an error accessing this page. You probably don't have an internet connection. Check to see if your WiFi\n" -#| " or mobile data is turned on and try again. If you think you are connected, please contact the system\n" -#| " administrators:\n" -#| " " msgid "" "\n" -" This page is not available offline. Since you probably don't have an internet connection, check to see if your WiFi\n" -" or mobile data is turned on and try again. If you think you are connected, please contact the system\n" +" This page is not available offline. Since you probably don't have an " +"internet connection, check to see if your WiFi\n" +" or mobile data is turned on and try again. If you think you are " +"connected, please contact the system\n" " administrators:\n" " " msgstr "" "\n" -" При доÑтупе к Ñтой Ñтранице произошла ошибка. Возможно, у Ð’Ð°Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð° Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð½ÐµÑ‚Ð¾Ð¼. УбедитеÑÑŒ, что Ваш WiFi\n" -" или мобильный интернет включены и попробуйте ещё раз. ЕÑли Ñчитаете, что Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸ÐµÐ¼ вÑÑ‘ хорошо, обратитеÑÑŒ,\n" +" Ðта Ñтраница в автономном режимен не доÑтупна. Возможно, у Ð’Ð°Ñ " +"проблема Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð½ÐµÑ‚Ð¾Ð¼. УбедитеÑÑŒ, что Ваш WiFi\n" +" или мобильный интернет включены и попробуйте ещё раз. ЕÑли Ñчитаете, " +"что Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸ÐµÐ¼ вÑÑ‘ хорошо, обратитеÑÑŒ,\n" " пожалуйÑта, к ÑиÑтемным админиÑтраторам:\n" " " @@ -2454,12 +2522,14 @@ msgstr "Ошибка входа учётной запиÑи третьей ÑÑ‚ #: aleksis/core/templates/socialaccount/authentication_error.html:15 msgid "" "\n" -" An error occurred while attempting to login via your third-party account.\n" +" An error occurred while attempting to login via your third-party " +"account.\n" " Please contact one of your site administrators.\n" " " msgstr "" "\n" -" Во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ¸ входа Ñ Ð’Ð°ÑˆÐµÐ¹ Ñторонней учётной запиÑью возникла ошибка входа.\n" +" Во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ¸ входа Ñ Ð’Ð°ÑˆÐµÐ¹ Ñторонней учётной запиÑью " +"возникла ошибка входа.\n" " ОбратитеÑÑŒ, пожалуйÑта, к админиÑтратору Ñайта.\n" " " @@ -2474,7 +2544,9 @@ msgstr "Удалить" #: aleksis/core/templates/socialaccount/connections.html:34 msgid "You currently have no third-party accounts connected to this account." -msgstr "Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ñƒ Ð’Ð°Ñ Ð½ÐµÑ‚ учётных запиÑей третих Ñторон, Ñоединённых Ñ Ñтой учётной запиÑью." +msgstr "" +"Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ñƒ Ð’Ð°Ñ Ð½ÐµÑ‚ учётных запиÑей третих Ñторон, Ñоединённых Ñ Ñтой учётной " +"запиÑью." #: aleksis/core/templates/socialaccount/connections.html:37 msgid "Add a Third-party Account" @@ -2504,11 +2576,15 @@ msgstr "Вход отменён" #, python-format msgid "" "\n" -" You decided to cancel logging in to our site using one of your existing accounts. If this was a mistake, please proceed to <a href=\"%(login_url)s\">sign in</a>.\n" +" You decided to cancel logging in to our site using one of your " +"existing accounts. If this was a mistake, please proceed to <a href=" +"\"%(login_url)s\">sign in</a>.\n" " " msgstr "" "\n" -" Похоже, Ð’Ñ‹ отменили вход на наш Ñайт Ñ Ð¾Ð´Ð½Ð¾Ð¹ из Ваших учётных запиÑей. ЕÑли Ñто произошло Ñлучайно, Ð’Ñ‹ можете <a href=\"%(login_url)s\">продолжить вход здеÑÑŒ</a>.\n" +" Похоже, Ð’Ñ‹ отменили вход на наш Ñайт Ñ Ð¾Ð´Ð½Ð¾Ð¹ из Ваших учётных " +"запиÑей. ЕÑли Ñто произошло Ñлучайно, Ð’Ñ‹ можете <a href=\"%(login_url)s" +"\">продолжить вход здеÑÑŒ</a>.\n" " " #: aleksis/core/templates/socialaccount/signup.html:12 @@ -2518,7 +2594,8 @@ msgid "" " %(site_name)s. As a final step, please complete the following form:" msgstr "" "Ð’Ñ‹ на пути к иÑпользованию Ñвоей учётной запиÑи %(provider_name)s\n" -" Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° в %(site_name)s. Заполните, пожалуйÑта, Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ñту форму:" +" Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° в %(site_name)s. Заполните, пожалуйÑта, Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ñту " +"форму:" #: aleksis/core/templates/socialaccount/snippets/provider_list.html:12 #, python-format @@ -2605,21 +2682,25 @@ msgstr "СиÑтема обнаружила новые проблемы Ñ Ð’Ð° #: aleksis/core/templates/templated_email/data_checks.email:6 msgid "" "the system detected some new problems with your data.\n" -"Please take some time to inspect them and solve the issues or mark them as ignored." +"Please take some time to inspect them and solve the issues or mark them as " +"ignored." msgstr "" "ÑиÑтема обнаружила новые проблемы Ñ Ð’Ð°ÑˆÐ¸Ð¼Ð¸ данными.\n" -"Уделите, пожалуйÑта, немного времени Ð´Ð»Ñ Ð¸Ñ… проверки и Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼, или же отметьте их Ð´Ð»Ñ Ð¸Ð³Ð½Ð¾Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ." +"Уделите, пожалуйÑта, немного времени Ð´Ð»Ñ Ð¸Ñ… проверки и Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼, или " +"же отметьте их Ð´Ð»Ñ Ð¸Ð³Ð½Ð¾Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ." #: aleksis/core/templates/templated_email/data_checks.email:15 msgid "" "\n" " the system detected some new problems with your data.\n" -" Please take some time to inspect them and solve the issues or mark them as ignored.\n" +" Please take some time to inspect them and solve the issues or mark them " +"as ignored.\n" " " msgstr "" "\n" " ÑиÑтема обнаружила новые проблемы Ñ Ð’Ð°ÑˆÐ¸Ð¼Ð¸ данными.\n" -" Уделите, пожалуйÑта, немного времени Ð´Ð»Ñ Ð¸Ñ… проверки и Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼, или же отметьте их Ð´Ð»Ñ Ð¸Ð³Ð½Ð¾Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ.\n" +" Уделите, пожалуйÑта, немного времени Ð´Ð»Ñ Ð¸Ñ… проверки и Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼, " +"или же отметьте их Ð´Ð»Ñ Ð¸Ð³Ð½Ð¾Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ.\n" " " #: aleksis/core/templates/templated_email/data_checks.email:23 @@ -2705,16 +2786,22 @@ msgid "" "\n" " Backup tokens can be used when your primary and backup\n" " phone numbers aren't available. The backup tokens below can be used\n" -" for login verification. If you've used up all your backup tokens, you\n" -" can generate a new set of backup tokens. Only the backup tokens shown\n" +" for login verification. If you've used up all your backup tokens, " +"you\n" +" can generate a new set of backup tokens. Only the backup tokens " +"shown\n" " below will be valid.\n" " " msgstr "" "\n" -" Резервные токены могут быть иÑпользованы, когда Ваши оÑновной и резервный\n" -" телефонные номера недоÑтупны. Резервные токены, указанные ниже, могут быть\n" -" иÑпользованы Ð´Ð»Ñ Ð²ÐµÑ€Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ входа. Когда Ð’Ñ‹ иÑпользуете вÑе резервные токены,\n" -" Ð’Ñ‹ Ñможете Ñгенерировать новый набор резервных токенов. ДейÑтвительными будут только\n" +" Резервные токены могут быть иÑпользованы, когда Ваши оÑновной и " +"резервный\n" +" телефонные номера недоÑтупны. Резервные токены, указанные ниже, " +"могут быть\n" +" иÑпользованы Ð´Ð»Ñ Ð²ÐµÑ€Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ входа. Когда Ð’Ñ‹ иÑпользуете вÑе " +"резервные токены,\n" +" Ð’Ñ‹ Ñможете Ñгенерировать новый набор резервных токенов. " +"ДейÑтвительными будут только\n" " токены, указанные ниже.\n" " " @@ -2765,7 +2852,9 @@ msgstr "" #: aleksis/core/templates/two_factor/core/login.html:47 msgid "Please login with your account to use the external application." -msgstr "Ð”Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð²Ð¾Ð¹Ð´Ð¸Ñ‚Ðµ, пожалуйÑта, в Ñвою учётную запиÑÑŒ." +msgstr "" +"Ð”Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð²Ð¾Ð¹Ð´Ð¸Ñ‚Ðµ, пожалуйÑта, в Ñвою учётную " +"запиÑÑŒ." #: aleksis/core/templates/two_factor/core/login.html:54 msgid "Please login to see this page." @@ -2774,24 +2863,28 @@ msgstr "Ð”Ð»Ñ Ð¿Ñ€Ð¾Ñмотра Ñтой Ñтраницы, пожалуйÑÑ‚ #: aleksis/core/templates/two_factor/core/login.html:65 msgid "" "\n" -" We are calling your phone right now, please enter the\n" +" We are calling your phone right now, please enter " +"the\n" " digits you hear.\n" " " msgstr "" "\n" -" Мы ÑÐµÐ¹Ñ‡Ð°Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð½Ð¸Ð¼ на Ваш номер. Ðапишите, пожалуйÑта, цифры,\n" +" Мы ÑÐµÐ¹Ñ‡Ð°Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð½Ð¸Ð¼ на Ваш номер. Ðапишите, " +"пожалуйÑта, цифры,\n" " которые Ð’Ñ‹ уÑлышите.\n" " " #: aleksis/core/templates/two_factor/core/login.html:70 msgid "" "\n" -" We sent you a text message, please enter the tokens we\n" +" We sent you a text message, please enter the tokens " +"we\n" " sent.\n" " " msgstr "" "\n" -" Мы отправили Вам текÑтовое Ñообщение. Ðапишите, пожалуйÑта, полученный\n" +" Мы отправили Вам текÑтовое Ñообщение. Ðапишите, " +"пожалуйÑта, полученный\n" " токен.\n" " " @@ -2810,15 +2903,21 @@ msgstr "" #: aleksis/core/templates/two_factor/core/login.html:81 msgid "" "\n" -" Use this form for entering backup tokens for logging in.\n" -" These tokens have been generated for you to print and keep safe. Please\n" -" enter one of these backup tokens to login to your account.\n" +" Use this form for entering backup tokens for logging " +"in.\n" +" These tokens have been generated for you to print and " +"keep safe. Please\n" +" enter one of these backup tokens to login to your " +"account.\n" " " msgstr "" "\n" -" Ð”Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° воÑпользуйтеÑÑŒ формой Ð´Ð»Ñ Ð²Ð²Ð¾Ð´Ð° резервных токенов.\n" -" Ðти токены были Ñгенерированы, чтобы Ð’Ñ‹ раÑпечатали их и Ñохранили в надёжном меÑте.\n" -" Ð”Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° укажите, пожалуйÑта, один из резервных токенов.\n" +" Ð”Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° воÑпользуйтеÑÑŒ формой Ð´Ð»Ñ Ð²Ð²Ð¾Ð´Ð° резервных " +"токенов.\n" +" Ðти токены были Ñгенерированы, чтобы Ð’Ñ‹ раÑпечатали их " +"и Ñохранили в надёжном меÑте.\n" +" Ð”Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° укажите, пожалуйÑта, один из резервных " +"токенов.\n" " " #: aleksis/core/templates/two_factor/core/login.html:109 @@ -2831,7 +2930,8 @@ msgstr "Или можете воÑпользоватьÑÑ Ð¾Ð´Ð½Ð¸Ð¼ из ре #: aleksis/core/templates/two_factor/core/login.html:122 msgid "As a last resort, you can use a backup token:" -msgstr "Ð’ качеÑтве поÑледней возможноÑти можете воÑпользоватьÑÑ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ñ‹Ð¼ токеном:" +msgstr "" +"Ð’ качеÑтве поÑледней возможноÑти можете воÑпользоватьÑÑ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ñ‹Ð¼ токеном:" #: aleksis/core/templates/two_factor/core/login.html:125 msgid "Use Backup Token" @@ -2848,12 +2948,16 @@ msgstr "ДоÑтуп отÑутÑтвует" #: aleksis/core/templates/two_factor/core/otp_required.html:10 msgid "" "The page you requested, enforces users to verify using\n" -" two-factor authentication for security reasons. You need to enable these\n" +" two-factor authentication for security reasons. You need to enable " +"these\n" " security features in order to access this page." msgstr "" -"Ð”Ð»Ñ Ð¿Ñ€Ð¾Ñмотра запрошенной Ñтраницы, Ñ Ð¾Ð³Ð»Ñдкой на безопаÑноÑть, необходима дополнительнаÑ\n" -" проверка Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñ Ð¸Ñпользованием двухфакторной аутентификации.\n" -" Ð”Ð»Ñ Ð´Ð¾Ñтупа к данной Ñтранице Ð’Ñ‹ должны включить Ñти функции безопаÑноÑти." +"Ð”Ð»Ñ Ð¿Ñ€Ð¾Ñмотра запрошенной Ñтраницы, Ñ Ð¾Ð³Ð»Ñдкой на безопаÑноÑть, необходима " +"дополнительнаÑ\n" +" проверка Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñ Ð¸Ñпользованием двухфакторной " +"аутентификации.\n" +" Ð”Ð»Ñ Ð´Ð¾Ñтупа к данной Ñтранице Ð’Ñ‹ должны включить Ñти функции " +"безопаÑноÑти." #: aleksis/core/templates/two_factor/core/otp_required.html:14 msgid "" @@ -2901,7 +3005,8 @@ msgid "" " " msgstr "" "\n" -" Ð’Ñ‹ уÑтанавливаете Ð´Ð»Ñ Ñвоей учётной запиÑи новый уровень безопаÑноÑти.\n" +" Ð’Ñ‹ уÑтанавливаете Ð´Ð»Ñ Ñвоей учётной запиÑи новый уровень " +"безопаÑноÑти.\n" " Ð”Ð»Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð´Ð²ÑƒÑ…Ñ„Ð°ÐºÑ‚Ð¾Ñ€Ð½Ð¾Ð¹ аутентификации пройдите неÑколько шагов\n" " маÑтера наÑтройки.\n" " " @@ -2913,20 +3018,24 @@ msgid "" " " msgstr "" "\n" -" Выберите, пожалуйÑта, метод аутентификации, который Ð’Ñ‹ хотите иÑпользовать:\n" +" Выберите, пожалуйÑта, метод аутентификации, который Ð’Ñ‹ хотите " +"иÑпользовать:\n" " " #: aleksis/core/templates/two_factor/core/setup.html:23 msgid "" "\n" " To start using a token generator, please use your\n" -" favourite two factor authentication (TOTP) app to scan the QR code below.\n" +" favourite two factor authentication (TOTP) app to scan the QR code " +"below.\n" " Then, enter the token generated by the app.\n" " " msgstr "" "\n" -" Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾, чтобы начать иÑпользование генератора токенов, воÑпользуйтеÑÑŒ, пожалуйÑта, Ñвоим\n" -" любимым приложением Ð´Ð»Ñ Ð´Ð²ÑƒÑ…Ñ„Ð°ÐºÑ‚Ð¾Ñ€Ð½Ð¾Ð¹ аутентификации (TOTP) и отÑканируйте QR-код, который видите ниже.\n" +" Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾, чтобы начать иÑпользование генератора токенов, " +"воÑпользуйтеÑÑŒ, пожалуйÑта, Ñвоим\n" +" любимым приложением Ð´Ð»Ñ Ð´Ð²ÑƒÑ…Ñ„Ð°ÐºÑ‚Ð¾Ñ€Ð½Ð¾Ð¹ аутентификации (TOTP) и " +"отÑканируйте QR-код, который видите ниже.\n" " ПоÑле Ñтого напишите полученный генератором токен.\n" " " @@ -2957,11 +3066,13 @@ msgstr "" #: aleksis/core/templates/two_factor/core/setup.html:50 msgid "" "\n" -" We are calling your phone right now, please enter the digits you hear.\n" +" We are calling your phone right now, please enter the digits you " +"hear.\n" " " msgstr "" "\n" -" Мы ÑÐµÐ¹Ñ‡Ð°Ñ Ð·Ð²Ð¾Ð½Ð¸Ð¼ на Ваш номер, – напишите, пожалуйÑта, цифры, которые уÑлышите.\n" +" Мы ÑÐµÐ¹Ñ‡Ð°Ñ Ð·Ð²Ð¾Ð½Ð¸Ð¼ на Ваш номер, – напишите, пожалуйÑта, цифры, " +"которые уÑлышите.\n" " " #: aleksis/core/templates/two_factor/core/setup.html:56 @@ -2971,22 +3082,29 @@ msgid "" " " msgstr "" "\n" -" Мы отправили Вам текÑтовое Ñообщение. Ðапишите, пожалуйÑта, полученные токены.\n" +" Мы отправили Вам текÑтовое Ñообщение. Ðапишите, пожалуйÑта, " +"полученные токены.\n" " " #: aleksis/core/templates/two_factor/core/setup.html:63 msgid "" "\n" -" We've encountered an issue with the selected authentication method. Please\n" -" go back and verify that you entered your information correctly, try\n" -" again, or use a different authentication method instead. If the issue\n" +" We've encountered an issue with the selected authentication " +"method. Please\n" +" go back and verify that you entered your information correctly, " +"try\n" +" again, or use a different authentication method instead. If the " +"issue\n" " persists, contact the site administrator.\n" " " msgstr "" "\n" -" Мы заметили, что ÑущеÑтвует проблема Ñ Ð¸Ñпользованием выбранного метода авторизации. ВернитеÑÑŒ,\n" -" пожалуйÑта, назад, и убедитеÑÑŒ, что необходимые данные указаны правильно,\n" -" поÑле чего попробуйте зайти ешё раз, или же воÑпользуйтеÑÑŒ другим вариантом входа. ЕÑли же\n" +" Мы заметили, что ÑущеÑтвует проблема Ñ Ð¸Ñпользованием выбранного " +"метода авторизации. ВернитеÑÑŒ,\n" +" пожалуйÑта, назад, и убедитеÑÑŒ, что необходимые данные указаны " +"правильно,\n" +" поÑле чего попробуйте зайти ешё раз, или же воÑпользуйтеÑÑŒ другим " +"вариантом входа. ЕÑли же\n" " проблема оÑтаётÑÑ, обратитеÑÑŒ к админиÑтратору Ñайта.\n" " " @@ -3012,7 +3130,8 @@ msgstr "Ð”Ð²ÑƒÑ…Ñ„Ð°ÐºÑ‚Ð¾Ñ€Ð½Ð°Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ ÑƒÑпешно #: aleksis/core/templates/two_factor/core/setup_complete.html:14 msgid "" "\n" -" Congratulations, you've successfully enabled two-factor authentication.\n" +" Congratulations, you've successfully enabled two-factor " +"authentication.\n" " " msgstr "" "\n" @@ -3033,13 +3152,16 @@ msgstr "Создать резервные коды" msgid "" "\n" " However, it might happen that you don't have access to\n" -" your primary token device. To enable account recovery, generate backup codes\n" +" your primary token device. To enable account recovery, generate " +"backup codes\n" " or add a phone number.\n" " " msgstr "" "\n" -" Между прочим, может так ÑлучитьÑÑ, что у Ð’Ð°Ñ Ð½Ðµ будет доÑтупа к Ñвоему оÑновному\n" -" уÑтройÑтву Ñ Ñ‚Ð¾ÐºÐµÐ½Ð°Ð¼Ð¸. Ð”Ð»Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑƒÑ‡Ñ‘Ñ‚ÐºÐ¸ Ñоздайте резервные коды\n" +" Между прочим, может так ÑлучитьÑÑ, что у Ð’Ð°Ñ Ð½Ðµ будет доÑтупа к " +"Ñвоему оÑновному\n" +" уÑтройÑтву Ñ Ñ‚Ð¾ÐºÐµÐ½Ð°Ð¼Ð¸. Ð”Ð»Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑƒÑ‡Ñ‘Ñ‚ÐºÐ¸ " +"Ñоздайте резервные коды\n" " или добавьте номер телефона.\n" " " @@ -3056,8 +3178,12 @@ msgid "Disable Two-Factor Authentication" msgstr "Отключить двухфакторную аутентификацию" #: aleksis/core/templates/two_factor/profile/disable.html:12 -msgid "You are about to disable two-factor authentication. This weakens your account security, are you sure?" -msgstr "Ð’Ñ‹ отключаете двухфакторную аутентификацию. Ðто Ñнизит защиту Вашей учётной запиÑи. Ð’Ñ‹ уверены?" +msgid "" +"You are about to disable two-factor authentication. This weakens your " +"account security, are you sure?" +msgstr "" +"Ð’Ñ‹ отключаете двухфакторную аутентификацию. Ðто Ñнизит защиту Вашей учётной " +"запиÑи. Ð’Ñ‹ уверены?" #: aleksis/core/templates/two_factor/profile/disable.html:26 msgid "Disable" @@ -3145,7 +3271,8 @@ msgid "" msgstr "" "\n" " Ðе ÑÐ¼Ð¾Ñ‚Ñ€Ñ Ð½Ð° то, что мы Вам рекомендуем Ñтого не делать, Ð’Ñ‹ можете \n" -" также отключить двухфакторную аутентификацию Ð´Ð»Ñ Ñвоей учётной запиÑи.\n" +" также отключить двухфакторную аутентификацию Ð´Ð»Ñ Ñвоей учётной " +"запиÑи.\n" " " #: aleksis/core/templates/two_factor/profile/profile.html:78 @@ -3287,52 +3414,60 @@ msgstr "Виджет информпанели Ñоздан." msgid "The dashboard widget has been deleted." msgstr "Виджет информпанели удалён." -#: aleksis/core/views.py:1030 +#: aleksis/core/views.py:1030 aleksis/core/views.py:1031 msgid "Your dashboard configuration has been saved successfully." msgstr "Ваша ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð¿Ð°Ð½ÐµÐ»Ð¸ Ñохранена." -#: aleksis/core/views.py:1032 +#: aleksis/core/views.py:1032 aleksis/core/views.py:1033 msgid "The configuration of the default dashboard has been saved successfully." msgstr "ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ð¹/Ñтандартной информпанели." -#: aleksis/core/views.py:1103 +#: aleksis/core/views.py:1103 aleksis/core/views.py:1104 #, python-brace-format msgid "The invitation was successfully created. The invitation code is {code}" msgstr "Приглашение уÑпешно Ñоздано. Код приглашениÑ: {code}" -#: aleksis/core/views.py:1200 +#: aleksis/core/views.py:1200 aleksis/core/views.py:1201 msgid "We have successfully assigned the permissions." msgstr "Мы уÑпешно назначили доÑтупы." -#: aleksis/core/views.py:1210 +#: aleksis/core/views.py:1210 aleksis/core/views.py:1211 msgid "The global user permission has been deleted." msgstr "Глобальный пользовательÑкий доÑтуп удалён." -#: aleksis/core/views.py:1220 +#: aleksis/core/views.py:1220 aleksis/core/views.py:1221 msgid "The global group permission has been deleted." msgstr "Глобальный групповой доÑтуп удалён." -#: aleksis/core/views.py:1230 +#: aleksis/core/views.py:1230 aleksis/core/views.py:1231 msgid "The object user permission has been deleted." msgstr "Объектный пользовательÑкий доÑтуп удалён." -#: aleksis/core/views.py:1240 +#: aleksis/core/views.py:1240 aleksis/core/views.py:1241 msgid "The object group permission has been deleted." msgstr "Объектный групповой доÑтуп удалён." -#: aleksis/core/views.py:1349 -msgid "The third-party account could not be disconnected because it is the only login method available." -msgstr "Учётную запиÑÑŒ третьей Ñтороны Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ, Ñ‚.к. Ñто единÑтвенный ÑпоÑоб входа." +#: aleksis/core/views.py:1349 aleksis/core/views.py:1350 +msgid "" +"The third-party account could not be disconnected because it is the only " +"login method available." +msgstr "" +"Учётную запиÑÑŒ третьей Ñтороны Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ, Ñ‚.к. Ñто единÑтвенный " +"ÑпоÑоб входа." -#: aleksis/core/views.py:1356 +#: aleksis/core/views.py:1356 aleksis/core/views.py:1357 msgid "The third-party account has been successfully disconnected." msgstr "Ð£Ñ‡Ñ‘Ñ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ третьей Ñтороны уÑпешно отключена." -#: aleksis/core/views.py:1432 -msgid "Person was invited successfully and an email with further instructions has been send to them." -msgstr "Владелец указанного Ñл.адреÑа уÑпешно приглашён. ИнÑтрукции о дальнейших дейÑтвиÑÑ… отправлены на Ñл.почту." +#: aleksis/core/views.py:1432 aleksis/core/views.py:1433 +msgid "" +"Person was invited successfully and an email with further instructions has " +"been send to them." +msgstr "" +"Владелец указанного Ñл.адреÑа уÑпешно приглашён. ИнÑтрукции о дальнейших " +"дейÑтвиÑÑ… отправлены на Ñл.почту." -#: aleksis/core/views.py:1443 +#: aleksis/core/views.py:1443 aleksis/core/views.py:1444 msgid "Person was already invited." msgstr "Кто-то уже приглаÑил его/её." @@ -3439,8 +3574,14 @@ msgstr "Кто-то уже приглаÑил его/её." #~ msgid "ICal Feeds" #~ msgstr "iCal-ленты" -#~ msgid "These are URLs for different Calendar Feeds in the iCal (.ics) format. You can create as many as you want and import them in your calendar software." -#~ msgstr "ЗдеÑÑŒ находÑÑ‚ÑÑ ÑÑылки на разные ленты календарей в формате iCal (.ics). Ð’Ñ‹ можете Ñоздать их Ñтолько, Ñколько будет необходимо и импортировать их в ПО Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ ÐºÐ°Ð»ÐµÐ½Ð´Ð°Ñ€Ñми." +#~ msgid "" +#~ "These are URLs for different Calendar Feeds in the iCal (.ics) format. " +#~ "You can create as many as you want and import them in your calendar " +#~ "software." +#~ msgstr "" +#~ "ЗдеÑÑŒ находÑÑ‚ÑÑ ÑÑылки на разные ленты календарей в формате iCal (.ics). " +#~ "Ð’Ñ‹ можете Ñоздать их Ñтолько, Ñколько будет необходимо и импортировать их " +#~ "в ПО Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ ÐºÐ°Ð»ÐµÐ½Ð´Ð°Ñ€Ñми." #~ msgid "Your iCal URLs" #~ msgstr "Ваши ÑÑылки iCal" @@ -3465,24 +3606,30 @@ msgstr "Кто-то уже приглаÑил его/её." #~ msgid "" #~ "\n" -#~ " This platform is powered by AlekSIS®, a web-based school information system (SIS) which can be used\n" -#~ " to manage and/or publish organisational artifacts of educational institutions. AlekSIS is free software and\n" +#~ " This platform is powered by AlekSIS®, a web-based school " +#~ "information system (SIS) which can be used\n" +#~ " to manage and/or publish organisational artifacts of " +#~ "educational institutions. AlekSIS is free software and\n" #~ " can be used by anyone.\n" #~ " " #~ msgstr "" #~ "\n" -#~ " Ðта платформа иÑпользует AlekSIS®, веб-инÑтрумент информационной ÑиÑтемы Ð´Ð»Ñ Ð¾Ð±ÑƒÑ‡ÐµÐ½Ð¸Ñ (SIS) при помощи которой\n" -#~ " можно управлÑть и/или публиковать оргинформацию учебных заведений. AlekSIS - беÑплатное ПО\n" +#~ " Ðта платформа иÑпользует AlekSIS®, веб-инÑтрумент " +#~ "информационной ÑиÑтемы Ð´Ð»Ñ Ð¾Ð±ÑƒÑ‡ÐµÐ½Ð¸Ñ (SIS) при помощи которой\n" +#~ " можно управлÑть и/или публиковать оргинформацию учебных " +#~ "заведений. AlekSIS - беÑплатное ПО\n" #~ " и его может иÑпользовать любой желающий.\n" #~ " " #~ msgid "" #~ "\n" -#~ " AlekSIS® is a registered trademark of the AlekSIS open source project, represented by Teckids e.V.\n" +#~ " AlekSIS® is a registered trademark of the AlekSIS open " +#~ "source project, represented by Teckids e.V.\n" #~ " " #~ msgstr "" #~ "\n" -#~ " AlekSIS® – зарегиÑÑ‚Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñ‚Ð¾Ñ€Ð³Ð¾Ð²Ð°Ñ Ð¼Ð°Ñ€ÐºÐ° проекта Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом AlekSIS, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¿Ñ€ÐµÐ´Ñтавлена Teckids e.V.\n" +#~ " AlekSIS® – зарегиÑÑ‚Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñ‚Ð¾Ñ€Ð³Ð¾Ð²Ð°Ñ Ð¼Ð°Ñ€ÐºÐ° проекта Ñ " +#~ "открытым иÑходным кодом AlekSIS, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¿Ñ€ÐµÐ´Ñтавлена Teckids e.V.\n" #~ " " #~ msgid "Website of AlekSIS" @@ -3496,14 +3643,18 @@ msgstr "Кто-то уже приглаÑил его/её." #~ msgid "" #~ "\n" -#~ " The core and the official apps of AlekSIS are licenced under the EUPL, version 1.2 or later. For licence\n" -#~ " information from third-party apps, if installed, refer to the respective components below. The\n" +#~ " The core and the official apps of AlekSIS are licenced " +#~ "under the EUPL, version 1.2 or later. For licence\n" +#~ " information from third-party apps, if installed, refer to " +#~ "the respective components below. The\n" #~ " licences are marked like this:\n" #~ " " #~ msgstr "" #~ "\n" -#~ " Ядро и официальные Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ AlekSIS лицензированы под лицензией EUPL, верÑии 1.2 или новее. Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¸\n" -#~ " о компонентах третих Ñторон, еÑли таковы уÑтановлены, перейдите к ÑоответÑтвующим компонентам ниже.\n" +#~ " Ядро и официальные Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ AlekSIS лицензированы под " +#~ "лицензией EUPL, верÑии 1.2 или новее. Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¸\n" +#~ " о компонентах третих Ñторон, еÑли таковы уÑтановлены, " +#~ "перейдите к ÑоответÑтвующим компонентам ниже.\n" #~ " Ðти лицензии обозначены такой отметкой:\n" #~ " " @@ -3531,11 +3682,13 @@ msgstr "Кто-то уже приглаÑил его/её." #~ msgid "" #~ "\n" -#~ " Without activated JavaScript the progress status can't be updated.\n" +#~ " Without activated JavaScript the progress status can't be " +#~ "updated.\n" #~ " " #~ msgstr "" #~ "\n" -#~ " Без активного JavaScript ÑÑ‚Ð°Ñ‚ÑƒÑ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÑтьÑÑ Ð½Ðµ Ñможет.\n" +#~ " Без активного JavaScript ÑÑ‚Ð°Ñ‚ÑƒÑ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÑтьÑÑ Ð½Ðµ " +#~ "Ñможет.\n" #~ " " #~ msgid "Language" @@ -3546,12 +3699,14 @@ msgstr "Кто-то уже приглаÑил его/её." #~ msgid "" #~ "\n" -#~ " Your administrator account is not linked to any person. Therefore,\n" +#~ " Your administrator account is not linked to any person. " +#~ "Therefore,\n" #~ " a dummy person has been linked to your account.\n" #~ " " #~ msgstr "" #~ "\n" -#~ " Ваша админиÑÑ‚Ñ€Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ ÑƒÑ‡Ñ‘Ñ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ не Ñоединена на Ñ Ð¾Ð´Ð½Ð¸Ð¼ физлицом. ПоÑтому\n" +#~ " Ваша админиÑÑ‚Ñ€Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ ÑƒÑ‡Ñ‘Ñ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ не Ñоединена на Ñ Ð¾Ð´Ð½Ð¸Ð¼ " +#~ "физлицом. ПоÑтому\n" #~ " к Вашей учётной запиÑи привÑзано фейковое физлицо.\n" #~ " " @@ -3564,8 +3719,10 @@ msgstr "Кто-то уже приглаÑил его/её." #~ msgstr "" #~ "\n" #~ " Ваша ÑƒÑ‡Ñ‘Ñ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ не ÑвÑзана Ñ Ñ„Ð¸Ð·Ð»Ð¸Ñ†Ð¾Ð¼. Ðто значит,\n" -#~ " что у Ð’Ð°Ñ Ð½ÐµÑ‚ доÑтупа на к какой учебной информации. ОбратитеÑÑŒ,\n" -#~ " пожалуйÑта, к админиÑтраторам AlekSIS в Вашем учебном заведении.\n" +#~ " что у Ð’Ð°Ñ Ð½ÐµÑ‚ доÑтупа на к какой учебной информации. " +#~ "ОбратитеÑÑŒ,\n" +#~ " пожалуйÑта, к админиÑтраторам AlekSIS в Вашем учебном " +#~ "заведении.\n" #~ " " #~ msgid "Impersonate" diff --git a/aleksis/core/locale/tr_TR/LC_MESSAGES/django.po b/aleksis/core/locale/tr_TR/LC_MESSAGES/django.po index c79394a38e698af3a7ccc7991756d9c7b2a82bd3..d81b066899e79032a2540d2433bbdd93d03dc6a9 100644 --- a/aleksis/core/locale/tr_TR/LC_MESSAGES/django.po +++ b/aleksis/core/locale/tr_TR/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: AlekSIS (School Information System) 0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-22 20:49+0100\n" +"POT-Creation-Date: 2023-02-15 20:00+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" @@ -396,7 +396,7 @@ msgstr "" msgid "other" msgstr "" -#: aleksis/core/models.py:189 aleksis/core/models.py:1345 +#: aleksis/core/models.py:189 aleksis/core/models.py:1353 msgid "Linked user" msgstr "" @@ -405,7 +405,7 @@ msgid "Additional name(s)" msgstr "" #: aleksis/core/models.py:199 aleksis/core/models.py:511 -#: aleksis/core/models.py:1431 +#: aleksis/core/models.py:1439 msgid "Short name" msgstr "" @@ -467,7 +467,7 @@ msgstr "" #: aleksis/core/models.py:244 aleksis/core/models.py:724 #: aleksis/core/models.py:748 aleksis/core/models.py:843 -#: aleksis/core/models.py:1104 +#: aleksis/core/models.py:1112 msgid "Description" msgstr "" @@ -503,7 +503,7 @@ msgstr "" msgid "Can view statistics about group." msgstr "" -#: aleksis/core/models.py:509 aleksis/core/models.py:1432 +#: aleksis/core/models.py:509 aleksis/core/models.py:1440 msgid "Long name" msgstr "" @@ -530,7 +530,7 @@ msgid "Additional fields" msgstr "" #: aleksis/core/models.py:723 aleksis/core/models.py:747 -#: aleksis/core/models.py:842 aleksis/core/models.py:1262 +#: aleksis/core/models.py:842 aleksis/core/models.py:1270 #: aleksis/core/templates/core/announcement/list.html:18 msgid "Title" msgstr "" @@ -560,7 +560,7 @@ msgid "Link" msgstr "" #: aleksis/core/models.py:752 aleksis/core/models.py:1079 -#: aleksis/core/models.py:1392 +#: aleksis/core/models.py:1400 #: aleksis/core/templates/oauth2_provider/application/detail.html:26 msgid "Icon" msgstr "" @@ -743,205 +743,205 @@ msgstr "" msgid "Custom menu items" msgstr "" -#: aleksis/core/models.py:1103 +#: aleksis/core/models.py:1111 msgid "Title of type" msgstr "" -#: aleksis/core/models.py:1110 aleksis/core/templates/core/group/full.html:50 +#: aleksis/core/models.py:1118 aleksis/core/templates/core/group/full.html:50 msgid "Group type" msgstr "" -#: aleksis/core/models.py:1111 +#: aleksis/core/models.py:1119 #: aleksis/core/templates/core/group_type/list.html:8 #: aleksis/core/templates/core/group_type/list.html:9 msgid "Group types" msgstr "" -#: aleksis/core/models.py:1124 +#: aleksis/core/models.py:1132 msgid "Can view system status" msgstr "" -#: aleksis/core/models.py:1125 +#: aleksis/core/models.py:1133 msgid "Can manage data" msgstr "" -#: aleksis/core/models.py:1126 +#: aleksis/core/models.py:1134 msgid "Can impersonate" msgstr "" -#: aleksis/core/models.py:1127 +#: aleksis/core/models.py:1135 msgid "Can use search" msgstr "" -#: aleksis/core/models.py:1128 +#: aleksis/core/models.py:1136 msgid "Can change site preferences" msgstr "" -#: aleksis/core/models.py:1129 +#: aleksis/core/models.py:1137 msgid "Can change person preferences" msgstr "" -#: aleksis/core/models.py:1130 +#: aleksis/core/models.py:1138 msgid "Can change group preferences" msgstr "" -#: aleksis/core/models.py:1131 +#: aleksis/core/models.py:1139 msgid "Can test PDF generation" msgstr "" -#: aleksis/core/models.py:1132 +#: aleksis/core/models.py:1140 msgid "Can invite persons" msgstr "" -#: aleksis/core/models.py:1168 +#: aleksis/core/models.py:1176 msgid "Related data check task" msgstr "" -#: aleksis/core/models.py:1176 +#: aleksis/core/models.py:1184 msgid "Issue solved" msgstr "" -#: aleksis/core/models.py:1177 +#: aleksis/core/models.py:1185 msgid "Notification sent" msgstr "" -#: aleksis/core/models.py:1190 +#: aleksis/core/models.py:1198 msgid "Data check result" msgstr "" -#: aleksis/core/models.py:1191 +#: aleksis/core/models.py:1199 msgid "Data check results" msgstr "" -#: aleksis/core/models.py:1193 +#: aleksis/core/models.py:1201 msgid "Can run data checks" msgstr "" -#: aleksis/core/models.py:1194 +#: aleksis/core/models.py:1202 msgid "Can solve data check problems" msgstr "" -#: aleksis/core/models.py:1201 +#: aleksis/core/models.py:1209 msgid "E-Mail address" msgstr "" -#: aleksis/core/models.py:1233 +#: aleksis/core/models.py:1241 msgid "Owner" msgstr "" -#: aleksis/core/models.py:1237 +#: aleksis/core/models.py:1245 msgid "File expires at" msgstr "" -#: aleksis/core/models.py:1240 +#: aleksis/core/models.py:1248 msgid "Generated HTML file" msgstr "" -#: aleksis/core/models.py:1243 +#: aleksis/core/models.py:1251 msgid "Generated PDF file" msgstr "" -#: aleksis/core/models.py:1250 +#: aleksis/core/models.py:1258 msgid "PDF file" msgstr "" -#: aleksis/core/models.py:1251 +#: aleksis/core/models.py:1259 msgid "PDF files" msgstr "" -#: aleksis/core/models.py:1256 +#: aleksis/core/models.py:1264 msgid "Task result" msgstr "" -#: aleksis/core/models.py:1259 +#: aleksis/core/models.py:1267 msgid "Task user" msgstr "" -#: aleksis/core/models.py:1263 +#: aleksis/core/models.py:1271 msgid "Back URL" msgstr "" -#: aleksis/core/models.py:1264 +#: aleksis/core/models.py:1272 msgid "Progress title" msgstr "" -#: aleksis/core/models.py:1265 +#: aleksis/core/models.py:1273 msgid "Error message" msgstr "" -#: aleksis/core/models.py:1266 +#: aleksis/core/models.py:1274 msgid "Success message" msgstr "" -#: aleksis/core/models.py:1267 +#: aleksis/core/models.py:1275 msgid "Redirect on success URL" msgstr "" -#: aleksis/core/models.py:1269 +#: aleksis/core/models.py:1277 msgid "Additional button title" msgstr "" -#: aleksis/core/models.py:1271 +#: aleksis/core/models.py:1279 msgid "Additional button URL" msgstr "" -#: aleksis/core/models.py:1273 +#: aleksis/core/models.py:1281 msgid "Additional button icon" msgstr "" -#: aleksis/core/models.py:1275 +#: aleksis/core/models.py:1283 msgid "Result fetched" msgstr "" -#: aleksis/core/models.py:1300 +#: aleksis/core/models.py:1308 msgid "Background task completed successfully" msgstr "" -#: aleksis/core/models.py:1301 +#: aleksis/core/models.py:1309 msgid "The background task '{}' has been completed successfully." msgstr "" -#: aleksis/core/models.py:1307 +#: aleksis/core/models.py:1315 msgid "Background task failed" msgstr "" -#: aleksis/core/models.py:1308 +#: aleksis/core/models.py:1316 msgid "The background task '{}' has failed." msgstr "" -#: aleksis/core/models.py:1317 +#: aleksis/core/models.py:1325 msgid "Background task" msgstr "" -#: aleksis/core/models.py:1331 +#: aleksis/core/models.py:1339 msgid "Task user assignment" msgstr "" -#: aleksis/core/models.py:1332 +#: aleksis/core/models.py:1340 msgid "Task user assignments" msgstr "" -#: aleksis/core/models.py:1348 +#: aleksis/core/models.py:1356 msgid "Additional attributes" msgstr "" -#: aleksis/core/models.py:1386 +#: aleksis/core/models.py:1394 msgid "Allowed scopes that clients can request" msgstr "" -#: aleksis/core/models.py:1396 +#: aleksis/core/models.py:1404 msgid "This image will be shown as icon in the authorization flow. It should be squared." msgstr "" -#: aleksis/core/models.py:1441 +#: aleksis/core/models.py:1449 msgid "Can view room timetable" msgstr "" -#: aleksis/core/models.py:1443 +#: aleksis/core/models.py:1451 msgid "Room" msgstr "" -#: aleksis/core/models.py:1444 +#: aleksis/core/models.py:1452 msgid "Rooms" msgstr "" @@ -1153,15 +1153,15 @@ msgstr "" msgid "Country for phone number parsing" msgstr "" -#: aleksis/core/settings.py:539 +#: aleksis/core/settings.py:544 msgid "English" msgstr "" -#: aleksis/core/settings.py:540 +#: aleksis/core/settings.py:545 msgid "German" msgstr "" -#: aleksis/core/settings.py:541 +#: aleksis/core/settings.py:546 msgid "Ukrainian" msgstr "" @@ -2979,51 +2979,51 @@ msgstr "" msgid "The dashboard widget has been deleted." msgstr "" -#: aleksis/core/views.py:1030 +#: aleksis/core/views.py:1031 msgid "Your dashboard configuration has been saved successfully." msgstr "" -#: aleksis/core/views.py:1032 +#: aleksis/core/views.py:1033 msgid "The configuration of the default dashboard has been saved successfully." msgstr "" -#: aleksis/core/views.py:1103 +#: aleksis/core/views.py:1104 #, python-brace-format msgid "The invitation was successfully created. The invitation code is {code}" msgstr "" -#: aleksis/core/views.py:1200 +#: aleksis/core/views.py:1201 msgid "We have successfully assigned the permissions." msgstr "" -#: aleksis/core/views.py:1210 +#: aleksis/core/views.py:1211 msgid "The global user permission has been deleted." msgstr "" -#: aleksis/core/views.py:1220 +#: aleksis/core/views.py:1221 msgid "The global group permission has been deleted." msgstr "" -#: aleksis/core/views.py:1230 +#: aleksis/core/views.py:1231 msgid "The object user permission has been deleted." msgstr "" -#: aleksis/core/views.py:1240 +#: aleksis/core/views.py:1241 msgid "The object group permission has been deleted." msgstr "" -#: aleksis/core/views.py:1349 +#: aleksis/core/views.py:1350 msgid "The third-party account could not be disconnected because it is the only login method available." msgstr "" -#: aleksis/core/views.py:1356 +#: aleksis/core/views.py:1357 msgid "The third-party account has been successfully disconnected." msgstr "" -#: aleksis/core/views.py:1432 +#: aleksis/core/views.py:1433 msgid "Person was invited successfully and an email with further instructions has been send to them." msgstr "" -#: aleksis/core/views.py:1443 +#: aleksis/core/views.py:1444 msgid "Person was already invited." msgstr "" diff --git a/aleksis/core/locale/uk/LC_MESSAGES/django.po b/aleksis/core/locale/uk/LC_MESSAGES/django.po index 85df9c54467e351c9d411ce177f81c4fc8bce30f..1e9d09001471473235e7347e0660f09b735954f6 100644 --- a/aleksis/core/locale/uk/LC_MESSAGES/django.po +++ b/aleksis/core/locale/uk/LC_MESSAGES/django.po @@ -8,14 +8,18 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-01-22 20:49+0100\n" -"PO-Revision-Date: 2023-01-25 05:57+0000\n" +"PO-Revision-Date: 2023-02-08 22:40+0000\n" "Last-Translator: Serhii Horichenko <m@sgg.im>\n" -"Language-Team: Ukrainian <https://translate.edugit.org/projects/aleksis/aleksis-core/uk/>\n" +"Language-Team: Ukrainian <https://translate.edugit.org/projects/aleksis/" +"aleksis-core/uk/>\n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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" "X-Generator: Weblate 4.12.1\n" #: aleksis/core/apps.py:155 @@ -184,7 +188,8 @@ msgid "Write your announcement:" msgstr "Складіть Ñвоє оголошенÑ:" #: aleksis/core/forms.py:276 -msgid "You are not allowed to create announcements which are only valid in the past." +msgid "" +"You are not allowed to create announcements which are only valid in the past." msgstr "ÐžÐ³Ð¾Ð»Ð¾ÑˆÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¼Ð¸Ð½ÑƒÐ»Ð¾Ð³Ð¾ Вам Ñтворювати не дозволено." #: aleksis/core/forms.py:280 @@ -232,8 +237,10 @@ msgid "Grant the permission for all objects" msgstr "Ðадати дозвіл до вÑÑ–Ñ… об'єктів" #: aleksis/core/forms.py:494 -msgid "You must select at least one group or person which should get the permission." -msgstr "Ви повинні обрати принаймні одну групу або оÑобу, хто буде мати дозвіл." +msgid "" +"You must select at least one group or person which should get the permission." +msgstr "" +"Ви повинні обрати принаймні одну групу або оÑобу, хто буде мати дозвіл." #: aleksis/core/forms.py:499 msgid "You must grant the permission to all objects or to specific objects." @@ -398,6 +405,7 @@ msgid "other" msgstr "інший" #: aleksis/core/models.py:189 aleksis/core/models.py:1345 +#: aleksis/core/models.py:1353 msgid "Linked user" msgstr "Пов'Ñзаний кориÑтувач" @@ -406,7 +414,7 @@ msgid "Additional name(s)" msgstr "Додаткові імена" #: aleksis/core/models.py:199 aleksis/core/models.py:511 -#: aleksis/core/models.py:1431 +#: aleksis/core/models.py:1431 aleksis/core/models.py:1439 msgid "Short name" msgstr "Коротке ім'Ñ" @@ -447,8 +455,11 @@ msgid "Sex" msgstr "Стать" #: aleksis/core/models.py:221 aleksis/core/models.py:550 -msgid "This is an official photo, used for official documents and for internal use cases." -msgstr "Це офіційне фото, Ñке викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð² та внутрішніх потреб." +msgid "" +"This is an official photo, used for official documents and for internal use " +"cases." +msgstr "" +"Це офіційне фото, Ñке викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð² та внутрішніх потреб." #: aleksis/core/models.py:226 aleksis/core/models.py:554 msgid "Display picture / Avatar" @@ -468,7 +479,7 @@ msgstr "ОÑновна група" #: aleksis/core/models.py:244 aleksis/core/models.py:724 #: aleksis/core/models.py:748 aleksis/core/models.py:843 -#: aleksis/core/models.py:1104 +#: aleksis/core/models.py:1104 aleksis/core/models.py:1112 msgid "Description" msgstr "ОпиÑ" @@ -505,6 +516,7 @@ msgid "Can view statistics about group." msgstr "Може бачити ÑтатиÑтику групи." #: aleksis/core/models.py:509 aleksis/core/models.py:1432 +#: aleksis/core/models.py:1440 msgid "Long name" msgstr "Довге ім'Ñ" @@ -533,6 +545,7 @@ msgstr "Додаткові полÑ" #: aleksis/core/models.py:723 aleksis/core/models.py:747 #: aleksis/core/models.py:842 aleksis/core/models.py:1262 #: aleksis/core/templates/core/announcement/list.html:18 +#: aleksis/core/models.py:1270 msgid "Title" msgstr "Ðазва" @@ -563,6 +576,7 @@ msgstr "ПоÑиланнÑ" #: aleksis/core/models.py:752 aleksis/core/models.py:1079 #: aleksis/core/models.py:1392 #: aleksis/core/templates/oauth2_provider/application/detail.html:26 +#: aleksis/core/models.py:1400 msgid "Icon" msgstr "Піктограма" @@ -744,205 +758,210 @@ msgstr "Пункт кориÑтувацького меню" msgid "Custom menu items" msgstr "Пункти кориÑтувацького меню" -#: aleksis/core/models.py:1103 +#: aleksis/core/models.py:1103 aleksis/core/models.py:1111 msgid "Title of type" msgstr "Ðазва типу" #: aleksis/core/models.py:1110 aleksis/core/templates/core/group/full.html:50 +#: aleksis/core/models.py:1118 msgid "Group type" msgstr "Тип групи" #: aleksis/core/models.py:1111 #: aleksis/core/templates/core/group_type/list.html:8 #: aleksis/core/templates/core/group_type/list.html:9 +#: aleksis/core/models.py:1119 msgid "Group types" msgstr "Типи груп" -#: aleksis/core/models.py:1124 +#: aleksis/core/models.py:1124 aleksis/core/models.py:1132 msgid "Can view system status" msgstr "Може переглÑдати Ñтан ÑиÑтеми" -#: aleksis/core/models.py:1125 +#: aleksis/core/models.py:1125 aleksis/core/models.py:1133 msgid "Can manage data" msgstr "Може керувати даними" -#: aleksis/core/models.py:1126 +#: aleksis/core/models.py:1126 aleksis/core/models.py:1134 msgid "Can impersonate" msgstr "Може маÑкуватиÑÑ" -#: aleksis/core/models.py:1127 +#: aleksis/core/models.py:1127 aleksis/core/models.py:1135 msgid "Can use search" msgstr "Може шукати" -#: aleksis/core/models.py:1128 +#: aleksis/core/models.py:1128 aleksis/core/models.py:1136 msgid "Can change site preferences" msgstr "Може змінювати влаÑтивоÑті Ñайту" -#: aleksis/core/models.py:1129 +#: aleksis/core/models.py:1129 aleksis/core/models.py:1137 msgid "Can change person preferences" msgstr "Може змінювати влаÑтивоÑті оÑоби" -#: aleksis/core/models.py:1130 +#: aleksis/core/models.py:1130 aleksis/core/models.py:1138 msgid "Can change group preferences" msgstr "Може змінювати влаÑтивоÑті групи" -#: aleksis/core/models.py:1131 +#: aleksis/core/models.py:1131 aleksis/core/models.py:1139 msgid "Can test PDF generation" msgstr "Може генерувати теÑтові PDF" -#: aleksis/core/models.py:1132 +#: aleksis/core/models.py:1132 aleksis/core/models.py:1140 msgid "Can invite persons" msgstr "Може запрошувати оÑіб" -#: aleksis/core/models.py:1168 +#: aleksis/core/models.py:1168 aleksis/core/models.py:1176 msgid "Related data check task" msgstr "Ð—Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ пов'Ñзаних даних" -#: aleksis/core/models.py:1176 +#: aleksis/core/models.py:1176 aleksis/core/models.py:1184 msgid "Issue solved" msgstr "Проблема вирішена" -#: aleksis/core/models.py:1177 +#: aleksis/core/models.py:1177 aleksis/core/models.py:1185 msgid "Notification sent" msgstr "Ð¡Ð¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð½Ð°Ð´Ñ–Ñлане" -#: aleksis/core/models.py:1190 +#: aleksis/core/models.py:1190 aleksis/core/models.py:1198 msgid "Data check result" msgstr "Результат перевірки даних" -#: aleksis/core/models.py:1191 +#: aleksis/core/models.py:1191 aleksis/core/models.py:1199 msgid "Data check results" msgstr "Результати перевірки даних" -#: aleksis/core/models.py:1193 +#: aleksis/core/models.py:1193 aleksis/core/models.py:1201 msgid "Can run data checks" msgstr "Може запуÑкати перевірки даних" -#: aleksis/core/models.py:1194 +#: aleksis/core/models.py:1194 aleksis/core/models.py:1202 msgid "Can solve data check problems" msgstr "Може розв'Ñзувати проблеми перевірки даних" -#: aleksis/core/models.py:1201 +#: aleksis/core/models.py:1201 aleksis/core/models.py:1209 msgid "E-Mail address" msgstr "ÐдреÑа ел.пошти" -#: aleksis/core/models.py:1233 +#: aleksis/core/models.py:1233 aleksis/core/models.py:1241 msgid "Owner" msgstr "ВлаÑник" -#: aleksis/core/models.py:1237 +#: aleksis/core/models.py:1237 aleksis/core/models.py:1245 msgid "File expires at" msgstr "Файл дійÑний до" -#: aleksis/core/models.py:1240 +#: aleksis/core/models.py:1240 aleksis/core/models.py:1248 msgid "Generated HTML file" msgstr "Згенерований файл HTML" -#: aleksis/core/models.py:1243 +#: aleksis/core/models.py:1243 aleksis/core/models.py:1251 msgid "Generated PDF file" msgstr "Згенерований файл PDF" -#: aleksis/core/models.py:1250 +#: aleksis/core/models.py:1250 aleksis/core/models.py:1258 msgid "PDF file" msgstr "Файл PDF" -#: aleksis/core/models.py:1251 +#: aleksis/core/models.py:1251 aleksis/core/models.py:1259 msgid "PDF files" msgstr "Файли PDF" -#: aleksis/core/models.py:1256 +#: aleksis/core/models.py:1256 aleksis/core/models.py:1264 msgid "Task result" msgstr "Результат завданнÑ" -#: aleksis/core/models.py:1259 +#: aleksis/core/models.py:1259 aleksis/core/models.py:1267 msgid "Task user" msgstr "КориÑтувач завданнÑ" -#: aleksis/core/models.py:1263 +#: aleksis/core/models.py:1263 aleksis/core/models.py:1271 msgid "Back URL" msgstr "URL Ð´Ð»Ñ Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ" -#: aleksis/core/models.py:1264 +#: aleksis/core/models.py:1264 aleksis/core/models.py:1272 msgid "Progress title" -msgstr "Ðазва перебігу" +msgstr "Ðазва процеÑу" -#: aleksis/core/models.py:1265 +#: aleksis/core/models.py:1265 aleksis/core/models.py:1273 msgid "Error message" msgstr "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилку" -#: aleksis/core/models.py:1266 +#: aleksis/core/models.py:1266 aleksis/core/models.py:1274 msgid "Success message" msgstr "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ уÑпіх" -#: aleksis/core/models.py:1267 +#: aleksis/core/models.py:1267 aleksis/core/models.py:1275 msgid "Redirect on success URL" msgstr "ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð² разі уÑпіху" -#: aleksis/core/models.py:1269 +#: aleksis/core/models.py:1269 aleksis/core/models.py:1277 msgid "Additional button title" msgstr "Ðазва додаткової кнопки" -#: aleksis/core/models.py:1271 +#: aleksis/core/models.py:1271 aleksis/core/models.py:1279 msgid "Additional button URL" msgstr "ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— кнопки" -#: aleksis/core/models.py:1273 +#: aleksis/core/models.py:1273 aleksis/core/models.py:1281 msgid "Additional button icon" msgstr "Піктограма додаткової кнопки" -#: aleksis/core/models.py:1275 +#: aleksis/core/models.py:1275 aleksis/core/models.py:1283 msgid "Result fetched" msgstr "Отриманий результат" -#: aleksis/core/models.py:1300 +#: aleksis/core/models.py:1300 aleksis/core/models.py:1308 msgid "Background task completed successfully" msgstr "Фонове Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ ÑƒÑпішно завершене" -#: aleksis/core/models.py:1301 +#: aleksis/core/models.py:1301 aleksis/core/models.py:1309 msgid "The background task '{}' has been completed successfully." msgstr "Фонове Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ '{}' було уÑпішно завершене." -#: aleksis/core/models.py:1307 +#: aleksis/core/models.py:1307 aleksis/core/models.py:1315 msgid "Background task failed" msgstr "Збій фонового завданнÑ" -#: aleksis/core/models.py:1308 +#: aleksis/core/models.py:1308 aleksis/core/models.py:1316 msgid "The background task '{}' has failed." msgstr "У фонового Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ '{}' ÑтавÑÑ Ð·Ð±Ñ–Ð¹." -#: aleksis/core/models.py:1317 +#: aleksis/core/models.py:1317 aleksis/core/models.py:1325 msgid "Background task" msgstr "Фонове завданнÑ" -#: aleksis/core/models.py:1331 +#: aleksis/core/models.py:1331 aleksis/core/models.py:1339 msgid "Task user assignment" msgstr "ÐŸÑ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача завданнÑ" -#: aleksis/core/models.py:1332 +#: aleksis/core/models.py:1332 aleksis/core/models.py:1340 msgid "Task user assignments" msgstr "ÐŸÑ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувачів завданнÑ" -#: aleksis/core/models.py:1348 +#: aleksis/core/models.py:1348 aleksis/core/models.py:1356 msgid "Additional attributes" msgstr "Додаткові атрибути" -#: aleksis/core/models.py:1386 +#: aleksis/core/models.py:1386 aleksis/core/models.py:1394 msgid "Allowed scopes that clients can request" msgstr "Дозволені межі дії, Ñкі можуть запитувати клієнти" -#: aleksis/core/models.py:1396 -msgid "This image will be shown as icon in the authorization flow. It should be squared." -msgstr "Це Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ іконкою під Ñ‡Ð°Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ñ–Ñ—. Воно повинне бути квадратним." +#: aleksis/core/models.py:1396 aleksis/core/models.py:1404 +msgid "" +"This image will be shown as icon in the authorization flow. It should be " +"squared." +msgstr "" +"Це Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ іконкою під Ñ‡Ð°Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ñ–Ñ—. Воно повинне бути квадратним." -#: aleksis/core/models.py:1441 +#: aleksis/core/models.py:1441 aleksis/core/models.py:1449 msgid "Can view room timetable" msgstr "Може переглÑдати розклад кімнати" -#: aleksis/core/models.py:1443 +#: aleksis/core/models.py:1443 aleksis/core/models.py:1451 msgid "Room" msgstr "Кімната" -#: aleksis/core/models.py:1444 +#: aleksis/core/models.py:1444 aleksis/core/models.py:1452 msgid "Rooms" msgstr "Кімнати" @@ -1055,8 +1074,10 @@ msgid "Automatically create new persons for new users" msgstr "Ðові оÑоби Ð´Ð»Ñ Ð½Ð¾Ð²Ð¸Ñ… кориÑтувачів Ñтворювати автоматично" #: aleksis/core/preferences.py:256 -msgid "Automatically link existing persons to new users by their e-mail address" -msgstr "Пов'Ñзувати Ñ–Ñнуючих оÑіб з новими кориÑтувачами автоматично за ел.адреÑами" +msgid "" +"Automatically link existing persons to new users by their e-mail address" +msgstr "" +"Пов'Ñзувати Ñ–Ñнуючих оÑіб з новими кориÑтувачами автоматично за ел.адреÑами" #: aleksis/core/preferences.py:267 msgid "Display name of the school" @@ -1123,7 +1144,8 @@ msgid "Fields on person model which are editable by themselves." msgstr "ÐŸÐ¾Ð»Ñ Ð· опиÑом оÑоби, Ñкі можна редагувати ÑамоÑтійно." #: aleksis/core/preferences.py:424 -msgid "Editable fields on person model which should trigger a notification on change" +msgid "" +"Editable fields on person model which should trigger a notification on change" msgstr "Змінювані Ð¿Ð¾Ð»Ñ Ð· опиÑом оÑоби, Ñкі повинні Ñповіщати щодо редагуваннÑ" #: aleksis/core/preferences.py:438 @@ -1154,15 +1176,15 @@ msgstr "Ðвтоматично оновлювати інформпанель Ñ‚ msgid "Country for phone number parsing" msgstr "Країна Ð´Ð»Ñ Ñ€Ð¾Ð·Ð±Ð¾Ñ€Ñƒ номера телефона" -#: aleksis/core/settings.py:539 +#: aleksis/core/settings.py:539 aleksis/core/settings.py:544 msgid "English" msgstr "ÐнглійÑька" -#: aleksis/core/settings.py:540 +#: aleksis/core/settings.py:540 aleksis/core/settings.py:545 msgid "German" msgstr "Ðімецька" -#: aleksis/core/settings.py:541 +#: aleksis/core/settings.py:541 aleksis/core/settings.py:546 msgid "Ukrainian" msgstr "УкраїнÑька" @@ -1205,7 +1227,8 @@ msgstr "" #: aleksis/core/templates/403.html:19 aleksis/core/templates/404.html:16 msgid "" "\n" -" If you think this is an error in AlekSIS, please contact your site\n" +" If you think this is an error in AlekSIS, please contact your " +"site\n" " administrators:\n" " " msgstr "" @@ -1237,12 +1260,14 @@ msgstr "" #: aleksis/core/templates/500.html:13 msgid "" "\n" -" Your site administrators will automatically be notified about this\n" +" Your site administrators will automatically be notified about " +"this\n" " error. You can also contact them directly:\n" " " msgstr "" "\n" -" ÐдмініÑтратори Ñайту будуть Ñповіщені щодо цієї помилки автоматично.\n" +" ÐдмініÑтратори Ñайту будуть Ñповіщені щодо цієї помилки " +"автоматично.\n" " Ви також можете звернутиÑÑ Ð´Ð¾ них безпоÑередньо:\n" " " @@ -1261,11 +1286,13 @@ msgstr "" #: aleksis/core/templates/503.html:13 msgid "" "\n" -" This page is currently unavailable. If this error persists, contact your site administrators:\n" +" This page is currently unavailable. If this error persists, " +"contact your site administrators:\n" " " msgstr "" "\n" -" Ð¦Ñ Ñторінка наразі недоÑтупна. Якщо Ñ†Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° виникне знову, звернітьÑÑ Ð´Ð¾ адмініÑтраторів Ñайту:\n" +" Ð¦Ñ Ñторінка наразі недоÑтупна. Якщо Ñ†Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° виникне знову, " +"звернітьÑÑ Ð´Ð¾ адмініÑтраторів Ñайту:\n" " " #: aleksis/core/templates/account/account_inactive.html:5 @@ -1306,13 +1333,22 @@ msgstr "Підтвердити" #: aleksis/core/templates/account/email_confirm.html:12 #, python-format -msgid "Please confirm that <a href=\"mailto:%(email)s\">%(email)s</a> is an e-mail address for user %(user_display)s." -msgstr "Підтвердіть, будь лаÑка, що <a href=\"mailto:%(email)s\">%(email)s</a> Ñ” адреÑою ел.пошти Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача %(user_display)s." +msgid "" +"Please confirm that <a href=\"mailto:%(email)s\">%(email)s</a> is an e-mail " +"address for user %(user_display)s." +msgstr "" +"Підтвердіть, будь лаÑка, що <a href=\"mailto:%(email)s\">%(email)s</a> Ñ” " +"адреÑою ел.пошти Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача %(user_display)s." #: aleksis/core/templates/account/email_confirm.html:25 #, python-format -msgid "This e-mail confirmation link expired or is invalid. Please <a href=\"%(email_url)s\">issue a new e-mail confirmation request</a>." -msgstr "Це поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ ÐµÐ».пошти протерміноване або недійÑне. Зробіть, будь лаÑка, Ð´Ð»Ñ Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ <a href=\"%(email_url)s\">новий запит</a>." +msgid "" +"This e-mail confirmation link expired or is invalid. Please <a href=" +"\"%(email_url)s\">issue a new e-mail confirmation request</a>." +msgstr "" +"Це поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ ÐµÐ».пошти протерміноване або недійÑне. " +"Зробіть, будь лаÑка, Ð´Ð»Ñ Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ <a href=\"%(email_url)s\">новий " +"запит</a>." #: aleksis/core/templates/account/password_change.html:5 #: aleksis/core/templates/account/password_change.html:6 @@ -1346,12 +1382,14 @@ msgstr "Зміна паролю вимкнена." msgid "" "\n" " Users are not allowed to edit their own passwords. If you think\n" -" this is an error please contact one of your site administrators.\n" +" this is an error please contact one of your site " +"administrators.\n" " " msgstr "" "\n" " КориÑтувачам не дозволÑєтьÑÑ Ð·Ð¼Ñ–Ð½ÑŽÐ²Ð°Ñ‚Ð¸ Ñвої паролі.\n" -" Якщо Ви думаєте, що це помилка, звернітьÑÑ Ð´Ð¾ адмініÑтраторів Ñайту.\n" +" Якщо Ви думаєте, що це помилка, звернітьÑÑ Ð´Ð¾ адмініÑтраторів " +"Ñайту.\n" " " #: aleksis/core/templates/account/password_reset.html:5 @@ -1365,8 +1403,12 @@ msgid "Reset password" msgstr "Скинути пароль" #: aleksis/core/templates/account/password_reset.html:17 -msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it." -msgstr "Забули пароль? Вкажіть нижче Ñвою ел.пошту Ñ– ми надішлемо Вам лиÑта Ð´Ð»Ñ ÑÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ." +msgid "" +"Forgotten your password? Enter your e-mail address below, and we'll send you " +"an e-mail allowing you to reset it." +msgstr "" +"Забули пароль? Вкажіть нижче Ñвою ел.пошту Ñ– ми надішлемо Вам лиÑта Ð´Ð»Ñ " +"ÑÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ." #: aleksis/core/templates/account/password_reset.html:30 msgid "" @@ -1390,7 +1432,8 @@ msgid "" msgstr "" "\n" " Ми надіÑлали Вам ел.лиÑта. Якщо Ви його не отримаєте протÑгом\n" -" декількох хвилин, звернітьÑÑ, будь лаÑка, до адмініÑтраторів Ñайту.\n" +" декількох хвилин, звернітьÑÑ, будь лаÑка, до адмініÑтраторів " +"Ñайту.\n" " " #: aleksis/core/templates/account/password_reset_from_key.html:15 @@ -1401,13 +1444,16 @@ msgstr "ÐеÑправний токен" #, python-format msgid "" "\n" -" The password reset link was invalid, possibly because it has already been used. Please request a <a href=\"%(passwd_reset_url)s\"\n" +" The password reset link was invalid, possibly because it has " +"already been used. Please request a <a href=\"%(passwd_reset_url)s\"\n" " class=\"blue-text text-lighten-2\">new password reset</a>.\n" " " msgstr "" "\n" -" ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° ÑÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð½ÐµÐ´Ñ–Ð¹Ñне або, ймовірно, вже викориÑтане. Зробіть, будь лаÑка, <a href=\"%(passwd_reset_url)s\"\n" -" class=\"blue-text text-lighten-2\">новий запит на ÑÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ</a>.\n" +" ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° ÑÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð½ÐµÐ´Ñ–Ð¹Ñне або, ймовірно, вже " +"викориÑтане. Зробіть, будь лаÑка, <a href=\"%(passwd_reset_url)s\"\n" +" class=\"blue-text text-lighten-2\">новий запит на ÑÐºÐ¸Ð´Ð°Ð½Ð½Ñ " +"паролÑ</a>.\n" " " #: aleksis/core/templates/account/password_reset_from_key.html:25 @@ -1456,8 +1502,10 @@ msgstr "РеєÑтраціÑ" #: aleksis/core/templates/account/signup.html:12 #, python-format -msgid "Already have an account? Then please <a href=\"%(login_url)s\">sign in</a>." -msgstr "Вже маєте обліковий запиÑ? Тоді можете <a href=\"%(login_url)s\">увіти</a>." +msgid "" +"Already have an account? Then please <a href=\"%(login_url)s\">sign in</a>." +msgstr "" +"Вже маєте обліковий запиÑ? Тоді можете <a href=\"%(login_url)s\">увіти</a>." #: aleksis/core/templates/account/signup.html:22 #: aleksis/core/templates/socialaccount/signup.html:23 @@ -1501,13 +1549,17 @@ msgstr "Перевірте Ñвою ел.пошту!" #: aleksis/core/templates/account/verification_sent.html:16 msgid "" "\n" -" This part of the site requires us to verify that you are who you claim to be.\n" -" For this purpose, we require that you verify ownership of your e-mail address.\n" +" This part of the site requires us to verify that you are who you " +"claim to be.\n" +" For this purpose, we require that you verify ownership of your e-" +"mail address.\n" " " msgstr "" "\n" -" Ð¦Ñ Ñ‡Ð°Ñтина Ñайту вимагає перевірки, що Ви - Ñаме той/та, хто має бути.\n" -" Саме Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ нам необхідно перевірити, що адреÑа ел.пошти належить Ñаме Вам.\n" +" Ð¦Ñ Ñ‡Ð°Ñтина Ñайту вимагає перевірки, що Ви - Ñаме той/та, хто має " +"бути.\n" +" Саме Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ нам необхідно перевірити, що адреÑа ел.пошти " +"належить Ñаме Вам.\n" " " #: aleksis/core/templates/account/verification_sent.html:22 @@ -1520,8 +1572,10 @@ msgid "" msgstr "" "\n" " Ми надіÑлали Вам Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ ел.лиÑта.\n" -" Будь лаÑка, перейдіть за вказаним там поÑиланнÑм. Якщо Ви не отримаєте\n" -" лиÑта протÑгом декількох хвилин, звернітьÑÑ, будь лаÑка, до наÑ.\n" +" Будь лаÑка, перейдіть за вказаним там поÑиланнÑм. Якщо Ви не " +"отримаєте\n" +" лиÑта протÑгом декількох хвилин, звернітьÑÑ, будь лаÑка, до " +"наÑ.\n" " " #: aleksis/core/templates/core/additional_field/edit.html:6 @@ -1696,29 +1750,39 @@ msgstr "Редагувати інформпанель" #: aleksis/core/templates/core/edit_dashboard.html:24 msgid "" "\n" -" On this page you can arrange your personal dashboard. You can drag any items from \"Available widgets\" to \"Your\n" -" Dashboard\" or change the order by moving the widgets. After you have finished, please don't forget to click on\n" +" On this page you can arrange your personal dashboard. You can drag " +"any items from \"Available widgets\" to \"Your\n" +" Dashboard\" or change the order by moving the widgets. After you " +"have finished, please don't forget to click on\n" " \"Save\".\n" " " msgstr "" "\n" -" Ðа цій Ñторінці Ви можете впорÑдкувати Ñвою інформпанель. ПеретÑгуйте будь-Ñкі елементи з \"ДоÑтупних віджетів\"\n" -" до \"Своєї інформпанелі\" або змінюйте порÑдок, перетÑгуючи віджети. ПіÑÐ»Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ Ð½Ðµ забудьте натиÑнути\n" +" Ðа цій Ñторінці Ви можете впорÑдкувати Ñвою інформпанель. " +"ПеретÑгуйте будь-Ñкі елементи з \"ДоÑтупних віджетів\"\n" +" до \"Своєї інформпанелі\" або змінюйте порÑдок, перетÑгуючи " +"віджети. ПіÑÐ»Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ Ð½Ðµ забудьте натиÑнути\n" " \"Зберегти\".\n" " " #: aleksis/core/templates/core/edit_dashboard.html:30 msgid "" "\n" -" On this page you can arrange the default dashboard which is shown when a user doesn't arrange his own\n" -" dashboard. You can drag any items from \"Available widgets\" to \"Default Dashboard\" or change the order\n" -" by moving the widgets. After you have finished, please don't forget to click on \"Save\".\n" +" On this page you can arrange the default dashboard which is shown " +"when a user doesn't arrange his own\n" +" dashboard. You can drag any items from \"Available widgets\" to " +"\"Default Dashboard\" or change the order\n" +" by moving the widgets. After you have finished, please don't " +"forget to click on \"Save\".\n" " " msgstr "" "\n" -" Ðа цій Ñторінці Ви можете впорÑдкувати типову/Ñтандартну інформпанель, Ñка відображаєтьÑÑ, Ñкщо кориÑтувач\n" -" не впорÑдкував влаÑну. ПеретÑгуйте будь-Ñкі елементи з \"ДоÑтупних віджетів\" до \"Типової інформпанелі\" або змінюйте \n" -" порÑдок, перетÑгуючи віджети. ПіÑÐ»Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ Ð½Ðµ забудьте натиÑнути \"Зберегти\".\n" +" Ðа цій Ñторінці Ви можете впорÑдкувати типову/Ñтандартну " +"інформпанель, Ñка відображаєтьÑÑ, Ñкщо кориÑтувач\n" +" не впорÑдкував влаÑну. ПеретÑгуйте будь-Ñкі елементи з \"ДоÑтупних " +"віджетів\" до \"Типової інформпанелі\" або змінюйте \n" +" порÑдок, перетÑгуючи віджети. ПіÑÐ»Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡ÐµÐ½Ð½Ñ Ð½Ðµ забудьте " +"натиÑнути \"Зберегти\".\n" " " #: aleksis/core/templates/core/edit_dashboard.html:48 @@ -1741,13 +1805,16 @@ msgstr "Призначити підлеглі групи до груп" #: aleksis/core/templates/core/group/child_groups.html:18 msgid "" "\n" -" You can use this to assign child groups to groups. Please use the filters below to select groups you want to\n" +" You can use this to assign child groups to groups. Please use the " +"filters below to select groups you want to\n" " change and click \"Next\".\n" " " msgstr "" "\n" -" Ви можете ÑкориÑтатиÑÑ Ñ†Ð¸Ð¼ Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´Ð»ÐµÐ³Ð»Ð¸Ñ… груп до оÑновних. Ð”Ð»Ñ Ð¾Ð±Ñ€Ð°Ð½Ð½Ñ Ð³Ñ€ÑƒÐ¿,\n" -" Ñкі хочете змінити, ÑкориÑтайтеÑÑ, будь лаÑка, фільтрами, що нижче та натиÑніÑть \"Далі\".\n" +" Ви можете ÑкориÑтатиÑÑ Ñ†Ð¸Ð¼ Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´Ð»ÐµÐ³Ð»Ð¸Ñ… груп до " +"оÑновних. Ð”Ð»Ñ Ð¾Ð±Ñ€Ð°Ð½Ð½Ñ Ð³Ñ€ÑƒÐ¿,\n" +" Ñкі хочете змінити, ÑкориÑтайтеÑÑ, будь лаÑка, фільтрами, що нижче " +"та натиÑніÑть \"Далі\".\n" " " #: aleksis/core/templates/core/group/child_groups.html:31 @@ -1773,7 +1840,8 @@ msgid "" " " msgstr "" "\n" -" Оберіть, будь лаÑка, декілька груп у порÑдку, за Ñким призначати.\n" +" Оберіть, будь лаÑка, декілька груп у порÑдку, за Ñким " +"призначати.\n" " " #: aleksis/core/templates/core/group/child_groups.html:72 @@ -1787,14 +1855,18 @@ msgstr "Обережно, будь лаÑка!" #: aleksis/core/templates/core/group/child_groups.html:79 msgid "" "\n" -" If you click \"Back\" or \"Next\" the current group assignments are not saved.\n" -" If you click \"Save\", you will overwrite all existing child group relations for this group with what you\n" +" If you click \"Back\" or \"Next\" the current group assignments " +"are not saved.\n" +" If you click \"Save\", you will overwrite all existing child " +"group relations for this group with what you\n" " selected on this page.\n" " " msgstr "" "\n" -" Якщо натиÑнете \"Ðазад\" або \"Далі\" Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ†Ñ–Ñ”Ñ— групи не збережутьÑÑ.\n" -" Якщо натиÑнете \"Зберегти\", уÑÑ– Ñ–Ñнуючі зв'Ñзки підлеглої групи з цією групою будуть замінені на\n" +" Якщо натиÑнете \"Ðазад\" або \"Далі\" Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ†Ñ–Ñ”Ñ— групи не " +"збережутьÑÑ.\n" +" Якщо натиÑнете \"Зберегти\", уÑÑ– Ñ–Ñнуючі зв'Ñзки підлеглої групи " +"з цією групою будуть замінені на\n" " обрані на цій Ñторінці.\n" " " @@ -1892,12 +1964,14 @@ msgstr "Додому" #: aleksis/core/templates/core/index.html:34 msgid "" "\n" -" You didn't customise your dashboard so that you see the system default. Please click on \"Edit dashboard\" to\n" +" You didn't customise your dashboard so that you see the system " +"default. Please click on \"Edit dashboard\" to\n" " customise your personal dashboard.\n" " " msgstr "" "\n" -" Ви ще не налаштували Ñвою інформпанель, тож поки що бачите типову/Ñтандартну. Ð”Ð»Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ \n" +" Ви ще не налаштували Ñвою інформпанель, тож поки що бачите типову/" +"Ñтандартну. Ð”Ð»Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ \n" " влаÑної інформпанелі клацніть \"Редагувати інформпанель\".\n" " " @@ -1941,11 +2015,13 @@ msgstr "Ðктивований режим обÑлуговуваннÑ" #: aleksis/core/templates/core/pages/system_status.html:24 msgid "" "\n" -" Only admin and visitors from internal IPs can access the site.\n" +" Only admin and visitors from internal IPs can access the " +"site.\n" " " msgstr "" "\n" -" ДоÑтуп до Ñайту мають лише адмініÑтратор та відвідувачі з внутрішніми IP-адреÑами.\n" +" ДоÑтуп до Ñайту мають лише адмініÑтратор та відвідувачі з " +"внутрішніми IP-адреÑами.\n" " " #: aleksis/core/templates/core/pages/system_status.html:36 @@ -1963,11 +2039,13 @@ msgstr "Ðктивований режим налагодженнÑ" #: aleksis/core/templates/core/pages/system_status.html:49 msgid "" "\n" -" The web server throws back debug information on errors. Do not use in production!\n" +" The web server throws back debug information on errors. Do " +"not use in production!\n" " " msgstr "" "\n" -" Веб-Ñервер кидає під Ñ‡Ð°Ñ Ð¿Ð¾Ð¼Ð¸Ð»Ð¾Ðº інформацію щодо налагодженнÑ. Ðе викориÑтовуйте в продакшені!\n" +" Веб-Ñервер кидає під Ñ‡Ð°Ñ Ð¿Ð¾Ð¼Ð¸Ð»Ð¾Ðº інформацію щодо " +"налагодженнÑ. Ðе викориÑтовуйте в продакшені!\n" " " #: aleksis/core/templates/core/pages/system_status.html:56 @@ -1977,11 +2055,13 @@ msgstr "Режим Ð½Ð°Ð»Ð°Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð´ÐµÐ°ÐºÑ‚Ð¸Ð²Ð¾Ð²Ð°Ð½Ð¸Ð¹" #: aleksis/core/templates/core/pages/system_status.html:58 msgid "" "\n" -" Debug mode is disabled. Default error pages are displayed on errors.\n" +" Debug mode is disabled. Default error pages are displayed on " +"errors.\n" " " msgstr "" "\n" -" Режим Ð½Ð°Ð»Ð°Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð´ÐµÐ°ÐºÑ‚Ð¸Ð²Ð¾Ð²Ð°Ð½Ð¸Ð¹. Ð’ разі збоїв відображатимутьÑÑ Ñ‚Ð¸Ð¿Ð¾Ð²Ñ– Ñторінки помилок.\n" +" Режим Ð½Ð°Ð»Ð°Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð´ÐµÐ°ÐºÑ‚Ð¸Ð²Ð¾Ð²Ð°Ð½Ð¸Ð¹. Ð’ разі збоїв " +"відображатимутьÑÑ Ñ‚Ð¸Ð¿Ð¾Ð²Ñ– Ñторінки помилок.\n" " " #: aleksis/core/templates/core/pages/system_status.html:71 @@ -2031,11 +2111,13 @@ msgstr "Спроба генерації PDF" #: aleksis/core/templates/core/pages/test_pdf.html:14 msgid "" "\n" -" This simple view can be used to ensure the correct function of the built-in PDF generation system.\n" +" This simple view can be used to ensure the correct function of the " +"built-in PDF generation system.\n" " " msgstr "" "\n" -" Цей проÑтий виглÑд допоможе перевірити коректніÑть налаштувань вбудованої ÑиÑтеми генерації PDF.\n" +" Цей проÑтий виглÑд допоможе перевірити коректніÑть налаштувань " +"вбудованої ÑиÑтеми генерації PDF.\n" " " #: aleksis/core/templates/core/partials/announcements.html:8 @@ -2093,11 +2175,13 @@ msgstr "Ðевідомо" #: aleksis/core/templates/core/partials/splash_screen.html:11 msgid "" "\n" -" This webbrowser doesn't support JavaScript, or its execution is blocked. Please use another browser to continue.\n" +" This webbrowser doesn't support JavaScript, or its execution is " +"blocked. Please use another browser to continue.\n" " " msgstr "" "\n" -" Цей веб-браузер не підтримує JavaScript або його обробка заблокована. Ð”Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ ÑкориÑтайтеÑÑ, будь лаÑка, іншим браузером.\n" +" Цей веб-браузер не підтримує JavaScript або його обробка заблокована. " +"Ð”Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ ÑкориÑтайтеÑÑ, будь лаÑка, іншим браузером.\n" " " #: aleksis/core/templates/core/perms/assign.html:12 @@ -2210,7 +2294,9 @@ msgid "The invite feature is disabled." msgstr "Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ Ð´ÐµÐ°ÐºÑ‚Ð¸Ð²Ð¾Ð²Ð°Ð½Ð°." #: aleksis/core/templates/invitations/disabled.html:15 -msgid "To enable it, switch on the corresponding checkbox in the authentication section of the " +msgid "" +"To enable it, switch on the corresponding checkbox in the authentication " +"section of the " msgstr "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ñ–Ñ— увімкніть відповідний Ñ‡ÐµÐºÐ±Ð¾ÐºÑ Ð² розділі авторизації на " #: aleksis/core/templates/invitations/disabled.html:16 @@ -2383,14 +2469,18 @@ msgstr "Сторінка в автономному режимі не доÑту #: aleksis/core/templates/offline.html:14 msgid "" "\n" -" This page is not available offline. Since you probably don't have an internet connection, check to see if your WiFi\n" -" or mobile data is turned on and try again. If you think you are connected, please contact the system\n" +" This page is not available offline. Since you probably don't have an " +"internet connection, check to see if your WiFi\n" +" or mobile data is turned on and try again. If you think you are " +"connected, please contact the system\n" " administrators:\n" " " msgstr "" "\n" -" Ð¦Ñ Ñторінка в автономному режимі не доÑтупна. Можливо, у Ð’Ð°Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð° з інтернетом. ПереконайтеÑÑ, що Ваш WiFi\n" -" або мобільний інтернет увімкнені та Ñпробуйте ще раз. Якщо Ви думаєте, що із з'єднаннÑм вÑе добре, звернітьÑÑ\n" +" Ð¦Ñ Ñторінка в автономному режимі не доÑтупна. Можливо, у Ð’Ð°Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð° " +"з інтернетом. ПереконайтеÑÑ, що Ваш WiFi\n" +" або мобільний інтернет увімкнені та Ñпробуйте ще раз. Якщо Ви думаєте, " +"що із з'єднаннÑм вÑе добре, звернітьÑÑ\n" " до ÑиÑтемних адмініÑтраторів:\n" " " @@ -2426,12 +2516,14 @@ msgstr "Помилка входу облікового запиÑу третьо #: aleksis/core/templates/socialaccount/authentication_error.html:15 msgid "" "\n" -" An error occurred while attempting to login via your third-party account.\n" +" An error occurred while attempting to login via your third-party " +"account.\n" " Please contact one of your site administrators.\n" " " msgstr "" "\n" -" Під Ñ‡Ð°Ñ Ñпроби входу з Вашим Ñтороннім обліковим запиÑом виникла помилка входу.\n" +" Під Ñ‡Ð°Ñ Ñпроби входу з Вашим Ñтороннім обліковим запиÑом виникла " +"помилка входу.\n" " ЗвернітьÑÑ, будь лаÑка, до адмініÑтратора Ñайту.\n" " " @@ -2446,7 +2538,9 @@ msgstr "Видалити" #: aleksis/core/templates/socialaccount/connections.html:34 msgid "You currently have no third-party accounts connected to this account." -msgstr "Зараз у Ð’Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” облікових запиÑів третіх Ñторін, з'єднаних з цим обліковим запиÑом." +msgstr "" +"Зараз у Ð’Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” облікових запиÑів третіх Ñторін, з'єднаних з цим обліковим " +"запиÑом." #: aleksis/core/templates/socialaccount/connections.html:37 msgid "Add a Third-party Account" @@ -2460,7 +2554,8 @@ msgstr "Ви приєднуєте новий обліковий Ð·Ð°Ð¿Ð¸Ñ Ñ‚Ñ€ #: aleksis/core/templates/socialaccount/login.html:23 #, python-format msgid "You are about to sign in using a third party account from %(provider)s." -msgstr "Ви авторизуєтеÑÑ Ð·Ð° допомогою Ñтороннього облікового запиÑу від %(provider)s." +msgstr "" +"Ви авторизуєтеÑÑ Ð·Ð° допомогою Ñтороннього облікового запиÑу від %(provider)s." #: aleksis/core/templates/socialaccount/login.html:28 msgid "Continue" @@ -2476,11 +2571,15 @@ msgstr "Вхід ÑкаÑований" #, python-format msgid "" "\n" -" You decided to cancel logging in to our site using one of your existing accounts. If this was a mistake, please proceed to <a href=\"%(login_url)s\">sign in</a>.\n" +" You decided to cancel logging in to our site using one of your " +"existing accounts. If this was a mistake, please proceed to <a href=" +"\"%(login_url)s\">sign in</a>.\n" " " msgstr "" "\n" -" Схоже, що Ви ÑкаÑували вхід до нашого Ñайту з одним із Ваших облікових запиÑів. Якщо це ÑталоÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¾, Ви можете <a href=\"%(login_url)s\">продовжити вхід тут</a>.\n" +" Схоже, що Ви ÑкаÑували вхід до нашого Ñайту з одним із Ваших " +"облікових запиÑів. Якщо це ÑталоÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¾, Ви можете <a href=" +"\"%(login_url)s\">продовжити вхід тут</a>.\n" " " #: aleksis/core/templates/socialaccount/signup.html:12 @@ -2490,7 +2589,8 @@ msgid "" " %(site_name)s. As a final step, please complete the following form:" msgstr "" "Ви на шлÑху до викориÑÑ‚Ð°Ð½Ð½Ñ Ñвого облікового запиÑу у %(provider_name)s\n" -" Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ñƒ на %(site_name)s. Заповніть, будь лаÑка, Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ†ÑŽ форму:" +" Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ñƒ на %(site_name)s. Заповніть, будь лаÑка, Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ†ÑŽ " +"форму:" #: aleksis/core/templates/socialaccount/snippets/provider_list.html:12 #, python-format @@ -2577,21 +2677,25 @@ msgstr "СиÑтема виÑвила деÑкі нові проблеми з Ð’ #: aleksis/core/templates/templated_email/data_checks.email:6 msgid "" "the system detected some new problems with your data.\n" -"Please take some time to inspect them and solve the issues or mark them as ignored." +"Please take some time to inspect them and solve the issues or mark them as " +"ignored." msgstr "" "ÑиÑтема виÑвила деÑкі нові проблеми з Вашими даними.\n" -"Приділіть, будь лаÑка, трохи чаÑу Ð´Ð»Ñ Ñ—Ñ… перевірки та Ð²Ð¸Ñ€Ñ–ÑˆÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼ або позначте Ñ—Ñ… Ð´Ð»Ñ Ñ–Ð³Ð½Ð¾Ñ€Ñƒ." +"Приділіть, будь лаÑка, трохи чаÑу Ð´Ð»Ñ Ñ—Ñ… перевірки та Ð²Ð¸Ñ€Ñ–ÑˆÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼ або " +"позначте Ñ—Ñ… Ð´Ð»Ñ Ñ–Ð³Ð½Ð¾Ñ€Ñƒ." #: aleksis/core/templates/templated_email/data_checks.email:15 msgid "" "\n" " the system detected some new problems with your data.\n" -" Please take some time to inspect them and solve the issues or mark them as ignored.\n" +" Please take some time to inspect them and solve the issues or mark them " +"as ignored.\n" " " msgstr "" "\n" " ÑиÑтема виÑвила деÑкі нові проблеми з Вашими даними.\n" -" Приділіть, будь лаÑка, трохи чаÑу Ð´Ð»Ñ Ñ—Ñ… перевірки та Ð²Ð¸Ñ€Ñ–ÑˆÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼ або позначте Ñ—Ñ… Ð´Ð»Ñ Ñ–Ð³Ð½Ð¾Ñ€Ñƒ.\n" +" Приділіть, будь лаÑка, трохи чаÑу Ð´Ð»Ñ Ñ—Ñ… перевірки та Ð²Ð¸Ñ€Ñ–ÑˆÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼ " +"або позначте Ñ—Ñ… Ð´Ð»Ñ Ñ–Ð³Ð½Ð¾Ñ€Ñƒ.\n" " " #: aleksis/core/templates/templated_email/data_checks.email:23 @@ -2677,16 +2781,22 @@ msgid "" "\n" " Backup tokens can be used when your primary and backup\n" " phone numbers aren't available. The backup tokens below can be used\n" -" for login verification. If you've used up all your backup tokens, you\n" -" can generate a new set of backup tokens. Only the backup tokens shown\n" +" for login verification. If you've used up all your backup tokens, " +"you\n" +" can generate a new set of backup tokens. Only the backup tokens " +"shown\n" " below will be valid.\n" " " msgstr "" "\n" -" Резервні токени можуть бути викориÑтані коли Ваші оÑновний та резервний\n" -" телефонні номери не доÑтупні. Резервні токени, що нижче, можуть бути викориÑтані\n" -" Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ на вході. Коли Ви викориÑтаєте уÑÑ– резервні токени, Ви\n" -" зможете згенерувати новий набір резервних токенів. ДійÑними будуть лише токени,\n" +" Резервні токени можуть бути викориÑтані коли Ваші оÑновний та " +"резервний\n" +" телефонні номери не доÑтупні. Резервні токени, що нижче, можуть бути " +"викориÑтані\n" +" Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ на вході. Коли Ви викориÑтаєте уÑÑ– резервні токени, " +"Ви\n" +" зможете згенерувати новий набір резервних токенів. ДійÑними будуть " +"лише токени,\n" " що нижче.\n" " " @@ -2737,7 +2847,9 @@ msgstr "" #: aleksis/core/templates/two_factor/core/login.html:47 msgid "Please login with your account to use the external application." -msgstr "Ð”Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½ÑŒÐ¾Ð³Ð¾ додатку увійдіть, будь лаÑка, у Ñвій обліковий запиÑ." +msgstr "" +"Ð”Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½ÑŒÐ¾Ð³Ð¾ додатку увійдіть, будь лаÑка, у Ñвій обліковий " +"запиÑ." #: aleksis/core/templates/two_factor/core/login.html:54 msgid "Please login to see this page." @@ -2746,24 +2858,28 @@ msgstr "Ð”Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду цієї Ñторінки, будь лаÑка #: aleksis/core/templates/two_factor/core/login.html:65 msgid "" "\n" -" We are calling your phone right now, please enter the\n" +" We are calling your phone right now, please enter " +"the\n" " digits you hear.\n" " " msgstr "" "\n" -" Ми зателефонуємо зараз на Ваш номер. Ðапишіть, будь лаÑка, цифри,\n" +" Ми зателефонуємо зараз на Ваш номер. Ðапишіть, будь " +"лаÑка, цифри,\n" " Ñкі Ви почуєте.\n" " " #: aleksis/core/templates/two_factor/core/login.html:70 msgid "" "\n" -" We sent you a text message, please enter the tokens we\n" +" We sent you a text message, please enter the tokens " +"we\n" " sent.\n" " " msgstr "" "\n" -" Ми надіÑлали Вам текÑтове повідомленнÑ. Ðапишіть, будь лаÑка, отриманий\n" +" Ми надіÑлали Вам текÑтове повідомленнÑ. Ðапишіть, " +"будь лаÑка, отриманий\n" " токен.\n" " " @@ -2782,15 +2898,21 @@ msgstr "" #: aleksis/core/templates/two_factor/core/login.html:81 msgid "" "\n" -" Use this form for entering backup tokens for logging in.\n" -" These tokens have been generated for you to print and keep safe. Please\n" -" enter one of these backup tokens to login to your account.\n" +" Use this form for entering backup tokens for logging " +"in.\n" +" These tokens have been generated for you to print and " +"keep safe. Please\n" +" enter one of these backup tokens to login to your " +"account.\n" " " msgstr "" "\n" -" Ð”Ð»Ñ Ð²Ñ…Ð¾Ð´Ñƒ ÑкориÑтайтеÑÑ Ñ„Ð¾Ñ€Ð¼Ð¾ÑŽ Ð´Ð»Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¸Ñ… токенів.\n" -" Ці токени були згенеровані, щоб Ви Ñ—Ñ… роздрукували та зберігали у надійному міÑці.\n" -" Щоб увійти напишіть, будь лаÑка, один з резервних токенів.\n" +" Ð”Ð»Ñ Ð²Ñ…Ð¾Ð´Ñƒ ÑкориÑтайтеÑÑ Ñ„Ð¾Ñ€Ð¼Ð¾ÑŽ Ð´Ð»Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¸Ñ… " +"токенів.\n" +" Ці токени були згенеровані, щоб Ви Ñ—Ñ… роздрукували та " +"зберігали у надійному міÑці.\n" +" Щоб увійти напишіть, будь лаÑка, один з резервних " +"токенів.\n" " " #: aleksis/core/templates/two_factor/core/login.html:109 @@ -2820,12 +2942,16 @@ msgstr "Дозвіл відÑутній" #: aleksis/core/templates/two_factor/core/otp_required.html:10 msgid "" "The page you requested, enforces users to verify using\n" -" two-factor authentication for security reasons. You need to enable these\n" +" two-factor authentication for security reasons. You need to enable " +"these\n" " security features in order to access this page." msgstr "" -"Ð”Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду запитуванної Ñторінки, з оглÑду на безпеку, необхідна додаткова\n" -" перевірка кориÑтувача з викориÑтаннÑм двохфакторної автентифікації.\n" -" Ð”Ð»Ñ Ð´Ð¾Ñтупу до цієї Ñторінки Вам потрібно увімкнути ці функції безпеки." +"Ð”Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду запитуванної Ñторінки, з оглÑду на безпеку, необхідна " +"додаткова\n" +" перевірка кориÑтувача з викориÑтаннÑм двохфакторної " +"автентифікації.\n" +" Ð”Ð»Ñ Ð´Ð¾Ñтупу до цієї Ñторінки Вам потрібно увімкнути ці функції " +"безпеки." #: aleksis/core/templates/two_factor/core/otp_required.html:14 msgid "" @@ -2874,7 +3000,8 @@ msgid "" msgstr "" "\n" " Ви вÑтановлюєте Ð´Ð»Ñ Ñвого облікового запиÑу новий рівень безпеки.\n" -" Ð”Ð»Ñ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ð´Ð²Ð¾Ñ…Ñ„Ð°ÐºÑ‚Ð¾Ñ€Ð½Ð¾Ñ— автентифікації пройдіть декілька кроків\n" +" Ð”Ð»Ñ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ð´Ð²Ð¾Ñ…Ñ„Ð°ÐºÑ‚Ð¾Ñ€Ð½Ð¾Ñ— автентифікації пройдіть декілька " +"кроків\n" " майÑтра налаштуваннÑ.\n" " " @@ -2885,20 +3012,24 @@ msgid "" " " msgstr "" "\n" -" Оберіть, будь лаÑка, метод автентифікації, Ñкий Ви хочете викориÑтовувати:\n" +" Оберіть, будь лаÑка, метод автентифікації, Ñкий Ви хочете " +"викориÑтовувати:\n" " " #: aleksis/core/templates/two_factor/core/setup.html:23 msgid "" "\n" " To start using a token generator, please use your\n" -" favourite two factor authentication (TOTP) app to scan the QR code below.\n" +" favourite two factor authentication (TOTP) app to scan the QR code " +"below.\n" " Then, enter the token generated by the app.\n" " " msgstr "" "\n" -" Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоби почати викориÑÑ‚Ð°Ð½Ð½Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð° токенів, ÑкориÑтйтеÑÑ, будь лаÑка, Ñвоїм\n" -" улюбленим додатком Ð´Ð»Ñ Ð´Ð²Ð¾Ñ…Ñ„Ð°ÐºÑ‚Ð¾Ñ€Ð½Ð¾Ñ— автентифікації (TOTP) та відÑкануйте QR-код, що нижче.\n" +" Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоби почати викориÑÑ‚Ð°Ð½Ð½Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð° токенів, ÑкориÑтйтеÑÑ, " +"будь лаÑка, Ñвоїм\n" +" улюбленим додатком Ð´Ð»Ñ Ð´Ð²Ð¾Ñ…Ñ„Ð°ÐºÑ‚Ð¾Ñ€Ð½Ð¾Ñ— автентифікації (TOTP) та " +"відÑкануйте QR-код, що нижче.\n" " ПіÑÐ»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ напишіть отриманий генератором токен.\n" " " @@ -2911,7 +3042,8 @@ msgid "" msgstr "" "\n" " Ðапишіть, будь лаÑка, номер телефону, на Ñкий Ви хочете\n" -" отримувати текÑтові повідомленнÑ. Ðа наÑтупному кроці він буде перевірений.\n" +" отримувати текÑтові повідомленнÑ. Ðа наÑтупному кроці він буде " +"перевірений.\n" " " #: aleksis/core/templates/two_factor/core/setup.html:41 @@ -2929,11 +3061,13 @@ msgstr "" #: aleksis/core/templates/two_factor/core/setup.html:50 msgid "" "\n" -" We are calling your phone right now, please enter the digits you hear.\n" +" We are calling your phone right now, please enter the digits you " +"hear.\n" " " msgstr "" "\n" -" Ми зараз телефонуємо на Ваш номер, – напишіть, будь лаÑка, цифри, Ñкі Ви почуєте.\n" +" Ми зараз телефонуємо на Ваш номер, – напишіть, будь лаÑка, " +"цифри, Ñкі Ви почуєте.\n" " " #: aleksis/core/templates/two_factor/core/setup.html:56 @@ -2943,22 +3077,29 @@ msgid "" " " msgstr "" "\n" -" Ми надіÑлали Вам текÑтове повідомленнÑ. Ðапишіть, будь лаÑка, отримані токени.\n" +" Ми надіÑлали Вам текÑтове повідомленнÑ. Ðапишіть, будь лаÑка, " +"отримані токени.\n" " " #: aleksis/core/templates/two_factor/core/setup.html:63 msgid "" "\n" -" We've encountered an issue with the selected authentication method. Please\n" -" go back and verify that you entered your information correctly, try\n" -" again, or use a different authentication method instead. If the issue\n" +" We've encountered an issue with the selected authentication " +"method. Please\n" +" go back and verify that you entered your information correctly, " +"try\n" +" again, or use a different authentication method instead. If the " +"issue\n" " persists, contact the site administrator.\n" " " msgstr "" "\n" -" Ми помітили, що Ñ–Ñнує проблема з викориÑтаннÑм обраного методу авторизації. ПовернітьÑÑ,\n" -" будь лаÑка, назад, та переконайтеÑÑ, що необхідні дані вказані правильно\n" -" Ñ– Ñпробуйте увійте ще раз, або ж ÑкориÑтайтеÑÑ Ñ–Ð½ÑˆÐ¸Ð¼ варіантом входу. Якщо ж\n" +" Ми помітили, що Ñ–Ñнує проблема з викориÑтаннÑм обраного методу " +"авторизації. ПовернітьÑÑ,\n" +" будь лаÑка, назад, та переконайтеÑÑ, що необхідні дані вказані " +"правильно\n" +" Ñ– Ñпробуйте увійте ще раз, або ж ÑкориÑтайтеÑÑ Ñ–Ð½ÑˆÐ¸Ð¼ варіантом " +"входу. Якщо ж\n" " проблема залишаєтьÑÑ, звернітьÑÑ Ð´Ð¾ адмініÑтратора Ñайту.\n" " " @@ -2984,7 +3125,8 @@ msgstr "Двохфакторна Ð°Ð²Ñ‚ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ ÑƒÑпішно у #: aleksis/core/templates/two_factor/core/setup_complete.html:14 msgid "" "\n" -" Congratulations, you've successfully enabled two-factor authentication.\n" +" Congratulations, you've successfully enabled two-factor " +"authentication.\n" " " msgstr "" "\n" @@ -3005,13 +3147,16 @@ msgstr "Створити резервні коди" msgid "" "\n" " However, it might happen that you don't have access to\n" -" your primary token device. To enable account recovery, generate backup codes\n" +" your primary token device. To enable account recovery, generate " +"backup codes\n" " or add a phone number.\n" " " msgstr "" "\n" -" Між іншим, може так ÑтатиÑÑ, що Ви не матимете доÑтупу до Ñвого оÑновного\n" -" приÑтрою з токенами. Ð”Ð»Ñ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²ÐºÐ¸ Ñтворіть резервні коди\n" +" Між іншим, може так ÑтатиÑÑ, що Ви не матимете доÑтупу до Ñвого " +"оÑновного\n" +" приÑтрою з токенами. Ð”Ð»Ñ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²ÐºÐ¸ Ñтворіть " +"резервні коди\n" " або додайте номер телефону.\n" " " @@ -3028,8 +3173,12 @@ msgid "Disable Two-Factor Authentication" msgstr "Вимкнути двохфакторну автентифікацію" #: aleksis/core/templates/two_factor/profile/disable.html:12 -msgid "You are about to disable two-factor authentication. This weakens your account security, are you sure?" -msgstr "Ви вимикаєте двохфакторну автентифікацію. Це знизить захиÑÑ‚ Вашого облікового запиÑу. Ви впевнені?" +msgid "" +"You are about to disable two-factor authentication. This weakens your " +"account security, are you sure?" +msgstr "" +"Ви вимикаєте двохфакторну автентифікацію. Це знизить захиÑÑ‚ Вашого " +"облікового запиÑу. Ви впевнені?" #: aleksis/core/templates/two_factor/profile/disable.html:26 msgid "Disable" @@ -3117,7 +3266,8 @@ msgid "" msgstr "" "\n" " Хоча ми рішуче заÑтерігаємо Ð’Ð°Ñ Ñ†Ðµ не робити, Ви можете \n" -" також вимкнути двохфакторну автентифікацію Ð´Ð»Ñ Ñвого облікового запиÑу.\n" +" також вимкнути двохфакторну автентифікацію Ð´Ð»Ñ Ñвого облікового " +"запиÑу.\n" " " #: aleksis/core/templates/two_factor/profile/profile.html:78 @@ -3259,52 +3409,60 @@ msgstr "Віджет інформпанелі Ñтворений." msgid "The dashboard widget has been deleted." msgstr "Віджет інформпанелі видалений." -#: aleksis/core/views.py:1030 +#: aleksis/core/views.py:1030 aleksis/core/views.py:1031 msgid "Your dashboard configuration has been saved successfully." msgstr "Ваша ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð¿Ð°Ð½ÐµÐ»Ñ– збережена." -#: aleksis/core/views.py:1032 +#: aleksis/core/views.py:1032 aleksis/core/views.py:1033 msgid "The configuration of the default dashboard has been saved successfully." msgstr "ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ñ—/Ñтандартної інформпанелі збережена." -#: aleksis/core/views.py:1103 +#: aleksis/core/views.py:1103 aleksis/core/views.py:1104 #, python-brace-format msgid "The invitation was successfully created. The invitation code is {code}" msgstr "Ð—Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ ÑƒÑпішно Ñтворене. Код запрошеннÑ: {code}" -#: aleksis/core/views.py:1200 +#: aleksis/core/views.py:1200 aleksis/core/views.py:1201 msgid "We have successfully assigned the permissions." msgstr "Ми уÑпішно призначили дозволи." -#: aleksis/core/views.py:1210 +#: aleksis/core/views.py:1210 aleksis/core/views.py:1211 msgid "The global user permission has been deleted." msgstr "Глобальний кориÑтувацький дозвіл видалений." -#: aleksis/core/views.py:1220 +#: aleksis/core/views.py:1220 aleksis/core/views.py:1221 msgid "The global group permission has been deleted." msgstr "Глобальний груповий дозвіл видалений." -#: aleksis/core/views.py:1230 +#: aleksis/core/views.py:1230 aleksis/core/views.py:1231 msgid "The object user permission has been deleted." msgstr "Об'єктний кориÑтувацький дозвіл видалений." -#: aleksis/core/views.py:1240 +#: aleksis/core/views.py:1240 aleksis/core/views.py:1241 msgid "The object group permission has been deleted." msgstr "Об'єктний груповий дозвіл видалений." -#: aleksis/core/views.py:1349 -msgid "The third-party account could not be disconnected because it is the only login method available." -msgstr "Обліковий Ð·Ð°Ð¿Ð¸Ñ Ñ‚Ñ€ÐµÑ‚ÑŒÐ¾Ñ— Ñторони не можна від'єднати оÑкільки він єдиний ÑпоÑіб Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ñƒ." +#: aleksis/core/views.py:1349 aleksis/core/views.py:1350 +msgid "" +"The third-party account could not be disconnected because it is the only " +"login method available." +msgstr "" +"Обліковий Ð·Ð°Ð¿Ð¸Ñ Ñ‚Ñ€ÐµÑ‚ÑŒÐ¾Ñ— Ñторони не можна від'єднати оÑкільки він єдиний " +"ÑпоÑіб Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ñƒ." -#: aleksis/core/views.py:1356 +#: aleksis/core/views.py:1356 aleksis/core/views.py:1357 msgid "The third-party account has been successfully disconnected." msgstr "Обліковий Ð·Ð°Ð¿Ð¸Ñ Ñ‚Ñ€ÐµÑ‚ÑŒÐ¾Ñ— Ñторони уÑпішно від'єднаний." -#: aleksis/core/views.py:1432 -msgid "Person was invited successfully and an email with further instructions has been send to them." -msgstr "ОÑоба уÑпішно запрошена. ЛиÑÑ‚ з інÑтрукціÑми щодо наÑтупних дій надіÑланий на Ñ—Ñ— ел.пошту." +#: aleksis/core/views.py:1432 aleksis/core/views.py:1433 +msgid "" +"Person was invited successfully and an email with further instructions has " +"been send to them." +msgstr "" +"ОÑоба уÑпішно запрошена. ЛиÑÑ‚ з інÑтрукціÑми щодо наÑтупних дій надіÑланий " +"на Ñ—Ñ— ел.пошту." -#: aleksis/core/views.py:1443 +#: aleksis/core/views.py:1443 aleksis/core/views.py:1444 msgid "Person was already invited." msgstr "ОÑоба вже була запрошена." @@ -3411,8 +3569,14 @@ msgstr "ОÑоба вже була запрошена." #~ msgid "ICal Feeds" #~ msgstr "iCal-Ñтрічки" -#~ msgid "These are URLs for different Calendar Feeds in the iCal (.ics) format. You can create as many as you want and import them in your calendar software." -#~ msgstr "Тут міÑÑ‚ÑтьÑÑ Ð¿Ð¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° різні Ñтрічки календарів у форматі iCal (.ics). Ви можете Ñтворити Ñ—Ñ… Ñтільки, Ñкільки Вам необхідно та імпортувати Ñ—Ñ… у ПЗ Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ з календарÑми." +#~ msgid "" +#~ "These are URLs for different Calendar Feeds in the iCal (.ics) format. " +#~ "You can create as many as you want and import them in your calendar " +#~ "software." +#~ msgstr "" +#~ "Тут міÑÑ‚ÑтьÑÑ Ð¿Ð¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° різні Ñтрічки календарів у форматі iCal (." +#~ "ics). Ви можете Ñтворити Ñ—Ñ… Ñтільки, Ñкільки Вам необхідно та імпортувати " +#~ "Ñ—Ñ… у ПЗ Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ з календарÑми." #~ msgid "Your iCal URLs" #~ msgstr "Ваші поÑÐ¸Ð»Ð°Ð½Ð½Ñ iCal" @@ -3437,24 +3601,30 @@ msgstr "ОÑоба вже була запрошена." #~ msgid "" #~ "\n" -#~ " This platform is powered by AlekSIS®, a web-based school information system (SIS) which can be used\n" -#~ " to manage and/or publish organisational artifacts of educational institutions. AlekSIS is free software and\n" +#~ " This platform is powered by AlekSIS®, a web-based school " +#~ "information system (SIS) which can be used\n" +#~ " to manage and/or publish organisational artifacts of " +#~ "educational institutions. AlekSIS is free software and\n" #~ " can be used by anyone.\n" #~ " " #~ msgstr "" #~ "\n" -#~ " Ð¦Ñ Ð¿Ð»Ð°Ñ‚Ñ„Ð¾Ñ€Ð¼Ð° базуєтьÑÑ Ð½Ð° AlekSIS®, веб-інÑтрументі інформаційної ÑиÑтеми Ð´Ð»Ñ Ð½Ð°Ð²Ñ‡Ð°Ð½Ð½Ñ (SIS) за допомогою Ñкої\n" -#~ " можна керувати та/або виÑвітлювати організаційні елементи навчальних закладів. AlekSIS - безплатне ПЗ\n" +#~ " Ð¦Ñ Ð¿Ð»Ð°Ñ‚Ñ„Ð¾Ñ€Ð¼Ð° базуєтьÑÑ Ð½Ð° AlekSIS®, веб-інÑтрументі " +#~ "інформаційної ÑиÑтеми Ð´Ð»Ñ Ð½Ð°Ð²Ñ‡Ð°Ð½Ð½Ñ (SIS) за допомогою Ñкої\n" +#~ " можна керувати та/або виÑвітлювати організаційні елементи " +#~ "навчальних закладів. AlekSIS - безплатне ПЗ\n" #~ " Ñ– ним може кориÑтуватиÑÑ Ð±ÑƒÐ´ÑŒ-хто.\n" #~ " " #~ msgid "" #~ "\n" -#~ " AlekSIS® is a registered trademark of the AlekSIS open source project, represented by Teckids e.V.\n" +#~ " AlekSIS® is a registered trademark of the AlekSIS open " +#~ "source project, represented by Teckids e.V.\n" #~ " " #~ msgstr "" #~ "\n" -#~ " AlekSIS® – зареєÑтрована торгова марка проекту з відкритим програмним кодом AlekSIS, що предÑтавлена Teckids e.V.\n" +#~ " AlekSIS® – зареєÑтрована торгова марка проекту з відкритим " +#~ "програмним кодом AlekSIS, що предÑтавлена Teckids e.V.\n" #~ " " #~ msgid "Website of AlekSIS" @@ -3468,14 +3638,18 @@ msgstr "ОÑоба вже була запрошена." #~ msgid "" #~ "\n" -#~ " The core and the official apps of AlekSIS are licenced under the EUPL, version 1.2 or later. For licence\n" -#~ " information from third-party apps, if installed, refer to the respective components below. The\n" +#~ " The core and the official apps of AlekSIS are licenced " +#~ "under the EUPL, version 1.2 or later. For licence\n" +#~ " information from third-party apps, if installed, refer to " +#~ "the respective components below. The\n" #~ " licences are marked like this:\n" #~ " " #~ msgstr "" #~ "\n" -#~ " Ядро та офіційні додатки AlekSIS ліцензовані EUPL, верÑÑ–Ñ— 1.2 та новіше. Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ—\n" -#~ " щодо додатків третіх Ñторін, Ñкщо такі вÑтановлені, перейдіть до відповідних компонентів нижче.\n" +#~ " Ядро та офіційні додатки AlekSIS ліцензовані EUPL, верÑÑ–Ñ— " +#~ "1.2 та новіше. Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ—\n" +#~ " щодо додатків третіх Ñторін, Ñкщо такі вÑтановлені, " +#~ "перейдіть до відповідних компонентів нижче.\n" #~ " Ці ліцензії мають таку позначку:\n" #~ " " @@ -3503,11 +3677,13 @@ msgstr "ОÑоба вже була запрошена." #~ msgid "" #~ "\n" -#~ " Without activated JavaScript the progress status can't be updated.\n" +#~ " Without activated JavaScript the progress status can't be " +#~ "updated.\n" #~ " " #~ msgstr "" #~ "\n" -#~ " Без активованого JavaScript ÑÑ‚Ð°Ñ‚ÑƒÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð½Ðµ зможе оновлюватиÑÑ.\n" +#~ " Без активованого JavaScript ÑÑ‚Ð°Ñ‚ÑƒÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð½Ðµ зможе " +#~ "оновлюватиÑÑ.\n" #~ " " #~ msgid "Language" @@ -3518,12 +3694,14 @@ msgstr "ОÑоба вже була запрошена." #~ msgid "" #~ "\n" -#~ " Your administrator account is not linked to any person. Therefore,\n" +#~ " Your administrator account is not linked to any person. " +#~ "Therefore,\n" #~ " a dummy person has been linked to your account.\n" #~ " " #~ msgstr "" #~ "\n" -#~ " Ваш адмініÑтративний обліковий Ð·Ð°Ð¿Ð¸Ñ Ð½Ðµ поєднаний з жодною оÑобою. Через це\n" +#~ " Ваш адмініÑтративний обліковий Ð·Ð°Ð¿Ð¸Ñ Ð½Ðµ поєднаний з жодною " +#~ "оÑобою. Через це\n" #~ " до Вашого облікового запиÑу приєднана фейкова оÑоба.\n" #~ " " @@ -3536,8 +3714,10 @@ msgstr "ОÑоба вже була запрошена." #~ msgstr "" #~ "\n" #~ " Ваш обліковий Ð·Ð°Ð¿Ð¸Ñ Ð½Ðµ пов'Ñзаний з фізоÑобою. Це означає,\n" -#~ " що Ви не маєте жодного доÑтупу до навчальної інформації. ЗвернітьÑÑ,\n" -#~ " будь лаÑка, до адмініÑтраторів AlekSIS у Вашому навчальному закладі.\n" +#~ " що Ви не маєте жодного доÑтупу до навчальної інформації. " +#~ "ЗвернітьÑÑ,\n" +#~ " будь лаÑка, до адмініÑтраторів AlekSIS у Вашому навчальному " +#~ "закладі.\n" #~ " " #~ msgid "Impersonate" diff --git a/aleksis/core/mixins.py b/aleksis/core/mixins.py index 809fcb65647abf70b258017a82fc2113fc95a1a2..e734b40a8f7cf55b86e1f496cfb8e8cfe0099cfb 100644 --- a/aleksis/core/mixins.py +++ b/aleksis/core/mixins.py @@ -130,7 +130,7 @@ class ExtensibleModel(models.Model, metaclass=_ExtensibleModelBase): icon_ = "radiobox-blank" site = models.ForeignKey( - Site, on_delete=models.CASCADE, default=settings.SITE_ID, editable=False + Site, on_delete=models.CASCADE, default=settings.SITE_ID, editable=False, related_name="+" ) objects = CurrentSiteManager() objects_all_sites = models.Manager() diff --git a/aleksis/core/models.py b/aleksis/core/models.py index 04d7703ca42a6f87ea2fcd41487d9e173022d2cb..1a370c2c68af1569f92a9cc09ada7f8b5f671649 100644 --- a/aleksis/core/models.py +++ b/aleksis/core/models.py @@ -1093,6 +1093,14 @@ class CustomMenuItem(ExtensibleModel): return reverse("admin:core_custommenuitem_change", args=[self.id]) +class DynamicRoute(RegistryObject): + """Define a dynamic route. + + Dynamic routes should be used to register Vue routes dynamically, e. g. + when an app is supposed to show menu items for dynamically creatable objects. + """ + + class GroupType(ExtensibleModel): """Group type model. diff --git a/aleksis/core/schema/__init__.py b/aleksis/core/schema/__init__.py index e5fcb52b2c03bec68cfc152729cfb2870c0ab878..deab0e28b5d93e854a020aad687a618817196536 100644 --- a/aleksis/core/schema/__init__.py +++ b/aleksis/core/schema/__init__.py @@ -9,11 +9,12 @@ from haystack.inputs import AutoQuery from haystack.query import SearchQuerySet from haystack.utils.loading import UnifiedIndex -from ..models import CustomMenu, Notification, PDFFile, Person, TaskUserAssignment +from ..models import CustomMenu, DynamicRoute, Notification, PDFFile, Person, TaskUserAssignment from ..util.apps import AppConfig from ..util.core_helpers import get_allowed_object_ids, get_app_module, get_app_packages, has_person from .celery_progress import CeleryProgressFetchedMutation, CeleryProgressType from .custom_menu import CustomMenuType +from .dynamic_routes import DynamicRouteType from .group import GroupType # noqa from .installed_apps import AppType from .message import MessageType @@ -54,6 +55,8 @@ class Query(graphene.ObjectType): custom_menu_by_name = graphene.Field(CustomMenuType, name=graphene.String()) + dynamic_routes = graphene.List(DynamicRouteType) + two_factor = graphene.Field(TwoFactorType) def resolve_ping(root, info, payload) -> str: @@ -124,12 +127,16 @@ class Query(graphene.ObjectType): def resolve_search_snippets(root, info, query, limit=-1, **kwargs): indexed_models = UnifiedIndex().get_indexed_models() allowed_object_ids = get_allowed_object_ids(info.context.user, indexed_models) - results = SearchQuerySet().filter(id__in=allowed_object_ids).filter(text=AutoQuery(query)) - - if limit < 0: - return results - return results[:limit] + if allowed_object_ids: + results = ( + SearchQuerySet().filter(id__in=allowed_object_ids).filter(text=AutoQuery(query)) + ) + if limit < 0: + return results + return results[:limit] + else: + return None def resolve_messages(root, info, **kwargs): return get_messages(info) @@ -137,6 +144,14 @@ class Query(graphene.ObjectType): def resolve_custom_menu_by_name(root, info, name, **kwargs): return CustomMenu.get_default(name) + def resolve_dynamic_routes(root, info, **kwargs): + dynamic_routes = [] + + for dynamic_route_object in DynamicRoute.registered_objects_dict.values(): + dynamic_routes += dynamic_route_object.get_dynamic_routes() + + return dynamic_routes + def resolve_two_factor(root, info, **kwargs): if info.context.user.is_anonymous: return None diff --git a/aleksis/core/schema/dynamic_routes.py b/aleksis/core/schema/dynamic_routes.py new file mode 100644 index 0000000000000000000000000000000000000000..5c2fd6336ddb05220447e5ac7df58bbbf98ef74f --- /dev/null +++ b/aleksis/core/schema/dynamic_routes.py @@ -0,0 +1,18 @@ +import graphene + + +class DynamicRouteType(graphene.ObjectType): + parent_route_name = graphene.String() + + route_path = graphene.String() + route_name = graphene.String() + + display_account_menu = graphene.Boolean() + display_sidenav_menu = graphene.Boolean() + menu_new_tab = graphene.Boolean() + + menu_title = graphene.String() + menu_icon = graphene.String() + + menu_permission = graphene.String() + route_permission = graphene.String() diff --git a/aleksis/core/settings.py b/aleksis/core/settings.py index 9e78a56d1169cc9386be8641098a622956c383da..c12ae3371376a0836bdd9898753e7f8d28317daa 100644 --- a/aleksis/core/settings.py +++ b/aleksis/core/settings.py @@ -203,6 +203,7 @@ TEMPLATES = [ "maintenance_mode.context_processors.maintenance_mode", "dynamic_preferences.processors.global_preferences", "aleksis.core.util.core_helpers.custom_information_processor", + "aleksis.core.util.context_processors.need_maintenance_response_context_processor", ], }, }, @@ -281,8 +282,9 @@ CACHALOT_TIMEOUT = _settings.get("caching.cachalot.timeout", None) CACHALOT_DATABASES = set(["default", "default_oot"]) SILENCED_SYSTEM_CHECKS += ["cachalot.W001"] CACHALOT_ENABLED = _settings.get("caching.query_caching", True) +CACHALOT_UNCACHABLE_TABLES = ("django_migrations", "django_session") -SESSION_ENGINE = "django.contrib.sessions.backends.cache" +SESSION_ENGINE = "django.contrib.sessions.backends.cached_db" SESSION_CACHE_ALIAS = "default" # Password validation @@ -394,6 +396,7 @@ OAUTH2_PROVIDER = { "SCOPES_BACKEND_CLASS": "aleksis.core.util.auth_helpers.AppScopes", "OAUTH2_VALIDATOR_CLASS": "aleksis.core.util.auth_helpers.CustomOAuth2Validator", "OIDC_ENABLED": True, + "OIDC_ISS_ENDPOINT": BASE_URL, "REFRESH_TOKEN_EXPIRE_SECONDS": _settings.get("oauth2.token_expiry", 86400), "PKCE_REQUIRED": False, } @@ -591,6 +594,7 @@ YARN_INSTALLED_APPS = [ "vue-apollo@^3.1.0", "vuetify@^2.6.7", "vue-router@^3.5.2", + "vue-cookies@^1.8.2", "vite@^4.0.1", "vite-plugin-pwa@^0.14.1", "vite-plugin-top-level-await@^1.2.2", @@ -698,7 +702,7 @@ MAINTENANCE_MODE = _settings.get("maintenance.enabled", None) MAINTENANCE_MODE_IGNORE_IP_ADDRESSES = _settings.get( "maintenance.ignore_ips", _settings.get("maintenance.internal_ips", []) ) -MAINTENANCE_MODE_GET_CLIENT_IP_ADDRESS = "ipware.ip.get_ip" +MAINTENANCE_MODE_GET_CLIENT_IP_ADDRESS = "aleksis.core.util.core_helpers.get_ip" MAINTENANCE_MODE_IGNORE_SUPERUSER = True MAINTENANCE_MODE_STATE_FILE_NAME = _settings.get( "maintenance.statefile", "maintenance_mode_state.txt" diff --git a/aleksis/core/templates/503.html b/aleksis/core/templates/503.html index 21578e63238f09081e35081b4ed45cf1e0a47a1c..ba7cb4005cfc084338f451db643c2268d45f634b 100644 --- a/aleksis/core/templates/503.html +++ b/aleksis/core/templates/503.html @@ -1,21 +1,4 @@ -{% extends "core/base.html" %} -{% load i18n %} +{% extends "core/vue_index.html" %} - -{% block content %} - <div class="container"> - <div class="card red"> - <div class="card-content white-text"> - <i class="material-icons iconify small left" data-icon="mdi:alert-octagon-outline"></i> - <span class="card-title">{% blocktrans %}The maintenance mode is currently enabled. Please try again - later.{% endblocktrans %}</span> - <p> - {% blocktrans %} - This page is currently unavailable. If this error persists, contact your site administrators: - {% endblocktrans %} - </p> - {% include "core/partials/admins_list.html" %} - </div> - </div> - </div> +{% block no_frontend %} {% endblock %} diff --git a/aleksis/core/templates/core/partials/splash_screen.html b/aleksis/core/templates/core/partials/splash_screen.html index f3491141c1d0bb48b1b767e382ce66ff87239936..10969c261082120648f4b682d2678ba0fee7977f 100644 --- a/aleksis/core/templates/core/partials/splash_screen.html +++ b/aleksis/core/templates/core/partials/splash_screen.html @@ -12,13 +12,23 @@ This webbrowser doesn't support JavaScript, or its execution is blocked. Please use another browser to continue. {% endblocktrans %} </noscript> +{% if need_maintenance_response %} + <p> + {% blocktrans %} + The maintenance mode is currently enabled. Please try again later. + {% endblocktrans %} + </p> +{% endif %} </div> + +{% if not need_maintenance_response %} <div class="lds-ellipsis"> <div></div> <div></div> <div></div> <div></div> </div> +{% endif %} <style> #logo { @@ -36,7 +46,7 @@ max-height: calc(100vh - 10vh - calc(2 * min(85px, 15vh))); } - noscript { + noscript, p { font-family: Roboto, sans-serif; font-weight: 400; } diff --git a/aleksis/core/templates/core/vue_index.html b/aleksis/core/templates/core/vue_index.html index b39da47ea2154318d13ce0d60428f175299ee562..f2c914327ca849801172e8816297eedd724bb99d 100644 --- a/aleksis/core/templates/core/vue_index.html +++ b/aleksis/core/templates/core/vue_index.html @@ -29,6 +29,10 @@ <app ref="aleksisApp"></app> </main> - {% vite_asset 'aleksis/core/frontend/index.js' %} + {% block no_frontend %} + {% if not need_maintenance_response %} + {% vite_asset 'aleksis/core/frontend/index.js' %} + {% endif %} + {% endblock no_frontend %} </body> </html> diff --git a/aleksis/core/templates/search/indexes/core/room_text.txt b/aleksis/core/templates/search/indexes/core/room_text.txt new file mode 100644 index 0000000000000000000000000000000000000000..165c30e8c240ddecc872520626cccb598a6ad7a0 --- /dev/null +++ b/aleksis/core/templates/search/indexes/core/room_text.txt @@ -0,0 +1,2 @@ +{{ object.name }} +{{ object.short_name }} diff --git a/aleksis/core/urls.py b/aleksis/core/urls.py index bc2ccb7534132aa96f48198e339d46dfb9268734..d2c02ed4a5815bfb113fa0aff19700b153b20eb4 100644 --- a/aleksis/core/urls.py +++ b/aleksis/core/urls.py @@ -11,6 +11,7 @@ import calendarweek.django from ckeditor_uploader import views as ckeditor_uploader_views from graphene_django.views import GraphQLView from health_check.urls import urlpatterns as health_urls +from maintenance_mode.decorators import force_maintenance_mode_off from oauth2_provider.views import ConnectDiscoveryInfoView from rules.contrib.views import permission_required from two_factor.urls import urlpatterns as tf_urls @@ -24,7 +25,13 @@ urlpatterns = [ path(settings.MEDIA_URL.removeprefix("/"), include("titofisto.urls")), path("__icons__/", include("dj_iconify.urls")), path("graphql/", csrf_exempt(GraphQLView.as_view(graphiql=True)), name="graphql"), - path("logo", views.LogoView.as_view(), name="logo"), + path("logo", force_maintenance_mode_off(views.LogoView.as_view()), name="logo"), + path( + ".well-known/openid-configuration/", + ConnectDiscoveryInfoView.as_view(), + name="oidc_configuration", + ), + path("oauth/", include("oauth2_provider.urls", namespace="oauth2_provider")), path( "django/", include( @@ -166,11 +173,6 @@ urlpatterns = [ path("search/", views.PermissionSearchView.as_view(), name="haystack_search"), path("maintenance-mode/", include("maintenance_mode.urls")), path("impersonate/", include("impersonate.urls")), - path( - ".well-known/openid-configuration/", - ConnectDiscoveryInfoView.as_view(), - name="oidc_configuration", - ), path( "oauth/applications/", views.OAuth2ListView.as_view(), @@ -201,7 +203,6 @@ urlpatterns = [ views.CustomAuthorizationView.as_view(), name="oauth2_provider:authorize", ), - path("oauth/", include("oauth2_provider.urls", namespace="oauth2_provider")), path("__i18n__/", include("django.conf.urls.i18n")), path( "ckeditor/upload/", diff --git a/aleksis/core/util/context_processors.py b/aleksis/core/util/context_processors.py new file mode 100644 index 0000000000000000000000000000000000000000..acaf79cc7adf9f24b508bb96cd78c65d2a19a2f3 --- /dev/null +++ b/aleksis/core/util/context_processors.py @@ -0,0 +1,5 @@ +from maintenance_mode.http import need_maintenance_response + + +def need_maintenance_response_context_processor(request): + return {"need_maintenance_response": need_maintenance_response(request)} diff --git a/aleksis/core/util/core_helpers.py b/aleksis/core/util/core_helpers.py index 511b6ada19c8ee3bc984ffef7865443142319888..c7f89fb5badfbca1e5014b78a150129afd990669 100644 --- a/aleksis/core/util/core_helpers.py +++ b/aleksis/core/util/core_helpers.py @@ -482,3 +482,10 @@ class OOTRouter: post_invalidation.connect(OOTRouter._invalidate_cachalot) + + +def get_ip(*args, **kwargs): + """Recreate ipware.ip.get_ip as it was replaced by get_client_ip.""" + from ipware.ip import get_client_ip # noqa + + return get_client_ip(*args, **kwargs)[0] diff --git a/aleksis/core/vite.config.js b/aleksis/core/vite.config.js index bf029ce617723720448c6376688bcf392a4eebab..2b73a5f14dd8096530c7fd64356302cd47943979 100644 --- a/aleksis/core/vite.config.js +++ b/aleksis/core/vite.config.js @@ -236,6 +236,18 @@ export default defineConfig({ "PWA-Is-Cacheable": "true", }, }, + plugins: [ + { + fetchDidSucceed: async ({ request, response }) => { + if (response.ok) { + return response; + } + throw new Error( + `${response.status} ${response.statusText}` + ); + }, + }, + ], }, }, { diff --git a/pyproject.toml b/pyproject.toml index 8e8a58ec0b48950cf8ca832521ea2f4f006b77bf..77eb393517270e0b643871077531a4680c1c6b9a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -113,7 +113,7 @@ ipython = "^8.0.0" django-oauth-toolkit = "^2.0.0" django-storages = {version = "^1.11.1", optional = true} boto3 = {version = "^1.17.33", optional = true} -django-cleanup = "^6.0.0" +django-cleanup = "^7.0.0" djangorestframework = "^3.12.4" Whoosh = "^2.7.4" django-titofisto = "^0.2.0"