diff --git a/addons/om_account_budget/i18n/fr.po b/addons/om_account_budget/i18n/fr.po
new file mode 100644
index 0000000..8909152
--- /dev/null
+++ b/addons/om_account_budget/i18n/fr.po
@@ -0,0 +1,526 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * om_account_budget
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 15.0-20220319\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-06-12 03:15+0000\n"
+"PO-Revision-Date: 2022-07-06 00:09+0200\n"
+"Last-Translator: Sylvain Lc\n"
+"Language-Team: \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: Poedit 3.1\n"
+
+#. module: om_account_budget
+#: code:addons/om_account_budget/models/account_budget.py:0
+#, python-format
+msgid ""
+"\"End Date\" of the budget line should be included in the Period of the "
+"budget"
+msgstr ""
+"La \"date de fin\" de la ligne budgétaire doit être incluse dans la période "
+"du budget"
+
+#. module: om_account_budget
+#: code:addons/om_account_budget/models/account_budget.py:0
+#, python-format
+msgid ""
+"\"Start Date\" of the budget line should be included in the Period of the "
+"budget"
+msgstr ""
+"La \"date de début\" de la ligne budgétaire doit être incluse dans la "
+"période du budget"
+
+#. module: om_account_budget
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_crossovered_budget_kanban
+msgid ""
+""
+msgstr ""
+""
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_account_budget_post__account_ids
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_budget_post_form
+msgid "Accounts"
+msgstr "Comptes"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget_lines__percentage
+msgid "Achievement"
+msgstr "Réalisation"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__message_needaction
+msgid "Action Needed"
+msgstr "Action nécessaire"
+
+#. module: om_account_budget
+#: model:ir.model.fields,help:om_account_budget.field_crossovered_budget_lines__practical_amount
+msgid "Amount really earned/spent."
+msgstr "Montant vraiment gagné/dépensé."
+
+#. module: om_account_budget
+#: model:ir.model.fields,help:om_account_budget.field_crossovered_budget_lines__theoritical_amount
+msgid "Amount you are supposed to have earned/spent at this date."
+msgstr "Montant que vous êtes supposé avoir gagné/dépensé à cette date."
+
+#. module: om_account_budget
+#: model:ir.model.fields,help:om_account_budget.field_crossovered_budget_lines__planned_amount
+msgid ""
+"Amount you plan to earn/spend. Record a positive amount if it is a revenue "
+"and a negative amount if it is a cost."
+msgstr ""
+"Montant que vous prévoyez gagner / dépenser. Enregistrez un montant positif "
+"s'il s'agit d'un revenu et un montant négatif s'il s'agit d'un coût."
+
+#. module: om_account_budget
+#: model:ir.model,name:om_account_budget.model_account_analytic_account
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget_lines__analytic_account_id
+msgid "Analytic Account"
+msgstr "Compte analytique"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget_lines__analytic_plan_id
+msgid "Analytic Group"
+msgstr "Groupe analytique"
+
+#. module: om_account_budget
+#: model_terms:ir.ui.view,arch_db:om_account_budget.crossovered_budget_view_form
+msgid "Approve"
+msgstr "Approuver"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__message_attachment_count
+msgid "Attachment Count"
+msgstr "Nombre de pièces jointes"
+
+#. module: om_account_budget
+#: model:ir.model,name:om_account_budget.model_crossovered_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget_lines__crossovered_budget_id
+#: model_terms:ir.ui.view,arch_db:om_account_budget.crossovered_budget_view_form
+#: model_terms:ir.ui.view,arch_db:om_account_budget.crossovered_budget_view_tree
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_crossovered_budget_search
+msgid "Budget"
+msgstr "Budget"
+
+#. module: om_account_budget
+#: model:ir.actions.act_window,name:om_account_budget.act_account_analytic_account_cb_lines
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_account_analytic_account_form_inherit_budget
+msgid "Budget Items"
+msgstr "Postes budgétaires"
+
+#. module: om_account_budget
+#: model:ir.model,name:om_account_budget.model_crossovered_budget_lines
+msgid "Budget Line"
+msgstr "Ligne de budget"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_account_analytic_account__crossovered_budget_line
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__crossovered_budget_line
+#: model_terms:ir.ui.view,arch_db:om_account_budget.crossovered_budget_view_form
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_crossovered_budget_line_form
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_crossovered_budget_line_graph
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_crossovered_budget_line_pivot
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_crossovered_budget_line_search
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_crossovered_budget_line_tree
+msgid "Budget Lines"
+msgstr "Lignes de budget"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__name
+#: model_terms:ir.ui.view,arch_db:om_account_budget.crossovered_budget_view_form
+msgid "Budget Name"
+msgstr "Nom du budget"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget_lines__crossovered_budget_state
+msgid "Budget State"
+msgstr "Etat du Budget"
+
+#. module: om_account_budget
+#: model:ir.model,name:om_account_budget.model_account_budget_post
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget_lines__general_budget_id
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_budget_post_form
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_budget_post_search
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_budget_post_tree
+msgid "Budgetary Position"
+msgstr "Poste budgétaire"
+
+#. module: om_account_budget
+#: model:ir.actions.act_window,name:om_account_budget.open_budget_post_form
+#: model:ir.ui.menu,name:om_account_budget.menu_budget_post_form
+msgid "Budgetary Positions"
+msgstr "Positions budgétaires"
+
+#. module: om_account_budget
+#: model:ir.actions.act_window,name:om_account_budget.act_crossovered_budget_view
+#: model:ir.ui.menu,name:om_account_budget.menu_act_crossovered_budget_view
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_crossovered_budget_line_search
+msgid "Budgets"
+msgstr "Budgets"
+
+#. module: om_account_budget
+#: model:ir.actions.act_window,name:om_account_budget.act_crossovered_budget_lines_view
+#: model:ir.ui.menu,name:om_account_budget.menu_act_crossovered_budget_lines_view
+msgid "Budgets Analysis"
+msgstr "Analyse budgétaire"
+
+#. module: om_account_budget
+#: model_terms:ir.ui.view,arch_db:om_account_budget.crossovered_budget_view_form
+msgid "Cancel Budget"
+msgstr "Annuler le budget"
+
+#. module: om_account_budget
+#: model:ir.model.fields.selection,name:om_account_budget.selection__crossovered_budget__state__cancel
+msgid "Cancelled"
+msgstr "Annulé"
+
+#. module: om_account_budget
+#: model_terms:ir.actions.act_window,help:om_account_budget.act_crossovered_budget_view
+msgid "Click to create a new budget."
+msgstr "Cliquer pour créer un nouveau budget."
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_account_budget_post__company_id
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__company_id
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget_lines__company_id
+msgid "Company"
+msgstr "Société"
+
+#. module: om_account_budget
+#: model:ir.model.fields,help:om_account_budget.field_crossovered_budget_lines__percentage
+msgid ""
+"Comparison between practical and theoretical amount. This measure tells you "
+"if you are below or over budget."
+msgstr ""
+"Comparaison entre le montant pratique et le montant théorique. Ceci vous "
+"permet de savoir si vous êtes en dessous ou au dessus du budget."
+
+#. module: om_account_budget
+#: model_terms:ir.ui.view,arch_db:om_account_budget.crossovered_budget_view_form
+msgid "Confirm"
+msgstr "Confirmer"
+
+#. module: om_account_budget
+#: model:ir.model.fields.selection,name:om_account_budget.selection__crossovered_budget__state__confirm
+msgid "Confirmed"
+msgstr "Confirmé"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_account_budget_post__create_uid
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__create_uid
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget_lines__create_uid
+msgid "Created by"
+msgstr "Créé par"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_account_budget_post__create_date
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__create_date
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget_lines__create_date
+msgid "Created on"
+msgstr "Créé sur"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget_lines__currency_id
+msgid "Currency"
+msgstr "Devise"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_account_budget_post__display_name
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__display_name
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget_lines__display_name
+msgid "Display Name"
+msgstr "Afficher un nom"
+
+#. module: om_account_budget
+#: model:ir.model.fields.selection,name:om_account_budget.selection__crossovered_budget__state__done
+#: model_terms:ir.ui.view,arch_db:om_account_budget.crossovered_budget_view_form
+msgid "Done"
+msgstr "Terminé"
+
+#. module: om_account_budget
+#: model:ir.model.fields.selection,name:om_account_budget.selection__crossovered_budget__state__draft
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_crossovered_budget_search
+msgid "Draft"
+msgstr "Brouillon"
+
+#. module: om_account_budget
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_crossovered_budget_search
+msgid "Draft Budgets"
+msgstr "Budgets brouillons"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__date_to
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget_lines__date_to
+msgid "End Date"
+msgstr "Date de fin"
+
+#. module: om_account_budget
+#: model_terms:ir.ui.view,arch_db:om_account_budget.crossovered_budget_view_form
+msgid "Entries..."
+msgstr "Ecritures..."
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__message_follower_ids
+msgid "Followers"
+msgstr "Suiveuses"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__message_partner_ids
+msgid "Followers (Partners)"
+msgstr "Abonnés (Partenaires)"
+
+#. module: om_account_budget
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_crossovered_budget_line_search
+msgid "Group By"
+msgstr "Grouper par"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__has_message
+msgid "Has Message"
+msgstr "A un message"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_account_budget_post__id
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__id
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget_lines__id
+msgid "ID"
+msgstr "ID"
+
+#. module: om_account_budget
+#: model:ir.model.fields,help:om_account_budget.field_crossovered_budget__message_needaction
+#: model:ir.model.fields,help:om_account_budget.field_crossovered_budget__message_unread
+msgid "If checked, new messages require your attention."
+msgstr "Si coché, de nouveaux messages demandent votre attention."
+
+#. module: om_account_budget
+#: model:ir.model.fields,help:om_account_budget.field_crossovered_budget__message_has_error
+#: model:ir.model.fields,help:om_account_budget.field_crossovered_budget__message_has_sms_error
+msgid "If checked, some messages have a delivery error."
+msgstr "Si actif, certains messages ont une erreur de livraison."
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget_lines__is_above_budget
+msgid "Is Above Budget"
+msgstr "Est Au-dessus du Budget"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__message_is_follower
+msgid "Is Follower"
+msgstr "Est un abonné"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_account_budget_post____last_update
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget____last_update
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget_lines____last_update
+msgid "Last Modified on"
+msgstr "Dernière modification le"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_account_budget_post__write_uid
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__write_uid
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget_lines__write_uid
+msgid "Last Updated by"
+msgstr "Dernière mise à jour par"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_account_budget_post__write_date
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__write_date
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget_lines__write_date
+msgid "Last Updated on"
+msgstr "Dernière mise à jour le"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__message_main_attachment_id
+msgid "Main Attachment"
+msgstr "Pièce jointe principale"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__message_has_error
+msgid "Message Delivery error"
+msgstr "Erreur d'envoi du message"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__message_ids
+msgid "Messages"
+msgstr "Messages"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_account_budget_post__name
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget_lines__name
+msgid "Name"
+msgstr "Nom"
+
+#. module: om_account_budget
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_crossovered_budget_line_search
+msgid "Not Cancelled"
+msgstr "Pas Annulé"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__message_needaction_counter
+msgid "Number of Actions"
+msgstr "Nombre d'actions"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__message_has_error_counter
+msgid "Number of errors"
+msgstr "Nombre d'erreurs"
+
+#. module: om_account_budget
+#: model:ir.model.fields,help:om_account_budget.field_crossovered_budget__message_needaction_counter
+msgid "Number of messages which requires an action"
+msgstr "Nombre de messages exigeant une action"
+
+#. module: om_account_budget
+#: model:ir.model.fields,help:om_account_budget.field_crossovered_budget__message_has_error_counter
+msgid "Number of messages with delivery error"
+msgstr "Nombre de messages avec des erreurs d'envoi"
+
+#. module: om_account_budget
+#: model:ir.model.fields,help:om_account_budget.field_crossovered_budget__message_unread_counter
+msgid "Number of unread messages"
+msgstr "Nombre de messages non lus"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget_lines__paid_date
+msgid "Paid Date"
+msgstr "Date de paiement"
+
+#. module: om_account_budget
+#: model_terms:ir.ui.view,arch_db:om_account_budget.crossovered_budget_view_form
+msgid "Period"
+msgstr "Période"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget_lines__planned_amount
+#: model_terms:ir.ui.view,arch_db:om_account_budget.crossovered_budget_view_form
+msgid "Planned Amount"
+msgstr "Montant prévu"
+
+#. module: om_account_budget
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_crossovered_budget_line_graph
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_crossovered_budget_line_pivot
+msgid "Planned amount"
+msgstr "Montant prévu"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget_lines__practical_amount
+#: model_terms:ir.ui.view,arch_db:om_account_budget.crossovered_budget_view_form
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_account_analytic_account_form_inherit_budget
+msgid "Practical Amount"
+msgstr "Montant réel"
+
+#. module: om_account_budget
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_crossovered_budget_line_graph
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_crossovered_budget_line_pivot
+msgid "Practical amount"
+msgstr "Montant Réel"
+
+#. module: om_account_budget
+#: model_terms:ir.ui.view,arch_db:om_account_budget.crossovered_budget_view_form
+msgid "Reset to Draft"
+msgstr "Remettre en brouillon"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__user_id
+msgid "Responsible"
+msgstr "Responsable"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__message_has_sms_error
+msgid "SMS Delivery error"
+msgstr "Erreur d'envoi SMS"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__date_from
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget_lines__date_from
+msgid "Start Date"
+msgstr "Date de début"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__state
+msgid "Status"
+msgstr "Statut"
+
+#. module: om_account_budget
+#: code:addons/om_account_budget/models/account_budget.py:0
+#, python-format
+msgid "The budget must have at least one account."
+msgstr "Le budget doit avoir au moins un compte."
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget_lines__theoritical_amount
+#: model_terms:ir.ui.view,arch_db:om_account_budget.crossovered_budget_view_form
+msgid "Theoretical Amount"
+msgstr "Montant théorique"
+
+#. module: om_account_budget
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_account_analytic_account_form_inherit_budget
+msgid "Theoritical Amount"
+msgstr "Montant théorique"
+
+#. module: om_account_budget
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_crossovered_budget_line_graph
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_crossovered_budget_line_pivot
+msgid "Theoritical amount"
+msgstr "Montant théorique"
+
+#. module: om_account_budget
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_crossovered_budget_search
+msgid "To Approve"
+msgstr "À approuver"
+
+#. module: om_account_budget
+#: model_terms:ir.ui.view,arch_db:om_account_budget.view_crossovered_budget_search
+msgid "To Approve Budgets"
+msgstr "Budgets à approuver"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__message_unread
+msgid "Unread Messages"
+msgstr "Messages non lus"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__message_unread_counter
+msgid "Unread Messages Counter"
+msgstr "Compteur de messages non lus"
+
+#. module: om_account_budget
+#: model_terms:ir.actions.act_window,help:om_account_budget.act_crossovered_budget_view
+msgid "Use budgets to compare actual with expected revenues and costs"
+msgstr ""
+"Utilisez les budgets pour comparer les revenus et coûts attendus à la "
+"situation actuelle"
+
+#. module: om_account_budget
+#: model:ir.model.fields.selection,name:om_account_budget.selection__crossovered_budget__state__validate
+msgid "Validated"
+msgstr "Validé"
+
+#. module: om_account_budget
+#: model:ir.model.fields,field_description:om_account_budget.field_crossovered_budget__website_message_ids
+msgid "Website Messages"
+msgstr "Messages du site web"
+
+#. module: om_account_budget
+#: model:ir.model.fields,help:om_account_budget.field_crossovered_budget__website_message_ids
+msgid "Website communication history"
+msgstr "Historique de communication du site web"
+
+#. module: om_account_budget
+#: code:addons/om_account_budget/models/account_budget.py:0
+#, python-format
+msgid ""
+"You have to enter at least a budgetary position or analytic account on a "
+"budget line."
+msgstr ""
+"Vous devez saisir au moins une position budgétaire ou un compte analytique "
+"sur une ligne budgétaire."