Преглед на файлове

improve landing page with featurettes and feedback

pull/44/head
Guillaume Vincent преди 8 години
родител
ревизия
d5ba500835
променени са 15 файла, в които са добавени 216 реда и са изтрити 156 реда
  1. Двоични данни
      app/assets/images/el.jpg
  2. +26
    -14
      app/assets/images/featurettes.svg
  3. Двоични данни
      app/assets/images/free.png
  4. Двоични данни
      app/assets/images/gv.jpg
  5. Двоични данни
      app/assets/images/no-cloud.png
  6. Двоични данни
      app/assets/images/open-source.png
  7. Двоични данни
      app/assets/images/responsive.png
  8. +2
    -2
      app/components/faq.vue
  9. +0
    -43
      app/components/features.vue
  10. +45
    -0
      app/components/feedback.vue
  11. +82
    -0
      app/components/howitworks.vue
  12. +6
    -3
      app/components/index.vue
  13. +7
    -6
      app/components/password-generator.vue
  14. +47
    -87
      app/locales.js
  15. +1
    -1
      webpack.config.js

Двоични данни
app/assets/images/el.jpg Целия файл

Преди След
Ширина: 73  |  Височина: 73  |  Големина: 3.0 KiB

+ 26
- 14
app/assets/images/featurettes.svg Целия файл

