Ajout + Traduction : Privacy Policy, Terms of Service, Our story.
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details

Modif footer : Ajout social media
pull/3/head
Matis MAZINGUE 1 year ago
parent a3a0135cdc
commit 668372c4ac

@ -3,16 +3,22 @@ import { RouterModule, Routes } from '@angular/router';
import { EditorComponent } from './components/editor/editor.component'; import { EditorComponent } from './components/editor/editor.component';
import { LandingPageComponent } from './components/landing-page/landing-page.component'; import { LandingPageComponent } from './components/landing-page/landing-page.component';
import { OutputComponent } from './components/output/output.component'; import { OutputComponent } from './components/output/output.component';
import {DocumentationComponent} from "./components/documentation/documentation.component"; import { DocumentationComponent } from "./components/documentation/documentation.component";
import {FormComponent} from "./components/form/form.component"; import { FormComponent } from "./components/form/form.component";
import { TermsOfServiceComponent } from './components/terms-of-service/terms-of-service.component';
import { OurStoryComponent } from './components/our-story/our-story.component';
import { PrivacyPolicyComponent } from './components/privacy-policy/privacy-policy.component';
// Toutes les routes de l'application sont définies ici // Toutes les routes de l'application sont définies ici
const routes: Routes = [ const routes: Routes = [
{ path: '', component: LandingPageComponent }, { path: '', component: LandingPageComponent },
{ path: 'editor', component: EditorComponent }, { path: 'editor', component: EditorComponent },
{ path: 'output', component: OutputComponent }, { path: 'output', component: OutputComponent },
{ path: 'documentation', component: DocumentationComponent}, { path: 'documentation', component: DocumentationComponent },
{ path: 'contact', component: FormComponent} { path: 'contact', component: FormComponent },
{ path: 'our_story', component: OurStoryComponent },
{ path: 'terms_of_service', component: TermsOfServiceComponent },
{ path: 'privacy_policy', component: PrivacyPolicyComponent }
]; ];
@NgModule({ @NgModule({

@ -10,6 +10,10 @@ import { OutputComponent } from './components/output/output.component';
import { LandingPageComponent } from './components/landing-page/landing-page.component'; import { LandingPageComponent } from './components/landing-page/landing-page.component';
import { DocumentationComponent } from './components/documentation/documentation.component'; import { DocumentationComponent } from './components/documentation/documentation.component';
import { FormComponent } from './components/form/form.component'; import { FormComponent } from './components/form/form.component';
import { TermsOfServiceComponent } from './components/terms-of-service/terms-of-service.component';
import { OurStoryComponent } from './components/our-story/our-story.component';
import { PrivacyPolicyComponent } from './components/privacy-policy/privacy-policy.component';
import { ReactiveFormsModule } from '@angular/forms'; import { ReactiveFormsModule } from '@angular/forms';
import { FormsModule } from '@angular/forms'; import { FormsModule } from '@angular/forms';
@ -30,7 +34,11 @@ import { TranslationService } from './services/translation.service';
OutputComponent, OutputComponent,
LandingPageComponent, LandingPageComponent,
DocumentationComponent, DocumentationComponent,
FormComponent FormComponent,
PrivacyPolicyComponent,
TermsOfServiceComponent,
OurStoryComponent
], ],
imports: [ imports: [
BrowserModule, BrowserModule,

@ -2,58 +2,56 @@
<link href="https://fonts.googleapis.com/css2?family=Podkova:wght@400;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Podkova:wght@400;700&display=swap" rel="stylesheet">
</head> </head>
<div class="footer" > <div class="footer">
<!-- Logo and copyrights--> <!-- Logo and copyrights-->
<div class="rights"> <div class="rights">
<img class="sandkasten-logo" <img class="sandkasten-logo" routerLink="" routerLinkActive="active" [routerLinkActiveOptions]="{ exact: true }"
routerLink="" [src]="sandkasten_logo" alt="Logo-Sandkasten" />
routerLinkActive="active"
[routerLinkActiveOptions]="{ exact: true }"
[src]="sandkasten_logo" alt="Logo-Sandkasten" />
<div class="title">Sandkasten</div> <div class="title">Sandkasten</div>
<div class="copyright">{{ 'FooterPage.Rights' | translate}}</div> <div class="copyright">{{ 'FooterPage.Rights' | translate}}</div>
</div> </div>
<!-- Navigation--> <!-- Navigation-->
<div class="navigation"> <div class="navigation">
<div class="about"> <div class="about">
<span class="title">{{ 'FooterPage.About' | translate}}</span> <span class="title">{{ 'FooterPage.About' | translate}}</span>
<div class="links"> <div class="links">
<!-- TODO - Add the router links --> <!-- TODO - Add the router links -->
<a <a routerLink="our_story" routerLinkActive="active" [routerLinkActiveOptions]="{ exact: true }">{{
routerLink="" 'FooterPage.Story' | translate}}</a>
routerLinkActive="active" <a routerLink="" routerLinkActive="active" [routerLinkActiveOptions]="{ exact: true }">{{
[routerLinkActiveOptions]="{ exact: true }" 'FooterPage.Contact' | translate}}</a>
>{{ 'FooterPage.Story' | translate}}</a>
<a
routerLink=""
routerLinkActive="active"
[routerLinkActiveOptions]="{ exact: true }"
>{{ 'FooterPage.Contact' | translate}}</a>
</div> </div>
</div> </div>
<div class="legals"> <div class="legals">
<span class="title">{{ 'FooterPage.Legal' | translate}}</span> <span class="title">{{ 'FooterPage.Legal' | translate}}</span>
<div class="links"> <div class="links">
<a <a routerLink="terms_of_service" routerLinkActive="active"
routerLink="" [routerLinkActiveOptions]="{ exact: true }">{{ 'FooterPage.Terms' | translate}}</a>
routerLinkActive="active" <a routerLink="privacy_policy" routerLinkActive="active" [routerLinkActiveOptions]="{ exact: true }">{{
[routerLinkActiveOptions]="{ exact: true }" 'FooterPage.Privacy' | translate}}</a>
>{{ 'FooterPage.Terms' | translate}}</a>
<a
routerLink=""
routerLinkActive="active"
[routerLinkActiveOptions]="{ exact: true }"
>{{ 'FooterPage.Privacy' | translate}}</a>
</div> </div>
</div> </div>
</div> </div>
<!-- Socials--> <!-- Socials-->
<div class="socials"> <div class="socials">
<!-- TODO - Add the socials icons--> <!-- TODO - Add the socials icons-->
<div>{{ 'FooterPage.Social' | translate}}</div> <a href="https://twitter.com/Sandkasten3a">
<img class="tiwtter-logo" class="image" routerLink="" routerLinkActive="active"
[routerLinkActiveOptions]="{ exact: true }" [src]="twitter_logo" alt="Logo-Twitter" />
</a>
<a href="https://instagram.com">
<img class="instagram-logo" class="image" routerLink="" routerLinkActive="active"
[routerLinkActiveOptions]="{ exact: true }" [src]="instagram_logo" alt="Logo-Instagram" />
</a>
<a href="https://www.facebook.com/profile.php?id=61555217444337">
<img class="facebook-logo" class="image" routerLink="" routerLinkActive="active"
[routerLinkActiveOptions]="{ exact: true }" [src]="facebook_logo" alt="Logo-Facebook" />
</a>
</div> </div>
</div> </div>

@ -1,7 +1,6 @@
.footer { .footer {
background-color: #494b92; background-color: #494b92;
padding: .5rem 1rem; padding: .5rem 1rem;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
justify-content: space-between; justify-content: space-between;
@ -31,6 +30,7 @@
font-weight: 600; font-weight: 600;
text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25); text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
} }
.copyright { .copyright {
grid-area: copyright; grid-area: copyright;
font-size: 1rem; font-size: 1rem;
@ -44,7 +44,8 @@
gap: 3rem; gap: 3rem;
color: #818181; color: #818181;
.about, .legals { .about,
.legals {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: .5rem; gap: .5rem;
@ -59,12 +60,13 @@
flex-direction: column; flex-direction: column;
gap: .25rem; gap: .25rem;
> a { >a {
color: #818181; color: #818181;
text-decoration: none; text-decoration: none;
transition: color .3s ease; transition: color .3s ease;
} }
:hover { :hover {
color: #FFFFFF; color: #FFFFFF;
} }
@ -72,5 +74,12 @@
} }
} }
.socials {
.image {
grid-area: logo;
width: 3rem;
height: auto;
aspect-ratio: 1;
padding-right: 10px;
}
}

@ -7,9 +7,15 @@ import { Component, OnInit } from '@angular/core';
}) })
export class FooterComponent implements OnInit { export class FooterComponent implements OnInit {
sandkasten_logo!: string; sandkasten_logo!: string;
twitter_logo!: string;
instagram_logo!: string;
facebook_logo!: string;
ngOnInit(): void { ngOnInit(): void {
this.sandkasten_logo = 'assets/img/logo.png'; this.sandkasten_logo = 'assets/img/logo.png';
this.twitter_logo = 'assets/img/twitter.svg';
this.instagram_logo = 'assets/img/instagram.svg';
this.facebook_logo = 'assets/img/facebook.svg';
} }
} }

