localcosmos-app-kit 0.9.15__py3-none-any.whl → 0.9.16__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. app_kit/admin_urls.py +5 -0
  2. app_kit/appbuilder/TaxonBuilder.py +31 -23
  3. app_kit/appbuilder/__pycache__/TaxonBuilder.cpython-313.pyc +0 -0
  4. app_kit/features/taxon_profiles/templates/taxon_profiles/ajax/delete_all_manually_added_images.html +37 -0
  5. app_kit/features/taxon_profiles/templates/taxon_profiles/manage_taxon_profiles.html +16 -0
  6. app_kit/features/taxon_profiles/tests/__pycache__/test_views.cpython-313.pyc +0 -0
  7. app_kit/features/taxon_profiles/tests/test_views.py +100 -3
  8. app_kit/features/taxon_profiles/urls.py +3 -0
  9. app_kit/features/taxon_profiles/views.py +38 -1
  10. app_kit/forms.py +8 -0
  11. app_kit/locale/de/LC_MESSAGES/django.mo +0 -0
  12. app_kit/locale/de/LC_MESSAGES/django.po +247 -93
  13. app_kit/taxonomy/lazy.py +6 -6
  14. app_kit/templates/app_kit/ajax/list_images_and_licences_content.html +44 -0
  15. app_kit/templates/app_kit/ajax/manage_content_licence.html +25 -0
  16. app_kit/templates/app_kit/list_images_and_licences.html +25 -0
  17. app_kit/templates/app_kit/manage_app.html +10 -1
  18. app_kit/templatetags/app_tags.py +23 -3
  19. app_kit/views.py +61 -2
  20. {localcosmos_app_kit-0.9.15.dist-info → localcosmos_app_kit-0.9.16.dist-info}/METADATA +1 -1
  21. {localcosmos_app_kit-0.9.15.dist-info → localcosmos_app_kit-0.9.16.dist-info}/RECORD +24 -20
  22. {localcosmos_app_kit-0.9.15.dist-info → localcosmos_app_kit-0.9.16.dist-info}/WHEEL +1 -1
  23. {localcosmos_app_kit-0.9.15.dist-info → localcosmos_app_kit-0.9.16.dist-info}/licenses/LICENCE +0 -0
  24. {localcosmos_app_kit-0.9.15.dist-info → localcosmos_app_kit-0.9.16.dist-info}/top_level.txt +0 -0
@@ -8,7 +8,7 @@ msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: PACKAGE VERSION\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2026-01-12 11:19+0100\n"
11
+ "POT-Creation-Date: 2026-01-22 10:51+0100\n"
12
12
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -46,23 +46,23 @@ msgstr "Erfolg"
46
46
  msgid "Failed"
47
47
  msgstr "Fehler"
48
48
 
49
- #: app_kit_api/serializers.py:133 forms.py:41
49
+ #: app_kit_api/serializers.py:133 forms.py:43
50
50
  msgid "Use only [a-z] and [0-9] for the subdomain."
51
51
  msgstr "Nur [a-z] und [0-9] sind für die Subdomain erlaubt."
52
52
 
53
- #: app_kit_api/serializers.py:136 forms.py:44
53
+ #: app_kit_api/serializers.py:136 forms.py:46
54
54
  msgid "This subdomain is forbidden."
55
55
  msgstr "Diese Subdomain ist nicht erlaubt."
56
56
 
57
- #: app_kit_api/serializers.py:139 forms.py:47
57
+ #: app_kit_api/serializers.py:139 forms.py:49
58
58
  msgid "The subdomain has to start with a letter."
59
59
  msgstr "Die Subdomain muss mit einem Buchstaben beginnen."
60
60
 
61
- #: app_kit_api/serializers.py:142 forms.py:50
61
+ #: app_kit_api/serializers.py:142 forms.py:52
62
62
  msgid "The subdomain has to be alphanumeric."
63
63
  msgstr "Die Subdomain muss alphanumerisch sein."
64
64
 
65
- #: app_kit_api/serializers.py:145 forms.py:53
65
+ #: app_kit_api/serializers.py:145 forms.py:55
66
66
  msgid "This subdomain already exists."
67
67
  msgstr "Diese Subdomain ist bereits vergeben."
68
68
 
@@ -77,7 +77,7 @@ msgid ""
77
77
  msgstr ""
78
78
  "Deine App benötigt mindestens einen Naturführer, ein Beobachtungsformular "
79
79
  "oder einen Artensteckbrief."
80
- "%(observation_form_name)s als Standard gesetzt, aber das Formular ist ein "
80
+
81
81
  #: appbuilder/AppReleaseBuilder.py:497
82
82
  #, python-brace-format
83
83
  msgid "Local Cosmos Private API HTTP Error: {0}."
@@ -143,7 +143,7 @@ msgid ""
143
143
  "is not linked to this meta_app."
144
144
  msgstr ""
145
145
  "Auf das Objekt %(object_name)s wird von der Option %(option_name)s "
146
- "verwiesen, aberes ist nicht mit dieser meta_app verlinkt."
146
+ "verwiesen, aber es ist nicht mit dieser meta_app verlinkt."
147
147
 
148
148
  #: appbuilder/AppReleaseBuilder.py:752
149
149
  msgid "This app has no taxa."
@@ -210,7 +210,9 @@ msgstr ""
210
210
  msgid ""
211
211
  "The taxon profile of %(taxon_latname)s is not covered by the taxonomic "
212
212
  "navigation."
213
- msgstr "Der Artensteckbrief von %(taxon_latname)s ist in der taxonomischen Navigation nicht abgedeckt."
213
+ msgstr ""
214
+ "Der Artensteckbrief von %(taxon_latname)s ist in der taxonomischen "
215
+ "Navigation nicht abgedeckt."
214
216
 
215
217
  #: appbuilder/AppReleaseBuilder.py:1000
216
218
  #, python-format
@@ -242,7 +244,9 @@ msgstr "%(taxonomic_filter_name)s hat keine Taxa"
242
244
  msgid ""
243
245
  "The page \"%(name)s\" is not supported by your frontend. You have to remove "
244
246
  "it first."
245
- msgstr "Die Seite „%(name)s“ wird von deinem Frontend nicht unterstützt. Du musst sie zuerst entfernen."
247
+ msgstr ""
248
+ "Die Seite „%(name)s“ wird von deinem Frontend nicht unterstützt. Du musst "
249
+ "sie zuerst entfernen."
246
250
 
247
251
  #: features/backbonetaxonomy/forms.py:32
248
252
  msgid "Search app taxa"
@@ -273,13 +277,17 @@ msgstr "Du kannst nicht zweimal dasselbe Taxon auswählen."
273
277
  msgid ""
274
278
  "If a role for the main taxon is provided, a role for the related taxon must "
275
279
  "also be provided."
276
- msgstr "Wenn eine Rolle für das Haupttaxon angegeben ist, muss auch eine Rolle für das Bezugstaxon angegeben werden."
280
+ msgstr ""
281
+ "Wenn eine Rolle für das Haupttaxon angegeben ist, muss auch eine Rolle für "
282
+ "das Bezugstaxon angegeben werden."
277
283
 
278
284
  #: features/backbonetaxonomy/forms.py:115
279
285
  msgid ""
280
286
  "If a role for the related taxon is provided, a role for the main taxon must "
281
287
  "also be provided."
