Skip to content

Commit

Permalink
Merge pull request #398 from tphakala/master
Browse files Browse the repository at this point in the history
Finnish translations
  • Loading branch information
jovandeginste authored Jan 15, 2025
2 parents bb1cc7f + 0eb4a8c commit 6d3ed50
Show file tree
Hide file tree
Showing 6 changed files with 240 additions and 24 deletions.
194 changes: 194 additions & 0 deletions translations/fi.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
---
fi:
Heatmap: Lämpökartta
"(Re)generate publicly shareable link": "Luo (uudelleen) julkinen jakolinkki"
1 day: 1 päivä
1 month: 1 kuukausi
1 year: 1 vuosi
10 years: 10 vuotta
15 days: 15 päivää
2 years: 2 vuotta
3 months: 3 kuukautta
5 years: 5 vuotta
6 months: 6 kuukautta
7 days: 7 päivää
API key updated: API-avain päivitetty
Actions: Toiminnot
Active: Aktiivinen
Add a workout: Lisää harjoitus
Add equipment: Lisää väline
Add route segment: Lisää reittiosuus
Add workout: Lisää harjoitus
Add workouts: Lisää harjoituksia
"Added %d new workout(s): %s": "Lisätty %d uutta harjoitusta: %s"
Admin: Ylläpitäjä
Aerial: Ilmakuva
All: Kaikki
All workouts will be refreshed in the coming minutes.: Kaikki harjoitukset päivitetään tulevien minuuttien aikana.
Application settings: Sovelluksen asetukset
Are you sure you want to delete this %s?: "Haluatko varmasti poistaa tämän: %s?"
Auto import directory: Automaattinen tuontihakemisto
Auto-detect: Automaattinen tunnistus
Average per minute: Keskiarvo minuutissa
Average speed: Keskinopeus
Average speed (no pause): Keskinopeus (ilman taukoja)
Average tempo: Keskitahti
Average tempo (no pause): Keskitahti (ilman taukoja)
Bidirectional: Kaksisuuntainen
Cadence: Kadenssi
Cancel: Peruuta
Circular: Ympyrä
Continue: Jatka
Copy publicly shareable link: Kopioi julkinen jakolinkki
Create a new account: Luo uusi tili
Create route segment: Luo reittiosuus
Created: Luotu
Dashboard: Kojelauta
Dashboard for %s: Kojelauta käyttäjälle %s
Date: Päivämäärä
Default workout types: Oletusharjoitustyypit
Description: Kuvaus
Details: Tiedot
Disable account registration: Poista tilien luonti käytöstä
Disable social sharing buttons: Poista sosiaalisen median jakopainikkeet käytöstä
Distance: Matka
Duration: Kesto
Elevation: Korkeus
Enable API access: Ota API-käyttö käyttöön
"Encountered %d problems while adding workouts: %s": "Kohdattiin %d ongelmaa harjoitusten lisäämisessä: %s"
End: Loppu
Equipment: Välineet
Est. calories burned: Arv. kulutetut kalorit
Estimated based on the activity, assuming 70 kg: Arvioitu aktiviteetin perusteella, olettaen 70 kg paino
Extra metrics: Lisämittarit
File: Tiedosto
Filter: Suodata
Heart rate: Syke
"I completed a workout: %s.": "Suoritin harjoituksen: %s."
It took me %s to go %s. I averaged %s.: Minulla kesti %s kulkea %s. Keskiarvoni oli %s.
Language: Kieli
Last: Viimeinen
Leave blank to keep current password: Jätä tyhjäksi säilyttääksesi nykyisen salasanan
Location: Sijainti
Logout: Kirjaudu ulos
Manage: Hallitse
Manage user '%s': Hallitse käyttäjää '%s'
Manage users: Hallitse käyttäjiä
Manual: Manuaalinen
Matches: Vastaavuudet
Matching route segments: Vastaavat reittiosuudet
Max elevation: Korkein kohta
Max speed: Maksiminopeus
Min elevation: Matalin kohta
Name: Nimi
Notes: Muistiinpanot
Other users: Muut käyttäjät
Password: Salasana
Per: Per
Please help translate via Weblate: Auta kääntämisessä Weblaten kautta
Preferred units: Ensisijaiset yksiköt
Profile updated: Profiili päivitetty
Publicly shareable link was copied to clipboard: Julkinen jakolinkki kopioitiin leikepöydälle
Recent activity: Viimeaikainen toiminta
Records for %s: Tulokset käyttäjälle %s
Refresh all your workouts: Päivitä kaikki harjoituksesi
Register: Rekisteröidy
Repetitions: Toistot
Reset changes: Palauta muutokset
Route segments: Reittiosuudet
Show full date by default: Näytä koko päivämäärä oletuksena
Show map in full width: Näytä kartta täydessä leveydessä
Sign in: Kirjaudu sisään
Since: Lähtien
Sort by: Järjestä
Source: Lähde
Speed: Nopeus
Start: Aloitus
Statistics: Tilastot
Streets: Kadut
Tempo: Tahti
Theme: Teema
Light: Vaalea
Dark: Tumma
Browser / System: Selain / Järjestelmä
Time: Aika
Time paused: Taukoaika
Time zone: Aikavyöhyke
Total distance: Kokonaismatka
Total down: Kokonaislasku
Total duration: Kokonaiskesto
Total repetitions: Kokonaistoistot
Total up: Kokonaisnousu
Total weight: Kokonaispaino
Totals: Yhteensä
Type: Tyyppi
Update equipment: Päivitä välineet
Update preferred units: Päivitä ensisijaiset yksiköt
Update profile: Päivitä profiili
Update route segment: Päivitä reittiosuus
Update settings: Päivitä asetukset
Update user: Päivitä käyttäjä
Update workout: Päivitä harjoitus
Updated: Päivitetty
Use a file: Käytä tiedostoa
User: Käyttäjä
Username: Käyttäjänimi
Username (email): Käyttäjänimi (sähköposti)
Weight: Paino
Welcome!: Tervetuloa!
Workout: Harjoitus
Workout type: Harjoitustyyppi
Workouts: Harjoitukset
Your account has been created, but needs to be activated.: Tilisi on luotu, mutta se täytyy aktivoida.
Your profile: Profiilisi
Your progress per %s for the past %s: Edistymisesi per %s viimeisten %s aikana
copy to clipboard: kopioi leikepöydälle
create route segment: luo reittiosuus
cycling: pyöräily
day: päivä
delete: poista
distance: matka
download: lataa
duration: kesto
e-cycling: sähköpyöräily
edit: muokkaa
environment variables: ympäristömuuttujat
equipment: välineet
feet: jalat
find matches: etsi vastaavuudet
generate a new API key: luo uusi API-avain
golfing: golf
hiking: vaellus
how to use: käyttöohjeet
kilograms: kilogrammat
kilometers: kilometrit
kilometers per hour: kilometriä tunnissa
meters: metrit
miles: mailit
miles per hour: mailia tunnissa
month: kuukausi
no equipment: ei välineitä
pounds: paunat
push-ups: punnerrukset
refresh: päivitä
refresh in progress: päivitys käynnissä
route segment: reittiosuus
running: juoksu
sailboat: purjehdus
show/hide: näytä/piilota
skiing: hiihto
snowboarding: lumilautailu
swimming: uinti
kayaking: melonta
the configuration file: asetustiedosto
up: ylös
user: käyttäjä
walking: kävely
weight lifting: painonnosto
workout: harjoitus
workouts: harjoitukset
ascending: nouseva
descending: laskeva
Filter workouts: Suodata harjoituksia
Resources: Resurssit
"You can find inspiration here:": "Täältä löydät inspiraatiota:"
54 changes: 38 additions & 16 deletions views/helpers/language.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package helpers