@ -6,13 +6,13 @@ import { Router } from '@angular/router';
templateUrl: './landing-page.component.html', templateUrl: './landing-page.component.html',
styleUrls: ['./landing-page.component.scss'] styleUrls: ['./landing-page.component.scss']
}) })
export class LandingPageComponent implements OnInit{ export class LandingPageComponent implements OnInit {
constructor(private router: Router){} constructor(private router: Router) { }
ngOnInit(): void { ngOnInit(): void {
} }
// Si click sur "Run", on redirige vers la page d'édition // Si click sur "Run", on redirige vers la page d'édition
onContinue():void{ onContinue(): void {
this.router.navigateByUrl('/editor'); this.router.navigateByUrl('/editor');
} }
} }

@ -0,0 +1,31 @@
<body>
<main>
<div>
<img class="colin"
[src]="colin" alt="Photo-Colin" />
<h1>COLIN FRIZOT</h1>
<p>Bonjour, je suis Colin, un poisson développeur. (fraude)</p>
<img class="hugo"
[src]="hugo" alt="Photo-Hugo" />
<h1>HUGO PRADIER</h1>
<p>Bonjour, je suis Hugo, un développeur bientôt chauve. (suit tous les tutos en ligne, mais ça marche jamais)</p>
<img class="bastien"
[src]="bastien" alt="Photo-Bastien" />
<h1>BASTIEN OLLIER</h1>
<p>Bonjour, je suis Bastien, un développeur visuellement parlant, très puant. (connaît l'adresse de la grand-mère de Colin)</p>
<img class="clement"
[src]="clement" alt="Photo-Clement" />
<h1>CLÉMENT FRÉVILLE</h1>
<p>Bonjour, je suis Clément, un développeur meilleur que tes profs. (dieu)</p>
<img class="matis"
[src]="matis" alt="Photo-Matis" />
<h1>MATIS MAZINGUE</h1>
<p>Bonjour, je suis Matis, un "développeur". (est là que pour l'argent, mais il est nul)</p>
</div>
</main>
</body>

@ -0,0 +1,23 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { OurStoryComponent } from './our-story.component';
describe('OurStoryComponent', () => {
let component: OurStoryComponent;
let fixture: ComponentFixture<OurStoryComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [OurStoryComponent]
})
.compileComponents();
fixture = TestBed.createComponent(OurStoryComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

@ -0,0 +1,29 @@
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
@Component({
selector: 'app-our-story',
templateUrl: './our-story.component.html',
styleUrl: './our-story.component.scss'
})
export class OurStoryComponent implements OnInit {
constructor(private router: Router) { }
colin!: string;
hugo!: string;
bastien!: string;
clement!: string;
matis!: string;
ngOnInit(): void {
this.colin = 'assets/img/colin.png';
this.hugo = 'assets/img/hugo.png';
this.bastien = 'assets/img/bastien.png';
this.clement = 'assets/img/clement.png';
this.matis = 'assets/img/matis.png';
}
// Si click sur "Run", on redirige vers la page de notre histoire
onContinue(): void {
this.router.navigateByUrl('/our_story');
}
}

@ -0,0 +1,122 @@
<body>
<h1>{{ 'PrivacyPolicyPage.PrivacyPolicy' | translate }}</h1>
<p>{{ 'PrivacyPolicyPage.Promise' | translate}}<a href="https://www.sandkasten.fr">sandkasten.fr</a>
{{ 'PrivacyPolicyPage.PromisePart2' | translate}}</p>
<p>{{ 'PrivacyPolicyPage.Policy' | translate }}</p>
<div class="wpembed-toc">
<h3>{{ 'PrivacyPolicyPage.TableContents' | translate}}</h3>
<ol class="wpembed-toc">
<li>
<a href="#collection-of-personal-information">{{ 'PrivacyPolicyPage.PersonalInformation.Title' |
translate}}</a>
</li>
<li>
<a href="#privacy-of-children">{{ 'PrivacyPolicyPage.PrivacyChildren.Title' | translate}}</a>
</li>
<li>
<a href="#use-and-processing-of-collected-information">{{ 'PrivacyPolicyPage.UseProcInformation.Title' |
translate}}</a>
</li>
<li>
<a href="#managing-information">{{ 'PrivacyPolicyPage.ManagingInformation.Title' | translate }}</a>
</li>
<li>
<a href="#disclosure-of-information">{{ 'PrivacyPolicyPage.DisclosureInformation.Title' | translate
}}</a>
</li>
<li>
<a href="#retention-of-information">{{ 'PrivacyPolicyPage.RetentionInformation.Title' | translate }}</a>
</li>
<li>
<a href="#do-not-track-signals">{{ 'PrivacyPolicyPage.DoNotTrack.Title' | translate}}</a>
</li>
<li>
<a href="#links-to-other-resources">{{ 'PrivacyPolicyPage.LinksResources.Title' | translate}}</a>
</li>
<li>
<a href="#information-security">{{ 'PrivacyPolicyPage.InformationSecurity.Title' | translate}}</a>
</li>
<li>
<a href="#data-breach">{{ 'PrivacyPolicyPage.DataBreach.Title' | translate}}</a>
</li>
<li>
<a href="#changes-and-amendments">{{ 'PrivacyPolicyPage.Amendments.Title' | translate}}</a>
</li>
<li>
<a href="#acceptance-of-this-policy">{{ 'PrivacyPolicyPage.Acceptance.Title' | translate}}</a>
</li>
<li>
<a href="#contacting-us">{{ 'PrivacyPolicyPage.ContactingUs.Title' | translate}}</a>
</li>
</ol>
</div>
<h2 id="collection-of-personal-information">{{ 'PrivacyPolicyPage.PersonalInformation.Title' | translate}}</h2>
<p>{{ 'PrivacyPolicyPage.PersonalInformation.Text1' | translate }}</p>
<p>{{ 'PrivacyPolicyPage.PersonalInformation.Text2' | translate}}</p>
<ul>
<li>{{ 'PrivacyPolicyPage.PersonalInformation.Text3' | translate}}</li>
<li>{{ 'PrivacyPolicyPage.PersonalInformation.Text4' | translate}}</li>
</ul>
<p>{{ 'PrivacyPolicyPage.PersonalInformation.Text5' | translate}}</p>
<h2 id="privacy-of-children">{{ 'PrivacyPolicyPage.PrivacyChildren.Title' | translate}}</h2>
<p>{{ 'PrivacyPolicyPage.PrivacyChildren.Text1' | translate}}</p>
<p>{{ 'PrivacyPolicyPage.PrivacyChildren.Text2' | translate}}</p>
<h2 id="use-and-processing-of-collected-information">{{ 'PrivacyPolicyPage.UseProcInformation.Title' | translate}}
</h2>
<p>{{ 'PrivacyPolicyPage.UseProcInformation.Text1' | translate}}</p>
<p>{{ 'PrivacyPolicyPage.UseProcInformation.Text2' | translate}}</p>
<p>{{ 'PrivacyPolicyPage.UseProcInformation.Text3' | translate}}</p>
<p>{{ 'PrivacyPolicyPage.UseProcInformation.Text4' | translate}}</p>
<ul>
<li>{{ 'PrivacyPolicyPage.UseProcInformation.List1' | translate}}</li>
<li>{{ 'PrivacyPolicyPage.UseProcInformation.List2' | translate}}</li>
<li>{{ 'PrivacyPolicyPage.UseProcInformation.List3' | translate}}</li>
<li>{{ 'PrivacyPolicyPage.UseProcInformation.List4' | translate}}</li>
</ul>
<p>{{ 'PrivacyPolicyPage.UseProcInformation.Text5' | translate}}</p>
<p>{{ 'PrivacyPolicyPage.UseProcInformation.Text6' | translate}}</p>
<h2 id="managing-information">{{ 'PrivacyPolicyPage.ManagingInformation.Title' | translate}}</h2>
<p>{{ 'PrivacyPolicyPage.ManagingInformation.Text1' | translate}}</p>
<h2 id="disclosure-of-information">{{ 'PrivacyPolicyPage.DisclosureInformation.Title' | translate}}</h2>
<p>{{ 'PrivacyPolicyPage.DisclosureInformation.Text1' | translate}}</p>
<p>{{ 'PrivacyPolicyPage.DisclosureInformation.Text2' | translate}}</p>
<h2 id="retention-of-information">{{ 'PrivacyPolicyPage.RetentionInformation.Title' | translate }}</h2>
<p>{{ 'PrivacyPolicyPage.RetentionInformation.Text1' | translate }}</p>
<p>{{ 'PrivacyPolicyPage.RetentionInformation.Text2' | translate }}</p>
<h2 id="do-not-track-signals">{{ 'PrivacyPolicyPage.DoNotTrack.Title' | translate}}</h2>
<p>{{ 'PrivacyPolicyPage.DoNotTrack.Text1' | translate}}<a href="https://www.internetcookies.com" target="_blank"
ref="nofollow noreferrer noopener external">internetcookies.com</a></p>
<h2 id="links-to-other-resources">{{ 'PrivacyPolicyPage.LinksResources.Title' | translate}}</h2>
<p>{{ 'PrivacyPolicyPage.LinksResources.Text1' | translate}}</p>
<h2 id="information-security">{{ 'PrivacyPolicyPage.InformationSecurity.Title' | translate}}</h2>
<p>{{ 'PrivacyPolicyPage.InformationSecurity.Text1' | translate}}</p>
<p>{{ 'PrivacyPolicyPage.InformationSecurity.Text2' | translate}}/p>
<p>{{ 'PrivacyPolicyPage.InformationSecurity.Text3' | translate}}</p>
<h2 id="data-breach">{{ 'PrivacyPolicyPage.DataBreach.Title' | translate}}</h2>
<p>{{ 'PrivacyPolicyPage.DataBreach.Text1' | translate}}</p>
<h2 id="changes-and-amendments">{{ 'PrivacyPolicyPage.Amendments.Title' | translate}}</h2>
<p>{{ 'PrivacyPolicyPage.Amendments.Text1' | translate}}</p>
<p>{{ 'PrivacyPolicyPage.Amendments.Text2' | translate}}</p>
<h2 id="acceptance-of-this-policy">{{ 'PrivacyPolicyPage.Acceptance.Title' | translate}}</h2>
<p>{{ 'PrivacyPolicyPage.Acceptance.Text1' | translate}}
<h2 id="contacting-us">{{ 'PrivacyPolicyPage.ContactingUs.Title' | translate}}</h2>
<p>{{ 'PrivacyPolicyPage.ContactingUs.Text1' | translate}}</p>
<p><a
href="&#109;&#097;&#105;&#108;&#116;&#111;&#058;s&#97;n&#100;ka&#115;&#116;e&#110;3a&#64;&#103;&#109;a&#105;&#108;.&#99;&#111;m">sa&#110;&#100;&#107;&#97;&#115;te&#110;&#51;&#97;&#64;&#103;m&#97;il.&#99;&#111;m</a>
</p>
<p>{{ 'PrivacyPolicyPage.ContactingUs.Text2' | translate}}</p>
<p>{{ 'PrivacyPolicyPage.Date' | translate}}</p>
</body>

@ -0,0 +1,23 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { PrivacyPolicyComponent } from './privacy-policy.component';
describe('PrivacyPolicyComponent', () => {
let component: PrivacyPolicyComponent;
let fixture: ComponentFixture<PrivacyPolicyComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [PrivacyPolicyComponent]
})
.compileComponents();
fixture = TestBed.createComponent(PrivacyPolicyComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

@ -0,0 +1,19 @@
import { Component } from '@angular/core';
import { Router } from '@angular/router';
@Component({
selector: 'app-privacy-policy',
templateUrl: './privacy-policy.component.html',
styleUrl: './privacy-policy.component.scss'
})
export class PrivacyPolicyComponent {
constructor(private router: Router) { }
ngOnInit(): void {
}
// Si click sur "Run", on redirige vers la page de politique de confidentialité
onContinue(): void {
this.router.navigateByUrl('/privacy_policy');
}
}

@ -0,0 +1,23 @@
<body>
<h1>{{ 'TermsOfServicePage.Mentions' | translate }}</h1>
<p>{{ 'TermsOfServicePage.Law' | translate }}</p>
<h2>{{ 'TermsOfServicePage.Edition' | translate }}</h2>
<p>{{ 'TermsOfServicePage.URL' | translate }} <a href="www.sandkasten.fr">www.sandkasten.fr</a> {{
'TermsOfServicePage.Site' | translate}}</p>
<p>{{ 'TermsOfServicePage.Address' | translate }}</p>
<h2>{{ 'TermsOfServicePage.Hosting' | translate }}</h2>
<p>{{ 'TermsOfServicePage.Host' | translate }}<a
href="https://www.hostinger.fr/contact">https://www.hostinger.fr/contact</a>).</p>
<h2>{{ 'TermsOfServicePage.Publishing' | translate }}</h2>
<p>{{ 'TermsOfServicePage.DirectorPublish' | translate }}</p>
<h2>{{ 'TermsOfServicePage.ContactUs' | translate }}</h2>
<p>{{ 'TermsOfServicePage.Phone' | translate }}</p>
<p>{{ 'TermsOfServicePage.Mail' | translate }}</p>
<p>{{ 'TermsOfServicePage.Post' | translate }}</p>
<h2>{{ 'TermsOfServicePage.Data' | translate }}</h2>
<p>{{ 'TermsOfServicePage.GDPR' | translate }}</p>
</body>

@ -0,0 +1,23 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { TermsOfServiceComponent } from './terms-of-service.component';
describe('TermsOfServiceComponent', () => {
let component: TermsOfServiceComponent;
let fixture: ComponentFixture<TermsOfServiceComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [TermsOfServiceComponent]
})
.compileComponents();
fixture = TestBed.createComponent(TermsOfServiceComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

@ -0,0 +1,19 @@
import { Component } from '@angular/core';
import { Router } from '@angular/router';
@Component({
selector: 'app-terms-of-service',
templateUrl: './terms-of-service.component.html',
styleUrl: './terms-of-service.component.scss'
})
export class TermsOfServiceComponent {
constructor(private router: Router) { }
ngOnInit(): void {
}
// Si click sur "Run", on redirige vers la page de termes de service
onContinue(): void {
this.router.navigateByUrl('/terms_of_service');
}
}

@ -1,24 +1,121 @@
{ {
"LandingPage": { "LandingPage": {
"Welcome" : "Welcome to Sandkasten", "Welcome": "Welcome to Sandkasten",
"Description" : "You've arrived at the best code testing sandbox site! We let you test all your programs in your favorite languages. Thanks to the Code Mirror editor and our personalized management of execution on containers, your code becomes completely harmless, so you can have as much fun as you like!", "Description": "You've arrived at the best code testing sandbox site! We let you test all your programs in your favorite languages. Thanks to the Code Mirror editor and our personalized management of execution on containers, your code becomes completely harmless, so you can have as much fun as you like!",
"Try" : "Try it now !" "Try": "Try it now !"
}, },
"HeaderPage": { "HeaderPage": {
"Language" : "You can choose your language here :", "Language": "You can choose your language here :",
"Home" : "Home", "Home": "Home",
"Editor" : "Editor", "Editor": "Editor",
"Documentation" : "Documentation", "Documentation": "Documentation",
"Contact" : "Contact us" "Contact": "Contact us"
}, },
"FooterPage": { "FooterPage": {
"About" : "About Sandkasten", "About": "About Sandkasten",
"Contact" : "Contact us", "Contact": "Contact us",
"Story" : "Our story", "Story": "Our story",
"Legal" : "Legal mentions", "Legal": "Legal mentions",
"Terms" : "Terms of use", "Terms": "Terms of use",
"Privacy" : "Privacy policy", "Privacy": "Privacy policy",
"Rights" : "©2023 Sandkasten, Inc. All rights reserved.", "Rights": "©2024 Sandkasten, Inc. All rights reserved."
"Social" : "Follow us on social networks :" },
"TermsOfServicePage": {
"Mentions": "LEGALS MENTIONS",
"Law": "In accordance with the provisions of Law No. 2004-575 of June 21, 2004, relating to confidence in the digital economy, the identity of the various contributors involved in the creation and monitoring of the Sandkasten website is specified to users.",
"Edition": "Website editing.",
"URL": "The present website, accessible at the URL",
"Site": "(the « Site »), is edited by:",
"Address": "Sandkasten, a company with capital of 100 euros, registered with the R.C.S. of CLERMONT-FERRAND under the number RCS CLERMONT-FERRAND B 123 456 789, whose registered office is located at 7 Av. Blaise Pascal 63170 Aubière, represented by Jul Lamiff, duly authorized.",
"Hosting": "Hosting",
"Host": "The Site is hosted by Hostinger International LTD, located in , (telephone contact or email :",
"Publishing": "Publishing Director",
"DirectorPublish": "The Site's Publishing Director is Jul Lamiff.",
"ContactUs": "Contact us",
"Phone": "By phone: +33651107802",
"Mail": "By email: sandkasten3a@gmail.com",
"Post": "By post: 7 Av. Blaise Pascal 63170 Aubière",
"Data": "Personal data",
"GDPR": "The processing of your personal data is governed by our Privacy Charter, available from the « Personal Data Protection Charter » section, in accordance with the General Data Protection Regulation 2016/679 of April 27, 2016 («GDPR»)."
},
"PrivacyPolicyPage": {
"PrivacyPolicy": "Privacy Policy",
"Promise": "We respect your privacy and are committed to protecting it through our compliance with this privacy policy (« Policy »). This Policy describes the types of information we may collect from you or that you may provide (« Personal Information ») on the ",
"PromisePart2": "website (« Website » or « Service ») and any of its related products and services (collectively, « Services »), and our practices for collecting, using, maintaining, protecting, and disclosing that Personal Information. It also describes the choices available to you regarding our use of your Personal Information and how you can access and update it.",
"Policy": "This Policy is a legally binding agreement between you (« User », « you » or « your ») and Sandkasten Inc. (« Sandkasten Inc. », « we », « us » or « our »). If you are entering into this Policy on behalf of a business or other legal entity, you represent that you have the authority to bind such entity to this Policy, in which case the terms « User », « you » or « your » shall refer to such entity. If you do not have such authority, or if you do not agree with the terms of this Policy, you must not accept this Policy and may not access and use the Website and Services. By accessing and using the Website and Services, you acknowledge that you have read, understood, and agree to be bound by the terms of this Policy. This Policy does not apply to the practices of companies that we do not own or control, or to individuals that we do not employ or manage.",
"TableContents": "Table of contents",
"PersonalInformation": {
"Title": "Collection of personal information",
"Text1": "You can access and use the Website and Services without telling us who you are or revealing any information by which someone could identify you as a specific, identifiable individual. If, however, you wish to use some of the features offered on the Website, you may be asked to provide certain Personal Information (for example, your name and e-mail address).",
"Text2": "We receive and store any information you knowingly provide to us when you create an account, or fill any forms on the Website. When required, this information may include the following: ",
"Text3": "Account details (such as user name, unique user ID, password, etc)",
"Text4": "Contact information (such as email address, phone number, etc)",
"Text5": "You can choose not to provide us with your Personal Information, but then you may not be able to take advantage of some of the features on the Website. Users who are uncertain about what information is mandatory are welcome to contact us."
},
"PrivacyChildren": {
"Title": "Privacy of children",
"Text1": "We do not knowingly collect any Personal Information from children under the age of 13. If you are under the age of 13, please do not submit any Personal Information through the Website and Services. If you have reason to believe that a child under the age of 13 has provided Personal Information to us through the Website and Services, please contact us to request that we delete that child's Personal Information from our Services.",
"Text2": "We encourage parents and legal guardians to monitor their children's Internet usage and to help enforce this Policy by instructing their children never to provide Personal Information through the Website and Services without their permission. We also ask that all parents and legal guardians overseeing the care of children take the necessary precautions to ensure that their children are instructed to never give out Personal Information when online without their permission."
},
"UseProcInformation": {
"Title": "Use and processing of collected information",
"Text1": "We act as a data controller and a data processor when handling Personal Information, unless we have entered into a data processing agreement with you in which case you would be the data controller and we would be the data processor.",
"Text2": "Our role may also differ depending on the specific situation involving Personal Information. We act in the capacity of a data controller when we ask you to submit your Personal Information that is necessary to ensure your access and use of the Website and Services. In such instances, we are a data controller because we determine the purposes and means of the processing of Personal Information.",
"Text3": "We act in the capacity of a data processor in situations when you submit Personal Information through the Website and Services. We do not own, control, or make decisions about the submitted Personal Information, and such Personal Information is processed only in accordance with your instructions. In such instances, the User providing Personal Information acts as a data controller.",
"Text4": "In order to make the Website and Services available to you, or to meet a legal obligation, we may need to collect and use certain Personal Information. If you do not provide the information that we request, we may not be able to provide you with the requested products or services. Any of the information we collect from you may be used for the following purposes:",
"List1": "Create and manage user accounts",
"List2": "Request user feedback",
"List3": "Respond to legal requests and prevent harm",
"List4": "Run and operate the Website and Services",
"Text5": "Processing your Personal Information depends on how you interact with the Website and Services, where you are located in the world and if one of the following applies: (i) you have given your consent for one or more specific purposes; (ii) provision of information is necessary for the performance of this Policy with you and/or for any pre-contractual obligations thereof; (iii) processing is necessary for compliance with a legal obligation to which you are subject; (iv) processing is related to a task that is carried out in the public interest or in the exercise of official authority vested in us; (v) processing is necessary for the purposes of the legitimate interests pursued by us or by a third party.",
"Text6": "Note that under some legislations we may be allowed to process information until you object to such processing by opting out, without having to rely on consent or any other of the legal bases. In any case, we will be happy to clarify the specific legal basis that applies to the processing, and in particular whether the provision of Personal Information is a statutory or contractual requirement, or a requirement necessary to enter into a contract. « ManagingInformation »: « Managing information »"
},
"ManagingInformation": {
"Title": "Managing information",
"Text1": "You are able to delete certain Personal Information we have about you. The Personal Information you can delete may change as the Website and Services change. When you delete Personal Information, however, we may maintain a copy of the unrevised Personal Information in our records for the duration necessary to comply with our obligations to our affiliates and partners, and for the purposes described below."
},
"DisclosureInformation": {
"Title": "Disclosure of information",
"Text1": "To maintain the highest level of privacy and to protect your Personal Information to the full extent, we do not share your Personal Information with any third parties.",
"Text2": "However, we may also disclose any Personal Information we collect, use or receive if required or permitted by law, such as to comply with a subpoena or similar legal process, and when we believe in good faith that disclosure is necessary to protect our rights, protect your safety or the safety of others, investigate fraud, or respond to a government request."
},
"RetentionInformation": {
"Title": "Retention of information",
"Text1": "We will retain and use your Personal Information for the period necessary as long as your user account remains active, to enforce our Policy, resolve disputes, and unless a longer retention period is required or permitted by law.",
"Text2": "We may use any aggregated data derived from or incorporating your Personal Information after you update or delete it, but not in a manner that would identify you personally. Once the retention period expires, Personal Information shall be deleted. Therefore, the right to access, the right to erasure, the right to rectification, and the right to data portability cannot be enforced after the expiration of the retention period."
},
"DoNotTrack": {
"Title": "Do Not Track signals",
"Text1": "Some browsers incorporate a Do Not Track feature that signals to websites you visit that you do not want to have your online activity tracked. Tracking is not the same as using or collecting information in connection with a website. For these purposes, tracking refers to collecting personally identifiable information from consumers who use or visit a website or online service as they move across different websites over time. How browsers communicate the Do Not Track signal is not yet uniform. As a result, the Website and Services are not yet set up to interpret or respond to Do Not Track signals communicated by your browser. Even so, as described in more detail throughout this Policy, we limit our use and collection of your Personal Information. For a description of Do Not Track protocols for browsers and mobile devices or to learn more about the choices available to you, visit "
},
"LinksResources": {
"Title": "Links to other resources",
"Text1": "The Website and Services contain links to other resources that are not owned or controlled by us. Please be aware that we are not responsible for the privacy practices of such other resources or third parties. We encourage you to be aware when you leave the Website and Services and to read the privacy statements of each and every resource that may collect Personal Information."
},
"InformationSecurity": {
"Title": "Information security",
"Text1": "We secure information you provide on computer servers in a controlled, secure environment, protected from unauthorized access, use, or disclosure. We maintain reasonable administrative, technical, and physical safeguards in an effort to protect against unauthorized access, use, modification, and disclosure of Personal Information in our control and custody. However, no data transmission over the Internet or wireless network can be guaranteed.",
"Text2": "Therefore, while we strive to protect your Personal Information, you acknowledge that (i) there are security and privacy limitations of the Internet which are beyond our control; (ii) the security, integrity, and privacy of any and all information and data exchanged between you and the Website and Services cannot be guaranteed; and (iii) any such information and data may be viewed or tampered with in transit by a third party, despite best efforts.",
"Text3": "As the security of Personal Information depends in part on the security of the device you use to communicate with us and the security you use to protect your credentials, please take appropriate measures to protect this information."
},
"DataBreach": {
"Title": "Data breach",
"Text1": "In the event we become aware that the security of the Website and Services has been compromised or Users Personal Information has been disclosed to unrelated third parties as a result of external activity, including, but not limited to, security attacks or fraud, we reserve the right to take reasonably appropriate measures, including, but not limited to, investigation and reporting, as well as notification to and cooperation with law enforcement authorities. In the event of a data breach, we will make reasonable efforts to notify affected individuals if we believe that there is a reasonable risk of harm to the User as a result of the breach or if notice is otherwise required by law. When we do, we will send you an email."
},
"Amendments": {
"Title": "Changes and amendments",
"Text1": "We reserve the right to modify this Policy or its terms related to the Website and Services at any time at our discretion. When we do, we will revise the updated date at the bottom of this page. We may also provide notice to you in other ways at our discretion, such as through the contact information you have provided.",
"Text2": "An updated version of this Policy will be effective immediately upon the posting of the revised Policy unless otherwise specified. Your continued use of the Website and Services after the effective date of the revised Policy (or such other act specified at that time) will constitute your consent to those changes. However, we will not, without your consent, use your Personal Information in a manner materially different than what was stated at the time your Personal Information was collected."
},
"Acceptance": {
"Title": "Acceptance of this policy",
"Text1": "You acknowledge that you have read this Policy and agree to all its terms and conditions. By accessing and using the Website and Services and submitting your information you agree to be bound by this Policy. If you do not agree to abide by the terms of this Policy, you are not authorized to access or use the Website and Services."
},
"ContactingUs": {
"Title": "Contacting us",
"Text1": "If you have any questions, concerns, or complaints regarding this Policy, the information we hold about you, or if you wish to exercise your rights, we encourage you to contact us using the details below:",
"Text2": "We will attempt to resolve complaints and disputes and make every reasonable effort to honor your wish to exercise your rights as quickly as possible and in any event, within the timescales provided by applicable data protection laws."
},
"Date": "This document was last updated on January 10, 2024"
} }
} }

@ -1,24 +1,121 @@
{ {
"LandingPage": { "LandingPage": {
"Welcome" : "Bienvenue sur Sandkasten", "Welcome": "Bienvenue sur Sandkasten",
"Description" : "Vous voici arrivé sur le meilleur site bac à sable de test de code ! Nous vous permettons de tester tous vos programmes sur vos langages préférés. Grâce à léditeur Code Mirror et à notre gestion personalisée de lexécution sur des conteneurs, votre code devient complétement inoffensif et vous pouvez donc vous amusez autant que vous le souhaitez !", "Description": "Vous voici arrivé sur le meilleur site bac à sable de test de code ! Nous vous permettons de tester tous vos programmes sur vos langages préférés. Grâce à léditeur Code Mirror et à notre gestion personalisée de lexécution sur des conteneurs, votre code devient complétement inoffensif et vous pouvez donc vous amusez autant que vous le souhaitez !",
"Try" : "Essayez maintenant !" "Try": "Essayez maintenant !"
}, },
"HeaderPage": { "HeaderPage": {
"Language" : "Vous pouvez choisir votre langage ici :", "Language": "Vous pouvez choisir votre langage ici :",
"Home" : "Accueil", "Home": "Accueil",
"Editor" : "Éditeur", "Editor": "Éditeur",
"Documentation" : "Documentation", "Documentation": "Documentation",
"Contact" : "Nous contacter" "Contact": "Nous contacter"
}, },
"FooterPage": { "FooterPage": {
"About" : "À propos de Sandkasten", "About": "À propos de Sandkasten",
"Contact" : "Nous contacter", "Contact": "Nous contacter",
"Story" : "Notre histoire", "Story": "Notre histoire",
"Legal" : "Mentions légales", "Legal": "Mentions légales",
"Terms" : "Conditions d'utilisation", "Terms": "Conditions d'utilisation",
"Privacy" : "Politique de confidentialité", "Privacy": "Politique de confidentialité",
"Rights" : "©2023 Sandkasten, Inc. Tous droits réservés", "Rights": "©2024 Sandkasten, Inc. Tous droits réservés"
"Social" : "Suivez-nous sur les réseaux sociaux !" },
"TermsOfServicePage": {
"Mentions": "MENTIONS LÉGALES",
"Law": "Conformément aux dispositions de la loi n° 2004-575 du 21 juin 2004 pour la confiance en l'économie numérique, il est précisé aux utilisateurs du site Sandkasten l'identité des différents intervenants dans le cadre de sa réalisation et de son suivi.",
"Edition": "Édition du site",
"URL": "Le présent site, accessible à l'URL",
"Site": "(le « Site »), est édité par :",
"Address": "Sandkasten, société au capital de 100 euros, inscrite au R.C.S. de CLERMONT-FERRAND sous le numéro RCS CLERMONT-FERRAND B 123 456 789, dont le siège social est situé au 7 Av. Blaise Pascal 63170 Aubière, représenté(e) par Jul Lamiff dûment habilité(e)",
"Hosting": "Hébergement",
"Host": "Le Site est hébergé par la société Hostinger International LTD, situé , (contact téléphonique ou email :",
"Publishing": "Directeur de publication",
"DirectorPublish": "Le Directeur de la publication du Site est Jul Lamiff.",
"ContactUs": "Nous contacter",
"Phone": "Par téléphone : +33651107802",
"Mail": "Par email : sandkasten3a@gmail.com",
"Post": "Par courrier : 7 Av. Blaise Pascal 63170 Aubière",
"Data": "Données personnelles",
"GDPR": "Le traitement de vos données à caractère personnel est régi par notre Charte du respect de la vie privée, disponible depuis la section « Charte de Protection des Données Personnelles », conformément au Règlement Général sur la Protection des Données 2016/679 du 27 avril 2016 («RGPD»)."
},
"PrivacyPolicyPage": {
"PrivacyPolicy": "Politique de confidentialité",
"Promise": "Nous respectons votre vie privée et nous nous engageons à la protéger en nous conformant à la présente politique de protection de la vie privée (« politique »). La présente politique décrit les types d'informations que nous pouvons recueillir auprès de vous ou que vous pouvez fournir (« informations personnelles ») sur le site web de la ",
"PromisePart2": "site web (« Site web » ou « Service ») et de ses produits et services connexes (collectivement « Services »), ainsi que nos pratiques en matière de collecte, d'utilisation, de maintien, de protection et de (collectivement, les « services »), ainsi que nos pratiques en matière de collecte, d'utilisation, de conservation, de protection et de divulgation de ces informations personnelles. protéger et de divulguer ces informations personnelles. Elle décrit également les choix qui s'offrent à vous en ce qui concerne l'utilisation de vos Il décrit également les choix qui vous sont offerts concernant l'utilisation de vos informations personnelles et la manière dont vous pouvez y accéder et les mettre à jour.",
"Policy": "La présente politique constitue une entente ayant force obligatoire entre vous (« Utilisateur », « vous » ou « votre ») et Sandkasten Inc. (« Sandkasten Inc. », « nous », « notre » ou « nos »). Si vous adhérez à la présente politique au nom d'une entreprise ou d'une autre entité juridique, vous déclarez que vous avez le pouvoir de lier cette entité à la présente politique, auquel cas les termes « Utilisateur », « vous » ou « votre » feront référence à cette entité. Si vous ne disposez pas d'une telle autorité ou si vous n'acceptez pas les termes de la présente politique, vous ne devez pas accepter la présente politique et ne pouvez pas accéder au site web et aux services ni les utiliser. En accédant au site web et aux services et en les utilisant, vous reconnaissez avoir lu, compris et accepté d'être lié par les termes de la présente politique. La présente politique ne s'applique pas aux pratiques des entreprises que nous ne possédons pas ou ne contrôlons pas, ni aux personnes que nous n'employons pas ou ne gérons pas.",
"TableContents": "Table de matières",
"PersonalInformation": {
"Title": "Collecte d'informations personnelles",
"Text1": "Vous pouvez accéder au site web et aux services et les utiliser sans nous dire qui vous êtes ni révéler d'informations permettant de vous identifier en tant qu'individu spécifique et identifiable. Toutefois, si vous souhaitez utiliser certaines des fonctions offertes sur le site web, il se peut que l'on vous demande de fournir certaines informations personnelles (par exemple, votre nom et votre adresse électronique).",
"Text2": "Nous recevons et conservons toutes les informations que vous nous fournissez sciemment lorsque vous créez un compte ou remplissez des formulaires sur le sur le site web. Lorsque cela est nécessaire, ces informations peuvent inclure les éléments suivants : ",
"Text3": "Détails du compte (nom d'utilisateur, identifiant unique, mot de passe, etc.)",
"Text4": "Informations de contact (telles que l'adresse électronique, le numéro de téléphone, etc.)",
"Text5": "Vous pouvez choisir de ne pas nous fournir vos informations personnelles, mais il se peut alors que vous ne puissiez pas profiter de certaines fonctions du site web. de certaines fonctionnalités du site web. Les utilisateurs qui ne savent pas quelles informations sont obligatoires sont invités à nous contacter. à nous contacter."
},
"PrivacyChildren": {
"Title": "Vie privée des enfants",
"Text1": "Nous ne collectons pas sciemment d'informations personnelles auprès d'enfants de moins de 13 ans. Si vous avez moins de 13 ans, veuillez ne pas soumettre d'informations personnelles par l'intermédiaire du site web et des services. Si vous avez des raisons de croire qu'un enfant de moins de 13 ans nous a fourni des informations personnelles par l'intermédiaire du site web et des services, veuillez nous contacter pour nous demander de supprimer les informations personnelles de cet enfant de nos services.",
"Text2": "Nous encourageons les parents et les tuteurs légaux à surveiller l'utilisation d'Internet par leurs enfants et à contribuer à l'application de la présente politique en demandant à leurs enfants de ne jamais fournir d'informations personnelles par l'intermédiaire du site web et des services sans leur autorisation. Nous demandons également à tous les parents et tuteurs légaux qui s'occupent d'enfants de prendre les précautions nécessaires pour s'assurer que leurs enfants sont informés qu'ils ne doivent jamais communiquer d'informations personnelles en ligne sans leur autorisation."
},
"UseProcInformation": {
"Title": "Utilisation et traitement des informations collectées",
"Text1": "Nous agissons en tant que responsable du traitement des données et en tant que sous-traitant des données lorsque nous traitons des informations personnelles, à moins que nous ayons conclu un accord de traitement des données avec vous, auquel cas vous seriez le contrôleur des données et nous serions le le responsable du traitement des données.",
"Text2": "Notre rôle peut également varier en fonction de la situation spécifique impliquant des informations personnelles. Nous agissons en qualité de responsable du traitement des données lorsque nous vous demandons de soumettre vos informations personnelles qui sont nécessaires pour assurer votre accès et votre utilisation du site web et des services. Dans ce cas, nous sommes un contrôleur de données parce que nous déterminons les objectifs et les moyens du traitement des informations personnelles.",
"Text3": "Nous agissons en qualité de responsable du traitement des données lorsque vous soumettez des informations personnelles par l'intermédiaire du site web et des services. Nous ne possédons pas, ne contrôlons pas et ne prenons pas de décisions concernant les informations personnelles soumises, et ces informations personnelles ne sont traitées que conformément à vos instructions. Dans ce cas, l'utilisateur qui fournit les informations personnelles agit en tant que responsable du traitement des données.",
"Text4": "Afin de mettre le site web et les services à votre disposition, ou pour répondre à une obligation légale, nous pouvons avoir besoin de collecter et d'utiliser certaines informations personnelles. Si vous ne fournissez pas les informations que nous demandons, il se peut que nous ne soyons pas en mesure de vous fournir les produits ou services demandés. Les informations que nous recueillons auprès de vous peuvent être utilisées aux fins suivantes :",
"List1": "Créer et gérer des comptes d'utilisateurs",
"List2": "Demander l'avis des utilisateurs",
"List3": "Répondre aux demandes légales et prévenir les dommages",
"List4": "Gérer et exploiter le site web et les services",
"Text5": "Le traitement de vos informations personnelles dépend de la manière dont vous interagissez avec le site web et les services, de l'endroit où vous vous trouvez dans le monde et de l'application de l'une des conditions suivantes : (i) vous avez donné votre consentement pour une ou plusieurs finalités spécifiques ; (ii) la fourniture d'informations est nécessaire à l'exécution de la présente politique avec vous et/ou de ses obligations précontractuelles ; (iii) le traitement est nécessaire au respect d'une obligation légale à laquelle vous êtes soumis ; (iv) le traitement est lié à une tâche effectuée dans l'intérêt public ou dans l'exercice de l'autorité officielle dont nous sommes investis ; (v) le traitement est nécessaire aux fins des intérêts légitimes poursuivis par nous ou par un tiers.",
"Text6": "Notez qu'en vertu de certaines législations, nous pouvons être autorisés à traiter des informations jusqu'à ce que vous vous opposiez à ce traitement en vous désinscrivant, sans avoir à nous appuyer sur le consentement ou toute autre base juridique. Dans tous les cas, nous serons heureux de clarifier la base juridique spécifique qui s'applique au traitement, et en particulier si la fourniture d'informations personnelles est une exigence légale ou contractuelle, ou une exigence nécessaire à la conclusion d'un contrat."
},
"ManagingInformation": {
"Title": "Gestion de l'information",
"Text1": "Vous pouvez supprimer certaines informations personnelles que nous détenons à votre sujet. Les informations personnelles que vous pouvez supprimer peuvent changer au fur et à mesure que le site web et les services évoluent. Lorsque vous supprimez des informations personnelles, nous pouvons toutefois conserver une copie des informations personnelles non révisées dans nos dossiers pendant la durée nécessaire au respect de nos obligations à l'égard de nos affiliés et partenaires, et aux fins décrites ci-dessous."
},
"DisclosureInformation": {
"Title": "Divulgation d'informations",
"Text1": "Afin de maintenir le plus haut niveau de confidentialité et de protéger au maximum vos informations personnelles, nous ne partageons pas vos informations personnelles avec des tiers.",
"Text2": "Toutefois, nous pouvons également divulguer toute information personnelle que nous recueillons, utilisons ou recevons si la loi l'exige ou l'autorise, par exemple pour nous conformer à une citation à comparaître ou à une procédure judiciaire similaire, et lorsque nous estimons de bonne foi que la divulgation est nécessaire pour protéger nos droits, votre sécurité ou celle d'autrui, enquêter sur des fraudes ou répondre à une demande du gouvernement."
},
"RetentionInformation": {
"Title": "Rétention de l'information",
"Text1": "Nous conserverons et utiliserons vos informations personnelles pendant la période nécessaire tant que votre compte d'utilisateur restera actif, pour appliquer notre politique, résoudre les litiges et à moins qu'une période de conservation plus longue ne soit requise ou autorisée par la loi.",
"Text2": "Nous pouvons utiliser toute donnée agrégée dérivée de vos informations personnelles ou les incorporant après que vous les avez mises à jour ou supprimées, mais pas d'une manière qui permettrait de vous identifier personnellement. À l'expiration de la période de conservation, les informations personnelles sont supprimées. Par conséquent, le droit d'accès, le droit d'effacement, le droit de rectification et le droit à la portabilité des données ne peuvent être appliqués après l'expiration de la période de conservation."
},
"DoNotTrack": {
"Title": "Signaux Ne Pas Suivre",
"Text1": "Certains navigateurs intègrent une fonction Ne Pas Suivre qui signale aux sites web que vous visitez que vous ne souhaitez pas que votre activité en ligne soit suivie. Le suivi n'est pas la même chose que l'utilisation ou la collecte d'informations en rapport avec un site web. À cette fin, le suivi fait référence à la collecte d'informations personnellement identifiables auprès des consommateurs qui utilisent ou visitent un site web ou un service en ligne lorsqu'ils se déplacent sur différents sites web au fil du temps. La manière dont les navigateurs communiquent le signal Do Not Track n'est pas encore uniforme. Par conséquent, le site web et les services ne sont pas encore configurés pour interpréter ou répondre aux signaux Do Not Track communiqués par votre navigateur. Malgré cela, comme décrit plus en détail dans la présente politique, nous limitons l'utilisation et la collecte de vos informations personnelles. Pour obtenir une description des protocoles Do Not Track pour les navigateurs et les appareils mobiles ou pour en savoir plus sur les choix qui s'offrent à vous, consultez le site suivant "
},
"LinksResources": {
"Title": "Liens vers d'autres ressources",
"Text1": "Le site web et les services contiennent des liens vers d'autres ressources qui ne sont pas détenues ou contrôlées par nous. Sachez que nous ne sommes pas responsables des pratiques en matière de protection de la vie privée de ces autres ressources ou tiers. Nous vous encourageons à être vigilant lorsque vous quittez le site web et les services et à lire les déclarations de confidentialité de chaque ressource susceptible de collecter des informations personnelles."
},
"InformationSecurity": {
"Title": "Sécurité de l'information",
"Text1": "Nous sécurisons les informations que vous fournissez sur des serveurs informatiques dans un environnement contrôlé et sécurisé, à l'abri de tout accès, utilisation ou divulgation non autorisés. Nous maintenons des mesures de protection administratives, techniques et physiques raisonnables afin d'empêcher l'accès, l'utilisation, la modification et la divulgation non autorisés des informations personnelles dont nous avons le contrôle et la garde. Toutefois, aucune transmission de données sur Internet ou sur un réseau sans fil ne peut être garantie.",
"Text2": "Par conséquent, bien que nous nous efforcions de protéger vos informations personnelles, vous reconnaissez que (i) il existe des limites à la sécurité et à la confidentialité de l'internet qui échappent à notre contrôle ; (ii) la sécurité, l'intégrité et la confidentialité de toutes les informations et données échangées entre vous et le site web et les services ne peuvent être garanties ; et (iii) ces informations et données peuvent être consultées ou falsifiées en cours de route par un tiers, malgré tous les efforts déployés.",
"Text3": "Étant donné que la sécurité des informations personnelles dépend en partie de la sécurité de l'appareil que vous utilisez pour communiquer avec nous et de la sécurité que vous utilisez pour protéger vos informations d'identification, veuillez prendre les mesures appropriées pour protéger ces informations."
},
"DataBreach": {
"Title": "Violation de données",
"Text1": "Si nous apprenons que la sécurité du site web et des services a été compromise ou que les informations personnelles des utilisateurs ont été divulguées à des tiers non liés à la suite d'une activité externe, y compris, mais sans s'y limiter, des attaques de sécurité ou des fraudes, nous nous réservons le droit de prendre des mesures raisonnablement appropriées, y compris, mais sans s'y limiter, une enquête et un rapport, ainsi qu'une notification aux autorités chargées de l'application de la loi et une coopération avec celles-ci. En cas de violation des données, nous ferons des efforts raisonnables pour notifier les personnes concernées si nous estimons qu'il existe un risque raisonnable de préjudice pour l'utilisateur à la suite de la violation ou si la notification est autrement requise par la loi. Dans ce cas, nous vous enverrons un courrier électronique."
},
"Amendments": {
"Title": "Changements et amendements",
"Text1": "Nous nous réservons le droit de modifier la présente politique ou les conditions relatives au site web et aux services à tout moment et à notre discrétion. Le cas échéant, nous indiquerons la date de mise à jour au bas de cette page. Nous pouvons également vous informer par d'autres moyens, à notre discrétion, tels que les coordonnées que vous nous avez fournies.",
"Text2": "Une version mise à jour de la présente politique entrera en vigueur immédiatement après la publication de la politique révisée, sauf indication contraire. En continuant à utiliser le site web et les services après la date d'entrée en vigueur de la politique révisée (ou de tout autre acte spécifié à ce moment-là), vous consentez à ces changements. Toutefois, nous n'utiliserons pas, sans votre consentement, vos informations personnelles d'une manière matériellement différente de ce qui était indiqué au moment où vos informations personnelles ont été collectées."
},
"Acceptance": {
"Title": "Acceptation de cette politiques",
"Text1": "Vous reconnaissez avoir lu la présente politique et en accepter tous les termes et conditions. En accédant au site web et aux services, en les utilisant et en soumettant vos informations, vous acceptez d'être lié par la présente politique. Si vous n'acceptez pas de respecter les conditions de la présente politique, vous n'êtes pas autorisé à accéder au site web et aux services ou à les utiliser."
},
"ContactingUs": {
"Title": "Nous contacter",
"Text1": "Si vous avez des questions, des préoccupations ou des plaintes concernant la présente politique ou les informations que nous détenons à votre sujet, ou si vous souhaitez exercer vos droits, nous vous encourageons à nous contacter en utilisant les coordonnées ci-dessous :",
"Text2": "Nous nous efforcerons de résoudre les plaintes et les litiges et ferons tous les efforts raisonnables pour répondre à votre souhait d'exercer vos droits le plus rapidement possible et, en tout état de cause, dans les délais prévus par les lois applicables en matière de protection des données."
},
"Date": "Ce document a été mis à jour pour la dernière fois le 10 janvier 2024."
} }
} }

@ -0,0 +1 @@
<?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg height="100%" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;" version="1.1" viewBox="0 0 512 512" width="100%" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:serif="http://www.serif.com/" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" style="fill:#1777f2;"/></svg>

After

Width:  |  Height:  |  Size: 902 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 45 KiB

@ -0,0 +1 @@
<?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg height="100%" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;" version="1.1" viewBox="0 0 512 512" width="100%" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:serif="http://www.serif.com/" xmlns:xlink="http://www.w3.org/1999/xlink"><g><path d="M448,512l-384,0c-35.328,0 -64,-28.672 -64,-64l0,-384c0,-35.328 28.672,-64 64,-64l384,0c35.328,0 64,28.672 64,64l0,384c0,35.328 -28.672,64 -64,64Z" id="Dark_Blue" style="fill:#1da1f2;fill-rule:nonzero;"/><path d="M196.608,386.048c120.704,0 186.752,-100.096 186.752,-186.752c0,-2.816 0,-5.632 -0.128,-8.448c12.8,-9.216 23.936,-20.864 32.768,-34.048c-11.776,5.248 -24.448,8.704 -37.76,10.368c13.568,-8.064 23.936,-20.992 28.928,-36.352c-12.672,7.552 -26.752,12.928 -41.728,15.872c-12.032,-12.8 -29.056,-20.736 -47.872,-20.736c-36.224,0 -65.664,29.44 -65.664,65.664c0,5.12 0.64,10.112 1.664,14.976c-54.528,-2.688 -102.912,-28.928 -135.296,-68.608c-5.632,9.728 -8.832,20.992 -8.832,33.024c0,22.784 11.648,42.88 29.184,54.656c-10.752,-0.384 -20.864,-3.328 -29.696,-8.192l0,0.896c0,31.744 22.656,58.368 52.608,64.384c-5.504,1.536 -11.264,2.304 -17.28,2.304c-4.224,0 -8.32,-0.384 -12.288,-1.152c8.32,26.112 32.64,45.056 61.312,45.568c-22.528,17.664 -50.816,28.16 -81.536,28.16c-5.248,0 -10.496,-0.256 -15.616,-0.896c28.928,18.432 63.488,29.312 100.48,29.312" id="Logo__x2014__FIXED" style="fill:#fff;fill-rule:nonzero;"/></g></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

Loading…
Cancel
Save