282
- msgstr "Wenn eine Rolle für das Bezugstaxon angegeben ist, muss auch eine Rolle für das Haupttaxon angegeben werden."
288
+ msgstr ""
289
+ "Wenn eine Rolle für das Bezugstaxon angegeben ist, muss auch eine Rolle für "
290
+ "das Haupttaxon angegeben werden."
283
291
 
284
292
  #: features/backbonetaxonomy/forms.py:123
285
293
  msgid "Abstract name like \"predation\", \"competition\", etc."
@@ -424,6 +432,7 @@ msgid "add vernacular name"
424
432
  msgstr ""
425
433
 
426
434
  #: features/backbonetaxonomy/templates/backbonetaxonomy/ajax/manage_taxon_relationship.html:9
435
+ #, python-format
427
436
  msgid "Manage %(relationship_type)s"
428
437
  msgstr "%(relationship_type)s bearbeiten"
429
438
 
@@ -475,7 +484,8 @@ msgstr "kommt vor in"
475
484
  #: features/backbonetaxonomy/templates/backbonetaxonomy/swap_taxon.html:66
476
485
  #, python-format
477
486
  msgid "%(name)s does not occur in your app and can't be swapped."
478
- msgstr "%(name)s kommt in deiner App nicht vor und kann nicht getauscht werden."
487
+ msgstr ""
488
+ "%(name)s kommt in deiner App nicht vor und kann nicht getauscht werden."
479
489
 
480
490
  #: features/backbonetaxonomy/templates/backbonetaxonomy/ajax/swap_taxon_form.html:117
481
491
  msgid "No occurrences found."
@@ -502,14 +512,18 @@ msgstr ""
502
512
 
503
513
  #: features/backbonetaxonomy/templates/backbonetaxonomy/ajax/taxon_references_changes.html:6
504
514
  msgid "Taxa with changes only in organizational data (e.g. position in tree)"
505
- msgstr "Taxa mit Änderungen nur in organisatorischen Daten (z. B. Position im Baum)"
515
+ msgstr ""
516
+ "Taxa mit Änderungen nur in organisatorischen Daten (z. B. Position im Baum)"
506
517
 
507
518
  #: features/backbonetaxonomy/templates/backbonetaxonomy/ajax/taxon_references_changes.html:14
508
519
  msgid ""
509
520
  "These taxa had changes only in organizational data like their position in "
510
521
  "the taxonomic tree. You can safely update these taxa without changing their "
511
522
  "scientific name or author."
512
- msgstr "Diese Taxa hatten nur Änderungen in organisatorischen Daten wie ihrer Position im taxonomischen Baum. Du kannst diese Taxa gefahrlos aktualisieren, ohne wissenschaftlichen Namen oder Autor zu ändern."
523
+ msgstr ""
524
+ "Diese Taxa hatten nur Änderungen in organisatorischen Daten wie ihrer "
525
+ "Position im taxonomischen Baum. Du kannst diese Taxa gefahrlos "
526
+ "aktualisieren, ohne wissenschaftlichen Namen oder Autor zu ändern."
513
527
 
514
528
  #: features/backbonetaxonomy/templates/backbonetaxonomy/ajax/taxon_references_changes.html:29
515
529
  msgid "Update these taxa"
@@ -770,7 +784,8 @@ msgstr "Analyseergebnis"
770
784
  #: features/backbonetaxonomy/templates/backbonetaxonomy/swap_taxon.html:97
771
785
  #, python-format
772
786
  msgid "%(to_name)s does not occur in your app and can replace %(from_taxon)s."
773
- msgstr "%(to_name)s kommt nicht in dieser App vor und kann %(from_taxon)s ersetzen."
787
+ msgstr ""
788
+ "%(to_name)s kommt nicht in dieser App vor und kann %(from_taxon)s ersetzen."
774
789
 
775
790
  #: features/backbonetaxonomy/templates/backbonetaxonomy/swap_taxon.html:107
776
791
  msgid "Analyze"
@@ -833,6 +848,7 @@ msgstr "Taxonomische Beziehung hinzufügen"
833
848
 
834
849
  #: features/backbonetaxonomy/templates/backbonetaxonomy/taxon_relationships.html:80
835
850
  #: templates/app_kit/ajax/taxon_relationships.html:14
851
+ #, python-format
836
852
  msgid "Add %(relationship_type)s"
837
853
  msgstr "%(relationship_type)s hinzufügen"
838
854
 
@@ -882,6 +898,7 @@ msgid "exists as a Taxon Profile"
882
898
  msgstr "existiert als Artensteckbrief"
883
899
 
884
900
  #: features/backbonetaxonomy/utils.py:179
901
+ #, python-format
885
902
  msgid "occurs in %(count)s navigation entries"
886
903
  msgstr "kommt in %(count)s Einträgen der Navigation vor"
887
904
 
@@ -895,6 +912,7 @@ msgid "is used in %(count)s taxon relationship(s)"
895
912
  msgstr "kommt in %(count)s taxonomischen Beziehungen vor"
896
913
 
897
914
  #: features/backbonetaxonomy/utils.py:222
915
+ #, python-format
898
916
  msgid "occurs in Nature Guide %(nature_guide)s"
899
917
  msgstr "kommt im Naturführer %(nature_guide)s vor"
900
918
 
@@ -904,60 +922,73 @@ msgid "appears as an image of %(content)s (%(model)s)"
904
922
  msgstr "kommt als ein Bild von %(content)s (%(model)s) vor"
905
923
 
906
924
  #: features/backbonetaxonomy/zip_import.py:36
925
+ #, python-format
907
926
  msgid "Cell content has to be \"Relationship Name\", not %(value)s"
908
927
  msgstr "Zellinhalt muss \"Relationship Name\" sein, nicht %(value)s"
909
928
 
910
929
  #: features/backbonetaxonomy/zip_import.py:43
930
+ #, python-format
911
931
  msgid "Cell content has to be \"Taxon Role (optional)\", not %(value)s"
912
932
  msgstr "Zellinhalt muss \"Taxon Role (optional)\" sein, nicht %(value)s"
913
933
 
914
934
  #: features/backbonetaxonomy/zip_import.py:50
935
+ #, python-format
915
936
  msgid "Cell content has to be \"Related Taxon Role (optional)\", not %(value)s"
916
- msgstr "Zellinhalt muss \"Related Taxon Role (optional)\" sein, nicht %(value)s"
937
+ msgstr ""
938
+ "Zellinhalt muss \"Related Taxon Role (optional)\" sein, nicht %(value)s"
917
939
 
918
940
  #: features/backbonetaxonomy/zip_import.py:70
919
941
  #: features/backbonetaxonomy/zip_import.py:114
942
+ #, python-format
920
943
  msgid "Cell has to be empty, not %(value)s"
921
944
  msgstr "Zelle muss leer sein, nicht %(value)s"
922
945
 
923
946
  #: features/backbonetaxonomy/zip_import.py:77
924
947
  #: features/backbonetaxonomy/zip_import.py:84
925
948
  #: features/backbonetaxonomy/zip_import.py:90
949
+ #, python-format
926
950
  msgid "Cell content has to be \"Taxon\", not %(value)s"
927
951
  msgstr "Zellinhalt muss \"Taxon\" sein, nicht %(value)s"
928
952
 
929
953
  #: features/backbonetaxonomy/zip_import.py:96
930
954
  #: features/backbonetaxonomy/zip_import.py:102
931
955
  #: features/backbonetaxonomy/zip_import.py:108
