From 6a1780864c57d598446eb0c1d4faf7ea238c04d4 Mon Sep 17 00:00:00 2001 From: Jertzukka Date: Sun, 19 Nov 2023 01:31:40 +0200 Subject: Linux/FreeBSD/macOS: Implement language selection settings (#1253) * Implement Language selection into settings Initial commit to create a new tab in PreferencesNotebook for Language selection. By default, if nothing is chosen, it uses the current behaviour of using the language from system environment variables. If another language is chosen from the settings, it is saved into the Configuration.xml and this is used instead. * Fix SetStringSelection() assert issue on macOS * Add header include to fix build * Add current language pack, authors and way to use literal strings * Translations also for FreeBSD * Minimal GTK3 WX build on FreeBSD requires wxGraphicsContext * Get Preferences properly instead of workaround function * Use WrapSizer instead of BoxSizer for author line This forces long author lists to be put on a new line, reducing the need to increase window width. * Update Finnish translation * Borrow translation from IDM_LANGUAGE where it makes sense * Remove colon and thus unneeded function * Simplify Language tab layout * Reintroduce macOS specific fixes to Forms.cpp * cleanup --- Translations/Language.ar.xml | 3 + Translations/Language.be.xml | 3 + Translations/Language.bg.xml | 3 + Translations/Language.ca.xml | 3 + Translations/Language.co.xml | 3 + Translations/Language.cs.xml | 3 + Translations/Language.da.xml | 3 + Translations/Language.de.xml | 3 + Translations/Language.el.xml | 3 + Translations/Language.es.xml | 3 + Translations/Language.et.xml | 3 + Translations/Language.eu.xml | 3 + Translations/Language.fa.xml | 3 + Translations/Language.fi.xml | 43 +- Translations/Language.fr.xml | 3 + Translations/Language.he.xml | 3 + Translations/Language.hu.xml | 3 + Translations/Language.id.xml | 3 + Translations/Language.it.xml | 3 + Translations/Language.ja.xml | 3 + Translations/Language.ka.xml | 3 + Translations/Language.ko.xml | 5 +- Translations/Language.lv.xml | 3 + Translations/Language.my.xml | 3 + Translations/Language.nl.xml | 3 + Translations/Language.nn.xml | 3 + Translations/Language.pl.xml | 3 + Translations/Language.pt-br.xml | 3 + Translations/Language.ro.xml | 3 + Translations/Language.ru.xml | 3 + Translations/Language.sk.xml | 3 + Translations/Language.sl.xml | 3 + Translations/Language.sv.xml | 3 + Translations/Language.th.xml | 3 + Translations/Language.tr.xml | 3 + Translations/Language.uk.xml | 3 + Translations/Language.uz.xml | 3 + Translations/Language.vi.xml | 3 + Translations/Language.zh-cn.xml | 3 + Translations/Language.zh-hk.xml | 3 + Translations/Language.zh-tw.xml | 3 + src/Common/Language.xml | 3 + src/Main/Forms/Forms.cpp | 82 ++- src/Main/Forms/Forms.h | 12 + src/Main/Forms/MainFrame.cpp | 11 + src/Main/Forms/MainFrame.h | 1 + src/Main/Forms/PreferencesDialog.cpp | 56 ++ src/Main/Forms/PreferencesDialog.h | 46 ++ src/Main/Forms/TrueCrypt.fbp | 1044 +++++++++++++++++++++++++--------- src/Main/LanguageStrings.cpp | 7 +- src/Main/Main.make | 2 + src/Main/Resources.cpp | 84 +-- src/Main/UserPreferences.cpp | 4 +- src/Main/UserPreferences.h | 2 + src/Makefile | 2 +- src/Setup/Setup.c | 2 +- 56 files changed, 1193 insertions(+), 330 deletions(-) diff --git a/Translations/Language.ar.xml b/Translations/Language.ar.xml index ebe29554..97d65963 100644 --- a/Translations/Language.ar.xml +++ b/Translations/Language.ar.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + ‮اللغة + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.be.xml b/Translations/Language.be.xml index b6026f32..5599b709 100644 --- a/Translations/Language.be.xml +++ b/Translations/Language.be.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Мова + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.bg.xml b/Translations/Language.bg.xml index 14aceb15..151c5646 100644 --- a/Translations/Language.bg.xml +++ b/Translations/Language.bg.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Език + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.ca.xml b/Translations/Language.ca.xml index d3f53166..a2f3bbdc 100644 --- a/Translations/Language.ca.xml +++ b/Translations/Language.ca.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Idioma + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.co.xml b/Translations/Language.co.xml index c1456048..ac59980c 100644 --- a/Translations/Language.co.xml +++ b/Translations/Language.co.xml @@ -1653,6 +1653,9 @@ Information about Corsican localization: Infurmazione impurtante nant’à l’impiegu d’estensioni di schedariu terze Disattivà a prutezzione di memoria per a cumpatibilità cù l’attrezzi d’accessibilità AVERTIMENTU : A disattivazione di prutezzione di memoria riduce a sicurità d’una manera significativa. Attivà st’ozzione SOLU s’è vo impiegate l’attrezzi d’accessibilità, cum’è i lettori di screnu, per interagisce cù l’interfaccia grafica di VeraCrypt. + Lingua + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.cs.xml b/Translations/Language.cs.xml index f12ff7dd..e7b18a56 100644 --- a/Translations/Language.cs.xml +++ b/Translations/Language.cs.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Jazyk + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.da.xml b/Translations/Language.da.xml index ba5b113f..4c2e039e 100644 --- a/Translations/Language.da.xml +++ b/Translations/Language.da.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Sprog + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.de.xml b/Translations/Language.de.xml index 7e0cfcb9..a45a370c 100644 --- a/Translations/Language.de.xml +++ b/Translations/Language.de.xml @@ -1638,6 +1638,9 @@ Wichtige Informationen zur Verwendung von Dateierweiterungen von Drittanbietern Deaktivieren Sie den Speicherschutz für die Kompatibilität der Eingabehilfen WARNUNG: Die Deaktivierung des Speicherschutzes verringert die Sicherheit erheblich. Aktivieren Sie diese Option NUR, wenn Sie sich bei der Interaktion mit VeraCrypt auf Eingabehilfen wie Sprachausgabe verlassen. + Sprache + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.el.xml b/Translations/Language.el.xml index e1b36cb1..d12bdb3b 100644 --- a/Translations/Language.el.xml +++ b/Translations/Language.el.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Γλώσσα + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.es.xml b/Translations/Language.es.xml index 78fe2479..8ef5881d 100644 --- a/Translations/Language.es.xml +++ b/Translations/Language.es.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Idioma + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.et.xml b/Translations/Language.et.xml index 9a378861..ee18cc61 100644 --- a/Translations/Language.et.xml +++ b/Translations/Language.et.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Keel + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.eu.xml b/Translations/Language.eu.xml index adaa8f75..14d8b7f5 100644 --- a/Translations/Language.eu.xml +++ b/Translations/Language.eu.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Hizkuntza + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.fa.xml b/Translations/Language.fa.xml index 6d7d6ab8..5b5cdeec 100644 --- a/Translations/Language.fa.xml +++ b/Translations/Language.fa.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Language + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.fi.xml b/Translations/Language.fi.xml index 7a0bc1da..0b76806f 100644 --- a/Translations/Language.fi.xml +++ b/Translations/Language.fi.xml @@ -609,7 +609,7 @@ Määrittele otsikkoavaimen johtamisalgoritmi Lisää/poista avaintiedostoja taltiolle(lta) Poista kaikki avaintiedostot taltiolta - Salasana, PIM ja/tai avaintiedosto(t) on onnistuneesti vaihdettu.\n\nTÄRKEÄÄ: Varmista, että luet osuuden 'Changing Passwords and Keyfiles' kappaleesta 'Security Requirements and Precautions' VeraCryptin käyttäjäoppaasta. + Salasana, PIM ja/tai avaintiedosto(t) on onnistuneesti vaihdettu.\n\nTÄRKEÄÄ: Varmista, että olet lukenut osion 'Changing Passwords and Keyfiles' kappaleesta 'Security Requirements and Precautions' VeraCryptin käyttöoppaasta. Tämä taltio on määritetty järjestelmän suosikiksi ja sen PIM on muutettu.\nHaluatko että VeraCryptin päivittää automaattisesti järjestelmän suosikkien kokoonpanoa (järjestelmänvalvojan oikeudet vaaditaan)?\n\nHuomioi, että jos vastaat ei, sinun on päivitettävä järjestelmän suosikit manuaalisesti. TÄRKEÄÄ: Jos et tuhoa VeraCryptin pelastuslevyä, sinun käyttöjärjestelmäosion/aseman salaus on yhä purettavissa vanhalla salasanalla (käynnistämällä VeraCryptin pelastuslevyn ja antamalla vanhan salasanan). Sinun täytyy luoda uusi VeraCryptin pelastuslevy ja sitten tuhota vanha.\n\nHaluatko luoda uuden VeraCryptin pelastuslevyn? Huomioi, että VeraCryptin pelastuslevy käyttää vielä edellistä algoritmia. Jos epäilet että edellinen algoritmi ei ole turvallinen, sinun täytyy luoda ensin uusi VeraCryptin pelastuslevy ja sitten tuhota vanha.\n\nHaluatko luoda uuden VeraCryptin pelastuslevyn? @@ -1066,23 +1066,23 @@ Irrota kaikki VeraCrypt-taltiot VeraCrypt ei onnistunut saamaan järjestelmänvalvojan oikeuksia. Käyttöjärjestelmä evännyt pääsyn.\n\nMahdollinen syy: Käyttöjärjestelmä vaatii luku/kirjoitusoikeudet (tai järjestelmänvalvojan oikeudet) tiettyihin hakemistoihin, tiedostoihin ja laitteisiin, jotta dataa voidaan lukea/kirjoittaa niiltä/niille. Tavallisesti käyttäjä ilman järjestelmänvalvojan oikeuksia voi luoda, lukea ja muokata tiedostoja jotka sijaitsevät hänen Tiedostot-hakemistossa. - Virhe: Asema käyttää sektorikokoa, jota ei ole tuettu.\n\nEi ole tällä hetkellä mahdollista luoda osio-/laiteisännöityjä taltioita sellaisissa asemissa, jotka käyttävät sektoreita, jotka ovat suurempia kuin 4096 tavua. Huomaa kuitenkin, että voit luoda tiedosto-isännöityjä taltioita (sisältää ers) tällaisissa asemissa. + Virhe: Asema käyttää sektorikokoa, joka ei ole tuettu.\n\nOsio-/laiteisännöityjen taltioiden luonti ei ole tällä hetkellä mahdollista levyillä, joiden sektorikoko on suurempi kuin 4096 tavua. Voit kuitenkin luoda tiedostoisännöityjä taltioita (säilöjä) tällaisille levyille. Tällä hetkellä ei ole mahdollista salata järjestelmää, joka on asennettu levylle, joka käyttää muuta sektorikokoa kuin 512 tavua. - VeraCrypt-ohjelman Käynnistyslataaja vaatii vähintään 32 kibitavua vapaata tilaa järjestelmälevyn alusta (VeraCryptin Käynnistyslataaja tallennettava tälle alueelle). Valitettavasti, sinun asemasi eivät täytä tätä ehtoa.\n\nÄlä raportoi tätä VeraCrypt-ohjelman bugina/ongelmana. Ratkaistaksesi tämän ongelman, sinun tarvitsee osioida uudelleen levysi ja jättää ensimmäiset 32 kibitavua levyltä vapaaksi (useimmissa tapauksissa, sinun tarvitsee poistaa ja luoda ensimmäinen osio uudestaan). Suosittelemme, että käytät Microsoft osiointi manager ohjelmaa, joka on saatavana esim. kun asennat Windows järjestelmää. + VeraCryptin käynnistyslataaja vaatii vähintään 32 kibitavua vapaata tilaa järjestelmälevyn alusta (VeraCryptin käynnistyslataajan tulee sijaita tällä alueella). Valitettavasti levysi ei täytä tätä vaatimusta.\n\nÄlä raportoi tätä VeraCryptin bugina/ongelmana. Ratkaistaksesi tämän ongelman, sinun tulee osioida levysi uudelleen ja jättää ensimmäiset 32 kibitavua levyltä vapaaksi (useimmiten, sinun täytyy poistaa ja luoda ensimmäinen osio uudelleen). Suosittelemme, että käytät Microsoftin levynhallintaohjelmistoa osiointiin, joka käytettävissä esim. asentaessasi Windowsia. Ominaisuus ei ole tuettuna nykyiselle käyttöjärjestelmä versiollesi. - VeraCrypt-ohjelma ei tue salattua järjestelmäosio/asema versiota käyttöjärjestelmästä jota nykyisin käytät. - Ennen kuin voit salata järjestelmäosion/aseman Windows Vistassa, sinun täytyy asentaa Service Pack 1 tai uudempi Windows Vista (sellaista Service Pack ei ole asennettuna vielä tähän järjestelmään).\n\nHuomio: Windows Vista Service Pack 1 ratkaisee ongelman joka aiheutui vapaamuistin puutteesta järjestelmän käynnistyksessä. - VeraCrypt-ohjelma ei enää tue järjestelmän osion/aseman salausta Windows Vista:ssa ilman, että Service Pack on asennettuna. Ennen VeraCryptin päivittämistä asenna Service Pack 1 tai jokin uudempi Windows järjestelmä. - Virhe: Tämä ominaisuus vaatii, että VeraCrypt-ohjelma on asennettuna järjestelmään (käytät VeraCrypt-ohjelmaa siirrettävässä tilassa).\n\nOle hyvä ja asenna VeraCrypt-ohjelma ja sitten yritä uudelleen. - VAROITUS: Windows ei ole asennettu samalle asemalle kuin mistä se käynnistetään. Tämä ei ole tuettuna.\n\nSinun tulee jatkaa ainoastaan vain jos olet varma, että Windows on asennettuna asemalle josta se käynnistetään.\n\nHaluatko jatkaa? - VAROITUS: VeraCrypt-ohjelma n Käynnistyslataaja on jo asennettu järjestelmälevylle!\n\nOn mahdollista, että koneen toinen käyttöjärjestelmä on jo salattu.\n\nVAROITUS: SUORITTAMALLA SALAUKSEN NYKYISELLE AJETTAVALLE JÄRJESTELMÄLLE SAATTAA TOINEN JÄRJESTELMÄ(T) MAHDOTTOMAKSI KÄYNNISTÄÄ JA ASIANOMAINEN MAHDOTONTA KÄYTTÄÄ.\n\nOletko varma, että haluat jatkaa? - Alkuperäisen järjestelmälataajan palautus ei onnistunut.\n\nKäytä VeraCryptin Pelastuslevyä ('Korjaa Valinta' > 'Palauta alkuperäinen järjestelmälataaja') tai Windows asennusohjelmalla korvataksesi VeraCryptin käynnistyslataajan Windows järjestelmälataajalla. - Alkuperäinen järjestelmälataaja ei ole talletettu Pelastuslevylle (mahdollinen syy: puuttuva varmuuskopio tiedosto). - Epäonnistunut kirjoitus MBR sektorille.\n\nSinun BIOS saattaa olla asetettu suojatulle MBR sektorille. Tarkista BIOS asetukset (paina F2, Delete, tai Esc, sen jälkeen kun kone on käynnistynyt) MBR/virussuojauksen takia. - VAROITUS: VeraCryptin käynnistyslataimen sormenjäljen tarkistaminen epäonnistui!\nLevyllesi on hyökätty ("Evil Maid" -hyökkäys) joka on nyt saattanut vahingoittua.\n\nTämä varoitus voidaan näyttää myös, jos palautat VeraCryptin käynnistyslataimen käyttämällä Pelastuslevyä joka on tehty eri VeraCrypt-versiolla.\n\nSuosittelemme siua vaihtamaan salasanasi välittömästi, mikä myös palauttaa oikean VeraCrypt-käynnistyslataimen. On suositeltavaa asentaa VeraCrypt-ohjelma uudelleen ja ryhtyä toimenpiteisiin, joilla estetään epäluotettavien yhteyksien pääsyn tähän koneeseen. - Vaadittua versiota VeraCryptin Käynnistyslataajasta ei ole nyt asennettuna. Tämä saattaa estää joitakin tallennettuja asetuksia. - Huomioi: Joissakin tapauksissa, haluat estää henkilöä (vastustaja), että katsoo sinun käynnistävän tietokoneen tietäen, ettet käytä VeraCrypt-ohjelmaa. Yllä oleva vaihtoehto sallii sinua tekemään räätälöity VeraCrypt Käynnistyslataajan ikkunassa. Jos mahdollistat ensimmäisen vaihtoehdon, ei tekstiä näytetä Käynnistyslataajassa (ei edes silloin kuin annat väärän salasanan). Tietokone näyttää "jäätyvän" ennen kuin voit kirjoittaa salasanasi. Lisäksi, muokattu sanoma voidaan näyttää harhaan johtamaan vastustaja. Esimerkiksi, väärennetty virhe sanoma kuten "Puuttuva käyttöjärjestelmä" (mikä tavallisesti näytetään Windows Käynnistyslataajassa jos se ei löydä Windows käynnistys osiota). Tämä on, kuitenkin, tärkeä havaita jos vastustaja voi analysoida kiintolevyn sisältöä, hän voi havaita, että se sisältää VeraCryptin Käynnistyslataajan. - VAROITUS: Pidä mielessäsi, että valitsit tämän valinnan, VeraCryptin Käynnistyslataaja ei näytä mitään tekstejä (ei edes silloin kun annat väärän salasanan). Tietokone näyttää kuin olisi "jäätynyt" (reagoimaton) kun voit kirjoittaa salasanasi (kursori EI liiku eikä tähtimerkkiä näytetä kun painat näppäintä).\n\nOletko varma, että haluat valita tämän valinnan? + VeraCrypt ei tue järjestelmäosion/aseman salausta käyttämälläsi käyttöjärjestelmän versiolla. + Ennen kuin voit salata järjestelmäosion/aseman Windows Vistassa, sinun täytyy asentaa Service Pack 1 tai uudempi Windows Vistalle (tällaista Service Packia ei ole vielä asennettu tähän järjestelmään).\n\nHuomio: Windows Vista Service Pack 1 korjasi ongelman, joka johti vapaan perusmuistin puutteeseen järjestelmän käynnistyksessä. + VeraCrypt ei enää tue järjestelmäosion/aseman salausta Windows Vistalla ilman, että Service Pack on asennettuna. Ennen VeraCryptin päivittämistä, asenna Service Pack 1 tai uudempi Windows Vistalle. + Virhe: Tämä ominaisuus vaatii, että VeraCrypt on asennettuna järjestelmään (käytät VeraCryptiä siirrettävässä tilassa).\n\nAsennathan VeraCryptin ensin ja yrität sitten uudelleen. + VAROITUS: Windows ei näytä olevan asennettuna sille asemalle, josta se käynnistyy. Tätä ei tueta.\n\nSinun tulee jatkaa vain ja ainoastaan jos olet varma, että Windows on asennettuna asemalle josta se käynnistetään.\n\nHaluatko jatkaa? + VAROITUS: VeraCryptin käynnistysohjelma on jo asennettuna järjestelmälevylle!\n\nOn mahdollista, että toinen järjestelmä tietokoneellasi on jo salattu.\n\nVAROITUS: JATKAMALLA TÄLLÄ HETKELLÄ KÄYNNISSÄ OLEVAN JÄRJESTELMÄN SALAUSTA VOIT AIHEUTTAA SEN, ETTÄ TOISET JÄRJESTELMÄT EIVÄT ENÄÄ KÄYNNISTY JA NIIDEN DATAAN KÄSIKSI PÄÄSY EI OLE MAHDOLLISTA.\n\nOletko varma, että haluat jatkaa? + Järjestelmän alkuperäisen käynnistysohjelman palautus ei onnistunut.\n\nKäytä VeraCryptin pelastuslevyä ('Repair Options' > 'Restore original system loader') tai Windowsin asennusohjelmaa korvataksesi VeraCryptin käynnistysohjelman Windowsin käynnistysohjelmalla. + Järjestelmän alkuperäistä käynnistysohjelmaa ei tallenneta pelastuslevylle (mahdollinen syy: puuttuva varmuuskopiotiedosto). + MBR-sektorille kirjoitus epäonnistui.\n\nSinun BIOS on mahdollisesti määritelty suojaamaan MBR sektori. Tarkista BIOS asetuksesi (paina F2, Delete, tai Esc tietokoneen käynnistyessä) MBR/virussuojaus kohdasta. + VAROITUS: VeraCrypt käynnistysohjelman sormenjäljen tarkistaminen epäonnistui!\nLevyäsi on mahdollisesti voitu käpälöidä jonkin hyökkääjän toimesta ("Evil Maid" -hyökkäys).\n\nTämä varoitus voi ilmestyä myös, jos palautat VeraCryptin käynnistysohjelman käyttämällä pelastuslevyä joka on luotu käyttämällä toista VeraCryptin versiota.\n\nSuosittelemme sinua vaihtamaan salasanasi välittömästi, joka myös samalla palauttaa oikean VeraCrypt käynnistysohjelman. On suositeltavaa asentaa VeraCrypt uudelleen ja ryhtyä toimenpiteisiin välttääksesi epäluotettavien tahojen pääsyn tähän laitteeseen. + Vaadittua versiota VeraCryptin käynnistysohjelmasta ei ole tällä hetkellä asennettuna. Tämä saattaa estää joidenkin asetusten tallentamisen. + Huomioi: Joissain tilanteissa voit haluta välttää sen, että jokin henkilö (vastataho) joka seuraa toimiasi, näkee että käytät VeraCryptiä käynnistäessäsi tietokonettasi. Yllä olevat asetukset mahdollistavat VeraCryptin käynnistysohjelman aloitusruudun räätälöinnin. Jos otat ensimmäisen asetuksen käyttöön, mitään tekstiä ei ilmesty käynnistysohjelman ruutuun (ei edes jos syötät väärän salasanan). Tietokone näyttää olevan "jäätynyt" kun voit syöttää salasanasi. Sen lisäksi, räätälöity viesti voidaan määrittää ilmestyvän ruutuun vastatahon harhauttamiseksi. Esimerkkinä väärennetyt virheilmoitukset kuten "Missing operating system" (joka normaalisti näytetään Windowsin käynnistysohjelman toimesta jos Windowsin käynnistysosiota ei löydy). On kuitenkin tärkeätä huomioida, että jos vastataho voi analysoida kiintolevyn sisällön, voivat he huomata levyn sisältävän VeraCryptin käynnistysohjelman. + VAROITUS: Pidä mielessäsi, että valitessasi tämän asetuksen, VeraCryptin käynnistysohjelma ei näytä ruudussa mitään tekstejä (ei edes silloin kun annat väärän salasanan). Tietokone näyttää siltä kuin se olisi "jäätynyt" (ei vastaa) sen aikaa kun voit syöttää salasanasi (kursori EI liiku, eikä tähtimerkkiä näytetä kun painat näppäintä).\n\nOletko varma, että haluat ottaa tämän asetuksen käyttöön? järjestelmäosio/levy on täysin salattu. VeraCrypt-ohjelma ei tue salausta järjestelmälevylle, joka on konvertoitu dynaamiseksi levyksi. Järjestelmälevy sisältää laajennetut (loogiset) osiot.\n\nVoit purkaa koko järjestelmälevyn, joka sisältää laajennetut (loogiset) osiot vain Windows Vistassa ja uudemmissa Windows-versioissa. Windows XP:ssä voit salata koko järjestelmän aseman edellyttäen, että se sisältää vain ensisijaisia osioita.\n\nHuomaa: Voit silti salata järjestelmän osion koko järjestelmän aseman sijasta (ja lisäksi voit luoda osio-isännöidyn VeraCryptin taltion kaikissa aseman ei-järjestelmäosioissa). @@ -1499,7 +1499,7 @@ Ota huomioon, että jo liitettynä olevat taltiot tulee liittää uudelleen ennen kuin ne voivat käyttää tätä asetusta. Tuntematon poikkeus tapahtui. Levytyökalu käynnistetään kun painat 'OK'.\n\nValitse ensin taltiosi Levytyökalussa ja paina 'Tarkista Levy' tai 'Korjaa Levy' nappulaa 'Korjaus' sivulla. - Liitä Kaikki Laitteet + Liitä kaikki laitteet Virhe ladattaessa määritystiedostoa sijainnista Valitse vapaa paikka taltiolle listasta. \n\nHaluatko nähdä tämän ilmoituksen ensi kerralla kun liität vastaavan taltion? @@ -1632,9 +1632,12 @@ Irrotetaan taltio ...\n Laajennetaan tiedostojärjestelmää ...\n Varoitus: Järjestelmäosio, jota yritit liittää, ei ole täysin salattu. Mahdollisen korruptoitumisen tai ei-toivottujen muokkausten estämiseksi, taltio '%s' on liitetty turvallisuustoimenpiteenä Vain luku -tilassa. - Important information on using third-party file extensions - Disable memory protection for Accessibility tools compatibility - WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Tärkeää tietoa kolmansien osapuolten tiedostopäätteistä + Ota muistinsuojaus pois käytöstä helppokäyttötyökalujen yhteensopivuuden takaamiseksi + VAROITUS: Muistinsuojauksen käytöstä poistaminen heikentää tietoturvaa merkittävästi. Ota tämä käyttöön vain, jos olet riippuvainen helppokäyttötyökaluista kuten ruudunlukijoista käyttääksesi VeraCryptin käyttöliittymää. + Kieli + Valitse järjestelmän oletuskieli + Kielenmuutos tulee voimaan vasta VeraCryptin uudelleenkäynnistyksen jälkeen. diff --git a/Translations/Language.fr.xml b/Translations/Language.fr.xml index bbcdf827..eb089919 100644 --- a/Translations/Language.fr.xml +++ b/Translations/Language.fr.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Langue + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.he.xml b/Translations/Language.he.xml index 855aa63c..b72257a2 100644 --- a/Translations/Language.he.xml +++ b/Translations/Language.he.xml @@ -1636,6 +1636,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + שפה + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.hu.xml b/Translations/Language.hu.xml index a6c344b0..215ac4cd 100644 --- a/Translations/Language.hu.xml +++ b/Translations/Language.hu.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Nyelv + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.id.xml b/Translations/Language.id.xml index 255036d5..725204f0 100644 --- a/Translations/Language.id.xml +++ b/Translations/Language.id.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Bahasa + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.it.xml b/Translations/Language.it.xml index 0eff8321..05ff607c 100644 --- a/Translations/Language.it.xml +++ b/Translations/Language.it.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Lingua + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.ja.xml b/Translations/Language.ja.xml index 5ea31345..a4364ad0 100644 --- a/Translations/Language.ja.xml +++ b/Translations/Language.ja.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + 言語 + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.ka.xml b/Translations/Language.ka.xml index ea695225..e5efff3f 100644 --- a/Translations/Language.ka.xml +++ b/Translations/Language.ka.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + ენა + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.ko.xml b/Translations/Language.ko.xml index bd3a1777..bddc61f6 100644 --- a/Translations/Language.ko.xml +++ b/Translations/Language.ko.xml @@ -1523,7 +1523,7 @@ (이 플랫폼의 구성요소로는 지원되지 않습니다).\n 시스템이 오래된 Linux 커널을 사용하고 있습니다.\n\nLinux 커널의 버그로 인해, VeraCrypt 볼륨으로 데이터 작성 중에 시스템이 응답을 중단할 수도 있습니다. 이 문제는 커널을 2.6.24 혹은 더 높은 버전으로 업그레이드하면 해결됩니다. {0} 볼륨이 마운트 해제되었습니다. - + {0} 볼륨이 마운트되었습니다. 메모리 부족. 관리자 권한을 취득하는데에 실패했습니다. {0} 명령어가 {1} 오류를 반환하였습니다. @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + 언어 + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.lv.xml b/Translations/Language.lv.xml index 80c0ec04..aa2f9eb1 100644 --- a/Translations/Language.lv.xml +++ b/Translations/Language.lv.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Valoda + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.my.xml b/Translations/Language.my.xml index 5e605396..633d586e 100644 --- a/Translations/Language.my.xml +++ b/Translations/Language.my.xml @@ -1637,6 +1637,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + ဘာသာစကား + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.nl.xml b/Translations/Language.nl.xml index b1318cb7..c7d00897 100644 --- a/Translations/Language.nl.xml +++ b/Translations/Language.nl.xml @@ -1635,6 +1635,9 @@ Belangrijke informatie over het gebruik van bestandsextensies van derden Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Taal + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.nn.xml b/Translations/Language.nn.xml index e4ccd31b..bbc81916 100644 --- a/Translations/Language.nn.xml +++ b/Translations/Language.nn.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Språk + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.pl.xml b/Translations/Language.pl.xml index 193cb1ec..9c8d33db 100644 --- a/Translations/Language.pl.xml +++ b/Translations/Language.pl.xml @@ -1635,6 +1635,9 @@ Ważne informacje na temat korzystania z rozszerzeń plików innych dostawców Wyłącz ochronę pamięci w celu zapewnienia zgodności z narzędziami ułatwień dostępu OSTRZEŻENIE: Wyłączenie ochrony pamięci znacznie zmniejsza bezpieczeństwo. Włącz tę opcję TYLKO wtedy, gdy korzystasz z narzędzi ułatwień dostępu, takich jak czytniki ekranu, do interakcji z interfejsem użytkownika VeraCrypt. + Język + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.pt-br.xml b/Translations/Language.pt-br.xml index fcefad1f..a8b8fb6a 100644 --- a/Translations/Language.pt-br.xml +++ b/Translations/Language.pt-br.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Idioma + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.ro.xml b/Translations/Language.ro.xml index 312fbc01..04e20aa2 100644 --- a/Translations/Language.ro.xml +++ b/Translations/Language.ro.xml @@ -1635,6 +1635,9 @@ Informații importante despre utilizarea extensiilor de fișiere terță parte Dezactivare protecție memorie pentru compatibilitate unelte de accesibilitate AVERTIZARE: dezactivarea protecției memoriei reduce significant securitatea. Activați această opțiune NUMAI dacă aveți de nevoie de uneltele de accesibilitate, cum ar fi naratoarele, pentru a interacționa cu interfața VeraCrypt. + Limba + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.ru.xml b/Translations/Language.ru.xml index c89699e9..5ea5af6c 100644 --- a/Translations/Language.ru.xml +++ b/Translations/Language.ru.xml @@ -1635,6 +1635,9 @@ ВАЖНО: О сторонних расширениях файлов Отключить защиту памяти для совместимости со специальными возможностями ВНИМАНИЕ: Отключение защиты памяти значительно снижает безопасность. Включайте эту опцию, ТОЛЬКО если вам нужны специальные возможности, такие как экранный диктор, для взаимодействия с интерфейсом VeraCrypt. + Язык + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.sk.xml b/Translations/Language.sk.xml index e2925e9e..d54a098b 100644 --- a/Translations/Language.sk.xml +++ b/Translations/Language.sk.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Jazyk + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.sl.xml b/Translations/Language.sl.xml index ee8d887e..03b9a4a7 100644 --- a/Translations/Language.sl.xml +++ b/Translations/Language.sl.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Jezik + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.sv.xml b/Translations/Language.sv.xml index 955b0738..cbaae47d 100644 --- a/Translations/Language.sv.xml +++ b/Translations/Language.sv.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Språk + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.th.xml b/Translations/Language.th.xml index 87103213..bde49f57 100644 --- a/Translations/Language.th.xml +++ b/Translations/Language.th.xml @@ -1636,6 +1636,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Language + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.tr.xml b/Translations/Language.tr.xml index 2edfb229..e5609f7c 100644 --- a/Translations/Language.tr.xml +++ b/Translations/Language.tr.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Language + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.uk.xml b/Translations/Language.uk.xml index 8c9652d5..b1b011d0 100644 --- a/Translations/Language.uk.xml +++ b/Translations/Language.uk.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Мова + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.uz.xml b/Translations/Language.uz.xml index 530e8987..c4f3ce01 100644 --- a/Translations/Language.uz.xml +++ b/Translations/Language.uz.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Язык + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.vi.xml b/Translations/Language.vi.xml index 63d5611a..d8fa4e01 100644 --- a/Translations/Language.vi.xml +++ b/Translations/Language.vi.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Ngôn ngữ + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.zh-cn.xml b/Translations/Language.zh-cn.xml index 8d0cf378..a67464ee 100644 --- a/Translations/Language.zh-cn.xml +++ b/Translations/Language.zh-cn.xml @@ -1636,6 +1636,9 @@ 有关使用第三方文件扩展名的重要信息 为辅助功能的兼容性禁用内存保护 警告:禁用内存保护会显著降低安全性。仅当您依赖辅助功能工具(如屏幕阅读器)与VeraCrypt的UI交互时,才需启用此选项。 + Language + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.zh-hk.xml b/Translations/Language.zh-hk.xml index 5a994945..40c11a36 100644 --- a/Translations/Language.zh-hk.xml +++ b/Translations/Language.zh-hk.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + 語言 + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/Translations/Language.zh-tw.xml b/Translations/Language.zh-tw.xml index 71544759..949e88b4 100644 --- a/Translations/Language.zh-tw.xml +++ b/Translations/Language.zh-tw.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Language + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/src/Common/Language.xml b/src/Common/Language.xml index 32930193..e3e96a1f 100644 --- a/src/Common/Language.xml +++ b/src/Common/Language.xml @@ -1635,6 +1635,9 @@ Important information on using third-party file extensions Disable memory protection for Accessibility tools compatibility WARNING: Disabling memory protection significantly reduces security. Enable this option ONLY if you rely on Accessibility tools, like Screen Readers, to interact with VeraCrypt's UI. + Language + Select system's default language + For the language change to come into effect, VeraCrypt needs to be restarted. diff --git a/src/Main/Forms/Forms.cpp b/src/Main/Forms/Forms.cpp index 7afad90f..9ffad555 100644 --- a/src/Main/Forms/Forms.cpp +++ b/src/Main/Forms/Forms.cpp @@ -130,6 +130,10 @@ MainFrameBase::MainFrameBase( wxWindow* parent, wxWindowID id, const wxString& t MainMenuBar->Append( ToolsMenu, _("MENU_TOOLS") ); SettingsMenu = new wxMenu(); + wxMenuItem* LanguageMenuItem; + LanguageMenuItem = new wxMenuItem( SettingsMenu, wxID_ANY, wxString( _("IDM_LANGUAGE") ) , wxEmptyString, wxITEM_NORMAL ); + SettingsMenu->Append( LanguageMenuItem ); + HotkeysMenuItem = new wxMenuItem( SettingsMenu, wxID_ANY, wxString( _("IDM_HOTKEY_SETTINGS") ) , wxEmptyString, wxITEM_NORMAL ); SettingsMenu->Append( HotkeysMenuItem ); @@ -434,6 +438,7 @@ MainFrameBase::MainFrameBase( wxWindow* parent, wxWindowID id, const wxString& t ToolsMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnManageSecurityTokenKeyfilesMenuItemSelected ), this, ManageSecurityTokenKeyfilesMenuItem->GetId()); ToolsMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnCloseAllSecurityTokenSessionsMenuItemSelected ), this, CloseAllSecurityTokenSessionsMenuItem->GetId()); ToolsMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnWipeCacheButtonClick ), this, WipeCachedPasswordsMenuItem->GetId()); + SettingsMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnLanguageMenuItemSelected ), this, LanguageMenuItem->GetId()); SettingsMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnHotkeysMenuItemSelected ), this, HotkeysMenuItem->GetId()); SettingsMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnDefaultKeyfilesMenuItemSelected ), this, DefaultKeyfilesMenuItem->GetId()); SettingsMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnDefaultMountParametersMenuItemSelected ), this, DefaultMountParametersMenuItem->GetId()); @@ -444,7 +449,7 @@ MainFrameBase::MainFrameBase( wxWindow* parent, wxWindowID id, const wxString& t #else SettingsMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnPreferencesMenuItemSelected ), this, PreferencesMenuItem->GetId()); HelpMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnUserGuideMenuItemSelected ), this, UserGuideMenuItem->GetId()); -#endif +#endif HelpMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnOnlineHelpMenuItemSelected ), this, OnlineHelpMenuItem->GetId()); HelpMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnBeginnersTutorialMenuItemSelected ), this, BeginnersTutorialMenuItem->GetId()); HelpMenu->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnFaqMenuItemSelected ), this, FaqMenuItem->GetId()); @@ -2250,6 +2255,67 @@ PreferencesDialogBase::PreferencesDialogBase( wxWindow* parent, wxWindowID id, c HotkeysPage->Layout(); bSizer51->Fit( HotkeysPage ); PreferencesNotebook->AddPage( HotkeysPage, _("LINUX_HOTKEYS"), false ); + LanguagesPage = new wxPanel( PreferencesNotebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer170; + bSizer170 = new wxBoxSizer( wxVERTICAL ); + + wxBoxSizer* bSizer171; + bSizer171 = new wxBoxSizer( wxVERTICAL ); + + wxBoxSizer* bSizer173; + bSizer173 = new wxBoxSizer( wxVERTICAL ); + + wxStaticBoxSizer* sbSizer49; + sbSizer49 = new wxStaticBoxSizer( new wxStaticBox( LanguagesPage, wxID_ANY, _("LINUX_LANGUAGE") ), wxVERTICAL ); + + wxBoxSizer* bSizer174; + bSizer174 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText73 = new wxStaticText( sbSizer49->GetStaticBox(), wxID_ANY, _("IDT_ACTIVE_LANG_PACK"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText73->Wrap( -1 ); + bSizer174->Add( m_staticText73, 0, wxLEFT|wxTOP, 5 ); + + m_staticText74 = new wxStaticText( sbSizer49->GetStaticBox(), wxID_ANY, _("CURRENT_LANGUAGE_PACK"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText74->Wrap( -1 ); + bSizer174->Add( m_staticText74, 0, wxLEFT|wxRIGHT|wxTOP, 5 ); + + + sbSizer49->Add( bSizer174, 0, wxBOTTOM, 5 ); + + wxWrapSizer* wSizer1; + wSizer1 = new wxWrapSizer( wxHORIZONTAL, wxWRAPSIZER_DEFAULT_FLAGS ); + + m_staticText72 = new wxStaticText( sbSizer49->GetStaticBox(), wxID_ANY, _("IDT_LANGPACK_AUTHORS"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText72->Wrap( -1 ); + wSizer1->Add( m_staticText72, 0, wxBOTTOM|wxLEFT, 5 ); + + m_staticText71 = new wxStaticText( sbSizer49->GetStaticBox(), wxID_ANY, _("LANGUAGE_TRANSLATORS"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText71->Wrap( -1 ); + wSizer1->Add( m_staticText71, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT, 5 ); + + + sbSizer49->Add( wSizer1, 0, 0, 5 ); + + LanguageListBox = new wxListBox( sbSizer49->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_SINGLE|wxLB_SORT ); + sbSizer49->Add( LanguageListBox, 1, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 ); + + SysDefaultLangButton = new wxButton( sbSizer49->GetStaticBox(), wxID_ANY, _("LINUX_SELECT_SYS_DEFAULT_LANG"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer49->Add( SysDefaultLangButton, 0, wxALIGN_BOTTOM|wxALL|wxEXPAND, 5 ); + + + bSizer173->Add( sbSizer49, 1, wxALL|wxEXPAND, 5 ); + + + bSizer171->Add( bSizer173, 1, wxEXPAND, 5 ); + + + bSizer170->Add( bSizer171, 1, wxALL|wxEXPAND, 5 ); + + + LanguagesPage->SetSizer( bSizer170 ); + LanguagesPage->Layout(); + bSizer170->Fit( LanguagesPage ); + PreferencesNotebook->AddPage( LanguagesPage, _("LINUX_LANGUAGE"), false ); bSizer178->Add( PreferencesNotebook, 1, wxEXPAND | wxALL, 5 ); @@ -2280,6 +2346,7 @@ PreferencesDialogBase::PreferencesDialogBase( wxWindow* parent, wxWindowID id, c // Connect Events this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( PreferencesDialogBase::OnClose ) ); + PreferencesNotebook->Connect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( PreferencesDialogBase::OnPageChanged ), NULL, this ); DismountOnScreenSaverCheckBox->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PreferencesDialogBase::OnDismountOnScreenSaverCheckBoxClick ), NULL, this ); DismountOnPowerSavingCheckBox->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PreferencesDialogBase::OnDismountOnPowerSavingCheckBoxClick ), NULL, this ); ForceAutoDismountCheckBox->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PreferencesDialogBase::OnForceAutoDismountCheckBoxClick ), NULL, this ); @@ -2292,6 +2359,7 @@ PreferencesDialogBase::PreferencesDialogBase( wxWindow* parent, wxWindowID id, c HotkeyListCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( PreferencesDialogBase::OnHotkeyListItemSelected ), NULL, this ); AssignHotkeyButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PreferencesDialogBase::OnAssignHotkeyButtonClick ), NULL, this ); RemoveHotkeyButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PreferencesDialogBase::OnRemoveHotkeyButtonClick ), NULL, this ); + SysDefaultLangButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PreferencesDialogBase::OnSysDefaultLangButtonClick ), NULL, this ); OKButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PreferencesDialogBase::OnOKButtonClick ), NULL, this ); } @@ -2299,6 +2367,7 @@ PreferencesDialogBase::~PreferencesDialogBase() { // Disconnect Events this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( PreferencesDialogBase::OnClose ) ); + PreferencesNotebook->Disconnect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( PreferencesDialogBase::OnPageChanged ), NULL, this ); DismountOnScreenSaverCheckBox->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PreferencesDialogBase::OnDismountOnScreenSaverCheckBoxClick ), NULL, this ); DismountOnPowerSavingCheckBox->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PreferencesDialogBase::OnDismountOnPowerSavingCheckBoxClick ), NULL, this ); ForceAutoDismountCheckBox->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PreferencesDialogBase::OnForceAutoDismountCheckBoxClick ), NULL, this ); @@ -2311,6 +2380,7 @@ PreferencesDialogBase::~PreferencesDialogBase() HotkeyListCtrl->Disconnect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( PreferencesDialogBase::OnHotkeyListItemSelected ), NULL, this ); AssignHotkeyButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PreferencesDialogBase::OnAssignHotkeyButtonClick ), NULL, this ); RemoveHotkeyButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PreferencesDialogBase::OnRemoveHotkeyButtonClick ), NULL, this ); + SysDefaultLangButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PreferencesDialogBase::OnSysDefaultLangButtonClick ), NULL, this ); OKButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PreferencesDialogBase::OnOKButtonClick ), NULL, this ); } @@ -2715,19 +2785,19 @@ KeyfilesPanelBase::KeyfilesPanelBase( wxWindow* parent, wxWindowID id, const wxP bSizer137 = new wxBoxSizer( wxHORIZONTAL ); AddFilesButton = new wxButton( this, wxID_ANY, _("IDC_KEYADD"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizer137->Add( AddFilesButton, 0, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 ); + bSizer137->Add( AddFilesButton, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxTOP, 5 ); AddDirectoryButton = new wxButton( this, wxID_ANY, _("IDC_ADD_KEYFILE_PATH"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizer137->Add( AddDirectoryButton, 0, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 ); + bSizer137->Add( AddDirectoryButton, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxTOP, 5 ); AddSecurityTokenSignatureButton = new wxButton( this, wxID_ANY, _("IDC_TOKEN_FILES_ADD"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizer137->Add( AddSecurityTokenSignatureButton, 0, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 ); + bSizer137->Add( AddSecurityTokenSignatureButton, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxTOP, 5 ); RemoveButton = new wxButton( this, wxID_ANY, _("IDC_KEYREMOVE"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizer137->Add( RemoveButton, 0, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 ); + bSizer137->Add( RemoveButton, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxTOP, 5 ); RemoveAllButton = new wxButton( this, wxID_ANY, _("IDC_KEYREMOVEALL"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizer137->Add( RemoveAllButton, 0, wxEXPAND|wxALL, 5 ); + bSizer137->Add( RemoveAllButton, 0, wxALL|wxEXPAND, 5 ); bSizer21->Add( bSizer137, 0, wxEXPAND, 5 ); diff --git a/src/Main/Forms/Forms.h b/src/Main/Forms/Forms.h index 96a03c79..70a8c230 100644 --- a/src/Main/Forms/Forms.h +++ b/src/Main/Forms/Forms.h @@ -38,6 +38,8 @@ #include #include #include +#include +#include #include #include "international.h" @@ -116,6 +118,7 @@ namespace VeraCrypt virtual void OnManageSecurityTokenKeyfilesMenuItemSelected( wxCommandEvent& event ) { event.Skip(); } virtual void OnCloseAllSecurityTokenSessionsMenuItemSelected( wxCommandEvent& event ) { event.Skip(); } virtual void OnWipeCacheButtonClick( wxCommandEvent& event ) { event.Skip(); } + virtual void OnLanguageMenuItemSelected( wxCommandEvent& event ) { event.Skip(); } virtual void OnHotkeysMenuItemSelected( wxCommandEvent& event ) { event.Skip(); } virtual void OnDefaultKeyfilesMenuItemSelected( wxCommandEvent& event ) { event.Skip(); } virtual void OnDefaultMountParametersMenuItemSelected( wxCommandEvent& event ) { event.Skip(); } @@ -613,11 +616,17 @@ namespace VeraCrypt wxButton* RemoveHotkeyButton; wxCheckBox* BeepAfterHotkeyMountDismountCheckBox; wxCheckBox* DisplayMessageAfterHotkeyDismountCheckBox; + wxStaticText* m_staticText73; + wxStaticText* m_staticText74; + wxStaticText* m_staticText72; + wxStaticText* m_staticText71; + wxButton* SysDefaultLangButton; wxButton* OKButton; wxButton* CancelButton; // Virtual event handlers, override them in your derived class virtual void OnClose( wxCloseEvent& event ) { event.Skip(); } + virtual void OnPageChanged( wxNotebookEvent& event ) { event.Skip(); } virtual void OnDismountOnScreenSaverCheckBoxClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnDismountOnPowerSavingCheckBoxClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnForceAutoDismountCheckBoxClick( wxCommandEvent& event ) { event.Skip(); } @@ -630,6 +639,7 @@ namespace VeraCrypt virtual void OnHotkeyListItemSelected( wxListEvent& event ) { event.Skip(); } virtual void OnAssignHotkeyButtonClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnRemoveHotkeyButtonClick( wxCommandEvent& event ) { event.Skip(); } + virtual void OnSysDefaultLangButtonClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnOKButtonClick( wxCommandEvent& event ) { event.Skip(); } @@ -638,6 +648,8 @@ namespace VeraCrypt wxPanel* DefaultKeyfilesPage; wxPanel* SecurityTokensPage; wxPanel* HotkeysPage; + wxPanel* LanguagesPage; + wxListBox* LanguageListBox; PreferencesDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("IDD_PREFERENCES_DLG"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE ); diff --git a/src/Main/Forms/MainFrame.cpp b/src/Main/Forms/MainFrame.cpp index de1c99a4..07b876ac 100644 --- a/src/Main/Forms/MainFrame.cpp +++ b/src/Main/Forms/MainFrame.cpp @@ -1068,6 +1068,17 @@ namespace VeraCrypt dialog.ShowModal(); } + void MainFrame::OnLanguageMenuItemSelected (wxCommandEvent& event) + { +#ifdef TC_MACOSX + if (Gui->IsInBackgroundMode()) + Gui->SetBackgroundMode (false); +#endif + PreferencesDialog dialog (this); + dialog.SelectPage (dialog.LanguagesPage); + dialog.ShowModal(); + } + void MainFrame::OnLegalNoticesMenuItemSelected (wxCommandEvent& event) { #ifdef TC_MACOSX diff --git a/src/Main/Forms/MainFrame.h b/src/Main/Forms/MainFrame.h index 5372adbb..ab70eae3 100644 --- a/src/Main/Forms/MainFrame.h +++ b/src/Main/Forms/MainFrame.h @@ -128,6 +128,7 @@ namespace VeraCrypt void OnHiddenVolumeProtectionTriggered (shared_ptr protectedVolume); void OnHotkey (wxKeyEvent& event); void OnHotkeysMenuItemSelected (wxCommandEvent& event); + void OnLanguageMenuItemSelected (wxCommandEvent& event); void OnLegalNoticesMenuItemSelected (wxCommandEvent& event); void OnListChanged (); void OnListItemActivated (wxListEvent& event); diff --git a/src/Main/Forms/PreferencesDialog.cpp b/src/Main/Forms/PreferencesDialog.cpp index 91204389..90a668e6 100644 --- a/src/Main/Forms/PreferencesDialog.cpp +++ b/src/Main/Forms/PreferencesDialog.cpp @@ -14,6 +14,9 @@ #include #ifdef TC_WINDOWS #include +#else +#include +#include #endif #include "Common/SecurityToken.h" #include "Main/Main.h" @@ -68,6 +71,30 @@ namespace VeraCrypt } Pkcs5PrfChoice->Select (prfInitialIndex); + // Language for non-Windows +#ifndef TC_WINDOWS +#if defined (TC_MACOSX) + wxDir languagesFolder(StringConverter::ToSingle (Application::GetExecutableDirectory()) + "/../Resources/languages/"); +#else + wxDir languagesFolder("/usr/share/veracrypt/languages/"); +#endif + wxArrayString langArray; + LanguageListBox->Append("System default"); + LanguageListBox->Append("English"); + + size_t langCount; + langCount = wxDir::GetAllFiles(languagesFolder.GetName(), &langArray, wxEmptyString, wxDIR_FILES); + for (size_t i = 0; i < langCount; ++i) { + wxFileName filename(langArray[i]); + wxString langId = filename.GetName().AfterLast('.'); + wxString langNative = langEntries[langId]; + if (!langNative.empty()) { + LanguageListBox->Append(langNative); + } + } +#endif + + // Keyfiles TC_CHECK_BOX_VALIDATOR (UseKeyfiles); @@ -238,6 +265,15 @@ namespace VeraCrypt } } + void PreferencesDialog::OnSysDefaultLangButtonClick (wxCommandEvent& event) + { + // SetStringSelection()'s Assert currently broken in sorted ListBoxes on macOS, workaround: + int itemIndex = LanguageListBox->FindString("System default", true); + if (itemIndex != wxNOT_FOUND) { + LanguageListBox->SetSelection(itemIndex); + } + } + void PreferencesDialog::OnAssignHotkeyButtonClick (wxCommandEvent& event) { #ifdef TC_WINDOWS @@ -355,6 +391,13 @@ namespace VeraCrypt AssignHotkeyButton->Enable (false); } + // Fixes an issue where going through PreferencesNotebook tabs would unintentionally select the first entry + // in the LanguageListBox and thus cause a language change on OKButton press. + void PreferencesDialog::OnPageChanged(wxBookCtrlEvent &event) + { + LanguageListBox->DeselectAll(); + } + void PreferencesDialog::OnOKButtonClick (wxCommandEvent& event) { #ifdef TC_WINDOWS @@ -388,6 +431,19 @@ namespace VeraCrypt bool securityTokenModuleChanged = (Preferences.SecurityTokenModule != wstring (Pkcs11ModulePathTextCtrl->GetValue())); Preferences.SecurityTokenModule = wstring (Pkcs11ModulePathTextCtrl->GetValue()); + if (LanguageListBox->GetSelection() != wxNOT_FOUND) { + wxString langToFind = LanguageListBox->GetString(LanguageListBox->GetSelection()); + for (const auto &each: langEntries) { + if (each.second == langToFind) { + Preferences.Language = each.first; +#ifdef DEBUG + cout << "Lang set to: " << each.first << endl; +#endif + } + } + Gui->ShowInfo (LangString["LINUX_RESTART_FOR_LANGUAGE_CHANGE"]); + } + Gui->SetPreferences (Preferences); try diff --git a/src/Main/Forms/PreferencesDialog.h b/src/Main/Forms/PreferencesDialog.h index 0cd1482a..50e8489e 100644 --- a/src/Main/Forms/PreferencesDialog.h +++ b/src/Main/Forms/PreferencesDialog.h @@ -40,9 +40,11 @@ namespace VeraCrypt void OnNoHardwareCryptoCheckBoxClick (wxCommandEvent& event); void OnNoKernelCryptoCheckBoxClick (wxCommandEvent& event); void OnOKButtonClick (wxCommandEvent& event); + void OnPageChanged (wxBookCtrlEvent& event); void OnPreserveTimestampsCheckBoxClick (wxCommandEvent& event); void OnRemoveHotkeyButtonClick (wxCommandEvent& event); void OnSelectPkcs11ModuleButtonClick (wxCommandEvent& event); + void OnSysDefaultLangButtonClick (wxCommandEvent& event); void OnTimer (); void UpdateHotkeyButtons(); @@ -58,6 +60,50 @@ namespace VeraCrypt UserPreferences Preferences; bool RestoreValidatorBell; HotkeyList UnregisteredHotkeys; + map langEntries = { + {"system", L"System default"}, + {"ar", L"العربية"}, + {"be", L"Беларуская"}, + {"bg", L"Български"}, + {"ca", L"Català"}, + {"co", L"Corsu"}, + {"cs", L"Čeština"}, + {"da", L"Dansk"}, + {"de", L"Deutsch"}, + {"el", L"Ελληνικά"}, + {"en", L"English"}, + {"es", L"Español"}, + {"et", L"Eesti"}, + {"eu", L"Euskara"}, + {"fa", L"فارسي"}, + {"fi", L"Suomi"}, + {"fr", L"Français"}, + {"he", L"עברית"}, + {"hu", L"Magyar"}, + {"id", L"Bahasa Indonesia"}, + {"it", L"Italiano"}, + {"ja", L"日本語"}, + {"ka", L"ქართული"}, + {"ko", L"한국어"}, + {"lv", L"Latviešu"}, + {"nl", L"Nederlands"}, + {"nn", L"Norsk Nynorsk"}, + {"pl", L"Polski"}, + {"ro", L"Română"}, + {"ru", L"Русский"}, + {"pt-br", L"Português-Brasil"}, + {"sk", L"Slovenčina"}, + {"sl", L"Slovenščina"}, + {"sv", L"Svenska"}, + {"th", L"ภาษาไทย"}, + {"tr", L"Türkçe"}, + {"uk", L"Українська"}, + {"uz", L"Ўзбекча"}, + {"vi", L"Tiếng Việt"}, + {"zh-cn", L"简体中文"}, + {"zh-hk", L"繁體中文(香港)"}, + {"zh-tw", L"繁體中文"} + }; }; } diff --git a/src/Main/Forms/TrueCrypt.fbp b/src/Main/Forms/TrueCrypt.fbp index 498b6f83..0b40a99e 100644 --- a/src/Main/Forms/TrueCrypt.fbp +++ b/src/Main/Forms/TrueCrypt.fbp @@ -461,6 +461,20 @@ MENU_SETTINGS SettingsMenu protected + + + 0 + 1 + + wxID_ANY + wxITEM_NORMAL + IDM_LANGUAGE + LanguageMenuItem + none + + + OnLanguageMenuItemSelected + 0 @@ -10864,6 +10878,7 @@ + OnPageChanged LINUX_PREF_TAB_SECURITY @@ -14872,106 +14887,11 @@ - - - - 5 - wxALL|wxEXPAND - 0 - - - bSizer182 - wxHORIZONTAL - none - - 5 - wxEXPAND - 1 - - 0 - protected - 0 - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 0 - - - - - 1 - 0 - 1 - - 1 - - 1 - 0 - - Dock - 0 - Left - 1 - - 1 - - - 0 - 0 - wxID_OK - IDOK - - 0 - - 0 - - - 0 - - 1 - OKButton - 1 - - - protected - 1 - - - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnOKButtonClick - - - - 5 - wxALL - 0 - + + + LINUX_LANGUAGE + 0 + 1 1 1 @@ -14980,34 +14900,25 @@ - 0 - 1 0 1 1 - - 0 0 - Dock 0 Left 1 1 - 0 0 - wxID_CANCEL - IDCANCEL - - 0 + wxID_ANY 0 @@ -15015,147 +14926,754 @@ 0 1 - CancelButton + LanguagesPage 1 - protected + public 1 - - Resizable 1 - - + ; ; forward_declare 0 - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - 0 - wxAUI_MGR_DEFAULT - - wxBOTH - - 1 - 1 - impl_virtual - - - - 0 - wxID_ANY - - - RandomPoolEnrichmentDialogBase - - - wxDEFAULT_DIALOG_STYLE - - IDD_RANDOM_POOL_ENRICHMENT - - 0 - - - - OnMouseMotion - - - MainSizer - wxVERTICAL - protected - - 5 - wxEXPAND|wxALL - 1 - - - bSizer144 - wxVERTICAL - none - - 5 - wxEXPAND - 0 - - - bSizer145 - wxHORIZONTAL - none - - 5 - wxEXPAND - 1 - - 0 - protected - 0 - - - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - IDT_PRF - 0 - - 0 - - - 0 - - 1 - m_staticText49 - 1 - - - none - 1 - - Resizable + wxTAB_TRAVERSAL + + + bSizer170 + wxVERTICAL + none + + 5 + wxALL|wxEXPAND + 1 + + + bSizer171 + wxVERTICAL + none + + 5 + wxEXPAND + 1 + + + bSizer173 + wxVERTICAL + none + + 5 + wxALL|wxEXPAND + 1 + + wxID_ANY + LINUX_LANGUAGE + + sbSizer49 + wxVERTICAL + 1 + none + + 5 + wxBOTTOM + 0 + + + bSizer174 + wxHORIZONTAL + none + + 5 + wxLEFT|wxTOP + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + IDT_ACTIVE_LANG_PACK + 0 + + 0 + + + 0 + + 1 + m_staticText73 + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxLEFT|wxRIGHT|wxTOP + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + CURRENT_LANGUAGE_PACK + 0 + + 0 + + + 0 + + 1 + m_staticText74 + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + + + 5 + + 0 + + wxWRAPSIZER_DEFAULT_FLAGS + + wSizer1 + wxHORIZONTAL + none + + 5 + wxBOTTOM|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + IDT_LANGPACK_AUTHORS + 0 + + 0 + + + 0 + + 1 + m_staticText72 + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + LANGUAGE_TRANSLATORS + 0 + + 0 + + + 0 + + 1 + m_staticText71 + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + + + 5 + wxEXPAND|wxLEFT|wxRIGHT|wxTOP + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + -1,-1 + 1 + LanguageListBox + 1 + + + public + 1 + + Resizable + 1 + + wxLB_SINGLE|wxLB_SORT + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxALIGN_BOTTOM|wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + 0 + + + + + 1 + 0 + 1 + + 1 + + 0 + 0 + + Dock + 0 + Left + 1 + + 1 + + + 0 + 0 + wxID_ANY + LINUX_SELECT_SYS_DEFAULT_LANG + + 0 + + 0 + + + 0 + + 1 + SysDefaultLangButton + 1 + + + protected + 1 + + + + Resizable + 1 + + + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnSysDefaultLangButtonClick + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + + bSizer182 + wxHORIZONTAL + none + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + 0 + + + + + 1 + 0 + 1 + + 1 + + 1 + 0 + + Dock + 0 + Left + 1 + + 1 + + + 0 + 0 + wxID_OK + IDOK + + 0 + + 0 + + + 0 + + 1 + OKButton + 1 + + + protected + 1 + + + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnOKButtonClick + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + 0 + + + + + 1 + 0 + 1 + + 1 + + 0 + 0 + + Dock + 0 + Left + 1 + + 1 + + + 0 + 0 + wxID_CANCEL + IDCANCEL + + 0 + + 0 + + + 0 + + 1 + CancelButton + 1 + + + protected + 1 + + + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + 0 + wxAUI_MGR_DEFAULT + + wxBOTH + + 1 + 1 + impl_virtual + + + + 0 + wxID_ANY + + + RandomPoolEnrichmentDialogBase + + + wxDEFAULT_DIALOG_STYLE + + IDD_RANDOM_POOL_ENRICHMENT + + 0 + + + + OnMouseMotion + + + MainSizer + wxVERTICAL + protected + + 5 + wxEXPAND|wxALL + 1 + + + bSizer144 + wxVERTICAL + none + + 5 + wxEXPAND + 0 + + + bSizer145 + wxHORIZONTAL + none + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + IDT_PRF + 0 + + 0 + + + 0 + + 1 + m_staticText49 + 1 + + + none + 1 + + Resizable 1 @@ -17270,7 +17788,7 @@ none 5 - wxEXPAND|wxTOP|wxBOTTOM|wxLEFT + wxBOTTOM|wxEXPAND|wxLEFT|wxTOP 0 1 @@ -17344,7 +17862,7 @@ 5 - wxEXPAND|wxTOP|wxBOTTOM|wxLEFT + wxBOTTOM|wxEXPAND|wxLEFT|wxTOP 0 1 @@ -17418,7 +17936,7 @@ 5 - wxEXPAND|wxTOP|wxBOTTOM|wxLEFT + wxBOTTOM|wxEXPAND|wxLEFT|wxTOP 0 1 @@ -17492,7 +18010,7 @@ 5 - wxEXPAND|wxTOP|wxBOTTOM|wxLEFT + wxBOTTOM|wxEXPAND|wxLEFT|wxTOP 0 1 @@ -17566,7 +18084,7 @@ 5 - wxEXPAND|wxALL + wxALL|wxEXPAND 0 1 @@ -22209,44 +22727,44 @@ wxTAB_TRAVERSAL - + bSizer98 wxVERTICAL none - + 5 wxEXPAND 0 - + bSizer99 wxVERTICAL none - + 5 wxEXPAND|wxTOP|wxBOTTOM 0 - + 0 protected 0 - + 5 wxEXPAND 0 - + bSizer100 wxHORIZONTAL none - + 5 wxALL 0 - + 1 1 1 @@ -22307,11 +22825,11 @@ OnVolumeSizeTextChanged - + 5 wxALL 0 - + 1 1 1 @@ -22374,17 +22892,17 @@ - + 5 wxEXPAND|wxTOP|wxBOTTOM 0 - + 0 protected 0 - + 5 wxALL|wxEXPAND 0 @@ -22463,7 +22981,7 @@ 5 wxALL|wxEXPAND 0 - + 1 1 1 @@ -22520,21 +23038,21 @@ -1 - + 5 wxEXPAND|wxTOP|wxBOTTOM 0 - + 0 protected 0 - + 5 wxALL|wxEXPAND 0 - + 1 1 1 diff --git a/src/Main/LanguageStrings.cpp b/src/Main/LanguageStrings.cpp index 71914ec7..0e13ebc7 100644 --- a/src/Main/LanguageStrings.cpp +++ b/src/Main/LanguageStrings.cpp @@ -56,12 +56,17 @@ namespace VeraCrypt Map[StringConverter::ToSingle (wstring (node.Attributes[L"key"]))] = text; } - foreach (XmlNode node, XmlParser (Resources::GetLanguageXml()).GetNodes (L"entry")) + string translatedXml = Resources::GetLanguageXml(); + foreach (XmlNode node, XmlParser (translatedXml).GetNodes (L"entry")) { wxString text = node.InnerText; text.Replace (L"\\n", L"\n"); Map[StringConverter::ToSingle (wstring (node.Attributes[L"key"]))] = text; } + + XmlNode node = XmlParser (translatedXml).GetNodes (L"language").front(); + Map["LANGUAGE_TRANSLATORS"] = wxString (node.Attributes[L"translators"]); + Map["CURRENT_LANGUAGE_PACK"] = wxString (node.Attributes[L"name"]); } LanguageStrings LangString; diff --git a/src/Main/Main.make b/src/Main/Main.make index 90b8b126..dd85f842 100755 --- a/src/Main/Main.make +++ b/src/Main/Main.make @@ -310,6 +310,8 @@ prepare: $(APPNAME) chmod +x $(BASE_DIR)/Setup/FreeBSD/usr/bin/$(APPNAME)-uninstall.sh cp $(BASE_DIR)/License.txt $(BASE_DIR)/Setup/FreeBSD/usr/share/doc/$(APPNAME)/License.txt cp -R $(BASE_DIR)/../doc/html/* "$(BASE_DIR)/Setup/FreeBSD/usr/share/doc/$(APPNAME)/HTML" + mkdir -p $(BASE_DIR)/Setup/FreeBSD/usr/share/veracrypt/languages + cp -r $(BASE_DIR)/../Translations/* $(BASE_DIR)/Setup/FreeBSD/usr/share/veracrypt/languages/ ifndef TC_NO_GUI mkdir -p $(BASE_DIR)/Setup/FreeBSD/usr/share/applications diff --git a/src/Main/Resources.cpp b/src/Main/Resources.cpp index 58030c1e..d8bab977 100644 --- a/src/Main/Resources.cpp +++ b/src/Main/Resources.cpp @@ -23,6 +23,7 @@ #include "Platform/File.h" #include "Platform/StringConverter.h" #include +#include "UserPreferences.h" #endif namespace VeraCrypt @@ -46,7 +47,6 @@ namespace VeraCrypt } #endif // TC_WINDOWS - string Resources::GetLanguageXml () { #ifdef TC_WINDOWS @@ -68,53 +68,65 @@ namespace VeraCrypt #endif string filenamePost(".xml"); string filename = filenamePrefix + defaultLang + filenamePost; - if(const char* env_p = getenv("LANG")){ - string lang(env_p); + + UserPreferences Preferences; + Preferences.Load(); + wstring preferredLang = Preferences.Language; #ifdef DEBUG - std::cout << lang << std::endl; + std::cout << "Config language: " << preferredLang << std::endl; #endif - if ( lang.size() > 1 ){ - int found = lang.find("."); - if ( found > 1 ){ - string langTag = lang.substr (0,found); - string lowerLangTag(StringConverter::ToLower (langTag) ); - int foundUnderscore = lowerLangTag.find("_"); - if ( foundUnderscore > 0 ) { - lowerLangTag.replace(foundUnderscore,1,1,'-'); - filename = filenamePrefix + lowerLangTag + filenamePost; - FilesystemPath xml(filename); - if (! xml.IsFile()){ - string shortLangTag = lowerLangTag.substr(0,foundUnderscore); - filename = filenamePrefix + shortLangTag + filenamePost; + + if (preferredLang == L"system") { + if (const char *env_p = getenv("LANG")) { + string lang(env_p); +#ifdef DEBUG + std::cout << "env $LANG: " << lang << std::endl; +#endif + if (lang.size() > 1) { + int found = lang.find("."); + if (found > 1) { + string langTag = lang.substr(0, found); + string lowerLangTag(StringConverter::ToLower(langTag)); + int foundUnderscore = lowerLangTag.find("_"); + if (foundUnderscore > 0) { + lowerLangTag.replace(foundUnderscore, 1, 1, '-'); + filename = filenamePrefix + lowerLangTag + filenamePost; FilesystemPath xml(filename); - if (! xml.IsFile()){ + if (!xml.IsFile()) { + string shortLangTag = lowerLangTag.substr(0, foundUnderscore); + filename = filenamePrefix + shortLangTag + filenamePost; + FilesystemPath xml(filename); + if (!xml.IsFile()) { + filename = filenamePrefix + defaultLang + filenamePost; + } + } + } else { + filename = filenamePrefix + langTag + filenamePost; + FilesystemPath xml(filename); + if (!xml.IsFile()) { filename = filenamePrefix + defaultLang + filenamePost; } } - }else{ - filename = filenamePrefix + langTag + filenamePost; + } else { + string lowerLang(StringConverter::ToLower(lang)); + filename = filenamePrefix + lowerLang + filenamePost; FilesystemPath xml(filename); - if (! xml.IsFile()){ - filename = filenamePrefix + defaultLang + filenamePost; - } - } - }else{ - string lowerLang(StringConverter::ToLower (lang) ); - filename = filenamePrefix + lowerLang + filenamePost; - FilesystemPath xml(filename); - if (! xml.IsFile()){ - int foundUnderscore = lowerLang.find("_"); - if ( foundUnderscore > 0 ) { - lowerLang.replace(foundUnderscore,1,1,'-'); - filename = filenamePrefix + lowerLang + filenamePost; - FilesystemPath xml(filename); - if (! xml.IsFile()){ - filename = filenamePrefix + defaultLang + filenamePost; + if (!xml.IsFile()) { + int foundUnderscore = lowerLang.find("_"); + if (foundUnderscore > 0) { + lowerLang.replace(foundUnderscore, 1, 1, '-'); + filename = filenamePrefix + lowerLang + filenamePost; + FilesystemPath xml(filename); + if (!xml.IsFile()) { + filename = filenamePrefix + defaultLang + filenamePost; + } } } } } } + } else { + filename = filenamePrefix + preferredLang + filenamePost; } FilesystemPath xml(filename); if ( xml.IsFile() ){ diff --git a/src/Main/UserPreferences.cpp b/src/Main/UserPreferences.cpp index b5a1f42c..194cb6df 100644 --- a/src/Main/UserPreferences.cpp +++ b/src/Main/UserPreferences.cpp @@ -92,6 +92,7 @@ namespace VeraCrypt TC_CONFIG_SET (BackgroundTaskEnabled); if (configMap.count(L"FilesystemOptions") > 0) { SetValue (configMap[L"FilesystemOptions"], DefaultMountOptions.FilesystemOptions); configMap.erase (L"FilesystemOptions"); } TC_CONFIG_SET (ForceAutoDismount); + TC_CONFIG_SET (Language); TC_CONFIG_SET (LastSelectedSlotNumber); TC_CONFIG_SET (MaxVolumeIdleTime); TC_CONFIG_SET (MountDevicesOnLogon); @@ -214,6 +215,7 @@ namespace VeraCrypt TC_CONFIG_ADD (BackgroundTaskEnabled); formatter.AddEntry (L"FilesystemOptions", DefaultMountOptions.FilesystemOptions); TC_CONFIG_ADD (ForceAutoDismount); + TC_CONFIG_ADD (Language); TC_CONFIG_ADD (LastSelectedSlotNumber); TC_CONFIG_ADD (MaxVolumeIdleTime); TC_CONFIG_ADD (MountDevicesOnLogon); @@ -240,7 +242,7 @@ namespace VeraCrypt for (map::const_iterator it = UnknownConfigMapEntries.begin(); it != UnknownConfigMapEntries.end(); ++it) { formatter.AddEntry(it->first.c_str(), it->second); - } + } XmlWriter writer (Application::GetConfigFilePath (GetPreferencesFileName(), true)); writer.WriteNode (formatter.XmlConfig); diff --git a/src/Main/UserPreferences.h b/src/Main/UserPreferences.h index 3f60b533..25621656 100644 --- a/src/Main/UserPreferences.h +++ b/src/Main/UserPreferences.h @@ -39,6 +39,7 @@ namespace VeraCrypt DismountOnScreenSaver (false), DisplayMessageAfterHotkeyDismount (false), ForceAutoDismount (true), + Language (L"system"), LastSelectedSlotNumber (0), MaxVolumeIdleTime (60), MountDevicesOnLogon (false), @@ -81,6 +82,7 @@ namespace VeraCrypt bool DismountOnScreenSaver; bool DisplayMessageAfterHotkeyDismount; bool ForceAutoDismount; + wstring Language; uint64 LastSelectedSlotNumber; int32 MaxVolumeIdleTime; bool MountDevicesOnLogon; diff --git a/src/Makefile b/src/Makefile index e8fb1e19..23ff8c48 100644 --- a/src/Makefile +++ b/src/Makefile @@ -507,7 +507,7 @@ WX_CONFIGURE_FLAGS += --disable-protocol --disable-protocols --disable-url --dis --disable-gif --disable-pcx --disable-tga --disable-iff --disable-gif --disable-pnm --disable-svg \ --without-expat --without-libtiff --without-libjpeg --without-libpng -without-regex --without-zlib -ifeq "$(PLATFORM)" "Linux" +ifneq (,$(filter Linux FreeBSD,$(PLATFORM))) WX_CONFIGURE_FLAGS += --disable-tooltips ifneq "$(origin WITHGTK3)" "command line" WX_CONFIGURE_FLAGS += --disable-graphics_ctx diff --git a/src/Setup/Setup.c b/src/Setup/Setup.c index fe25a412..6edc0ea9 100644 --- a/src/Setup/Setup.c +++ b/src/Setup/Setup.c @@ -2593,7 +2593,7 @@ static tLanguageEntry g_languagesEntries[] = { {L"Ўзбекча", IDR_LANG_UZ, LANG_UZBEK, "uz", NULL}, {L"Tiếng Việt", IDR_LANG_VI, LANG_VIETNAMESE, "vi", NULL}, {L"简体中文", IDR_LANG_ZHCN, LANG_CHINESE, "zh-cn", L"zh-CN"}, - {L"繁體中文", IDR_LANG_ZHHK, LANG_CHINESE, "zh-hk", L"zh-HK"}, + {L"繁體中文(香港)", IDR_LANG_ZHHK, LANG_CHINESE, "zh-hk", L"zh-HK"}, {L"繁體中文", IDR_LANG_ZHTW, LANG_CHINESE, "zh-tw", L"zh-TW"}, }; -- cgit v1.2.3