diff --git a/web/gpg4win.css b/web/gpg4win.css
index 2ce0948b..63068bc6 100644
--- a/web/gpg4win.css
+++ b/web/gpg4win.css
@@ -1,1603 +1,1603 @@
/* Styles for the Gpg4win Website */
body {
font-family: arial, helvetica, sans-serif;
font-size: 13px;
background: #FFFFFF url('img/page_bg.png') repeat-x;
color: #333333;
margin: 0px;
padding:0px;
}
a {
color: #b51a22;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
img {
border: 0px;
}
.imageframe {
border-color: #DEDEDE #AAAAAA #888888 #CECECE;
border-style: double;
border-width: 1px;
padding: 5px;
}
.imgfloatleft {
float: left;
margin: 0px 20px 30px 0px;
max-width: 112px;
}
td {
vertical-align: top;
}
pre{
margin-bottom: 10pt;
}
.flex-container{
display: flex;
flex-wrap: wrap;
}
.odd td {
background: #E6E6E6;
}
.wrapper {
width: 900px;
margin: 0 auto;
text-align: left;
}
.language_select {
float:right;
height: 100%;
}
#menu-button, #menu-button-label{
display: none;
}
#header-logo{
display: none;
}
.logo {
margin-top: 20px;
margin-left: 15px;
}
.header {
padding: 6px 0 6px 0;
margin-bottom: 0px;
height: 1em;
}
.fancy_intro {
margin: 0 20px 25px 14px;
border-bottom:1px solid gray;
overflow: hidden;
width:870px;
padding-bottom: 15px;
display: flex;
}
#fancy_bg{
max-width: 450px;
height: auto;
}
#intro{
width: 600px;
}
.mini_intro {
clear: both;
font-size: 12px;
line-height: 38px;
margin-top: 8px;
}
#download-button-container{
margin-right: 20pt;
}
#download_button {
position: relative;
top: 45px;
width: 250px;
z-index: 0;
}
#download_button a {
background: url('img/download_button.png');
background-repeat: no-repeat;
display: block;
height: 116px;
width: 260px;
color: #FFFFFF;
font-weight: bold;
text-decoration: none;
font-size: 19px;
}
#download_button a:hover {
background-position: 0px -116px;
}
#download_button .text {
position: relative;
top: 23px;
left: 25px;
}
#breadcrum {
float:left;
}
#download_button_mini {
position: relative;
top: 45px;
left: 35px;
width: 250px;
z-index: 0;
}
#download_button_mini .links {
position: relative;
font-size: 10px;
text-align: right;
}
#download_button_mini .dmini_button {
background: url('img/download_button_mini.png');
background-repeat: no-repeat;
display: block;
height: 50px;
width: 189px;
text-align:left;
left: 20px;
font-size: 14px;
line-height:50px;
color: #FFFFFF;
font-weight:bold;
text-decoration:none;
}
#download_button_mini .dmini_button:hover {
background-position: 0px -50px;
}
#download_button_mini .text {
position: relative;
left: 12px;
}
.download_button_links {
font-size:11px;
position: relative;
display: flex;
left: 25px;
top: 43px;
width: 250px;
}
.donate_box {
border-radius: 4px;
background: #FDF1CD;
border: 1px solid #CCCCCC;
padding: 20px 20px 15px;
min-height: 365px;
}
.donate_box h3 {
margin: 0;
}
.donate_box #download_div {
margin-top: 15px;
}
#currencyfield {
font-size: 14px;
height: 30px;
}
.donateButton {
background: url('img/download-arrow.png') no-repeat 9px 9px;
background-size: 20px 20px;
padding-left: 36px;
padding-right: 10px;
font-size: 14px;
height: 40px;
border: 2px white;
border-radius: 4px;
text-align: center;
font-weight: bold;
text-decoration: none;
}
a>.donateButton{
margin-top: 40px;
}
.donate_box blockquote {
line-height: 150%;
}
.donate_box .pay-logo {
width: 100px;
}
.donate_box .qrcode {
width: 130px;
}
/* donation slider */
input[type='range'] {
-webkit-appearance: none;
appearance: none;
-moz-appearance: none;
border-radius: 5px;
box-shadow: inset 1px 1px 1px rgba(000,000,000,0.25);
background-color: #FFF;
height: 8px;
vertical-align: middle;
width: 200px;
cursor: pointer;
margin: 10px 0;
}
input[type=range]::-webkit-slider-runnable-track {
-webkit-appearance: none;
appearance: none;
border-radius: 5px;
box-shadow: inset 1px 1px 1px rgba(000,000,000,0.25);
background-color: #FFF;
height: 10px;
vertical-align: middle;
border: solid 1px rgba(0,0,0,0.25);
cursor: pointer;
}
input[type='range']::-webkit-slider-thumb {
-webkit-appearance: none;
border-radius: 10px;
background-color: #FFC35C;
box-shadow: inset 0px 1px 0px rgba(000,000,000,0.5);
border: 1px solid #999;
height: 20px;
width: 20px;
border-radius: 15px;
vertical-align:middle;
margin-top: -6px;
cursor: pointer;
}
input[type='range']::-moz-range-track {
-moz-appearance: none;
border-radius: 5px;
box-shadow: inset 1px 1px 1px rgba(000,000,000,0.25);
background-color: #FFF;
height: 8px;
border:solid 1px rgba(0,0,0,0.25);
vertical-align: middle;
margin: 0;
padding: 0;
cursor: pointer;
}
input[type='range']::-moz-range-thumb {
-moz-appearance: none;
border-radius: 10px;
background-color: #FFC35C;
box-shadow:inset 0px 1px 0px rgba(000,000,000,0.5);
border: 1px solid #999;
height: 20px;
width: 20px;
border-radius: 15px;
cursor: pointer;
}
/* With beta this needs other offsets. Maybe someone with
* more CSS skills could make this more relative / robust. ;-) */
.h_text_beta {
position: relative;
top: -190px;
left: 669px;
width: 180px;
font-size: 11px;
border-left: 1px solid #CCCCCC;
padding-left: 10px;
margin-top: 12px;
height: 220px;
}
.h_text_beta .heading {
font-size: 23px;
font-family: georgia, times, serif;
padding-bottom: 9px;
}
.h_text_beta .serif_word {
font-size: 13px;
font-weight: bold;
}
.h_text_beta .limiter {
border-bottom: 3px dotted #CCCCCC;
width: 190px;
height: 10px;
margin-bottom: 3px;
}
.h_text {
font-size: 11px;
border-left: 1px solid #CCCCCC;
padding-left: 10px;
margin-top: 12px;
height: 220px;
}
.h_text .heading {
font-size: 23px;
font-family: georgia, times, serif;
padding-bottom: 9px;
}
.h_text .serif_word {
font-size: 13px;
font-weight: bold;
}
.h_text .limiter {
border-bottom: 3px dotted #CCCCCC;
width: 190px;
height: 10px;
margin-bottom: 3px;
}
.center {
text-align: center;
}
.content {
width: 100%;
}
#intro {
padding: 0px 250px 20px 20px;
}
/*#intro span {
background: url('img/logo.png') no-repeat scroll 50px 0px transparent;
height: 56px;
margin: 0px;
width: 250px;
float: right;
margin: 0px;
line-height: 24px;
margin: 10px 200px 0 0;
}*/
#intro h2 {
font-family: georgia, times, serif;
font-size: 30px;
font-weight: normal;
color: #333333;
margin: 0px;
}
#intro p {
color: #555555;
font-size: 14px;
font-weight: normal;
line-height: 26px;
margin: 10px 0 0;
padding: 0;
}
.column1, .column2, .column3 {
margin-right: 25px;
position: relative;
width: 270px;
min-width: 270px;
}
.column3 {
margin-right: 0px;
}
.column1 img, .column2 img, .column3 img {
width: 270px;
}
#main {
padding: 0px 0px 0px 20px;
width: 600px;
}
#full {
float: left;
padding: 0px 20px 0px 20px;
width: 860px;
}
#main h2, #full h2 {
font-size: 22px;
font-weight: normal;
color: #333333;
margin: 30px 0px 10px 0px;
padding: 0px;
clear: both;
}
#main h4, #full h4 {
font-size: 18px;
color: #333333;
font-family: georgia, serif;
font-style: italic;
font-weight: normal;
}
#main p, #full p, #main li, #full li{
color: #444444;
line-height: 20px;
margin: 0px 0px 10px;
}
.lineheight {
line-height: 20px;
}
.cleanlist li {
font-size: 13px;
list-style: none;
padding: 0px;
clear: both;
}
#main.screenshots{
width: initial;
}
.screenshots img {
min-width: 300px;
}
.screenshots .flex-container {
gap: 20pt;
row-gap: 20pt;
}
#sidebar {
-moz-border-radius: 10px 10px 10px 10px;
background: #FDF1CD;
border: 1px solid #CCCCCC;
float: right;
margin-top: 34px;
padding: 20px 20px 15px;
width: 220px;
}
#sidebar h3 {
color: #333333;
margin: 1px 0px 10px 0px;
}
#sidebarsimple {
float: right;
margin-top: 34px;
}
.newslist {
margin: 0px;
padding: 0px;
}
.newslist li {
font-size: 13px;
list-style: none;
padding: 0;
border-bottom: 1px solid #EFEFEF;
}
.newslist > li > a {
/*color: #555555;*/
display: block;
font-size: 12px;
font-weight: bold;
list-style: none;
margin: 0px;
padding: 10px 0px 10px 0px;
text-decoration: none;
}
.newslist li p {
color: #777777;
font-size: 10px;
font-weight: normal;
margin: 4px 0px 0px;
padding: 0px;
}
#menu {
height:45px;
z-index: 1;
}
#menu .active a {
background-position: 0px -180px;
}
#menu ul {
list-style: none;
padding: 0px;
margin: 0px;
}
#menu li {
float: left;
margin-right: 0px;
margin-left:0px;
padding: 0px;
text-align: center;
}
#menu .mlogo {
border:0px;
}
#menu .mlogo a {
display:block;
/* With what's new shield */
width: 161;
/* Without shield
width: 307px
*/
height: 58px;
position: relative;
top: -13px;
background: url('img/inmenulogo.png');
background-position: 0px -116px;
}
#menu .mlogo a:hover {
background: url('img/inmenulogo.png');
/* With what's new shield */
background-position: 0px -58px;
/* Without shield
background-position: 0px -174px */;
}
#menu .mwhatsnew {
border:0px;
line-height: 2em;
}
#menu .mwhatsnew a {
display:block;
width: 110px;
height: 77px;
position: relative;
top: -9px;
background: url('img/whatsnew.png');
line-height: 34px;
}
#menu .mwhatsnew a:hover {
background: url('img/whatsnew.png');
background-position: 0px -77px;
}
#menu .mwhatsnew div {
padding-top: 10px;
line-height: 24px;
}
#menu .mbetween {
border:0px;
}
#menu .mbetween a {
display:block;
width: 36px;
height: 58px;
position: relative;
top: -13px;
background: url('img/inmenulogo.png');
background-position: -100px 0px;
}
#menu .mbetween a:hover {
background: url('img/inmenulogo.png');
background-position: -100px -58px;
}
#menu .last {
width:40px;
height: 45px;
background: url('img/last.png');
}
#menu .mdonate a {
display: block;
width: 148px;
height: 45px;
float:right;
background: url('img/inmenudownload.png');
color: #FFFFFF;
text-indent: -10px;
}
#menu .mdonate a:hover {
background: url('img/inmenudownload.png');
background-position: 0px -45px;
}
#menu li a {
background: #CCCCCC url('img/menubar.png') 0px -90px;
color: #2A2A2A;
line-height: 45px;
width: 148px;
display: block;
text-decoration: none;
font-weight: bold;
font-size: 11px;
height: 45px;
overflow: hidden;
}
#menu li a:hover {
background: #FFFFFF url('img/menubar.png') 0px -135px;
color:#FFFFFF;
}
#menu ul li ul {
width: 201px;
list-style: none;
position: absolute;
display: none;
}
#menu ul li ul li,
#menu .active ul li ul li {
width: 148px;
}
#menu ul li .subcap {
background: url('img/sub_tail.png');
display: block;
width: 149px;
height: 5px;
}
#menu ul li ul li a,
#menu .active ul li ul li a {
background: url('img/sub_bg.png');
line-height: 25px;
width: 142px;
height: 22px;
font-weight: normal;
color: #2A2A2A;
text-align: left;
display: block;
padding-left: 5px;
border-left: 1px solid #8B7E57;
border-right: 1px solid #8B7E57;
}
#menu ul li ul li a:hover,
#menu .active ul li a:hover {
background: #FBCA4C;
color: #2A2A2A;
text-decoration: none;
font-weight: bold;
}
#menu li:hover ul ul,
#menu li:hover ul ul ul {
display: none;
}
#menu li:hover ul,
#menu li li:hover ul,
#menu li li li:hover ul {
display: block;
z-index:3;
}
.donate_header {
display: block;
position: relative;
top: -80px;
height: 180px;
background: url('img/heart.png') no-repeat;
background-position: 550px 10px;
font-size: 26px;
border-bottom: 1px solid #CCCCCC;
margin-bottom: -70px;
z-index: -100;
}
.donate_header .text {
position:relative;
left: 180px;
top: 40px;
text-align:center;
}
.donate_header b {
color: #D50D35;
}
.download_header {
height:160px;
background: url('img/download_bg.png') no-repeat;
background-position: 690px 10px;
font-size:26px;
border-bottom: 1px solid #CCCCCC;
margin-bottom:8px;
}
.download_header .text {
position:relative;
left: 120px;
top: 40px;
text-align:center;
}
.download_header b {
color: #D50D35;
}
.dlbutton2 a {
background-color: #6AC221;
border-radius: 10px 10px 10px 10px;
display: block;
font-size: 150%;
font-weight: bold;
margin: 10px 20px 0 0;
padding: 10px;
text-align: center;
color: #FFFFFF;
}
.dlbutton2 a:hover {
background: #81C72B;
text-decoration: none;
}
.dlbutton2 img {
float:right;
position: relative;
right: 45px;
top: 8px;
}
.version {
color: #FFFFFF;
font-size: 75%;
font-weight: normal;
}
#footer {
background: #EBEBEB url('img/page_bg.png') repeat-x;
font-size: 11px;
padding-bottom: 20px;
color: #333333;
text-align: center;
margin-top: 30px;
height: 22em;
width: 100%;
}
#sitemap {
margin: auto;
width: 900px;
text-align: left;
}
#sitemap ul {
list-style:none;
float: left;
width: 130px;
margin-left: 20px;
padding: 0px;
}
#sitemap li {
font-size: 12px;
line-height: 19px;
padding: 0px;
}
#sitemap li {
font-size: 12px;
line-height: 19px;
padding: 0px;
}
#sitemap ul li a {
color: #555555;
text-decoration: none;
}
#sitemap ul li a:hover {
text-decoration: underline;
}
.social-icon {
margin-top: 10px;
width: 32px;
padding-right: 5px;
}
hr {
display: block;
height: 1px;
border: 0;
border-top: 1px solid #ccc;
margin: 1em 0;
padding: 0;
}
/* donation form */
.tabs{
position: relative;
width: 100%;
display: grid;
grid-template-columns: 20pt auto 2fr;
grid-template-rows: 20pt 20pt 20pt 20pt auto;
align-items: start;
padding-left: 0;
}
.tabs > p, #tab1, #tab2, #tab3{
grid-column-start: 1;
}
.tabs > p{
grid-column-end: 3;
}
#tab1, #tab2, #tab3{
justify-self: start;
}
.tabs label[for="tab1"], .tabs label[for="tab2"], .tabs label[for="tab3"]{
grid-column-start: 2;
}
#tab1, .tabs label[for="tab1"]{
grid-row-start: 2;
}
#tab2, .tabs label[for="tab2"]{
grid-row-start: 3;
}
#tab3, .tabs label[for="tab3"]{
grid-row-start: 4;
}
.tabs label[for^=tab]{
margin-right: 10px !important;
background-color: transparent;
border: none;
border-radius: 4px;
width: 120px;
}
.tabs .tab-content{
display: none;
overflow: hidden;
border-left: 1px dotted #ccc;
padding-left: 20px;
grid-column: 3;
grid-row-start: 1;
grid-row-end: 6;
}
.tabs #tab1:checked ~ #paypal_tab,
.tabs #tab2:checked ~ #bitcoin_tab,
.tabs #tab3:checked ~ #transfer_tab{
display: block;
}
/*.tabs [id^="tab"]:checked ~ [id$="_tab"]{
display: block;
}*/
.tabs input{
max-height: 20pt;
}
.download_div{
display:none;
}
textarea, select, input[type=text]{
box-sizing: border-box;
box-shadow: inset 0 1px 2px #ddd;
border: 1px solid #bbb;
border-radius: 4px;
padding: 5px;
width: 100%;
}
input[type=text]{
height: 31px;
}
input[type=text]:focus{
border: 1px solid #888;
}
select{
background-color: #fff;
}
/* donation list */
.two-column {
-webkit-column-count: 2; /* Chrome, Safari, Opera */
-moz-column-count: 2; /* Firefox */
column-count: 2;
list-style: none;
padding-left: 15px;
}
.three-column {
-webkit-column-count: 3; /* Chrome, Safari, Opera */
-moz-column-count: 3; /* Firefox */
column-count: 3;
list-style: none;
padding-left: 15px;
}
.two-column > li, .three-column > li{
margin: 0 5px 10px !important;
float: none;
}
#sponsors > h3 {
margin: 20px 0px 5px;
padding-bottom: 5px;
}
.sponsornames {
padding: 10px;
background-color: #eee;
}
.sponsornames > h4 {
font-size: 17px;
margin: 10px 15px;
border-bottom: 1px dotted #555;
padding-bottom: 5px;
}
.pay_div{
width: 100%;
}
.amountlabel {
margin: 15px 0 20px 0;
width: 100%;
margin: 15px 0 15px 0;
width: 100%;
display: flex;
flex-wrap: wrap;
row-gap: 10pt;
}
.amountlabel > input[type="radio"]{
display:none;
}
.amountlabel > label{
border-radius: 4px;
font-size: 16px;
padding: 10px 15px;
text-align: center;
margin: 0 7px 1px 3px;
font-weight: bold;
min-width: 22pt;
}
/*** donate button colors ***/
/* inactive */
.amountlabel > input + label,
.switch-field input + label,
.donateButton {
color: white;
}
.amountlabel > label,
.switch-field label {
background-color: rgba(180,180,180,0.75);
}
/* hover */
.amountlabel > label:hover,
.amountlabel > input[type="radio"]:hover + label:hover,
.switch-field label:hover,
.donateButton:hover {
background-color: #8fc8d2;
cursor: pointer;
}
/* active */
.amountlabel > input[type="radio"]:checked + label,
.amountlabel > label > input[type="number"]:focus + label,
.switch-field input:checked + label,
.donateButton {
background-color: #179bd7;
}
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
input[type=number] {
-moz-appearance:textfield;
}
.amountlabel > label > input[type="number"]{
background-color: transparent;
color: white;
border: none;
border-bottom: 1px solid;
border-radius: 0px;
box-shadow: none;
height: 20px;
font-size: 18px;
font-family: arial, helvetica, sans-serif;
text-align: center;
width: 45px;
font-weight: normal;
}
#freeamountLabel{
padding: 0;
}
.switch-field {
padding: 10px 0 15px 0;
margin: 5px 0 5px 0;
display: flex;
height: 16pt;
}
#donation_frq{
clear: right;
}
.switch-title {
margin-bottom: 6px;
}
.switch-field input {
display: none;
}
.switch-field label {
display: flex;
width: 60px;
height: 100%;
font-size: 12px;
font-weight: bold;
text-align: center;
text-shadow: none;
padding: 3px 14px;
border: none;
justify-content: center;
align-items: center;
}
.switch-field input:checked + label {
-webkit-box-shadow: none;
box-shadow: none;
}
.switch-field label:first-of-type {
border-radius: 4px 0 0 4px;
margin: 0 0 0 3px;
}
.switch-field label:last-of-type {
border-radius: 0 4px 4px 0;
margin: 0 11px 10px -1px;
}
.switches{
display: flex;
flex-wrap: wrap;
width: max-content;
}
@media screen and (max-width: 800px){
:root{
--gpg4win-gradient: linear-gradient(to bottom, #ffd987, #ffc853 4%, #f4b836, #ffc343 99%, #ffdf99);
}
*{
max-width: 100%;
font-size: 1rem;
}
html, body{
position: relative;
overflow-x: hidden;
max-width: 100vw;
}
body{
padding: 6pt 10pt;
}
.wrapper{
width: 100%;
margin: 0px;
}
.language_select{
width: 100%;
display: flex;
justify-content: end;
column-gap: 4pt;
margin-bottom: 12pt;
padding-right: 4pt;
}
.language_select *{
font-size: 1rem;
width: auto;
}
.language_select img{
min-height: 100%;
width: 20pt;
}
.header{
height: initial;
display: flex;
flex-direction: column;
}
#logo-container{
position: relative;
left: -10pt;
max-width: initial;
width: 110%;
background: linear-gradient(to bottom, #ffd987, #ffc853 4%, #f4b836, #ffc343 99%, #ffdf99);
border-top: solid black 1px;
border-bottom: solid black 1px;
padding-top: 8pt;
}
#header-logo{
display: block;
min-height: 30pt;
max-height: 50pt;
width: auto;
}
.header a{
display: block;
width: max-content;
}
#menu-container{
height: auto;
width: calc(100% - 34pt);
height: 100vh;
background-color: white;
z-index: 2;
position: absolute;
top: 0;
right: calc(-100% + 34pt);
overflow-y: auto;
animation-name: slide-menu-out;
animation-duration: 0.3s;
animation-timing-function: ease-in-out;
}
#menu-button:checked ~ #menu-container{
right: 0pt;
animation-name: slide-menu-in;
animation-duration: 0.4s;
animation-timing-function: ease-in-out;
}
@keyframes slide-menu-in {
0%{right: calc(-100% + 34pt)}
100%{right: 0pt}
}
@keyframes slide-menu-out {
0%{right: 0pt}
100%{right: calc(-100% + 34pt)}
}
#menu{
padding: 8pt;
padding-bottom: 20pt;
}
#menu-button{
display: none;
opacity: 0;
}
#menu-button-label{
display: block;
z-index: 2;
order: 1;
height: 34pt;
width: 34pt;
background: none;
position: absolute;
top: 54pt;
right: 0pt;
animation-name: slide-menu-button-out;
animation-duration: 0.3s;
animation-timing-function: ease-in-out;
}
#menu-button-image-container{
background-color: rgba(255, 255, 255, 0);
position: relative;
z-index: 3;
padding: 4pt;
}
#menu-button:checked ~ #menu-button-label{
right: calc(100% - 34pt);
background: none;
animation-name: slide-menu-button-in;
animation-duration: 0.4s;
animation-timing-function: ease-in-out;
}
@keyframes slide-menu-button-in {
0%{right: 0pt;}
100%{right: calc(100% - 34pt);}
}
@keyframes slide-menu-button-out {
0%{right: calc(100% - 34pt);}
100%{right: 0pt;}
}
#menu-shadow{
position: absolute;
left: -100vw;
top: -50vh;
width: 200vw;
height: 0pt;
max-width: 200vw;
max-height: 200vh;
z-index: -1;
background-color: rgba(0, 0, 0, 0.7);
opacity: 0;
animation-name: fade-out;
animation-duration: 0.3s;
}
#menu-button:checked ~ #menu-button-label #menu-shadow{
animation-name: fade-in;
animation-duration: 0.4s;
opacity: 1;
height: 200vh;
}
@keyframes fade-in {
0%{opacity: 0; height: 200vh;}
100%{opacity: 1; height: 200vh;}
}
@keyframes fade-out {
0%{opacity: 1; height: 200vh;}
100%{opacity: 0; height: 200vh;}
}
#menu ul{
display: flex;
flex-direction: column;
}
#menu li{
text-align: left;
}
#menu ul a, #menu ul a:hover,
#menu .mwhatsnew a, #menu .mwhatsnew a:hover,
#menu .mwhatsnew a, #menu .mwhatsnew a:hover,
#menu ul a, #menu ul a:hover,
#menu .mdonate a, #menu .mdonate a:hover,
#menu ul li ul li a{
width: 95%;
margin-bottom: 6px;
padding-left: 6pt;
border-radius: 2pt;
font-size: 1rem;
}
#menu ul a, #menu ul a:hover, #menu .mwhatsnew a, #menu .mwhatsnew a:hover, #menu .mwhatsnew a, #menu .mwhatsnew a:hover, #menu ul a, #menu ul a:hover{
background: linear-gradient(to bottom, #fdedbb, #efce6c, #fde085);
background: var(--gpg4win-gradient);
}
#menu .mlogo{
margin-bottom: 10px;
}
#menu .mlogo a{
background: none;
background-image: url('img/src/gpg4win_logo.png');
background-repeat: no-repeat;
background-size: contain;
top: unset;
}
#menu .mlogo a:hover{
background: none;
background-image: url('img/src/gpg4win_logo.png');
background-size: contain;
background-repeat: no-repeat;
}
#menu .mwhatsnew div {
font-size: 1rem;
}
#menu ul li ul{
display: flex;
flex-direction: column;
position: inherit;
width: 80%;
}
#menu ul li ul li, #menu ul li ul li a:hover{
background-color: #fde085;
}
#menu ul li ul li{
width: 100%;
min-height: 30pt;
margin-bottom: 4pt;
display: flex;
align-items: center;
}
#menu ul li ul li a{
width: 100%;
background: none;
border: none;
line-height: -50%;
}
.mbetween{
display: none;
}
#menu ul li .subcap{
display: none;
}
#menu .mdonate a, #menu .mdonate a:hover{
float: initial;
text-indent: 0pt;
background: none;
background-image: linear-gradient(to bottom, #a3d97f, #54c010, #63c322);
}
.fancy_intro{
flex-direction: column;
border: none;
margin-left: 0pt;
}
#fancy_bg{
max-width: 90%;
}
#download-button-container{
order: 1;
}
#download_button{
position: initial;
width: 150pt;
max-height: 70pt;
border: solid #707070 1px;
border-radius: 4pt;
background: linear-gradient(to bottom, #94d36b 1%, #b8e29d 2%, #92d267 3%, #54c010 40%, #63c322);
margin-bottom: 6pt;
}
#download_button a{
background: none;
height: 50pt;
display: flex;
justify-content: center;
align-items: center;
}
#download_button .text{
position: inherit;
}
.download_button_links{
position: initial;
font-size: 1rem;
width: initial;
column-gap: 3pt;
margin-bottom: 10pt;
}
small{
font-size: 0.9rem;
}
h4{
- margin-top: 12pt;
- margin-bottom: 14pt;
+ margin-top: 16pt;
+ margin-bottom: 10pt;
}
#main h4, #full h4{
font-size: 1.2rem;
}
#main p, #full p{
line-height: 24px;
}
#main ul, #main ol{
padding-left: 18pt;
}
.h_text{
font-size: 0.8rem;
border: none;
padding-left: 0pt;
order: 2;
}
.h_text .serif_word{
font-size: 1rem;
}
.content{
margin: 0pt;
}
#intro{
max-width: 100%;
width: fit-content;
padding-left: 0pt;
margin-bottom: 12pt;
}
#intro p{
font-size: unset;
}
#main{
padding-left: 0pt;
}
#footer{
height: initial;
width: 100vw;
max-width: 100vw;
position: relative;
left: -10pt;
bottom: -6pt;
}
#sitemap ul{
float: none;
margin-left: 10pt;
width: initial;
}
#sitemap li{
line-height: 18pt;
}
#full{
padding-left: 0pt;
}
.tabs{
height: initial;
grid-template-columns: 20pt auto auto;
grid-template-rows: 20pt 20pt 20pt 40pt auto;
padding-left: 0;
}
.tabs .tab-content{
grid-column-start: 1;
grid-column-end: 3;
grid-row-start: 5;
margin-top: 12pt;
padding-left: 0pt;
}
.amountlabel{
margin-bottom: 20pt;
}
.switches{
margin-bottom: 20pt;
}
.switch-field{
margin-bottom: 10pt;
}
.amountlabel > label, .switch-field label{
display: flex;
justify-content: center;
align-items: center;
height: 32pt;
width: 60pt;
padding: 0pt;
}
#paypal_tab textarea{
min-height: 80pt;
}
.cleanlist{
padding-left: 0pt;
}
#component-list{
margin-top: 22pt;
}
#component-list li{
margin-bottom: 16pt;
display: flex;
flex-direction: column;
}
#component-list .imgfloatleft{
max-width: initial;
width: 140pt;
float: none;
margin-bottom: 0pt;
}
#component-list li:last-child .imgfloatleft{
width: 70pt;
}
#component-list a{
display: block;
order: 2;
}
.column1, .column2, .column3{
margin-bottom: 10pt;
margin-right: 0pt;
}
.column1, .column2, .column3,
.column1 img, .column2 img, .column3 img{
width: initial;
}
.dlbutton2 img{
display: none;
}
dd{
margin-left: 0pt;
}
dd{
margin-bottom: 16pt;
}
dd br{
margin-bottom: 4pt;
}
#sidebar{
width: initial;
float: none;
}
#sidebar li{
margin-bottom: 3pt;
}
pre{
overflow-x: scroll;
padding-bottom: 8pt;
}
}
\ No newline at end of file
diff --git a/web/localize-gpg4win-de.htm4 b/web/localize-gpg4win-de.htm4
index 090bf25e..f087bb62 100644
--- a/web/localize-gpg4win-de.htm4
+++ b/web/localize-gpg4win-de.htm4
@@ -1,347 +1,352 @@
m4_dnl -*-html-*-
m4_include(`template.m4')
m4_dnl $Id$
m4_define(`DE')
m4_define(`EN_FILE', `localize-gpg4win.html')
m4_define(`MAIN', `community')
m4_define(`TITLE', `Übersetzen Sie Gpg4win in Ihre Sprache')
PAGE_START
Wie Sie alle Teile von Gpg4win in Ihre Sprache übersetzen
Gpg4win besteht aus verschiedenen Modulen. Einige von ihnen unterstützen
bereits verschiedene Sprachen, während andere nur in wenige Sprachen
übersetzt wurden.
Hier finden Sie eine Anleitung, wie Sie jedes Modul übersetzen können
oder auch einfach nur nachschauen können, welche Sprache das jeweilige Modul
enthält.
Einleitung
Beachten Sie, dass Englisch immer die Grundlage für Übersetzungen ist.
In den meisten Fällen wird das Werkzeug
GNU gettext für
Übersetzungen verwendet. Im Grunde werden dabei einfach nur Dateien mit der
Endung .po bearbeitet. Das Werkzeug ist weit verbreitet und in vielen
Programmen enthalten, die die Übersetzung vereinfachen (z.B.
poedit oder
KBabel). Ein einfacher Text-Editor
reicht jedoch auch aus, um solche Dateien zu verändern.
Ihre Sprach-Kennung ist der Sprachcode
(ISO 639-1),
optional kombiniert mit dem Länder-Code (ISO 3166). Zum Beispiel steht "de" für die deutsche Sprache,
während "de_DE" für das Deutsch steht, das in Deutschland gesprochen wird und
"de_CH" für das Deutsch steht, das in der Schweiz verwendet wird.
Gpg4win Installer
Verfügbare Übersetzungen
Um herauszufinden, welche Übersetzungen bereits vorhanden sind, reicht ein Blick
auf die .po Dateien im
Verzeichnis "po" von Gpg4win. Hier finden Sie den aktuellen Stand aller
Übersetzungen.
Beginn einer neuen Übersetzung
The procedure is the standard procedure of GNU gettext to create a new PO file.
Es ist empfehlenswert, sich mit den Entwickler:innen von Gpg4win (per Gpg4win developer Mailing Liste zu koordinieren, bevor Sie eine Übersetzung als offiziell unterstützte
Sprache in Gpg4win integrieren möchten.
Außerdem sollten die po Dateien nicht in UTF-8 kodiert sein. Die Entwickler:innen
von Gpg4win werden Ihnen dabei helfen, die besten Optionen zu wählen und Ihnen
verraten, ob die Unterstützung Ihrer Sprache zu größeren Problemen führen könnte.
Eine vorhandene Übersetzung aktualisieren
+
Diese Anleitung sollte auf allen GNU/Linux-Betriebssystemen funktionieren:
+
- Holen Sie sich die Quellen von Gpg4win anonym (ohne Schreib-Rechte):
git clone git://git.gnupg.org/gpg4win.git
- Konfigurieren Sie das gesamte Paket:
cd gpg4win
./autogen.sh
./configure --enable-maintainer-mode --host=i586-mingw32msvc
- Überprüfen Sie den Status der Übersetzungen:
cd po
make update-po
Dieser Befehl wird Sie über die gesamte Anzahl aller Päckchen informieren,
die übersetzt werden können. Außerdem listet er auch Päckchen auf, die
unpräzise oder gar nicht übersetzt wurden. Wenn nur die Gesamtzahl angezeigt
wird, bedeutet das, dass bereits alle Teile übersetzt wurden und Sie an
dieser Stelle aufhören können.
Sie können diesen Vorgang jedoch gerne
wiederholen, wenn neue Versionen von Gpg4win erscheinen, denn in neuen
Versionen können sich die Päckchen verändern oder neue dazukommen. Bevor Sie
die Überprüfung bei einer neuen Version erneut durchführen, ist es notwendig,
dass Sie die folgenden Befehle ausführen, um den Quellcode auf den neusten
Stand zu bringen:
- git pull && git up
+
git pull && git up
- - Bearbeiten Sie die .po Dateien mit Ihrem bevorzugten Programm, um unpräzise
- Übersetzungen zu verbessern und fehlende Übersetzungen zu ergänzen. Dann führen
- Sie den Befehl
make update-po
aus, um zu sehen, ob Sie die
- Übersetzung erfolgreich beendet haben.
+ -
+
+ Bearbeiten Sie die .po Dateien mit Ihrem bevorzugten Programm, um unpräzise
+ Übersetzungen zu verbessern und fehlende Übersetzungen zu ergänzen. Dann führen
+ Sie den Befehl make update-po
aus, um zu sehen, ob Sie die
+ Übersetzung erfolgreich beendet haben.
+
Eine verfügbare Übersetzung aktivieren
Abhängig von der Sprache Ihres Windows-Betriebssystems wird die passende Sprache
automatisch ausgewählt. Ansonsten wird die englische Sprache verwendet.
Gpg4win Website
Verfügbare Übersetzungen
In der oberen rechten Ecke dieser Website finden Sie eine Liste
der verfügbaren Sprachen. Bei den Sprachen, die zwar aufgelistet, aber
durchgestrichen sind, ist nur die aktuelle Seite nicht übersetzt, aber
die Sprache ist generell verfügbar.
Bitte halten Sie Rücksprache mit uns, bevor Sie mit der Übersetzung beginnen
, z.B. über die Gpg4win developer Mailing Liste.
Schauen Sie sich zudem die
technischen Schritte zur Pflege der Website an.
Eine neue Sprache initialisieren
Grundsätzlich müssen Sie für jede Datei mit der Endung "-de.htm4" in
doc/website eine Datei mit dem Namen "-LL.htm4" erstellen (LL ist dabei
die Kodierung für Ihre Sprache). Die Grundlage für die Übersetzung sind die Dateien
ohne das Suffix "-LL" (bzw. "-de" etc.), welche den englischen Text enthalten. Einige
weitere Schritte sind den Bauprozess der Website notwendig.
Eine vorhandene Übersetzung aktualisieren
Dies ist eine aufwändige Aufgabe und benötigt Disziplin.
Wie bereits oben erwähnt ist die englische Version die Grundlage. Wann immer
die Dateien für die englische Sprache geändert werden, müssen die Dateien
anderer Sprachen aktualisiert werden. Ein guter Mechanismus für Benachrichtigungen
für Übersetzer:innen ist die Gpg4win Commit Mailing Liste
(Archiv
|
Abonnieren).
Zur Zeit gibt es keinen automatisierten Mechanimus, der auf nicht-englische
Seiten hinweist, die noch nicht aktualisiert wurden, obwohl die englische Version
verändert wurde. Für die Entwickler:innen von Gpg4win ist es so gut wie unmöglich,
zu überprüfen, ob alle Übersetzungen aktualisiert wurden oder ob sie korrekt sind.
An dieser Stelle kommt die Disziplin ins Spiel.
Eine verfügbare Übersetzung aktivieren
Klicken Sie auf der Website einfach oben rechts auf die bevorzugte Übersetzung.
Gpg4win Kompendium
Verfügbare Übersetzungen
Das Gpg4win Kompendium ist in
Deutsch
und
Englisch
verfügbar.
Die Übersetzung ins Englische ist aktuell noch nicht abgeschlossen.
Übersetzungen des deutschen Kompendiums in andere Sprachen würden uns sehr
freuen! Bitte melden Sie sich in der Gpg4win developer Mailing Liste, wenn
Sie mit einer neuen Übersetzung beginnen möchten.
Eine neue Sprache initialisieren
Grundsätzlich nehmen Sie die deutsche Datei
doc/manual/gpg4win-compendium-de.tex und
übersetzen den Text in Ihre Sprache. Als Nächstes folgen Screenshots,
die Sie aufnehmen, während Sie Gpg4win in Ihrer Sprache verwenden.
Beachten Sie, dass die Datei eine LaTeX Datei ist und Sie
deswegen Erfahrungen um Umgang mit LaTeX mitbringen sollten.
Beispielsweise sollten Sie in der Datei zwischen Text und Kommandos
unterscheiden können, damit Sie wissen, welche Teile der
Datei übersetzt werden müssen und welche nicht. Außerdem sollten
Sie keine Probleme damit haben sollen, einen Texteditor für Klartext
zu verwenden.
Wir empfehlen Ihnen, dass Sie sich mit den Entwickler:innen von Gpg4win
koordinieren (über die Gpg4win developer Mailing Liste), bevor Sie mit der
Übersetzung beginnen.
Eine verfügbare Übersetzung aktualisieren
Die deutsche Version ist die Grundlage für die Übersetzung. Wann immer
sie verändert wird, müssen auch die Übersetzungen angepasst werden.
Ein guter Mechanismus für Benachrichtigungen
für Übersetzer:innen ist die Gpg4win Commit Mailing Liste
(Archiv
|
Abonnieren).
Zur Zeit gibt es keinen automatisierten Mechanimus, der auf nicht-deutsche
Teile hinweist, die noch nicht aktualisiert wurden, obwohl die deutsche Version
verändert wurde. Für die Entwickler:innen von Gpg4win ist es so gut wie unmöglich,
zu überprüfen, ob alle Übersetzungen aktualisiert wurden oder ob sie korrekt sind.
An dieser Stelle kommt die Disziplin ins Spiel.
In einer verfügbaren Sprache lesen
Lesen Sie den Text (HTML, PDF oder als gedruckte Version) in einer der verfügbaren
Sprache.
GpgOL
Verfügbare Übersetzungen
Um herauszufinden, welche Übersetzungen bereits vorhanden sind, reicht ein Blick
auf die .po Dateien im
Verzeichnis "po" von GpgOL. Hier finden Sie den aktuellen Stand aller
Übersetzungen.
Eine neue Übersetzung beginnen oder eine vorhandene aktualisieren
GpgOL verwendet GNU gettext und deshalb treffen die üblichen Methoden von GNU gettext
zu. GpgOL wird von den Entwickler:innen von GnuPG verwaltet, die Übersetzungen auf
der Mailing Liste
GnuPG i18n.
Eine verfügbare Übersetzung aktivieren
Abhängig von der Sprache Ihres Windows-Betriebssystems wird die passende Sprache automatisch ausgewählt. Ansonsten wird die englische Sprache verwendet.
GpgEX
Verfügbare Übersetzungen
Um herauszufinden, welche Übersetzungen bereits vorhanden sind, reicht ein Blick
auf die .po Dateien im
Verzeichnis "po" von GpgEX. Hier finden Sie den aktuellen Stand aller
Übersetzungen.
Eine neue Übersetzung beginnen oder eine vorhandene aktualisieren
GpgEX verwendet GNU gettext und deshalb treffen die üblichen Methoden von GNU gettext
zu. GpgEX wird von den Entwickler:innen von GnuPG verwaltet, die Übersetzungen auf
der Mailing Liste
GnuPG i18n.
Eine verfügbare Übersetzung aktivieren
Abhängig von der Sprache Ihres Windows-Betriebssystems wird die passende Sprache automatisch ausgewählt. Ansonsten wird die englische Sprache verwendet.
Kleopatra
Der Zertifikat-Manager ist ein Projekt von
KDE.
Bitte fragen Sie das
i18n KDE Team
nach mehr Informationen zum Theme Übersetzungen.
GnuPG
Verfügbare Übersetzungen
Ist hier nicht dokumentiert. Bitte fragen Sie in der Gpg4win developer
Mailing List nach.
Eine neue Übersetzung beginnen oder eine vorhandene aktualisieren
GnuPG verwendet GNU gettext und deshalb treffen die üblichen Methoden von GNU gettext
zu. GnuPG wird von den Entwickler:innen von GnuPG verwaltet, die Übersetzungen auf
der Mailing Liste
GnuPG i18n.
Eine verfügbare Übersetzung aktivieren
Abhängig von der Sprache Ihres Windows-Betriebssystems wird die passende Sprache automatisch ausgewählt. Ansonsten wird die englische Sprache verwendet.
diff --git a/web/localize-gpg4win.htm4 b/web/localize-gpg4win.htm4
index 48c2ec85..bf987f19 100644
--- a/web/localize-gpg4win.htm4
+++ b/web/localize-gpg4win.htm4
@@ -1,331 +1,337 @@
m4_dnl -*-html-*-
m4_include(`template.m4')
m4_dnl $Id$
m4_define(`EN')
m4_define(`DE_FILE', `localize-gpg4win-de.html')
m4_define(`MAIN', `community')
m4_define(`TITLE', `Translate Gpg4win into your language')
PAGE_START
How to translate all of Gpg4win into your language
Gpg4win consists of various modules. Some do already support
numerous languages, some only a few.
Here, you find a description on how to translate each of the
modules or just how to check whether it supports your language.
Introduction
Note, that English is always the default base for any translation.
In most cases the GNU gettext technology is applied for translations
which more or less means to edit .po files. This is a very common
technology and various graphical tools to aid the translation are available (e.g. poedit or
KBabel). However, a simple text
editor will do the job as well. In many cases this makes sense if the editor supports UTF8.
Your language identifier is the language code (ISO 639-1)
and optionally combined with
country code (ISO 3166).
E.g. "de" is german language, "de_DE" is German language as used in Germany and
"de_CH" is the German language as used in Switzerland.
Gpg4win Installer
Available languages
See the .po filenames in the Gpg4win
po directory. This is the most current status, so in case of relatively new files the most
recent release of Gpg4win might not yet support it.
How to initialize a new language
The procedure is the standard procedure of GNU gettext to create a new PO file.
It is highly recommended to coordinate with the Gpg4win developers (via the Gpg4win
developer mailing list) before you start if you want to have your language
integrated into Gpg4win as an officially supported language.
Also, the po files should not be in UTF-8 but rather in some Windows code page.
The Gpg4win developers will help you to find the best option or whether
the support of your language will cause bigger problems.
How to update an available language
+
This should work on basically any GNU/Linux or other unixoid system:
+
- Get the sources for the website anonymously (without write access):
git clone git://git.gnupg.org/gpg4win.git
- Configure the whole package:
cd gpg4win
./autogen.sh
./configure --enable-maintainer-mode --host=i586-mingw32msvc
- Check the status of the translations:
cd po
make update-po
This will report about the total number of strings that
are marked inside the source code for translation, about
the number of fuzzy and un-translated strings. If only
the number of translated messages is reported, there is
- nothing to do and you can stop for now (at a later
- time you might want to git pull && git up
- and repeat the check).
+ nothing to do and you can stop for now. At a later
+ time you might want to get the newest updates with the
+ following command to repeat the check:
+
git pull && git up
- - Edit the .po file to resolve fuzzy and missing translations
- with your preferred tool. Then repeat "make update-po" to
- check whether you completed the translation successfully.
+
-
+
+ Edit the .po file to resolve fuzzy and missing translations
+ with your preferred tool. Then repeat "make update-po" to
+ check whether you completed the translation successfully.
+
How to activate an available language
Depending on the language environment of your Windows system,
the appropriate language is selected automatically, if available.
Otherwise, English is used.
Gpg4win Website
Available languages
In the upper right hand corner of this web page, you will
see a list of available translations. For those language
names that are struck out, only the current page
is not translated, but the language is supported in general.
Before you start, please coordinate with us,
e.g. (via the Gpg4win developer mailing list).
Check out the
technical steps to maintain the website
.
How to initialize a new language
You basically need to
create a "-LL.htm4" file for any file in
doc/website
that ends with "-de.htm4" (where LL is code of your language). Basis of the translation
are the files without the LL suffix which are in fact the English
defaults. Some further changes are needed for the website build process.
How to update an available language
This is a difficult task and requires some discipline.
The English version is the master version. Whenever a change
is made to one of the English files, the other languages
must be synchronized. A good notification system
for translators is the Gpg4win commit mailing list
(Archive
| Subscribe).
Currently, there is no automatic detection routine to mark non-English pages
that have not been updated although the corresponding master has.
And it is virtually impossible for the Gpg4win developer team to check the
synchronization work nor the correctness of translations. So, that's where
discipline comes into play.
How to activate an available language
Simply click on the top-right language you prefer.
Gpg4win Compendium
Available languages
The Gpg4win Compendium is available in
German
and
English
language.
The translation into English is currently not finished (as of:
September 2010). Translations from German compendium into other
languages are most welcome! Please contact the Gpg4win developer mailing list if you
want to start with a new translation.
How to initialize a new language
Basically you need to pick the German file
doc/manual/gpg4win-compendium-de.tex and
translate the text to your language. Next there are many screenshots
to be done with the software running in your language.
Note, that this file is a LaTeX file and you should be
basically familiar with LaTeX (i.e. know what is text and
what are commands to determine what needs to be translated
and what not). Also, you should work with a comfortable and suitable
editor for plain text.
It is highly recommended to coordinate with the Gpg4win developers (via the Gpg4win
developer mailing list) before you start.
How to update an available language
The German version is the master version. Whenever a change
is made to the German files, the other languages
must be synchronized. A good notification system
for translators is the Gpg4win commit mailing list
(Archive
| Subscribe).
Currently, there is no automatic detection routine to mark non-German parts
that have not been updated although the corresponding master has.
And it is virtually impossible for the Gpg4win developer team to check the
synchronization work nor the correctness of translations. So, that's where
discipline comes into play.
How to activate an available language
Simply read the text (html, pdf or print-outs) in one of the available
languages.
GpgOL
Available languages
See the .po filenames in the GpgOL
po directory. This is the most current status, so in case of relatively new files the most
recent release of GpgOL might not yet support it.
How to initialize a new or update an available language
GpgOL uses GNU gettext and therefore the standard methods
for GNU gettext apply. GpgOL is managed by the GnuPG developer team
which coordinates translations on the
GnuPG-i18n Mailing List.
How to activate an available language
Depending on the language environment of your Windows system,
the appropriate language is selected automatically, if available.
Otherwise, English is used.
GpgEX
Available languages
See the .po filenames in the GpgEX
po directory. This is the most current status, so in case of relatively new files the most
recent release of GpgEX might not yet support it.
How to initialize a new or update an available language
GpgEX uses GNU gettext and therefore the standard methods
for GNU gettext apply. GpgEX is managed by the GnuPG developer team
which coordinates translations on the
GnuPG-i18n Mailing List.
How to activate an available language
Depending on the language environment of your Windows system,
the appropriate language is selected automatically, if available.
Otherwise, English is used.
Kleopatra
This certificate manager is a project of KDE.
Please ask the i18n KDE team for more information.
GnuPG
Available languages
Not yet documented here. Please ask on the gpg4win developer
mailing list for support.
How to initialize a new or update an available language
GnuPG uses GNU gettext and therefore the standard methods
for GNU gettext apply. The GnuPG developer team
coordinates translations on the
GnuPG-i18n Mailing List.
How to activate an available language
Depending on the language environment of your Windows system,
the appropriate language is selected automatically, if available.
Otherwise, english is used.