From 7b9eea53bfe955fd4ba9d820edd4b34991291968 Mon Sep 17 00:00:00 2001 From: Mehdi Benadda Date: Wed, 22 May 2019 19:12:31 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=96(chore)=20bump=20release=20to=201.0?= =?UTF-8?q?.0-beta.9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added - Replace DjangoCMS picture plugin by our simple picture plugin: only one field to upload the image, all attributes that control how the image is resized, cropped and displayed are now in the code, - In the sandbox project, configure Django Filer to serve private files, - Create a user group for each course and give it the permission to manage pages below the course (snapshots and course runs), - Create a folder in Django Filer for each organization and for each course, - When a new course is created for an organization, automatically associate permissions to organization admins (as defined in settings or with sensible defaults), - Configure permission checks on page creations via the CMS wizard, - Automatically create a page role and associate admin permissions when a new organization page is created (as defined in settings or with sensible defaults), - Add page roles to link a user group to a CMS page, searchable via the admin, - Add page roles to link a user group to a CMS page, - Add a persons index and viewset to enable text queries and autocomplete requests on person names from the API. - Index person names on courses to allow users to find courses when they type a related person's name in full text search. - Add a persons filter to the course Search view and suggest persons in autocomplete search field. - Add a management command to create the required site structure, - Allow to dynamically set webpack publicPath. This is useful if a CDN is used to load statics. Define the settings `CDN_DOMAIN` and it will be used as base domain to fetch js chunks. Changed - Restrict course content to plain text in standard sections, - Change the order of placeholders on the course page following feedback from our support team, - Simplify the Docker development stack to have a single `Dockerfile` and docker-compose configuration for testing either with MySQL or PostgreSQL database backend - Standardize the project's `Makefile` to make it more easily maintainable by our peers - Database ports are no longer exposed in the development environment Removed - Alpine images are no longer maintained and have been removed from the project Fixed - Fix production image by removing dependency to `factory` in production code, - Fail and return a meaningful error when an invalid slug is submitted in page creation wizards, - Fix person placeholders mistakenly showing on the organization page, - Fix serializer that was failing for a course indexed with no organization, - The language filter, which is not a drilldown filter, no longer behaves like one. Ditto for any future similar filters, - All children are now shown when a parent filter value is "opened", instead of just the top 5 by facet count. --- CHANGELOG.md | 5 +- setup.cfg | 2 +- src/frontend/js/translations/fr_CA.po | 81 +---- src/frontend/js/translations/fr_FR.json | 2 +- src/frontend/js/translations/fr_FR.po | 85 +---- src/frontend/package.json | 2 +- src/richie/locale/fr_CA/LC_MESSAGES/django.mo | Bin 13165 -> 13011 bytes src/richie/locale/fr_CA/LC_MESSAGES/django.po | 319 ++++++++++++------ src/richie/locale/fr_FR/LC_MESSAGES/django.mo | Bin 13172 -> 14710 bytes src/richie/locale/fr_FR/LC_MESSAGES/django.po | 315 +++++++++++------ 10 files changed, 429 insertions(+), 382 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d11f669a63..9719533f8f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +## [1.0.0-beta.9] - 2019-05-22 + ### Added - Replace DjangoCMS picture plugin by our simple picture plugin: only one @@ -286,7 +288,8 @@ us: - finish integrating the missing pages and improve the sandbox environment; - test and polish the use of richie as a django app / node dependency. -[unreleased]: https://github.com/openfun/richie/compare/v1.0.0-beta.8...master +[unreleased]: https://github.com/openfun/richie/compare/v1.0.0-beta.9...master +[1.0.0-beta.9]: https://github.com/openfun/richie/compare/v1.0.0-beta.8...v1.0.0-beta.9 [1.0.0-beta.8]: https://github.com/openfun/richie/compare/v1.0.0-beta.7...v1.0.0-beta.8 [1.0.0-beta.7]: https://github.com/openfun/richie/compare/v1.0.0-beta.6...v1.0.0-beta.7 [1.0.0-beta.6]: https://github.com/openfun/richie/compare/v1.0.0-beta.5...v1.0.0-beta.6 diff --git a/setup.cfg b/setup.cfg index c39bb65e3d..4f651fc00b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -3,7 +3,7 @@ ;; [metadata] name = richie -version = 1.0.0-beta.8 +version = 1.0.0-beta.9 description = A FUN portal for Open edX long_description = file:README.md long_description_content_type = text/markdown diff --git a/src/frontend/js/translations/fr_CA.po b/src/frontend/js/translations/fr_CA.po index 5eaa6e34d4..208af4a840 100644 --- a/src/frontend/js/translations/fr_CA.po +++ b/src/frontend/js/translations/fr_CA.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"POT-Creation-Date: 2019-05-15T15:04:32.239Z\n" +"POT-Creation-Date: 2019-05-16T14:30:46.542Z\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "MIME-Version: 1.0\n" @@ -13,14 +13,7 @@ msgstr "" "Last-Translator: Samuel Paccoud (sampaccoud)\n" "Language-Team: French, Canada\n" "Language: fr_CA\n" -"PO-Revision-Date: 2019-05-15 15:05\n" - -#. [settings.filters.availability.title] - Title for the "Availability" section of course filters (eg. Coming soon / Current session etc.) -#. defaultMessage is: -#. Availability -#: i18n/js/settings.json -msgid "Availability" -msgstr "" +"PO-Revision-Date: 2019-05-22 17:10\n" #. [common.categoriesHumanName] - Title/name to use when we display a list of categories #. defaultMessage is: @@ -36,20 +29,6 @@ msgstr "Catégories" msgid "Clear {activeFilterCount, number} active {activeFilterCount, plural, one {filter} other {filters}}" msgstr "Remettre à zéro {activeFilterCount, number} {activeFilterCount, plural, one {filtre} other {filtres}} actifs" -#. [components.CloseIcon.closeLabel] - Accessibility label for the "x" disable icon on an active filer -#. defaultMessage is: -#. Close -#: i18n/js/components/icons/CloseIcon.json -msgid "Close" -msgstr "" - -#. [settings.filters.availability.values.coming_soon] - Possible value for the "Availability" filter for courses -#. defaultMessage is: -#. Coming soon -#: i18n/js/settings.json -msgid "Coming soon" -msgstr "" - #. [common.coursesHumanName] - Title/name to use when we display a list of courses #. defaultMessage is: #. Courses @@ -64,13 +43,6 @@ msgstr "Cours" msgid "Cover" msgstr "Couverture" -#. [settings.filters.availability.values.current] - Possible value for the "Availability" filter for courses -#. defaultMessage is: -#. Current session -#: i18n/js/settings.json -msgid "Current session" -msgstr "" - #. [components.CourseGlimpse.linkText] - Accessibility title for links on course glimpses. #. defaultMessage is: #. Details page for {courseTitle}. @@ -78,13 +50,6 @@ msgstr "" msgid "Details page for {courseTitle}." msgstr "Page de détails pour {courseTitle}." -#. [settings.filters.language.en] - Language -#. defaultMessage is: -#. English -#: i18n/js/settings.json -msgid "English" -msgstr "" - #. [components.SearchFiltersPane.title] - Title for the search filters pane in course search. #. defaultMessage is: #. Filter courses @@ -92,20 +57,6 @@ msgstr "" msgid "Filter courses" msgstr "Filtrer les cours" -#. [settings.filters.new.new] - Possible balue for the "New" filter for courses -#. defaultMessage is: -#. First session -#: i18n/js/settings.json -msgid "First session" -msgstr "" - -#. [settings.filters.language.fr] - Language -#. defaultMessage is: -#. French -#: i18n/js/settings.json -msgid "French" -msgstr "" - #. [components.SearchFilterValueParent.ariaHideChildren] - Accessibility message for the button to hide children of the current filter #. defaultMessage is: #. Hide child filters @@ -113,13 +64,6 @@ msgstr "" msgid "Hide child filters" msgstr "Masquer les filtres enfants" -#. [settings.filters.language.title] - Title for the "Language" section of course filters (eg. FR / EN etc.) -#. defaultMessage is: -#. Language -#: i18n/js/settings.json -msgid "Language" -msgstr "" - #. [components.CourseGlimpse.logoAltText] - Alternate text for the course logo in a course glimpse. #. defaultMessage is: #. Logo for {courseTitle} @@ -127,27 +71,6 @@ msgstr "" msgid "Logo for {courseTitle}" msgstr "Logo du cours {courseTitle}" -#. [components.SearchFilterGroup.SearchFilterGroupSuggestField.placeholder] - Placeholder text displayed in the search filter group autocomplet field when it is empty. -#. defaultMessage is: -#. More {kindName} -#: i18n/js/components/SearchFilterGroup/SearchFilterGroupSuggestField.json -msgid "More {kindName}" -msgstr "" - -#. [settings.filters.new.title] - Title for the "New" section of course filters -#. defaultMessage is: -#. New courses -#: i18n/js/settings.json -msgid "New courses" -msgstr "" - -#. [settings.filters.availability.values.open] - Possible value for the "Availability" filter for courses -#. defaultMessage is: -#. Open for enrollment -#: i18n/js/settings.json -msgid "Open for enrollment" -msgstr "" - #. [common.organizationsHumanName] - Title/name to use when we display a list of organizations #. defaultMessage is: #. Organizations diff --git a/src/frontend/js/translations/fr_FR.json b/src/frontend/js/translations/fr_FR.json index ae1527d940..d2d550eecc 100644 --- a/src/frontend/js/translations/fr_FR.json +++ b/src/frontend/js/translations/fr_FR.json @@ -1 +1 @@ -{"components.CourseGlimpse.logoAltText":"Logo du cours {courseTitle}","components.CourseGlimpse.cover":"Couverture","components.CourseGlimpse.startsOn":"Débute le {date}","components.CourseGlimpse.linkText":"Page de détails pour {courseTitle}.","components.CourseGlimpseList.courseCount":"","components.CloseIcon.closeLabel":"","components.SearchFilterGroup.SearchFilterGroupSuggestField.placeholder":"","components.SearchFiltersPane.clearFilters":"Remettre à zéro {activeFilterCount, number} {activeFilterCount, plural, one {filtre} other {filtres}} actifs","components.SearchFiltersPane.title":"Filtrer les cours","components.SearchFilterValueParent.ariaHideChildren":"Cacher les filtres enfants","components.SearchFilterValueParent.ariaShowChildren":"Afficher les filtres enfants","components.SearchSuggestField.searchFieldDefaultSearch":"Recherche de {query} dans les cours...","components.SearchSuggestField.searchFieldPlaceholder":"Recherche des cours, des organisations, des catégories","settings.filters.availability.title":"","settings.filters.availability.values.coming_soon":"","settings.filters.availability.values.current":"","settings.filters.availability.values.open":"","settings.filters.language.title":"","settings.filters.language.en":"","settings.filters.language.fr":"","settings.filters.new.title":"","settings.filters.new.new":"","common.categoriesHumanName":"Catégories","common.coursesHumanName":"Cours","common.organizationsHumanName":"Établissements","common.personsHumanName":""} \ No newline at end of file +{"components.CourseGlimpse.logoAltText":"Logo du cours {courseTitle}","components.CourseGlimpse.cover":"Couverture","components.CourseGlimpse.startsOn":"Débute le {date}","components.CourseGlimpse.linkText":"Page de détails pour {courseTitle}.","components.CourseGlimpseList.courseCount":"{courseCount, number} {courseCount, plural, one {cours} other {cours}} correspondant à votre recherche","components.CloseIcon.closeLabel":"","components.SearchFilterGroup.SearchFilterGroupSuggestField.placeholder":"","components.SearchFiltersPane.clearFilters":"Remettre à zéro {activeFilterCount, number} {activeFilterCount, plural, one {filtre} other {filtres}} actifs","components.SearchFiltersPane.title":"Filtrer les cours","components.SearchFilterValueParent.ariaHideChildren":"Cacher les filtres enfants","components.SearchFilterValueParent.ariaShowChildren":"Afficher les filtres enfants","components.SearchSuggestField.searchFieldDefaultSearch":"Recherche de {query} dans les cours...","components.SearchSuggestField.searchFieldPlaceholder":"Recherche des cours, des organisations, des catégories","settings.filters.availability.title":"","settings.filters.availability.values.coming_soon":"","settings.filters.availability.values.current":"","settings.filters.availability.values.open":"","settings.filters.language.title":"","settings.filters.language.en":"","settings.filters.language.fr":"","settings.filters.new.title":"","settings.filters.new.new":"","common.categoriesHumanName":"Catégories","common.coursesHumanName":"Cours","common.organizationsHumanName":"Établissements","common.personsHumanName":"Personnes"} \ No newline at end of file diff --git a/src/frontend/js/translations/fr_FR.po b/src/frontend/js/translations/fr_FR.po index 5f14812682..2bea14aa40 100644 --- a/src/frontend/js/translations/fr_FR.po +++ b/src/frontend/js/translations/fr_FR.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"POT-Creation-Date: 2019-05-15T15:04:32.239Z\n" +"POT-Creation-Date: 2019-05-16T14:30:46.542Z\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "MIME-Version: 1.0\n" @@ -13,14 +13,7 @@ msgstr "" "Last-Translator: Samuel Paccoud (sampaccoud)\n" "Language-Team: French\n" "Language: fr_FR\n" -"PO-Revision-Date: 2019-05-15 15:05\n" - -#. [settings.filters.availability.title] - Title for the "Availability" section of course filters (eg. Coming soon / Current session etc.) -#. defaultMessage is: -#. Availability -#: i18n/js/settings.json -msgid "Availability" -msgstr "" +"PO-Revision-Date: 2019-05-22 21:45\n" #. [common.categoriesHumanName] - Title/name to use when we display a list of categories #. defaultMessage is: @@ -36,20 +29,6 @@ msgstr "Catégories" msgid "Clear {activeFilterCount, number} active {activeFilterCount, plural, one {filter} other {filters}}" msgstr "Remettre à zéro {activeFilterCount, number} {activeFilterCount, plural, one {filtre} other {filtres}} actifs" -#. [components.CloseIcon.closeLabel] - Accessibility label for the "x" disable icon on an active filer -#. defaultMessage is: -#. Close -#: i18n/js/components/icons/CloseIcon.json -msgid "Close" -msgstr "" - -#. [settings.filters.availability.values.coming_soon] - Possible value for the "Availability" filter for courses -#. defaultMessage is: -#. Coming soon -#: i18n/js/settings.json -msgid "Coming soon" -msgstr "" - #. [common.coursesHumanName] - Title/name to use when we display a list of courses #. defaultMessage is: #. Courses @@ -64,13 +43,6 @@ msgstr "Cours" msgid "Cover" msgstr "Couverture" -#. [settings.filters.availability.values.current] - Possible value for the "Availability" filter for courses -#. defaultMessage is: -#. Current session -#: i18n/js/settings.json -msgid "Current session" -msgstr "" - #. [components.CourseGlimpse.linkText] - Accessibility title for links on course glimpses. #. defaultMessage is: #. Details page for {courseTitle}. @@ -78,13 +50,6 @@ msgstr "" msgid "Details page for {courseTitle}." msgstr "Page de détails pour {courseTitle}." -#. [settings.filters.language.en] - Language -#. defaultMessage is: -#. English -#: i18n/js/settings.json -msgid "English" -msgstr "" - #. [components.SearchFiltersPane.title] - Title for the search filters pane in course search. #. defaultMessage is: #. Filter courses @@ -92,20 +57,6 @@ msgstr "" msgid "Filter courses" msgstr "Filtrer les cours" -#. [settings.filters.new.new] - Possible balue for the "New" filter for courses -#. defaultMessage is: -#. First session -#: i18n/js/settings.json -msgid "First session" -msgstr "" - -#. [settings.filters.language.fr] - Language -#. defaultMessage is: -#. French -#: i18n/js/settings.json -msgid "French" -msgstr "" - #. [components.SearchFilterValueParent.ariaHideChildren] - Accessibility message for the button to hide children of the current filter #. defaultMessage is: #. Hide child filters @@ -113,13 +64,6 @@ msgstr "" msgid "Hide child filters" msgstr "Cacher les filtres enfants" -#. [settings.filters.language.title] - Title for the "Language" section of course filters (eg. FR / EN etc.) -#. defaultMessage is: -#. Language -#: i18n/js/settings.json -msgid "Language" -msgstr "" - #. [components.CourseGlimpse.logoAltText] - Alternate text for the course logo in a course glimpse. #. defaultMessage is: #. Logo for {courseTitle} @@ -127,27 +71,6 @@ msgstr "" msgid "Logo for {courseTitle}" msgstr "Logo du cours {courseTitle}" -#. [components.SearchFilterGroup.SearchFilterGroupSuggestField.placeholder] - Placeholder text displayed in the search filter group autocomplet field when it is empty. -#. defaultMessage is: -#. More {kindName} -#: i18n/js/components/SearchFilterGroup/SearchFilterGroupSuggestField.json -msgid "More {kindName}" -msgstr "" - -#. [settings.filters.new.title] - Title for the "New" section of course filters -#. defaultMessage is: -#. New courses -#: i18n/js/settings.json -msgid "New courses" -msgstr "" - -#. [settings.filters.availability.values.open] - Possible value for the "Availability" filter for courses -#. defaultMessage is: -#. Open for enrollment -#: i18n/js/settings.json -msgid "Open for enrollment" -msgstr "" - #. [common.organizationsHumanName] - Title/name to use when we display a list of organizations #. defaultMessage is: #. Organizations @@ -160,7 +83,7 @@ msgstr "Établissements" #. Persons #: i18n/js/utils/commonMessages.json msgid "Persons" -msgstr "" +msgstr "Personnes" #. [components.SearchSuggestField.searchFieldPlaceholder] - Placeholder text displayed in the search field when it is empty. #. defaultMessage is: @@ -189,7 +112,7 @@ msgstr "Afficher les filtres enfants" #. Showing {courseCount, number} {courseCount, plural, one {course} other {courses}} matching your search #: i18n/js/components/CourseGlimpseList/CourseGlimpseList.json msgid "Showing {courseCount, number} {courseCount, plural, one {course} other {courses}} matching your search" -msgstr "" +msgstr "{courseCount, number} {courseCount, plural, one {cours} other {cours}} correspondant à votre recherche" #. [components.CourseGlimpse.startsOn] - Shows the start date for a course in a course glimpse in a short format such as Sep 4, '1986' #. defaultMessage is: diff --git a/src/frontend/package.json b/src/frontend/package.json index 8740ebf548..33f7c614ed 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -1,6 +1,6 @@ { "name": "richie-education", - "version": "1.0.0-beta.8", + "version": "1.0.0-beta.9", "description": "A CMS for Open Education", "main": "sandbox/manage.py", "scripts": { diff --git a/src/richie/locale/fr_CA/LC_MESSAGES/django.mo b/src/richie/locale/fr_CA/LC_MESSAGES/django.mo index c95d7282246637c25b7ac24500cc9bb4bc36ef4a..12342067f47098c05efa76f5393f235ab36b3f98 100644 GIT binary patch delta 3856 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 iTIy@5DJiCJVArCe0$-D^|6VlXYqDZGHx` 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 delta 4169 zcmYk;dr*~S0>|;^fOx?Qxhxk0eL)Ze4<10|;x%Q}R+K``)!h{^5eWrEK=aaxaEY~5 zqgUHa)GXI(Z3FGp+U86%+3aRHlRGxqHf#Q|YtwAhIJ3zb?zpqx-#HI6zQgZ)p7;7( z-&gAg9c1jKu{QkE_s&jTnbVa5SDl zJ?~w-2S3M=cpb;!0Hzw_H-i*%Igl{U7}dEDM`0!EhBY`IYwY=5)^6)TyqELG?S3EX z{&!IgK93Xd0;<7Zqn`IaOr(C36dh`5KIU+u0uym3X5c{#KG1p|BRT#t(suJ1@@Kx{ zM;*C^={PwiRN)d-1J|MMYqsvxaq2f+6w>e@s>f$>1iptq!Vgdtd|@3xHS`Xq;1uR# z7A`^!?H<&S@3;HC)|05`_oF)WNA#=k9)%hB7t~PQK{X(m301|Zs2d9~A4^dU+l=a2 zC+fN$)QFrw9$^BgDg6+&CO)<2uc8|GZ5-pDKw*dj8uDnKnuOVSKbGNrSdDsc6RJW# z(s{GbdK`llqK5cGRE3xA@xP-+_y+3!7#4y?%86(Ebwf4>G!liV{n@AoEJoe%Fsg@D zsD^B@cG&YhsD{3X{Fy#}G?ITtJ@-25{I{s*{1;h&%s<`N5KTZWnrzgG3RI7(kw%+V z?83dM2SqbnYM_Ja*%Z59j&s>xiE6+h)JVRChw-mij|~iSC;C65px0zI?}Uc53bpE6 zP;>NKT!tr6bAJ=_Fq5Y)z}2Y5coehnBh+>OMl~RVkAN0u8J1%Qs^Om?Yszmvr=T8R zL(RzzyFY|lgpn+9-4KNu`b5+eWueX&poX{@wMggL^NUbZS84aFQ5|YPjrjK9apr#y z1o=$d-auXd18V9b=)M}1gldR`I-iTof|-et zdjD5YP>ZUp4H(A$HdK#yU^wnYJ!rr62%hs8a|)+(e1j8eSTFKInd6v=Z{r;N5?MYb zneVO|JYC;krpe5vpq{TrO~FRg2(+N)wiC;+A9dqR)QH?ct(^!~pcdg+eu6zjHFPFw zWFJIzoHUhUP1oMJN#%)zr--SjuY`~ zRL@88>hNltIGlw!NFU5boQuz(o_`TF!k_vnXy~t7zqc2J(JfsVX^lZWa6CG=3P<2} zRL^!}1RlcK*o!O+^98CwKcJ>MitcMa2Q{+(`4rTE^{5fpiuwe1puPva=wKh}0hcff z2atts;@HuB`Kag2L)}+_dJERs^X;gq*n{f%3piTu|0xRUK>%~{B5JYRMh$%=3qv;~ zqZX$ZwPuQNG|spCOHg0RM^N`~Lfy9uRq;Ml17Aip{0wGLzqv$V6bA-TEx&_$(75c- zjgwJxI}^_yE1)S~-Y z;^(jgx8NY2!a8qgZeti8H7pSs9FvP`*eZM!*P{*+PQp}ka+J7AN_PmZI_)qlf zf)wsriw)L~QA0b0r>F<{sESMQKCD1}!PcS{-8PKG-Ke4Nw);m>i}W>A&)+~@|2C@O z=kgf;C<+%iFb@BQ+W!}h#Ua$%h~QroEv6Jy1$n6B3sKjvMODy<(b$fvxEsT9AF4w= zs16)P-T(W1#(xZj_c;)Q7f}^lL%p}(qk0x!5PEPbYQF&W{?9?J{s&MMRbVVGNA<7{ zJ*dWY6LnHUf0Fc)&6Cl&}g=lUykNO}DZ<>zh$Re_1 z_@Gs93on_OM3#^SqV4Hm*C><*ca3@6syTgxbPz4Xtwis(-jeBLc-u&!o@jA-NiEq# z^nLgR(e`SH;BOJXbIDVrn5@*$W|L|XAU`GFK zx2eMg9CKGWo$~L^;@aPTUOIrTk7Qd@=CnELa(kXEcFGh zr0wvym(zCzR%ATkaqBa)-OH0-4V=i#@dR#X6?y`N*|8q?gPe)(;+)RFH#vPC_apD6 zz~$V!5rMjb+hOk0GqT;QGYZ_PMJJ+Ko7x_0YHQi*G_}#xR(Gh#aZ8Gm-LB#!_s!xe JH=$(t{{eRmzu^D? diff --git a/src/richie/locale/fr_FR/LC_MESSAGES/django.po b/src/richie/locale/fr_FR/LC_MESSAGES/django.po index cf98742d85..8d963e17f7 100644 --- a/src/richie/locale/fr_FR/LC_MESSAGES/django.po +++ b/src/richie/locale/fr_FR/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: richie\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-15 17:04+0200\n" -"PO-Revision-Date: 2019-05-15 15:05\n" +"POT-Creation-Date: 2019-05-22 13:57+0000\n" +"PO-Revision-Date: 2019-05-22 21:45\n" "Last-Translator: Samuel Paccoud (sampaccoud)\n" "Language-Team: French\n" "Language: fr_FR\n" @@ -104,10 +104,18 @@ msgstr "Page Facebook" msgid "Twitter page" msgstr "Page Twitter" -#: apps/courses/admin.py:69 +#: apps/courses/admin.py:71 msgid "Course could not be found." msgstr "Le cours n'a pas pu être trouvé." +#: apps/courses/admin.py:132 +msgid "See user group" +msgstr "Voir le groupe d'utilisateurs" + +#: apps/courses/admin.py:133 +msgid "See filer folder" +msgstr "Voir le dossier du classeur" + #: apps/courses/cms_plugins.py:124 msgid "Licence" msgstr "License" @@ -124,123 +132,127 @@ msgstr "Capture instantanée de cette page..." msgid "This will place a copy of this page as its child and move all its courseruns as children of its new copy." msgstr "Ceci copie la page vers une page enfant et les sessions de cours actuelles deviennent des enfants de cette copie." -#: apps/courses/cms_wizards.py:63 +#: apps/courses/cms_wizards.py:68 msgid "New page" msgstr "Nouvelle page" -#: apps/courses/cms_wizards.py:67 +#: apps/courses/cms_wizards.py:72 msgid "Create a new page next to the current page." msgstr "Créer une nouvelle page à côté de la page actuelle." -#: apps/courses/cms_wizards.py:74 +#: apps/courses/cms_wizards.py:79 msgid "New sub page" msgstr "Nouvelle sous-page" -#: apps/courses/cms_wizards.py:78 +#: apps/courses/cms_wizards.py:83 msgid "Create a page below the current page." msgstr "Créer une page sous la page actuelle." -#: apps/courses/cms_wizards.py:93 +#: apps/courses/cms_wizards.py:98 msgid "Page title" msgstr "Titre de la page" -#: apps/courses/cms_wizards.py:94 +#: apps/courses/cms_wizards.py:99 msgid "Title of the page in current language" msgstr "Titre de la page dans la langue actuelle" -#: apps/courses/cms_wizards.py:101 +#: apps/courses/cms_wizards.py:106 msgid "Page slug" msgstr "Chemin de la page" -#: apps/courses/cms_wizards.py:102 +#: apps/courses/cms_wizards.py:107 msgid "Slug of the page in current language" msgstr "Chemin de la page dans la langue actuelle" -#: apps/courses/cms_wizards.py:125 +#: apps/courses/cms_wizards.py:130 msgid "This slug is too long. The length of the path built by prepending the slug of the parent page would be {:d} characters long and it should be less than 255" msgstr "Ce chemin est trop long. Le lien construit en faisant précéder ce chemin par le lien de la page parente serait trop long de {:d} caractères et devrait être de moins de 255 caractères" -#: apps/courses/cms_wizards.py:139 +#: apps/courses/cms_wizards.py:144 msgid "This slug is already in use" msgstr "Ce chemin est déjà utilisé" -#: apps/courses/cms_wizards.py:158 +#: apps/courses/cms_wizards.py:171 #, python-brace-format msgid "You must first create a parent page and set its `reverse_id` to `{reverse}`." msgstr "Vous devez d’abord créer une page parente dont le 'reverse_id' est la valeur '{reverse} '." -#: apps/courses/cms_wizards.py:222 +#: apps/courses/cms_wizards.py:304 msgid "New course page" msgstr "Nouvelle page de cours" -#: apps/courses/cms_wizards.py:223 +#: apps/courses/cms_wizards.py:305 msgid "Create a new course page" msgstr "Créez une nouvelle page de cours" -#: apps/courses/cms_wizards.py:238 +#: apps/courses/cms_wizards.py:320 msgid "Snapshot the course" msgstr "Capture instantanée de ce cours" -#: apps/courses/cms_wizards.py:240 +#: apps/courses/cms_wizards.py:322 msgid "Tick this box if you want to snapshot the current version of the course and link the new course run to a new version of the course." msgstr "Cocher cette case si vous voulez faire une capture instantanée de la version actuelle du cours et attacher la nouvelle session de cours à une nouvelle version du cours." -#: apps/courses/cms_wizards.py:325 +#: apps/courses/cms_wizards.py:423 msgid "New course run page" msgstr "Nouvelle page de session de cours" -#: apps/courses/cms_wizards.py:326 +#: apps/courses/cms_wizards.py:424 msgid "Create a new course run page" msgstr "Créez une nouvelle page de session de cours" -#: apps/courses/cms_wizards.py:358 -msgid "New Organization page" +#: apps/courses/cms_wizards.py:508 +msgid "New organization page" msgstr "Nouvelle page d'établissement" -#: apps/courses/cms_wizards.py:359 -msgid "Create a new Organization page" +#: apps/courses/cms_wizards.py:509 +msgid "Create a new organization page" msgstr "Créer une nouvelle page d'établissement" -#: apps/courses/cms_wizards.py:405 +#: apps/courses/cms_wizards.py:574 msgid "New category page" msgstr "Nouvelle page de catégorie" -#: apps/courses/cms_wizards.py:406 +#: apps/courses/cms_wizards.py:575 msgid "Create a new category page" msgstr "Créer une nouvelle page de catégorie" -#: apps/courses/cms_wizards.py:438 +#: apps/courses/cms_wizards.py:626 msgid "New blog post" msgstr "Nouveau billet de blog" -#: apps/courses/cms_wizards.py:439 +#: apps/courses/cms_wizards.py:627 msgid "Create a new blog post" msgstr "Créer un nouveau billet de blog" -#: apps/courses/cms_wizards.py:456 apps/courses/models/person.py:51 +#: apps/courses/cms_wizards.py:644 apps/courses/models/person.py:51 msgid "Title" msgstr "Titre" -#: apps/courses/cms_wizards.py:457 +#: apps/courses/cms_wizards.py:645 msgid "Choose this person's title among existing ones" msgstr "Choisissez le titre de cette personne parmi ceux qui existent déjà" -#: apps/courses/cms_wizards.py:460 +#: apps/courses/cms_wizards.py:648 msgid "First Name" msgstr "Prénom" -#: apps/courses/cms_wizards.py:463 +#: apps/courses/cms_wizards.py:651 msgid "Last Name" msgstr "Nom de famille" -#: apps/courses/cms_wizards.py:489 +#: apps/courses/cms_wizards.py:696 msgid "New person page" msgstr "Nouvelle page de personne" -#: apps/courses/cms_wizards.py:490 +#: apps/courses/cms_wizards.py:697 msgid "Create a new person page" msgstr "Créez une nouvelle page de personne" +#: apps/courses/defaults.py:9 +msgid "Admin" +msgstr "Admin" + #: apps/courses/helpers.py:32 msgid "You can't snapshot a snapshot." msgstr "Vous ne pouvez pas faire une capture instantanée d'une capture instantanée." @@ -269,119 +281,119 @@ msgstr "catégorie" msgid "category plugin" msgstr "plugin de catégorie" -#: apps/courses/models/course.py:37 apps/courses/models/course.py:38 +#: apps/courses/models/course.py:35 apps/courses/models/course.py:36 msgid "enroll now" msgstr "s’inscrire maintenant" -#: apps/courses/models/course.py:39 +#: apps/courses/models/course.py:37 msgid "see details" msgstr "voir les détails" -#: apps/courses/models/course.py:47 +#: apps/courses/models/course.py:45 msgid "closing on" msgstr "termine le" -#: apps/courses/models/course.py:48 apps/courses/models/course.py:49 +#: apps/courses/models/course.py:46 apps/courses/models/course.py:47 msgid "starting on" msgstr "débute le" -#: apps/courses/models/course.py:50 +#: apps/courses/models/course.py:48 msgid "enrollment closed" msgstr "inscription fermée" -#: apps/courses/models/course.py:51 +#: apps/courses/models/course.py:49 msgid "on-going" msgstr "en cours" -#: apps/courses/models/course.py:52 +#: apps/courses/models/course.py:50 msgid "archived" msgstr "archivé" -#: apps/courses/models/course.py:53 +#: apps/courses/models/course.py:51 msgid "to be scheduled" msgstr "à programmer" -#: apps/courses/models/course.py:80 +#: apps/courses/models/course.py:78 msgid "forever open" msgstr "toujours ouvert" -#: apps/courses/models/course.py:139 +#: apps/courses/models/course.py:118 msgid "course" msgstr "cours" -#: apps/courses/models/course.py:348 -#: apps/courses/templates/courses/cms/course_detail.html:99 +#: apps/courses/models/course.py:327 +#: apps/courses/templates/courses/cms/course_detail.html:111 #: apps/courses/templates/courses/cms/course_run_detail.html:74 msgid "Resource link" msgstr "Lien de la ressource" -#: apps/courses/models/course.py:349 +#: apps/courses/models/course.py:328 msgid "course start" msgstr "début du cours" -#: apps/courses/models/course.py:350 +#: apps/courses/models/course.py:329 msgid "course end" msgstr "fin du cours" -#: apps/courses/models/course.py:352 +#: apps/courses/models/course.py:331 msgid "enrollment start" msgstr "début des inscriptions" -#: apps/courses/models/course.py:354 +#: apps/courses/models/course.py:333 msgid "enrollment end" msgstr "fin des inscriptions" -#: apps/courses/models/course.py:362 +#: apps/courses/models/course.py:341 msgid "The list of languages in which the course content is available." msgstr "Les langues dans lesquelles le contenu du cours est disponible." -#: apps/courses/models/course.py:369 +#: apps/courses/models/course.py:348 msgid "course run" msgstr "session de cours" -#: apps/courses/models/course.py:475 +#: apps/courses/models/course.py:454 msgid "course plugin" msgstr "plugin de cours" -#: apps/courses/models/course.py:491 +#: apps/courses/models/course.py:470 msgid "name" msgstr "nom" -#: apps/courses/models/course.py:493 +#: apps/courses/models/course.py:472 #: apps/courses/templates/courses/plugins/course_plugin.html:5 #: plugins/large_banner/models.py:38 msgid "logo" msgstr "logo" -#: apps/courses/models/course.py:495 +#: apps/courses/models/course.py:474 msgid "url" msgstr "url" -#: apps/courses/models/course.py:496 +#: apps/courses/models/course.py:475 msgid "content" msgstr "contenu" -#: apps/courses/models/course.py:500 +#: apps/courses/models/course.py:479 msgid "licence" msgstr "license" -#: apps/courses/models/course.py:515 +#: apps/courses/models/course.py:494 msgid "description" msgstr "description" -#: apps/courses/models/course.py:519 +#: apps/courses/models/course.py:498 msgid "licence plugin" msgstr "plugin de licence" -#: apps/courses/models/organization.py:32 +#: apps/courses/models/organization.py:31 msgid "code" msgstr "code" -#: apps/courses/models/organization.py:39 +#: apps/courses/models/organization.py:38 msgid "organization" msgstr "établissement" -#: apps/courses/models/organization.py:173 +#: apps/courses/models/organization.py:172 msgid "organization plugin" msgstr "plugin d'établissement" @@ -413,6 +425,46 @@ msgstr "personnes" msgid "person plugin" msgstr "plugin de personne" +#: apps/courses/models/role.py:20 +msgid "role" +msgstr "rôle" + +#: apps/courses/models/role.py:22 +msgid "A role describes all the permissions that should be granted to the user group." +msgstr "Un rôle décrit toutes les permissions qui doivent être accordées au groupe d'utilisateurs." + +#: apps/courses/models/role.py:29 +msgid "page" +msgstr "page" + +#: apps/courses/models/role.py:30 +msgid "Page to which this role grants permissions." +msgstr "Page à laquelle ce rôle donne des permissions." + +#: apps/courses/models/role.py:40 +msgid "group" +msgstr "groupe" + +#: apps/courses/models/role.py:41 +msgid "User group that this role controls." +msgstr "Groupe d'utilisateurs que ce rôle contrôle." + +#: apps/courses/models/role.py:49 +msgid "filer folder" +msgstr "dossier du classeur" + +#: apps/courses/models/role.py:50 +msgid "Filer folder that this role controls." +msgstr "Dossier du classeur que ce rôle contrôle." + +#: apps/courses/models/role.py:58 +msgid "page role" +msgstr "rôle de page" + +#: apps/courses/models/role.py:63 +msgid "{:s} | {:s}" +msgstr "{:s} | {:s}" + #: apps/courses/templates/courses/cms/blogpost_detail.html:17 msgid "No author yet." msgstr "Pas d'auteur." @@ -422,15 +474,21 @@ msgid "No categories yet." msgstr "Pas de catégories." #: apps/courses/templates/courses/cms/blogpost_detail.html:38 -#: apps/courses/templates/courses/cms/fragment_course_glimpse.html:11 +#: apps/courses/templates/courses/cms/fragment_blogpost_glimpse.html:7 +#: apps/courses/templates/courses/cms/fragment_course_glimpse.html:7 msgid "Cover" msgstr "Couverture" -#: apps/courses/templates/courses/cms/blogpost_detail.html:45 +#: apps/courses/templates/courses/cms/blogpost_detail.html:49 +#: apps/courses/templates/courses/cms/fragment_blogpost_glimpse.html:17 +msgid "blog post cover image" +msgstr "image de couverture de billet de blog" + +#: apps/courses/templates/courses/cms/blogpost_detail.html:57 msgid "No excerpt content" msgstr "Pas d'extrait" -#: apps/courses/templates/courses/cms/blogpost_detail.html:53 +#: apps/courses/templates/courses/cms/blogpost_detail.html:65 msgid "No body content" msgstr "Pas de contenu" @@ -443,28 +501,36 @@ msgstr "Pas de billets de blog associés" msgid "Banner" msgstr "Bannière" -#: apps/courses/templates/courses/cms/category_detail.html:16 -#: apps/courses/templates/courses/cms/fragment_category_glimpse.html:13 -#: apps/courses/templates/courses/cms/fragment_organization_glimpse.html:11 -#: apps/courses/templates/courses/cms/organization_detail.html:16 +#: apps/courses/templates/courses/cms/category_detail.html:20 +msgid "category banner" +msgstr "bannière de catégorie" + +#: apps/courses/templates/courses/cms/category_detail.html:27 +#: apps/courses/templates/courses/cms/fragment_category_glimpse.html:9 +#: apps/courses/templates/courses/cms/fragment_organization_glimpse.html:8 +#: apps/courses/templates/courses/cms/organization_detail.html:27 msgid "Logo" msgstr "Logo" -#: apps/courses/templates/courses/cms/category_detail.html:33 -#: apps/courses/templates/courses/cms/organization_detail.html:33 +#: apps/courses/templates/courses/cms/category_detail.html:38 +msgid "category logo" +msgstr "logo de catégorie" + +#: apps/courses/templates/courses/cms/category_detail.html:55 +#: apps/courses/templates/courses/cms/organization_detail.html:55 msgid "Related courses" msgstr "Cours associés" -#: apps/courses/templates/courses/cms/category_detail.html:52 +#: apps/courses/templates/courses/cms/category_detail.html:74 msgid "Sub categories" msgstr "Sous-catégories" -#: apps/courses/templates/courses/cms/category_detail.html:63 +#: apps/courses/templates/courses/cms/category_detail.html:85 msgid "Related blogposts" msgstr "Billets de blog liés" -#: apps/courses/templates/courses/cms/category_detail.html:82 -#: apps/courses/templates/courses/cms/organization_detail.html:52 +#: apps/courses/templates/courses/cms/category_detail.html:104 +#: apps/courses/templates/courses/cms/organization_detail.html:74 msgid "Related persons" msgstr "Personnes liées" @@ -487,7 +553,7 @@ msgstr "Accédez à la version actuelle" #: apps/courses/templates/courses/cms/course_detail.html:40 #: apps/courses/templates/courses/cms/course_run_detail.html:33 -#: apps/courses/templates/courses/cms/person_detail.html:15 +#: apps/courses/templates/courses/cms/person_detail.html:18 msgid "No associated categories" msgstr "Aucune catégorie associée" @@ -495,35 +561,40 @@ msgstr "Aucune catégorie associée" msgid "Add an image for course cover on its glimpse." msgstr "Ajouter une image pour la couverture du cours sur son aperçu." -#: apps/courses/templates/courses/cms/course_detail.html:81 +#: apps/courses/templates/courses/cms/course_detail.html:65 +#: apps/courses/templates/courses/cms/fragment_course_glimpse.html:17 +msgid "course cover image" +msgstr "image de couverture du cours" + +#: apps/courses/templates/courses/cms/course_detail.html:93 msgid "Course runs" msgstr "Sessions de cours" -#: apps/courses/templates/courses/cms/course_detail.html:85 +#: apps/courses/templates/courses/cms/course_detail.html:97 msgid "Enrollment" msgstr "Inscription" -#: apps/courses/templates/courses/cms/course_detail.html:89 -#: apps/courses/templates/courses/cms/course_detail.html:95 +#: apps/courses/templates/courses/cms/course_detail.html:101 +#: apps/courses/templates/courses/cms/course_detail.html:107 msgid "From" msgstr "Du" -#: apps/courses/templates/courses/cms/course_detail.html:89 -#: apps/courses/templates/courses/cms/course_detail.html:95 +#: apps/courses/templates/courses/cms/course_detail.html:101 +#: apps/courses/templates/courses/cms/course_detail.html:107 msgid "to" msgstr "au" -#: apps/courses/templates/courses/cms/course_detail.html:91 +#: apps/courses/templates/courses/cms/course_detail.html:103 msgid "Course" msgstr "Cours" -#: apps/courses/templates/courses/cms/course_detail.html:97 +#: apps/courses/templates/courses/cms/course_detail.html:109 #: apps/courses/templates/courses/cms/course_run_detail.html:59 -#: apps/search/defaults.py:80 +#: apps/search/defaults.py:66 msgid "Languages" msgstr "Langues" -#: apps/courses/templates/courses/cms/course_detail.html:118 +#: apps/courses/templates/courses/cms/course_detail.html:130 msgid "No associated course runs" msgstr "Aucune session de cours n'est disponible" @@ -547,6 +618,11 @@ msgstr "Début du cours" msgid "Course ends" msgstr "Fin du cours" +#: apps/courses/templates/courses/cms/fragment_category_glimpse.html:19 +#, python-format +msgid "%(title)s logo" +msgstr "logo %(title)s" + #: apps/courses/templates/courses/cms/fragment_course_content.html:5 msgid "Add a video or teaser." msgstr "Ajouter une bande annonce ou une image." @@ -592,8 +668,8 @@ msgid "How is progress evaluated and/or certified?" msgstr "Comment les étudiants sont ils évalués et/ou certifiés ?" #: apps/courses/templates/courses/cms/fragment_course_content.html:61 -#: apps/courses/templates/courses/cms/person_detail.html:44 -#: apps/search/defaults.py:117 +#: apps/courses/templates/courses/cms/person_detail.html:57 +#: apps/search/defaults.py:103 msgid "Organizations" msgstr "Établissements" @@ -629,37 +705,56 @@ msgstr "Licence pour le contenu créé par les participants du cours" msgid "What is the license for the content created by course participants?" msgstr "Quelle est la licence pour le contenu créé par les participants du cours ?" -#: apps/courses/templates/courses/cms/fragment_organization_main_logo.html:11 -#: apps/courses/templates/courses/cms/fragment_organization_main_logo.html:18 +#: apps/courses/templates/courses/cms/fragment_organization_glimpse.html:18 +#: apps/courses/templates/courses/cms/organization_detail.html:38 +msgid "organization logo" +msgstr "logo d'établissement" + +#: apps/courses/templates/courses/cms/fragment_organization_main_logo.html:8 +#: apps/courses/templates/courses/cms/fragment_organization_main_logo.html:25 msgid "Main organization" msgstr "Etablissement principal" -#: apps/courses/templates/courses/cms/fragment_person_glimpse.html:7 +#: apps/courses/templates/courses/cms/fragment_organization_main_logo.html:18 +msgid "main organization logo" +msgstr "logo d'établissement principal" + +#: apps/courses/templates/courses/cms/fragment_person_glimpse.html:6 msgid "avatar" msgstr "avatar" -#: apps/courses/templates/courses/cms/fragment_person_glimpse.html:14 -#: apps/courses/templates/courses/cms/person_detail.html:26 +#: apps/courses/templates/courses/cms/fragment_person_glimpse.html:8 +#: apps/courses/templates/courses/cms/person_detail.html:28 msgid "Portrait" msgstr "Portrait" +#: apps/courses/templates/courses/cms/fragment_person_glimpse.html:18 +#: apps/courses/templates/courses/cms/person_detail.html:39 +#, python-format +msgid "%(title)s avatar" +msgstr "avatar de %(title)s" + +#: apps/courses/templates/courses/cms/organization_detail.html:20 +msgid "organization banner" +msgstr "bannière d'établissement" + #: apps/courses/templates/courses/cms/organization_list.html:14 msgid "No organization yet" msgstr "Pas d'établissement" -#: apps/courses/templates/courses/cms/person_detail.html:34 +#: apps/courses/templates/courses/cms/person_detail.html:47 msgid "Enter your bio here..." msgstr "Saisissez ici votre bio..." -#: apps/courses/templates/courses/cms/person_detail.html:47 +#: apps/courses/templates/courses/cms/person_detail.html:60 msgid "No associated organizations" msgstr "Aucun établissement associé" -#: apps/courses/templates/courses/cms/person_detail.html:56 +#: apps/courses/templates/courses/cms/person_detail.html:69 msgid "Courses" msgstr "Cours" -#: apps/courses/templates/courses/cms/person_detail.html:75 +#: apps/courses/templates/courses/cms/person_detail.html:88 msgid "Blogposts" msgstr "Articles de blog" @@ -667,43 +762,43 @@ msgstr "Articles de blog" msgid "No persons" msgstr "Pas de personnes" -#: apps/search/defaults.py:55 +#: apps/search/defaults.py:41 msgid "New courses" msgstr "Nouveaux cours" -#: apps/search/defaults.py:59 +#: apps/search/defaults.py:45 msgid "First session" msgstr "Première session" -#: apps/search/defaults.py:70 +#: apps/search/defaults.py:56 msgid "Availability" msgstr "Disponibilité" -#: apps/search/defaults.py:95 +#: apps/search/defaults.py:81 msgid "Subjects" msgstr "Sujets" -#: apps/search/defaults.py:106 +#: apps/search/defaults.py:92 msgid "Levels" msgstr "Niveaux" -#: apps/search/defaults.py:127 +#: apps/search/defaults.py:113 msgid "Persons" msgstr "Personnes" -#: apps/search/filter_definitions/courses.py:249 +#: apps/search/filter_definitions/courses.py:252 msgid "Open for enrollment" msgstr "Ouvert pour inscription" -#: apps/search/filter_definitions/courses.py:250 +#: apps/search/filter_definitions/courses.py:253 msgid "Coming soon" msgstr "À venir" -#: apps/search/filter_definitions/courses.py:251 +#: apps/search/filter_definitions/courses.py:254 msgid "On-going" msgstr "En cours" -#: apps/search/filter_definitions/courses.py:252 +#: apps/search/filter_definitions/courses.py:255 msgid "Archived" msgstr "Archivé" @@ -759,6 +854,10 @@ msgstr "Eléments mis en avant" msgid "Optional template for custom look." msgstr "Modèle optionnel pour un rendu personnalisé." +#: plugins/simple_picture/cms_plugins.py:27 +msgid "Image" +msgstr "Image" + #: plugins/simple_text_ckeditor/cms_plugins.py:27 msgid "Simple text" msgstr "Texte simple"