@@ -13,7 +13,7 @@
width="960"
xml:space="preserve"
id="svg2"
inkscape:version="0.91 r13725"
inkscape:version="0.48.4 r9939"
sodipodi:docname="featurettes.svg"><metadata
id="metadata66"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
@@ -27,17 +27,17 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1680"
inkscape:window-height="988"
inkscape:window-width="1333"
inkscape:window-height="744"
id="namedview62"
showgrid="false"
inkscape:zoom="1.0727273"
inkscape:cx="392.80798"
inkscape:cy="97.45609"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:cx="653.82492"
inkscape:cy="60.167955"
inkscape:window-x="33"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="svg2"
inkscape:current-layer="g4288"
showborder="true"
inkscape:showpageshadow="false" /><g
id="Artboard"
@@ -45,7 +45,10 @@
id="g4288"
inkscape:export-xdpi="115"
inkscape:export-ydpi="115"><g
id="g4279"><g
id="g4279"
inkscape:export-filename="/home/guillaume/workspace/lesspass/lesspass/app/assets/images/no-cloud.png"
inkscape:export-xdpi="219.54187"
inkscape:export-ydpi="219.54187"><g
id="g4196"
transform="translate(6.497146,11.819039)"><path
id="path22"
@@ -74,10 +77,16 @@
inkscape:connector-curvature="0"
id="path4302"
d="m 409.28158,111.8599 c 0.10678,-0.27821 -0.7617,-1.65893 -2.37139,-3.77021 l -2.53987,-3.33125 -0.0265,-13.222244 c -0.0153,-7.272241 -0.11882,-13.371647 -0.23167,-13.554207 -0.14962,-0.241988 -3.06733,-0.331948 -10.76645,-0.331948 -8.13458,0 -10.61453,-0.08226 -10.79296,-0.357945 -0.12746,-0.196881 -0.29611,-6.80091 -0.37484,-14.675639 l -0.14319,-14.317692 -32.07165,0 -32.07163,0 0,21.762897 0,21.76288 15.31993,0.149454 c 8.42597,0.08226 15.35682,0.178837 15.4019,0.214754 0.045,0.03589 0.045,1.321696 0,2.857266 l -0.0819,2.791949 -3.1499,0.07803 c -2.5459,0.06297 -3.21853,0.169578 -3.50782,0.555841 -0.46421,0.619769 -0.45146,0.806714 0.0921,1.350216 0.67557,0.675588 15.31932,0.675588 15.99489,0 0.5435,-0.543502 0.55624,-0.730447 0.0921,-1.350216 -0.28929,-0.386263 -0.96192,-0.492844 -3.50783,-0.555841 l -3.14989,-0.07803 0,-2.863545 0,-2.863528 6.01286,-0.07769 c 5.40037,-0.06974 6.0494,-0.02759 6.37138,0.412683 0.259,0.354187 0.35849,2.090344 0.35849,6.254902 l 0,5.764633 -2.6082,3.48614 c -1.61368,2.15686 -2.54521,3.6503 -2.44298,3.91666 0.14522,0.3786 3.17365,0.43054 25.09597,0.43054 22.13439,0 24.94964,-0.0493 25.0992,-0.43895 z m -45.71667,-2.38428 c 0,-0.29281 0.52639,-1.1304 1.16975,-1.86129 l 1.16976,-1.3289 18.2307,0.008 c 13.88125,0.007 18.33835,0.0924 18.68183,0.35794 0.73723,0.5701 2.27136,2.83413 2.10399,3.10498 -0.0862,0.13946 -9.29126,0.25058 -20.75546,0.25058 -19.88968,0 -20.60057,-0.0183 -20.60057,-0.5324 z m 2.91244,-6.26851 c -0.3592,-0.69879 -0.38024,-22.074431 -0.0224,-22.743099 0.27019,-0.504912 1.03412,-0.524376 17.81025,-0.453762 l 17.52793,0.0738 0.075,11.453673 c 0.0414,6.299519 0.0135,11.614978 -0.0626,11.812098 -0.10797,0.28157 -3.88261,0.35842 -17.60404,0.35842 -16.34572,0 -17.48302,-0.0322 -17.7241,-0.50112 z M 320.09638,89.333278 c -0.26033,-0.260335 -0.34362,-4.93165 -0.34362,-19.271616 0,-14.339967 0.0833,-19.011281 0.34362,-19.271616 0.49857,-0.498564 59.23487,-0.498564 59.73342,0 0.52777,0.527778 0.49134,26.094563 -0.0378,26.533718 -0.25189,0.209049 -2.95072,0.342542 -7.94632,0.393015 l -7.56486,0.0765 -0.078,5.562218 c -0.0493,3.511901 -0.19408,5.702141 -0.39302,5.941844 -0.43992,0.530062 -43.18416,0.565268 -43.71344,0.03605 z m 8.46617,22.730392 c 0.28162,-0.18156 0.34542,-2.11117 0.28635,-8.66142 l -0.076,-8.427813 -5.44073,0 -5.44073,0 0,8.590623 0,8.59062 5.15439,0.0708 c 2.83489,0.0389 5.31741,-0.0344 5.5167,-0.16283 z m -8.35975,-3.85786 c -0.36196,-0.36197 -0.44997,-3.53374 -0.44997,-6.46777 0,-4.803147 -0.0328,-4.759123 3.54116,-4.759123 1.8731,0 2.84557,0.117973 3.10157,0.376141 0.27682,0.279172 0.35595,1.38625 0.30704,4.294972 -0.0558,3.31864 -0.14099,6.34409 -0.55584,6.6475 -0.75495,0.55202 -5.37142,0.48079 -5.94394,-0.0917 z"
style="fill:#ffffff" /><g
style="fill:#ffffff"
inkscape:export-filename="/home/guillaume/workspace/lesspass/lesspass/app/assets/images/all-devices.png"
inkscape:export-xdpi="281.62247"
inkscape:export-ydpi="281.62247" /><g
style="fill:#f2f2f2"
transform="matrix(2.8436861,0,0,2.8436861,562.94828,42.012392)"
id="g4347"><g
id="g4347"
inkscape:export-filename="/home/guillaume/workspace/lesspass/lesspass/app/assets/images/open-source.png"
inkscape:export-xdpi="281.25003"
inkscape:export-ydpi="281.25003"><g
style="fill:#f2f2f2"
id="g4305"><g
style="fill:#f2f2f2"
@@ -116,7 +125,10 @@
id="g4337" /><g
style="fill:#f2f2f2"
id="g4339" /></g><path
inkscape:connector-curvature="0"
style="fill:#f2f2f2"
d="m 800.28067,102.841 c -3.60083,-4.907156 -7.3782,-9.69372 -10.66998,-14.819714 3.85019,-4.488546 9.07561,-7.497602 13.6021,-11.240731 11.86869,-8.982467 23.82949,-17.842212 35.73889,-26.770439 4.35801,-0.72313 10.22842,1.659622 13.46578,-1.862643 3.17592,-4.466391 9.14628,-6.897444 14.42617,-4.91462 4.15064,1.031433 5.72397,5.740878 3.77976,9.304463 -1.83727,4.08764 -4.88233,7.625853 -5.71165,12.147096 -1.28228,4.594386 -2.07279,9.316419 -3.5205,13.866194 -9.41417,8.415437 -19.85674,15.573691 -29.85719,23.261004 -6.65859,4.98943 -13.33491,9.95767 -20.1435,14.7415 -4.16653,-4.17799 -7.47273,-9.09103 -11.10988,-13.71211 z m 35.55864,-6.281104 c 7.71134,-5.926782 15.73354,-11.466909 23.06447,-17.874715 2.77424,-3.458443 2.43868,-8.196332 3.75046,-12.244638 0.97498,-4.537751 2.48124,-8.989464 2.79554,-13.647187 -3.26983,-1.322791 -6.87449,-0.335482 -10.30512,-0.505845 -2.13496,-0.281578 -3.84568,0.129579 -3.58726,2.74983 -0.95883,4.643826 7.43516,1.845399 5.95749,7.357968 -0.80959,5.527784 -8.64079,2.777015 -7.30926,-2.139649 -0.89659,-2.426194 1.45195,-8.174228 -1.59322,-8.468559 -2.9964,-0.08845 -5.99279,-0.176894 -8.98919,-0.265341 -15.641,11.882058 -31.63643,23.31411 -46.86027,35.734004 -1.41082,4.199869 4.48866,6.962648 5.91767,10.67397 4.19109,5.607656 8.31003,11.279606 12.85983,16.606316 8.20804,-5.84429 16.21567,-11.96212 24.29886,-17.976154 z m -27.0369,-1.12558 c -3.18169,-2.431751 -5.08512,-7.017266 -0.32855,-8.804835 1.3613,-1.397966 4.54265,-1.03287 1.88931,0.928551 -3.75452,0.692509 -1.96697,7.586142 1.3619,4.050776 2.50974,-2.745513 3.43271,0.587793 0.90528,1.821973 -4.50957,1.230332 4.58111,6.518378 0.22086,6.266561 -1.56911,-1.19689 -2.76076,-2.78839 -4.0488,-4.263026 z m 7.94569,-6.51951 c -2.87484,-2.339884 -4.97076,-7.143108 -0.32283,-8.791687 3.81212,-3.743963 8.1252,1.052876 7.74001,4.674194 1.68089,0.280109 7.28083,3.064984 2.82105,3.045903 -2.49743,-1.323364 -9.80147,-0.930691 -5.79804,2.899427 2.23659,2.923222 -1.10573,3.486108 -2.18114,0.816888 -0.77858,-0.859352 -1.52633,-1.746121 -2.25905,-2.644725 z m 2.66337,-3.29496 c 5.16935,-2.393159 -1.41142,-7.336139 -3.4332,-2.45714 -0.66785,1.748975 2.02142,4.309861 3.4332,2.45714 z m 6.91927,-4.49864 c -3.50817,-2.560655 -4.39986,-7.633179 0.24906,-9.341355 1.86352,-1.849718 4.43972,-0.3112 1.44137,1.272605 -3.41063,0.905606 -2.69821,7.366937 0.84159,4.37462 1.47249,-1.561952 5.69949,-2.722982 2.68328,0.530401 -3.3081,0.780803 -3.25322,5.359195 0.46051,4.874467 1.50261,-0.228417 5.99224,-5.064655 4.82992,-1.209222 -1.96759,2.316954 -6.22178,6.035034 -8.57766,1.975536 -0.46168,-0.94654 -1.31757,-1.62967 -1.92807,-2.477052 z m 8.96185,-6.85252 c -2.97071,-2.515216 -5.38493,-6.960838 -0.72322,-9.11999 1.20565,-1.988081 5.52545,-1.788028 2.35223,0.500795 -3.54167,0.842394 -2.83188,7.721589 0.9851,4.366449 1.26533,-1.589688 5.11118,-1.6034 2.15807,0.614948 -4.43849,2.10074 -0.0108,8.556753 2.75631,3.617272 1.36051,-1.480403 4.31599,-1.905557 2.15847,0.510333 -1.96945,2.889935 -6.40963,5.850644 -8.2654,1.194286 -0.47655,-0.559086 -0.94891,-1.121713 -1.42156,-1.684093 z m 20.858,-12.89835 c -0.53906,-2.907645 -4.48278,-1.218847 -1.5137,0.544441 0.49766,0.347783 1.58909,0.28367 1.5137,-0.544441 z m 13.28476,-10.31225 c 2.23228,-5.175194 -4.84261,-7.779636 -8.87078,-6.676124 -2.5337,0.491003 -6.76192,3.304785 -6.39586,5.323376 3.89359,1.237162 8.12261,0.212808 12.02913,1.04115 1.71171,0.550354 2.23867,4.195007 3.03794,0.918145 l 0.19957,-0.606547 z"
id="path4384"
d="m 800.28067,102.841 c -5.73291,-7.632374 -10.5344,-14.301234 -10.66998,-14.819714 -0.19166,-0.73291 5.2708,-5.06708 24.54723,-19.47692 l 24.79376,-18.53425 6.1572,-0.0181 c 6.08311,-0.0178 6.16838,-0.0351 7.08508,-1.43419 3.5022,-5.34503 9.97926,-7.43998 15.39656,-4.9799 5.2081,2.36509 5.2151,6.33512 0.0255,14.43182 -1.55398,2.42448 -2.29275,4.58162 -3.80597,11.11315 -1.03273,4.45759 -2.1212,8.70006 -2.41881,9.42771 -0.3419,0.83591 -9.51942,8.04471 -24.92771,19.58031 -13.41263,10.041524 -24.69547,18.331504 -25.07298,18.422194 -0.38059,0.0914 -5.33019,-6.01752 -11.10984,-13.71213 z m 35.55864,-6.281104 c 22.18561,-16.64077 24.00508,-18.12481 24.49265,-19.97721 0.28968,-1.10057 1.14167,-4.73964 1.89332,-8.08681 0.75164,-3.34718 1.84814,-8.08409 2.43665,-10.52648 0.58852,-2.44238 0.94305,-4.7716 0.78785,-5.17604 -0.22407,-0.58394 -1.61909,-0.70473 -6.77517,-0.58668 l -6.493,0.14868 -0.50035,2.02592 c -0.62157,2.51673 0.0848,3.86016 1.91315,3.6385 1.86402,-0.22598 4.14378,1.74158 4.14378,3.57631 0,3.40519 -4.03274,5.21904 -6.38149,2.87028 -0.8673,-0.86729 -1.06167,-1.95107 -1.2259,-6.83547 l -0.19518,-5.80474 -5.15621,-0.1522 -5.15622,-0.1522 -24.06069,18.04721 c -14.99725,11.249 -23.96211,18.30411 -23.79899,18.72919 0.52861,1.37751 19.2672,26.237894 19.77691,26.237894 0.18311,0 11.11761,-8.08926 24.29889,-17.976154 z m -27.0369,-1.12558 c -2.19119,-2.64738 -3.98397,-4.99149 -3.98397,-5.20914 0,-0.68849 5.17994,-4.79498 6.04841,-4.79498 1.29678,0 1.00068,0.67805 -1.26011,2.88566 -1.72846,1.6878 -1.99788,2.21657 -1.55298,3.04788 0.86934,1.62438 1.94883,1.68308 3.87894,0.21092 2.12669,-1.62211 2.41129,-1.68043 2.41129,-0.49413 0,0.48816 -0.7626,1.5242 -1.69467,2.30234 l -1.69468,1.41477 1.69468,2.1397 c 0.93207,1.17684 1.69467,2.4031 1.69467,2.72504 0,1.603394 -1.9403,0.123 -5.54158,-4.22806 z m 7.94569,-6.51951 c -2.24581,-2.76379 -3.92283,-5.28471 -3.72671,-5.60205 0.86659,-1.40216 5.77161,-4.76213 6.95197,-4.76213 2.01535,0 4.04162,2.49863 3.66299,4.51691 -0.29871,1.59227 -0.2279,1.66164 2.60906,2.55592 1.77064,0.55814 2.91611,1.2204 2.91611,1.68597 0,0.92594 -1.33092,0.97288 -4.38953,0.15483 -2.67082,-0.71434 -5.13602,-0.26194 -5.13602,0.94252 0,0.46179 0.6052,1.55885 1.34488,2.43792 1.33952,1.59193 1.47523,2.55362 0.41045,2.90855 -0.30795,0.10265 -2.39739,-2.07465 -4.6432,-4.83844 z m 2.66337,-3.29496 c 3.76201,-2.46496 2.15918,-6.23445 -1.64993,-3.88028 -2.25189,1.39173 -2.47613,2.09098 -1.14115,3.55833 1.29291,1.4211 1.14042,1.40351 2.79108,0.32195 z m 6.91927,-4.49864 c -2.189,-2.67599 -3.83448,-5.15928 -3.68199,-5.55666 0.38184,-0.99505 5.42971,-4.95188 6.3173,-4.95188 1.3344,0 0.74452,1.17209 -1.65118,3.28087 -2.35012,2.06865 -2.36588,2.10502 -1.45529,3.35756 1.18541,1.6306 1.43205,1.61205 3.83114,-0.28806 3.63947,-2.88251 4.5633,-1.44481 1.02679,1.59794 l -2.16477,1.86254 1.1366,1.44494 c 0.62512,0.79472 1.37691,1.44495 1.67062,1.44495 0.29371,0 1.5966,-0.87071 2.89531,-1.93489 1.78696,-1.46429 2.51012,-1.78607 2.97319,-1.323 0.69325,0.69325 0.7068,0.67652 -3.02986,3.74149 -1.44996,1.18931 -2.92291,2.16239 -3.27323,2.16239 -0.35032,0 -2.41791,-2.17719 -4.59463,-4.83819 z m 8.96185,-6.85252 c -2.20785,-2.64613 -4.01428,-5.11742 -4.01428,-5.49176 0,-0.7103 5.59405,-5.57303 6.41117,-5.57303 0.56597,0 0.63673,2.11021 0.0715,2.13231 -0.21829,0.009 -1.19929,0.745 -2.17999,1.6366 -1.63298,1.48462 -1.72569,1.72832 -1.10127,2.89507 0.86512,1.61648 1.72635,1.60565 3.89572,-0.049 0.95399,-0.72765 2.00973,-1.32299 2.34608,-1.32299 1.21588,0 0.57188,1.49222 -1.24065,2.8747 -2.1775,1.66087 -2.28644,2.35402 -0.61654,3.9228 l 1.23564,1.16083 2.33644,-1.85724 c 2.46646,-1.9606 3.65943,-2.33608 3.65943,-1.15178 0,0.62038 -5.80657,5.63464 -6.52498,5.63464 -0.14519,0 -2.07042,-2.16501 -4.27827,-4.81114 z m 20.858,-12.89835 c 0,-0.67732 -1.49704,-1.87082 -2.3466,-1.87082 -0.5404,0 -0.31302,1.36228 0.33565,2.01095 0.87587,0.87587 2.01095,0.79677 2.01095,-0.14013 z m 13.28476,-10.31225 c 1.2327,-4.11438 -0.63808,-6.18506 -6.09696,-6.74847 -2.12396,-0.21921 -3.2219,-0.0399 -4.83554,0.78972 -2.34772,1.20701 -5.37347,4.1466 -4.82879,4.69128 0.19629,0.1963 2.91753,0.44907 6.04719,0.56173 7.58418,0.27301 8.07169,0.39649 8.07169,2.04432 0,1.86128 0.90458,1.12403 1.64241,-1.33858 z"
style="fill:#f2f2f2" /></g></svg>
inkscape:connector-curvature="0"
inkscape:export-filename="/home/guillaume/workspace/lesspass/lesspass/app/assets/images/free.png"
inkscape:export-xdpi="243"
inkscape:export-ydpi="243" /></g></svg>

