Add Finnish translation

And prep for Finnish site release
This commit is contained in:
JantsoP 2021-07-21 19:02:46 +03:00
parent 3fcf1640f3
commit 2dc38e1b81
12 changed files with 166 additions and 44 deletions

View File

@ -182,14 +182,14 @@ function Form(): JSX.Element {
<div className="relative inline-block w-full">
<select name="color" id="color"
className="bg-gray-200 dark:bg-gray-900 focus:outline-none w-full h-10 pl-3 pr-6 text-base rounded-md appearance-none cursor-pointer">
<option value="white">{t('index:colorWhite')}</option>
<option value="black">{t('index:colorBlack')}</option>
<option value="grey">{t('index:colorGrey')}</option>
<option value="green">{t('index:colorGreen')}</option>
<option value="indigo">{t('index:colorIndigo')}</option>
<option value="blue">{t('index:colorBlue')}</option>
<option value="purple">{t('index:colorPurple')}</option>
<option value="teal">{t('index:colorTeal')}</option>
<option value="Valkoinen">{t('index:colorWhite')}</option>
<option value="Musta">{t('index:colorBlack')}</option>
<option value="Harmaa">{t('index:colorGrey')}</option>
<option value="Vihreä">{t('index:colorGreen')}</option>
<option value="Indigonsininen">{t('index:colorIndigo')}</option>
<option value="Sininen">{t('index:colorBlue')}</option>
<option value="Purppura">{t('index:colorPurple')}</option>
<option value="Sinivihreä">{t('index:colorTeal')}</option>
</select>
<div className="absolute inset-y-0 right-0 flex items-center px-2 pointer-events-none">
<svg className="w-5 h-5 fill-current" viewBox="0 0 20 20">

View File

@ -25,8 +25,7 @@ function Page(props: PageProps): JSX.Element {
<footer>
<nav className="nav flex pt-4 flex-row space-x-4 justify-center text-md font-bold flex-wrap">
<a href="https://www.paypal.com/paypalme/msextro" className="hover:underline">{t('common:donate')}</a>
<a href="https://github.com/marvinsxtr/covidpass" className="hover:underline">{t('common:gitHub')}</a>
<a href="https://github.com/jantsop/covidpass" className="hover:underline">{t('common:gitHub')}</a>
<Link href="/privacy"><a className="hover:underline">{t('common:privacyPolicy')}</a></Link>
<Link href="/imprint"><a className="hover:underline">{t('common:imprint')}</a></Link>
</nav>

View File

@ -2,9 +2,7 @@ module.exports = {
i18n: {
defaultLocale: 'en',
locales: [
'en',
'de', 'de-DE', 'de-AT', 'de-LI', 'de-LU', 'de-CH',
'fr', 'fr-BE', 'fr-CH', 'fr-FR', 'fr-LU', 'fr-MC'
'fi'
],
localeExtension: 'yml',
},

View File

@ -1,21 +1,21 @@
export default {
titleTemplate: 'CovidPass | %s',
defaultTitle: 'CovidPass',
titleTemplate: 'Korona Passi | %s',
defaultTitle: 'Korona Passi',
openGraph: {
type: 'website',
locale: 'en_IE',
url: 'https://covidpass.marvinsextro.de/',
site_name: 'CovidPass',
locale: 'fi_FI',
url: 'https://covidpassi.fi',
site_name: 'Korona Passi',
},
twitter: {
handle: '@marvinsxtr',
site: '@marvinsxtr',
handle: '@jantsop',
site: '@jantsop',
cardType: 'summary_large_image',
},
additionalLinkTags: [
{
rel: 'apple-touch-icon',
href: 'https://covidpass.marvinsextro.de/apple-touch-icon.png',
href: 'https://covidpassi.fi/apple-touch-icon.png',
sizes: '180x180'
},
]

View File

@ -13,13 +13,13 @@ function Imprint(): JSX.Element {
<div className="space-y-2">
<p className="font-bold">{t('imprint:heading')}</p>
<p>
Marvin Sextro<br />
Wilhelm-Busch-Str. 8A<br />
30167 Hannover<br />
Jantso Porali<br />
Rakentajanpolku 3H<br />
96960 Rovaniemir<br />
</p>
<p className="font-bold">{t('imprint:contact')}</p>
<p>
<a href="mailto:marvin.sextro@gmail.com" className="underline">marvin.sextro@gmail.com</a>
<a href="mailto:jantso.porali@gmail.com" className="underline">jantso.porali@gmail.com</a>
</p>
<p className="font-bold">{t('imprint:euDisputeResolution')}</p>
<p>{t('imprint:euDisputeResolutionParagraph')}</p>
@ -34,6 +34,8 @@ function Imprint(): JSX.Element {
{t('imprint:creditsSource')}
<br />
{t('imprint:creditsTranslation')}
<br />
{t('imprint:creditsOriginalCode')}
</p>
</div>
}/>

View File

@ -22,7 +22,7 @@ function Privacy(): JSX.Element {
<li>
{t('privacy:generalInfoGitHub')}
&nbsp;
<a href="https://github.com/marvinsxtr/covidpass" className="underline">
<a href="https://github.com/jantsop/covidpass" className="underline">
GitHub
</a>.
</li>
@ -36,13 +36,13 @@ function Privacy(): JSX.Element {
<li>
{t('privacy:generalInfoProvider')}
&nbsp;
<a href="https://www.hetzner.com/de/rechtliches/datenschutz/" className="underline">
<a href="https://www.hetzner.com/rechtliches/datenschutz/" className="underline">
{t('privacy:privacyPolicy')}
</a>
&nbsp;
{t('privacy:andThe')}
&nbsp;
<a href="https://docs.hetzner.com/general/general-terms-and-conditions/data-privacy-faq/privacy.tsx" className="underline">
<a href="https://docs.hetzner.com/general/general-terms-and-conditions/data-privacy-faq" className="underline">
{t('privacy:dataPrivacyFaq')}
</a>.
</li>
@ -50,16 +50,13 @@ function Privacy(): JSX.Element {
</div>
<p className="font-bold">{t('privacy:contact')}</p>
<p>
Marvin Sextro<br/>
Wilhelm-Busch-Str. 8A<br/>
30167 Hannover<br/>
Jantso Porali<br/>
Rakentajanpolku 3H<br/>
96960 Rovaniemi<br/>
{t('privacy:email')}:
&nbsp;
<a href="mailto:marvin.sextro@gmail.com">marvin.sextro@gmail.com</a>
<br/>
{t('privacy:website')}:
&nbsp;
<a href="https://marvinsextro.de" className="underline">https://marvinsextro.de</a>
</p>
<p className="font-bold">{t('privacy:process')}</p>
<p>{t('privacy:processFirst')}:</p>
@ -101,11 +98,11 @@ function Privacy(): JSX.Element {
<p>{t('privacy:serverProviderIs')}</p>
<p>
<a href="https://www.hetzner.com/" className="underline">
Hetzner Online GmbH
Hetzner Finland Oy
</a>
<br />
Industriestr. 25<br />
91710 Gunzenhausen<br />
Huurrekuja 10<br />
04360 Tuusula<br />
</p>
<p>{t('privacy:logFiles')}:</p>
<div className="px-4">
@ -137,13 +134,6 @@ function Privacy(): JSX.Element {
{t('common:privacyPolicy')}
</a>
</li>
<li>
PayPal:
&nbsp;
<a href="https://www.paypal.com/de/webapps/mpp/ua/privacy-full?locale.x=en_EN" className="underline">
{t('common:privacyPolicy')}
</a>
</li>
<li>
Gmail/Google:
&nbsp;

0
public/locales/fi-FI Normal file
View File

View File

@ -0,0 +1,5 @@
title: Korona Passi
subtitle: Lisää EU:n koronatodistus to your favorite wallet apps.
privacyPolicy: Tietosuojaselosta
gitHub: GitHub
imprint: Imprint

View File

@ -0,0 +1,17 @@
noFileOrQrCode: Skannaa QR koodi tai valitse tiedosto
signatureFailed: Virhe allekirjoitettaessa passia palvelimella
decodingFailed: QR-koodin hyötykuorman purkaminen epäonnistui
invalidColor: Väärä väri
certificateData: Varmenteen tietojen lukeminen epäonnistui
nameMissing: Nimen lukeminen epäonnistui
dobMissing: Syntymäaikaa ei onnistuttu lukemaan
invalidMedicalProduct: Virheellinen lääkevalmiste
invalidCountryCode: Virheellinen maakoodi
invalidManufacturer: Virheellinen valmistaja
invalidFileType: Virheellinen tiedostotyyppi
couldNotDecode: QR-koodia ei voitu purkaa tiedostosta
couldNotFindQrCode: QR-koodia ei löytynyt annetusta tiedostosta
invalidQrCode: Virheellinen QR-koodi
certificateType: Kelvollista varmennetyyppiä ei löytynyt
invalidTestResult: Virheellinen testitulos
invalidTestType: Virheellinen testityyppi

View File

@ -0,0 +1,28 @@
heading: Information according to § 5 TMG
contact: Contact
euDisputeResolution: EU Dispute Resolution
euDisputeResolutionParagraph: |
The European Commission provides a platform for online dispute resolution (OS) https://ec.europa.eu/consumers/odr.
You can find our e-mail address in the imprint above.
consumerDisputeResolution: Consumer dispute resolution / universal arbitration board
consumerDisputeResolutionParagraph: We are not willing or obliged to participate in dispute resolution proceedings before a consumer arbitration board.
liabilityForContents: Liability for contents
liabilityForContentsParagraph: |
As a service provider, we are responsible for our own content on these pages in accordance with § 7 paragraph 1 TMG under the general laws.
According to §§ 8 to 10 TMG, we are not obligated to monitor transmitted or stored information or to investigate circumstances that indicate illegal activity.
Obligations to remove or block the use of information under the general laws remain unaffected.
However, liability in this regard is only possible from the point in time at which a concrete infringement of the law becomes known.
If we become aware of any such infringements, we will remove the relevant content immediately.
liabilityForLinks: Liability for links
liabilityForLinksParagraph: |
Our offer contains links to external websites of third parties, on whose contents we have no influence.
Therefore, we cannot assume any liability for these external contents.
The respective provider or operator of the sites is always responsible for the content of the linked sites.
The linked pages were checked for possible legal violations at the time of linking.
Illegal contents were not recognizable at the time of linking.
However, a permanent control of the contents of the linked pages is not reasonable without concrete evidence of a violation of the law.
If we become aware of any infringements, we will remove such links immediately.
credits: Credits
creditsSource: With excerpts from https://www.e-recht24.de/impressum-generator.html
creditsTranslation: Translated with https://www.DeepL.com/Translator (free version)
creditsOriginalCode: Alkuperäinen koodi https://github.com/covidpass-org/covidpass

View File

@ -0,0 +1,26 @@
iosHint: Käytä iOS:ssä Safari-selainta.
errorClose: Sulje
selectCertificate: Valitse todistus
selectCertificateDescription: |
Skannaa todistuksessa oleva QR-koodi tai valitse kuvakaappaus tai PDF-sivu, jossa on QR-koodi.
Huomaa, että tiedoston valitsemista suoraan kamerasta ei tueta.
stopCamera: Lopeta Kamera
startCamera: Käynnistä Kamera
openFile: Valitse Tiedosto
foundQrCode: QR koodi löytyi!
pickColor: Valitse väri
pickColorDescription: Valitse passisi taustaväri.
colorWhite: Valkoinen
colorBlack: Musta
colorGrey: Harmaa
colorGreen: Vihreä
colorIndigo: Indigonsininen
colorBlue: Sininen
colorPurple: Purppura
colorTeal: Sinivihreä
addToWallet: Lisää lompakkoon.
dataPrivacyDescription: |
Tietosuoja on erityisen tärkeää, kun käsitellään terveyteen liittyviä tietoja.
Jotta voisit tehdä tietoon perustuvan päätöksen, lue seuraavat tiedot
iAcceptThe: Hyväksyn
privacyPolicy: Tietosuojaselosteen

View File

@ -0,0 +1,57 @@
gdprNotice: |
Our privacy policy is based on the terms used by the European legislator
for the adoption of the General Data Protection Regulation (GDPR).
generalInfo: General information
generalInfoProcess: |
The whole process of generating the pass file happens locally in your browser.
For the signing step, only a hashed representation of your data is sent to the server.
generalInfoStoring: Your data is not stored beyond the active browser session and the site does not use cookies.
generalInfoThirdParties: No data is sent to third parties.
generalInfoHttps: We transmit your data securely over https.
generalInfoLocation: Our server is hosted in Nuremberg, Germany.
generalInfoGitHub: The source code of this site is available on
generalInfoLockScreen: By default, Apple Wallet passes are accessible from the lock screen. This can be changed in the
settings: settings
generalInfoProvider: |
The server provider processes data to provide this site.
In order to better understand what measures they take to protect your data, please also read their
privacyPolicy: privacy policy
andThe: and the
dataPrivacyFaq: data privacy FAQ
contact: Contact
email: Email
website: Website
process: Simplified of the process
processFirst: First, the following steps happen locally in your browser
processSecond: Second, the following steps happen on our server
processThird: Finally, the following steps happen locally in your browser
processRecognizing: Recognizing and extracting the QR code data from your selected certificate
processDecoding: Decoding your personal and health-related data from the QR code payload
processAssembling: Assembling an incomplete pass file out of your data
processGenerating: Generating a file containing hashes of the data stored in the pass file
processSending: Sending only the file containing the hashes to our server
processReceiving: Receiving and checking the hashes which were generated locally
processSigning: Signing the file containing the hashes
processSendingBack: Sending the signature back
processCompleting: Assembling the signed pass file out of the incomplete file generated locally and the signature
processSaving: Saving the file on your device
locallyProcessedData: Locally processed data
the: The
schema: Digital Covid Certificate Schema
specification: contains a detailed specification of which data can be contained in the QR code and will be processed in your browser.
serverProvider: Palveluntarjoaja
serverProviderIs: Meidän palveluntarjoaja on
logFiles: The following data may be collected and stored in the server log files
logFilesBrowser: The browser types and versions used
logFilesOs: The operating system used by the accessing system
logFilesReferrer: The website from which an accessing system reaches our website (so-called referrers)
logFilesTime: The date and time of access
logFilesIpAddress: The pseudonymised IP addresses
rights: Your rights
rightsGranted: In accordance with the GDPR you have the following rights
rightsAccess: Right of access to your data; You have the right to know what data has been collected about you and how it was processed.
rightsErasure: Right to be forgotten; Erasure of your personal data.
rightsRectification: Right of rectification; You have the right to correct inaccurate data.
rightsPortability: Right of data portability; You have the right to transfer your data from one processing system into another.
thirdParties: Third parties linked
appleSync: Apple may sync your passes via iCloud