👽 ajoute les traductions pour la nouvelle architecture

pull/640/head
Johan Girod 2019-10-21 18:53:15 +02:00
parent 7ed50ebb9c
commit c40ae69660
21 changed files with 400 additions and 303 deletions

View File

@ -6,3 +6,10 @@
/entreprise/cr%C3%A9er-une-* /cr%C3%A9er/:splat 301
/entreprise/devenir-* /cr%C3%A9er/:splat 301
/entreprise* /cr%C3%A9er:splat 301
/social-security /manage 301
/social-security/assimilated-salaried /social-security/assimile-salarie 301
/social-security/* /simulators/:splat 301
/company/create-a-* /create/:splat 301
/company/become-* /create/:splat 301
/company* /create:splat 301

View File

@ -168,7 +168,7 @@
"yaml-loader": "^0.5.0"
},
"optionalDependencies": {
"cypress": "^3.2.0",
"cypress": "^3.4.1",
"prerender-spa-plugin": "^3.4.0"
}
}

View File

@ -27,7 +27,7 @@ export default function Search() {
const dispatch = useDispatch()
return (
<>
<h1 className="question__title">
<h1>
<T k="trouver.titre">Retrouver mon entreprise</T>
</h1>
<p>
@ -67,7 +67,7 @@ export default function Search() {
debouncedHandleSearch(e.target.value)
}}
/>
{!isLoading && searchResults === null && <p>Aucun résultat</p>}
{!isLoading && searchResults === null && <p><T>Aucun résultat</T></p>}
{searchResults &&
searchResults.map(({ siren, denomination }) => (

View File

@ -1,7 +1,8 @@
import React, { Component } from 'react'
import { Trans } from 'react-i18next'
import emoji from 'react-easy-emoji'
import { Trans } from 'react-i18next'
let T = ({ children, k }) => <Trans i18nKey={k}>{children}</Trans>
let T = ({ k, ...props }) => <Trans i18nKey={k} {...props} />
export { React, Component, T, emoji }

View File

@ -1,16 +1,21 @@
.ui__.inverted-button:not(:disabled):not(.disabled):active,
.ui__.button:not(:disabled):not(.disabled):not(.push-right):not(.push-left):active {
animation: push-button-down 0.1s ease-out alternate-reverse 2;
}
.ui__.button,
.ui__.inverted-button {
.ui__.button:disabled,
.ui__.button.disabled {
opacity: 0.5;
cursor: not-allowed;
/* pointer-events: none; */
}
.ui__.button {
font-size: 1.2rem;
display: inline-block;
padding: 0.6rem 1.2rem;
text-decoration: none;
border: 1px solid;
will-change: transform;
/* outline: none; */
line-height: initial;
display: inline-block;
@ -18,21 +23,11 @@
transition: all 0.15s;
text-align: center;
text-transform: uppercase;
font-family: 'Roboto', sans-serif;
font-weight: normal;
cursor: pointer;
}
.ui__.button:disabled,
.ui__.button.disabled,
.ui__.inverted-button:disabled,
.ui__.inverted-button.disabled {
opacity: 0.5;
cursor: not-allowed;
/* pointer-events: none; */
}
.ui__.button {
/* ie11 */
border-color: rgb(41, 117, 209);
border-color: var(--colour);
@ -53,7 +48,6 @@
);
background-size: 280%;
background-position-x: 99%;
will-change: transform;
}
.ui__.button.plain {
background-image: linear-gradient(
@ -92,26 +86,13 @@
.ui__.button.simple:not(:last-of-type) {
margin-right: 0.6em;
}
.ui__.button.cta,
.ui__.inverted-button.cta {
.ui__.button.cta {
margin: 1rem 0;
display: inline-block;
align-self: center;
font-size: 120%;
padding: 0.9rem 1.8rem;
}
.ui__.inverted-button {
color: white;
border-color: white;
}
.ui__.inverted-button:not(:disabled):not(.disabled):hover,
.ui__.inverted-button:not(:disabled):not(.disabled).selected {
background-color: rgba(255, 255, 255, 1);
color: rgb(41, 117, 209);
color: var(--colour);
border-color: rgb(41, 117, 209);
border-color: var(--colour);
}
.ui__.link-button,
.ui__.dashed-button,
@ -186,8 +167,7 @@
animation: push-button-left 0.1s ease-out alternate-reverse 2;
}
.ui__.small.button,
.ui__.small.inverted-button {
.ui__.small.button {
font-size: 90%;
line-height: 1rem;
transition: all 0.08s;

View File

@ -115,7 +115,7 @@ p img {
max-width: 100%;
}
a:not(:disabled):not(.button):not(.inverted-button):not(.button-choice):hover {
a:not(:disabled):not(.button):not(.button-choice):hover {
opacity: 0.8;
}

View File

@ -137,7 +137,7 @@ simulation-end:
feedback:
simulator: Do you like this simulator ?
reportError: Make a suggestion
question: Was this information useful to you?
question: Was this page useful to you?
bad:
form:
headline: Your feedback is valuable to us in order to continuously improve this site. What should we work on to better meet your expectations?
@ -150,6 +150,10 @@ Oui: Yes
Non: No
Envoyer: Send
Retour: Back
Retour à mon activité: Back to my business
Retour à la création: Back to creation
Voir les autres simulateurs: See the other simulators
legalNotice:
title: Legal notice
editeur:
@ -190,14 +194,14 @@ Commencer: Get started
Passer: Skip
entreprise:
page:
autoEntrepreneur:
description: A complete todo list to help you become {{autoEntrepreneur}} in France.`
titre: How to become {{autoEntrepreneur}}
entreprise:
description: A complete todo list to help you create a {{status}} with the French administration.`
titre: Create an {{status}}
tâches:
page:
autoEntrepreneur:
description: A complete todo list to help you become {{autoEntrepreneur}} in France.`
titre: How to become {{autoEntrepreneur}}
entreprise:
description: A complete todo list to help you create a {{companyStatus}} with the French administration.`
titre: Create a {{companyStatus}} in France
nom:
titre: Find a corporate name
description: |
@ -278,18 +282,89 @@ entreprise:
<0>$t(Plus d'informations)</0>
</2>
avancement: Use these lists to track down your advancement in the business creation process. It is automatically saved in your browser.
retour: Choose another status
ensuite: After registration
titre: The to-do list for creating your business
retour: Choose another status
ressources:
simu:
indépendant: |
<0>Independent: contribution simulator </0>
<1>Simulate the amount of your social security contributions to prepare your business plan.</1>
assimilé: |
<0>Assimilé-salarié: contribution simulator </0>
<1>Simulate the amount of your social security contributions to prepare your business plan.</1>
autoEntrepreneur: |
<0>Auto-entrepreneur: income simulator</0>
<1>Simulate the amount of your social security contributions and taxes and estimate your future net income.</1>
après: |
<0>After registration</0>
<1>SIREN, SIRET, code APE, KBis. A small glossary of terms that you may (possibly) encounter after creation.</1>
créer:
titre: Create a company
description: The first step is to choose a legal status that is appropriate for your business. The administrative procedures for setting up your business change according to it.
warningPL: "Note: the case of regulated liberal professions is not covered"
cta:
default: Find the right status
continue: Continue the guide
ressources:
listeStatuts: |
<0>List of legal statuses</0>
<1>EURL, SARL, SASU, etc: a shortcut if you already know your status </1>
comparaison: |
<0> SASU, EURL or auto-entrepreneur?</0>
<1>Discover the differences in terms of income, contributions, retirement, etc.</1>
autoEntrepreneur:
<0>Become auto-entrepreneur</0>
<1>Go to the simplified creation process for small businesses</1>
gérer:
titre: Manage my business
description: Do you want to earn an income or hire? You will have to pay contributions and taxes. Anticipate their amounts thanks to simulators adapted to your situation.
cta: Find my company
choix:
titre: What do you want to do?
embauche: |
<0>Estimate the amount spent for hiring</0>
<1>Calculate how much your company will have to spend to pay your next employee</1>
revenus: |
<0>Calculate my net income</0>
<1>Estimate precisely the amount of your contributions thanks to the URSSAF simulator for {{régime}}</1>
ressources:
embaucher: |
<0>Discover the hiring process</0>
<1>The list of things to do to make sure you don't forget anything when hiring a new employee</1>
sécuritéSociale:
<0>Understanding social security</0>
<1>What are social security contributions used for? Update on the social protection system enjoyed by all workers in France</1>
autoEntrepreneur:
<0>Access the official auto-entrepreneur website</0>
<1>You will be able to make your turnover declaration, pay your contributions, and more widely find all the information relating to the status of auto-entrepreneur</1>
entreprise:
auto: Are you an auto-entrepreneur?
dirigeant: |
<0>Are you the majority director?</0>
<1>If you are a majority director or a member of a majority board of directors, you will not have the same social security system as if you are a minority.</1>
majoritaire: Majority director
minoritaire: Minority director
changer: Change the selected company
sécu:
titre: Social security in France
contenu: |
<0> Social protection</0>
<1>In France, all workers benefit from quality social protection. This mandatory system is based on solidarity and aims to ensure the <2>general well-being of the population</2>.</1>
<2>In return for the payment of <2>social security contributions</2>, the contributor is covered for illness, accidents at work, unemployment or retirement.</2>
Mon entreprise: My company
Mon revenu: My income
formeJuridique:
page:
titre: Which legal status should you choose for your company in France?
description: >
The French business law defines more than 20 possible legal statuses to declare a company with various acronyms and processes : SAS, SARL, SA, EIRL... This guide quickly helps you to find the right status for your company project in France.
titre: Create a company
incertain: Not sure about this status? Take our guide to help you choose
intro: 'The French business law defines more than 20 possible legal statuses to declare a company with various acronyms and processes : SAS, SARL, SA, EIRL... This guide will help you find quickly the right status for your needs.'
titre: Choice of legal status
EI: Also called company in own name or company in a personal name. No capital contribution is necessary. Private wealth and corporate wealth are one.
EIRL: Allows you to protect your personal assets by allocating specific capital to your professional activity. Society and the individual are the same person. Not suitable if the sole shareholder is a legal entity (company) or if you plan to welcome other shareholders during the development of your company (choose EURL in this case).
EURL: The company has only one partner. Liability is limited to the amount of the capital contribution of the sole shareholder. Evolves into a SARL when new partners join the company.
@ -300,13 +375,11 @@ formeJuridique:
SNC: The liability of the partners for the debts of the company is unified (one partner only can be sued for the entire debt) and indefinite (responsible on the entirety of their personnal wealth).
micro: The auto-entrepreneur is a sole proprietorship company, subject to a flat-rate scheme for the calculation of taxes and the payment of social security contributions.
micro-EIRL: The EIRL auto-entrepreneur is a sole proprietorship with limited liability, subject to a flat-rate scheme for the calculation of taxes and the payment of social security contributions.
entreprise-déjà-crée: I have already declared my company
Votre forme juridique: Your legal status
Créer une: Create a
Devenir: Become
Choisir la forme juridique: Choose your legal status
Je connais mon statut: I know my status
responsabilité:
page:
@ -392,26 +465,6 @@ après:
retour: Creation checklist
avance: Go to social security
sécu:
page:
titre: 'Social security in France: costs and benefits'
description: Découvrez les coûts et avantages de la sécurité sociale française en simulant un cas concret d'embauche dans votre entreprise.
content: |
<0>Social protection: costs and benefits</0>
<1>
France has chosen to provide its citizens with a high-quality social safety net. This mandatory system is based on solidarity and designed to ensure the <strong>general welfare of its people
</1>
video: Social security explained visually
entrepriseCrée: If you already own a company, we can <2>automatically customize</2> your simulations to your situation. All you have to do is <5>enter the name of your company</5>.
choix:
titre: What do you want to estimate?
auto-entrepreneur: Estimate my remuneration as an auto-entrepreneur
dirigeant1: My income as a {{legalStatus}} director
dirigeant2: My income as a company director
employé: An employee's salary
Mon entreprise: My company
Mon revenu: My income
Protection sociale: Social security
Rémunération du dirigeant: Director's remuneration
Simulateur de salaire: Employee salary simulation
@ -490,12 +543,10 @@ Démarches de création: Creation process checklist
path:
créer:
index: '/company'
statut: '/{{companyStatus}}'
devenirAutoEntrepreneur: '/become-{{autoEntrepreneur}}'
index: '/create'
après: '/after-registration'
guideStatut:
index: '/legal-status-guide'
index: '/legal-status'
liste: '/list'
gérantMinoritaire: '/chairman-or-managing-director'
responsabilité: '/liability'
@ -505,12 +556,11 @@ path:
gérer:
index: '/manage'
embaucher: '/hiring'
selection: '/social-scheme-selection'
sécuritéSociale: '/social-security'
simulateurs:
index: /simulators
assimilé-salarié: '/assimilated-salaried'
indépendant: '/self-employed'
assimilé-salarié: '/assimile-salarie'
indépendant: '/independant'
auto-entrepreneur: '/auto-entrepreneur'
salarié: '/salaried'
comparaison: '/social-scheme-comparaison'
@ -567,8 +617,6 @@ Intégrer nos simulateurs: Integrate our simulators
Intégrer l'interface de simulation: Integrate the simulation interface
Intégrer la bibliothèque de calcul: Integrate the calculation library
# Landing infrance
Créer mon entreprise: Create my company
landing:
title: The official assistant for entrepreneurs
subtitle: All the resources you need to develop your business, from legal status to hiring.
@ -576,6 +624,7 @@ landing:
create: <0>Create a company</0><1>Assistance in choosing the status and the complete list of creation steps</1>
manage: <0>Manage my business</0><1>Simulators to anticipate the amount of contributions and better manage your cash flow</1>
declare: <0>What income should I declare?</0><1>How to report your income from online platforms (AirBnb, leboncoin, blablacar, etc.)</1>
seeSimulators: See the simulators list
aboutUs: |
<0>About us</0>
<1>This website is developed by the administration to <2>support entrepreneurs in the development of their business</2>.</1>
@ -583,7 +632,7 @@ landing:
<3>Our objective is to <2>remove all uncertainties regarding the administration tasks</2> so that you can focus on what matters: your business.</3>
<4>We are a small, autonomous and multidisciplinary team within the <4>URSSAF</4>. We are committed to being as close as possible to our users in order to continuously improve this site in accordance with the <7>Startup d'État</7> method.</4>
<5>Feel free to send us your comments and suggestions at <2>contact@mon-entreprise.beta.gouv.fr </2>.</5>
À quoi servent mes cotisations ?: How are my contributions distributed?
Accueil: Home
@ -604,8 +653,31 @@ Simulations personnalisées: Customized simulations
indicationTempsPlein: in full-time gross salary equivalent
auto-entreprise: auto-enterprise
Comparer les trois régimes: Compare the three schemes
simulateurs:
accueil:
titre: Available simulators
assimilé: |
<0>"Assimilé-salarié"</0>
<1>Calculate the income of an officer of a minority SAS, SASU or SARL</1>
indépendant: |
<0>"Indépendant"</0>
<1>Calculate the income of a majority manager of EURL, EI, or SARL</1>
auto: |
<0>Auto-entrepreneur</0>
<1>Calculate the income (or turnover) of an auto-entrepreneur</1>
salarié: |
<0>Employee</0>
<1>Calculate the net, gross, or total salary of an employee, trainee, or similar</1>
comparaison: |
<0>Status comparison</0>
<1>Simulate the differences between the plans (contributions, retirement, maternity, illness, etc.)</1>
description:
<0>All the simulators on this site are:</0>
<1><0>Maintained with the latest legislation</0>
<1>Continuously improved to increase the number of devices taken into account (currently 320)</1>
<2>Developed in partnership with the Urssaf (the contribution collector entity in France)<2>
</1>
inversionFail: The amount entered is too small or results in an impossible situation, try another one
warning:
titre: Before starting...
@ -768,3 +840,5 @@ Votre entreprise: Your company
Crée le: Created on
domiciliée à: domiciled in
"Nom de l'entreprise ou SIREN ": Company name or SIREN code
Ressources utiles: Helpful resources
Aucun résultat: No result

View File

@ -24,7 +24,7 @@ export default function AfterRegistration() {
exact
activeClassName="ui__ hide"
className="ui__ simple small button">
Retour à la création
<T>Retour à la création</T>
</NavLink>
</div>
<h1>

View File

@ -42,20 +42,20 @@ const CreateCompany = ({
const titre = isAutoentrepreneur
? t(
[
'entreprise.tâches.page.autoEntrepreneur.titre',
'entreprise.page.autoEntrepreneur.titre',
'Comment devenir {{autoEntrepreneur}}'
],
{
autoEntrepreneur: t(statut)
autoEntrepreneur: statut
}
)
: t(
[
'entreprise.tâches.page.entreprise.titre',
'Créer une {{statut}}'
'entreprise.page.entreprise.titre',
'Créer une {{status}}'
],
{
statut: t(statut)
status: statut
}
)
return (
@ -68,14 +68,14 @@ const CreateCompany = ({
isAutoentrepreneur
? t(
[
'entreprise.tâches.page.autoEntrepreneur.description',
'entreprise.page.autoEntrepreneur.description',
'La liste complète des démarches à faire pour devenir {{autoEntrepreneur}}.'
],
{ autoEntrepreneur: t(statut) }
)
: t(
[
'entreprise.tâches.page.description',
'entreprise.page.description',
"La liste complète des démarches à faire pour créer une {{statut}} auprès de l'administration française."
],
{ statut: t(statut) }
@ -86,7 +86,7 @@ const CreateCompany = ({
<Scroll.toTop />
<div css="transform: translateY(2rem);">
<button onClick={onStatusChange} className="ui__ simple small push-left button">
<T k="entreprise.tâches.retour"> Choisir un autre statut</T>
<T k="entreprise.retour"> Choisir un autre statut</T>
</button>
</div>
@ -438,7 +438,7 @@ const CreateCompany = ({
}
/>
</Checklist>
<h2>{emoji('🧰')} Ressources utiles</h2>
<h2>{emoji('🧰')} <T>Ressources utiles</T></h2>
<div
css={`
display: flex;
@ -452,37 +452,43 @@ const CreateCompany = ({
{isAutoentrepreneur && <Link
className="ui__ interactive card button-choice lighter-bg"
to={{ pathname: sitePaths.simulateurs['auto-entrepreneur'], state: { fromCréer: true } }}>
<p>Simulateur de revenus auto-entrepreneur</p>
<small>
Simuler le montant de vos cotisations sociale et de votre impôt et estimez votre futur revenu net.
<T k="entreprise.ressources.simu.autoEntrepreneur"><p>Simulateur de revenus auto-entrepreneur</p>
<small>
Simuler le montant de vos cotisations sociale et de votre impôt et estimez votre futur revenu net.
</small>
</T>
</Link>
}
{['EI', 'EIRL', 'EURL'].includes(statut) && <Link
className="ui__ interactive card button-choice lighter-bg"
to={{ pathname: sitePaths.simulateurs.indépendant, state: { fromCréer: true } }}>
<p>Simulateur de cotisations indépendant</p>
<small>
Simuler le montant de vos cotisations sociales pour bien préparer votre business plan.
</small>
<T k="entreprise.ressources.simu.indépendant">
<p>Simulateur de cotisations indépendant</p>
<small>
Simuler le montant de vos cotisations sociales pour bien préparer votre business plan.
</small></T>
</Link>
}
{['SAS', 'SASU'].includes(statut) && <Link
className="ui__ interactive card button-choice lighter-bg"
to={{ pathname: sitePaths.simulateurs['assimilé-salarié'], state: { fromCréer: true } }}>
<p>Simulateur de cotisations assimilé-salarié</p>
<small>
Simuler le montant de vos cotisations sociales pour bien préparer votre business plan.
<T k="entreprise.ressources.simu.assimilé">
<p>Simulateur de cotisations assimilé-salarié</p>
<small>
Simuler le montant de vos cotisations sociales pour bien préparer votre business plan.
</small>
</T>
</Link>
}
<Link
className="ui__ interactive card button-choice lighter-bg"
to={sitePaths.créer.après}>
<p> <T k="entreprise.tâches.ensuite">Après la création</T></p>
<small>
SIREN, SIRET, code APE, KBis. Un petit glossaire des termes que vous pourrez (éventuellement) rencontrer après la création.
</small>
<T k="entreprise.ressources.après">
<p>Après la création</p>
<small>
SIREN, SIRET, code APE, KBis. Un petit glossaire des termes que vous pourrez (éventuellement) rencontrer après la création.
</small>
</T>
</Link>
{i18n.language === 'fr' && (<a
target="_blank"
@ -499,7 +505,7 @@ const CreateCompany = ({
</div>
</a>)}
</div>
</Animate.fromBottom>
</Animate.fromBottom >
)
}
export default compose(

View File

@ -4,7 +4,6 @@ import { T } from 'Components';
import { SitePathsContext } from 'Components/utils/withSitePaths';
import { toPairs } from 'ramda';
import React, { useContext, useEffect } from 'react';
import { Helmet } from 'react-helmet';
import { useTranslation } from 'react-i18next';
import { useDispatch } from 'react-redux';
import { NavLink, Route, useLocation } from 'react-router-dom';
@ -43,37 +42,21 @@ const useResetFollowingAnswers = () => {
}
export default function Créer() {
const { t } = useTranslation()
const sitePaths = useContext(SitePathsContext);
useResetFollowingAnswers();
return (
<>
<Helmet>
<title>
{t(
'formeJuridique.page.titre',
'Quel statut juridique choisir : le guide pas à pas'
)}
</title>
<meta
name="description"
content={t(
'formeJuridique.page.description',
"Le droit des affaires français définit plus de 20 statuts juridiques possibles pour déclarer une société avec différents acronymes et processus : SAS, SARL, SA, EIRL.... Ce guide vous aide rapidement à trouver le bon statut pour votre projet d'entreprise"
)}
/>
</Helmet>
<div css="transform: translateY(2rem)">
<NavLink
to={sitePaths.créer.index}
exact
activeClassName="ui__ hide"
className="ui__ simple push-left small button">
Retour
</NavLink>
<T>Retour</T>
</NavLink>
</div>
<h1 className="question__title">
<T k="guideStatut.titre">Choix du statut juridique</T>
<h1>
<T k="formeJuridique.titre">Choix du statut juridique</T>
</h1>
<PreviousAnswers />
<Route

View File

@ -3,6 +3,7 @@ import { T } from 'Components'
import Animate from 'Components/ui/animate'
import { SitePathsContext } from 'Components/utils/withSitePaths'
import React, { useContext } from 'react'
import { Helmet } from 'react-helmet'
import { useTranslation } from 'react-i18next'
import { useSelector } from 'react-redux'
import { Link } from 'react-router-dom'
@ -17,23 +18,31 @@ export default function Créer() {
.length);
return (
<Animate.fromBottom>
<Helmet>
<title>{t(
'créer.titre',
'Créer une entreprise'
)}</title>
</Helmet>
<h1 className="question__title">
<T k="formeJuridique.titre">Créer mon entreprise</T>
<h1>
<T k="créer.titre">Créer une entreprise</T>
</h1>
<div css="display: flex; align-items: flex-start; justify-content: space-between">
<div>
<p className='ui__ lead'>
La première étape consiste à choisir un statut juridique adapté à votre activité.
Les démarches administratives pour créer votre entreprise changent en fonction de ce dernier.
</p>
<T k="créer.description">
La première étape consiste à choisir un statut juridique adapté à votre activité.
Les démarches administratives pour créer votre entreprise changent en fonction de ce dernier.
</T>
</p>
<Link
className="ui__ button plain cta"
to={guideAlreadyStarted && nextQuestionUrl ? nextQuestionUrl : sitePaths.créer.guideStatut.multipleAssociates}>
<T>{!guideAlreadyStarted ? 'Trouver le bon statut' : 'Continuer le guide'}</T>
{!guideAlreadyStarted ? t('créer.cta.default', 'Trouver le bon statut') : t('créer.cta.continue', 'Continuer le guide')}
</Link>
<p className="ui__ notice">Note : le cas des professions libérales réglementées n'est pas traitées</p>
<p className="ui__ notice"><T k="créer.warningPL">Note : le cas des professions libérales réglementées n'est pas traités</T></p>
</div>
<img
@ -42,7 +51,7 @@ export default function Créer() {
css="margin-left: 3rem; max-width: 15rem; transform: translateX(2rem) scale(1.4);"
/>
</div>
<h2>Ressources utiles</h2>
<h2><T>Ressources utiles</T></h2>
<div
css={`
display: flex;
@ -55,27 +64,35 @@ export default function Créer() {
<Link
className="ui__ interactive card button-choice lighter-bg"
to={sitePaths.créer.guideStatut.liste}>
<p>Liste des statuts juridiques </p>
<small>
EURL, SARL, SASU, etc : un raccourci si vous connaissez déjà votre statut
<T k="créer.ressources.listeStatuts">
<p>Liste des statuts juridiques </p>
<small>
EURL, SARL, SASU, etc : un raccourci si vous connaissez déjà votre statut
</small>
</T>
</Link>
<Link
className="ui__ interactive card button-choice lighter-bg"
to={{ pathname: sitePaths.simulateurs.comparaison, state: { fromCréer: true } }}>
<p>SASU, EURL ou auto-entrepreneur ?</p>
<small>
Découvrez les différences en terme de revenus, cotisations, retraite, etc.
<T k="créer.ressources.comparaison">
<p>SASU, EURL ou auto-entrepreneur ?</p>
<small>
Découvrez les différences en terme de revenus, cotisations, retraite, etc.
</small>
</T>
</Link>
<Link
className="ui__ interactive card button-choice lighter-bg"
to={sitePaths.créer['auto-entrepreneur']}>
<p>Devenir auto-entrepreneur</p>
<small>
Découvrez les démarches de création simplifiées
<T k="créer.ressources.autoEntrepreneur">
<p>Devenir auto-entrepreneur</p>
<small>
Accédez aux démarches de création simplifiées pour les petites activités
</small>
</T>
</Link>
</div>
</Animate.fromBottom >

View File

@ -46,18 +46,18 @@ export default function SocialSecurity() {
return (
<>
<Helmet>
<title>{t('gérer.index.page.titre', 'Gérer mon activité')}</title>
<title>{t('gérer.titre', 'Gérer mon activité')}</title>
</Helmet>
<ScrollToTop />
<Animate.fromBottom>
<h1>
<T k="gérer.index.page.titre">Gérer mon activité</T>
<T k="gérer.titre">Gérer mon activité</T>
</h1>
<div css="display: flex; align-items: flex-start; justify-content: space-between">
<div>
{!company && (
<p className="ui__ lead">
<T k="gérer.index.content.entreprise">
<T k="gérer.description">
Vous souhaitez vous verser un revenu ou embaucher ? <br />
Vous aurez à payer des cotisations et des impôts. <br />
Anticipez leurs montants grâce aux simulateurs adaptés à votre
@ -76,7 +76,7 @@ export default function SocialSecurity() {
</div>
<>
<h2>Que souhaitez-vous faire ? </h2>
<h2><T k="gérer.choix.titre">Que souhaitez-vous faire ?</T></h2>
{!!régime && (
<Link
className="ui__ interactive card button-choice lighter-bg"
@ -87,13 +87,15 @@ export default function SocialSecurity() {
fromGérer: true
}
}}>
<p>
<T k="sécu.choix.dirigeant2">Calculer mon revenu net</T>
</p>
<small>
Estimez précisément le montant de vos cotisations grâce au
simulateur {régime} de lURSSAF
</small>
<T k="gérer.choix.revenus">
<p>
Calculer mon revenu net
</p>
<small>
Estimez précisément le montant de vos cotisations grâce au
simulateur {{ régime }} de lURSSAF
</small>
</T>
</Link>
)}
{régime !== 'auto-entrepreneur' && (
@ -106,16 +108,18 @@ export default function SocialSecurity() {
fromGérer: true
}
}}>
<p>
<T k="sécu.choix.employé">Estimer le montant dune embauche</T>
<T k="gérer.choix.embauche">
<p>
Estimer le montant dune embauche
</p>
<small>
Découvrez le montant total dépensé par lentreprise pour
rémunérer votre prochain employé
<small>
Calculez le montant total que votre entreprise devra dépenser pour
rémunérer votre prochain employé
</small>
</T>
</Link>
)}
<h2>Ressources utiles</h2>
<h2><T>Ressources utiles</T></h2>
<div
css={`
display: flex;
@ -129,34 +133,41 @@ export default function SocialSecurity() {
<Link
className="ui__ interactive card button-choice lighter-bg"
to={sitePaths.gérer.embaucher}>
<p>Découvrir les démarches dembauche </p>
<small>
La liste des choses à faire pour être sûr de ne rien oublier
lors de lembauche dun nouveau salarié
<T k="gérer.ressources.embaucher">
<p>Découvrir les démarches dembauche </p>
<small>
La liste des choses à faire pour être sûr de ne rien oublier
lors de lembauche dun nouveau salarié
</small>
</T>
</Link>
)}
{company ?.isAutoEntrepreneur && (
<a
className="ui__ interactive card button-choice lighter-bg"
href="https://autoentrepreneur.urssaf.fr">
<p>Accéder au site officiel auto-entrepreneur</p>
<small>
Vous pourrez effectuer votre déclaration de chiffre d'affaire,
payer vos cotisations, et plus largement trouver toutes les
informations relatives au statut d'auto-entrepreneur
<T k="gérer.ressources.autoEntrepreneur">
<p>Accéder au site officiel auto-entrepreneur</p>
<small>
Vous pourrez effectuer votre déclaration de chiffre d'affaire,
payer vos cotisations, et plus largement trouver toutes les
informations relatives au statut d'auto-entrepreneur
</small>
</T>
</a>
)}
<Link
className="ui__ interactive card button-choice lighter-bg"
to={sitePaths.gérer.sécuritéSociale}>
<p>Comprendre la sécurité sociale </p>
<small>
A quoi servent les cotisations sociales ? Le point sur le
système de protection sociale dont bénéficient touts les
travailleurs en France
<T k="gérer.ressources.sécuritéSociale">
<p>Comprendre la sécurité sociale </p>
<small>
A quoi servent les cotisations sociales ? Le point sur le
système de protection sociale dont bénéficient touts les
travailleurs en France
</small>
</T>
</Link>
</div>
</>
@ -210,17 +221,17 @@ const CompanySection = ({ company }) => {
<>
<ScrollToTop />
<Overlay>
<h2> Êtes-vous auto-entrepreneur ? </h2>
<h2><T k="gérer.entreprise.auto">Êtes-vous auto-entrepreneur ? </T></h2>
<div className="ui__ answer-group">
<button
className="ui__ button"
onClick={() => handleAnswerAutoEntrepreneur(true)}>
Oui
<T>Oui</T>
</button>
<button
className="ui__ button"
onClick={() => handleAnswerAutoEntrepreneur(false)}>
Non
<T>Non</T>
</button>
</div>
</Overlay>
@ -230,22 +241,24 @@ const CompanySection = ({ company }) => {
<>
<ScrollToTop />
<Overlay>
<h2> Êtes-vous dirigeant majoritaire ? </h2>
<p>
Si vous êtes administrateur majoritaire ou si vous faites partie
d'un conseil d'administration majoritaire, vous n'aurez pas le
même statut que si vous êtes minoritaire.
</p>
<T k="gérer.entreprise.dirigeant">
<h2> Êtes-vous dirigeant majoritaire ? </h2>
<p>
Si vous êtes administrateur majoritaire ou si vous faites partie
d'un conseil d'administration majoritaire, vous n'aurez pas le
même régime de sécurité sociale que si vous êtes minoritaire.
</p>
</T>
<div className="ui__ answer-group">
<button
className="ui__ button"
onClick={() => handleAnswerDirigeantMajoritaire(true)}>
Oui
<T>Oui</T>
</button>
<button
className="ui__ button"
onClick={() => handleAnswerDirigeantMajoritaire(false)}>
Non
<T>Non</T>
</button>
</div>
</Overlay>
@ -274,8 +287,8 @@ const CompanySection = ({ company }) => {
{company.isDirigeantMajoritaire != null && (
<span css="margin-left: 1rem" className="ui__ label">
{company.isDirigeantMajoritaire
? 'Dirigeant majoritaire'
: 'Dirigeant minoritaire'}
? <T k="gérer.entreprise.majoritaire">Dirigeant majoritaire</T>
: <T k="gérer.entreprise.minoritaire">Dirigeant minoritaire</T>}
</span>
)}
</>
@ -287,7 +300,7 @@ const CompanySection = ({ company }) => {
dispatch(resetEntreprise())
showSearchModal(true)
}}>
<T>Changer l'entreprise sélectionnée</T>
<T k="gérer.entreprise.changer">Changer l'entreprise sélectionnée</T>
</button>
</>
) : (
@ -295,7 +308,7 @@ const CompanySection = ({ company }) => {
<button
onClick={() => showSearchModal(true)}
className="ui__ plain cta button">
<T>Renseigner mon entreprise</T>
<T k="gérer.cta">Renseigner mon entreprise</T>
</button>
</p>
)}

View File

@ -10,11 +10,10 @@ export default function SocialSecurity() {
<>
<Helmet>
<title>{t('sécu.page.titre', 'Sécurité sociale')}</title>
<meta name="description" content={t('sécu.page.description')} />
</Helmet>
<Animate.fromBottom>
<T k="sécu.content">
<T k="sécu.contenu">
<h1>Protection sociale </h1>
<p>
En France, tous les travailleurs bénéficient d'une protection

View File

@ -1,3 +1,4 @@
import { T } from 'Components'
import { ScrollToTop } from 'Components/utils/Scroll'
import { SitePathsContext } from 'Components/utils/withSitePaths'
import React, { useContext } from 'react'
@ -5,7 +6,6 @@ import { Route, Switch } from 'react-router'
import { NavLink, useLocation } from 'react-router-dom'
import Embaucher from './Embaucher'
import Home from './Home'
import SchemeSelection from './SchemeSelection'
import SécuritéSociale from './SécuritéSociale'
export default function Gérer() {
@ -20,13 +20,11 @@ export default function Gérer() {
exact
activeClassName="ui__ hide"
className="ui__ simple push-left small button">
Retour à mon activité
<T>Retour à mon activité</T>
</NavLink>
</div>
<Switch>
<Route exact path={sitePaths.gérer.index} component={Home} />
<Route path={sitePaths.gérer.selection} component={SchemeSelection} />
<Route
path={sitePaths.gérer.sécuritéSociale}
component={SécuritéSociale}

View File

@ -85,8 +85,8 @@ export default function Landing() {
to={sitePaths.simulateurs.index}
className="ui__ simple small button ">
{emoji('🧮')} Voir la liste des simulateurs
</Link>
{emoji('🧮')} <T k="landing.seeSimulators">Voir la liste des simulateurs</T>
</Link>
</div>
<T k="landing.aboutUs">
<h2>Qui sommes-nous ?</h2>

View File

@ -1,16 +1,21 @@
import { SitePathsContext } from 'Components/utils/withSitePaths'
import React, { useContext } from 'react'
import emoji from 'react-easy-emoji'
import { Link } from 'react-router-dom'
import { T } from 'Components';
import { SitePathsContext } from 'Components/utils/withSitePaths';
import React, { useContext } from 'react';
import emoji from 'react-easy-emoji';
import { Helmet } from 'react-helmet';
import { useTranslation } from 'react-i18next';
import { Link } from 'react-router-dom';
export default function Simulateurs() {
const sitePaths = useContext(SitePathsContext)
const { t } = useTranslation();
const titre = t('simulateurs.accueil.titre', 'Simulateurs disponibles');
return (
<>
<Helmet><title>{titre}</title></Helmet>
<section className="ui__ full-width light-bg center-flex">
<h1 css='min-width: 100%; text-align: center'>Simulateurs disponibles</h1>
<h1 css='min-width: 100%; text-align: center'>{titre}</h1>
<Link
className="ui__ interactive card box"
to={{
@ -18,10 +23,12 @@ export default function Simulateurs() {
pathname: sitePaths.simulateurs['assimilé-salarié']
}}>
<div className="ui__ big box-icon">{emoji('☂️')}</div>
<h3>Assimilé salarié</h3>
<p className="ui__ notice" css="flex: 1">
Calculer le revenu d'un dirigeant de SAS, SASU ou SARL minoritaire
<T k="simulateurs.accueil.assimilé">
<h3>Assimilé salarié</h3>
<p className="ui__ notice" css="flex: 1">
Calculer le revenu d'un dirigeant de SAS, SASU ou SARL minoritaire
</p>
</T>
</Link>
<Link
className="ui__ interactive card box"
@ -30,10 +37,12 @@ export default function Simulateurs() {
pathname: sitePaths.simulateurs.indépendant
}}>
<div className="ui__ big box-icon">{emoji('🃏')}</div>
<h3>Indépendant</h3>
<p className="ui__ notice" css="flex: 1">
Calculer le revenu d'un dirigeant de EURL, EI, ou SARL majoritaire
<T k="simulateurs.accueil.indépendant">
<h3>Indépendant</h3>
<p className="ui__ notice" css="flex: 1">
Calculer le revenu d'un dirigeant de EURL, EI, ou SARL majoritaire
</p>
</T>
</Link>
<Link
className="ui__ interactive card box"
@ -42,10 +51,12 @@ export default function Simulateurs() {
pathname: sitePaths.simulateurs['auto-entrepreneur']
}}>
<div className="ui__ big box-icon">{emoji('🧢')}</div>
<h3>Auto-entrepreneur</h3>
<p className="ui__ notice" css="flex: 1">
Calculer le revenu (ou le chiffre d'affaires) d'un auto-entrepreneur
<T k="simulateurs.accueil.auto">
<h3>Auto-entrepreneur</h3>
<p className="ui__ notice" css="flex: 1">
Calculer le revenu (ou le chiffre d'affaires) d'un auto-entrepreneur
</p>
</T>
</Link>
<Link
className="ui__ interactive card box"
@ -54,11 +65,13 @@ export default function Simulateurs() {
pathname: sitePaths.simulateurs.salarié
}}>
<div className="ui__ big box-icon">{emoji('🤝')}</div>
<h3>Salarié</h3>
<p className="ui__ notice" css="flex: 1">
Calculer le salaire net, brut, ou total d'un salarié, stagiaire, ou
assimilé
<T k="simulateurs.accueil.salarié">
<h3>Salarié</h3>
<p className="ui__ notice" css="flex: 1">
Calculer le salaire net, brut, ou total d'un salarié, stagiaire, ou
assimilé
</p>
</T>
</Link>
<Link
className="ui__ interactive card box"
@ -67,23 +80,26 @@ export default function Simulateurs() {
pathname: sitePaths.simulateurs.comparaison
}}>
<div className="ui__ big box-icon">{emoji('📊')}</div>
<h3>Comparaison statuts</h3>
<p className="ui__ notice" css="flex: 1">
Simulez les différences entre les régimes (cotisations, retraite, maternité, maladie, etc.)
<T k="simulateurs.accueil.comparaison">
<h3>Comparaison statuts</h3>
<p className="ui__ notice" css="flex: 1">
Simulez les différences entre les régimes (cotisations, retraite, maternité, maladie, etc.)
</p>
</T>
</Link>
</section>
<section>
<p>
Tous les simulateurs sur ce site sont :
<T k="simulateurs.accueil.description">
<p>
Tous les simulateurs sur ce site sont :
</p>
<ul>
<li><strong>Maintenus à jour</strong> avec les dernières legislation</li>
<li><strong>Améliorés en continu</strong> afin d'augmenter le nombre de dispositifs pris en compte (actuellement 320)</li>
<li>Développés en <strong>partenariat avec l'Urssaf</strong></li>
</ul>
<ul>
<li><strong>Maintenus à jour</strong> avec les dernières legislation</li>
<li><strong>Améliorés en continu</strong> afin d'augmenter le nombre de dispositifs pris en compte (actuellement 320)</li>
<li>Développés en <strong>partenariat avec l'Urssaf</strong></li>
</ul>
</T>
</section>
</>
)

View File

@ -1,3 +1,4 @@
import { T } from 'Components'
import { usePersistingState } from 'Components/utils/persistState'
import { ScrollToTop } from 'Components/utils/Scroll'
import { SitePathsContext } from 'Components/utils/withSitePaths'
@ -31,23 +32,23 @@ export default function Simulateurs() {
<Link
to={sitePaths.gérer.index}
className="ui__ simple small push-left button">
Retour à mon activité
</Link>
<T>Retour à mon activité</T>
</Link>
)}
{lastState ?.fromCréer && (
<Link
to={sitePaths.créer.index}
className="ui__ simple small push-left button">
Retour à la création
</Link>
<T>Retour à la création</T>
</Link>
)}
{!lastState ||
(lastState ?.fromSimulateurs && (
<Link
to={sitePaths.simulateurs.index}
className="ui__ simple small push-left button">
Voir les autres simulateurs
</Link>
<T>Voir les autres simulateurs</T>
</Link>
))}
</div>
)}

View File

@ -61,7 +61,6 @@ export const constructLocalizedSitePath = (language: string) => {
gérer: {
index: t('path.gérer.index', '/gérer'),
embaucher: t('path.gérer.embaucher', '/embaucher'),
selection: t('path.gérer.selection', '/sélection-du-régime'),
sécuritéSociale: t('path.gérer.sécuritéSociale', '/sécurité-sociale'),
},
simulateurs: {

View File

@ -1,30 +1,32 @@
https://mycompanyinfrance.com/company
https://mycompanyinfrance.com/company/my-company
https://mycompanyinfrance.com/company/create-a-EI
https://mycompanyinfrance.com/company/create-a-EIRL
https://mycompanyinfrance.com/company/create-a-EURL
https://mycompanyinfrance.com/company/create-a-SAS
https://mycompanyinfrance.com/company/create-a-SARL
https://mycompanyinfrance.com/company/create-a-SASU
https://mycompanyinfrance.com/company/create-a-SNC
https://mycompanyinfrance.com/company/become-auto-entrepreneur
https://mycompanyinfrance.com/company/become-auto-entrepreneur-EIRL
https://mycompanyinfrance.com/company/create-a-SA
https://mycompanyinfrance.com/company/find
https://mycompanyinfrance.com/company/after-registration
https://mycompanyinfrance.com/company/legal-status
https://mycompanyinfrance.com/company/legal-status/list
https://mycompanyinfrance.com/company/legal-status/liability
https://mycompanyinfrance.com/company/legal-status/directors-status
https://mycompanyinfrance.com/company/legal-status/auto-entrepreneur
https://mycompanyinfrance.com/company/legal-status/multiple-associates
https://mycompanyinfrance.com/company/legal-status/chairman-or-managing-director
https://mycompanyinfrance.com/social-security
https://mycompanyinfrance.com/social-security/assimilated-salaried
https://mycompanyinfrance.com/social-security/self-employed
https://mycompanyinfrance.com/social-security/auto-entrepreneur
https://mycompanyinfrance.com/social-security/comparaison-assimilé-salarié-indépendant-et-auto-entrepreneur
https://mycompanyinfrance.com/social-security/scheme-selection
https://mycompanyinfrance.com/social-security/salaried
https://mycompanyinfrance.com/hiring-process
https://mycompanyinfrance.com/documentation
https://mycompanyinfrance.fr/create
https://mycompanyinfrance.fr/create/SA
https://mycompanyinfrance.fr/create/auto-entrepreneur-EIRL
https://mycompanyinfrance.fr/create/auto-entrepreneur
https://mycompanyinfrance.fr/create/SASU
https://mycompanyinfrance.fr/create/SARL
https://mycompanyinfrance.fr/create/SAS
https://mycompanyinfrance.fr/create/EURL
https://mycompanyinfrance.fr/create/EIRL
https://mycompanyinfrance.fr/create/EI
https://mycompanyinfrance.fr/create/after-registration
https://mycompanyinfrance.fr/create/legal-status
https://mycompanyinfrance.fr/create/legal-status/list
https://mycompanyinfrance.fr/create/legal-status/liability
https://mycompanyinfrance.fr/create/legal-status/director
https://mycompanyinfrance.fr/create/legal-status/auto-entrepreneur
https://mycompanyinfrance.fr/create/legal-status/multiple-associates
https://mycompanyinfrance.fr/create/legal-status/chairman-or-managing-director
https://mycompanyinfrance.fr/manage
https://mycompanyinfrance.fr/manage/hiring
https://mycompanyinfrance.fr/manage/social-security
https://mycompanyinfrance.fr/simulators
https://mycompanyinfrance.fr/simulators/assimile-salarie
https://mycompanyinfrance.fr/simulators/independant
https://mycompanyinfrance.fr/simulators/auto-entrepreneur
https://mycompanyinfrance.fr/simulators/social-scheme-comparaison
https://mycompanyinfrance.fr/simulators/salaried
https://mycompanyinfrance.fr/sharing-economy
https://mycompanyinfrance.fr/sharing-economy/your-situation
https://mycompanyinfrance.fr/documentation
https://mycompanyinfrance.fr/documentation/examples

View File

@ -1,30 +1,31 @@
https://mon-entreprise.fr/entreprise
https://mon-entreprise.fr/entreprise/votre-entreprise
https://mon-entreprise.fr/entreprise/créer-une-EI
https://mon-entreprise.fr/entreprise/créer-une-EIRL
https://mon-entreprise.fr/entreprise/créer-une-EURL
https://mon-entreprise.fr/entreprise/créer-une-SAS
https://mon-entreprise.fr/entreprise/créer-une-SARL
https://mon-entreprise.fr/entreprise/créer-une-SASU
https://mon-entreprise.fr/entreprise/créer-une-SNC
https://mon-entreprise.fr/entreprise/devenir-auto-entrepreneur
https://mon-entreprise.fr/entreprise/devenir-auto-entrepreneur-EIRL
https://mon-entreprise.fr/entreprise/créer-une-SA
https://mon-entreprise.fr/entreprise/retrouver-votre-entreprise
https://mon-entreprise.fr/entreprise/après-la-création
https://mon-entreprise.fr/entreprise/statut-juridique
https://mon-entreprise.fr/entreprise/statut-juridique/liste
https://mon-entreprise.fr/entreprise/statut-juridique/responsabilité
https://mon-entreprise.fr/entreprise/statut-juridique/statut-du-dirigeant
https://mon-entreprise.fr/entreprise/statut-juridique/auto-entrepreneur-ou-entreprise-individuelle
https://mon-entreprise.fr/entreprise/statut-juridique/nombre-associés
https://mon-entreprise.fr/entreprise/statut-juridique/gérant-majoritaire-ou-minoritaire
https://mon-entreprise.fr/sécurité-sociale
https://mon-entreprise.fr/sécurité-sociale/assimilé-salarié
https://mon-entreprise.fr/sécurité-sociale/indépendant
https://mon-entreprise.fr/sécurité-sociale/auto-entrepreneur
https://mon-entreprise.fr/sécurité-sociale/comparaison-assimilé-salarié-indépendant-et-auto-entrepreneur
https://mon-entreprise.fr/sécurité-sociale/sélection-du-régime
https://mon-entreprise.fr/sécurité-sociale/salarié
https://mon-entreprise.fr/démarches-embauche
https://mon-entreprise.fr/documentation
https://mon-entreprise.fr/créer
https://mon-entreprise.fr/créer/SA
https://mon-entreprise.fr/créer/auto-entrepreneur-EIRL
https://mon-entreprise.fr/créer/auto-entrepreneur
https://mon-entreprise.fr/créer/SASU
https://mon-entreprise.fr/créer/SARL
https://mon-entreprise.fr/créer/SAS
https://mon-entreprise.fr/créer/EURL
https://mon-entreprise.fr/créer/EIRL
https://mon-entreprise.fr/créer/EI
https://mon-entreprise.fr/créer/après-la-création
https://mon-entreprise.fr/créer/statut-juridique
https://mon-entreprise.fr/créer/statut-juridique/liste
https://mon-entreprise.fr/créer/statut-juridique/responsabilité
https://mon-entreprise.fr/créer/statut-juridique/dirigeant
https://mon-entreprise.fr/créer/statut-juridique/auto-entrepreneur-ou-entreprise-individuelle
https://mon-entreprise.fr/créer/statut-juridique/nombre-associés
https://mon-entreprise.fr/créer/statut-juridique/gérant-majoritaire-ou-minoritaire
https://mon-entreprise.fr/gérer
https://mon-entreprise.fr/gérer/embaucher
https://mon-entreprise.fr/gérer/sécurité-sociale
https://mon-entreprise.fr/simulateurs
https://mon-entreprise.fr/simulateurs/assimilé-salarié
https://mon-entreprise.fr/simulateurs/indépendant
https://mon-entreprise.fr/simulateurs/auto-entrepreneur
https://mon-entreprise.fr/simulateurs/comparaison-régimes-sociaux
https://mon-entreprise.fr/simulateurs/salarié
https://mon-entreprise.fr/économie-collaborative
https://mon-entreprise.fr/économie-collaborative/votre-situation
https://mon-entreprise.fr/documentation
https://mon-entreprise.fr/documentation/exemples

View File

@ -3508,7 +3508,7 @@ cyclist@~0.2.2:
resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640"
integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=
cypress@^3.2.0:
cypress@^3.4.1:
version "3.4.1"
resolved "https://registry.yarnpkg.com/cypress/-/cypress-3.4.1.tgz#ca2e4e9864679da686c6a6189603efd409664c30"
integrity sha512-1HBS7t9XXzkt6QHbwfirWYty8vzxNMawGj1yI+Fu6C3/VZJ8UtUngMW6layqwYZzLTZV8tiDpdCNBypn78V4Dg==