Двоични данни
app/assets/images/free.png Целия файл

Преди След
Ширина: 221  |  Височина: 200  |  Големина: 10 KiB

Двоични данни
app/assets/images/gv.jpg Целия файл

Преди След
Ширина: 73  |  Височина: 73  |  Големина: 2.0 KiB

Двоични данни
app/assets/images/no-cloud.png Целия файл

Преди След
Ширина: 203  |  Височина: 200  |  Големина: 8.7 KiB

Двоични данни
app/assets/images/open-source.png Целия файл

Преди След
Ширина: 213  |  Височина: 200  |  Големина: 8.2 KiB

Двоични данни
app/assets/images/responsive.png Целия файл

Преди След
Ширина: 286  |  Височина: 200  |  Големина: 4.0 KiB

+ 2
- 2
app/components/faq.vue Целия файл

@@ -30,7 +30,7 @@
<li>{{{ $t('faq.a_trust_client_side') }}}.</li>
</ul>
<p>
<a class='btn btn-primary btn-sm' href="https://github.com/oslab-fr/lesspass/">
<a class='btn btn-primary btn-sm' href="https://github.com/lesspass/core/">
{{ $t('faq.source_code') }}
</a>
</p>
@@ -49,7 +49,7 @@
<ul>
<li>{{{ $t('faq.a_roadmap_preset_saving') }}}&nbsp;;</li>
<li>{{{ $t('faq.a_roadmap_15min_memory') }}}&nbsp;;</li>
<li>{{{ $t('faq.a_roadmap_offline_mode') }}}.</li>
<li>{{{ $t('faq.a_roadmap_web_extension') }}}.</li>
</ul>
</section>



