From cb1047779603b2aa697072a8beafbd1635424f44 Mon Sep 17 00:00:00 2001 From: Johan Girod Date: Thu, 8 Nov 2018 11:45:59 +0100 Subject: [PATCH] =?UTF-8?q?:alien:=20ajoute=20la=20traduction=20pour=20la?= =?UTF-8?q?=20page=20des=20d=C3=A9marches=20d'embauche?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/locales/en.yaml | 53 ++++- .../pages/Company/AfterRegistration.js | 3 +- .../pages/Company/CreationChecklist.js | 51 +++-- .../pages/Company/DirectorStatus.js | 3 +- .../pages/Company/Microenterprise.js | 87 ++++++--- .../pages/Company/MinorityDirector.js | 3 +- .../pages/Company/PickLegalStatus.js | 6 +- .../pages/HiringProcess.js | 184 ++++++++++++------ 8 files changed, 278 insertions(+), 112 deletions(-) diff --git a/source/locales/en.yaml b/source/locales/en.yaml index 8d05763b8..32a6722e4 100644 --- a/source/locales/en.yaml +++ b/source/locales/en.yaml @@ -232,7 +232,11 @@ piedDePage: This website is provided by the <1>URSSAF, the French social sec entreprise: existeDéjà: My company is already registered with the French Administration tâches: - intro: This checklist will guide you throughout all the necessary steps to register your + page: + description: A complete todo list to help you create a {{companyStatus}} with the French administration.` + titre: Create a {{companyStatus}} in France + titre: Create a <1>{{companyStatus}} + intro: This todo list will guide you throughout all the necessary steps to register your titre1: Needed for registration nom: titre: Find a corporate name @@ -426,3 +430,50 @@ gérant minoritaire: <0>Some special rules apply depending on the amount of shares owned by the director.<1><0><0>Chairman: The director is in majority, or is part of a managing board that is in majority.<1><0>Managing director: The director is in minority (or equality), or is part of a managing board that is in minority (or equality). Gérant majoritaire: Chairman Gérant minoritaire: Managing director + +Plus d'informations: More information (fr) + +embauche: + tâches: + page: + titre: > + Hiring procedure in France + description: All the necessary steps to hire your first employee in France. + titre: Hiring process checklist + description: All the necessary steps to hire your first employee. + contrat: + titre: Sign an employment contract with your employee + dpae: + titre: Declare your hiring t o the social administration + description: > + This can be done through the form called DPAE, must be completed + within 8 days before any hiring, and can <2>be done online (Fr) + logiciel de paie: + titre: Choose a payslip software + description: > + With fewer than 20 employees, payslips and declarations can be + handled online by the <2> Tese (Fr), a tool developped by the french + social administration. You can also use <5>a private payslip software (Fr) + registre: + titre: Keep an updated staff register + pension: + titre: Contact your assigned compulsory complementary pension institution + description: Find your pension institute (Fr) + complémentaire santé: + titre: Pick a private complementary health insurance + description: > + You must cover your employees with the private complementary health + insurance ("complémentaire santé" or colloquially "mutuelle" in + French) of your choice as long as it provides a set of minimum + guarantees. The employer must pay at least half of the package. + medecine: + titre: Register to a work medicine office + description: Don't forget to plan an initial appointment for each new hire. + chaque mois: > + <0>Then each month + <1> + <0>Compute the individual social contributions (using the chosen payslip software) + <1>Declare the contributions through the DSN, the new online declaration system + <2>Deliver the standardised payslip to your employee + + <2>Get an example payslip diff --git a/source/sites/mycompanyinfrance.fr/pages/Company/AfterRegistration.js b/source/sites/mycompanyinfrance.fr/pages/Company/AfterRegistration.js index e76c1c8a0..e50a9aed0 100644 --- a/source/sites/mycompanyinfrance.fr/pages/Company/AfterRegistration.js +++ b/source/sites/mycompanyinfrance.fr/pages/Company/AfterRegistration.js @@ -6,10 +6,11 @@ import { connect } from 'react-redux' import { Link } from 'react-router-dom' import Animate from 'Ui/animate' import siret from './siret.jpg' +import type { TFunction } from 'react-i18next' type Props = { companyStatusChoice: string, - t: (string, string) => string + t: TFunction } const AfterRegistration = ({ t, companyStatusChoice }: Props) => ( diff --git a/source/sites/mycompanyinfrance.fr/pages/Company/CreationChecklist.js b/source/sites/mycompanyinfrance.fr/pages/Company/CreationChecklist.js index a34428850..c894911fb 100644 --- a/source/sites/mycompanyinfrance.fr/pages/Company/CreationChecklist.js +++ b/source/sites/mycompanyinfrance.fr/pages/Company/CreationChecklist.js @@ -4,15 +4,18 @@ import { initializeCompanyCreationChecklist } from 'Actions/companyCreationChecklistActions' import { goToCompanyStatusChoice } from 'Actions/companyStatusActions' -import Scroll from 'Components/utils/Scroll' import { React, T } from 'Components' +import Scroll from 'Components/utils/Scroll' +import { compose } from 'ramda' import Helmet from 'react-helmet' +import { translate } from 'react-i18next' import { connect } from 'react-redux' import { Link } from 'react-router-dom' import * as Animate from 'Ui/animate' import { CheckItem, Checklist } from 'Ui/Checklist' import StatusDescription from './StatusDescription' import type { Match } from 'react-router' +import type { TFunction } from 'react-i18next' type Props = { statusChooserCompleted: boolean, @@ -20,6 +23,7 @@ type Props = { onChecklistInitialization: (string, Array) => void, onStatusChange: () => void, onItemCheck: (name: string, checked: boolean) => void, + t: TFunction, companyCreationChecklist: { [string]: boolean } } @@ -39,17 +43,27 @@ const CreateCompany = ({ return ( - Create a {match.params.status} + + {t(['entreprise.tâches.page.titre', 'Créer une {{companyStatus}}'], { + companyStatus: match.params.status + })} +

