Merge pull request #356 from SamR1/init-pl-translations

Init Polish translation files
This commit is contained in:
Sam 2023-05-10 08:44:26 +02:00 committed by GitHub
commit 518251d442
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
30 changed files with 312 additions and 16 deletions

View File

@ -66,6 +66,7 @@ class BaseConfig:
'nl', 'nl',
'es', 'es',
'gl', 'gl',
# 'pl', # disabled for now
] ]
OAUTH2_TOKEN_EXPIRES_IN = { OAUTH2_TOKEN_EXPIRES_IN = {
'authorization_code': 864000, # 10 days 'authorization_code': 864000, # 10 days

View File

@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><!--[if IE]><link rel="icon" href="/favicon.ico"><![endif]--><link rel="stylesheet" href="/static/css/fork-awesome.min.css"/><link rel="stylesheet" href="/static/css/leaflet.css"/><title>FitTrackee</title><script defer="defer" src="/static/js/chunk-vendors.a33476ea.js"></script><script defer="defer" src="/static/js/app.994fa10a.js"></script><link href="/static/css/app.fa4567f8.css" rel="stylesheet"><link rel="icon" type="image/png" sizes="32x32" href="/img/icons/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/img/icons/favicon-16x16.png"><link rel="manifest" href="/manifest.json"><meta name="theme-color" content="#4DBA87"><meta name="apple-mobile-web-app-capable" content="no"><meta name="apple-mobile-web-app-status-bar-style" content="default"><meta name="apple-mobile-web-app-title" content="fittrackee_client"><link rel="apple-touch-icon" href="/img/icons/apple-touch-icon-152x152.png"><link rel="mask-icon" href="/img/icons/safari-pinned-tab.svg" color="#4DBA87"><meta name="msapplication-TileImage" content="/img/icons/msapplication-icon-144x144.png"><meta name="msapplication-TileColor" content="#000000"></head><body><noscript><strong>We're sorry but FitTrackee doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html> <!doctype html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><!--[if IE]><link rel="icon" href="/favicon.ico"><![endif]--><link rel="stylesheet" href="/static/css/fork-awesome.min.css"/><link rel="stylesheet" href="/static/css/leaflet.css"/><title>FitTrackee</title><script defer="defer" src="/static/js/chunk-vendors.a33476ea.js"></script><script defer="defer" src="/static/js/app.1827326c.js"></script><link href="/static/css/app.fa4567f8.css" rel="stylesheet"><link rel="icon" type="image/png" sizes="32x32" href="/img/icons/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/img/icons/favicon-16x16.png"><link rel="manifest" href="/manifest.json"><meta name="theme-color" content="#4DBA87"><meta name="apple-mobile-web-app-capable" content="no"><meta name="apple-mobile-web-app-status-bar-style" content="default"><meta name="apple-mobile-web-app-title" content="fittrackee_client"><link rel="apple-touch-icon" href="/img/icons/apple-touch-icon-152x152.png"><link rel="mask-icon" href="/img/icons/safari-pinned-tab.svg" color="#4DBA87"><meta name="msapplication-TileImage" content="/img/icons/msapplication-icon-144x144.png"><meta name="msapplication-TileColor" content="#000000"></head><body><noscript><strong>We're sorry but FitTrackee doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,240 @@
# Polish translations for PROJECT.
# Copyright (C) 2023 ORGANIZATION
# This file is distributed under the same license as the PROJECT project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-03-04 10:33+0100\n"
"PO-Revision-Date: 2023-05-03 20:00+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: pl\n"
"Language-Team: pl <LL@li.org>\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && "
"(n%100<10 || n%100>=20) ? 1 : 2);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: fittrackee/emails/templates/layout.html:215
#: fittrackee/emails/templates/layout.txt:1
#, python-format
msgid "Hi %(username)s,"
msgstr ""
#: fittrackee/emails/templates/account_confirmation/body.txt:6
#: fittrackee/emails/templates/email_update_to_current_email/body.txt:3
#: fittrackee/emails/templates/email_update_to_new_email/body.txt:6
#: fittrackee/emails/templates/layout.html:218
#: fittrackee/emails/templates/password_change/body.txt:3
#: fittrackee/emails/templates/password_reset_request/body.txt:6
#, python-format
msgid ""
"For security, this request was received from a %(operating_system)s "
"device using %(browser_name)s."
msgstr ""
#: fittrackee/emails/templates/layout.html:221
#: fittrackee/emails/templates/layout.txt:5
msgid "Thanks,"
msgstr ""
#: fittrackee/emails/templates/layout.html:222
#: fittrackee/emails/templates/layout.txt:6
msgid "The FitTrackee Team"
msgstr ""
#: fittrackee/emails/templates/account_confirmation/body.html:2
#: fittrackee/emails/templates/account_confirmation/subject.txt:1
msgid "Confirm your account"
msgstr ""
#: fittrackee/emails/templates/account_confirmation/body.html:3
msgid "Use this link to confirm your account."
msgstr ""
#: fittrackee/emails/templates/account_confirmation/body.html:4
#: fittrackee/emails/templates/account_confirmation/body.txt:1
msgid "You have created an account on FitTrackee."
msgstr ""
#: fittrackee/emails/templates/account_confirmation/body.html:4
msgid "Use the button below to confirm your address email."
msgstr ""
#: fittrackee/emails/templates/account_confirmation/body.html:11
#: fittrackee/emails/templates/account_confirmation/body.txt:4
#: fittrackee/emails/templates/email_update_to_new_email/body.html:11
#: fittrackee/emails/templates/email_update_to_new_email/body.txt:4
msgid "Verify your email"
msgstr ""
#: fittrackee/emails/templates/account_confirmation/body.html:18
#: fittrackee/emails/templates/account_confirmation/body.txt:7
msgid ""
"If this account creation wasn't initiated by you, please ignore this "
"email."
msgstr ""
#: fittrackee/emails/templates/account_confirmation/body.html:22
#: fittrackee/emails/templates/data_export_ready/body.html:22
#: fittrackee/emails/templates/email_update_to_new_email/body.html:22
#: fittrackee/emails/templates/password_reset_request/body.html:24
msgid ""
"If you're having trouble with the button above, copy and paste the URL "
"below into your web browser."
msgstr ""
#: fittrackee/emails/templates/account_confirmation/body.txt:2
msgid "Use the link below to confirm your address email."
msgstr ""
#: fittrackee/emails/templates/data_export_ready/body.html:2
#: fittrackee/emails/templates/data_export_ready/subject.txt:1
msgid "Your archive is ready to be downloaded"
msgstr ""
#: fittrackee/emails/templates/data_export_ready/body.html:3
msgid "A download link is available in your account."
msgstr ""
#: fittrackee/emails/templates/data_export_ready/body.html:4
#: fittrackee/emails/templates/data_export_ready/body.txt:1
msgid "You have requested an export of your account on FitTrackee."
msgstr ""
#: fittrackee/emails/templates/data_export_ready/body.html:4
#: fittrackee/emails/templates/data_export_ready/body.txt:2
msgid "The archive is now ready to be downloaded from your account."
msgstr ""
#: fittrackee/emails/templates/data_export_ready/body.html:11
#: fittrackee/emails/templates/data_export_ready/body.txt:4
msgid "Download your archive"
msgstr ""
#: fittrackee/emails/templates/data_export_ready/body.html:18
#: fittrackee/emails/templates/data_export_ready/body.txt:5
msgid ""
"If you did not request the export, please change your password "
"immediately or contact your administrator if your account is locked."
msgstr ""
#: fittrackee/emails/templates/email_update_to_current_email/body.html:2
#: fittrackee/emails/templates/email_update_to_current_email/subject.txt:1
msgid "Email changed"
msgstr ""
#: fittrackee/emails/templates/email_update_to_current_email/body.html:3
msgid "Your email is being updated."
msgstr ""
#: fittrackee/emails/templates/email_update_to_current_email/body.html:4
#: fittrackee/emails/templates/email_update_to_current_email/body.txt:1
msgid ""
"You recently requested to change your email address for your FitTrackee "
"account to:"
msgstr ""
#: fittrackee/emails/templates/email_update_to_current_email/body.html:18
#: fittrackee/emails/templates/email_update_to_current_email/body.txt:4
msgid ""
"If this email change wasn't initiated by you, please change your password"
" immediately or contact your administrator if your account is locked."
msgstr ""
#: fittrackee/emails/templates/email_update_to_new_email/body.html:2
#: fittrackee/emails/templates/email_update_to_new_email/subject.txt:1
msgid "Confirm email change"
msgstr ""
#: fittrackee/emails/templates/email_update_to_new_email/body.html:3
msgid "Use this link to confirm email change."
msgstr ""
#: fittrackee/emails/templates/email_update_to_new_email/body.html:4
#: fittrackee/emails/templates/email_update_to_new_email/body.txt:1
msgid ""
"You recently requested to change your email address for your FitTrackee "
"account."
msgstr ""
#: fittrackee/emails/templates/email_update_to_new_email/body.html:4
msgid "Use the button below to confirm this address."
msgstr ""
#: fittrackee/emails/templates/email_update_to_new_email/body.html:18
#: fittrackee/emails/templates/email_update_to_new_email/body.txt:7
msgid "If this email change wasn't initiated by you, please ignore this email."
msgstr ""
#: fittrackee/emails/templates/email_update_to_new_email/body.txt:2
msgid "Use the link below to confirm this address."
msgstr ""
#: fittrackee/emails/templates/password_change/body.html:2
#: fittrackee/emails/templates/password_change/subject.txt:1
msgid "Password changed"
msgstr ""
#: fittrackee/emails/templates/password_change/body.html:3
msgid "Your password has been changed."
msgstr ""
#: fittrackee/emails/templates/password_change/body.html:4
#: fittrackee/emails/templates/password_change/body.txt:1
msgid "The password for your FitTrackee account has been changed."
msgstr ""
#: fittrackee/emails/templates/password_change/body.html:5
#: fittrackee/emails/templates/password_change/body.txt:4
msgid ""
"If this password change wasn't initiated by you, please change your "
"password immediately or contact your administrator if your account is "
"locked."
msgstr ""
#: fittrackee/emails/templates/password_reset_request/body.html:2
#: fittrackee/emails/templates/password_reset_request/subject.txt:1
msgid "Password reset request"
msgstr ""
#: fittrackee/emails/templates/password_reset_request/body.html:3
#, python-format
msgid ""
"Use this link to reset your password. The link is only valid for "
"%(expiration_delay)s."
msgstr ""
#: fittrackee/emails/templates/password_reset_request/body.html:4
#: fittrackee/emails/templates/password_reset_request/body.txt:1
msgid "You recently requested to reset your password for your FitTrackee account."
msgstr ""
#: fittrackee/emails/templates/password_reset_request/body.html:4
msgid "Use the button below to reset it."
msgstr ""
#: fittrackee/emails/templates/password_reset_request/body.html:5
#: fittrackee/emails/templates/password_reset_request/body.txt:2
#, python-format
msgid "This password reset link is only valid for %(expiration_delay)s."
msgstr ""
#: fittrackee/emails/templates/password_reset_request/body.html:13
#: fittrackee/emails/templates/password_reset_request/body.txt:4
msgid "Reset your password"
msgstr ""
#: fittrackee/emails/templates/password_reset_request/body.html:20
#: fittrackee/emails/templates/password_reset_request/body.txt:7
msgid "If you did not request a password reset, please ignore this email."
msgstr ""
#: fittrackee/emails/templates/password_reset_request/body.txt:1
msgid "Use the link below to reset it."
msgstr ""

View File

@ -6,13 +6,18 @@ import { createI18n, LocaleMessages, VueMessageType } from 'vue-i18n'
* The loaded `JSON` locale messages is pre-compiled by `@intlify/vue-i18n-loader`, which is integrated into `vue-cli-plugin-i18n`. * The loaded `JSON` locale messages is pre-compiled by `@intlify/vue-i18n-loader`, which is integrated into `vue-cli-plugin-i18n`.
* See: https://github.com/intlify/vue-i18n-loader#rocket-i18n-resource-pre-compilation * See: https://github.com/intlify/vue-i18n-loader#rocket-i18n-resource-pre-compilation
*/ */
const disabledLanguages = ['pl'] // to update after translations release
function loadLocaleMessages(): Record<string, LocaleMessages<VueMessageType>> { function loadLocaleMessages(): Record<string, LocaleMessages<VueMessageType>> {
const locales = require.context('./locales', true, /[A-Za-z0-9-_,\s]+\.ts$/i) const locales = require.context('./locales', true, /[A-Za-z0-9-_,\s]+\.ts$/i)
const messages: Record<string, LocaleMessages<VueMessageType>> = {} const messages: Record<string, LocaleMessages<VueMessageType>> = {}
locales.keys().forEach((key) => { locales.keys().forEach((key) => {
const matched = key.match(/([A-Za-z0-9-_]+)\./i) const matched = key.match(/([A-Za-z0-9-_]+)\./i)
if (matched && matched.length > 1) { if (
matched &&
matched.length > 1 &&
!disabledLanguages.includes(matched[1])
) {
const locale = matched[1] const locale = matched[1]
messages[locale] = locales(key).default messages[locale] = locales(key).default
} }

View File

@ -1,5 +1,6 @@
{ {
"ERROR": { "ERROR": {
"<time> is missing in gpx file": "<time> gedeelte ontbreekt in het .gpx bestand.",
"Network Error": "Netwerk fout.", "Network Error": "Netwerk fout.",
"UNKNOWN": "Fout. Probeer opnieuw of contacteer de administrator.", "UNKNOWN": "Fout. Probeer opnieuw of contacteer de administrator.",
"at least one file in zip archive exceeds size limit, please check the archive": "Ten minste 1 bestand in het zip archief is groter dan toegelaten, gelieve de bestanden te controleren.", "at least one file in zip archive exceeds size limit, please check the archive": "Ten minste 1 bestand in het zip archief is groter dan toegelaten, gelieve de bestanden te controleren.",
@ -14,6 +15,7 @@
"error, registration is disabled": "Fout, registratie is uitgeschakeld.", "error, registration is disabled": "Fout, registratie is uitgeschakeld.",
"file extension not allowed": "Bestandsformaat niet toegelaten.", "file extension not allowed": "Bestandsformaat niet toegelaten.",
"file size is greater than the allowed size": "Bestandsgrootte is groter dan toegestaan.", "file size is greater than the allowed size": "Bestandsgrootte is groter dan toegestaan.",
"gpx file is invalid": "Het .gpx bestand is ongeldig.",
"invalid credentials": "Ongeldige inloggegevens.", "invalid credentials": "Ongeldige inloggegevens.",
"invalid payload": "Ingegeven data is ongeldig.", "invalid payload": "Ingegeven data is ongeldig.",
"invalid token, please log in again": "Ongeldige token, log opnieuw in.", "invalid token, please log in again": "Ongeldige token, log opnieuw in.",
@ -21,6 +23,7 @@
"new email must be different than curent email": "Het nieuwe email adres dient te verschillen van het oude", "new email must be different than curent email": "Het nieuwe email adres dient te verschillen van het oude",
"no file part": "Geen bestand opgegeven.", "no file part": "Geen bestand opgegeven.",
"no selected file": "Geen bestand geselecteerd.", "no selected file": "Geen bestand geselecteerd.",
"no tracks in gpx file": "Geen route (<trk>) aanwezig in het .gpx bestand.",
"ongoing request exists": "Er bestaat al een export aanvraag.", "ongoing request exists": "Er bestaat al een export aanvraag.",
"password: password and password confirmation do not match": "Wachtwoord: het wachtwoord en de bevestiging komen niet overeen.", "password: password and password confirmation do not match": "Wachtwoord: het wachtwoord en de bevestiging komen niet overeen.",
"provide a valid auth token": "Geef een geldig auth token.", "provide a valid auth token": "Geef een geldig auth token.",
@ -32,10 +35,7 @@
"user does not exist": "Gebruiker bestaat niet.", "user does not exist": "Gebruiker bestaat niet.",
"valid email must be provided for admin contact": "Een geldige email is vereist voor admin contact informatie", "valid email must be provided for admin contact": "Een geldige email is vereist voor admin contact informatie",
"you can not delete your account, no other user has admin rights": "U kunt uw account niet verwijderen, geen andere gebruiker heeft admin rechten.", "you can not delete your account, no other user has admin rights": "U kunt uw account niet verwijderen, geen andere gebruiker heeft admin rechten.",
"you do not have permissions": "U hebt geen machtigingen.", "you do not have permissions": "U hebt geen machtigingen."
"<time> is missing in gpx file": "<time> gedeelte ontbreekt in het .gpx bestand.",
"gpx file is invalid": "Het .gpx bestand is ongeldig.",
"no tracks in gpx file": "Geen route (<trk>) aanwezig in het .gpx bestand."
}, },
"PAGINATION": { "PAGINATION": {
"NEXT": "volgende", "NEXT": "volgende",

View File

@ -68,6 +68,11 @@
"EDIT": "Profiel aanpassen", "EDIT": "Profiel aanpassen",
"EDIT_PREFERENCES": "Voorkeuren wijzigen", "EDIT_PREFERENCES": "Voorkeuren wijzigen",
"EDIT_SPORTS_PREFERENCES": "Sport voorkeuren wijzigen", "EDIT_SPORTS_PREFERENCES": "Sport voorkeuren wijzigen",
"ELEVATION_CHART_START": {
"LABEL": "Hoogte grafiek begint op",
"MIN_ALT": "Minimum hoogte",
"ZERO": "Nul"
},
"ERRORED_EMAIL_UPDATE": "Gelieve {0} om uw email adres opnieuw te wijzigen of contacteer uw administrator", "ERRORED_EMAIL_UPDATE": "Gelieve {0} om uw email adres opnieuw te wijzigen of contacteer uw administrator",
"FIRST_DAY_OF_WEEK": "Eerste dag van de week", "FIRST_DAY_OF_WEEK": "Eerste dag van de week",
"FIRST_NAME": "Voornaam", "FIRST_NAME": "Voornaam",
@ -111,11 +116,6 @@
"IMPERIAL": "Imperialistisch systeem (ft, mi, mph, °F)", "IMPERIAL": "Imperialistisch systeem (ft, mi, mph, °F)",
"LABEL": "Eenheid voor afstand", "LABEL": "Eenheid voor afstand",
"METRIC": "Metrisch systeem (m, km, m/s, °C)" "METRIC": "Metrisch systeem (m, km, m/s, °C)"
},
"ELEVATION_CHART_START": {
"LABEL": "Hoogte grafiek begint op",
"ZERO": "Nul",
"MIN_ALT": "Minimum hoogte"
} }
}, },
"READ_AND_ACCEPT_PRIVACY_POLICY": "Ik heb het {0} gelezen en goedgekeurd.", "READ_AND_ACCEPT_PRIVACY_POLICY": "Ik heb het {0} gelezen en goedgekeurd.",

View File

@ -0,0 +1 @@
{ }

View File

@ -0,0 +1 @@
{ }

View File

@ -0,0 +1 @@
{ }

View File

@ -0,0 +1 @@
{ }

View File

@ -0,0 +1 @@
{ }

View File

@ -0,0 +1 @@
{ }

View File

@ -0,0 +1 @@
{ }

View File

@ -0,0 +1 @@
{ }

View File

@ -0,0 +1,29 @@
import AboutTranslations from './about.json'
import AdministrationTranslations from './administration.json'
import ApiTranslations from './api.json'
import ButtonsTranslations from './buttons.json'
import CommonTranslations from './common.json'
import DashboardTranslations from './dashboard.json'
import ErrorTranslations from './error.json'
import OAuth2Translations from './oauth2.json'
import PrivacyPolicyTranslations from './privacy_policy.json'
import SportsTranslations from './sports.json'
import StatisticsTranslations from './statistics.json'
import UserTranslations from './user.json'
import WorkoutsTranslations from './workouts.json'
export default {
about: AboutTranslations,
admin: AdministrationTranslations,
api: ApiTranslations,
buttons: ButtonsTranslations,
common: CommonTranslations,
dashboard: DashboardTranslations,
error: ErrorTranslations,
oauth2: OAuth2Translations,
privacy_policy: PrivacyPolicyTranslations,
sports: SportsTranslations,
statistics: StatisticsTranslations,
user: UserTranslations,
workouts: WorkoutsTranslations,
}

View File

@ -0,0 +1 @@
{ }

View File

@ -0,0 +1 @@
{ }

View File

@ -0,0 +1 @@
{ }

View File

@ -0,0 +1 @@
{ }

View File

@ -0,0 +1 @@
{ }

View File

@ -100,6 +100,7 @@ export const dateStringFormats: Record<string, string> = {
fr: 'd MMM yyyy', fr: 'd MMM yyyy',
gl: 'd MMM yyyy', gl: 'd MMM yyyy',
it: 'd MMM yyyy', it: 'd MMM yyyy',
// pl: 'd MMM yyyy', // disabled for now
nb: 'do MMM yyyy', nb: 'do MMM yyyy',
nl: 'd MMM yyyy', nl: 'd MMM yyyy',
} }

View File

@ -11,6 +11,7 @@ export const localeFromLanguage: Record<string, Locale> = {
fr: fr, fr: fr,
gl: gl, gl: gl,
it: it, it: it,
// pl: pl,
nb: nb, nb: nb,
nl: nl, nl: nl,
} }
@ -22,6 +23,7 @@ export const languageLabels: Record<string, string> = {
fr: 'Français', fr: 'Français',
gl: 'Galego', gl: 'Galego',
it: 'Italiano', it: 'Italiano',
// pl: 'Polski',
nb: 'Norsk bokmål', nb: 'Norsk bokmål',
nl: 'Nederlands', nl: 'Nederlands',
} }

View File

@ -23,6 +23,11 @@ export const loadLanguagePackage = async (language: string) => {
return await import( return await import(
/* webpackChunkName: "password.es" */ '@zxcvbn-ts/language-es-es' /* webpackChunkName: "password.es" */ '@zxcvbn-ts/language-es-es'
) )
// TODO: add package
// case 'pl':
// return await import(
// /* webpackChunkName: "password.pl" */ '@zxcvbn-ts/language-pl'
// )
default: default:
return await import( return await import(
/* webpackChunkName: "password.en" */ '@zxcvbn-ts/language-en' /* webpackChunkName: "password.en" */ '@zxcvbn-ts/language-en'