+ 0
- 43
app/components/features.vue Целия файл

@@ -1,43 +0,0 @@
<style>
.lesspass-features {
background-color: #0275D8;
color: #D3D8E8;
}

.lesspass-features ul {
line-height: 1.8em;
font-size: 1.15em;
margin: 0 auto;
padding: 0;
list-style-type: none;
}

.lesspass-features ul li::before {
content: "";
display: inline-block;
width: 24px;
height: 24px;
background: transparent url("../assets/images/check.png") no-repeat scroll center center / 24px 24px;
margin-right: 10px;
position: relative;
top: 4px;
}
</style>
<template>
<div class="lesspass-features p-y-3">
<div class="container">
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<h3>{{ $t('features.you_should_use_lesspass') }}</h3>
<ul>
<li>{{{ $t('features.unique_password') }}}&nbsp;;</li>
<li>{{{ $t('features.love_open_source') }}}&nbsp;;</li>
<li>{{{ $t('features.works_everywhere') }}}&nbsp;;</li>
<li>{{{ $t('features.no_cloud') }}}&nbsp;;</li>
<li>{{{ $t('features.only_one_password') }}}.</li>
</ul>
</div>
</div>
</div>
</div>
</template>

+ 45
- 0
app/components/feedback.vue Целия файл

@@ -0,0 +1,45 @@
<style>
.lesspass-feedback {
background-color: #252830;
color: #D3D8E8;
}

