diff --git a/.flake8 b/.flake8 index 84c3826b32c..72717c6e6b6 100644 --- a/.flake8 +++ b/.flake8 @@ -20,10 +20,8 @@ per-file-ignores = # F841 local variable assigned to but never used # E741 ambiguous variable name 'l' __init__.py: F401, F403 - lib/init/grass.py: E722, F821, F841, W605 - utils/mkrest.py: W605 - utils/gitlog2changelog.py: E722, E712, W605 - utils/g.html2man/ggroff.py: W605 + lib/init/grass.py: E722, F821, F841 + utils/gitlog2changelog.py: E722, E712 man/build_check_rest.py: F403, F405 man/build_full_index_rest.py: F403, F405 man/parser_standard_options.py: F403, F405 @@ -45,10 +43,9 @@ per-file-ignores = gui/scripts/d.wms.py: E501 gui/wxpython/core/gcmd.py: E402 gui/wxpython/core/gthread.py: F841 - gui/wxpython/core/gconsole.py: E722, W605 - gui/wxpython/core/globalvar.py: W605 + gui/wxpython/core/gconsole.py: E722 gui/wxpython/core/toolboxes.py: E722 - gui/wxpython/core/utils.py: E722, F841, W605 + gui/wxpython/core/utils.py: E722, F841 gui/wxpython/core/workspace.py: E722 gui/wxpython/core/render.py: E722, F841 gui/wxpython/core/ws.py: F841 @@ -64,8 +61,8 @@ per-file-ignores = gui/wxpython/gcp/g.gui.gcp.py: F841 gui/wxpython/gcp/manager.py: F841, E722 gui/wxpython/gcp/mapdisplay.py: F841 - gui/wxpython/gui_core/*: F841, E266, E722, W605 - gui/wxpython/gui_core/dialogs.py: E722, F841, W605 + gui/wxpython/gui_core/*: F841, E266, E722 + gui/wxpython/gui_core/dialogs.py: E722, F841 gui/wxpython/gui_core/forms.py: E722, F841 gui/wxpython/gui_core/ghelp.py: E722 gui/wxpython/gui_core/gselect.py: F841, E266, E722 @@ -76,12 +73,12 @@ per-file-ignores = gui/wxpython/image2target/g.gui.image2target.py: E501, E265, F841 gui/wxpython/iscatt/*: F841, E722, E741, F405, F403 gui/wxpython/lmgr/giface.py: E741 - gui/wxpython/lmgr/frame.py: F841, E722, W605 + gui/wxpython/lmgr/frame.py: F841, E722 # layertree still includes some formatting issues (it is ignored by Black) gui/wxpython/lmgr/layertree.py: E722, E266, W504, E225 gui/wxpython/lmgr/workspace.py: F841 - gui/wxpython/modules/*: F841, E722, W605 - gui/wxpython/nviz/*: F841, E266, E722, W605, F403, F405 + gui/wxpython/modules/*: F841, E722 + gui/wxpython/nviz/*: F841, E266, E722, F403, F405 gui/wxpython/photo2image/*: F841, E722, E265 gui/wxpython/photo2image/g.gui.photo2image.py: E501, F841 gui/wxpython/psmap/*: F841, E266, E722, F405, F403 @@ -116,7 +113,7 @@ per-file-ignores = gui/wxpython/timeline/frame.py: E741 gui/wxpython/tools/build_modules_xml.py: E722 gui/wxpython/web_services/cap_interface.py: E501 - gui/wxpython/web_services/widgets.py: F841, E741, W605, E402 + gui/wxpython/web_services/widgets.py: F841, E741, E402 gui/wxpython/rlisetup/frame.py: E741 gui/wxpython/rlisetup/sampling_frame.py: F841 gui/wxpython/rlisetup/wizard.py: E722, E741 @@ -129,20 +126,15 @@ per-file-ignores = # TODO: Is this really needed? python/grass/pygrass/vector/__init__.py: E402 python/grass/pygrass/raster/__init__.py: E402 - python/grass/gunittest/gmodules.py: W605 python/grass/gunittest/invoker.py: E721 - python/grass/pygrass/vector/geometry.py: W605 python/grass/pygrass/vector/__init__.py: E402 python/grass/pygrass/modules/interface/*.py: F401 - python/grass/pygrass/modules/interface/module.py: W605 - python/grass/pygrass/modules/interface/parameter.py: W605 python/grass/pygrass/modules/grid/*.py: F401 python/grass/pygrass/raster/rowio.py: E741 python/grass/pygrass/raster/category.py: E721 python/grass/pygrass/rpc/__init__.py: F401, F403 python/grass/pygrass/utils.py: E402 - python/grass/script/task.py: W605 - python/grass/temporal/abstract_space_time_dataset.py: W605, F841, E722 + python/grass/temporal/abstract_space_time_dataset.py: F841, E722 python/grass/temporal/c_libraries_interface.py: F841, E722 python/grass/temporal/core.py: E722 python/grass/temporal/datetime_math.py: F841, E722 diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 50e860e7b35..3b69bbf432e 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -56,7 +56,7 @@ jobs: if: ${{ matrix.language == 'c-cpp' }} - name: Initialize CodeQL - uses: github/codeql-action/init@9fdb3e49720b44c48891d036bb502feb25684276 # v3.25.6 + uses: github/codeql-action/init@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff # v3.25.8 with: languages: ${{ matrix.language }} config-file: ./.github/codeql/codeql-config.yml @@ -81,6 +81,6 @@ jobs: run: .github/workflows/build_ubuntu-22.04.sh "${HOME}/install" - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@9fdb3e49720b44c48891d036bb502feb25684276 # v3.25.6 + uses: github/codeql-action/analyze@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff # v3.25.8 with: category: "/language:${{matrix.language}}" diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index fe988d4fc79..897157a0161 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -70,7 +70,7 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3.3.0 - name: Login to DockerHub - uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # v3.1.0 + uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446 # v3.2.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 5e57873460a..2ff85928636 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -55,6 +55,7 @@ jobs: - name: Add the bin directory to PATH run: echo "$HOME/install/bin" >> $GITHUB_PATH - name: Check installed version + if: always() shell: bash -l {0} run: source ./.github/workflows/print_versions.sh - name: Run tests diff --git a/.github/workflows/osgeo4w.yml b/.github/workflows/osgeo4w.yml index 678e7f52209..7f0ca12e270 100644 --- a/.github/workflows/osgeo4w.yml +++ b/.github/workflows/osgeo4w.yml @@ -66,6 +66,11 @@ jobs: shell: msys2 {0} run: .github/workflows/build_osgeo4w.sh + - name: Print installed versions + if: always() + shell: msys2 {0} + run: .github/workflows/print_versions.sh + - name: Test executing of the grass command run: .github/workflows/test_simple.bat 'C:\OSGeo4W\opt\grass\grass84.bat' diff --git a/.github/workflows/periodic_update.yml b/.github/workflows/periodic_update.yml index 5bd94c7eb06..8106057cce4 100644 --- a/.github/workflows/periodic_update.yml +++ b/.github/workflows/periodic_update.yml @@ -28,7 +28,7 @@ jobs: wget http://git.savannah.gnu.org/cgit/config.git/plain/config.guess && chmod +x config.guess wget http://git.savannah.gnu.org/cgit/config.git/plain/config.sub && chmod +x config.sub # Display changes, only to follow along in the logs. - - run: git diff config.guess config.sub + - run: git diff -- config.guess config.sub - name: Double check if files are modified run: git status --ignored - name: Create Pull Request diff --git a/.github/workflows/print_versions.sh b/.github/workflows/print_versions.sh index 0bc91536f31..25b77eae2ec 100755 --- a/.github/workflows/print_versions.sh +++ b/.github/workflows/print_versions.sh @@ -10,6 +10,6 @@ git --version # This will fail if the build failed. grass --version -grass --tmp-location XY --exec g.version -e +grass --tmp-location XY --exec g.version -ergb # Detailed Python version info (in one line thanks to echo) grass --tmp-location XY --exec bash -c "echo Python: \$(\$GRASS_PYTHON -c 'import sys; print(sys.version)')" diff --git a/.github/workflows/python-code-quality.yml b/.github/workflows/python-code-quality.yml index 4bed65e05bf..6aa3cac11c8 100644 --- a/.github/workflows/python-code-quality.yml +++ b/.github/workflows/python-code-quality.yml @@ -105,7 +105,7 @@ jobs: path: bandit.sarif - name: Upload SARIF File into Security Tab - uses: github/codeql-action/upload-sarif@9fdb3e49720b44c48891d036bb502feb25684276 # v3.25.6 + uses: github/codeql-action/upload-sarif@2e230e8fe0ad3a14a340ad0815ddb96d599d2aff # v3.25.8 with: sarif_file: bandit.sarif diff --git a/.github/workflows/super-linter.yml b/.github/workflows/super-linter.yml index f92fad374fd..74107411745 100644 --- a/.github/workflows/super-linter.yml +++ b/.github/workflows/super-linter.yml @@ -31,7 +31,7 @@ jobs: # list of files that changed across commits fetch-depth: 0 - name: Lint code base - uses: super-linter/super-linter/slim@5b638caee6ba65e25e07143887b669a1233847a0 # v6.5.1 + uses: super-linter/super-linter/slim@88ea3923a7e1f89dd485d079f6eb5f5e8f937589 # v6.6.0 env: DEFAULT_BRANCH: main # To report GitHub Actions status checks diff --git a/AUTHORS b/AUTHORS index c2fe35635e5..a81f5a75e39 100644 --- a/AUTHORS +++ b/AUTHORS @@ -407,7 +407,7 @@ Contact GRASS Development Team c/o Markus Neteler mundialis GmbH & Co. KG - Kölnstrasse 99 + Koelnstrasse 99 53111 Bonn, Germany neteler AT osgeo.org diff --git a/COPYING b/COPYING index 21779528e32..b21a08c77ba 100644 --- a/COPYING +++ b/COPYING @@ -32,7 +32,7 @@ GRASS Development Team at the following address: GRASS Development Team c/o Markus Neteler mundialis GmbH & Co. KG - Kölnstrasse 99 + Koelnstrasse 99 53111 Bonn, Germany neteler AT osgeo.org diff --git a/doc/grass_database.png b/doc/grass_database.png index 6b28865a928..40d8353949e 100644 Binary files a/doc/grass_database.png and b/doc/grass_database.png differ diff --git a/doc/grass_database.svg b/doc/grass_database.svg index 6ce65defa6b..f80483759cc 100644 --- a/doc/grass_database.svg +++ b/doc/grass_database.svg @@ -2,23 +2,23 @@ + inkscape:export-ydpi="97.797638" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + fit-margin-bottom="0" + inkscape:showpageshadow="2" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1"> image/svg+xml - + @@ -156,184 +159,169 @@ transform="translate(-20.781703,-407.21706)"> grassdata + style="font-size:15px;line-height:1.25;font-family:sans-serif;stroke-width:4.433;stroke-miterlimit:4;stroke-dasharray:none">grassdata nc_spm + style="font-size:15px;line-height:1.25;font-family:sans-serif;stroke-width:4.433;stroke-miterlimit:4;stroke-dasharray:none">nc_spm usa_albers + style="font-size:15px;line-height:1.25;font-family:sans-serif;stroke-width:4.433;stroke-miterlimit:4;stroke-dasharray:none">usa_albers world_lat_lon + style="font-size:15px;line-height:1.25;font-family:sans-serif;stroke-width:4.433;stroke-miterlimit:4;stroke-dasharray:none">world_lat_lon 3D raster + style="font-size:15px;line-height:1.25;font-family:sans-serif;stroke-width:4.433;stroke-miterlimit:4;stroke-dasharray:none">3D raster vector + style="font-size:15px;line-height:1.25;font-family:sans-serif;stroke-width:4.433;stroke-miterlimit:4;stroke-dasharray:none">vector streets + style="font-size:15px;line-height:1.25;font-family:sans-serif;stroke-width:4.433;stroke-miterlimit:4;stroke-dasharray:none">streets PERMANENT + style="font-size:15px;line-height:1.25;font-family:sans-serif;stroke-width:4.433;stroke-miterlimit:4;stroke-dasharray:none">PERMANENT new_highway wake_county + style="font-size:15px;line-height:1.25;font-family:sans-serif;stroke-width:4.433;stroke-miterlimit:4;stroke-dasharray:none">wake_county raster + style="font-size:15px;line-height:1.25;font-family:sans-serif;stroke-width:4.433;stroke-miterlimit:4;stroke-dasharray:none">raster elevation + style="font-size:15px;line-height:1.25;font-family:sans-serif;stroke-width:4.433;stroke-miterlimit:4;stroke-dasharray:none">elevation landcover + style="font-size:15px;line-height:1.25;font-family:sans-serif;stroke-width:4.433;stroke-miterlimit:4;stroke-dasharray:none">landcover buildings + style="font-size:15px;line-height:1.25;font-family:sans-serif;stroke-width:4.433;stroke-miterlimit:4;stroke-dasharray:none">buildings soils + style="font-size:15px;line-height:1.25;font-family:sans-serif;stroke-width:4.433;stroke-miterlimit:4;stroke-dasharray:none">soils Database + y="422.41235" + style="font-size:20px;line-height:1.25;font-family:sans-serif">Database Mapset + y="422.16626" + style="font-size:20px;line-height:1.25;font-family:sans-serif">Mapset Location + y="422.41235" + style="font-size:20px;line-height:1.25;font-family:sans-serif">Project Maps + y="422.16626" + style="font-size:20px;line-height:1.25;font-family:sans-serif">Maps temporal + style="font-size:15px;line-height:1.25;font-family:sans-serif;stroke-width:4.433;stroke-miterlimit:4;stroke-dasharray:none">temporal landsat + style="font-size:15px;line-height:1.25;font-family:sans-serif;stroke-width:4.433;stroke-miterlimit:4;stroke-dasharray:none">landsat = (current_date - datetime.timedelta(days=current_date.weekday())): - return "{:%B %-d} (this week)".format(day) + return _("{base_date} (this week)").format(base_date=base_date) elif day.year == current_date.year: - return "{:%B %-d}".format(day) + return _("{base_date}").format(base_date=base_date) else: - return "{:%B %-d, %Y}".format(day) + return _("{base_date}, {year}").format(base_date=base_date, year=day.year) class HistoryBrowserTree(CTreeView): diff --git a/locale/Makefile b/locale/Makefile index beceed0ebe3..60b1c8f955f 100644 --- a/locale/Makefile +++ b/locale/Makefile @@ -57,7 +57,7 @@ pot: @echo "Generating $(WXPYDOMAIN)..." xgettext --from-code=utf-8 --keyword=_ --keyword=n_:1,2 -cGTC -o ./templates/$(WXPYDOMAIN).pot `$(WXPY_POTFILES)` -#merge already existing translations with new messages in POT template file and create new po files: +#merge already existing translations with new messages in POT template file, deduplicate it and create new po files: update-po: @for i in $(DOMAINS) ; do \ if [ "`ls ./po/$$i\_*.po 2>/dev/null`" = "" ] ; then \ @@ -72,7 +72,8 @@ update-po: lingua=`basename $$suffix .po`; \ prefix=`echo $$po | cut -d'_' -f1`; \ if msgmerge -o $$prefix\_$$suffix.new $$prefix\_$$suffix ../templates/$$prefix.pot; then\ - mv $$prefix\_$$suffix.new $$prefix\_$$suffix; \ + msguniq --use-first $$prefix\_$$suffix.new > $$prefix\_$$suffix; \ + rm -f $$prefix\_$$suffix.new; \ echo "Merged new messages into $$prefix\_$$suffix" ; \ else \ echo "Merging failed"; \ diff --git a/locale/po/grassmods_fr.po b/locale/po/grassmods_fr.po index ec784de259a..f13cc33269f 100644 --- a/locale/po/grassmods_fr.po +++ b/locale/po/grassmods_fr.po @@ -13,15 +13,16 @@ msgstr "" "Project-Id-Version: grassmods_fr\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-05-23 03:37-0600\n" -"PO-Revision-Date: 2014-01-01 11:35+0100\n" -"Last-Translator: Sylvain Maillard \n" -"Language-Team: Français \n" +"PO-Revision-Date: 2024-05-27 09:55+0000\n" +"Last-Translator: Edouard Choiniere \n" +"Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.5.5\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 5.4.3\n" #: ../temporal/t.connect/main.c:34 #: ../locale/scriptstrings/t.merge_to_translate.c:2 @@ -129,7 +130,7 @@ msgstr "" #: ../temporal/t.connect/main.c:42 ../db/db.connect/main.c:50 msgid "Print current connection parameters and exit" -msgstr "Affiche les paramètres de connexion courants et quitte" +msgstr "Afficher les paramètres de connexion courants et quitter" #: ../temporal/t.connect/main.c:43 ../raster/r.external/main.c:96 #: ../raster/r.external/main.c:135 ../raster/r.out.gdal/main.c:142 @@ -1444,22 +1445,20 @@ msgstr "Lister les formats supportés et sortir" #: ../locale/scriptstrings/v.import_to_translate.c:27 #: ../vector/v.in.lidar/main.c:322 ../vector/v.external/args.c:49 #: ../vector/v.in.pdal/main.cpp:225 ../vector/v.in.ogr/main.c:380 -#, fuzzy msgid "Override projection check (use current project's CRS)" msgstr "" "Supplanter la vérification de la projection (utiliser la projection du " -"secteur courant)" +"projet courant)" #: ../raster/r.external/main.c:102 ../raster/r.in.pdal/main.cpp:398 #: ../raster/r.in.gdal/main.c:217 ../raster/r.in.lidar/main.c:305 #: ../raster3d/r3.in.lidar/main.c:292 ../vector/v.in.lidar/main.c:324 #: ../vector/v.external/args.c:51 ../vector/v.in.pdal/main.cpp:227 -#, fuzzy msgid "" "Assume that the dataset has the same coordinate reference system as the " "current project" msgstr "" -"Considérer que le jeu de données a la même projection que le secteur courant" +"Considérer que le jeu de données a la même projection que le projet courant" #: ../raster/r.external/main.c:107 ../raster/r.in.gdal/main.c:223 #: ../vector/v.external/args.c:56 ../vector/v.in.ogr/main.c:387 @@ -1575,28 +1574,27 @@ msgid "No projection information available" msgstr "" #: ../raster/r.external/proj.c:134 -#, fuzzy msgid "" "Unable to convert input map coordinate reference system to GRASS format; " "cannot create new project." msgstr "" -"Impossible de convertir la projection de la couche en entrée au format " -"GRASS ; impossible de créer le nouveau Secteur" +"Impossible de convertir la projection de la couche en entrée au format GRASS " +"; impossible de créer le nouveau projet" #: ../raster/r.external/proj.c:140 ../raster/r.in.gdal/main.c:1035 #: ../raster/r.in.gdal/proj.c:139 ../vector/v.in.lidar/main.c:522 #: ../vector/v.external/proj.c:172 ../vector/v.in.ogr/proj.c:306 -#, fuzzy, c-format +#, c-format msgid "Unable to create new project <%s>" -msgstr "Impossible de créer l'index sur la table <%s>" +msgstr "Impossible de créer le nouveau projet <%s>" #: ../raster/r.external/proj.c:142 ../raster/r.in.gdal/main.c:1041 #: ../raster/r.in.gdal/proj.c:141 ../general/g.proj/create.c:16 #: ../vector/v.in.lidar/main.c:525 ../vector/v.external/proj.c:174 #: ../vector/v.in.ogr/proj.c:308 -#, fuzzy, c-format +#, c-format msgid "Project <%s> created" -msgstr "Secteur <%s> créé" +msgstr "Projet <%s> créé" #: ../raster/r.external/proj.c:165 ../raster/r.in.gdal/proj.c:164 #: ../vector/v.external/proj.c:197 ../vector/v.in.ogr/proj.c:331 @@ -1640,13 +1638,17 @@ msgstr "Le PROJ_INFO du jeu de données est : \n" #: ../raster/r.in.lidar/projection.c:89 ../raster3d/r3.in.lidar/projection.c:90 #: ../vector/v.in.lidar/projection.c:87 ../vector/v.external/proj.c:360 #: ../vector/v.in.pdal/projection.c:87 ../vector/v.in.ogr/proj.c:492 -#, c-format +#, c-format, fuzzy msgid "" "\n" "In case of no significant differences in the coordinate reference system " "definitions, use the -o flag to ignore them and use current project " "definition.\n" msgstr "" +"\n" +"Si les définitions des systèmes de référence des coordonnées ne présentent " +"pas de différences significatives, l'option -o permet de les ignorer et " +"d'utiliser la définition actuelle du projet.\n" #: ../raster/r.external/proj.c:328 ../raster/r.in.gdal/proj.c:327 #: ../vector/v.external/proj.c:364 ../vector/v.in.ogr/proj.c:496 @@ -3845,23 +3847,20 @@ msgstr "" #: ../raster/r.sun/main.c:804 ../general/g.region/printwindow.c:251 #: ../general/g.region/printwindow.c:496 ../general/g.region/printwindow.c:570 -#, fuzzy msgid "Can't get projection info of current project" msgstr "" -"Impossible d'obtenir les informations de projection pour le Secteur courant" +"Impossible d'obtenir les informations de projection pour le projet courant" #: ../raster/r.sun/main.c:807 ../general/g.region/printwindow.c:255 #: ../general/g.region/printwindow.c:500 ../general/g.region/printwindow.c:579 -#, fuzzy msgid "Can't get projection units of current project" -msgstr "Impossible d'obtenir les unités de projection pour le Secteur courant" +msgstr "Impossible d'obtenir les unités de projection pour le projet courant" #: ../raster/r.sun/main.c:811 ../general/g.region/printwindow.c:259 #: ../general/g.region/printwindow.c:504 ../general/g.region/printwindow.c:583 -#, fuzzy msgid "Can't get projection key values of current project" msgstr "" -"Impossible d'obtenir les valeurs clefs de projection pour le Secteur courant" +"Impossible d'obtenir les valeurs clefs de projection pour le projet courant" #: ../raster/r.sun/main.c:820 ../raster/r.horizon/main.c:597 #: ../raster/r.latlong/main.c:115 ../raster/r.in.gdal/main.c:1141 @@ -4247,17 +4246,17 @@ msgstr "" #: ../raster/r.horizon/main.c:582 ../display/d.where/main.c:104 msgid "Can't get projection info of current location" msgstr "" -"Impossible d'obtenir les informations de projection pour le Secteur courant" +"Impossible d'obtenir les informations de projection pour le projet courant" #: ../raster/r.horizon/main.c:585 ../display/d.where/main.c:107 msgid "Can't get projection units of current location" -msgstr "Impossible d'obtenir les unités de projection pour le Secteur courant" +msgstr "Impossible d'obtenir les unités de projection pour le projet courant" #: ../raster/r.horizon/main.c:588 ../ps/ps.map/do_geogrid.c:279 #: ../display/d.where/main.c:111 ../display/d.grid/plot.c:578 msgid "Can't get projection key values of current location" msgstr "" -"Impossible d'obtenir les valeurs clefs de projection pour le Secteur courant" +"Impossible d'obtenir les valeurs clefs de projection pour le projet courant" #: ../raster/r.horizon/main.c:723 ../raster/r.in.ascii/main.c:187 #, c-format @@ -4445,11 +4444,14 @@ msgid "unable to open input file <%s>" msgstr "" #: ../raster/r.quant/read_rules.c:89 -#, c-format +#, c-format, fuzzy msgid "" "\n" "Enter the rule or 'help' for the format description or 'end' to exit:\n" msgstr "" +"\n" +"Entrez la règle ou 'help' pour la description du format, ou 'end' pour la " +"quitter :\n" #: ../raster/r.quant/read_rules.c:114 msgid "quant rules do not cover the whole range map" @@ -4500,12 +4502,12 @@ msgstr "Arrondir les valeurs en virgule flottante" #: ../raster/r.quant/main.c:112 #, c-format msgid "-%c, -%c, %s=, %s= and %s= are mutually exclusive" -msgstr "" +msgstr "-%c, -%c, %s=, %s= et %s= sont mutuellement exclusifs" #: ../raster/r.quant/main.c:122 #, c-format msgid "%s= and %s= must be used together" -msgstr "" +msgstr "%s= et %s= doivent être utilisés ensemble" #: ../raster/r.quant/main.c:133 #, c-format @@ -4518,7 +4520,7 @@ msgstr "" #: ../raster/r.quant/main.c:146 msgid "Rounding..." -msgstr "" +msgstr "Arrondissement..." #: ../raster/r.quant/main.c:154 #, c-format @@ -4559,9 +4561,9 @@ msgid "Failed to set raster attribute table" msgstr "" #: ../raster/r.out.gdal/main.c:51 -#, c-format +#, c-format, fuzzy msgid "Supported formats:\n" -msgstr "" +msgstr "Formats supportés :\n" #: ../raster/r.out.gdal/main.c:134 msgid "Exports GRASS raster maps into GDAL supported formats." @@ -4790,7 +4792,7 @@ msgstr "" #: ../raster/r.out.gdal/main.c:701 msgid "Unable to set projection" -msgstr "" +msgstr "Impossible de définir la projection" #: ../raster/r.out.gdal/main.c:729 #, c-format @@ -7611,8 +7613,11 @@ msgid "virtual raster" msgstr "" #: ../raster/r.buildvrt/main.c:80 +#, fuzzy msgid "Build a VRT (Virtual Raster) from the list of input raster maps." msgstr "" +"Construire un VRT (raster virtuel) à partir de la liste de cartes raster " +"d'entrée." #: ../raster/r.buildvrt/main.c:83 msgid "Name of input raster files" @@ -9271,8 +9276,9 @@ msgid " ignored\n" msgstr "" #: ../raster/r.reclass/main.c:124 +#, fuzzy msgid " - invalid reclass rule" -msgstr "" +msgstr " - Règle de reclassement invalide" #: ../raster/r.reclass/main.c:140 #, c-format @@ -9969,11 +9975,16 @@ msgstr "" "GRASS ; impossible de créer le nouveau Secteur" #: ../raster/r.in.gdal/proj.c:323 +#, fuzzy msgid "" "\n" "In case of no significant differences in the CRS definitions, use the -o " "flag to ignore them and use current project definition.\n" msgstr "" +"\n" +"S'il n'y a pas de différences significatives entre les définitions des SCR, " +"utilisez l'option -o pour les ignorer et utiliser la définition du projet " +"actuel.\n" #: ../raster/r.clump/rclist.c:17 ../imagery/i.segment/rclist.c:17 msgid "rclist out of memory" @@ -12791,9 +12802,9 @@ msgid "Amount of memory cannot be negative." msgstr "Maximum de mémoire à utiliser (en MB)" #: ../raster/r.viewshed/main.cpp:616 -#, c-format +#, c-format, fuzzy msgid " Converting %d to %d MB" -msgstr "" +msgstr " Conversion de %d en %d MB" #: ../raster/r.viewshed/distribute.cpp:80 msgid "Start distributed sweeping." @@ -18475,7 +18486,7 @@ msgstr "" #: ../locale/scriptstrings/v.class.mlR_to_translate.c:2 #: ../vector/v.class/main.c:45 msgid "classification" -msgstr "" +msgstr "classification" #: ../raster/r.kappa/main.c:72 msgid "" @@ -23470,14 +23481,14 @@ msgid "Region%s" msgstr "" #: ../imagery/i.cluster/main.c:261 -#, c-format +#, c-format, fuzzy msgid " North: %12.2f East: %12.2f%s" -msgstr "" +msgstr " Nord : %12.2f Est : %12.2f%s" #: ../imagery/i.cluster/main.c:263 -#, c-format +#, c-format, fuzzy msgid " South: %12.2f West: %12.2f%s" -msgstr "" +msgstr " Sud : %12.2f Ouest : %12.2f%s" #: ../imagery/i.cluster/main.c:265 #, c-format @@ -23485,9 +23496,9 @@ msgid " Res: %12.2f Res: %12.2f%s" msgstr "" #: ../imagery/i.cluster/main.c:267 -#, c-format +#, c-format, fuzzy msgid " Rows: %12d Cols: %12d Cells: %d%s" -msgstr "" +msgstr " Lignes : %12d Colonnes : %12d Cellules : %d%s" #: ../imagery/i.cluster/main.c:269 #, c-format @@ -23515,19 +23526,19 @@ msgid " Minimum class size: %d%s" msgstr "" #: ../imagery/i.cluster/main.c:278 -#, c-format +#, c-format, fuzzy msgid " Minimum class separation: %f%s" -msgstr "" +msgstr " Séparation minimale des classes : %f%s" #: ../imagery/i.cluster/main.c:280 -#, c-format +#, c-format, fuzzy msgid " Percent convergence: %f%s" -msgstr "" +msgstr " Pourcentage de convergence : %f%s" #: ../imagery/i.cluster/main.c:282 -#, c-format +#, c-format, fuzzy msgid " Maximum number of iterations: %d%s" -msgstr "" +msgstr " Nombre maximum d'itérations : %d%s" #: ../imagery/i.cluster/main.c:285 #, c-format @@ -24837,7 +24848,7 @@ msgstr "" #: ../imagery/i.rectify/cp.c:28 ../imagery/i.rectify/cp.c:53 #: ../vector/v.rectify/cp.c:358 msgid " Can not generate the transformation equation." -msgstr "" +msgstr " Impossible de générer l'équation de transformation." #: ../imagery/i.ortho.photo/i.ortho.rectify/cp.c:25 msgid " Run OPTION 7 of i.ortho.photo again!\n" @@ -25461,7 +25472,7 @@ msgstr "Calcul des matrices de covariance de classe" #: ../imagery/i.gensig/main.c:40 ../imagery/i.smap/main.c:39 #: ../imagery/i.gensigset/main.c:42 msgid "supervised classification" -msgstr "" +msgstr "classification dirigée" #: ../imagery/i.gensig/main.c:41 ../imagery/i.maxlik/main.c:63 msgid "Maximum Likelihood Classification" @@ -26374,9 +26385,8 @@ msgstr "Afficher les jeux de cartes dans le chemin de recherche" #: ../locale/scriptstrings/d.vect.thematic2_to_translate.c:42 #: ../locale/scriptstrings/d.vect.thematic2_to_translate.c:46 #: ../locale/scriptstrings/d.vect.thematic2_to_translate.c:48 -#, fuzzy msgid "Files" -msgstr "mile" +msgstr "Fichiers" #: ../imagery/i.signatures/main.c:153 #, fuzzy @@ -28066,9 +28076,9 @@ msgid "Lists all database drivers." msgstr "Lister tous les pilotes de bases de données." #: ../db/db.execute/main.c:55 ../db/db.select/main.c:62 -#, c-format +#, c-format, fuzzy msgid "Unable to open file <%s>: %s" -msgstr "" +msgstr "Impossible d'ouvrir le fichier <%s> : %s" #: ../db/db.execute/main.c:74 ../db/db.columns/main.c:52 #: ../db/db.describe/main.c:56 ../db/db.tables/main.c:50 @@ -28812,6 +28822,7 @@ msgstr "Pilote SQLite : colonne '%s', type de donnée SQLite %d non géré" #, c-format msgid "Table <%s> not found in database <%s> using driver <%s>" msgstr "" +"Table <%s> non trouvée dans la Base de données <%s> utilisant le pilote <%s>" #: ../db/db.columns/main.c:96 msgid "List all columns for a given table." @@ -28970,25 +28981,26 @@ msgid "The password was stored in file (%s%cdblogin)" msgstr "" #: ../db/db.select/main.c:104 -#, c-format +#, c-format, fuzzy msgid "Test %s." -msgstr "" +msgstr "Test %s." #: ../db/db.select/main.c:104 msgid "succeeded" -msgstr "" +msgstr "à réussi" #: ../db/db.select/main.c:205 msgid "Name of file containing SQL select statement(s)" -msgstr "" +msgstr "Nom du fichier contenant la ou les instructions SELECT SQL" #: ../db/db.select/main.c:210 msgid "Name of table to query" -msgstr "" +msgstr "Nom de la table à interroger" #: ../db/db.select/main.c:229 +#, fuzzy msgid "Vertical record separator (requires -v flag)" -msgstr "" +msgstr "Séparateur vertical d'enregistrements (requiert l'option -v)." #: ../db/db.select/main.c:243 ../locale/scriptstrings/v.report_to_translate.c:9 #: ../locale/scriptstrings/m.cdo.download_to_translate.c:24 @@ -29774,7 +29786,7 @@ msgstr "" #: ../locale/scriptstrings/r.maxent.train_to_translate.c:52 msgid "Extrapolate" -msgstr "" +msgstr "Extrapoler" #: ../locale/scriptstrings/r.maxent.train_to_translate.c:53 msgid "" @@ -29805,9 +29817,8 @@ msgid "" msgstr "" #: ../locale/scriptstrings/r.maxent.train_to_translate.c:61 -#, fuzzy msgid "Disable linear features" -msgstr "entités simples" +msgstr "" #: ../locale/scriptstrings/r.maxent.train_to_translate.c:62 msgid "Do not use linear features for the model (they are used by default)." @@ -39617,8 +39628,9 @@ msgid "" msgstr "" #: ../locale/scriptstrings/v.class.mlpy_to_translate.c:4 +#, fuzzy msgid "supervised" -msgstr "" +msgstr "dirigée" #: ../locale/scriptstrings/v.class.mlpy_to_translate.c:6 #, fuzzy @@ -40336,9 +40348,8 @@ msgid "" msgstr "" #: ../locale/scriptstrings/i.ortho.corr_to_translate.c:3 -#, fuzzy msgid "orthorectification" -msgstr "reclassification" +msgstr "orthorectification" #: ../locale/scriptstrings/i.ortho.corr_to_translate.c:5 msgid "Suffix of ortophoto map, default is .ortho, use None for no suffix" @@ -42376,6 +42387,8 @@ msgid "" "Supervised classification and regression of GRASS rasters using the python " "scikit-learn package." msgstr "" +"Classification dirigée et régression de rasters GRASS en utilisant le paquet " +"python scikit-learn" #: ../locale/scriptstrings/r.learn.train_to_translate.c:10 msgid "" @@ -57789,9 +57802,9 @@ msgstr "" #: ../vector/v.vol.rst/user1.c:586 ../vector/v.vol.rst/user1.c:640 #: ../vector/v.vol.rst/user1.c:694 ../vector/v.vol.rst/user1.c:748 #: ../vector/v.vol.rst/user1.c:802 -#, c-format +#, c-format, fuzzy msgid "Error closing output file %s" -msgstr "" +msgstr "Erreur en fermant le fichier de sortie %s" #: ../vector/v.vol.rst/user1.c:480 ../vector/v.vol.rst/user1.c:535 #: ../vector/v.vol.rst/user1.c:589 ../vector/v.vol.rst/user1.c:643 @@ -66424,11 +66437,13 @@ msgid "" msgstr "" #: ../display/d.vect.thematic/main.c:515 -#, c-format +#, c-format, fuzzy msgid "" "\n" "Total number of records: %.0f\n" msgstr "" +"\n" +"Nombre total d'enregistrements : %.0f\n" #: ../display/d.vect.thematic/main.c:516 #, c-format @@ -70413,9 +70428,8 @@ msgid "Adding column <{}> to the table" msgstr "" #: ../scripts/v.db.addcolumn/v.db.addcolumn.py:137 -#, fuzzy msgid "Error adding columns {}" -msgstr "Arguments de l'erreur de scanning" +msgstr "Erreur d'ajout de colonnes {}" #: ../scripts/r.reclass.area/r.reclass.area.py:97 #: ../scripts/r.reclass.area/r.reclass.area.py:218 diff --git a/locale/po/grasswxpy_fr.po b/locale/po/grasswxpy_fr.po index 72f50141681..acafa54fde4 100644 --- a/locale/po/grasswxpy_fr.po +++ b/locale/po/grasswxpy_fr.po @@ -10,8 +10,8 @@ msgstr "" "Project-Id-Version: grasswxpy_fr\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-05-23 03:37-0600\n" -"PO-Revision-Date: 2023-04-15 15:08+0000\n" -"Last-Translator: Sylvain Maillard \n" +"PO-Revision-Date: 2024-05-27 09:55+0000\n" +"Last-Translator: Edouard Choiniere \n" "Language-Team: French \n" "Language: fr\n" @@ -19,7 +19,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.16.4\n" +"X-Generator: Weblate 5.4.3\n" "X-Poedit-SourceCharset: UTF-8\n" #: ../gui/wxpython/nviz/tools.py:109 ../gui/wxpython/nviz/preferences.py:65 @@ -721,7 +721,7 @@ msgstr "" #: ../gui/wxpython/nviz/tools.py:2857 msgid "No file prefix given." -msgstr "Pas de préfix de fichier." +msgstr "Pas de préfixe de fichier." #: ../gui/wxpython/nviz/tools.py:2860 #, python-format @@ -1173,8 +1173,9 @@ msgstr "" "Avec un stvds vous devez utiliser une des options 'coordonées' ou 'cats'" #: ../gui/wxpython/tplot/g.gui.tplot.py:175 +#, fuzzy msgid "Temporal Plot Tool - GRASS GIS" -msgstr "" +msgstr "Outil d'affichage temporel - GRASS GIS" #: ../gui/wxpython/tplot/frame.py:46 #, python-brace-format @@ -1186,8 +1187,9 @@ msgstr "" "matplotlib) soit installé. {0}" #: ../gui/wxpython/tplot/frame.py:104 +#, fuzzy msgid "Temporal Plot Tool" -msgstr "" +msgstr "Outil d'affichage temporel" #: ../gui/wxpython/tplot/frame.py:189 msgid "" @@ -1674,8 +1676,9 @@ msgid "Subgroup <%s> not found" msgstr "Sous-groupe <%s> non trouvé" #: ../gui/wxpython/iclass/g.gui.iclass.py:111 +#, fuzzy msgid "Supervised Classification Tool - GRASS GIS" -msgstr "" +msgstr "Outil de classification dirigée - GRASS GIS" #: ../gui/wxpython/iclass/g.gui.iclass.py:122 #, python-format @@ -1723,7 +1726,7 @@ msgstr "" #: ../gui/wxpython/iclass/frame.py:88 ../gui/wxpython/iclass/frame.py:1622 #: ../gui/wxpython/main_window/frame.py:1851 ../gui/wxpython/lmgr/frame.py:1701 msgid "Supervised Classification Tool" -msgstr "" +msgstr "Outil de classification dirigée" #: ../gui/wxpython/iclass/frame.py:306 ../gui/wxpython/mapswipe/frame.py:287 #: ../gui/wxpython/gcp/mapdisplay.py:247 @@ -2274,7 +2277,7 @@ msgstr "Aucune carte sélectionnée pour la copie." #: ../gui/wxpython/datacatalog/tree.py:1263 msgid "No map selected for moving." -msgstr "Pas de carte sélectionnée pour le déplacement." +msgstr "Aucune carte sélectionnée pour le déplacement." #: ../gui/wxpython/datacatalog/tree.py:1285 #: ../gui/wxpython/datacatalog/tree.py:1305 @@ -2379,11 +2382,11 @@ msgstr "&Renommer" #: ../gui/wxpython/datacatalog/tree.py:2102 msgid "&Display layers" -msgstr "" +msgstr "Afficher les couches" #: ../gui/wxpython/datacatalog/tree.py:2104 msgid "&Display layer" -msgstr "Afficher la carte" +msgstr "Afficher la couche" #: ../gui/wxpython/datacatalog/tree.py:2108 msgid "Show &metadata" @@ -2421,19 +2424,16 @@ msgid "&Delete project" msgstr "Supprimer les enregistrements" #: ../gui/wxpython/datacatalog/tree.py:2174 -#, fuzzy msgid "&Rename project" -msgstr "Reprojeter" +msgstr "&Renommer le projet" #: ../gui/wxpython/datacatalog/tree.py:2193 -#, fuzzy msgid "&Create new project (location)" -msgstr "Créer un nouveau secteur" +msgstr "&Créer un nouveau projet (secteur)" #: ../gui/wxpython/datacatalog/tree.py:2197 -#, fuzzy msgid "&Download sample project (location)" -msgstr "Télécharger le Secteur d'exemple" +msgstr "Télécharger le projet (secteur) d'exemple" #: ../gui/wxpython/datacatalog/tree.py:2202 msgid "&Remove GRASS database from data catalog" @@ -2716,7 +2716,7 @@ msgstr "" #: ../gui/wxpython/mapswipe/frame.py:742 ../gui/wxpython/mapdisp/frame.py:1034 msgid "No raster or vector map layer selected for querying." msgstr "" -"Pas de carte rater ou couche de carte vecteur sélectionnée pour " +"Pas de carte raster ou couche de carte vecteur sélectionnée pour " "interrogation." #: ../gui/wxpython/icons/icon.py:36 @@ -2743,7 +2743,7 @@ msgstr "Double-clic pour exécuter le module sélectionné" #: ../gui/wxpython/history/tree.py:191 #, fuzzy msgid "&Remove" -msgstr "Supprimer" +msgstr "Supp&rimer" #: ../gui/wxpython/history/tree.py:465 msgid "Cannot be parsed into command" @@ -3442,7 +3442,7 @@ msgstr "Suffixe pour les cartes en sortie :" #: ../gui/wxpython/gcp/manager.py:690 msgid "No vector maps." -msgstr "" +msgstr "Aucune carte vectorielle." #: ../gui/wxpython/gcp/manager.py:698 #: ../gui/wxpython/image2target/ii2t_manager.py:704 @@ -4121,9 +4121,8 @@ msgstr "" #: ../gui/wxpython/location_wizard/wizard.py:184 #: ../gui/wxpython/location_wizard/wizard.py:2432 -#, fuzzy msgid "Define new GRASS project" -msgstr "Définir un nouveau secteur GRASS" +msgstr "Définir un nouveau projet GRASS" #: ../gui/wxpython/location_wizard/wizard.py:198 msgid "Change" @@ -6737,12 +6736,16 @@ msgstr "" "et projection de destination." #: ../gui/wxpython/menustrings.py:298 ../gui/wxpython/menustrings.py:1263 +#, fuzzy msgid "Build a VRT (Virtual Raster)" -msgstr "" +msgstr "Construire un VRT (raster virtuel)" #: ../gui/wxpython/menustrings.py:299 ../gui/wxpython/menustrings.py:1264 +#, fuzzy msgid "Build a VRT (Virtual Raster) from the list of input raster maps." msgstr "" +"Construire un VRT (raster virtuel) à partir de la liste de cartes raster " +"d'entrée." #: ../gui/wxpython/menustrings.py:300 ../gui/wxpython/menustrings.py:606 #: ../gui/wxpython/menustrings.py:1265 ../gui/wxpython/menustrings.py:1571 @@ -9038,7 +9041,7 @@ msgstr "Classification d'image" #: ../gui/wxpython/menustrings.py:790 ../gui/wxpython/menustrings.py:1755 msgid "Clustering input for unsupervised classification" -msgstr "Regroupement pour classification non-supervisée" +msgstr "Regroupement pour classification non dirigée" #: ../gui/wxpython/menustrings.py:791 ../gui/wxpython/menustrings.py:1756 msgid "" @@ -9049,11 +9052,11 @@ msgstr "" "Générer les signatures spectrales pour les types d'occupation des sols dans " "une image avec un algorithme de regroupement. Le fichier de signature " "résultant est utilisé en entrée pour i.maxlik, pour générer une " -"classification non supervisée de l'image." +"classification non dirigée de l'image." #: ../gui/wxpython/menustrings.py:792 ../gui/wxpython/menustrings.py:1757 msgid "Input for supervised MLC" -msgstr "Entrée pour classification supervisée MLC" +msgstr "Entrée pour classification dirigée MLC" #: ../gui/wxpython/menustrings.py:793 ../gui/wxpython/menustrings.py:1758 msgid "Generates statistics for i.maxlik from raster map." @@ -9076,7 +9079,7 @@ msgstr "" #: ../gui/wxpython/menustrings.py:796 ../gui/wxpython/menustrings.py:1761 #: ../gui/wxpython/menustrings.py:2042 msgid "Interactive input for supervised classification" -msgstr "Entrée interactive pour la classification supervisée" +msgstr "Entrée interactive pour la classification dirigée" #: ../gui/wxpython/menustrings.py:797 ../gui/wxpython/menustrings.py:1762 #: ../gui/wxpython/menustrings.py:2043 @@ -10306,7 +10309,7 @@ msgstr "Afficher les informations système" #: ../gui/wxpython/menustrings.py:1069 ../gui/wxpython/menustrings.py:1070 #: ../gui/wxpython/gui_core/ghelp.py:60 msgid "About GRASS GIS" -msgstr "Au sujet du SIG GRASS" +msgstr "À propos du SIG GRASS" #: ../gui/wxpython/menustrings.py:1073 msgid "Import, export and link data" @@ -10763,8 +10766,7 @@ msgstr "Rien à profiler" #: ../gui/wxpython/wxplot/profile.py:414 msgid "Choose prefix for file(s) where to save profile values..." -msgstr "" -"Choisir le préfixe des fichiers où enregistrer les valeurs du profil ..." +msgstr "Choisir le préfixe des fichiers où enregistrer les valeurs du profil…" #: ../gui/wxpython/wxplot/profile.py:416 msgid "Comma separated value (*.csv)|*.csv" @@ -11075,8 +11077,9 @@ msgstr "" "La documentation pour %s est maintenant disponible dans le navigateur web" #: ../gui/wxpython/gui_core/menu.py:407 +#, fuzzy msgid "&Recent Files" -msgstr "" +msgstr "Fichiers &récents" #: ../gui/wxpython/gui_core/gselect.py:523 msgid "Not selectable element" @@ -11300,7 +11303,7 @@ msgstr "Polygone" #: ../gui/wxpython/gui_core/gselect.py:3013 msgid "No vector map selected in layer manager. Operation canceled." msgstr "" -"Pas de carte vecteur sélectionnée dans le gestionnaire de couches. Opération " +"Aucune carte vecteur sélectionnée dans le gestionnaire de couches. Opération " "annulée." #: ../gui/wxpython/gui_core/gselect.py:3030 @@ -11323,7 +11326,7 @@ msgstr "" #: ../gui/wxpython/gui_core/gselect.py:3241 msgid "No vector map selected" -msgstr "Pas de carte vecteur sélectionnée" +msgstr "Aucune carte vecteur sélectionnée" #: ../gui/wxpython/gui_core/ghelp.py:76 msgid "Info" @@ -11400,7 +11403,7 @@ msgid "" "Unable to provide citation suggestion, see GRASS GIS website instead. The " "error was: {0}" msgstr "" -"Impossible de fournir une sugestion de citation, merci de consulter le site " +"Impossible de fournir une suggestion de citation, veuillez consulter le site " "internet de GRASS. L'erreur est : {0}" #: ../gui/wxpython/gui_core/ghelp.py:420 ../gui/wxpython/gui_core/ghelp.py:493 @@ -11603,12 +11606,12 @@ msgstr "" #: ../gui/wxpython/gui_core/vselect.py:281 msgid "No vector map layer selected. Operation canceled." -msgstr "" +msgstr "Aucune couche de carte vectorielle sélectionnée. Opération annulée." #: ../gui/wxpython/gui_core/vselect.py:290 ../gui/wxpython/mapdisp/frame.py:698 #: ../gui/wxpython/main_window/frame.py:2426 ../gui/wxpython/lmgr/frame.py:2332 msgid "No map layer selected. Operation canceled." -msgstr "Aucune ccouche sélectionnée. Opération annulée." +msgstr "Aucune couche sélectionnée. Opération annulée." #: ../gui/wxpython/gui_core/vselect.py:310 #, python-format @@ -11905,10 +11908,13 @@ msgstr "Niveau de verbosité :" #: ../gui/wxpython/gui_core/preferences.py:1294 msgid "Number of threads for parallel computing (supported tools only):" msgstr "" +"Nombre de threads pour le calcul parallèle (outils pris en charge uniquement)" +" :" #: ../gui/wxpython/gui_core/preferences.py:1319 msgid "Maximum memory in MB to be used (supported tools only):" msgstr "" +"Maximum de mémoire à utiliser en MB (outils pris en charge uniquement) :" #: ../gui/wxpython/gui_core/preferences.py:1349 #: ../gui/wxpython/main_window/frame.py:658 ../gui/wxpython/lmgr/frame.py:632 @@ -12010,7 +12016,6 @@ msgid "Projection statusbar settings" msgstr "Paramètres de la barre de statut de projection" #: ../gui/wxpython/gui_core/preferences.py:1803 -#, fuzzy msgid "" "\n" "Note: This only controls the coordinates displayed in the lower-left of the " @@ -12024,7 +12029,7 @@ msgstr "" "\n" "Note : Ceci contrôle uniquement les coordonnées affichées dans le coin " "inférieur gauche\n" -"de la fenêtre de Carte. L'effet est purement cosméthique et n'affecte pas la " +"de la fenêtre de Carte. L'effet est purement cosmétique et n'affecte pas la " "projection\n" "du secteur d'aucune manière. Vous devrez cocher la case Projection dans le " "menu déroulant\n" @@ -12297,12 +12302,14 @@ msgid "&Clear" msgstr "" #: ../gui/wxpython/gui_core/wrap.py:273 +#, fuzzy msgid "&Cancel" -msgstr "" +msgstr "&Annuler" #: ../gui/wxpython/gui_core/wrap.py:286 +#, fuzzy msgid "&Close" -msgstr "" +msgstr "&Fermer" #: ../gui/wxpython/gui_core/wrap.py:297 msgid "Apply" @@ -13670,7 +13677,7 @@ msgstr "Impossible d'ouvrir la carte vecteur <%s>." #: ../gui/wxpython/vdigit/wxdigit.py:61 msgid "No vector map open for editing." -msgstr "Pas de carte vecteur sélectionnée pour édition." +msgstr "Aucune carte vecteur sélectionnée pour édition." #: ../gui/wxpython/vdigit/wxdigit.py:63 msgid "Operation canceled." @@ -14019,7 +14026,7 @@ msgstr "Région nommée :" #: ../gui/wxpython/web_services/dialogs.py:886 msgid "Extent and resolution are based on Map Display geometry." msgstr "" -"L'emprise et la résolution sont basés sur la géométrie de l'écran " +"L'emprise et la résolution sont basées sur la géométrie de l'écran " "d'affichage." #: ../gui/wxpython/web_services/dialogs.py:889 @@ -14179,7 +14186,7 @@ msgstr "Sélectionner la projection source.\n" #: ../gui/wxpython/web_services/widgets.py:890 msgid "Choose output layer name.\n" -msgstr "Choisir le nom de la couche de sorte.\n" +msgstr "Choisir le nom de la couche de sortie.\n" #: ../gui/wxpython/web_services/widgets.py:1154 msgid "Add default" @@ -16453,7 +16460,7 @@ msgstr "Couche à reprojeter" #: ../gui/wxpython/modules/import_export.py:996 msgid "&Import && reproject" -msgstr "&Importe && reprojecte" +msgstr "&Importer && reprojeter" #: ../gui/wxpython/modules/import_export.py:998 msgid "Reproject selected layers" @@ -17005,7 +17012,7 @@ msgstr "Bandes à ajouter au nuage de points (x y) :" #: ../gui/wxpython/iscatt/dialogs.py:156 msgid "No scatter plots selected." -msgstr "Pas de nuage de points sélectionné." +msgstr "Aucun nuage de points sélectionné." #: ../gui/wxpython/iscatt/dialogs.py:196 msgid "Select both x and y bands." @@ -17798,9 +17805,8 @@ msgid "Launching script '%s'..." msgstr "Lancement du script '%s'..." #: ../gui/wxpython/main_window/frame.py:1456 -#, fuzzy msgid "No project provided. Operation canceled." -msgstr "Aucun jeux de carte sélectionné. Opération annulée." +msgstr "Aucun projet sélectionné. Opération annulée." #: ../gui/wxpython/main_window/frame.py:1496 ../gui/wxpython/lmgr/frame.py:1345 msgid "No mapset provided. Operation canceled." @@ -17886,7 +17892,7 @@ msgid "" "\n" "Reason: %s" msgstr "" -"Impossible de lancer l' « Outil de classification supervisée ».\n" +"Impossible de lancer l' « Outil de classification dirigée ».\n" "\n" "Raison : %s" @@ -18885,8 +18891,9 @@ msgid "Table" msgstr "Table" #: ../gui/wxpython/dbmgr/base.py:1183 ../gui/wxpython/dbmgr/base.py:2345 +#, fuzzy msgid " (read-only)" -msgstr "" +msgstr " (lecture-seule)" #: ../gui/wxpython/dbmgr/base.py:1200 msgid "SQL Query" @@ -19390,7 +19397,7 @@ msgstr "Pas de nom défini pour l'animation." #: ../gui/wxpython/animation/data.py:134 msgid "No workspace file selected." -msgstr "Pas de fichier d'espace de travail sélectionné." +msgstr "Aucun fichier d'espace de travail sélectionné." #: ../gui/wxpython/animation/data.py:137 #, python-format @@ -20326,7 +20333,7 @@ msgstr "Sélection de la région" #: ../gui/wxpython/psmap/dialogs.py:1475 msgid "No map selected!" -msgstr "Pas de carte sélectionnée !" +msgstr "Aucune carte sélectionnée !" #: ../gui/wxpython/psmap/dialogs.py:1507 msgid "No region selected!" @@ -20759,7 +20766,7 @@ msgstr "pivoter le texte (sens anti-horaire)" #: ../gui/wxpython/psmap/dialogs.py:5600 msgid "No text entered!" -msgstr "Pas de texte saisi !" +msgstr "Aucun texte saisi !" #: ../gui/wxpython/psmap/dialogs.py:5799 msgid "Choose a directory with images" @@ -22515,3 +22522,6 @@ msgstr "étiquettes :" #~ msgstr "" #~ "Impossible d'obtenir l’extension géographique courante. Sortie forcée de " #~ "wxGUI. Merci d'exécuter manuellement g.region pour résoudre ce problème." + +msgid "supported tools only" +msgstr "outils pris en charge uniquement" diff --git a/python/grass/jupyter/utils.py b/python/grass/jupyter/utils.py index e0aa7eb11b2..f06adfa36d1 100644 --- a/python/grass/jupyter/utils.py +++ b/python/grass/jupyter/utils.py @@ -104,7 +104,7 @@ def estimate_resolution(raster, mapset, location, dbase, env): flags="g", input=raster, mapset=mapset, - location=location, + project=location, dbase=dbase, env=env, ).strip() diff --git a/python/grass/pygrass/modules/shortcuts.py b/python/grass/pygrass/modules/shortcuts.py index b1e8094f556..bde3142e54c 100644 --- a/python/grass/pygrass/modules/shortcuts.py +++ b/python/grass/pygrass/modules/shortcuts.py @@ -1,11 +1,23 @@ import fnmatch - -from grass.script.core import get_commands from grass.pygrass.modules.interface import Module -_CMDS = list(get_commands()[0]) -_CMDS.sort() + +def _get_commands(): + """Get a list of commands (tool names)""" + if _get_commands.list_of_commands is None: + # Retrieve and store the list during the the first call of the function. + # pylint: disable=import-outside-toplevel + from grass.script.core import get_commands + + _get_commands.list_of_commands = list(get_commands()[0]) + _get_commands.list_of_commands.sort() + return _get_commands.list_of_commands + + +# Initialize the attribute of the function to indicate +# that the data is not initialized. +_get_commands.list_of_commands = None class MetaModule: @@ -52,7 +64,7 @@ def __init__(self, prefix, cls=None): def __dir__(self): return [ mod[(len(self.prefix) + 1) :].replace(".", "_") - for mod in fnmatch.filter(_CMDS, "%s.*" % self.prefix) + for mod in fnmatch.filter(_get_commands(), "%s.*" % self.prefix) ] def __getattr__(self, name): diff --git a/python/grass/pygrass/modules/tests/grass_pygrass_grid_test.py b/python/grass/pygrass/modules/tests/grass_pygrass_grid_test.py index c2ec828908f..2ca3ddf241b 100644 --- a/python/grass/pygrass/modules/tests/grass_pygrass_grid_test.py +++ b/python/grass/pygrass/modules/tests/grass_pygrass_grid_test.py @@ -5,6 +5,7 @@ import pytest import grass.script as gs +from grass.pygrass.modules.grid import GridModule def max_processes(): @@ -34,10 +35,6 @@ def test_processes(tmp_path, processes): gs.run_command("r.surf.fractal", output=surface) def run_grid_module(): - # modules/shortcuts calls get_commands which requires GISBASE. - # pylint: disable=import-outside-toplevel - from grass.pygrass.modules.grid import GridModule - grid = GridModule( "r.slope.aspect", width=10, @@ -72,10 +69,6 @@ def test_tiling_schemes(tmp_path, width, height): gs.run_command("r.surf.fractal", output=surface) def run_grid_module(): - # modules/shortcuts calls get_commands which requires GISBASE. - # pylint: disable=import-outside-toplevel - from grass.pygrass.modules.grid import GridModule - grid = GridModule( "r.slope.aspect", width=width, @@ -105,10 +98,6 @@ def test_overlaps(tmp_path, overlap): gs.run_command("r.surf.fractal", output=surface) def run_grid_module(): - # modules/shortcuts calls get_commands which requires GISBASE. - # pylint: disable=import-outside-toplevel - from grass.pygrass.modules.grid import GridModule - grid = GridModule( "r.slope.aspect", width=10, @@ -140,10 +129,6 @@ def test_cleans(tmp_path, clean, surface): gs.run_command("r.surf.fractal", output=surface) def run_grid_module(): - # modules/shortcuts calls get_commands which requires GISBASE. - # pylint: disable=import-outside-toplevel - from grass.pygrass.modules.grid import GridModule - grid = GridModule( "r.slope.aspect", width=10, @@ -189,10 +174,6 @@ def test_patching_backend(tmp_path, patch_backend): ) def run_grid_module(): - # modules/shortcuts calls get_commands which requires GISBASE. - # pylint: disable=import-outside-toplevel - from grass.pygrass.modules.grid import GridModule - grid = GridModule( "v.to.rast", width=10, @@ -233,10 +214,6 @@ def test_tiling(tmp_path, width, height, processes): gs.run_command("r.surf.fractal", output=surface) def run_grid_module(): - # modules/shortcuts calls get_commands which requires GISBASE. - # pylint: disable=import-outside-toplevel - from grass.pygrass.modules.grid import GridModule - grid = GridModule( "r.slope.aspect", width=width, @@ -274,10 +251,6 @@ def test_patching_error(tmp_path, processes, backend): surface = "fractal" def run_grid_module(): - # modules/shortcuts calls get_commands which requires GISBASE. - # pylint: disable=import-outside-toplevel - from grass.pygrass.modules.grid import GridModule - grid = GridModule( "r.surf.fractal", overlap=0, diff --git a/raster/r.carve/README b/raster/r.carve/README index 2271457d40c..b40508ea206 100644 --- a/raster/r.carve/README +++ b/raster/r.carve/README @@ -1,4 +1,4 @@ -http://www4.ncsu.edu/~hmitaso/gmslab/reports/cerl99/rep99.html +http://fatra.cnr.ncsu.edu/~hmitaso/gmslab/reports/cerl99/rep99.html Terrain modeling and Soil Erosion Simulations for Fort Hood and Fort Polk test areas @@ -21,7 +21,7 @@ Helena Mitasova, Lubos Mitas, William M. Brown, Douglas M. Johnston r.carve does not create a depressionless DEM because many depressions are in flat areas and not in the streams. -http://www4.ncsu.edu/~hmitaso/gmslab/reports/cerl99/demstr.gif +http://fatra.cnr.ncsu.edu/~hmitaso/gmslab/reports/cerl99/demstr.gif The program will take the vector stream data, transform them to raster, and subtracts a defaultdepth + additionaldepth from the DEM. If the given diff --git a/raster/r.carve/r.carve.html b/raster/r.carve/r.carve.html index 55aeb57fb21..f8d82200013 100644 --- a/raster/r.carve/r.carve.html +++ b/raster/r.carve/r.carve.html @@ -118,7 +118,7 @@

KNOWN ISSUES

REFERENCES

-Terrain +Terrain modeling and Soil Erosion Simulations for Fort Hood and Fort Polk test areas, by Helena Mitasova, Lubos Mitas, William M. Brown, Douglas M. Johnston, GMSL (Report for CERL 1999) diff --git a/raster/r.flow/r.flow.html b/raster/r.flow/r.flow.html index c728069dfd0..79f0e7ab4b7 100644 --- a/raster/r.flow/r.flow.html +++ b/raster/r.flow/r.flow.html @@ -2,9 +2,9 @@

DESCRIPTION

r.flow generates flowlines using a combined raster-vector approach -(see Mitasova +(see Mitasova and Hofierka 1993 -and Mitasova +and Mitasova et al. 1995) from an input elevation raster map (integer or floating point), and optionally an input aspect raster map and/or an input barrier raster map. @@ -189,12 +189,12 @@

REFERENCES