Compare commits

..

19 Commits

Author SHA1 Message Date
4791a2849e add locale options to guides
All checks were successful
continuous-integration/drone/push Build is passing
2022-04-24 20:20:07 -04:00
7edc9642d4 add french translation 2022-04-24 20:19:20 -04:00
2ae0c3133c Translated using Weblate (French)
All checks were successful
continuous-integration/drone/push Build is passing
Currently translated at 100.0% (146 of 146 strings)

Translation: cannery/default
Translate-URL: https://weblate.bubbletea.dev/projects/cannery/default/fr/
2022-04-25 00:12:41 +00:00
Antonin Dupont
f284773f68 Translated using Weblate (French)
All checks were successful
continuous-integration/drone/push Build is passing
Currently translated at 100.0% (30 of 30 strings)

Translation: cannery/errors
Translate-URL: https://weblate.bubbletea.dev/projects/cannery/errors/fr/
2022-04-24 08:27:09 +00:00
Antonin Dupont
d35a81ef39 Translated using Weblate (French)
Currently translated at 100.0% (33 of 33 strings)

Translation: cannery/actions
Translate-URL: https://weblate.bubbletea.dev/projects/cannery/actions/fr/
2022-04-24 08:27:09 +00:00
Antonin Dupont
4c3ebaec53 Translated using Weblate (French)
Currently translated at 100.0% (44 of 44 strings)

Translation: cannery/prompts
Translate-URL: https://weblate.bubbletea.dev/projects/cannery/prompts/fr/
2022-04-24 08:27:09 +00:00
Antonin Dupont
a13a57c6ee Translated using Weblate (French)
Currently translated at 98.6% (144 of 146 strings)

Translation: cannery/default
Translate-URL: https://weblate.bubbletea.dev/projects/cannery/default/fr/
2022-04-24 08:27:09 +00:00
Kaia Estra
8c7b9f9a9b Translated using Weblate (French)
All checks were successful
continuous-integration/drone/push Build is passing
Currently translated at 86.6% (26 of 30 strings)

Translation: cannery/errors
Translate-URL: https://weblate.bubbletea.dev/projects/cannery/errors/fr/
2022-04-23 07:52:35 +00:00
Antonin Dupont
7b7604f48f Translated using Weblate (French)
All checks were successful
continuous-integration/drone/push Build is passing
Currently translated at 100.0% (15 of 15 strings)

Translation: cannery/emails
Translate-URL: https://weblate.bubbletea.dev/projects/cannery/emails/fr/
2022-04-22 18:37:17 +00:00
Antonin Dupont
b1b52b9edc Translated using Weblate (French)
Currently translated at 69.6% (23 of 33 strings)

Translation: cannery/actions
Translate-URL: https://weblate.bubbletea.dev/projects/cannery/actions/fr/
2022-04-22 18:37:17 +00:00
Antonin Dupont
3fcea8e679 Translated using Weblate (French)
Currently translated at 76.6% (23 of 30 strings)

Translation: cannery/errors
Translate-URL: https://weblate.bubbletea.dev/projects/cannery/errors/fr/
2022-04-22 18:37:17 +00:00
Antonin Dupont
98ec324a2c Translated using Weblate (French)
Currently translated at 54.5% (24 of 44 strings)

Translation: cannery/prompts
Translate-URL: https://weblate.bubbletea.dev/projects/cannery/prompts/fr/
2022-04-22 18:37:17 +00:00
Antonin Dupont
0868789811 Translated using Weblate (French)
Currently translated at 16.4% (24 of 146 strings)

Translation: cannery/default
Translate-URL: https://weblate.bubbletea.dev/projects/cannery/default/fr/
2022-04-22 18:37:17 +00:00
Weblate
87c62f9ef8 Added translation using Weblate (French)
All checks were successful
continuous-integration/drone/push Build is passing
2022-04-20 18:02:37 +00:00
Weblate
0919ee2a72 Added translation using Weblate (French)
All checks were successful
continuous-integration/drone/push Build is passing
2022-04-20 18:02:36 +00:00
Weblate
0b910af077 Added translation using Weblate (French)
All checks were successful
continuous-integration/drone/push Build is passing
2022-04-20 18:02:35 +00:00
Weblate
cb81eb4116 Added translation using Weblate (French)
All checks were successful
continuous-integration/drone/push Build is passing
2022-04-20 18:02:35 +00:00
Weblate
b1d7cfe591 Added translation using Weblate (French)
All checks were successful
continuous-integration/drone/push Build is passing
2022-04-20 18:02:33 +00:00
1431b92e42 Added translation using Weblate (French) 2022-04-20 18:02:33 +00:00
11 changed files with 1670 additions and 3 deletions

View File