.lesspass-feedback .thumbnail {
width: 42px;
}

</style>
<template>
<div class="lesspass-feedback p-y-3">
<div class="container">
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<blockquote class="blockquote m-b-3">
<p class="m-b-0">
<img src="../assets/images/el.jpg" alt="Edouard Lopez" class="img-circle thumbnail">
{{{ $t('feedback.feedback_1') }}}
</p>
<footer class="blockquote-footer">{{{ $t('feedback.feedback_1_author') }}}</footer>
</blockquote>
<blockquote class="blockquote m-y-3 blockquote-reverse">
<p class="m-b-0">
{{{ $t('feedback.feedback_2') }}}
<img src="../assets/images/gv.jpg" alt="guillaume vincent" class="img-circle thumbnail">
</p>
<footer class="blockquote-footer">{{{ $t('feedback.feedback_2_author') }}}</footer>
</blockquote>

<blockquote class="blockquote">
<p class="m-b-0">
<!--<img src="" alt="..." class="img-circle thumbnail">-->
{{{ $t('feedback.what_do_you_think') }}}
</p>
<footer class="blockquote-footer">
<a href="mailto:contact@oslab.fr">{{{ $t('feedback.send_us_email') }}}</a>
</footer>
</blockquote>
</div>
</div>
</div>
</div>
</template>

+ 82
- 0
app/components/howitworks.vue Целия файл

@@ -0,0 +1,82 @@
<style>
.lesspass-how-it-works {
background-color: #025aa5;;
color: #D3D8E8;
}

.lesspass-how-it-works img {
height: 120px;
}

.lesspass-how-it-works .explanation {
line-height: 1.5em;
font-weight: 400;
}

.lesspass-how-it-works .title {
font-weight: 600;
}

.lesspass-how-it-works a {
color: #D3D8E8;
text-decoration: underline;
}
</style>
<template>
<div class="lesspass-how-it-works p-t-3">
<div class="container">
<div class="row text-xs-center">
<div class="col-md-3">
<div class="row">
<div class="col-lg-12 m-y-3">
<img src="../assets/images/responsive.png" alt="responsive">
</div>
<div class="col-lg-12 m-b-3">
<h4 class="title">{{{ $t('how_it_works.responsive_title') }}}</h4>
<h5 class="explanation m-t-1 m-b-3">{{{ $t('how_it_works.responsive') }}}</h5>
</div>
</div>

</div>
<div class="col-md-3">
<div class="row">
<div class="col-lg-12 m-y-3">
<img src="../assets/images/no-cloud.png" alt="no cloud">
</div>
<div class="col-lg-12 m-b-3">
<h4 class="title">{{{ $t('how_it_works.no_cloud_title') }}}</h4>
<h5 class="explanation m-t-1 m-b-3">{{{ $t('how_it_works.no_cloud') }}}</h5>
</div>
</div>

</div>

<div class="col-md-3">
<div class="row">
<div class="col-lg-12 m-y-3">
<img src="../assets/images/open-source.png" alt="open source">
</div>
<div class="col-lg-12 m-b-3">
<h4 class="title">{{{ $t('how_it_works.open_source_title') }}}</h4>
<h5 class="explanation m-t-1 m-b-3">{{{ $t('how_it_works.open_source') }}}</h5>
</div>
</div>


</div>
<div class="col-md-3">
<div class="row">
<div class="col-lg-12 m-y-3">
<img src="../assets/images/free.png" alt="free">
</div>
<div class="col-lg-12 m-b-3">
<h4 class="title">{{{ $t('how_it_works.free_title') }}}</h4>
<h5 class="explanation m-t-1 m-b-3">{{{ $t('how_it_works.free') }}}</h5>
</div>
</div>

</div>
</div>
</div>
</div>
</template>

+ 6
- 3
app/components/index.vue Целия файл

@@ -1,7 +1,8 @@
<template>
<lesspass-headlines></lesspass-headlines>
<password-generator></password-generator>
<lesspass-features></lesspass-features>
<lesspass-how-it-works></lesspass-how-it-works>
<lesspass-feedback></lesspass-feedback>
<lesspass-faq></lesspass-faq>
<lesspass-footer></lesspass-footer>
</template>
@@ -10,7 +11,8 @@
<script>
import LesspassHeadlines from './headlines.vue';
import PasswordGenerator from './password-generator.vue';
import LesspassFeatures from './features.vue';
import LesspassFeedback from './feedback.vue';
import LesspassHowItWorks from './howitworks.vue';
import LesspassFaq from './faq.vue';
import LesspassFooter from './footer.vue';

