diff --git a/www/admin/app-admin.less b/www/admin/app-admin.less index 10e178308..eb2a8c0f8 100644 --- a/www/admin/app-admin.less +++ b/www/admin/app-admin.less @@ -23,5 +23,26 @@ display: flex; flex-flow: column; } + + .cp-support-list-actions { + margin: 10px 0px 10px 2px; + } + .cp-support-list-message { + &:last-child:not(.cp-support-fromadmin) { + color: @colortheme_cp-red; + background-color: lighten(@colortheme_cp-red, 25%); + .cp-support-showdata { + background-color: lighten(@colortheme_cp-red, 30%); + } + } + } + + .cp-support-fromadmin { + color: @colortheme_logo-2; + background-color: #FFF; + .cp-support-message-content { + color: @colortheme_logo-2; + } + } } diff --git a/www/common/common-ui-elements.js b/www/common/common-ui-elements.js index eb1169994..b5e5aa90a 100644 --- a/www/common/common-ui-elements.js +++ b/www/common/common-ui-elements.js @@ -4602,10 +4602,10 @@ define([ var f = priv.friends[curve]; $verified.append(h('span.fa.fa-certificate')); var $avatar = $(h('span.cp-avatar')).appendTo($verified); - $verified.append(h('p', Messages._getKey('requestEdit_fromFriend', [f.displayName]))); + $verified.append(h('p', Messages._getKey('isContact', [f.displayName]))); common.displayAvatar($avatar, f.avatar, f.displayName); } else { - $verified.append(Messages._getKey('requestEdit_fromStranger', [name])); + $verified.append(Messages._getKey('isNotContact', [name])); } return verified; }; diff --git a/www/common/translations/messages.de.json b/www/common/translations/messages.de.json index 6837b3d8e..7f35ce6e6 100644 --- a/www/common/translations/messages.de.json +++ b/www/common/translations/messages.de.json @@ -1064,7 +1064,6 @@ "profile_addLink": "Link zu deiner Website hinzufügen", "profile_info": "Andere Nutzer können dein Profil finden, indem sie auf deinen Avatar in der Benutzerliste eines Dokumentes klicken.", "profile_friendRequestSent": "Freundschaftsanfrage gesendet...", - "profile_friend": "{0} ist mit dir befreundet", "notification_padShared": "{0} hat ein Pad mit dir geteilt: {1}", "notification_fileShared": "{0} hat eine Datei mit dir geteilt: {1}", "notification_folderShared": "{0} hat einen Ordner mit dir geteilt: {1}", @@ -1119,8 +1118,6 @@ "requestEdit_button": "Bearbeitungsrechte anfragen", "requestEdit_dialog": "Bist du sicher, dass du den Eigentümer um Bearbeitungsrechte für das Pad bitten möchtest?", "requestEdit_confirm": "{1} hat Bearbeitungsrechte für das Pad {0} angefragt. Möchtest du die Rechte vergeben?", - "requestEdit_fromFriend": "Du bist mit {0} befreundet", - "requestEdit_fromStranger": "Du bist nicht mit {0} befreundet", "requestEdit_viewPad": "Pad in neuem Tab öffnen", "later": "Später entscheiden", "requestEdit_request": "{1} möchte das Pad {0} bearbeiten", @@ -1167,7 +1164,6 @@ "share_linkTeam": "Zu Team-Drive hinzufügen", "team_inviteModalButton": "Einladen", "team_pickFriends": "Freunde auswählen, um sie in dieses Team einzuladen", - "team_noFriend": "Du bist derzeit mit keinen Freunden auf CryptPad verbunden.", "team_pcsSelectLabel": "Speichern in", "team_pcsSelectHelp": "Die Erstellung eines eigenen Pads im Drive deines Teams gibt die Eigentümerschaft an das Team.", "team_invitedToTeam": "{0} hat dich zum Team eingeladen: {1}", diff --git a/www/common/translations/messages.fi.json b/www/common/translations/messages.fi.json index 1df2e4d81..3a22c53b3 100644 --- a/www/common/translations/messages.fi.json +++ b/www/common/translations/messages.fi.json @@ -619,7 +619,7 @@ "about_intro": "CryptPadia kehittää Pariisissa, Ranskassa ja Iasissa, Romaniassa toimivaXWiki SAS-pienyrityksen tutkimusryhmä. CryptPadin parissa työskentelee kolme ryhmän ydinjäsentä ja lisäksi joitakin avustajia XWiki SAS:n sisältä ja ulkopuolelta.", "about_core": "Ydinkehittäjät", "about_contributors": "Tärkeät avustajat", - "main_info": "

Luottamuksellista yhteistyötä

Jaetut dokumentit mahdollistavat ideoiden jakamisen samalla kun nollatietoperiaate-teknologia suojaa yksityisyytesi - jopa meiltä.", + "main_info": "

Luottamuksellista yhteistyötä

Jaa ideoita yhdessä jaettujen dokumenttien avulla.Nollatieto-teknologia turvaa yksityisyytesi - jopa meiltä.", "main_catch_phrase": "Pilvipalvelu nollatietoperiaatteella", "main_footerText": "CryptPadin avulla voit nopeasti luoda kollaboratiivisia dokumentteja muistiinpanoja ja yhteistä ideointia varten.", "footer_applications": "Sovellukset", @@ -665,8 +665,6 @@ "requestEdit_button": "Pyydä muokkausoikeutta", "requestEdit_dialog": "Haluatko varmasti pyytää padin omistajalta muokkausoikeutta?", "requestEdit_confirm": "{1} on pyytänyt oikeutta muokata padia {0}. Haluatko myöntää muokkausoikeuden?", - "requestEdit_fromFriend": "Olet kaveri käyttäjän {0} kanssa", - "requestEdit_fromStranger": "Et ole käyttäjän {0} kaveri", "requestEdit_viewPad": "Avaa padi uudessa välilehdessä", "later": "Päätä myöhemmin", "requestEdit_request": "{1} haluaa muokata padia {0}", @@ -695,7 +693,6 @@ "share_linkTeam": "Lisää tiimin CryptDriveen", "team_pickFriends": "Valitse tiimiin kutsuttavat kaverit", "team_inviteModalButton": "Kutsu", - "team_noFriend": "Sinulla ei ole vielä kavereita CryptPadissa.", "drive_sfPassword": "Jaettu kansiosi {0} ei ole enää saatavilla. Se on joko poistettu omistajansa toimesta tai sille on asetettu uusi salasana. Voit poistaa tämän kansion CryptDrivestasi tai palauttaa käyttöoikeuden käyttämällä uutta salasanaa.", "drive_sfPasswordError": "Väärä salasana", "password_error_seed": "Padia ei löytynyt!
Tämä virhe voi johtua kahdesta syystä: joko padiin on lisätty tai vaihdettu salasana, tai padi on poistettu palvelimelta.", @@ -911,20 +908,20 @@ "a": "Palvelimen ylläpitäjät näkevät CryptPadia käyttävien ihmisten IP-osoitteet. Emme pidä kirjaa siitä, mitkä osoitteet vierailevat missäkin padeissa. Tämä olisi kuitenkin teknisesti mahdollista, vaikka emme pääsekään tarkastelemaan padien salaamatonta sisältöä. Jos pelkäät meidän analysoivan näitä tietoja, on parasta olettaa meidän keräävän niitä, sillä emme voi todistaa, ettemme tee niin.

Keräämme käyttäjiltämme joitakin perustason telemetriatietoja, kuten käytetyn laitteen näytön koon ja tietoja useimmin käytetyistä painikkeista. Nämä auttavat meitä parantamaan CryptPadia, mutta jos et halua lähettää telemetriatietoja CryptPadille, voit jättäytyä pois tietojen keräämisestä ottamalla rastin pois Salli käyttäjäpalaute-ruudusta.

Pidämme kirjaa siitä, mitä padeja käyttäjät säilyttävät CryptDriveissaan pystyäksemme asettamaan tallennustilarajoituksia. Emme kuitenkaan tiedä näiden padien tyyppiä tai sisältöä. Tallennustilakiintiöt määritellään käyttäjien julkisten salausavainten perusteella, mutta emme yhdistä käyttäjien nimiä tai sähköpostiosoitteita näihin avaimiin.

Saadaksesi lisätietoja aiheesta voit tutustua kirjoittamaamme blogikirjoitukseen." }, "register": { - "q": "", - "a": "" + "q": "Jos rekisteröidyn, tietääkö palvelin minusta enemmän?", + "a": "Emme vaadi käyttäjiltä sähköpostiosoitteen vahvistusta, eikä palvelin saa tietää rekisteröitymisen yhteydessä edes käyttäjänimeäsi tai salasanaasi. Sen sijaan rekisteröitymis- ja sisäänkirjautumislomakkeet luovat antamastasi syötteestä uniikin avainrenkaan, ja palvelin saa tietoonsa ainoastaan kryptografisen allekirjoituksesi. Käytämme tätä tietoa yksityiskohtien, kuten tallennustilan käytön valvomiseen ja siten tallennustilakiintiöiden ylläpitämiseen.

Käytämme palaute-toimintoa kertoaksemme palvelimelle, että IP-osoitteestasi on luotu käyttäjätili. Tämä auttaa meitä pitämään kirjaa CryptPadiin rekisteröityneiden käyttäjien määrästä ja maantieteellisestä sijainnista, jotta voimme paremmin arvioida, mitä kieliä palvelumme kannattaisi tukea.

Rekisteröityneet käyttäjät kertovat palvelimelle, mitä padeja he säilyttävät CryptDriveissaan. Tämä on tarpeen, että kyseisiä padeja ei todeta hylätyiksi ja siten poisteta käyttämättömyyden takia." }, "other": { - "q": "", - "a": "" + "q": "Mitä yhteistyökumppanit saavat tietää minusta?", + "a": "Muokatessasi padia jonkun toisen kanssa kaikki yhteydet kulkevat palvelimen kautta, joten vain me saamme tietää IP-osoitteesi. Muut käyttäjät näkevät näyttönimesi, avatar-kuvasi, linkin profiiliisi (jos olet luonut sellaisen) ja julkisen salausavaimesi (jota käytetään yhteyksien salaamiseen)." }, "anonymous": { - "q": "", - "a": "" + "q": "Tekeekö CryptPad minusta anonyymin?", + "a": "Vaikka CryptPad on suunniteltu tietämään sinusta niin vähän kuin mahdollista, se ei tarjoa vahvaa anonymiteettisuojaa. Palvelimemme tietävät IP-osoitteesi, mutta voit halutessasi piilottaa sen käyttämällä CryptPadia Tor-verkosta. Pelkkä Tor-verkon käyttäminen ilman muutoksia verkkokäyttäytymiseesi ei takaa anonymiteettiä, sillä palvelin tunnistaa käyttäjät uniikkien salaustunnisteiden perusteella. Jos käytät samaa käyttäjätunnusta Tor-verkosta ja sen ulkopuolelta, istuntosi voidaan yhdistää sinuun.

Käyttäjille, joiden yksityisyysvaatimukset ovat matalammat - toisin kuin monet muut palvelut, CryptPad ei vaadi käyttäjiä tunnistautumaan nimellä, puhelinnumerolla tai sähköpostiosoitteella." }, "policy": { - "q": "", - "a": "" + "q": "Onko teillä tietosuojakäytäntö?", + "a": "Kyllä! Se löytyy täältä." } }, "security": { @@ -932,22 +929,22 @@ "q": "Mitä tapahtuu, kun suojaan padin tai kansion salasanalla?", "a": "Voit suojata minkä tahansa padin tai jaetun kansion salasanalla luodessasi sen. Voit myös käyttää Ominaisuudet-valikkoa asettaaksesi, vaihtaaksesi tai poistaaksesi salasanan milloin tahansa.

Padien ja jaettujen kansioiden salasanat on tarkoitettu suojaamaan linkkiä jakaessasi sitä mahdollisesti turvattomien kanavien, kuten sähköpostin tai tekstiviestin kautta. Jos joku onnistuu kaappaamaan linkkisi, mutta ei tiedä sen salasanaa, ei hän pääse lukemaan dokumenttiasi.

Kun jaat sisältöä CryptPadin sisällä yhteystietojesi tai tiimiesi kanssa, tiedonsiirto on salattua ja oletamme, että haluat heidän pääsevän käyttämään dokumenttiasi. Siksi salasana tallennetaan ja lähetetään padin mukana jakaessasi sitä CryptPadin sisällä. Vastaanottajalta tai sinulta itseltäsi ei pyydetä salasanaa dokumenttia avatessa." }, - "title": "", + "title": "Turvallisuus", "proof": { - "q": "", - "a": "" + "q": "Miten käytätte nollatietotodistuksia (Zero Knowledge Proofs)?", + "a": "Käyttäessämme termiä \"nollatieto\" (Zero Knowledge) emme viittaa nollatietotodistuksiin (Zero Knowledge Proofs) vaan nollatieto-verkkopalveluihin (Zero Knowledge Web Services). Nollatieto-verkkopalvelut salaavat käyttäjän datan tämän selaimessa niin, ettei palvelin pääse missään vaiheessa käsittelemään salaamatonta dataa tai salausavaimia.

Olemme keränneet listan muista nollatietopalveluista tänne." }, "why": { - "q": "", - "a": "" + "q": "Miksi minun kannattaisi käyttää CryptPadia?", + "a": "Mielestämme pilvipalveluiden ei tarvitse päästä lukemaan dataasi, jotta voit jakaa sen ystäviesi ja kollegoidesi kanssa. Jos käytät yhteistyöhön jotakin muuta palvelua, eikä palvelu erikseen ilmoita, ettei se pääse käsiksi tietoihisi, on hyvin todennäköistä, että tietojasi käytetään kaupallisiin tarkoituksiin." }, "compromised": { - "q": "", - "a": "" + "q": "Suojaako CryptPad minua, jos laitteeni tietoturva on vaarantunut?", + "a": "Jos laitteesi varastetaan, CryptPad voi kirjata sinut ulos kaikista muista laitteista, paitsi nykyisestä laitteestasi. Tehdäksesi niin mene Asetukset-sivulle ja valitse Kirjaudu ulos kaikkialta. Kaikki muut tilillesi kirjautuneet aktiiviset laitteet kirjautuvat välittömästi ulos. Ne laitteet, joilla CryptPadia on käytetty aiemmin kirjautuvat ulos seuraavan sivunlatauksen yhteydessä.

Tällä hetkellä etäuloskirjautuminen on toteutettu selainpohjaisesti palvelimen sijaan. Näin ollen se ei suojaa sinua valtiollisilta toimijoilta, mutta on riittävä, jos unohdit kirjautua ulos CryptPadista käytettyäsi jaettua tietokonetta." }, "crypto": { - "q": "", - "a": "" + "q": "Mitä kryptografisia menetelmiä käytätte?", + "a": "CryptPad perustuu kahteen avoimen lähdekoodin kryptografiakirjastoon: tweetnacl.js:n ja scrypt-async.js:n.

Scrypt on salasanapohjainen avaimenmuodostusalgoritmi. Käytämme sitä muuntaaksemme käyttäjätunnuksesi ja salasanasi uniikiksi avainrenkaaksi, joka turvaa pääsyn CryptDriveesi niin, että ainoastaan sinä pääset käsiksi padilistaasi.

Käytämme vastaavasti tweetnacl:n tarjoamia xsalsa20-poly1305- ja x25519-xsalsa20-poly1305-salakirjoitusjärjestelmiä salaamaan padeja ja keskusteluhistoriaa." } }, "usability": { @@ -1010,17 +1007,64 @@ } }, "policy_howweuse_p1": "Käytämme näitä tietoja suunnitellaksemme CryptPadin mainostusta ja arvioidaksemme aiempien kampanjoiden onnistumista. Sijaintitietosi puolestaan kertovat meille, mitä kieliä CryptPadin tulisi mahdollisesti tukea englannin lisäksi.", - "tos_title": "", - "tos_legal": "", - "tos_availability": "", - "tos_e2ee": "", - "tos_logs": "", - "tos_3rdparties": "", - "four04_pageNotFound": "", - "updated_0_header_logoTitle": "", - "header_logoTitle": "", - "header_homeTitle": "", + "tos_title": "CryptPad-käyttöehdot", + "tos_legal": "Älä ole pahantahtoinen, väärinkäyttäjä tai tee mitään laitonta.", + "tos_availability": "Toivomme sinun pitävän tätä palvelua hyödyllisenä, mutta emme voi taata sen saatavuutta tai suorituskykyä. Viethän tietosi säännöllisesti muualle talteen.", + "tos_e2ee": "CryptPad-sisältöä voi lukea tai muokata kuka tahansa, joka pystyy arvaamaan tai muuten saamaan käsiinsä padin katkelmatunnisteen. Suosittelemme käyttämään päästä päähän salattuja viestintämenetelmiä linkkien jakamiseen, emmekä ota vastuuta tilanteissa, joissa sellainen linkki pääsee vuotamaan.", + "tos_logs": "Selaimesi palvelimelle tarjoama metadata voidaan kerätä palvelun ylläpitämistä varten.", + "tos_3rdparties": "Emme luovuta yksilöityä dataa kolmansille osapuolille, ellei meillä ole lakisääteistä velvollisuutta tehdä niin.", + "four04_pageNotFound": "Etsimääsi sivua ei löytynyt.", + "updated_0_header_logoTitle": "Siirry CryptDriveesi", + "header_logoTitle": "Siirry CryptDriveesi", + "header_homeTitle": "Siirry CryptPad-kotisivulle", "help": { - "title": "" - } + "title": "Näin pääset alkuun", + "generic": { + "more": "Tutustu usein kysyttyihin kysymyksiin saadaksesi lisätietoja CryptPadin toiminnallisuudesta", + "share": "Käytä Jaa-valikkoa () luodaksesi linkin, jonka kautta yhteistyökumppanit pääsevät katselemaan tai muokkaamaan padia", + "save": "Kaikki tekemäsi muutokset synkronoidaan automaattisesti, joten sinun ei tarvitse koskaan tallentaa" + }, + "text": { + "formatting": "Voit näyttää tai piilottaa Tekstin muotoilu-työkalupalkin klikkaamalla tai -painikkeita", + "embed": "Rekisteröityneet käyttäjät voivat upottaa kuvan tai CryptDriveen tallennetun tiedoston avulla", + "history": "Voit käyttää historiaa katsellaksesi tai palauttaaksesi aiempia versioita" + }, + "pad": { + "export": "Voit viedä sisältösi PDF-tiedostoon Tekstin muotoilu-työkalupalkin -painikkeella" + }, + "code": { + "modes": "Käytä -alavalikon pudotusvalikoita vaihtaaksesi syntaksin korostustilaa tai väriteemoja" + }, + "beta": { + "warning": "Tämä editori on edelleen koekäytössä, voit ilmoittaa löytämäsi bugit asianhallintajärjestelmäämme" + }, + "oo": { + "access": "Käyttö on rajattu ainoastaan rekisteröityneille käyttäjille, yhteistyökumppanien tulee kirjautua sisään" + }, + "slide": { + "markdown": "Kirjoita diat Markdown-kielellä ja erota ne toisistaan --- -rivillä", + "present": "Aloita esitys -painikkeella", + "settings": "Muuta dian asetuksia (taustakuvaa, siirtymiä, sivunumeroita jne.) -alavalikon -painikkeella", + "colors": "Vaihda tekstin ja taustan väriä ja -painikkeilla" + }, + "poll": { + "decisions": "Tee päätöksiä luotettujen ystävien kesken", + "options": "Ehdota vaihtoehtoja ja tuo ilmi mielipiteesi", + "choices": "Napsauta sarakkeesi soluja valitaksesi kyllä- (), ehkä- (~), tai ei () -vaihtoehdon", + "submit": "Napsauta Lähetä tehdäksesi valintasi näkyviksi muille" + }, + "whiteboard": { + "colors": "Kaksoisnapsauta värejä muokataksesi väripalettiasi", + "mode": "Ota piirtotila pois käytöstä vetääksesi ja venyttääksesi viivoja", + "embed": "Upota kuvia kovalevyltäsi tai CryptDrivestasi ja vie ne PNG-tiedostomuodossa kovalevyllesi tai CryptDriveesi " + }, + "kanban": { + "add": "Lisää uusia tauluja oikeassa yläkulmassa olevalla -painikkeella", + "task": "Siirrä kohtia raahaamalla ja pudottamalla ne yhdestä taulusta toiseen", + "color": "Vaihda värejä napsauttamalla taulun otsikon vieressä olevaa värillistä osaa" + } + }, + "driveReadmeTitle": "Mikä on CryptPad?", + "readme_welcome": "Tervetuloa CryptPadiin!", + "readme_p1": "Tervetuloa CryptPadiin, täällä voit tehdä muistiinpanoja yksin tai ystäviesi kanssa." } diff --git a/www/common/translations/messages.fr.json b/www/common/translations/messages.fr.json index 9abea1c41..9286d8eb7 100644 --- a/www/common/translations/messages.fr.json +++ b/www/common/translations/messages.fr.json @@ -279,7 +279,7 @@ "profile_description": "Description", "profile_fieldSaved": "Nouvelle valeur enregistrée : {0}", "profile_viewMyProfile": "Voir mon profil", - "userlist_addAsFriendTitle": "Envoyer une demande d'ami à « {0} »", + "userlist_addAsFriendTitle": "Envoyer une demande de contact à « {0} »", "contacts_title": "Contacts", "contacts_addError": "Erreur lors de l'ajout de ce contact dans votre liste", "contacts_added": "Invitation de contact acceptée.", @@ -299,7 +299,7 @@ "contacts_confirmRemoveHistory": "Êtes-vous sûr de vouloir supprimer définitivement l'historique de votre chat ? Les messages ne pourront pas être restaurés.", "contacts_removeHistoryServerError": "Une erreur est survenue lors de la supprimer de l'historique du chat. Veuillez réessayer plus tard.", "contacts_fetchHistory": "Récupérer l'historique plus ancien", - "contacts_friends": "Amis", + "contacts_friends": "Contacts", "contacts_rooms": "Salons", "contacts_leaveRoom": "Quitter ce salon", "contacts_online": "Un autre utilisateur est en ligne dans ce salon", @@ -671,7 +671,7 @@ "features_f_social": "Applications sociales", "features_f_social_note": "Créer un profil, utiliser un avatar, chat avec les contacts", "features_f_file1": "Importer et partager des fichiers", - "features_f_file1_note": "Partager des fichiers avec vos amis ou les intégrer dans vos pads", + "features_f_file1_note": "Partager des fichiers avec vos contacts ou les intégrer dans vos pads", "features_f_storage1": "Stockage permanent (50Mo)", "features_f_storage1_note": "Les pads stockés dans votre CryptDrive ne seront jamais supprimés pour cause d'inactivité", "features_f_register": "S'enregistrer gratuitement", @@ -774,7 +774,7 @@ "a": "Les utilisateurs enregistrés ont accès à un certain nombre de nouvelles fonctionnalités inaccessibles aux utilisateurs non connectés. Un tableau récapitulatif est disponible ici." }, "share": { - "q": "Comment partager des pads chiffrés avec mes amis ?", + "q": "Comment partager des pads chiffrés avec mes contacts ?", "a": "CryptPad stocke la clé secrète de chiffrement des pads après le symbole # dans l'URL. Tout ce qui se trouve après ce symbole n'est jamais envoyé au serveur, ainsi nous n'avons pas accès à vos clés de chiffrement. Partager le lien d'un pad revient donc à permettre la lecture ou la modification du contenu." }, "remove": { @@ -806,7 +806,7 @@ "title": "Autres questions", "pay": { "q": "Pourquoi payer alors que toutes les fonctionnalités sont gratuites ?", - "a": "Un compte premium permet d'augmenter la limite de stockage dans le CryptDrive, ainsi que celle de ses amis (en savoir plus).
En plus de ces avantages directs, l'abonnement premium permet aussi de financer le développement actif et de manière continue de CryptPad. Cela comprend la correction de bugs, l'ajout de nouvelles fonctionnalités et rendre plus facile l'hébergement de CryptPad par d'autres personnes.
Avec un abonnement, vous aidez aussi à prouver aux autres fournisseurs de services que les gens sont prêts à supporter les technologies améliorant le respect de leur vie privée. Nous espérons qu'un jour, les entreprises ayant pour revenu principal la revente de données des utilisateurs soient de l'histoire ancienne.
Enfin, nous offrons la plupart des fonctionnalités gratuitement parce que nous croyons que tout le monde mérite le respect de la vie privée. En souscrivant à un compte premium, vous nous aider à maintenir ces fonctionnalités basiques accessibles aux populations défavorisées." + "a": "Un compte premium permet d'augmenter la limite de stockage dans le CryptDrive, ainsi que celle de ses contacts (en savoir plus).
En plus de ces avantages directs, l'abonnement premium permet aussi de financer le développement actif et de manière continue de CryptPad. Cela comprend la correction de bugs, l'ajout de nouvelles fonctionnalités et rendre plus facile l'hébergement de CryptPad par d'autres personnes.
Avec un abonnement, vous aidez aussi à prouver aux autres fournisseurs de services que les gens sont prêts à supporter les technologies améliorant le respect de leur vie privée. Nous espérons qu'un jour, les entreprises ayant pour revenu principal la revente de données des utilisateurs soient de l'histoire ancienne.
Enfin, nous offrons la plupart des fonctionnalités gratuitement parce que nous croyons que tout le monde mérite le respect de la vie privée. En souscrivant à un compte premium, vous nous aider à maintenir ces fonctionnalités basiques accessibles aux populations défavorisées." }, "goal": { "q": "Quel est votre objectif ?", @@ -885,7 +885,7 @@ }, "driveReadmeTitle": "Qu'est-ce que CryptPad ?", "readme_welcome": "Bienvenue dans CryptPad !", - "readme_p1": "Bienvenue dans CryptPad, le lieu où vous pouvez prendre des notes seul ou avec des amis.", + "readme_p1": "Bienvenue dans CryptPad, le lieu où vous pouvez prendre des notes seul ou avec des contacts.", "readme_p2": "Ce pad va vous donner un aperçu de la manière dont vous pouvez utiliser CryptPad pour prendre des notes, les organiser et travailler en groupe sur celles-ci.", "readme_cat1": "Découvrez votre CryptDrive", "readme_cat1_l1": "Créer un pad : Dans votre CryptDrive, cliquez sur {0} puis {1} et vous obtenez un nouveau pad.", @@ -1058,18 +1058,17 @@ "friendRequest_later": "Décider plus tard", "friendRequest_accept": "Accepter (Entrée)", "friendRequest_decline": "Décliner", - "friendRequest_declined": "{0} a décliné votre demande d'ami", - "friendRequest_accepted": "{0} a accepté votre demande d'ami", - "friendRequest_received": "{0} souhaite être votre ami", - "friendRequest_notification": "{0} vous a envoyé une demande d'ami", + "friendRequest_declined": "{0} a décliné votre demande de contact", + "friendRequest_accepted": "{0} a accepté votre demande de contact", + "friendRequest_received": "{0} souhaite être votre contact", + "friendRequest_notification": "{0} vous a envoyé une demande de contact", "notifications_empty": "Pas de nouvelle notification", "notifications_title": "Vous avez des notifications non lues", "profile_addDescription": "Ajouter une description", "profile_editDescription": "Modifier votre description", "profile_addLink": "Ajouter un lien vers votre site web", "profile_info": "Les autres utilisateurs peuvent trouver votre profil en cliquant sur votre nom dans la liste d'utilisateurs des documents.", - "profile_friendRequestSent": "Demande d'ami en attente...", - "profile_friend": "{0} est votre ami(e)", + "profile_friendRequestSent": "Demande de contact en attente...", "notification_padShared": "{0} a partagé un pad avec vous : {1}", "notification_fileShared": "{0} a partagé un fichier avec vous : {1}", "notification_folderShared": "{0} a partagé un dossier avec vous : {1}", @@ -1080,7 +1079,7 @@ "share_withFriends": "Partager", "notifications_dismiss": "Cacher", "fm_info_sharedFolderHistory": "Vous regardez l'historique de votre dossier partagé {0}
Votre CryptDrive restera en lecture seule pendant la navigation.", - "share_description": "Choisissez ce que vous souhaitez partager puis obtenez le lien ou envoyez-le directement à vos amis CryptPad.", + "share_description": "Choisissez ce que vous souhaitez partager puis obtenez le lien ou envoyez-le directement à vos contacts CryptPad.", "fc_color": "Changer la couleur", "supportPage": "Support", "admin_cat_support": "Support", @@ -1108,7 +1107,7 @@ "notificationsPage": "Notifications", "openNotificationsApp": "Ouvrir le panneau de notifications", "notifications_cat_all": "Toutes", - "notifications_cat_friends": "Demandes d'ami", + "notifications_cat_friends": "Demandes de contact", "notifications_cat_pads": "Partagé avec moi", "notifications_cat_archived": "Historique", "notifications_dismissAll": "Tout cacher", @@ -1122,8 +1121,6 @@ "requestEdit_button": "Demander les droits d'édition", "requestEdit_dialog": "Êtes-vous sûr de vouloir demander les droits d'édition de ce pad au propriétaire ?", "requestEdit_confirm": "{1} a demandé les droits d'édition pour le pad {0}. Souhaitez-vous leur accorder les droits ?", - "requestEdit_fromFriend": "Vous êtes amis avec {0}", - "requestEdit_fromStranger": "Vous n'êtes pas amis avec {0}", "requestEdit_viewPad": "Ouvrir le pad dans un nouvel onglet", "later": "Décider plus tard", "requestEdit_request": "{1} souhaite éditer le pad {0}", @@ -1150,7 +1147,7 @@ "register_emailWarning3": "Si vous souhaitez tout de même utiliser votre adresse email comme nom d'utilisateur, appuyez sur OK.", "owner_removeText": "Supprimer un propriétaire existant", "owner_removePendingText": "Annuler une offre en attente", - "owner_addText": "Proposer à un ami d'être co-propriétaire de ce document", + "owner_addText": "Proposer à un contact d'être co-propriétaire de ce document", "owner_unknownUser": "Utilisateur inconnu", "owner_removeButton": "Supprimer les propriétaires sélectionnés", "owner_removePendingButton": "Annuler les offres sélectionnées", @@ -1167,9 +1164,8 @@ "owner_removedPending": "{0} a annulé l'offre de co-propriété reçue pour {1}", "padNotPinnedVariable": "Ce pad va expirer après {4} jours d'inactivité, {0}connectez-vous{1} ou {2}enregistrez-vous{3} pour le préserver.", "share_linkTeam": "Ajouter au CryptDrive d'une équipe", - "team_pickFriends": "Choisissez les amis à inviter dans cette équipe", + "team_pickFriends": "Choisissez les contacts à inviter dans cette équipe", "team_inviteModalButton": "Inviter", - "team_noFriend": "Vous n'avez pas encore ajouté d'ami sur CryptPad.", "team_pcsSelectLabel": "Sauver dans", "team_pcsSelectHelp": "Créer un pad dans le drive d'une équipe rend cette équipe propriétaire du pad si l'option est cochée.", "team_invitedToTeam": "{0} vous à inviter à rejoindre l'équipe : {1}", @@ -1191,7 +1187,7 @@ "team_rosterPromote": "Promouvoir", "team_rosterDemote": "Rétrograder", "team_rosterKick": "Expulser de l'équipe", - "team_inviteButton": "Inviter des amis", + "team_inviteButton": "Inviter des contacts", "team_leaveButton": "Quitter cette équipe", "team_leaveConfirm": "Si vous quittez cette équipe, vous perdrez l'accès à son CryptDrive, son chat et les autres contenus. Êtes-vous sûr ?", "team_owner": "Propriétaires", @@ -1295,5 +1291,7 @@ "oo_sheetMigration_loading": "Mise à jour de la feuille de calcul", "oo_sheetMigration_complete": "Version mise à jour disponible, appuyez sur OK pour recharger.", "oo_sheetMigration_anonymousEditor": "L'édition de cette feuille de calcul est désactivée pour les utilisateurs anonymes jusqu'à ce qu'elle soit mise à jour par un utilisateur enregistré.", - "imprint": "Mentions légales" + "imprint": "Mentions légales", + "isContact": "{0} est dans vos contacts", + "isNotContact": "{0} n'est pas dans vos contacts" } diff --git a/www/common/translations/messages.json b/www/common/translations/messages.json index 62cb7a696..596d61468 100644 --- a/www/common/translations/messages.json +++ b/www/common/translations/messages.json @@ -282,7 +282,7 @@ "profile_description": "Description", "profile_fieldSaved": "New value saved: {0}", "profile_viewMyProfile": "View my profile", - "userlist_addAsFriendTitle": "Send \"{0}\" a friend request", + "userlist_addAsFriendTitle": "Send \"{0}\" a contact request", "contacts_title": "Contacts", "contacts_addError": "Error while adding that contact to the list", "contacts_added": "Contact invite accepted.", @@ -302,7 +302,7 @@ "contacts_confirmRemoveHistory": "Are you sure you want to permanently remove your chat history? Data cannot be restored", "contacts_removeHistoryServerError": "There was an error while removing your chat history. Try again later", "contacts_fetchHistory": "Retrieve older history", - "contacts_friends": "Friends", + "contacts_friends": "Contacts", "contacts_rooms": "Rooms", "contacts_leaveRoom": "Leave this room", "contacts_online": "Another user from this room is online", @@ -689,7 +689,7 @@ "features_f_social": "Social applications", "features_f_social_note": "Create a profile, use an avatar, chat with contacts", "features_f_file1": "Upload and share files", - "features_f_file1_note": "Share files with your friends or embed them in your pads", + "features_f_file1_note": "Share files with your contacts or embed them in your pads", "features_f_storage1": "Permanent storage (50MB)", "features_f_storage1_note": "Pads stored in your CryptDrive are never deleted for inactivity", "features_f_register": "Register for free", @@ -792,7 +792,7 @@ "a": "Registered users have access to a number of features unavailable to unregistered users. There's a chart here." }, "share": { - "q": "How can I share encrypted pads with my friends?", + "q": "How can I share encrypted pads with my contacts?", "a": "CryptPad puts the secret encryption key to your pad after the # character in the URL. Anything after this character is not sent to the server, so we never have access to your encryption keys. By sharing the link to a pad, you share the ability to read and access it." }, "remove": { @@ -824,7 +824,7 @@ "title": "Other questions", "pay": { "q": "Why should I pay when so many features are free?", - "a": "We give supporters additional storage and the ability to increase their friends' quotas (learn more).

Beyond these short term benefits, by subscribing with a premium account you help to fund continued, active development of CryptPad. That includes fixing bugs, adding new features, and making it easier for others to help host CryptPad themselves. Additionally, you help to prove to other service providers that people are willing to support privacy enhancing technologies. It is our hope that eventually business models based on selling user data will become a thing of the past.

Finally, we offer most of CryptPad's functionality for free because we believe everyone deserves personal privacy, not just those with disposable income. By supporting us, you help us continue to make it possible for underprivileged populations to access these basic features without a price tag attached." + "a": "We give supporters additional storage and the ability to increase their contacts' quotas (learn more).

Beyond these short term benefits, by subscribing with a premium account you help to fund continued, active development of CryptPad. That includes fixing bugs, adding new features, and making it easier for others to help host CryptPad themselves. Additionally, you help to prove to other service providers that people are willing to support privacy enhancing technologies. It is our hope that eventually business models based on selling user data will become a thing of the past.

Finally, we offer most of CryptPad's functionality for free because we believe everyone deserves personal privacy, not just those with disposable income. By supporting us, you help us continue to make it possible for underprivileged populations to access these basic features without a price tag attached." }, "goal": { "q": "What is your goal?", @@ -885,7 +885,7 @@ "colors": "Change the text and background colors using the and buttons" }, "poll": { - "decisions": "Make decisions in private among trusted friends", + "decisions": "Make decisions in private among trusted contacts", "options": "Propose options, and express your preferences", "choices": "Click cells in your column to cycle through yes (), maybe (~), or no ()", "submit": "Click submit to make your choices visible to others" @@ -903,7 +903,7 @@ }, "driveReadmeTitle": "What is CryptPad?", "readme_welcome": "Welcome to CryptPad !", - "readme_p1": "Welcome to CryptPad, this is where you can take note of things alone and with friends.", + "readme_p1": "Welcome to CryptPad, this is where you can take note of things alone and with contacts.", "readme_p2": "This pad will give you a quick walk through of how you can use CryptPad to take notes, keep them organized and work together on them.", "readme_cat1": "Get to know your CryptDrive", "readme_cat1_l1": "Make a pad: In your CryptDrive, click {0} then {1} and you can make a pad.", @@ -1075,18 +1075,19 @@ "friendRequest_later": "Decide later", "friendRequest_accept": "Accept (Enter)", "friendRequest_decline": "Decline", - "friendRequest_declined": "{0} declined your friend request", - "friendRequest_accepted": "{0} accepted your friend request", - "friendRequest_received": "{0} would like to be your friend", - "friendRequest_notification": "{0} sent you a friend request", + "friendRequest_declined": "{0} declined your contact request", + "friendRequest_accepted": "{0} accepted your contact request", + "friendRequest_received": "{0} would like to be your contact", + "friendRequest_notification": "{0} sent you a contact request", "notifications_empty": "No notifications available", "notifications_title": "You have unread notifications", "profile_addDescription": "Add a description", "profile_editDescription": "Edit your description", "profile_addLink": "Add a link to your website", "profile_info": "Other users can find your profile through your avatar in document user lists.", - "profile_friendRequestSent": "Friend request pending...", - "profile_friend": "{0} is your friend", + "profile_friendRequestSent": "Contact request pending...", + "isContact": "{0} is one of your contacts", + "isNotContact": "{0} is not one of your contacts", "notification_padShared": "{0} has shared a pad with you: {1}", "notification_fileShared": "{0} has shared a file with you: {1}", "notification_folderShared": "{0} has shared a folder with you: {1}", @@ -1097,7 +1098,7 @@ "share_withFriends": "Share", "notifications_dismiss": "Dismiss", "fm_info_sharedFolderHistory": "This is only the history of your shared folder: {0}
Your CryptDrive will stay in read-only mode while you navigate.", - "share_description": "Choose what you'd like to share and either get the link or send it directly to your CryptPad friends.", + "share_description": "Choose what you'd like to share and either get the link or send it directly to your CryptPad contacts.", "supportPage": "Support", "admin_cat_support": "Support", "admin_supportInitHelp": "Your server is not yet configured to have a support mailbox. If you want a support mailbox to receive messages from your users, you should ask your server administrator to run the script located in \"./scripts/generate-admin-keys.js\", then store the public key in the \"config.js\" file and send you the private key.", @@ -1130,7 +1131,7 @@ "notificationsPage": "Notifications", "openNotificationsApp": "Open notifications panel", "notifications_cat_all": "All", - "notifications_cat_friends": "Friend requests", + "notifications_cat_friends": "Contact requests", "notifications_cat_pads": "Shared with me", "notifications_cat_archived": "History", "notifications_dismissAll": "Dismiss all", @@ -1138,8 +1139,6 @@ "requestEdit_button": "Request edit rights", "requestEdit_dialog": "Are you sure you'd like to ask the owner of this pad for the ability to edit?", "requestEdit_confirm": "{1} has asked for the ability to edit the pad {0}. Would you like to grant them access?", - "requestEdit_fromFriend": "You are friends with {0}", - "requestEdit_fromStranger": "You are not friends with {0}", "requestEdit_viewPad": "Open the pad in a new tab", "later": "Decide later", "requestEdit_request": "{1} wants to edit the pad {0}", @@ -1153,7 +1152,7 @@ "features_emailRequired": "Email address required", "owner_removeText": "Remove an existing owner", "owner_removePendingText": "Cancel a pending offer", - "owner_addText": "Offer co-ownership to a friend", + "owner_addText": "Offer co-ownership to a contact", "owner_unknownUser": "Unknown user", "owner_removeButton": "Remove selected owners", "owner_removePendingButton": "Cancel selected offers", @@ -1169,9 +1168,8 @@ "owner_removed": "{0} has removed your ownership of {1}", "owner_removedPending": "{0} has canceled your ownership offer for {1}", "share_linkTeam": "Add to team drive", - "team_pickFriends": "Choose which friends to invite to this team", + "team_pickFriends": "Choose which contacts to invite to this team", "team_inviteModalButton": "Invite", - "team_noFriend": "You haven't connected with any friends on CryptPad yet.", "team_pcsSelectLabel": "Store in", "team_pcsSelectHelp": "Creating an owned pad in your team's drive will give ownership to the team.", "team_invitedToTeam": "{0} has invited you to join their team: {1}", @@ -1193,7 +1191,7 @@ "team_rosterPromote": "Promote", "team_rosterDemote": "Demote", "team_rosterKick": "Kick from the team", - "team_inviteButton": "Invite friends", + "team_inviteButton": "Invite contacts", "team_leaveButton": "Leave this team", "team_leaveConfirm": "If you leave this team you will lose access to its CryptDrive, chat history, and other contents. Are you sure?", "team_owner": "Owners", diff --git a/www/profile/inner.js b/www/profile/inner.js index d5243036c..0f4a17746 100644 --- a/www/profile/inner.js +++ b/www/profile/inner.js @@ -201,7 +201,7 @@ define([ // Add friend message APP.$friend.append(h('p.cp-app-profile-friend', [ h('i.fa.fa-address-book'), - Messages._getKey('profile_friend', [name]) + Messages._getKey('isContact', [name]) ])); if (!friends[data.curvePublic].notifications) { return; } // Add unfriend button diff --git a/www/support/ui.js b/www/support/ui.js index 42ee89c94..c008e219c 100644 --- a/www/support/ui.js +++ b/www/support/ui.js @@ -170,7 +170,9 @@ define([ var privateData = metadataMgr.getPrivateData(); // Check content.sender to see if it comes from us or from an admin - var fromMe = content.sender && content.sender.edPublic === privateData.edPublic; + var senderKey = content.sender && content.sender.edPublic; + var fromMe = senderKey === privateData.edPublic; + var fromAdmin = ctx.adminKeys.indexOf(senderKey) !== -1; var userData = h('div.cp-support-showdata', [ Messages.support_showData, @@ -183,7 +185,7 @@ define([ }); var name = Util.fixHTML(content.sender.name) || Messages.anonymous; - return h('div.cp-support-list-message', { + return h('div.cp-support-list-message' + (fromAdmin? '.cp-support-fromadmin': ''), { 'data-hash': hash }, [ h('div.cp-support-message-from' + (fromMe ? '.cp-support-fromme' : ''), [ @@ -219,6 +221,7 @@ define([ common: common, isAdmin: isAdmin, pinUsage: pinUsage || false, + adminKeys: Array.isArray(ApiConfig.adminKeys)? ApiConfig.adminKeys.slice(): [], }; ui.sendForm = function (id, form, dest) {