956
+ #, python-format
932
957
  msgid "Cell content has to be \"Related Taxon\", not %(value)s"
933
958
  msgstr "Zellinhalt muss \"Related Taxon\" sein, nicht %(value)s"
934
959
 
935
960
  #: features/backbonetaxonomy/zip_import.py:132
961
+ #, python-format
936
962
  msgid "Cell content has to be \"Relationship\", not %(value)s"
937
963
  msgstr "Zellinhalt muss \"Relationship\" sein, nicht %(value)s"
938
964
 
939
965
  #: features/backbonetaxonomy/zip_import.py:138
940
966
  #: features/backbonetaxonomy/zip_import.py:157
967
+ #, python-format
941
968
  msgid "Cell content has to be \"Scientific Name\", not %(value)s"
942
969
  msgstr "Zellinhalt muss \"Scientific Name\" sein, nicht %(value)s"
943
970
 
944
971
  #: features/backbonetaxonomy/zip_import.py:144
945
972
  #: features/backbonetaxonomy/zip_import.py:163
973
+ #, python-format
946
974
  msgid "Cell content has to be \"Author (optional)\", not %(value)s"
947
975
  msgstr "Zellinhalt muss \"Author (optional)\" sein, nicht %(value)s"
948
976
 
949
977
  #: features/backbonetaxonomy/zip_import.py:151
950
978
  #: features/backbonetaxonomy/zip_import.py:169
979
+ #, python-format
951
980
  msgid "Cell content has to be \"Taxonomic Source\", not %(value)s"
952
981
  msgstr "Zellinhalt muss \"Taxonomic Source\" sein, nicht %(value)s"
953
982
 
954
983
  #: features/backbonetaxonomy/zip_import.py:175
984
+ #, python-format
955
985
  msgid "Cell content has to be \"Description (optional)\", not %(value)s"
956
986
  msgstr "Zellinhalt muss \"Description (optional)\" sein, nicht %(value)s"
957
987
 
958
988
  #: features/backbonetaxonomy/zip_import.py:186
959
989
  #: features/backbonetaxonomy/zip_import.py:266
960
990
  #: features/glossary/zip_import.py:117 features/taxon_profiles/zip_import.py:56
991
+ #, python-format
961
992
  msgid "Sheet \"%(sheet_name)s\" not found in the spreadsheet"
962
993
  msgstr "Blatt \"%(sheet_name)s\" wurde nicht gefunden"
963
994
 
@@ -1027,8 +1058,8 @@ msgid ""
1027
1058
  "Observation forms for button matrices need a point field as geographic "
1028
1059
  "reference field"
1029
1060
  msgstr ""
1030
- "Beobachtungsformulare für Button Matrizen benötigen ein Punkt-Feld "
1031
- "als geographisches Referenz-Feld"
1061
+ "Beobachtungsformulare für Button Matrizen benötigen ein Punkt-Feld als "
1062
+ "geographisches Referenz-Feld"
1032
1063
 
1033
1064
  #: features/buttonmatrix/models.py:57
1034
1065
  msgid "The value 0 is entered for rows or columns."
@@ -1290,7 +1321,8 @@ msgstr "Frontend aktualisieren"
1290
1321
  #: features/frontend/templates/frontend/ajax/update_used_frontend.html:15
1291
1322
  #, python-format
1292
1323
  msgid "This will update the Frontend %(frontend_name)s to version %(version)s."
1293
- msgstr "Das Frontend %(frontend_name)s wird auf Version %(version)s aktualisiert."
1324
+ msgstr ""
1325
+ "Das Frontend %(frontend_name)s wird auf Version %(version)s aktualisiert."
1294
1326
 
1295
1327
  #: features/frontend/templates/frontend/ajax/update_used_frontend.html:18
1296
1328
  msgid "Do you want to update your frontend now?"
@@ -1748,7 +1780,7 @@ msgstr "Definition"
1748
1780
 
1749
1781
  #: features/glossary/templates/glossary/ajax/glossary_entries.html:12
1750
1782
  #: features/nature_guides/templates/nature_guides/ajax/manage_matrix_filter_space.html:29
1751
- #: forms.py:309 templates/app_kit/ajax/form_extended_with_content_image.html:7
1783
+ #: forms.py:317 templates/app_kit/ajax/form_extended_with_content_image.html:7
1752
1784
  msgid "Image"
1753
1785
  msgstr "Bild"
1754
1786
 
@@ -1772,14 +1804,17 @@ msgid "Edit glossary entry"
1772
1804
  msgstr "Glossareintrag bearbeiten"
1773
1805
 
1774
1806
  #: features/glossary/zip_import.py:33
1807
+ #, python-format
1775
1808
  msgid "Cell content has to be \"Term\", not %(value)s"
1776
1809
  msgstr "Zellinhalt muss \"Term\" sein, nicht %(value)s"
1777
1810
 
1778
1811
  #: features/glossary/zip_import.py:40
1812
+ #, python-format
1779
1813
  msgid "Cell content has to be \"Synonyms (optional)\", not %(value)s"
1780
1814
  msgstr "Zellinhalt muss \"Synonyms (optional)\" sein, nicht %(value)s"
1781
1815
 
1782
1816
  #: features/glossary/zip_import.py:47
1817
+ #, python-format
1783
1818
  msgid "Cell content has to be \"Definition\", not %(value)s"
1784
1819
  msgstr "Zellinhalt muss \"Definition\" sein, nicht %(value)s"
1785
1820
 
@@ -1789,16 +1824,21 @@ msgid "Term %(term)s is not unique."
1789
1824
  msgstr ""
1790
1825
 
1791
1826
  #: features/glossary/zip_import.py:93
1827
+ #, python-format
1792
1828
  msgid ""
1793
1829
  "Unambiguous synonym: %(synonym)s is mapped to %(term)s and %(found_synonym)s"
1794
- msgstr "Uneindeutiges Synonym: %(synonym)s is %(term)s and %(found_synonym)s zugewiesen"
1830
+ msgstr ""
1831
+ "Uneindeutiges Synonym: %(synonym)s is %(term)s and %(found_synonym)s "
1832
+ "zugewiesen"
1795
1833
 
1796
1834
  #: features/glossary/zip_import.py:104
1835
+ #, python-format
1797
1836
  msgid ""
1798
1837
  "[%(filename)s][Sheet:%(sheet_name)s] Term %(term)s is also listed as a "
1799
1838
  "synonym."
1800
- msgstr "[%(filename)s][Blatt:%(sheet_name)s] Begriff %(term)s ist auch als "
1801
- "Synonym vorhanden."
1839
+ msgstr ""
1840
+ "[%(filename)s][Blatt:%(sheet_name)s] Begriff %(term)s ist auch als Synonym "
1841
+ "vorhanden."
1802
1842
 
1803
1843
  #: features/glossary/zip_import.py:130
1804
1844
  msgid "No term found."
@@ -2174,27 +2214,32 @@ msgstr ""
2174
2214
  msgid "A matrix filter with this name already exists."
2175
2215
  msgstr "Ein Matrix Filter mit diesem Namen existiert bereits"
2176
2216
 
2177
- #: features/nature_guides/matrix_filter_forms.py:69
2217
+ #: features/nature_guides/matrix_filter_forms.py:78
2218
+ msgid "In polytomous identification mode, only one matrix filter is allowed."
2219
+ msgstr ""
2220
+ "Im polytomen Modus ist nur ein Matrix Filter erlaubt."
2221
+
2222
+ #: features/nature_guides/matrix_filter_forms.py:85
2178
2223
  msgid "Unit (abbreviated)"