@@ -21,7 +23,8 @@
components: {
LesspassHeadlines,
PasswordGenerator,
LesspassFeatures,
LesspassFeedback,
LesspassHowItWorks,
LesspassFaq,
LesspassFooter
}


+ 7
- 6
app/components/password-generator.vue Целия файл

@@ -6,25 +6,25 @@
<div class="form-group row">
<div class="col-lg-3 m-t-1">
<label for="pg-email" class="sr-only">
{{ $t('passwordgenerator.email') }}
{{ $t('passwordgenerator.who_are_you') }}
</label>
<input id="pg-email"
class="form-control"
type="text"
placeholder="{{ $t('passwordgenerator.email') }}"
placeholder="{{ $t('passwordgenerator.who_are_you') }}"
value="{{email}}"
v-model="email"
v-on:blur="updateMasterPassword">
</div>
<div class="col-lg-3 m-t-1">
<label for="pg-masterpassword" class="sr-only">
{{ $t('passwordgenerator.password') }}
{{ $t('passwordgenerator.what_is_your_secret') }}
</label>
<div class="input-group">
<input id="pg-masterpassword"
class="form-control"
type="password"
placeholder="{{ $t('passwordgenerator.password') }}"
placeholder="{{ $t('passwordgenerator.what_is_your_secret') }}"
v-model="password"
v-on:blur="updateMasterPassword">
<span class="input-group-btn" @click="changeType('pg-masterpassword')">
@@ -34,12 +34,12 @@
</div>
<div class="col-lg-3 m-t-1">
<label for="pg-site" class="sr-only">
{{ $t('passwordgenerator.site') }}
{{ $t('passwordgenerator.where_are_you_going') }}
</label>
<input id="pg-site"
class="form-control"
type="text"
placeholder="{{ $t('passwordgenerator.site_placeholder') }}"
placeholder="{{ $t('passwordgenerator.where_are_you_going') }}"
v-model="site">
</div>
<div class="col-lg-3 m-t-1">
@@ -165,6 +165,7 @@
if (email && password) {
lesspass.createMasterPassword(email, password).then(function (masterPassword) {
self.$set('masterPassword', masterPassword);
console.log(masterPassword);
});
}
},


+ 47
- 87
app/locales.js Целия файл