import (
"cmp"
"context"
"fmt"
"slices"
"strings"
"time"

Expand All @@ -13,7 +15,23 @@ import (
"golang.org/x/text/language/display"
)

var englishTag = display.English.Languages()
var (
englishTag = display.English.Languages()

languagesSorted = false
languages = []language.Tag{
language.Dutch,
language.English,
language.Finnish,
language.French,
language.German,
language.Indonesian,
language.Italian,
language.Norwegian,
language.Persian,
language.Russian,
}
)

func THas(ctx context.Context, key string, args ...any) string {
if i18n.Has(ctx, key) {
Expand All @@ -34,22 +52,26 @@ func Language(ctx context.Context) string {
return translator(ctx).Code().String()
}

func SupportedLanguages(ctx context.Context) []language.Tag {
return []language.Tag{
language.Dutch,
language.English,
language.French,
language.German,
language.Indonesian,
language.Italian,
language.Norwegian,
language.Persian,
language.Russian,
func SupportedLanguages() []language.Tag {
sortLanguages()

return languages
}

func sortLanguages() {
if languagesSorted {
return
}

slices.SortFunc(languages, func(a, b language.Tag) int {
return cmp.Compare(a.String(), b.String())
})

languagesSorted = true
}

func ToLanguageInformation(code string) LanguageInformation {
cc := code
func ToLanguageInformation(code language.Tag) LanguageInformation {
cc := code.String()
if strings.Contains(cc, "-") {
cc = strings.Split(cc, "-")[1]
}
Expand All @@ -59,15 +81,15 @@ func ToLanguageInformation(code string) LanguageInformation {
}

l := LanguageInformation{
Code: code,
Code: code.String(),
Flag: emojiflag.GetFlag(cc),
}

if l.Flag == "" {
l.Flag = "👽"
}

localTag := language.MustParse(code)
localTag := language.MustParse(code.String())
l.LocalName = display.Self.Name(localTag)
l.EnglishName = englishTag.Name(localTag)

Expand Down
4 changes: 2 additions & 2 deletions views/partials/partials.templ
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ templ Alerts() {

templ Language() {
<select class="border-0" onchange="changeLanguage(this.value)">
for _, sl := range helpers.SupportedLanguages(ctx) {
{{ linf := helpers.ToLanguageInformation(sl.String()) }}
for _, sl := range helpers.SupportedLanguages() {
{{ linf := helpers.ToLanguageInformation(sl) }}
<option value={ linf.Code } selected?={ linf.Code == helpers.Language(ctx) }>
{ linf.Flag } { linf.LocalName }
if linf.EnglishName != "" && linf.EnglishName != linf.LocalName {
Expand Down
4 changes: 2 additions & 2 deletions views/partials/partials_templ.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions views/user/profile_preferred_units.templ
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,8 @@ templ profileLanguage(ulang string) {
<option value="browser" selected?={ ulang == "browser" }>
🌐 Browser language
</option>
for _, sl := range helpers.SupportedLanguages(ctx) {
{{ linf := helpers.ToLanguageInformation(sl.String()) }}
for _, sl := range helpers.SupportedLanguages() {
{{ linf := helpers.ToLanguageInformation(sl) }}
<option value={ linf.Code } selected?={ linf.Code == ulang }>
{ linf.Flag } { linf.LocalName }
if linf.EnglishName != "" {
Expand Down
4 changes: 2 additions & 2 deletions views/user/profile_preferred_units_templ.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 6d3ed50

Please sign in to comment.