2179
2224
  msgstr "Einheit (Kurzform)"
2180
2225
 
2181
- #: features/nature_guides/matrix_filter_forms.py:70
2226
+ #: features/nature_guides/matrix_filter_forms.py:86
2182
2227
  msgid "Short text for unit, like m or cm, independent of language."
2183
2228
  msgstr "Kurztext der Einheit, wie z.B. m oder cm, sprachunabhängig"
2184
2229
 
2185
- #: features/nature_guides/matrix_filter_forms.py:71
2230
+ #: features/nature_guides/matrix_filter_forms.py:87
2186
2231
  msgid "Name of unit"
2187
2232
  msgstr "Name der Einheit"
2188
2233
 
2189
- #: features/nature_guides/matrix_filter_forms.py:72
2234
+ #: features/nature_guides/matrix_filter_forms.py:88
2190
2235
  msgid "Full name of the unit, like meters or centimeters."
2191
2236
  msgstr "Vollständiger name der Einheit, wie Meter oder Zentimeter"
2192
2237
 
2193
- #: features/nature_guides/matrix_filter_forms.py:80
2238
+ #: features/nature_guides/matrix_filter_forms.py:96
2194
2239
  msgid "allow the selection of multiple values (AND logic)"
2195
2240
  msgstr "Auswahl mehrerer Werte erlauben (UND Logik)"
2196
2241
 
2197
- #: features/nature_guides/matrix_filter_forms.py:81
2242
+ #: features/nature_guides/matrix_filter_forms.py:97
2198
2243
  msgid ""
2199
2244
  "The end user will be able to select more than one value. The selected values "
2200
2245
  "will be treated as \"OR\"."
@@ -2202,38 +2247,38 @@ msgstr ""
2202
2247
  "Der Endnutzer kann mehr als nur einen Wert auswählen. Die gewählten Werte "
2203
2248
  "werden als \"UND\" Verknüpfung verstanden."
2204
2249
 
2205
- #: features/nature_guides/matrix_filter_forms.py:87
2250
+ #: features/nature_guides/matrix_filter_forms.py:103
2206
2251
  msgid "Tolerance (percentage)"
2207
2252
  msgstr "Toleranz (in Prozent)"
2208
2253
 
2209
- #: features/nature_guides/matrix_filter_forms.py:106
2254
+ #: features/nature_guides/matrix_filter_forms.py:122
2210
2255
  msgid "Min"
2211
2256
  msgstr "Min"
2212
2257
 
2213
- #: features/nature_guides/matrix_filter_forms.py:107
2258
+ #: features/nature_guides/matrix_filter_forms.py:123
2214
2259
  msgid "Max"
2215
2260
  msgstr "Max"
2216
2261
 
2217
- #: features/nature_guides/matrix_filter_forms.py:108
2262
+ #: features/nature_guides/matrix_filter_forms.py:124
2218
2263
  msgid ""
2219
2264
  "Range will be rendered as a slider. Step defines the step of this slider."
2220
2265
  msgstr ""
2221
2266
  "Intervall wird als Slider dargestellt. Schrittweite definiert die "
2222
2267
  "Schrittweite dieses Sliders."
2223
2268
 
2224
- #: features/nature_guides/matrix_filter_forms.py:121
2269
+ #: features/nature_guides/matrix_filter_forms.py:137
2225
2270
  msgid "Max needs to be higher than min."
2226
2271
  msgstr "max muss höher als min sein"
2227
2272
 
2228
- #: features/nature_guides/matrix_filter_forms.py:134
2273
+ #: features/nature_guides/matrix_filter_forms.py:150
2229
2274
  msgid "Selectable Numbers"
2230
2275
  msgstr "Wählbare Zahlen"
2231
2276
 
2232
- #: features/nature_guides/matrix_filter_forms.py:134
2277
+ #: features/nature_guides/matrix_filter_forms.py:150
2233
2278
  msgid "Comma-separated list, e.g. 1,2,3.1,5"
2234
2279
  msgstr "Kommagetrennte Liste, z.B. 1,2,3.1,5"
2235
2280
 
2236
- #: features/nature_guides/matrix_filter_forms.py:153
2281
+ #: features/nature_guides/matrix_filter_forms.py:169
2237
2282
  #, python-format
2238
2283
  msgid "Only comma separated numbers are allowed. Incorrect character: %s"
2239
2284
  msgstr "Nur kommagetrennte Zahlen sind erlaubt. Falsches Zeichen: %s"
@@ -2512,7 +2557,14 @@ msgstr "%(matrix_filter)s bearbeiten"
2512
2557
  msgid "Create new %(verbose_filter_name)s"
2513
2558
  msgstr "Neuen %(verbose_filter_name)s erstellen"
2514
2559
 
2515
- #: features/nature_guides/templates/nature_guides/ajax/manage_matrix_filter.html:20
2560
+ #: features/nature_guides/templates/nature_guides/ajax/manage_matrix_filter.html:16
2561
+ msgid ""
2562
+ "In dichotomous or polytomous identification mode, only one matrix filter is "
2563
+ "allowed."
2564
+ msgstr ""
2565
+ "Im polytomen Modus ist nur ein Matrix Filter erlaubt."
2566
+
2567
+ #: features/nature_guides/templates/nature_guides/ajax/manage_matrix_filter.html:26
2516
2568
  msgid "Successfully saved matrix filter."
2517
2569
  msgstr "Matrix Filter erfolgreich gespeichert."
2518
2570
 
@@ -2699,6 +2751,7 @@ msgstr ""
2699
2751
  "Einträge unten hinzufügen."
2700
2752
 
2701
2753
  #: features/nature_guides/templates/nature_guides/manage_nature_guide.html:38
2754
+ #, python-format
2702
2755
  msgid "Settings of %(meta_node)s"
2703
2756
  msgstr "Einstellungen von %(meta_node)s"
2704
2757
 
@@ -2779,7 +2832,7 @@ msgstr "Zusätzliches Bild"
2779
2832
  msgid "Do you really want to remove the crosslink to {0}?"
2780
2833
  msgstr "Willst du die Querverbindung zu {0} wirklich entfernen?"
2781
2834
 
2782
- #: features/nature_guides/views.py:445 views.py:1159
2835
+ #: features/nature_guides/views.py:445 views.py:1161
2783
2836
  #, python-brace-format
2784
2837
  msgid "Do you really want to remove {0}?"
2785
2838
  msgstr "Willst du {0} wirklich entfernen?"
@@ -2823,8 +2876,8 @@ msgid "Invalid taxonomic source: %(taxon_source)s"
2823
2876
  msgstr "Ungültige Taxonomische Quelle: %(taxon_source)s"
2824
2877
 
2825
2878
  #: features/nature_guides/zip_import.py:245
2826
- msgid "Taxon %(taxon_latname) not found in %(taxon_sources)s"
2827
- msgstr "Taxon %(taxon_latname) nicht in %(taxon_source)s gefunden"
2879
+ msgid "Taxon %(taxon_latname)s not found in %(taxon_sources)s"
2880
+ msgstr "Taxon %(taxon_latname)s nicht in %(taxon_sources)s gefunden"
2828
2881
 
2829
2882
  #: features/nature_guides/zip_import.py:293
2830
2883
  #, python-format