@@ -4,39 +4,18 @@ var Vue = require('vue');
const locales = {
"en": {
"lang": "en",
"header": {
"Email": "Email",
"Password": "Password",
"Sign_in": "Sign_in",
"Register": "Register"
},
"headlines": {
"title": "Open Source<br>Password Manager",
"subtitle": "replaces all your tools that record your passwords as LastPass, 1Password, Keepass, Excel spreadsheet, post it, etc ..."
},
"jumbotron": {
"what_is_lesspass": "replaces all your tools that record your passwords as LastPass, 1Password, Keepass, Excel spreadsheet, post it, etc ...",
"what_is_lesspass2": "regenerates your passwords when you need them. Each password is unique to each site. All you need is to remember a single password.",
"use_btn": "use LessPass"
},
"footer": {
"built_by": "by",
"source_code": "Source code"
},
"features": {
"you_should_use_lesspass": "Why should you use LessPass?",
"unique_password": "you want a <strong>unique password</strong> for each site",
"love_open_source": "you love <strong>open-source</strong>",
"works_everywhere": "you want a manager that <strong>works everywhere</strong> (computer, smartphone, tablet and your smartTV)",
"no_cloud": "you <strong>don't want to store</strong> your passwords",
"only_one_password": "you want to <strong>remember only one</strong> password"
},
"passwordgenerator": {
"email": "Email",
"password": "Password",
"unique_password": "Unique password",
"site": "Web site",
"site_placeholder": "Site (ex: Facebook)",
"who_are_you": "Who are you ?",
"what_is_your_secret": "What is your secret ?",
"where_are_you_going": "where are you going ?",
"copy": "Copy",
"advanced_options": "Advanced options",
"lowercase_options": "lowercase (a-z)",
@@ -48,12 +27,12 @@ const locales = {
"length": "Length"
},
"faq": {
"q_works_in_future": "Will LessPass works in the future?",
"q_works_in_future": "Will LessPass work in the future?",
"a_works_in_future": "Hosting, domain's name and SSL certificate have been <strong>pre-paid until February 2017</strong>.",
"q_trust": "I don't trust password manager such as LastPass or 1Password, why should LessPass be any different?",
"a_trust_we": "<strong>Neither do we</strong>. Hence our approach",
"a_trust_oss": "unlike other services LessPass is <strong>open-source</strong>. So its security can be audited",
"a_trust_code": "code is a <a href='https://github.com/oslab-fr/lesspass'>available on Github</a> so you can <strong>install it on your own</strong> computer or corporate server",
"a_trust_code": "code is a <a href='https://github.com/lesspass/core'>available on Github</a> so you can <strong>install it on your own</strong> computer or corporate server",
"a_trust_tracking": "we don't like being tracked, so <strong>NO third-parties</strong> are used site/app (e.g. no <i>Google Analytics</i>, <i>Facebook</i>, etc.)",
"a_trust_client_side": "password generation is your business thus done <strong>entirely client-side</strong>",
"a_trust_online": "<em>online mode</em> is here to suggest <var>email</var> and <var>site</var>, <i>i.e.</i> store only that",
@@ -64,74 +43,53 @@ const locales = {
"q_roadmap": "What is the roadmap for future versions?",
"a_roadmap_preset_saving": "<strong>Reduce cognitive load</strong> by saving generation settings in your account, so <var>email</var>, <var>site</var> and <var>ruleset</var> will be stored but not the <var>password</var>.",
"a_roadmap_15min_memory": "<strong>improve security</strong> by removing password after 15 minutes of inactivity",
"a_roadmap_offline_mode": "full offline mode",
"a_roadmap_web_extension": "Addon for Firefox and Chrome to improve user experience",
"q_password_generation": "Where are the passwords generated?",
"a_password_generation": "Generation is performed <strong>on your computer by your browser</strong> and never stored as they never reach LessPass servers (or any others).",
"q_pricing": "Is LessPass free?",
"a_pricing_free": "LessPass is free and always will be.",
"a_pricing_enterprise": "LessPass Enterprise will add support for <abbr title='Lightweight Directory Access Protocol'>LDAP</abbr> and double-authentication for companies."
},
"login": {
"login": "login",
"Login": "Log In",
"register": "register",
"Register": "Register",
"why": "Manage your sites with online mode",
"enter_email": "Enter your email",
"enter_password": "Enter your password",
"lets_go": "Let's go !",
"dont_have_an_account": "Don't have an account ?",
"already_have_an_account": "Already have an account ?",
"create_account": "Create an account",
"welcome": "Login successful, welcome on LessPass",
"credentials_invalids": "The email address or password you entered is not valid."
},
"register": {
"beta": "Registration for LessPass Entreprise is not yet possible.<br><a href='mailto:contact@oslab.fr?subject=Invitation%20to%20LessPass&body=Hello%0d%0acan%20you%20send%20me%20an%20invitation%20for%20LessPass%20Entreprise%20?%0d%0aThank%20you'><b>Ask your invite here</b></a>"
"how_it_works": {
"no_cloud_title": "No storage",
"responsive_title": "Available everywhere",
"open_source_title": "Open Source",
"free_title": "Free",
"no_cloud": "LessPass regenerates your passwords when you need them. No cloud storage is required.",
"responsive": "LessPass is a web application and works on all devices (computer, smartphone, tablet and your smartTV).",
"open_source": "LessPass is <strong>open-source</strong>. So its security can be audited. Source code is available on <a href='https://github.com/lesspass/core'>Github</a>.",
"free": "LessPass is free and always will be."
},
"feedback": {
"feedback_1": "Finally a security tool that I did not need to trust.",
"feedback_1_author": "Édouard Lopez, LessPass Team Member",
"feedback_2": "I no longer need a personal cloud to manage my passwords.<br>One secret and I have access to my passwords everywhere.",
"feedback_2_author": "Guillaume Vincent, LessPass Founder",
"what_do_you_think": "Tell us what you think of LessPass.",
"send_us_email": "Send us an email"
}
},
"fr": {
"lang": "fr",
"header": {
"Email": "Email",
"Password": "Mot de passe",
"Sign_in": "Connexion",
"Register": "S'enregistrer"
},
"headlines": {
"title": "Gestionnaire de mot de passe open source",
"subtitle": "remplace tous vos outils qui sauvegardent vos mots de passe comme Lastpass, 1password, Keepass, tableur Excel, post it, etc..."
},
"jumbotron": {
"what_is_lesspass": "remplace tous vos outils qui sauvegardent vos mots de passe comme Lastpass, 1password, Keepass, tableur Excel, post it, etc...",
"what_is_lesspass2": "régénère vos mots de passe à chaque fois que vous en avez besoin. Chaque mot de passe est unique et propre à chaque site. Tout ce dont vous avez besoin c'est de vous souvenir d'un seul mot de passe.",
"use_btn": "utilisez LessPass"
},
"footer": {
"built_by": "Réalisé par",
"source_code": "Code source"
},
"features": {
"you_should_use_lesspass": "Pourquoi utiliser LessPass ?",
"unique_password": "vous voulez un <strong>mot de passe unique</strong> pour chaque site",
"love_open_source": "vous aimez l'<strong>open-source</strong>",
"works_everywhere": "vous voulez une application qui <strong>fonctionne partout</strong> (ordinateur, smartphone, tablette et smartTV)",
"no_cloud": "vous ne <strong>voulez pas stocker vos mots de passe</strong>",
"only_one_password": "vous voulez <strong>retenir un seul</strong> mot de passe"
},
"passwordgenerator": {
"email": "Email",
"password": "Mot de passe",
"unique_password": "Mot de passe unique",
"site": "Site",
"site_placeholder": "Site (ex: Facebook)",
"who_are_you": "Qui êtes vous ?",
"what_is_your_secret": "Quel est votre secret ?",
"where_are_you_going": "Où allez-vous ?",
"copy": "Copier",
"advanced_options": "Options avancées",
"lowercase_options": "minuscules (a-z)",
"uppercase_options": "MAJUSCULES (A-Z)",
"numbers_options": "nombres (0-9)",
"symbols_options": "caractères spéciaux (@&%?)",
"counter": "Compteur",
"counter": "Version",
"generated_password": "Mot de passe généré",
"length": "Longueur"
},
@@ -142,7 +100,7 @@ const locales = {
"a_trust_lesspass": "Contrairement aux autres services, LessPass est open source donc le code source peut être réutilisé, consulté et audité. Vous pouvez sauvegarder LessPass sur votre ordinateur ou votre serveur d’enterprise gratuitement. Ah et LessPass n'est connecté à aucun service externe (Google Analytics, Facebook, Twitter, etc..). Personne ne sait à part nous que vous utilisez LessPass.",
"a_trust_we": "<strong>Nous ne vous demandons pas de nous faire confiance</strong>. D'où notre approche",
"a_trust_oss": "À la différence d'autres services, LessPass est <strong>open-source</strong>. De ce fait il peut être –réellement– audité",
"a_trust_code": "Le code source est <a href='https://github.com/oslab-fr/lesspass'>disponible sur Github</a>, vous pouvez donc l'<strong>installer sur votre poste</strong> ou un serveur d'entreprise",
"a_trust_code": "Le code source est <a href='https://github.com/lesspass/core'>disponible sur Github</a>, vous pouvez donc l'<strong>installer sur votre poste</strong> ou un serveur d'entreprise",
"a_trust_tracking": "Nous nous opposons au fichage systématique, et par conséquent <strong>aucun outils d'analyse</strong> n'est utilisé dans l'appli ou le site (ex: pas de <i>Google Analytics</i>, <i>Facebook</i>, etc.)",
"a_trust_client_side": "La génération des mots de passe doit rester sous votre controle, elle se fait sur votre <strong>navigateur</strong>",
"a_trust_online": "<em>le mode connecté</em> a pour but de suggérer vos <var>email</var>s et <var>site</var>s, <i>c.-à-d.</i> qu'il ne stocke rien d'autre",
@@ -151,30 +109,32 @@ const locales = {
"a_make_it_safer_private": "Utilisez la <strong><a href='https://fr.wikipedia.org/wiki/Navigation_priv%C3%A9e'>navigation privé</a></strong> de votre navigateur</strong> et fermez le quand vous avez terminé.",
"a_make_it_safer_update": "Garder votre navigateur à jour (ce qui corrige les bugs de sécurité).",
"q_roadmap": "Quelles fonctionnalités sont prévues pour les versions à venir ?",
"a_roadmap_preset_saving": "application connecté pour sauvegarder les informations sur les sites",
"a_roadmap_preset_saving": "application connectée pour sauvegarder les informations sur les sites",
"a_roadmap_15min_memory": "suppression du mot de passe après 15 minutes d’inactivités",
"a_roadmap_offline_mode": "enregistrement des sites en mode déconnecté",
"a_roadmap_web_extension": "Addon Firefox et Chrome pour améliorer l'expérience utilisateur",
"q_password_generation": "Où sont générés les mots de passe ?",
"a_password_generation": "La génération du mot de passe est effectué sur votre navigateur et pas sur les serveurs de LessPass.",
"q_pricing": "Est ce que LessPass est gratuit ?",
"a_pricing_free": "LessPass est gratuit et le sera toujours.",
"a_pricing_enterprise": "LessPass Enterprise, avec le support <abbr title='Lightweight Directory Access Protocol'>LDAP</abbr> et la double authentication, sera payante pour les enterprises."
},
"login": {
"login": "Connectez-vous",
"register": "S'enregistrer",
"why": "Gérez vos mots de passe avec le mode connecté",
"enter_email": "Entrez votre email",
"enter_password": "Entrez votre mot de passe",
"lets_go": "C'est parti !",
"dont_have_an_account": "Vous n'avez pas encore de compte ?",
"already_have_an_account": "Vous avez déjà un compte ?",
"create_account": "Créez un compte",
"welcome": "Connexion réussie, bienvenue sur LessPass",
"credentials_invalids": "L' adresse e-mail et/ou mot de passe sont invalides"
},
"register": {
"beta": "L'inscription à LessPass Entreprise n'est pas encore possible.<br><a href='mailto:contact@oslab.fr?subject=Invitation%20à%20LessPass&body=Bonjour%0d%0apouvez-vous%20me%20faire%20parvenir%20une%20invitation%20pour%20LessPass%20Entreprise%20?%0d%0aMerci'><b>Demandez une invitation</b></a>"
"how_it_works": {
"no_cloud_title": "Pas de stockage",
"responsive_title": "Disponible partout",
"open_source_title": "Open Source",
"free_title": "Gratuit",
"no_cloud": "LessPass régénère vos mots de passe à chaque fois que vous en avez besoin. Aucun stockage sur le cloud n'est nécessaire.",
"responsive": "LessPass est une application web et fonctionne sur tous les appareils (ordinateur, smartphone, tablette et smartTV).",
"open_source": "LessPass est open source. Le code source est <a href='https://github.com/lesspass/core'>disponible sur Github</a>, vous pouvez l'auditer",
"free": "LessPass est gratuit et le sera toujours."
},
"feedback": {
"feedback_1": "Enfin un outil de sécurité a qui je n'ai pas besoin de faire confiance.",
"feedback_1_author": "Édouard Lopez, membre de l'équipe de LessPass",
"feedback_2": "Je n'ai plus besoin d'un cloud personnel pour gérer mes mots de passe. Une seule phrase secrete et j'ai accès à mes mots de passe partout.",
"feedback_2_author": "Guillaume Vincent, créateur de LessPass",
"what_do_you_think": "dites-nous ce que vous pensez de LessPass.",
"send_us_email": "Envoyez-nous un email"
}
}
};


+ 1
- 1
webpack.config.js Целия файл

@@ -14,7 +14,7 @@ module.exports = {
{test: /\.vue$/, loader: 'vue'},
{test: /\.js$/, loader: 'babel', exclude: /node_modules/},
{test: /\.json$/, loader: 'json'},
{test: /\.(png|jpg|gif|svg)$/, loader: 'url', query: {limit: 10000, name: '[name].[ext]?[hash]'}},
{test: /\.(png|jpg|gif)$/, loader: 'url', query: {limit: 11000, name: '[name].[ext]?[hash]'}},
{test: /\.css$/, loader: 'style-loader!css-loader'},
{test: /\.woff(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=application/font-woff"},
{test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=application/font-woff"},


Зареждане…
Отказ
Запис