extra translations
This commit is contained in:
@@ -24,7 +24,8 @@
|
||||
(define (user-language-key username)
|
||||
(format "language-for-~a" username))
|
||||
|
||||
(define supported-language-names '("en" "nl" "de" "fr" "es"))
|
||||
(define supported-language-names
|
||||
'("en" "nl" "de" "fr" "es" "it" "sv" "no" "fi" "is"))
|
||||
|
||||
(define (track->datum item)
|
||||
(hasheq 'file (path->string (track-file item))
|
||||
@@ -143,7 +144,7 @@
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; goal : Persist one user's interface language.
|
||||
; pre : Store is #f or open, username is normalized, and language is one of
|
||||
; en, nl, de, fr, or es.
|
||||
; en, nl, de, fr, es, it, sv, no, fi, or is.
|
||||
; post : The user's language key contains language when a store exists.
|
||||
; result : Void.
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
@@ -151,7 +152,7 @@
|
||||
(unless (member language supported-language-names)
|
||||
(raise-argument-error
|
||||
'save-user-language!
|
||||
"one of en, nl, de, fr, or es"
|
||||
"one of en, nl, de, fr, es, it, sv, no, fi, or is"
|
||||
language))
|
||||
(when store
|
||||
(call-with-semaphore
|
||||
@@ -215,6 +216,8 @@
|
||||
(check-false (load-user-language store "hans"))
|
||||
(save-user-language! store "hans" "fr")
|
||||
(check-equal? (load-user-language store "hans") "fr")
|
||||
(save-user-language! store "hans" "fi")
|
||||
(check-equal? (load-user-language store "hans") "fi")
|
||||
(check-exn exn:fail:contract?
|
||||
(λ () (save-user-language! store "hans" "it")))
|
||||
|
||||
|
||||
+138
-3
@@ -134,13 +134,141 @@
|
||||
'channel "canal"
|
||||
'channels "canales"
|
||||
'tray-open "Abrir el agente de RKT Web Player"
|
||||
'quit "Salir")))
|
||||
'quit "Salir")
|
||||
'it
|
||||
(hasheq
|
||||
'app-title "Agente RKT Web Player"
|
||||
'server "Server RKT Web Player"
|
||||
'name "Nome"
|
||||
'application-id "ID applicazione"
|
||||
'playback "Riproduzione"
|
||||
'no-track "Nessuna riproduzione in corso"
|
||||
'no-track-selected "Nessuna traccia selezionata"
|
||||
'save-connect "Salva e connetti"
|
||||
'reconnect "Riconnetti"
|
||||
'connecting "Connessione…"
|
||||
'connected "Connesso"
|
||||
'denied-title "Agente di riproduzione non consentito"
|
||||
'denied-message "Questo agente di riproduzione non è consentito dal server. Aggiungi il seguente ID applicazione a [playback-agents] nel file INI del server:\n\n~a"
|
||||
'unauthorized-status "Non autorizzato — l’ID applicazione non è nel file INI del server"
|
||||
'disconnected "Non connesso: ~a"
|
||||
'playing "In riproduzione"
|
||||
'paused "In pausa"
|
||||
'loading "Caricamento"
|
||||
'stopped "Arrestato"
|
||||
'channel "canale"
|
||||
'channels "canali"
|
||||
'tray-open "Apri l’agente RKT Web Player"
|
||||
'quit "Esci")
|
||||
'sv
|
||||
(hasheq
|
||||
'app-title "RKT Web Player-agent"
|
||||
'server "RKT Web Player-server"
|
||||
'name "Namn"
|
||||
'application-id "Program-ID"
|
||||
'playback "Uppspelning"
|
||||
'no-track "Inget spelas upp"
|
||||
'no-track-selected "Inget spår har valts"
|
||||
'save-connect "Spara och anslut"
|
||||
'reconnect "Anslut igen"
|
||||
'connecting "Ansluter…"
|
||||
'connected "Ansluten"
|
||||
'denied-title "Uppspelningsagenten är inte tillåten"
|
||||
'denied-message "Servern tillåter inte den här uppspelningsagenten. Lägg till följande program-ID under [playback-agents] i serverns INI-fil:\n\n~a"
|
||||
'unauthorized-status "Inte behörig — program-ID saknas i serverns INI-fil"
|
||||
'disconnected "Inte ansluten: ~a"
|
||||
'playing "Spelar"
|
||||
'paused "Pausad"
|
||||
'loading "Läser in"
|
||||
'stopped "Stoppad"
|
||||
'channel "kanal"
|
||||
'channels "kanaler"
|
||||
'tray-open "Öppna RKT Web Player-agenten"
|
||||
'quit "Avsluta")
|
||||
'no
|
||||
(hasheq
|
||||
'app-title "RKT Web Player-agent"
|
||||
'server "RKT Web Player-server"
|
||||
'name "Navn"
|
||||
'application-id "Applikasjons-ID"
|
||||
'playback "Avspilling"
|
||||
'no-track "Ingenting spilles av"
|
||||
'no-track-selected "Ingen spor er valgt"
|
||||
'save-connect "Lagre og koble til"
|
||||
'reconnect "Koble til på nytt"
|
||||
'connecting "Kobler til…"
|
||||
'connected "Tilkoblet"
|
||||
'denied-title "Avspillingsagenten er ikke tillatt"
|
||||
'denied-message "Serveren tillater ikke denne avspillingsagenten. Legg til følgende applikasjons-ID under [playback-agents] i serverens INI-fil:\n\n~a"
|
||||
'unauthorized-status "Ikke autorisert — applikasjons-ID mangler i serverens INI-fil"
|
||||
'disconnected "Ikke tilkoblet: ~a"
|
||||
'playing "Spiller"
|
||||
'paused "På pause"
|
||||
'loading "Laster"
|
||||
'stopped "Stoppet"
|
||||
'channel "kanal"
|
||||
'channels "kanaler"
|
||||
'tray-open "Åpne RKT Web Player-agenten"
|
||||
'quit "Avslutt")
|
||||
'fi
|
||||
(hasheq
|
||||
'app-title "RKT Web Player -agentti"
|
||||
'server "RKT Web Player -palvelin"
|
||||
'name "Nimi"
|
||||
'application-id "Sovellustunnus"
|
||||
'playback "Toisto"
|
||||
'no-track "Mitään ei toisteta"
|
||||
'no-track-selected "Kappaletta ei ole valittu"
|
||||
'save-connect "Tallenna ja yhdistä"
|
||||
'reconnect "Yhdistä uudelleen"
|
||||
'connecting "Yhdistetään…"
|
||||
'connected "Yhdistetty"
|
||||
'denied-title "Toistoagenttia ei sallita"
|
||||
'denied-message "Palvelin ei salli tätä toistoagenttia. Lisää seuraava sovellustunnus palvelimen INI-tiedoston [playback-agents]-osioon:\n\n~a"
|
||||
'unauthorized-status "Ei valtuutettu — sovellustunnus puuttuu palvelimen INI-tiedostosta"
|
||||
'disconnected "Ei yhteyttä: ~a"
|
||||
'playing "Toistetaan"
|
||||
'paused "Keskeytetty"
|
||||
'loading "Ladataan"
|
||||
'stopped "Pysäytetty"
|
||||
'channel "kanava"
|
||||
'channels "kanavaa"
|
||||
'tray-open "Avaa RKT Web Player -agentti"
|
||||
'quit "Lopeta")
|
||||
'is
|
||||
(hasheq
|
||||
'app-title "RKT Web Player-spilari"
|
||||
'server "RKT Web Player-þjónn"
|
||||
'name "Nafn"
|
||||
'application-id "Forritsauðkenni"
|
||||
'playback "Spilun"
|
||||
'no-track "Ekkert er í spilun"
|
||||
'no-track-selected "Ekkert lag valið"
|
||||
'save-connect "Vista og tengjast"
|
||||
'reconnect "Tengjast aftur"
|
||||
'connecting "Tengist…"
|
||||
'connected "Tengt"
|
||||
'denied-title "Spilarinn er ekki leyfður"
|
||||
'denied-message "Þessi spilari er ekki leyfður af þjóninum. Bættu eftirfarandi forritsauðkenni við [playback-agents] í INI-skrá þjónsins:\n\n~a"
|
||||
'unauthorized-status "Ekki heimilað — forritsauðkenni vantar í INI-skrá þjónsins"
|
||||
'disconnected "Ekki tengt: ~a"
|
||||
'playing "Spilar"
|
||||
'paused "Í bið"
|
||||
'loading "Hleður"
|
||||
'stopped "Stöðvað"
|
||||
'channel "rás"
|
||||
'channels "rásir"
|
||||
'tray-open "Opna RKT Web Player-spilarann"
|
||||
'quit "Hætta")))
|
||||
|
||||
(define (system-language)
|
||||
(define language-name
|
||||
(string-downcase (format "~a" (system-language+country))))
|
||||
(define short-name (car (regexp-split #px"[-_]" language-name)))
|
||||
(define candidate (string->symbol short-name))
|
||||
(define candidate
|
||||
(case (string->symbol short-name)
|
||||
((nb nn) 'no)
|
||||
(else (string->symbol short-name))))
|
||||
(if (hash-has-key? translation-map candidate) candidate 'en))
|
||||
|
||||
(define language (system-language))
|
||||
@@ -156,7 +284,12 @@
|
||||
(nl "Nederlands")
|
||||
(de "Deutsch")
|
||||
(fr "Français")
|
||||
(es "Español")))
|
||||
(es "Español")
|
||||
(it "Italiano")
|
||||
(sv "Svenska")
|
||||
(no "Norsk")
|
||||
(fi "Suomi")
|
||||
(is "Íslenska")))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; goal : Select the language used by tr and __.
|
||||
@@ -212,6 +345,8 @@
|
||||
(check-equal? (tr 'connected) "Verbonden")
|
||||
(set-lang! 'de)
|
||||
(check-equal? (__ 'quit) "Beenden")
|
||||
(set-lang! 'is)
|
||||
(check-equal? (tr 'connected) "Tengt")
|
||||
(check-equal? (tr 'unknown-translation) "unknown-translation")
|
||||
(check-exn exn:fail:contract? (λ () (set-lang! 'xx))))
|
||||
(λ () (set-lang! original-language))))
|
||||
|
||||
Reference in New Issue
Block a user