- Créer une {match.params.status}{' '} + + Créer une {{ companyStatus: match.params.status }} +

{!statusChooserCompleted && ( <> @@ -376,17 +390,20 @@ const CreateCompany = ({
) } -export default connect( - state => ({ - companyCreationChecklist: state.inFranceApp.companyCreationChecklist, - statusChooserCompleted: - Object.keys(state.inFranceApp.companyLegalStatus).length !== 0 - }), - { - onChecklistInitialization: initializeCompanyCreationChecklist, - onItemCheck: checkCompanyCreationItem, - onStatusChange: goToCompanyStatusChoice - } +export default compose( + translate(), + connect( + state => ({ + companyCreationChecklist: state.inFranceApp.companyCreationChecklist, + statusChooserCompleted: + Object.keys(state.inFranceApp.companyLegalStatus).length !== 0 + }), + { + onChecklistInitialization: initializeCompanyCreationChecklist, + onItemCheck: checkCompanyCreationItem, + onStatusChange: goToCompanyStatusChoice + } + ) )(CreateCompany) let StatutsExample = ({ status }) => ( diff --git a/source/sites/mycompanyinfrance.fr/pages/Company/DirectorStatus.js b/source/sites/mycompanyinfrance.fr/pages/Company/DirectorStatus.js index 78c7a4d44..d555f6924 100644 --- a/source/sites/mycompanyinfrance.fr/pages/Company/DirectorStatus.js +++ b/source/sites/mycompanyinfrance.fr/pages/Company/DirectorStatus.js @@ -7,10 +7,11 @@ import { translate } from 'react-i18next' import { connect } from 'react-redux' import { SkipButton } from 'Ui/Button' import type { DirectorStatus } from 'Types/companyTypes' +import type { TFunction } from 'react-i18next' type Props = { defineDirectorStatus: (?DirectorStatus) => void, - t: (string, string) => string + t: TFunction } const DefineDirectorStatus = ({ defineDirectorStatus, t }: Props) => ( <> diff --git a/source/sites/mycompanyinfrance.fr/pages/Company/Microenterprise.js b/source/sites/mycompanyinfrance.fr/pages/Company/Microenterprise.js index aa35b08a5..b27853b42 100644 --- a/source/sites/mycompanyinfrance.fr/pages/Company/Microenterprise.js +++ b/source/sites/mycompanyinfrance.fr/pages/Company/Microenterprise.js @@ -1,22 +1,26 @@ /* @flow */ import { companyIsMicroenterprise } from 'Actions/companyStatusActions' import { React, T } from 'Components' -import { translate } from 'react-i18next' +import { compose } from 'ramda' import Helmet from 'react-helmet' +import { translate } from 'react-i18next' import { connect } from 'react-redux' import { SkipButton } from 'Ui/Button' -import {compose} from 'ramda' +import type { TFunction } from 'react-i18next' type Props = { companyIsMicroenterprise: (?boolean) => void, - t: (string, string) => string, + t: TFunction } const Microenterprise = ({ companyIsMicroenterprise, t }: Props) => ( <> - {t('microentreprise.page.titre','Différence entre microentreprise et entreprise individuelle')} + {t( + 'microentreprise.page.titre', + 'Différence entre microentreprise et entreprise individuelle' + )} ( } /> -

Micro-enterprise ou entreprise individuelle (EI) ?

+

+ + Micro-enterprise ou entreprise individuelle (EI) ? + +

-

- La micro-entreprise est un régime simplifié de déclaration et de paiement, - pour lequel l'impôt et les cotisations sociales sont basés sur le chiffre d'affaires réalisé chaque mois. - Disponible pour les entreprises dont le chiffre d'affaires annuel ne dépasse pas 70.000 € pour les prestataires de services - ou 170.000 € lorsque l'activité principale est la vente de biens, la restauration ou la fourniture de logements. -

-

- C'est un choix intéressant si : -

-
    -
  • Vous n'avez pas besoin de beaucoup de capital et de dépenses importantes pour mener votre activité
  • -
  • Vous voulez tester la viabilité de votre modèle, ou prévoyez de rester petits
  • -
  • Vous voulez la quantité minimale de paperasse pour commencer
  • -
-

- Note : Certaines activités sont exclus de ce statut ( voir la liste). Certaines activités sont réglementées avec une qualification ou une expérience professionnelle (voir la liste). -

-

- Pour tous les autres cas, il est conseillé de choisir le statut standard, qui est l'Entreprise Individuelle. -

+

+ La micro-entreprise est un régime simplifié de déclaration et de + paiement, pour lequel l'impôt et les cotisations sociales sont basés sur + le chiffre d'affaires réalisé chaque mois. Disponible pour les + entreprises dont le chiffre d'affaires annuel ne dépasse pas 70.000 € + pour les prestataires de services ou 170.000 € lorsque l'activité + principale est la vente de biens, la restauration ou la fourniture de + logements. +

+

C'est un choix intéressant si :

+
    +
  • + Vous n'avez pas besoin de beaucoup de capital et de dépenses + importantes pour mener votre activité +
  • +
  • + Vous voulez tester la viabilité de votre modèle, ou prévoyez de rester + petits +
  • +
  • Vous voulez la quantité minimale de paperasse pour commencer
  • +
+

+ Note : Certaines activités sont exclus de ce statut ( + + {' '} + voir la liste + + ). Certaines activités sont réglementées avec une qualification ou une + expérience professionnelle ( + + voir la liste + + ). +

+

+ Pour tous les autres cas, il est conseillé de choisir le statut + standard, qui est l'Entreprise Individuelle. +