Skip to content

Commit

Permalink
Enable localization (#1892)
Browse files Browse the repository at this point in the history
* Enable dashboard localization

* Enable CTL localization

* Add helper function for UI language

* Add all locales for options view (#1264)

* ignore .vscode

* add require-globify for wildcard bundling

* add all locales for options

Also cleanup i18next init to follow dashboard pattern

* lint

Co-authored-by: ladamski@duckduckgo.com <ladamski@duckduckgo.com>

* Integrate settings locale into build

* Use module export for getArgumentsObject

* Fix test bundling

* Update unit-tests for getArgumentsObject change

* Fix text spacing

* Update extension name and description and add new locales

* Pull full font files.

* Localize feedback form

* Remove tldts import

* Add remaining translations

* Special case for Norwegian locales

* Remove debug flag

* Bump privacy-dashboard to 1.5.1

* Remove non-localized 'Sending...' text on feedback button post-submit

---------

Co-authored-by: Lucas Adamski <ladamski@users.noreply.github.com>
Co-authored-by: ladamski@duckduckgo.com <ladamski@duckduckgo.com>
  • Loading branch information
3 people committed May 12, 2023
1 parent d3c00c5 commit acd028b
Show file tree
Hide file tree
Showing 120 changed files with 4,799 additions and 82 deletions.
2 changes: 1 addition & 1 deletion .gitignore
@@ -1,5 +1,5 @@
.DS_Store
.vscode/
.vscode
*.pem
jshint_log.txt
node_modules
Expand Down
6 changes: 3 additions & 3 deletions Makefile
Expand Up @@ -207,7 +207,7 @@ $(BUILD_DIR)/public/js/background.js: $(WATCHED_FILES)
## Extension UI/Devtools scripts.
$(BUILD_DIR)/public/js/base.js: $(WATCHED_FILES)
mkdir -p `dirname $@`
$(BROWSERIFY) shared/js/ui/base/index.js > $@
$(BROWSERIFY) -t require-globify shared/js/ui/base/index.js > $@

$(BUILD_DIR)/public/js/feedback.js: $(WATCHED_FILES)
$(BROWSERIFY) shared/js/ui/pages/feedback.js > $@
Expand Down Expand Up @@ -237,7 +237,7 @@ build/test/background.js: $(TEST_FILES) $(WATCHED_FILES) | build/test
$(BROWSERIFY) -t brfs -t ./scripts/browserifyFileMapTransform $(UNIT_TEST_SRC) -o $@

build/test/ui.js: $(TEST_FILES) | build/test
$(BROWSERIFY) shared/js/ui/base/index.js unit-test/ui/**/*.js -o $@
$(BROWSERIFY) -t require-globify shared/js/ui/base/index.js unit-test/ui/**/*.js -o $@

build/test/shared-utils.js: $(TEST_FILES) | build/test
$(BROWSERIFY) unit-test/shared-utils/*.js -o $@
Expand Down Expand Up @@ -298,7 +298,7 @@ $(BUILD_DIR)/public/font/%: $(INTERMEDIATES_DIR)/%
# Fetch fonts from the webserver to be included in the generated build
.SECONDARY:
$(INTERMEDIATES_DIR)/%:
curl -s -o $@ https://duckduckgo.com/font/`basename $@`
curl -s -o $@ https://duckduckgo.com/font/all/`basename $@`

## Other

Expand Down
11 changes: 10 additions & 1 deletion browsers/chrome/_locales/ar/messages.json
@@ -1 +1,10 @@
{"appName":{"message":"DuckDuckGo Privacy Essentials"},"appDesc":{"message":"الخصوصية، مبسّطة.***مهمة الأذونات هي حظر المتتبعين المختفين المتربصين في كل مكان.***"}}
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "عنوان الإضافة، المعروض في المتجر الإلكتروني"
},
"appDesc" : {
"message" : "حماية خصوصية بسيطة وسلسة لمتصفحك.",
"description" : "الوصف المختصر للإضافة، المعروض في المتجر الإلكتروني"
}
}
10 changes: 10 additions & 0 deletions browsers/chrome/_locales/bg/messages.json
@@ -0,0 +1,10 @@
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "Заглавието на разширението, показано в уеб магазина"
},
"appDesc" : {
"message" : "Лесна и безпроблемна защита на поверителността за Вашия браузър.",
"description" : "Краткото описание на разширението, показано в уеб магазина"
}
}
11 changes: 10 additions & 1 deletion browsers/chrome/_locales/ca/messages.json
@@ -1 +1,10 @@
{"appName":{"message":"DuckDuckGo Privacy Essentials"},"appDesc":{"message":"Privacitat sense complicacions. ***Els permisos són per bloquejar els rastrejadors amagats a l'aguait per atacar.***"}}
{
"appName" : {
"message" : "Privacy Essentials de DuckDuckGo ",
"description" : "El títol de l'extensió, que es mostra a la botiga web"
},
"appDesc" : {
"message" : "Protecció de la privadesa de manera senzilla i continuada per al teu navegador.",
"description" : "La breu descripció de l'extensió, que es mostra a la botiga web"
}
}
11 changes: 10 additions & 1 deletion browsers/chrome/_locales/cs/messages.json
@@ -1 +1,10 @@
{"appName":{"message":"DuckDuckGo Privacy Essentials"},"appDesc":{"message":"Ochrana soukromí, zjednodušená. ***Oprávnění slouží k zablokování skrytých sledovacích nástrojů, které dnes číhají na každém kroku.***"}}
{
"appName" : {
"message" : "Privacy Essentials – DuckDuckGo",
"description" : "Název rozšíření zobrazený ve webovém obchodě"
},
"appDesc" : {
"message" : "Snadná a bezproblémová ochrana soukromí pro tvůj prohlížeč.",
"description" : "Krátký popis rozšíření zobrazený ve webovém obchodě"
}
}
10 changes: 10 additions & 0 deletions browsers/chrome/_locales/da/messages.json
@@ -0,0 +1,10 @@
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "Titlen på udvidelsen, som den vises i webbutikken"
},
"appDesc" : {
"message" : "Enkel og problemfri beskyttelse af privatlivets fred i din browser.",
"description" : "Den korte beskrivelse af udvidelsen, som den vises i webbutikken"
}
}
11 changes: 10 additions & 1 deletion browsers/chrome/_locales/de/messages.json
@@ -1 +1,10 @@
{"appName":{"message":"DuckDuckGo Privacy Essentials"},"appDesc":{"message":"Datenschutz – leicht gemacht. ***Erlaubnis wird benötigt, um versteckte Tracker zu blockieren, die überall im Netz lauern.***"}}
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "Der Titel der Erweiterung, der im Webshop angezeigt wird"
},
"appDesc" : {
"message" : "Einfacher und nahtlos integrierter Datenschutz für deinen Browser.",
"description" : "Die Kurzbeschreibung der Erweiterung, die im Webshop angezeigt wird"
}
}
11 changes: 10 additions & 1 deletion browsers/chrome/_locales/el/messages.json
@@ -1 +1,10 @@
{"appName":{"message":"DuckDuckGo Privacy Essentials"},"appDesc":{"message":"Ιδιωτικότητα, απλοποιημένη. ***Οι άδειες χρησιμοποιούνται στον αποκλεισμό κρυφών εφαρμογών παρακολούθησης που παραμονεύουν παντού.***"}}
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "Ο τίτλος της επέκτασης, όπως εμφανίζεται στο διαδικτυακό κατάστημα"
},
"appDesc" : {
"message" : "Απλή και απρόσκοπτη προστασία απορρήτου για το πρόγραμμα περιήγησής σας.",
"description" : "Η σύντομη περιγραφή της επέκτασης, όπως εμφανίζεται στο διαδικτυακό κατάστημα"
}
}
11 changes: 10 additions & 1 deletion browsers/chrome/_locales/es/messages.json
@@ -1 +1,10 @@
{"appName":{"message":"DuckDuckGo Privacy Essentials"},"appDesc":{"message":"La privacidad, simplificada. ***Los permisos sirven para bloquear los rastreadores ocultos que acechan en todas partes.***"}}
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "El título de la extensión, que se muestra en la tienda web"
},
"appDesc" : {
"message" : "Protección de privacidad sencilla y sin fisuras para tu navegador.",
"description" : "La breve descripción de la extensión, que se muestra en la tienda web"
}
}
10 changes: 10 additions & 0 deletions browsers/chrome/_locales/et/messages.json
@@ -0,0 +1,10 @@
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "Laienduse nimetus, mis kuvatakse veebipoes"
},
"appDesc" : {
"message" : "Lihtne ja sujuv eraelu puutumatuse kaitse sinu brauserile.",
"description" : "Laienduse lühikirjeldus, mis kuvatakse veebipoes"
}
}
11 changes: 10 additions & 1 deletion browsers/chrome/_locales/fi/messages.json
@@ -1 +1,10 @@
{"appName":{"message":"DuckDuckGo Privacy Essentials"},"appDesc":{"message":"Tietosuojaa, yksinkertaisesti. ***Käyttöoikeuksilla estetään kaikkialla vaanivat seurantaohjelmat.***"}}
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "Laajennuksen nimi, joka näytetään verkkokaupassa"
},
"appDesc" : {
"message" : "Yksinkertainen ja saumaton tietosuoja selaimeesi.",
"description" : "Laajennuksen lyhyt kuvaus, joka näytetään verkkokaupassa"
}
}
11 changes: 10 additions & 1 deletion browsers/chrome/_locales/fr/messages.json
@@ -1 +1,10 @@
{"appName":{"message":"DuckDuckGo Privacy Essentials"},"appDesc":{"message":"Vie privée, simplifiée. Permissions*** pour bloquer les trackers cachés qui rôdent partout.***"}}
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "Le titre de l'extension, affiché dans la boutique en ligne"
},
"appDesc" : {
"message" : "Une solution simple pour naviguer tout en protégeant votre confidentialité.",
"description" : "La brève description de l'extension, affichée dans la boutique en ligne"
}
}
10 changes: 10 additions & 0 deletions browsers/chrome/_locales/hr/messages.json
@@ -0,0 +1,10 @@
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "Naslov proširenja, prikazan u web trgovini"
},
"appDesc" : {
"message" : "Jednostavna i besprijekorna zaštita privatnosti za vaš preglednik.",
"description" : "Kratki opis proširenja, prikazan u web trgovini"
}
}
10 changes: 10 additions & 0 deletions browsers/chrome/_locales/hu/messages.json
@@ -0,0 +1,10 @@
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "A bővítmény webáruházban megjelenített neve"
},
"appDesc" : {
"message" : "Egyszerű és folyamatos adatvédelem a böngésződhöz.",
"description" : "A bővítmény webáruházban megjelenített rövid leírása"
}
}
11 changes: 10 additions & 1 deletion browsers/chrome/_locales/id/messages.json
@@ -1 +1,10 @@
{"appName":{"message":"DuckDuckGo Privacy Essentials"},"appDesc":{"message":"Privasi, disederhanakan. ***Izin adalah untuk memblokir pelacak tersembunyi yang mengintai di mana-mana.***"}}
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "Judul ekstensi, ditampilkan di web store"
},
"appDesc" : {
"message" : "Perlindungan privasi yang sederhana dan mulus untuk browser Anda.",
"description" : "Deskripsi singkat ekstensi, ditampilkan di web store"
}
}
11 changes: 10 additions & 1 deletion browsers/chrome/_locales/it/messages.json
@@ -1 +1,10 @@
{"appName":{"message":"DuckDuckGo Privacy Essentials"},"appDesc":{"message":"La privacy, semplificata. ***I permessi servono a bloccare i tracker nascosti in agguato ovunque.***"}}
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "Titolo dell'estensione, visualizzato nel web store"
},
"appDesc" : {
"message" : "Tutela della privacy semplice e costante per il tuo browser.",
"description" : "Breve descrizione dell'estensione, visualizzata nel web store"
}
}
11 changes: 10 additions & 1 deletion browsers/chrome/_locales/ja/messages.json
@@ -1 +1,10 @@
{"appName":{"message":"DuckDuckGo Privacy Essentials"},"appDesc":{"message":"個人情報保護をシンプルに。***至る所でユーザー追跡を試みる隠しトラッカーをオプションでブロックできます。***"}}
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "ウェブストアに表示される拡張機能名"
},
"appDesc" : {
"message" : "シンプルかつシームレスにプライバシーを保護するブラウザ向け拡張機能。",
"description" : "ウェブストアに表示される拡張機能の簡単な説明"
}
}
11 changes: 10 additions & 1 deletion browsers/chrome/_locales/ko/messages.json
@@ -1 +1,10 @@
{"appName":{"message":"DuckDuckGo Privacy Essentials"},"appDesc":{"message":"개인정보 보호, 간편해지다. ***사용 권한의 목적은 모든 곳에 도사리고 있는 숨은 트래커를 차단하는 것입니다.***"}}
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "웹 스토어에 표시되는 확장 프로그램 제목"
},
"appDesc" : {
"message" : "간단하고 간편한 브라우저용 개인 정보 보호 서비스.",
"description" : "웹 스토어에 표시되는 확장에 대한 간단 설명"
}
}
10 changes: 10 additions & 0 deletions browsers/chrome/_locales/lt/messages.json
@@ -0,0 +1,10 @@
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "Interneto parduotuvėje rodomo plėtinio pavadinimas"
},
"appDesc" : {
"message" : "Paprasta ir sklandi privatumo apsauga jūsų naršyklei.",
"description" : "Trumpas interneto svetainėje rodomo plėtinio aprašymas"
}
}
10 changes: 10 additions & 0 deletions browsers/chrome/_locales/lv/messages.json
@@ -0,0 +1,10 @@
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "Paplašinājuma nosaukums, kas tiek rādīts tīmekļa veikalā"
},
"appDesc" : {
"message" : "Vienkārša un ērta privātuma aizsardzība tavai pārlūkprogrammai.",
"description" : "Īss paplašinājuma apraksts, kas tiek rādīts tīmekļa veikalā"
}
}
10 changes: 10 additions & 0 deletions browsers/chrome/_locales/nb/messages.json
@@ -0,0 +1,10 @@
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "Utvidelsens tittel i nettbutikken"
},
"appDesc" : {
"message" : "Enkelt og sømløst personvern i nettleseren.",
"description" : "Utvidelsens korte beskrivelse i nettbutikken"
}
}
11 changes: 10 additions & 1 deletion browsers/chrome/_locales/nl/messages.json
@@ -1 +1,10 @@
{"appName":{"message":"DuckDuckGo Privacy Essentials"},"appDesc":{"message":"Privacy, vereenvoudigd. ***Permissies zijn voor het blokkeren van verborgen trackers die overal op de loer liggen.***"}}
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "De titel van de extensie, weergegeven in de webwinkel"
},
"appDesc" : {
"message" : "Eenvoudige en naadloze bescherming van je privacy voor in je browser.",
"description" : "De korte beschrijving van de extensie, weergegeven in de webwinkel"
}
}
11 changes: 10 additions & 1 deletion browsers/chrome/_locales/pl/messages.json
@@ -1 +1,10 @@
{"appName":{"message":"DuckDuckGo Privacy Essentials"},"appDesc":{"message":"Prywatność – jeszcze prostsza. ***Zgody spowodują zablokowanie ukrytych narzędzi śledzących, które czają się wszędzie.***"}}
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "Tytuł rozszerzenia wyświetlany w sklepie internetowym"
},
"appDesc" : {
"message" : "Łatwa i bezproblemowa ochrona prywatności w przeglądarce.",
"description" : "Krótki opis rozszerzenia wyświetlany w sklepie internetowym"
}
}
11 changes: 10 additions & 1 deletion browsers/chrome/_locales/pt_PT/messages.json
@@ -1 +1,10 @@
{"appName":{"message":"DuckDuckGo Privacy Essentials"},"appDesc":{"message":"Privacidade, simplificada. ***As permissões são para bloquear rastreadores ocultos, que existem por todo o lado.***"}}
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "O título da extensão, apresentada na loja Web"
},
"appDesc" : {
"message" : "Proteção de privacidade simples e sem falhas para o seu navegador.",
"description" : "A breve descrição da extensão, apresentada na loja Web"
}
}
11 changes: 10 additions & 1 deletion browsers/chrome/_locales/ro/messages.json
@@ -1 +1,10 @@
{"appName":{"message":"DuckDuckGo Privacy Essentials"},"appDesc":{"message":"Confidențialitate simplificată. Protejați-vă datele în timp ce căutați și navigați: blocarea modulelor de urmărire, criptare mai inteligentă, căutare privată și multe altele."}}
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "Titlul extensiei, afișat în magazinul web"
},
"appDesc" : {
"message" : "O protecție simplă, fără sincope, pentru browserul tău.",
"description" : "Scurtă descriere a extensiei, afișată în magazinul web"
}
}
11 changes: 10 additions & 1 deletion browsers/chrome/_locales/ru/messages.json
@@ -1 +1,10 @@
{"appName":{"message":"DuckDuckGo Privacy Essentials"},"appDesc":{"message":"Максимум конфиденциальности, минимум усилий. ***Разрешения позволяют блокировать скрытые трекеры, которые притаились везде.***"}}
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "Название расширения, отображаемое в онлайн-магазине"
},
"appDesc" : {
"message" : "Простая защита конфиденциальности, интегрированная в браузер.",
"description" : "Краткое описание расширения, отображаемое в онлайн-магазине"
}
}
10 changes: 10 additions & 0 deletions browsers/chrome/_locales/sk/messages.json
@@ -0,0 +1,10 @@
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "Názov rozšírenia, ktorý je zobrazený vo webovom obchode"
},
"appDesc" : {
"message" : "Jednoduchá a bezproblémová ochrana súkromia pre váš prehliadač.",
"description" : "Krátky opis rozšírenia, ktorý sa zobrazuje vo webovom obchode"
}
}
10 changes: 10 additions & 0 deletions browsers/chrome/_locales/sl/messages.json
@@ -0,0 +1,10 @@
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "Naslov razširitve, prikazan v spletni trgovini"
},
"appDesc" : {
"message" : "Preprosta in brezhibna zaščita zasebnosti za vaš brskalnik.",
"description" : "Kratek opis razširitve, ki je prikazan v spletni trgovini"
}
}
11 changes: 10 additions & 1 deletion browsers/chrome/_locales/sv/messages.json
@@ -1 +1,10 @@
{"appName":{"message":"DuckDuckGo Privacy Essentials"},"appDesc":{"message":"Integritet, förenklad. ***Tillstånd finns för att blockera dolda följare, som finns överallt.***"}}
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "Tilläggets titel, visas i webbutiken"
},
"appDesc" : {
"message" : "Enkelt och okomplicerat integritetsskydd för din webbläsare.",
"description" : "Kort beskrivning av tillägget, visas i webbutiken"
}
}
11 changes: 10 additions & 1 deletion browsers/chrome/_locales/tr/messages.json
@@ -1 +1,10 @@
{"appName":{"message":"DuckDuckGo Privacy Essentials"},"appDesc":{"message":"Gizlilik, basitleştirildi. ***İzinler, her an her yerden çıkabilecek gizli takip programlarının engellenmesi içindir.***"}}
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "Uzantının web mağazasında görüntülenen başlığı"
},
"appDesc" : {
"message" : "Tarayıcınız için basit ve sorunsuz gizlilik koruması.",
"description" : "Uzantının web mağazasında görüntülenen kısa açıklaması"
}
}
11 changes: 10 additions & 1 deletion browsers/chrome/_locales/zh_CN/messages.json
@@ -1 +1,10 @@
{"appName":{"message":"DuckDuckGo Privacy Essentials"},"appDesc":{"message":"保護私隱、簡化程序。***允許阻截四處潛伏的隱藏追蹤程式。***"}}
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "在网络商店显示的扩展插件标题"
},
"appDesc" : {
"message" : "为浏览器提供简单无缝的隐私保护。",
"description" : "在网络商店显示的扩展插件简短说明"
}
}
10 changes: 10 additions & 0 deletions browsers/chrome/_locales/zh_HK/messages.json
@@ -0,0 +1,10 @@
{
"appName" : {
"message" : "DuckDuckGo Privacy Essentials",
"description" : "在網上商店顯示的擴充功能標題"
},
"appDesc" : {
"message" : "為瀏覽器提供簡單順暢的私隱保護。",
"description" : "在網上商店顯示的擴充功能的簡短描述"
}
}

0 comments on commit acd028b

Please sign in to comment.