@@ -2991,8 +3044,7 @@ msgstr ""
2991
3044
  #: features/taxon_profiles/forms.py:391
2992
3045
  msgid ""
2993
3046
  "A morphotype profile with this morphotype already exists for this taxon."
2994
- msgstr ""
2995
- "Ein Morphotypen-Steckbrief existiert bereits für diesen Morphotypen"
3047
+ msgstr "Ein Morphotypen-Steckbrief existiert bereits für diesen Morphotypen"
2996
3048
 
2997
3049
  #: features/taxon_profiles/forms.py:401
2998
3050
  msgid "Select Target Section"
@@ -3027,6 +3079,7 @@ msgid "Change publication status of all taxon profiles of %(name)s"
3027
3079
  msgstr "Veröffentlichung aller Artensteckbriefe von %(name)s ändern"
3028
3080
 
3029
3081
  #: features/taxon_profiles/templates/taxon_profiles/ajax/change_navigation_entry_publication_status.html:9
3082
+ #, python-format
3030
3083
  msgid "Change publication status of %(navigation_entry)s"
3031
3084
  msgstr "Veröffentlichung von %(navigation_entry)s ändern"
3032
3085
 
@@ -3081,6 +3134,20 @@ msgstr ""
3081
3134
  msgid "Create taxon profile"
3082
3135
  msgstr "Artensteckbrief erstellen"
3083
3136
 
3137
+ #: features/taxon_profiles/templates/taxon_profiles/ajax/delete_all_manually_added_images.html:5
3138
+ msgid "Delete All Manually Added Images"
3139
+ msgstr ""
3140
+
3141
+ #: features/taxon_profiles/templates/taxon_profiles/ajax/delete_all_manually_added_images.html:17
3142
+ msgid "All manually added images have been successfully deleted."
3143
+ msgstr ""
3144
+
3145
+ #: features/taxon_profiles/templates/taxon_profiles/ajax/delete_all_manually_added_images.html:21
3146
+ msgid ""
3147
+ "Are you sure you want to delete all manually added images across all taxon "
3148
+ "profiles? This action cannot be undone."
3149
+ msgstr ""
3150
+
3084
3151
  #: features/taxon_profiles/templates/taxon_profiles/ajax/delete_taxon_profile.html:12
3085
3152
  #: features/taxon_profiles/templates/taxon_profiles/ajax/delete_taxon_text_type.html:6
3086
3153
  #, python-format
@@ -3170,6 +3237,7 @@ msgid "Move %(navigation_entry)s to a different parent"
3170
3237
  msgstr ""
3171
3238
 
3172
3239
  #: features/taxon_profiles/templates/taxon_profiles/ajax/move_navigation_entry.html:18
3240
+ #, python-format
3173
3241
  msgid "%(navigation_entry)s has been moved to %(new_parent)s."
3174
3242
  msgstr "%(navigation_entry)s wurde nach %(new_parent)s verschoben"
3175
3243
 
@@ -3211,6 +3279,7 @@ msgid "add taxon"
3211
3279
  msgstr "Taxon hinzufügen"
3212
3280
 
3213
3281
  #: features/taxon_profiles/templates/taxon_profiles/ajax/navigation_entry_taxon_profiles.html:6
3282
+ #, python-format
3214
3283
  msgid "Attached Taxon Profiles of %(name)s"
3215
3284
  msgstr "Zu %(name)s zugehörige Artensteckbriefe"
3216
3285
 
@@ -3420,30 +3489,47 @@ msgstr "nicht in der App enthalten"
3420
3489
  msgid "Backbone taxa without profile"
3421
3490
  msgstr "Backbone Taxa ohne Steckbrief"
3422
3491
 
3492
+ #: features/taxon_profiles/templates/taxon_profiles/manage_taxon_profiles.html:174
3493
+ msgid "Danger Zone"
3494
+ msgstr "Danger Zone"
3495
+
3496
+ #: features/taxon_profiles/templates/taxon_profiles/manage_taxon_profiles.html:180
3497
+ msgid "Delete all Taxon Profile images that have been added manually"
3498
+ msgstr ""
3499
+
3500
+ #: features/taxon_profiles/templates/taxon_profiles/manage_taxon_profiles.html:183
3501
+ msgid "This will delete all manually added images across all taxon profiles."
3502
+ msgstr ""
3503
+
3423
3504
  #: features/taxon_profiles/templates/taxon_profiles/manage_taxon_texts.html:21
3424
3505
  msgid "Add text"
3425
3506
  msgstr "Text hinzufügen"
3426
3507
 
3427
3508
  #: features/taxon_profiles/zip_import.py:93
3509
+ #, python-format
3428
3510
  msgid "Cell content has to be \"Scientific name\", not %(cell_value)s"
3429
3511
  msgstr "Zellinhalt muss \"Scientific name\" sein, nicht %(cell_value)s"
3430
3512
 
3431
3513
  #: features/taxon_profiles/zip_import.py:100 generic_content_zip_import.py:506
3514
+ #, python-format
3432
3515
  msgid "Cell content has to be \"Author (optional)\", not %(cell_value)s"
3433
3516
  msgstr "Zellinhalt muss \"Author (optional)\" sein, nicht %(cell_value)s"
3434
3517
 
3435
3518
  #: features/taxon_profiles/zip_import.py:107
3519
+ #, python-format
3436
3520
  msgid "Cell content has to be \"Taxonomic source\", not %(cell_value)s"
3437
3521
  msgstr "Zellinhalt muss \"Taxonomic source\" sein, nicht %(cell_value)s"
3438
3522
 
3439
3523
  #: features/taxon_profiles/zip_import.py:114
3524
+ #, python-format
3440
3525
  msgid "Cell content has to be \"Morphotype (optional)\", not %(cell_value)s"
3441
3526
  msgstr "Zellinhalt muss \"Morphotype (optional)\" sein, nicht %(cell_value)s"
3442
3527
 
3443
3528
  #: features/taxon_profiles/zip_import.py:127
3444
3529
  msgid ""
3445
3530
  "Cell content has to be one of %(column_types)s. Found %(cell_value)s instead"
3446
- msgstr "Der Zellinhalt muss eines von %(column_type)s sein, nicht %(cell_value)s"
3531
+ msgstr ""
3532
+ "Der Zellinhalt muss eines von %(column_types)s sein, nicht %(cell_value)s"
3447
3533
 
3448
3534
  #: features/taxon_profiles/zip_import.py:140
3449
3535
  #, python-format
@@ -3468,6 +3554,7 @@ msgstr ""
3468
3554
 
3469
3555
  #: features/taxon_profiles/zip_import.py:168
3470
3556
  #: features/taxon_profiles/zip_import.py:186
3557
+ #, python-format
3471
3558
  msgid ""
3472
3559
  "Cell content has to be one of %(valid_choices)s. Found %(cell_value)s instead"
3473
3560
  msgstr ""
@@ -3475,34 +3562,36 @@ msgstr ""
3475
3562
 
3476
3563
  #: features/taxon_profiles/zip_import.py:212
3477
3564
  msgid "Cell content has to be a taxonomic source, found empty cell instead"
3478
- msgstr "Der Zellinhalt muss eine taxonomische Quelle sein; stattdessen wurde eine leere Zelle gefunden."
3565
+ msgstr ""
3566
+ "Der Zellinhalt muss eine taxonomische Quelle sein; stattdessen wurde eine "
3567
+ "leere Zelle gefunden."
3479
3568
 