@ -1,3 +1,6 @@
# v0.5.1
- Add French translation: Thank you [duponin](https://udongein.xyz/users/duponin)!
# v0.5.0
- Add German translation: Thank you [Kaia](https://shitposter.club/users/kaia)!
- Fix not being able to edit ammo group when fully used up

View File

@ -110,6 +110,7 @@ In `dev` mode, Cannery will listen for these environment variables at runtime.
- `POOL_SIZE`: Controls the pool size to use with PostgreSQL. Defaults to `10`.
- `REGISTRATION`: Controls if user sign-up should be invite only or set to public. Set to `public` to enable public registration. Defaults to `invite`.
- `LOCALE`: Sets a custom locale. Defaults to `en_US`.
- Available options: `en_US`, `de`, and `fr`
## `MIX_ENV=test`
@ -142,3 +143,4 @@ Thank you so much for your contributions!
- shibao (https://misskey.bubbletea.dev/@shibao)
- kaia (https://shitposter.club/users/kaia)
- duponin (https://udongein.xyz/users/duponin)

View File

@ -63,7 +63,8 @@ You can use the following environment variables to configure Cannery in
with `docker run -it shibaobun/cannery mix phx.gen.secret` and set for server to start.
- `REGISTRATION`: Controls if user sign-up should be invite only or set to
public. Set to `public` to enable public registration. Defaults to `invite`.
- `LOCALE`: Sets a custom locale. Defaults to `en_US`.
- `LOCALE`: Sets a custom locale. Defaults to `en_US`
- Available options: `en_US`, `de`, and `fr`
- `SMTP_HOST`: The url for your SMTP email provider. Must be set
- `SMTP_PORT`: The port for your SMTP relay. Defaults to `587`.
- `SMTP_USERNAME`: The username for your SMTP relay. Must be set!

View File

@ -131,7 +131,7 @@ defmodule CanneryWeb.HomeLive do
to: "https://gitea.bubbletea.dev/shibao/cannery/src/branch/stable/CHANGELOG.md",
target: "_blank",
rel: "noopener noreferrer" do %>
<p>0.5.0</p>
<p>0.5.1</p>
<i class="fas fa-md fa-info-circle"></i>
<% end %>
</li>

View File

@ -4,7 +4,7 @@ defmodule Cannery.MixProject do
def project do
[
app: :cannery,
version: "0.5.0",
version: "0.5.1",
elixir: "1.13.4",
elixirc_paths: elixirc_paths(Mix.env()),
compilers: [:gettext] ++ Mix.compilers(),

View File

@ -0,0 +1,216 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-20 18:02+0000\n"
"PO-Revision-Date: 2022-04-24 08:27+0000\n"
"Last-Translator: Antonin Dupont <pwet@dupon.in>\n"
"Language-Team: French <https://weblate.bubbletea.dev/projects/cannery/"
"actions/fr/>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"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.12\n"
## This file is a PO Template file.
##
## "msgid"s here are often extracted from source code.
## Add new translations manually only if they're dynamic
## translations that can't be statically extracted.
##
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/ammo_group_live/index.ex:44
#, elixir-autogen, elixir-format
msgid "Add Ammo"
msgstr "ajouter munition"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:24
#, elixir-autogen, elixir-format
msgid "Add your first box!"
msgstr "Ajoutez votre première caisse !"
#: lib/cannery_web/live/container_live/index.html.heex:12
#, elixir-autogen, elixir-format
msgid "Add your first container!"
msgstr "Ajoutez votre premier conteneur!"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:12
#, elixir-autogen, elixir-format
msgid "Add your first type!"
msgstr "Ajoutez votre premier type!"
#: lib/cannery_web/templates/user_settings/edit.html.heex:16
#: lib/cannery_web/templates/user_settings/edit.html.heex:45
#, elixir-autogen, elixir-format
msgid "Change email"
msgstr "Changer le mél"
#: lib/cannery_web/templates/user_settings/edit.html.heex:60
#: lib/cannery_web/templates/user_settings/edit.html.heex:101
#, elixir-autogen, elixir-format
msgid "Change password"
msgstr "Changer le mot de passe"
#: lib/cannery_web/live/invite_live/index.html.heex:17
#, elixir-autogen, elixir-format
msgid "Create Invite"
msgstr "Créer une invitation"
#: lib/cannery_web/templates/user_settings/edit.html.heex:108
#, elixir-autogen, elixir-format
msgid "Delete User"
msgstr "Supprimer utilisateur"
#: lib/cannery_web/templates/user_registration/new.html.heex:43
#: lib/cannery_web/templates/user_reset_password/new.html.heex:3
#: lib/cannery_web/templates/user_session/new.html.heex:45
#, elixir-autogen, elixir-format
msgid "Forgot your password?"
msgstr "Mot de passe oublié?"
#: lib/cannery_web/live/invite_live/index.html.heex:12
#, elixir-autogen, elixir-format
msgid "Invite someone new!"
msgstr "Invitez une nouvelle personne!"
#: lib/cannery_web/components/topbar.ex:106
#: lib/cannery_web/templates/user_confirmation/new.html.heex:30
#: lib/cannery_web/templates/user_registration/new.html.heex:39
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:48
#: lib/cannery_web/templates/user_reset_password/new.html.heex:30
#: lib/cannery_web/templates/user_session/new.html.heex:3
#: lib/cannery_web/templates/user_session/new.html.heex:33
#, elixir-autogen, elixir-format
msgid "Log in"
msgstr "Se connecter"
#: lib/cannery_web/live/tag_live/index.html.heex:14
#, elixir-autogen, elixir-format
msgid "Make your first tag!"
msgstr "Faîtes votre premier tag!"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:42
#, elixir-autogen, elixir-format
msgid "New Ammo group"
msgstr "Nouveau groupe de munition"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:17
#, elixir-autogen, elixir-format
msgid "New Ammo type"
msgstr "Nouveau type de munition"
#: lib/cannery_web/live/container_live/index.html.heex:17
#, elixir-autogen, elixir-format
msgid "New Container"
msgstr "Nouveau conteneur"
#: lib/cannery_web/live/tag_live/index.html.heex:19
#, elixir-autogen, elixir-format
msgid "New Tag"
msgstr "Nouveau tag"
#: lib/cannery_web/components/topbar.ex:99
#: lib/cannery_web/templates/user_confirmation/new.html.heex:25
#: lib/cannery_web/templates/user_registration/new.html.heex:3
#: lib/cannery_web/templates/user_registration/new.html.heex:33
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:43
#: lib/cannery_web/templates/user_reset_password/new.html.heex:25
#: lib/cannery_web/templates/user_session/new.html.heex:40
#, elixir-autogen, elixir-format
msgid "Register"
msgstr "Senregistrer"
#: lib/cannery_web/templates/user_confirmation/new.html.heex:3
#: lib/cannery_web/templates/user_confirmation/new.html.heex:16
#, elixir-autogen, elixir-format
msgid "Resend confirmation instructions"
msgstr "Renvoyer les instructions de confirmation"
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:3
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:34
#, elixir-autogen, elixir-format
msgid "Reset password"
msgstr "Réinitialisé le mot de passe"
#: lib/cannery_web/components/add_shot_group_component.html.heex:46
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:73
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156
#: lib/cannery_web/live/container_live/form_component.html.heex:50
#: lib/cannery_web/live/invite_live/form_component.html.heex:28
#: lib/cannery_web/live/range_live/form_component.html.heex:40
#: lib/cannery_web/live/tag_live/form_component.ex:66
#, elixir-autogen, elixir-format
msgid "Save"
msgstr "Sauvegarder"
#: lib/cannery_web/templates/user_reset_password/new.html.heex:16
#, elixir-autogen, elixir-format
msgid "Send instructions to reset password"
msgstr "Envoyer les instructions pour réinitialiser le mot de passe"
#: lib/cannery_web/live/container_live/show.html.heex:53
#, elixir-autogen, elixir-format
msgid "Why not add one?"
msgstr "Pourquoi pas en ajouter un?"
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:52
#, elixir-autogen, elixir-format
msgid "Add"
msgstr "Ajouter"
#: lib/cannery_web/live/range_live/index.html.heex:17
#, elixir-autogen, elixir-format
msgid "Stage ammo"
msgstr "Munition préparée"
#: lib/cannery_web/live/range_live/index.html.heex:12
#, elixir-autogen, elixir-format
msgid "Why not get some ready to shoot?"
msgstr "Pourquoi pas en préparer pour tirer?"
#: lib/cannery_web/live/ammo_group_live/index.ex:134
#: lib/cannery_web/live/ammo_group_live/show.html.heex:86
#: lib/cannery_web/live/range_live/index.html.heex:36
#, elixir-autogen, elixir-format
msgid "Record shots"
msgstr "Enregistrer des tirs"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:50
#, elixir-autogen, elixir-format
msgid "Ammo Details"
msgstr "Détails de la munition"
#: lib/cannery_web/components/move_ammo_group_component.ex:89
#, elixir-autogen, elixir-format
msgid "Add another container!"
msgstr "Ajoutez un autre conteneur!"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:80
#, elixir-autogen, elixir-format
msgid "Move containers"
msgstr "Déplacer les conteneurs"
#: lib/cannery_web/components/move_ammo_group_component.ex:127
#, elixir-autogen, elixir-format
msgid "Select"
msgstr "Sélectionner"
#: lib/cannery_web/live/invite_live/index.html.heex:33
#, elixir-autogen, elixir-format
msgid "Copy to clipboard"
msgstr "Copier dans le presse-papier"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:18
#: lib/cannery_web/live/ammo_group_live/index.html.heex:36
#, elixir-autogen, elixir-format
msgid "add a container first"
msgstr "ajouter un conteneur en premier"
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:66
#, elixir-autogen, elixir-format
msgid "Create"
msgstr "Créer"

View File

@ -0,0 +1,851 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-20 18:02+0000\n"
"PO-Revision-Date: 2022-04-25 00:12+0000\n"
"Last-Translator: shibao <shibao@bubbletea.dev>\n"
"Language-Team: French <https://weblate.bubbletea.dev/projects/cannery/"
"default/fr/>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"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.12\n"
## This file is a PO Template file.
##
## "msgid"s here are often extracted from source code.
## Add new translations manually only if they're dynamic
## translations that can't be statically extracted.
##
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/home_live.ex:61
#, elixir-autogen, elixir-format
msgid "%{name} lets you easily keep an eye on your ammo levels before and after range day"
msgstr ""
"%{name} vous permet de facilement garder un œil sur votre niveau de munition "
"avant et après une journée de stand"
#: lib/cannery_web/live/home_live.ex:83
#, elixir-autogen, elixir-format
msgid "Access from any internet-capable device"
msgstr "Accédez depuis nimporte quel appareil connecté à internet"
#: lib/cannery_web/live/invite_live/index.html.heex:90
#, elixir-autogen, elixir-format
msgid "Admins"
msgstr "Administrateur·ices"
#: lib/cannery_web/live/home_live.ex:97
#, elixir-autogen, elixir-format
msgid "Admins:"
msgstr "Administrateur·ices:"
#: lib/cannery_web/components/topbar.ex:50
#: lib/cannery_web/live/ammo_group_live/index.html.heex:3
#: lib/cannery_web/live/range_live/index.ex:82
#, elixir-autogen, elixir-format
msgid "Ammo"
msgstr "Munition"
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
#: lib/cannery_web/live/ammo_group_live/index.ex:80
#, elixir-autogen, elixir-format
msgid "Ammo type"
msgstr "Type de munition"
#: lib/cannery_web/live/ammo_type_live/index.ex:87
#: lib/cannery_web/live/ammo_type_live/show.html.heex:92
#, elixir-autogen, elixir-format
msgid "Average Price paid"
msgstr "Prix acheté moyen"
#: lib/cannery_web/live/tag_live/form_component.ex:54
#, elixir-autogen, elixir-format
msgid "Background color"
msgstr "Couleur de fond"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
#: lib/cannery_web/live/ammo_type_live/index.ex:71
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53
#, elixir-autogen, elixir-format
msgid "Blank"
msgstr "Vide"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:68
#, elixir-autogen, elixir-format
msgid "Brass"
msgstr "Cuivre"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:53
#: lib/cannery_web/live/ammo_type_live/show.html.heex:39
#, elixir-autogen, elixir-format
msgid "Bullet core"
msgstr "Noyau de balle"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
#: lib/cannery_web/live/ammo_type_live/index.ex:52
#: lib/cannery_web/live/ammo_type_live/show.html.heex:38
#, elixir-autogen, elixir-format
msgid "Bullet type"
msgstr "Type de balle"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
#: lib/cannery_web/live/ammo_type_live/index.ex:55
#: lib/cannery_web/live/ammo_type_live/show.html.heex:41
#, elixir-autogen, elixir-format
msgid "Caliber"
msgstr "Calibre"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
#: lib/cannery_web/live/ammo_type_live/index.ex:54
#: lib/cannery_web/live/ammo_type_live/show.html.heex:40
#, elixir-autogen, elixir-format
msgid "Cartridge"
msgstr "Cartouche"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
#: lib/cannery_web/live/ammo_type_live/index.ex:56
#: lib/cannery_web/live/ammo_type_live/show.html.heex:42
#, elixir-autogen, elixir-format
msgid "Case material"
msgstr "Matériau de la caisse"
#: lib/cannery_web/components/move_ammo_group_component.ex:67
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48
#: lib/cannery_web/live/ammo_group_live/index.ex:85
#, elixir-autogen, elixir-format
msgid "Container"
msgstr "Conteneur"
#: lib/cannery_web/components/topbar.ex:44
#: lib/cannery_web/live/container_live/index.ex:38
#: lib/cannery_web/live/container_live/index.html.heex:3
#, elixir-autogen, elixir-format
msgid "Containers"
msgstr "Conteneurs"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
#: lib/cannery_web/live/ammo_type_live/index.ex:72
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54
#, elixir-autogen, elixir-format
msgid "Corrosive"
msgstr "Corrosive"
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
#: lib/cannery_web/live/ammo_group_live/index.ex:81
#, elixir-autogen, elixir-format
msgid "Count"
msgstr "Quantité"
#: lib/cannery_web/components/ammo_group_card.ex:29
#: lib/cannery_web/live/ammo_group_live/show.html.heex:8
#, elixir-autogen, elixir-format
msgid "Count:"
msgstr "Quantité:"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24
#: lib/cannery_web/live/container_live/form_component.html.heex:27
#, elixir-autogen, elixir-format
msgid "Description"
msgstr "Description"
#: lib/cannery_web/components/container_card.ex:31
#: lib/cannery_web/live/container_live/show.html.heex:8
#, elixir-autogen, elixir-format
msgid "Description:"
msgstr "Description:"
#: lib/cannery_web/live/invite_live/index.html.heex:59
#, elixir-autogen, elixir-format
msgid "Disable"
msgstr "Désactiver"
#: lib/cannery_web/live/home_live.ex:58
#, elixir-autogen, elixir-format
msgid "Easy to Use:"
msgstr "Simple à utiliser:"
#: lib/cannery_web/live/ammo_group_live/index.ex:38
#: lib/cannery_web/live/ammo_group_live/show.ex:42
#, elixir-autogen, elixir-format
msgid "Edit Ammo group"
msgstr "Éditer le groupe de munition"
#: lib/cannery_web/live/ammo_type_live/index.ex:23
#: lib/cannery_web/live/ammo_type_live/show.ex:47
#, elixir-autogen, elixir-format
msgid "Edit Ammo type"
msgstr "Éditer le type de munition"
#: lib/cannery_web/live/invite_live/index.ex:35
#, elixir-autogen, elixir-format
msgid "Edit Invite"
msgstr "Modifier linvitation"
#: lib/cannery_web/live/tag_live/index.ex:23
#, elixir-autogen, elixir-format
msgid "Edit Tag"
msgstr "Modifier le tag"
#: lib/cannery_web/live/invite_live/index.html.heex:63
#, elixir-autogen, elixir-format
msgid "Enable"
msgstr "Activer"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Example bullet type abbreviations"
msgstr "Exemple dabréviations de type de balle"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:40
#, elixir-autogen, elixir-format
msgid "FMJ"
msgstr "FMJ"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
#: lib/cannery_web/live/ammo_type_live/index.ex:65
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47
#, elixir-autogen, elixir-format
msgid "Grains"
msgstr "Graines"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
#: lib/cannery_web/live/ammo_type_live/index.ex:70
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52
#, elixir-autogen, elixir-format
msgid "Incendiary"
msgstr "Incendiaire"
#: lib/cannery_web/live/home_live.ex:92
#, elixir-autogen, elixir-format
msgid "Instance Information"
msgstr "Information de linstance"
#: lib/cannery_web/components/invite_card.ex:25
#, elixir-autogen, elixir-format
msgid "Invite Disabled"
msgstr "Invitation désactivée"
#: lib/cannery_web/live/home_live.ex:123
#, elixir-autogen, elixir-format
msgid "Invite Only"
msgstr "Uniquement sur invitation"
#: lib/cannery_web/components/topbar.ex:69
#: lib/cannery_web/live/invite_live/index.ex:43
#: lib/cannery_web/live/invite_live/index.html.heex:3
#, elixir-autogen, elixir-format
msgid "Invites"
msgstr "Invitations"
#: lib/cannery_web/templates/user_session/new.html.heex:28
#, elixir-autogen, elixir-format
msgid "Keep me logged in for 60 days"
msgstr "Me garder authentifié durant 60 jours"
#: lib/cannery_web/components/move_ammo_group_component.ex:69
#: lib/cannery_web/live/container_live/form_component.html.heex:42
#, elixir-autogen, elixir-format
msgid "Location"
msgstr "Localisation"
#: lib/cannery_web/components/container_card.ex:43
#: lib/cannery_web/live/container_live/show.html.heex:20
#, elixir-autogen, elixir-format
msgid "Location:"
msgstr "Localisation:"
#: lib/cannery_web/live/container_live/form_component.html.heex:38
#, elixir-autogen, elixir-format
msgid "Magazine, Clip, Ammo Box, etc"
msgstr "Chargeur, lame-chargeur, boite de munition, etc."
#: lib/cannery_web/components/topbar.ex:56
#, elixir-autogen, elixir-format
msgid "Manage"
msgstr "Gérer"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
#: lib/cannery_web/live/ammo_type_live/index.ex:73
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55
#, elixir-autogen, elixir-format
msgid "Manufacturer"
msgstr "Fabricant"
#: lib/cannery_web/live/container_live/form_component.html.heex:31
#, elixir-autogen, elixir-format
msgid "Metal ammo can with the anime girl sticker"
msgstr "Boite de munition avec le sticker de fille danimation"
#: lib/cannery_web/live/container_live/form_component.html.heex:23
#, elixir-autogen, elixir-format
msgid "My cool ammo can"
msgstr "Ma superbe boite de munition"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20
#: lib/cannery_web/live/ammo_type_live/index.ex:51
#: lib/cannery_web/live/container_live/form_component.html.heex:20
#: lib/cannery_web/live/invite_live/form_component.html.heex:20
#: lib/cannery_web/live/tag_live/form_component.ex:50
#, elixir-autogen, elixir-format
msgid "Name"
msgstr "Nom"
#: lib/cannery_web/live/ammo_type_live/index.ex:29
#, elixir-autogen, elixir-format
msgid "New Ammo type"
msgstr "Nouveau type de munition"
#: lib/cannery_web/live/container_live/index.ex:33
#, elixir-autogen, elixir-format
msgid "New Container"
msgstr "Nouveau conteneur"
#: lib/cannery_web/live/invite_live/index.ex:39
#, elixir-autogen, elixir-format
msgid "New Invite"
msgstr "Nouvelle invitation"
#: lib/cannery_web/live/tag_live/index.ex:29
#, elixir-autogen, elixir-format
msgid "New Tag"
msgstr "Nouveau tag"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:8
#, elixir-autogen, elixir-format
msgid "No Ammo"
msgstr "Aucune munition"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:8
#, elixir-autogen, elixir-format
msgid "No Ammo Types"
msgstr "Aucun type de munition"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:112
#, elixir-autogen, elixir-format
msgid "No ammo for this type"
msgstr "Aucune munition pour ce type"
#: lib/cannery_web/live/container_live/show.html.heex:78
#, elixir-autogen, elixir-format
msgid "No ammo groups in this container"
msgstr "Aucun groupe de munition pour ce conteneur"
#: lib/cannery_web/live/container_live/index.html.heex:8
#, elixir-autogen, elixir-format
msgid "No containers"
msgstr "Aucun conteneur"
#: lib/cannery_web/live/invite_live/index.html.heex:8
#, elixir-autogen, elixir-format
msgid "No invites"
msgstr "Aucune invitation"
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:30
#: lib/cannery_web/live/tag_live/index.html.heex:10
#, elixir-autogen, elixir-format
msgid "No tags"
msgstr "Aucun tag"
#: lib/cannery_web/components/add_shot_group_component.html.heex:30
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41
#: lib/cannery_web/live/ammo_group_live/show.ex:90
#: lib/cannery_web/live/range_live/form_component.html.heex:29
#: lib/cannery_web/live/range_live/index.ex:84
#, elixir-autogen, elixir-format
msgid "Notes"
msgstr "Notes"
#: lib/cannery_web/components/ammo_group_card.ex:35
#: lib/cannery_web/live/ammo_group_live/show.html.heex:24
#, elixir-autogen, elixir-format
msgid "Notes:"
msgstr "Notes:"
#: lib/cannery_web/live/container_live/form_component.html.heex:46
#, elixir-autogen, elixir-format
msgid "On the bookshelf"
msgstr "Sur létagère"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
#: lib/cannery_web/live/ammo_type_live/index.ex:66
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48
#, elixir-autogen, elixir-format
msgid "Pressure"
msgstr "Pression"
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
#: lib/cannery_web/live/ammo_group_live/index.ex:82
#, elixir-autogen, elixir-format
msgid "Price paid"
msgstr "Prix payé"
#: lib/cannery_web/components/ammo_group_card.ex:42
#, elixir-autogen, elixir-format
msgid "Price paid:"
msgstr "Prix payé:"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
#: lib/cannery_web/live/ammo_type_live/index.ex:67
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49
#, elixir-autogen, elixir-format
msgid "Primer type"
msgstr "Type damorce"
#: lib/cannery_web/live/home_live.ex:122
#, elixir-autogen, elixir-format
msgid "Public Signups"
msgstr "Enregistrements publics"
#: lib/cannery_web/live/home_live.ex:70
#, elixir-autogen, elixir-format
msgid "Secure:"
msgstr "Sécurisé:"
#: lib/cannery_web/live/home_live.ex:73
#, elixir-autogen, elixir-format
msgid "Self-host your own instance, or use an instance from someone you trust."
msgstr ""
"Auto-hébergez votre propre instance ou utilisez celle dune personne à "
"laquelle vous faîtes confiance."
#: lib/cannery_web/live/invite_live/index.html.heex:79
#, elixir-autogen, elixir-format
msgid "Set Unlimited"
msgstr "Mettre illimité"
#: lib/cannery_web/controllers/user_settings_controller.ex:10
#: lib/cannery_web/templates/user_settings/edit.html.heex:3
#, elixir-autogen, elixir-format
msgid "Settings"
msgstr "Paramètres"
#: lib/cannery_web/live/ammo_group_live/show.ex:41
#, elixir-autogen, elixir-format
msgid "Show Ammo group"
msgstr "Montrer le groupe de munition"
#: lib/cannery_web/live/ammo_type_live/show.ex:46
#, elixir-autogen, elixir-format
msgid "Show Ammo type"
msgstr "Montrer le type de munition"
#: lib/cannery_web/live/home_live.ex:80
#, elixir-autogen, elixir-format
msgid "Simple:"
msgstr "Simple:"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:47
#, elixir-autogen, elixir-format
msgid "Steel"
msgstr "Acier"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:98
#, elixir-autogen, elixir-format
msgid "Stored in"
msgstr "Est stocké dans"
#: lib/cannery_web/components/topbar.ex:38
#: lib/cannery_web/live/tag_live/index.ex:34
#: lib/cannery_web/live/tag_live/index.html.heex:3
#, elixir-autogen, elixir-format
msgid "Tags"
msgstr "Tags"
#: lib/cannery_web/live/tag_live/index.html.heex:6
#, elixir-autogen, elixir-format
msgid "Tags can be added to your containers to help you organize"
msgstr ""
"Des tags peuvent être ajouté sur vos conteneurs pour vous aider à vous "
"organiser"
#: lib/cannery_web/live/tag_live/form_component.ex:60
#, elixir-autogen, elixir-format
msgid "Text color"
msgstr "Couleur du texte"
#: lib/cannery_web/live/home_live.ex:49
#, elixir-autogen, elixir-format
msgid "The self-hosted firearm tracker website"
msgstr "Le site web de suivi darme à feux auto-hébergé"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:103
#, elixir-autogen, elixir-format
msgid "This ammo group is not in a container"
msgstr "Ce groupe de munition nest pas dans un conteneur"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
#: lib/cannery_web/live/ammo_type_live/index.ex:69
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51
#, elixir-autogen, elixir-format
msgid "Tracer"
msgstr "Traceuse"
#: lib/cannery_web/components/move_ammo_group_component.ex:68
#: lib/cannery_web/live/container_live/form_component.html.heex:35
#, elixir-autogen, elixir-format
msgid "Type"
msgstr "Type"
#: lib/cannery_web/components/container_card.ex:37
#: lib/cannery_web/live/container_live/show.html.heex:14
#, elixir-autogen, elixir-format
msgid "Type:"
msgstr "Type:"
#: lib/cannery_web/live/invite_live/index.html.heex:119
#, elixir-autogen, elixir-format
msgid "Users"
msgstr "Utilisateurs"
#: lib/cannery_web/components/invite_card.ex:20
#, elixir-autogen, elixir-format
msgid "Uses Left:"
msgstr "Utilisations restantes:"
#: lib/cannery_web/live/invite_live/form_component.html.heex:24
#, elixir-autogen, elixir-format
msgid "Uses left"
msgstr "Utilisations restantes"
#: lib/cannery_web/live/home_live.ex:45
#, elixir-autogen, elixir-format
msgid "Welcome to %{name}"
msgstr "Bienvenue à %{name}"
#: lib/cannery_web/live/home_live.ex:74
#, elixir-autogen, elixir-format
msgid "Your data stays with you, period"
msgstr "Vos données restent avec vous, point final"
#: lib/cannery_web/live/container_live/show.html.heex:49
#, elixir-autogen, elixir-format
msgid "No tags for this container"
msgstr "Aucun tag pour ce conteneur"
#: lib/cannery_web/components/topbar.ex:62
#: lib/cannery_web/live/ammo_group_live/index.ex:84
#, elixir-autogen, elixir-format
msgid "Range"
msgstr "Portée"
#: lib/cannery_web/live/range_live/index.html.heex:3
#, elixir-autogen, elixir-format
msgid "Range day"
msgstr "Journée de stand"
#: lib/cannery_web/live/ammo_group_live/show.ex:91
#: lib/cannery_web/live/range_live/index.ex:85
#, elixir-autogen, elixir-format
msgid "Date"
msgstr "Date"
#: lib/cannery_web/live/range_live/form_component.html.heex:21
#, elixir-autogen, elixir-format
msgid "Shots fired"
msgstr "Tirs réalisés"
#: lib/cannery_web/live/range_live/index.html.heex:8
#, elixir-autogen, elixir-format
msgid "No ammo staged"
msgstr "Aucune munition sélectionnée"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:77
#: lib/cannery_web/live/range_live/index.html.heex:33
#, elixir-autogen, elixir-format
msgid "Stage for range"
msgstr "Sélectionné pour le stand"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:76
#: lib/cannery_web/live/range_live/index.html.heex:32
#, elixir-autogen, elixir-format
msgid "Unstage from range"
msgstr "Désélectionner pour le stand"
#: lib/cannery_web/components/add_shot_group_component.html.heex:3
#: lib/cannery_web/live/ammo_group_live/index.ex:26
#, elixir-autogen, elixir-format
msgid "Record shots"
msgstr "Tirs enregistrés"
#: lib/cannery_web/live/ammo_type_live/index.html.heex:3
#, elixir-autogen, elixir-format
msgid "Ammo Types"
msgstr "Types de munition"
#: lib/cannery_web/live/ammo_group_live/index.ex:49
#, elixir-autogen, elixir-format
msgid "Ammo groups"
msgstr "Groupes de munition"
#: lib/cannery_web/components/add_shot_group_component.html.heex:38
#: lib/cannery_web/live/range_live/form_component.html.heex:36
#, elixir-autogen, elixir-format
msgid "Date (UTC)"
msgstr "Date (UTC)"
#: lib/cannery_web/live/ammo_group_live/show.ex:39
#: lib/cannery_web/live/range_live/index.ex:34
#, elixir-autogen, elixir-format
msgid "Edit Shot Records"
msgstr "Modifier les enregistrements de tir"
#: lib/cannery_web/live/range_live/index.ex:40
#, elixir-autogen, elixir-format
msgid "New Shot Records"
msgstr "Nouveaux enregistrements de tir"
#: lib/cannery_web/live/range_live/index.html.heex:48
#, elixir-autogen, elixir-format
msgid "No shots recorded"
msgstr "Aucun tir enregistré"
#: lib/cannery_web/components/add_shot_group_component.html.heex:21
#, elixir-autogen, elixir-format
msgid "Rounds left"
msgstr "Cartouches restantes"
#: lib/cannery_web/live/ammo_group_live/show.ex:89
#: lib/cannery_web/live/range_live/index.ex:83
#, elixir-autogen, elixir-format
msgid "Rounds shot"
msgstr "Cartouches tirées"
#: lib/cannery_web/live/range_live/index.ex:46
#, elixir-autogen, elixir-format
msgid "Shot Records"
msgstr "Enregistrements de tir"
#: lib/cannery_web/live/ammo_group_live/index.ex:32
#: lib/cannery_web/live/ammo_group_live/show.ex:40
#, elixir-autogen, elixir-format
msgid "Move Ammo group"
msgstr "Déplacer le groupe de munition"
#: lib/cannery_web/components/move_ammo_group_component.ex:80
#, elixir-autogen, elixir-format
msgid "Move ammo"
msgstr "Déplacer munition"
#: lib/cannery_web/components/move_ammo_group_component.ex:85
#, elixir-autogen, elixir-format
msgid "No other containers"
msgstr "Aucun autre conteneur"
#: lib/cannery_web/live/range_live/index.html.heex:53
#, elixir-autogen, elixir-format
msgid "Shot log"
msgstr "Évènements de tir"
#: lib/cannery_web/components/ammo_group_card.ex:43
#: lib/cannery_web/live/ammo_group_live/index.ex:117
#: lib/cannery_web/live/ammo_group_live/show.html.heex:32
#: lib/cannery_web/live/ammo_group_live/show.html.heex:39
#: lib/cannery_web/live/ammo_type_live/index.ex:114
#: lib/cannery_web/live/ammo_type_live/show.html.heex:96
#, elixir-autogen, elixir-format
msgid "$%{amount}"
msgstr "%{amount}$"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:75
#, elixir-autogen, elixir-format
msgid "Bimetal"
msgstr "Bi-métal"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
#: lib/cannery_web/live/ammo_type_live/index.ex:57
#: lib/cannery_web/live/ammo_type_live/show.html.heex:43
#, elixir-autogen, elixir-format
msgid "Jacket type"
msgstr "Type de douille"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
#: lib/cannery_web/live/ammo_type_live/index.ex:58
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44
#, elixir-autogen, elixir-format
msgid "Muzzle velocity"
msgstr "Vélocité du canon"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
#: lib/cannery_web/live/ammo_type_live/index.ex:61
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46
#, elixir-autogen, elixir-format
msgid "Powder grains per charge"
msgstr "Graines de poudre par charge"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
#: lib/cannery_web/live/ammo_type_live/index.ex:59
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45
#, elixir-autogen, elixir-format
msgid "Powder type"
msgstr "Type de poudre"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
#: lib/cannery_web/live/ammo_type_live/index.ex:74
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56
#, elixir-autogen, elixir-format
msgid "UPC"
msgstr "UPC"
#: lib/cannery_web/templates/user_settings/edit.html.heex:80
#, elixir-autogen, elixir-format
msgid "Confirm new password"
msgstr "Confirmez le nouveau mot de passe"
#: lib/cannery_web/templates/user_settings/edit.html.heex:33
#: lib/cannery_web/templates/user_settings/edit.html.heex:89
#, elixir-autogen, elixir-format
msgid "Current password"
msgstr "Mot de passe actuel"
#: lib/cannery_web/templates/user_settings/edit.html.heex:73
#, elixir-autogen, elixir-format
msgid "New password"
msgstr "Nouveau mot de passe"
#: lib/cannery_web/live/ammo_group_live/index.ex:131
#, elixir-autogen, elixir-format
msgid "Stage"
msgstr "Sélectionné"
#: lib/cannery_web/live/ammo_group_live/index.ex:131
#, elixir-autogen, elixir-format
msgid "Unstage"
msgstr "Désélectionner"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
#: lib/cannery_web/live/ammo_type_live/index.ex:68
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50
#, elixir-autogen, elixir-format
msgid "Firing type"
msgstr "Type dallumage"
#: lib/cannery_web/templates/layout/live.html.heex:50
#, elixir-autogen, elixir-format
msgid "Reconnecting..."
msgstr "Reconnexion en cours…"
#: lib/cannery_web/templates/layout/live.html.heex:37
#, elixir-autogen, elixir-format
msgid "Loading..."
msgstr "Chargement en cours…"
#: lib/cannery_web/live/container_live/index.ex:29
#: lib/cannery_web/live/container_live/show.ex:97
#, elixir-autogen, elixir-format
msgid "Edit %{name}"
msgstr "Éditer %{name}"
#: lib/cannery_web/live/container_live/index.ex:48
#: lib/cannery_web/live/container_live/show.ex:98
#, elixir-autogen, elixir-format
msgid "Edit %{name} tags"
msgstr "Éditer les tags de %{name}"
#: lib/cannery_web/components/container_card.ex:50
#, elixir-autogen, elixir-format
msgid "Rounds:"
msgstr "Cartouches:"
#: lib/cannery_web/live/container_live/show.ex:96
#, elixir-autogen, elixir-format
msgid "Show %{name}"
msgstr "Montrer %{name}"
#: lib/cannery_web/live/ammo_type_live/index.ex:113
#: lib/cannery_web/live/ammo_type_live/show.html.heex:102
#, elixir-autogen, elixir-format
msgid "No cost information"
msgstr "Aucune information de prix"
#: lib/cannery_web/live/ammo_group_live/index.ex:83
#, elixir-autogen, elixir-format
msgid "% left"
msgstr "%restante"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:38
#, elixir-autogen, elixir-format
msgid "Current value:"
msgstr "Valeur actuelle:"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:31
#, elixir-autogen, elixir-format
msgid "Original cost:"
msgstr "Coût original:"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:13
#, elixir-autogen, elixir-format
msgid "Original count:"
msgstr "Nombre original:"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:18
#, elixir-autogen, elixir-format
msgid "Percentage left:"
msgstr "Pourcentage restant:"
#: lib/cannery_web/live/ammo_group_live/show.html.heex:111
#, elixir-autogen, elixir-format
msgid "Rounds used"
msgstr "Cartouches utilisées"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:75
#, elixir-autogen, elixir-format
msgid "Current # of rounds:"
msgstr "Quantité actuelle de cartouches:"
#: lib/cannery_web/live/ammo_type_live/index.ex:86
#, elixir-autogen, elixir-format
msgid "Total # of rounds"
msgstr "Quantité de cartouches"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:83
#, elixir-autogen, elixir-format
msgid "Total rounds shot:"
msgstr "Nombre totale de cartouches tirées:"
#: lib/cannery_web/controllers/user_confirmation_controller.ex:8
#, elixir-autogen, elixir-format
msgid "Confirm your account"
msgstr "Confirmez votre compte"
#: lib/cannery_web/controllers/user_reset_password_controller.ex:9
#, elixir-autogen, elixir-format
msgid "Forgot your password?"
msgstr "Mot de passe oublié?"
#: lib/cannery_web/controllers/user_session_controller.ex:8
#, elixir-autogen, elixir-format
msgid "Log in"
msgstr "Se connecter"
#: lib/cannery_web/controllers/user_registration_controller.ex:35
#, elixir-autogen, elixir-format
msgid "Register"
msgstr "Senregistrer"
#: lib/cannery_web/controllers/user_reset_password_controller.ex:36
#, elixir-autogen, elixir-format
msgid "Reset your password"
msgstr "Réinitialiser votre mot de passe"
#: lib/cannery_web/live/ammo_group_live/show.ex:38
#: lib/cannery_web/live/range_live/index.ex:28
#, elixir-autogen, elixir-format
msgid "Record Shots"
msgstr "Enregistrer des tirs"
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:58
#, elixir-autogen, elixir-format
msgid "Copies"
msgstr "Exemplaires"
#: lib/cannery_web/live/ammo_type_live/index.ex:34
#, elixir-autogen, elixir-format
msgid "Ammo types"
msgstr "Types de munition"

View File

@ -0,0 +1,116 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-20 18:02+0000\n"
"PO-Revision-Date: 2022-04-22 18:37+0000\n"
"Last-Translator: Antonin Dupont <pwet@dupon.in>\n"
"Language-Team: French <https://weblate.bubbletea.dev/projects/cannery/emails/"
"fr/>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"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.11.2\n"
## This file is a PO Template file.
##
## "msgid"s here are often extracted from source code.
## Add new translations manually only if they're dynamic
## translations that can't be statically extracted.
##
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#: lib/cannery/accounts/email.ex:30
#, elixir-autogen, elixir-format
msgid "Confirm your %{name} account"
msgstr "Confirmer votre compte %{name}"
#: lib/cannery_web/templates/email/confirm_email.html.eex:3
#: lib/cannery_web/templates/email/confirm_email.txt.eex:2
#: lib/cannery_web/templates/email/reset_password.html.eex:3
#: lib/cannery_web/templates/email/reset_password.txt.eex:2
#: lib/cannery_web/templates/email/update_email.html.eex:3
#: lib/cannery_web/templates/email/update_email.txt.eex:2
#, elixir-autogen, elixir-format
msgid "Hi %{email},"
msgstr "Salut %{email},"
#: lib/cannery_web/templates/email/confirm_email.txt.eex:10
#, elixir-autogen, elixir-format
msgid "If you didn't create an account at %{url}, please ignore this."
msgstr "Si vous navez créé un compte à %{url}, veuillez ignorer ceci."
#: lib/cannery_web/templates/email/reset_password.txt.eex:8
#: lib/cannery_web/templates/email/update_email.txt.eex:8
#, elixir-autogen, elixir-format
msgid "If you didn't request this change from %{url}, please ignore this."
msgstr ""
"Si vous navez pas demandé ce changement depuis %{url}, veuillez ignorer "
"ceci."
#: lib/cannery/accounts/email.ex:37
#, elixir-autogen, elixir-format
msgid "Reset your %{name} password"
msgstr "Réinitialiser votre mot de passe %{name}"
#: lib/cannery/accounts/email.ex:44
#, elixir-autogen, elixir-format
msgid "Update your %{name} email"
msgstr "Mettre à jour votre mél %{name}"
#: lib/cannery_web/templates/email/confirm_email.html.eex:9
#, elixir-autogen, elixir-format
msgid "Welcome to %{name}!"
msgstr "Bienvenue à %{name}!"
#: lib/cannery_web/templates/email/confirm_email.txt.eex:4
#, elixir-autogen, elixir-format
msgid "Welcome to %{name}%!"
msgstr "Bienvenue à %{name}%!"
#: lib/cannery_web/templates/email/update_email.html.eex:8
#: lib/cannery_web/templates/email/update_email.txt.eex:4
#, elixir-autogen, elixir-format
msgid "You can change your email by visiting the URL below:"
msgstr "Vous pouvez changer votre mél en consultant lURL ci-dessous:"
#: lib/cannery_web/templates/email/confirm_email.html.eex:14
#: lib/cannery_web/templates/email/confirm_email.txt.eex:6
#, elixir-autogen, elixir-format
msgid "You can confirm your account by visiting the URL below:"
msgstr "Vous pouvez confirmer votre compte en consultant lURL ci-dessous:"
#: lib/cannery_web/templates/email/reset_password.html.eex:8
#: lib/cannery_web/templates/email/reset_password.txt.eex:4
#, elixir-autogen, elixir-format
msgid "You can reset your password by visiting the URL below:"
msgstr ""
"Vous pouvez réinitialiser votre mot de passe en visitant lURL ci-dessous:"
#: lib/cannery_web/templates/email/confirm_email.html.eex:22
#, elixir-autogen, elixir-format
msgid "If you didn't create an account at %{name}, please ignore this."
msgstr "Si vous navez pas créé de compte à %{name}, veuillez ignorer ceci."
#: lib/cannery_web/templates/email/reset_password.html.eex:16
#: lib/cannery_web/templates/email/update_email.html.eex:16
#, elixir-autogen, elixir-format
msgid "If you didn't request this change from %{name}, please ignore this."
msgstr ""
"Si vous navez pas demandé ce changement depuis %{name}, veuillez ignorer "
"ceci."
#: lib/cannery_web/templates/layout/email.txt.eex:9
#, elixir-autogen, elixir-format
msgid "This email was sent from %{name} at %{url}, the self-hosted firearm tracker website."
msgstr ""
"Ce mél a été envoyé depuis %{name} à %{url}, le site web de suivi darme à "
"feux."
#: lib/cannery_web/templates/layout/email.html.heex:13
#, elixir-autogen, elixir-format
msgid "This email was sent from %{name}, the self-hosted firearm tracker website."
msgstr "Ce mél a été envoyé depuis %{name}, le site web de suivi darme à feu."

View File

@ -0,0 +1,186 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-20 18:02+0000\n"
"PO-Revision-Date: 2022-04-24 08:27+0000\n"
"Last-Translator: Antonin Dupont <pwet@dupon.in>\n"
"Language-Team: French <https://weblate.bubbletea.dev/projects/cannery/errors/"
"fr/>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"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.12\n"
## This file is a PO Template file.
##
## "msgid"s here are often extracted from source code.
## Add new translations manually only if they're dynamic
## translations that can't be statically extracted.
##
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#: lib/cannery/containers.ex:122
#, elixir-autogen, elixir-format
msgid "Container must be empty before deleting"
msgstr "Le conteneur doit être vide pour être supprimé"
#: lib/cannery_web/live/container_live/index.ex:71
#: lib/cannery_web/live/container_live/show.ex:73
#, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}"
msgstr "Impossible de supprimer %{name} : %{error}"
#: lib/cannery_web/live/container_live/index.ex:59
#, elixir-autogen, elixir-format
msgid "Could not find that container"
msgstr "Impossible de trouver ce conteneur"
#: lib/cannery_web/controllers/user_settings_controller.ex:67
#, elixir-autogen, elixir-format
msgid "Email change link is invalid or it has expired."
msgstr "Le lien de changement de mél est invalide ou a expiré."
#: lib/cannery_web/templates/error/error.html.heex:8
#, elixir-autogen, elixir-format
msgid "Error"
msgstr "Erreur"
#: lib/cannery_web/templates/error/error.html.heex:28
#, elixir-autogen, elixir-format
msgid "Go back home"
msgstr "Retour au menu principal"
#: lib/cannery_web/views/error_view.ex:11
#, elixir-autogen, elixir-format
msgid "Internal Server Error"
msgstr "Erreur interne du serveur"
#: lib/cannery_web/controllers/user_session_controller.ex:17
#, elixir-autogen, elixir-format
msgid "Invalid email or password"
msgstr "Mél ou mot de passe invalide"
#: lib/cannery_web/views/error_view.ex:9
#, elixir-autogen, elixir-format
msgid "Not found"
msgstr "Pas trouvé"
#: lib/cannery_web/templates/user_registration/new.html.heex:16
#: lib/cannery_web/templates/user_reset_password/edit.html.heex:16
#: lib/cannery_web/templates/user_settings/edit.html.heex:22
#: lib/cannery_web/templates/user_settings/edit.html.heex:66
#, elixir-autogen, elixir-format
msgid "Oops, something went wrong! Please check the errors below."
msgstr ""
"Oups, quelque chose sest mal passé! Veuillez vérifier les erreurs en "
"dessous."
#: lib/cannery_web/controllers/user_reset_password_controller.ex:63
#, elixir-autogen, elixir-format
msgid "Reset password link is invalid or it has expired."
msgstr "Le lien de réinitialisation de mot de passe est invalide ou expiré."
#: lib/cannery_web/controllers/user_registration_controller.ex:25
#: lib/cannery_web/controllers/user_registration_controller.ex:56
#, elixir-autogen, elixir-format
msgid "Sorry, public registration is disabled"
msgstr "Désolé, lenregistrement public est désactivé"
#: lib/cannery_web/controllers/user_registration_controller.ex:15
#: lib/cannery_web/controllers/user_registration_controller.ex:46
#, elixir-autogen, elixir-format
msgid "Sorry, this invite was not found or expired"
msgstr "Désolé, cette invitation nest pas trouvée ou est expirée"
#: lib/cannery_web/controllers/user_settings_controller.ex:82
#, elixir-autogen, elixir-format
msgid "Unable to delete user"
msgstr "Impossible de supprimer lutilisateur·ice"
#: lib/cannery_web/views/error_view.ex:10
#, elixir-autogen, elixir-format
msgid "Unauthorized"
msgstr "Non autorisé·e"
#: lib/cannery_web/controllers/user_confirmation_controller.ex:54
#, elixir-autogen, elixir-format
msgid "User confirmation link is invalid or it has expired."
msgstr "Le lien de confirmation dutilisateur·ice est invalide ou a expiré."
#: lib/cannery_web/live/invite_live/index.ex:20
#, elixir-autogen, elixir-format
msgid "You are not authorized to view this page"
msgstr "Vous nêtes pas autorisé·e à voir cette page"
#: lib/cannery_web/controllers/user_auth.ex:177
#, elixir-autogen, elixir-format
msgid "You are not authorized to view this page."
msgstr "Vous nêtes pas autorisé·e à voir cette page."
#: lib/cannery/accounts/user.ex:128
#, elixir-autogen, elixir-format
msgid "did not change"
msgstr "est inchangé"
#: lib/cannery/accounts/user.ex:149
#, elixir-autogen, elixir-format
msgid "does not match password"
msgstr "le mot de passe ne correspond pas"
#: lib/cannery/accounts/user.ex:186
#, elixir-autogen, elixir-format
msgid "is not valid"
msgstr "nest pas valide"
#: lib/cannery/accounts/user.ex:82
#, elixir-autogen, elixir-format
msgid "must have the @ sign and no spaces"
msgstr "doit contenir le symbole @ et aucune espace"
#: lib/cannery/tags.ex:40
#, elixir-autogen, elixir-format
msgid "Tag not found"
msgstr "Tag pas trouvé"
#: lib/cannery_web/live/container_live/edit_tags_component.ex:30
#, elixir-autogen, elixir-format
msgid "Tag could not be added"
msgstr "Le tag na pas pu être ajouté"
#: lib/cannery/activity_log.ex:125
#, elixir-autogen, elixir-format
msgid "Count must be at least 1"
msgstr "Le nombre doit être au moins égal à 1"
#: lib/cannery/activity_log.ex:73
#: lib/cannery/activity_log.ex:120
#, elixir-autogen, elixir-format
msgid "Count must be less than %{count}"
msgstr "La quantité doit être inférieur à %{count}"
#: lib/cannery_web/controllers/user_auth.ex:39
#: lib/cannery_web/controllers/user_auth.ex:161
#, elixir-autogen, elixir-format
msgid "You must confirm your account and log in to access this page."
msgstr ""
"Vous devez dabord confirmer votre compte et vous connecter pour accéder à "
"cette page."
#: lib/cannery_web/live/container_live/edit_tags_component.ex:52
#, elixir-autogen, elixir-format
msgid "Tag could not be removed"
msgstr "Le tag na pas pu être retiré"
#: lib/cannery_web/live/ammo_group_live/form_component.ex:126
#, elixir-autogen, elixir-format
msgid "Could not parse number of copies"
msgstr "Impossible d'analyser le nombre de copies"
#: lib/cannery_web/live/ammo_group_live/form_component.ex:111
#, elixir-autogen, elixir-format
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr "Nombre de copies invalide, doit être 1 et %{max}. Été %{multiplier}"

View File

@ -0,0 +1,282 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-20 18:02+0000\n"
"PO-Revision-Date: 2022-04-24 08:27+0000\n"
"Last-Translator: Antonin Dupont <pwet@dupon.in>\n"
"Language-Team: French <https://weblate.bubbletea.dev/projects/cannery/"
"prompts/fr/>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"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.12\n"
## This file is a PO Template file.
##
## "msgid"s here are often extracted from source code.
## Add new translations manually only if they're dynamic
## translations that can't be statically extracted.
##
## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/ammo_type_live/form_component.ex:64
#: lib/cannery_web/live/container_live/form_component.ex:65
#: lib/cannery_web/live/invite_live/form_component.ex:59
#: lib/cannery_web/live/tag_live/form_component.ex:101
#, elixir-autogen, elixir-format
msgid "%{name} created successfully"
msgstr "créé avec succès"
#: lib/cannery_web/live/ammo_type_live/index.ex:41
#: lib/cannery_web/live/ammo_type_live/show.ex:40
#: lib/cannery_web/live/invite_live/index.ex:55
#: lib/cannery_web/live/invite_live/index.ex:135
#: lib/cannery_web/live/tag_live/index.ex:40
#, elixir-autogen, elixir-format
msgid "%{name} deleted succesfully"
msgstr "%{name} supprimé avec succès"
#: lib/cannery_web/live/invite_live/index.ex:111
#, elixir-autogen, elixir-format
msgid "%{name} disabled succesfully"
msgstr "%{name} supprimé·e avec succès"
#: lib/cannery_web/live/invite_live/index.ex:89
#, elixir-autogen, elixir-format
msgid "%{name} enabled succesfully"
msgstr "%{name} activé·e avec succès"
#: lib/cannery_web/live/container_live/index.ex:64
#: lib/cannery_web/live/container_live/show.ex:63
#, elixir-autogen, elixir-format
msgid "%{name} has been deleted"
msgstr "%{name} a été supprimé·e"
#: lib/cannery_web/live/invite_live/index.ex:69
#, elixir-autogen, elixir-format
msgid "%{name} updated succesfully"
msgstr "%{name} mis à jour avec succès"
#: lib/cannery_web/live/ammo_type_live/form_component.ex:46
#: lib/cannery_web/live/container_live/form_component.ex:47
#: lib/cannery_web/live/invite_live/form_component.ex:41
#: lib/cannery_web/live/tag_live/form_component.ex:83
#, elixir-autogen, elixir-format
msgid "%{name} updated successfully"
msgstr "%{name} mis à jour avec succès"
#: lib/cannery_web/controllers/user_settings_controller.ex:28
#, elixir-autogen, elixir-format
msgid "A link to confirm your email change has been sent to the new address."
msgstr ""
"Un lien pour confirmer votre changement de mél a été envoyé à la nouvelle "
"adresse."
#: lib/cannery_web/live/ammo_group_live/index.ex:56
#: lib/cannery_web/live/ammo_group_live/show.ex:52
#, elixir-autogen, elixir-format
msgid "Ammo group deleted succesfully"
msgstr "Groupe de munition supprimé avec succès"
#: lib/cannery_web/live/ammo_group_live/form_component.ex:88
#, elixir-autogen, elixir-format
msgid "Ammo group updated successfully"
msgstr "Groupe de munition mis à jour avec succès"
#: lib/cannery_web/live/invite_live/index.html.heex:102
#: lib/cannery_web/live/invite_live/index.html.heex:131
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr ""
"Êtes-vous certain·e de supprimer %{email}? Cette action est définitive!"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:27
#: lib/cannery_web/live/container_live/index.html.heex:46
#: lib/cannery_web/live/container_live/show.html.heex:37
#: lib/cannery_web/live/tag_live/index.html.heex:38
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}?"
msgstr "Êtes-vous certain·e de supprimer %{name}?"
#: lib/cannery_web/live/invite_live/index.html.heex:49
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete the invite for %{name}?"
msgstr "Êtes-vous certain·e de supprimer linvitation pour %{name}?"
#: lib/cannery_web/live/ammo_group_live/index.ex:167
#: lib/cannery_web/live/ammo_group_live/show.html.heex:66
#: lib/cannery_web/live/ammo_type_live/index.ex:140
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?"
msgstr "Êtes-vous certain·e de supprimer cette munition?"
#: lib/cannery_web/templates/user_settings/edit.html.heex:112
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete your account?"
msgstr "Êtes-vous certain·e de supprimer votre compte?"
#: lib/cannery_web/components/topbar.ex:84
#, elixir-autogen, elixir-format
msgid "Are you sure you want to log out?"
msgstr "Êtes-vous certain·e de vouloir vous déconnecter?"
#: lib/cannery_web/live/invite_live/index.html.heex:74
#, elixir-autogen, elixir-format
msgid "Are you sure you want to make %{name} unlimited?"
msgstr "Êtes-vous certain·e de vouloir rendre %{name} illimité?"
#: lib/cannery_web/controllers/user_settings_controller.ex:60
#, elixir-autogen, elixir-format
msgid "Email changed successfully."
msgstr "Mél changé avec succès."
#: lib/cannery_web/controllers/user_confirmation_controller.ex:23
#, elixir-autogen, elixir-format
msgid "If your email is in our system and it has not been confirmed yet, you will receive an email with instructions shortly."
msgstr ""
"Si votre mél est dans notre système et na pas encore été confirmé, vous "
"recevrez un mél avec les instructions sous peu."
#: lib/cannery_web/controllers/user_reset_password_controller.ex:24
#, elixir-autogen, elixir-format
msgid "If your email is in our system, you will receive instructions to reset your password shortly."
msgstr ""
"Si votre mél est dans notre système, vous recevrez les instructions pour "
"réinitialiser votre mot de passe sous peu."
#: lib/cannery_web/controllers/user_session_controller.ex:23
#, elixir-autogen, elixir-format
msgid "Logged out successfully."
msgstr "Déconnecté avec succès."
#: lib/cannery_web/controllers/user_reset_password_controller.ex:46
#, elixir-autogen, elixir-format
msgid "Password reset successfully."
msgstr "Mot de passe réinitialiser avec succès."
#: lib/cannery_web/controllers/user_settings_controller.ex:47
#, elixir-autogen, elixir-format
msgid "Password updated successfully."
msgstr "Mot de passe mis à jour avec succès."
#: lib/cannery_web/controllers/user_registration_controller.ex:74
#, elixir-autogen, elixir-format
msgid "Please check your email to verify your account"
msgstr "Veuillez vérifier votre mél pour confirmer votre compte"
#: lib/cannery_web/live/home_live.ex:101
#, elixir-autogen, elixir-format
msgid "Register to setup %{name}"
msgstr "Senregistrer pour mettre en place %{name}"
#: lib/cannery_web/components/add_shot_group_component.html.heex:48
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157
#: lib/cannery_web/live/container_live/form_component.html.heex:52
#: lib/cannery_web/live/invite_live/form_component.html.heex:30
#: lib/cannery_web/live/range_live/form_component.html.heex:42
#: lib/cannery_web/live/tag_live/form_component.ex:68
#, elixir-autogen, elixir-format
msgid "Saving..."
msgstr "Sauvegarde en cours…"
#: lib/cannery_web/controllers/user_settings_controller.ex:78
#, elixir-autogen, elixir-format
msgid "Your account has been deleted"
msgstr "Votre compte a été supprimé"
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:16
#, elixir-autogen, elixir-format
msgid "Are you sure you want to remove the %{tag_name} tag from %{container_name}?"
msgstr ""
"Êtes-vous certain·e de vouloir retirer le tag %{tag_name} de "
"%{container_name}?"
#: lib/cannery_web/live/container_live/edit_tags_component.ex:36
#, elixir-autogen, elixir-format
msgid "%{name} added successfully"
msgstr "%{name} a été ajouté avec succès"
#: lib/cannery_web/live/container_live/show.ex:39
#, elixir-autogen, elixir-format
msgid "%{tag_name} has been removed from %{container_name}"
msgstr "%{tag_name} a été retiré de %{container_name}"
#: lib/cannery_web/live/container_live/edit_tags_component.html.heex:54
#, elixir-autogen, elixir-format
msgid "Adding..."
msgstr "Ajout en cours…"
#: lib/cannery_web/components/add_shot_group_component.ex:68
#, elixir-autogen, elixir-format
msgid "Shots recorded successfully"
msgstr "Tirs enregistré avec succès"
#: lib/cannery_web/live/range_live/index.html.heex:29
#, elixir-autogen, elixir-format
msgid "Are you sure you want to unstage this ammo?"
msgstr "Êtes-vous certain·e de vouloir désélectionner cette munition?"
#: lib/cannery_web/live/range_live/index.ex:70
#, elixir-autogen, elixir-format
msgid "Ammo group unstaged succesfully"
msgstr "Groupe de munition désélectionner avec succès"
#: lib/cannery_web/live/ammo_group_live/show.ex:132
#: lib/cannery_web/live/range_live/index.ex:130
#, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this shot record?"
msgstr "Êtes-vous certain·e de vouloir supprimer cet enregistrement de tir?"
#: lib/cannery_web/live/ammo_group_live/show.ex:80
#: lib/cannery_web/live/range_live/index.ex:56
#, elixir-autogen, elixir-format
msgid "Shot records deleted succesfully"
msgstr "Enregistrements de tir supprimés avec succès"
#: lib/cannery_web/live/range_live/form_component.ex:55
#, elixir-autogen, elixir-format
msgid "Shot records updated successfully"
msgstr "Enregistrements de tir mis à jour avec succès"
#: lib/cannery_web/controllers/user_confirmation_controller.ex:38
#, elixir-autogen, elixir-format
msgid "%{email} confirmed successfully."
msgstr "%{email} confirmé avec succès."
#: lib/cannery_web/components/move_ammo_group_component.ex:53
#, elixir-autogen, elixir-format
msgid "Ammo moved to %{name} successfully"
msgstr "Munition déplacée à %{name} avec succès"
#: lib/cannery_web/live/invite_live/index.ex:123
#, elixir-autogen, elixir-format
msgid "Copied to clipboard"
msgstr "Copié dans le presse-papier"
#: lib/cannery_web/live/container_live/edit_tags_component.ex:58
#, elixir-autogen, elixir-format
msgid "%{name} removed successfully"
msgstr "%{name} retiré avec succès"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:15
#: lib/cannery_web/live/ammo_group_live/index.html.heex:33
#, elixir-autogen, elixir-format
msgid "You'll need to"
msgstr "Vous aurez besoin de"
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:67
#, elixir-autogen, elixir-format
msgid "Creating..."
msgstr "Création en cours…"
#: lib/cannery_web/live/ammo_group_live/form_component.ex:147
#, elixir-autogen, elixir-format
msgid "Ammo group created successfully"
msgid_plural "Ammo groups created successfully"
msgstr[0] "Groupe de munition créé avec succès"
msgstr[1] "Groupes de munitions créé avec succès"

10
priv/i18n/fr.tbx Normal file
View File

@ -0,0 +1,10 @@
<?xml version="1.0"?>
<!DOCTYPE martif PUBLIC "ISO 12200:1999A//DTD MARTIF core (DXFcdV04)//EN" "TBXcdv04.dtd">
<martif type="TBX">
<martifHeader>
<fileDesc>
<sourceDesc><p>Translate Toolkit</p></sourceDesc>
</fileDesc>
</martifHeader>
<text><body></body></text>
</martif>