3480
- #: features/taxon_profiles/zip_import.py:271
3569
+ #: features/taxon_profiles/zip_import.py:272
3481
3570
  #, python-format
3482
3571
  msgid "Invalid URL format: %(url)s"
3483
3572
  msgstr ""
3484
3573
 
3485
- #: features/taxon_profiles/zip_import.py:278
3574
+ #: features/taxon_profiles/zip_import.py:279
3486
3575
  #, python-format
3487
3576
  msgid ""
3488
3577
  "External media URL has to start with \"https://\", found %(url)s instead"
3489
3578
  msgstr ""
3490
3579
 
3491
- #: forms.py:68
3580
+ #: forms.py:70
3492
3581
  msgid "Name of your app"
3493
3582
  msgstr "Name deiner App"
3494
3583
 
3495
- #: forms.py:69
3584
+ #: forms.py:71
3496
3585
  msgid "In the primary language"
3497
3586
  msgstr "In der Primärsprache"
3498
3587
 
3499
- #: forms.py:72
3588
+ #: forms.py:74
3500
3589
  msgid "The language the app is created in. Translations can be made later."
3501
3590
  msgstr ""
3502
3591
  "Die Sprache in der deiner App erstellt wird. Übersetzungen können später "
3503
3592
  "angefertigt werden."
3504
3593
 
3505
- #: forms.py:77
3594
+ #: forms.py:79
3506
3595
  msgid ""
3507
3596
  "Your app will be available at subdomain.localcosmos.org, where \"subdomain\" "
3508
3597
  "is the name you configured here."
@@ -3510,60 +3599,60 @@ msgstr ""
3510
3599
  "Deine App wird unter subdomain.localcosmos.org erreichbar sein, wobei "
3511
3600
  "\"subdomain\" der Name ist, den du hier einstellst."
3512
3601
 
3513
- #: forms.py:108
3602
+ #: forms.py:110
3514
3603
  msgid "An app with this name already exists."
3515
3604
  msgstr "Eine App mit diesem Namen existiert bereits."
3516
3605
 
3517
- #: forms.py:122
3606
+ #: forms.py:124
3518
3607
  msgid "Select language"
3519
3608
  msgstr "Sprache wählen"
3520
3609
 
3521
- #: forms.py:214
3610
+ #: forms.py:222
3522
3611
  msgid "Allow unregistered users to report observations"
3523
3612
  msgstr "Erlaube das anonyme Melden von Beobachtungen"
3524
3613
 
3525
- #: forms.py:215
3614
+ #: forms.py:223
3526
3615
  msgid "Only applies if your app contains observation forms."
3527
3616
  msgstr ""
3528
3617
  "Dies hat nur Auswirkungen, wenn deine App ein Beobachtungsformular enthält."
3529
3618
 
3530
- #: forms.py:218
3619
+ #: forms.py:226
3531
3620
  msgid "Local Cosmos Private"
3532
3621
  msgstr "Local Cosmos Private"
3533
3622
 
3534
- #: forms.py:219
3623
+ #: forms.py:227
3535
3624
  msgid "I run my own Local Cosmos Server"
3536
3625
  msgstr "Ich betreibe meinen eigenen Local Cosmos Server"
3537
3626
 
3538
- #: forms.py:220
3627
+ #: forms.py:228
3539
3628
  msgid "API URL of your private Local Cosmos Server"
3540
3629
  msgstr "URL der API deines privaten Local Cosmos Servers"
3541
3630
 
3542
- #: forms.py:221
3631
+ #: forms.py:229
3543
3632
  msgid "Only applies if you run your own Local Cosmos Server."
3544
3633
  msgstr "Nur notwendig, wenn du eigenen Local Cosmos Server betreibst."
3545
3634
 
3546
- #: forms.py:224
3635
+ #: forms.py:232
3547
3636
  msgid "Manually set the version of your app."
3548
3637
  msgstr ""
3549
3638
 
3550
- #: forms.py:391
3639
+ #: forms.py:399
3551
3640
  msgid "ad-hoc"
3552
3641
  msgstr "ad-hoc"
3553
3642
 
3554
- #: forms.py:392
3643
+ #: forms.py:400
3555
3644
  msgid "App Stores"
3556
3645
  msgstr "App Stores"
3557
3646
 
3558
- #: forms.py:396
3647
+ #: forms.py:404
3559
3648
  msgid "Platforms"
3560
3649
  msgstr "Platformen"
3561
3650
 
3562
- #: forms.py:415
3651
+ #: forms.py:423
3563
3652
  msgid "Ignore non-existent images"
3564
3653
  msgstr ""
3565
3654
 
3566
- #: forms.py:416
3655
+ #: forms.py:424
3567
3656
  msgid "If checked, the import will ignore images that are not in the zip file."
3568
3657
  msgstr ""
3569
3658
 
@@ -3594,18 +3683,22 @@ msgid ""
3594
3683
  msgstr ""
3595
3684
 
3596
3685
  #: generic_content_zip_import.py:270
3686
+ #, python-format
3597
3687
  msgid ""
3598
3688
  "Image file \"%(image_filename)s\" not found in the \"%(images_sheet_name)s\" "
3599
3689
  "sheet."
3600
3690
  msgstr ""
3601
- "Die Bilddatei \"%(image_filename)s\" wurde in \"%(images_sheet_name)s\" nicht gefunden"
3691
+ "Die Bilddatei \"%(image_filename)s\" wurde in \"%(images_sheet_name)s\" "
3692
+ "nicht gefunden"
3602
3693
 
3603
3694
  #: generic_content_zip_import.py:305
3695
+ #, python-format
3604
3696
  msgid ""
3605
3697
  "Expected media type \"%(expected_media_type)s\", found "
3606
3698
  "\"%(actual_media_type)s\""
3607
3699
  msgstr ""
3608
- "Es wurde \"%(expected_media_type)s\" erwartet, \"%(actual_media_type)s\" wurde gefunden"
3700
+ "Es wurde \"%(expected_media_type)s\" erwartet, \"%(actual_media_type)s\" "
3701
+ "wurde gefunden"
3609
3702
 
3610
3703
  #: generic_content_zip_import.py:311
3611
3704
  #, python-format
@@ -3616,7 +3709,9 @@ msgstr ""
3616
3709
 
3617
3710
  #: generic_content_zip_import.py:347
3618
3711
  msgid "Cell content has to be an author, found empty cell instead"
3619
- msgstr "Der Zellinhalt muss ein Autor sein. Stattdessen wurde eine leere Zelle gefunden."
3712
+ msgstr ""
3713
+ "Der Zellinhalt muss ein Autor sein. Stattdessen wurde eine leere Zelle "
3714
+ "gefunden."
3620
3715
 
3621
3716
  #: generic_content_zip_import.py:351
3622
3717
  #, python-format
@@ -3645,70 +3740,91 @@ msgid ""
3645
3740
  msgstr ""
3646
3741
 
3647
3742
  #: generic_content_zip_import.py:403
3743
+ #, python-format
3648
3744
  msgid "Cell content has to be \"Identifier\", not %(cell_value)s"
3649
3745
  msgstr "Zellinhalt muss \"Identifier\" sein, nicht %(cell_value)s"
3650
3746
 
3651
3747
  #: generic_content_zip_import.py:409
3748
+ #, python-format
3652
3749
  msgid "Cell content has to be \"Author\", not %(cell_value)s"
3653
3750
  msgstr "Zellinhalt muss \"Author\" sein, nicht %(cell_value)s"
3654
3751
 
3655
3752
  #: generic_content_zip_import.py:414
3753
+ #, python-format
3656
3754
  msgid "Cell content has to be \"Licence\", not %(cell_value)s"
3657
3755
  msgstr "Zellinhalt muss \"Licence\" sein, nicht %(cell_value)s"
3658
3756
 
3659
3757
  #: generic_content_zip_import.py:419
3758
+ #, python-format
3660
3759
  msgid "Cell content has to be \"Licence version\", not %(cell_value)s"
3661
3760
  msgstr "Zellinhalt muss \"Licence version\" sein, nicht %(cell_value)s"
3662
3761
 
3663
3762
  #: generic_content_zip_import.py:424
3763
+ #, python-format
3664
3764
  msgid ""
3665
3765
  "Cell content has to be \"Link to source image (optional)\", not "
3666
3766
  "%(cell_value)s"
3667
- msgstr "Zellinhalt muss \"Link to source image (optional)\" sein, nicht %(cell_value)s"
3767
+ msgstr ""
3768
+ "Zellinhalt muss \"Link to source image (optional)\" sein, nicht "
3769
+ "%(cell_value)s"
3668
3770
 
3669
3771
  #: generic_content_zip_import.py:429
3772
+ #, python-format
3670
3773
  msgid "Cell content has to be \"Title (optional)\", not %(cell_value)s"
3671
3774
  msgstr "Zellinhalt muss \"Title (optional)\" sein, nicht %(cell_value)s"
3672
3775
 
3673
3776
  #: generic_content_zip_import.py:434 generic_content_zip_import.py:516
3674
3777
  msgid "Cell content has to be \"Caption (optional)\", not %(cell_value)s"
3675
- msgstr "Zellinhalt muss \"Caption (optional)\" sein, nicht %(cell_value)"
3778
+ msgstr "Zellinhalt muss \"Caption (optional)\" sein, nicht %(cell_value)s"
3676
3779
 
3677
3780
  #: generic_content_zip_import.py:439 generic_content_zip_import.py:521
3781
+ #, python-format
3678
3782
  msgid "Cell content has to be \"Alt text (optional)\", not %(cell_value)s"
3679
3783
  msgstr "Zellinhalt muss \"Alt text (optional)\" sein, nicht %(cell_value)s"
3680
3784
 
3681
3785
  #: generic_content_zip_import.py:444
3786
+ #, python-format
3682
3787
  msgid "Cell content has to be \"Primary image (optional)\", not %(cell_value)s"
3683
- msgstr "Zellinhalt muss \"Primary image (optional)\" sein, nicht %(cell_value)s"
3788
+ msgstr ""
3789
+ "Zellinhalt muss \"Primary image (optional)\" sein, nicht %(cell_value)s"
3684
3790
 
3685
3791
  #: generic_content_zip_import.py:490
3792
+ #, python-format
3686
3793
  msgid "Cell content has to be \"URL\", not %(cell_value)s"
3687
3794
  msgstr "Zellinhalt muss \"URL\" sein, nicht %(cell_value)s"
3688
3795
 
3689
3796
  #: generic_content_zip_import.py:496
3797
+ #, python-format
3690
3798
  msgid "Cell content has to be \"Media type\", not %(cell_value)s"
3691
3799
  msgstr "Zellinhalt muss \"Media type\" sein, nicht %(cell_value)s"
3692
3800
 
3693
3801
  #: generic_content_zip_import.py:501
3802
+ #, python-format
3694
3803
  msgid "Cell content has to be \"Title\", not %(cell_value)s"
3695
3804
  msgstr "Zellinhalt muss \"Title\" sein, nicht %(cell_value)s"
3696
3805
 
3697
3806
  #: generic_content_zip_import.py:511
3807
+ #, python-format
3698
3808
  msgid "Cell content has to be \"Licence (optional)\", not %(cell_value)s"
3699
3809
  msgstr "Zellinhalt muss \"Licence (optional)\" sein, nicht %(cell_value)s"
3700
3810
 
3701
3811
  #: generic_content_zip_import.py:555
3702
3812
  msgid "Cell content has to be a URL, found empty cell instead"
3703
- msgstr "Der Zellinhalt muss eine URL sein. Stattdessen wurde eine leere Zelle gefunden."
3813
+ msgstr ""
3814
+ "Der Zellinhalt muss eine URL sein. Stattdessen wurde eine leere Zelle "
3815
+ "gefunden."
3704
3816
 
3705
3817
  #: generic_content_zip_import.py:559
3706
3818
  msgid "Cell content has to be a Media type, found empty cell instead"
3707
- msgstr "Der Zellinhalt muss ein Medientyp sein. Stattdessen wurde eine leere Zelle gefunden"
3819
+ msgstr ""
3820
+ "Der Zellinhalt muss ein Medientyp sein. Stattdessen wurde eine leere Zelle "
3821
+ "gefunden"
3708
3822
 
3709
3823
  #: generic_content_zip_import.py:563
3710
3824
  msgid "Cell content has to be a Title, found empty cell instead"
3711
- msgstr "Der Zellinhalt muss ein Titel sein. Stattdessen wurde eine leere Zelle gefunden"
3825
+ msgstr ""
3826
+ "Der Zellinhalt muss ein Titel sein. Stattdessen wurde eine leere Zelle "
3827
+ "gefunden"
3712
3828
 
3713
3829
  #: generic_content_zip_import.py:568
3714
3830
  #, python-format
@@ -3725,17 +3841,21 @@ msgstr ""
3725
3841
  "[%(filename)s][Blatt:%(sheet_name)s][Zelle:%(column)s%(row)s] %(message)s"
3726
3842
 
3727
3843
  #: generic_content_zip_import.py:593
3844
+ #, python-format
3728
3845
  msgid "[%(filename)s][Sheet:%(sheet_name)s][row:%(row)s] %(message)s"
3729
3846
  msgstr "[%(filename)s][Blatt:%(sheet_name)s][Zeile: %(row)s] %(message)s"
3730
3847
 
3731
3848
  #: generic_content_zip_import.py:786
3849
+ #, python-format
3732
3850
  msgid ""
3733
3851
  "%(taxon_latname)s %(taxon_author)s not found in %(taxon_source)s. Tolerance "
3734
3852
  "of two space characters was applied."
3735
- msgstr "%(taxon_latname)s %(taxon_author)s nicht in %(taxon_source)s gefunden. "
3736
- "Einer Toleranz von 2 Leerzeichen wurde angewendet."
3853
+ msgstr ""
3854
+ "%(taxon_latname)s %(taxon_author)s nicht in %(taxon_source)s gefunden. Einer "
3855
+ "Toleranz von 2 Leerzeichen wurde angewendet."
3737
3856
 
3738
3857
  #: generic_content_zip_import.py:795
3858
+ #, python-format
3739
3859
  msgid ""
3740
3860
  "Multiple results found for %(taxon_latname)s %(taxon_author)s in "
3741
3861
  "%(taxon_source)s. Tolerance of two space characters was applied."
@@ -3758,11 +3878,13 @@ msgstr ""
3758
3878
  "%(taxon_source)s gefunden"
3759
3879
 
3760
3880
  #: generic_content_zip_import.py:823
3881
+ #, python-format
3761
3882
  msgid ""
3762
3883
  "Multiple results found for %(taxon_latname)s in %(taxon_source)s. You have "
3763
3884
  "to specify an author."
3764
- msgstr "Mehrere Ergebnisse für %(taxon_latname)s in %(taxon_source)s gefunden. "
3765
- "Du musst einen Autor angeben."
3885
+ msgstr ""
3886
+ "Mehrere Ergebnisse für %(taxon_latname)s in %(taxon_source)s gefunden. Du "
3887
+ "musst einen Autor angeben."
3766
3888
 
3767
3889
  #: generic_content_zip_import.py:883
3768
3890
  #, python-format
@@ -3770,12 +3892,14 @@ msgid "Image is not square: %(filename)s"
3770
3892
  msgstr "Bild nicht quadratisch: %(filename)s"
3771
3893
 
3772
3894
  #: generic_content_zip_import.py:890
3895
+ #, python-format
3773
3896
  msgid ""
3774
3897
  "Image height is too large: %(filename)s. Maximum allowed height is "
3775
3898
  "%(max_height)s"
3776
3899
  msgstr ""
3777
3900
 
3778
3901
  #: generic_content_zip_import.py:899
3902
+ #, python-format
3779
3903
  msgid ""
3780
3904
  "Image width is too large: %(filename)s. Maximum allowed width is "
3781
3905
  "%(max_width)s"
@@ -3985,29 +4109,28 @@ msgid "Taxon source %s is not installed"
3985
4109
  msgstr ""
3986
4110
 
3987
4111
  #: taxonomy/lazy.py:118
3988
- #, python-format
3989
- msgid "Taxon %s has changed its position in %s"
3990
- msgstr ""
4112
+ msgid "Taxon %(taxon)s has changed its position in %(tree)s"
4113
+ msgstr "Taxon %(taxon)s hat seine Position in %(tree)s geändert"
3991
4114
 
3992
4115
  #: taxonomy/lazy.py:122
3993
4116
  #, python-format
3994
- msgid "Taxon %s has changed its identifier in %s"
4117
+ msgid "Taxon %(taxon)s has changed its identifier in %(tree)s"
3995
4118
  msgstr ""
3996
4119
 
3997
4120
  #: taxonomy/lazy.py:125
3998
- #, python-format
3999
- msgid "Taxon %s found multiple times in %s"
4000
- msgstr ""
4121
+ msgid "Taxon %(taxon)s found multiple times in %(tree)s"
4122
+ msgstr "Taxon %(taxon)s wurde %(tree)s mehrfach gefunden"
4001
4123
 
4002
4124
  #: taxonomy/lazy.py:138
4003
- #, python-format
4004
- msgid "Taxon %s not found as accepted name, but as synonym of %s"
4005
- msgstr ""
4125
+ msgid ""
4126
+ "Taxon %(taxon)s not found as accepted name, but as synonym of "
4127
+ "%(accepted_name)s"
4128
+ msgstr "Taxon %(taxon)s wurde nicht als akzeptierter Name, sondern als "
4129
+ "Synonym von %(accepted_name)s gefunden"
4006
4130
 
4007
4131
  #: taxonomy/lazy.py:142
4008
- #, python-format
4009
- msgid "Taxon %s not found in %s"
4010
- msgstr ""
4132
+ msgid "Taxon %(taxon)s not found in %(tree)s"
4133
+ msgstr "Taxon %(taxon)s nicht in %(tree)s gefunden"
4011
4134
 
4012
4135
  #: taxonomy/lazy.py:295
4013
4136
  msgid "manually added"
@@ -4058,6 +4181,7 @@ msgid "e.g. the Latin name"
4058
4181
  msgstr ""
4059
4182
 
4060
4183
  #: taxonomy/sources/custom/forms.py:29
4184
+ #: templates/app_kit/ajax/list_images_and_licences_content.html:22
4061
4185
  msgid "Author"
4062
4186
  msgstr ""
4063
4187
 
@@ -4103,6 +4227,7 @@ msgid "move"
4103
4227
  msgstr "verschieben"
4104
4228
 
4105
4229
  #: taxonomy/sources/custom/templates/custom_taxonomy/move_custom_taxon.html:5
4230
+ #, python-format
4106
4231
  msgid "Move %(name)s"
4107
4232
  msgstr "%(name)s verschieben"
4108
4233
 
@@ -4267,6 +4392,22 @@ msgid "The translation could not be fetched. Please try again later."
4267
4392
  msgstr ""
4268
4393
  "Die Übersetzung konnt enicht geladen werden. Versuche es später erneut."
4269
4394
 
4395
+ #: templates/app_kit/ajax/list_images_and_licences_content.html:23
4396
+ msgid "Licence"
4397
+ msgstr ""
4398
+
4399
+ #: templates/app_kit/ajax/list_images_and_licences_content.html:25
4400
+ msgid "Link to author"
4401
+ msgstr ""
4402
+
4403
+ #: templates/app_kit/ajax/list_images_and_licences_content.html:28
4404
+ msgid "Link to source"
4405
+ msgstr ""
4406
+
4407
+ #: templates/app_kit/ajax/list_images_and_licences_content.html:32
4408
+ msgid "Edit licence"
4409
+ msgstr "Lizenz ändern"
4410
+
4270
4411
  #: templates/app_kit/ajax/manage_app_languages.html:12
4271
4412
  #: templates/app_kit/build_app.html:112
4272
4413
  msgid "primary"
@@ -4281,6 +4422,10 @@ msgstr "Sprache entfernen"
4281
4422
  msgid "Add language"
4282
4423
  msgstr "Sprache hinzufügen"
4283
4424
 
4425
+ #: templates/app_kit/ajax/manage_content_licence.html:9
4426
+ msgid "Manage Licence"
4427
+ msgstr "Lizenz bearbeiten"
4428
+
4284
4429
  #: templates/app_kit/ajax/manage_external_media.html:8
4285
4430
  msgid "Manage External Media"
4286
4431
  msgstr ""
@@ -4657,6 +4802,11 @@ msgstr ""
4657
4802
  msgid "Contact"
4658
4803
  msgstr "Kontakt"
4659
4804
 
4805
+ #: templates/app_kit/list_images_and_licences.html:11
4806
+ #: templates/app_kit/manage_app.html:66
4807
+ msgid "Images and Licences"
4808
+ msgstr ""
4809
+
4660
4810
  #: templates/app_kit/list_manage_apps.html:11
4661
4811
  msgid "Your apps"
4662
4812
  msgstr "Deine Apps"
@@ -4702,6 +4852,10 @@ msgstr "Konfiguration"
4702
4852
  msgid "Languages"
4703
4853
  msgstr "Sprachen"
4704
4854
 
4855
+ #: templates/app_kit/manage_app.html:68
4856
+ msgid "Manage Images and Licences"
4857
+ msgstr ""
4858
+
4705
4859
  #: templates/app_kit/manage_app_design.html:8
4706
4860
  msgid "Design and texts"
4707
4861
  msgstr "Design und Texte"
@@ -4809,7 +4963,7 @@ msgstr "Datei zu groß. Die Größe sollte %(size)s MiB nicht überschreiten."
4809
4963
  msgid "You text contains invalid characters."
4810
4964
  msgstr "Dein Text enthält ungültige Zeichen."
4811
4965
 
4812
- #: views.py:260
4966
+ #: views.py:262
4813
4967
  #, python-format
4814
4968
  msgid "Do you really want to delete %s?"
4815
4969
  msgstr "Willst distributed %s wirklich löschen?"