From 06eba57358eedc30cd7e26e95d720c8f21540180 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Machulda?= Date: Tue, 26 Mar 2024 11:32:51 +0100 Subject: [PATCH] Feat: Add Estonian (et) translation --- README.md | 3 +- examples/languages.html | 4 + src/LmcCookieConsentManager.ts | 2 + .../__snapshots__/langConfig.test.ts.snap | 302 ++++++++++++++++++ src/languages/__tests__/langConfig.test.ts | 2 + src/languages/et.ts | 106 ++++++ 6 files changed, 417 insertions(+), 2 deletions(-) create mode 100644 src/languages/et.ts diff --git a/README.md b/README.md index 540e0881..e0c3292c 100644 --- a/README.md +++ b/README.md @@ -295,8 +295,7 @@ initLmcCookieConsentManager( // when loaded as a module, these options are passe ### Supported languages Translation of the user interface is provided in the following languages: -Czech (`cs`), German (`de`), English (`en`), Croatian (`hr`), Hungarian (`hu`), Polish (`pl`), Russian (`ru`), -Slovak (`sk`), Slovenian (`sl`) and Ukrainian (`uk`). +Czech (`cs`), German (`de`), English (`en`), Estonian (`et`), Croatian (`hr`), Hungarian (`hu`), Polish (`pl`), Russian (`ru`), Slovak (`sk`), Slovenian (`sl`) and Ukrainian (`uk`). [👀 See example of each language version][examples-languages] diff --git a/examples/languages.html b/examples/languages.html index e02f991c..802febd6 100644 --- a/examples/languages.html +++ b/examples/languages.html @@ -110,6 +110,10 @@

Select language

+
+ + +
diff --git a/src/LmcCookieConsentManager.ts b/src/LmcCookieConsentManager.ts index b3e1a1b8..fedb55ed 100644 --- a/src/LmcCookieConsentManager.ts +++ b/src/LmcCookieConsentManager.ts @@ -3,6 +3,7 @@ import { nanoid } from 'nanoid'; import { config as configCs } from './languages/cs'; import { config as configDe } from './languages/de'; import { config as configEn } from './languages/en'; +import { config as configEt } from './languages/et'; import { config as configHr } from './languages/hr'; import { config as configHu } from './languages/hu'; import { config as configPl } from './languages/pl'; @@ -91,6 +92,7 @@ const LmcCookieConsentManager: CookieConsentManager = (serviceName, args) => { cs: configCs, de: configDe, en: configEn, + et: configEt, hr: configHr, hu: configHu, pl: configPl, diff --git a/src/languages/__tests__/__snapshots__/langConfig.test.ts.snap b/src/languages/__tests__/__snapshots__/langConfig.test.ts.snap index a42a753f..fe5966fe 100644 --- a/src/languages/__tests__/__snapshots__/langConfig.test.ts.snap +++ b/src/languages/__tests__/__snapshots__/langConfig.test.ts.snap @@ -903,6 +903,308 @@ For more information about what cookies are and how we work with them, see our } `; +exports[`config et should return localization object for acceptNecessary button mode 1`] = ` +{ + "consent_modal": { + "description": " +

Kui mõistame paremini, mis sind huvitab, näitame sulle asjakohasemat sisu.

+

+ Klõpsates nuppu „Nõustun kõigiga“, annate + ettevõtetele + test1, test2 ning test3 + nõusoleku kasutada küpsiseid isikupärastamiseks, analüüsiks ja sihitud turunduseks. + Küpsiste kasutamist saad kohandada oma kohandatud seadetes. +

", + "primary_btn": { + "role": "accept_all", + "text": "Nõustun kõigiga", + }, + "secondary_btn": { + "role": "accept_necessary", + "text": "Nõustun tarvilikega", + }, + "title": "Küpsised muudavad meie veebilehe kasutamise veelgi paremaks", + }, + "settings_modal": { + "accept_all_btn": "Nõustun kõigiga", + "blocks": [ + { + "description": "Kui soovid meie veebilehest maksimumi võtta, on kõige parem nõustuda kõigi küpsistega. +Lisateavet selle kohta, mis on küpsised ja kuidas me nendega töötame, leiate lehelt + Privaatsuspoliitika.", + }, + { + "description": "Need küpsised on meie veebilehe nõuetekohaseks toimimiseks hädavajalikud ja seetõttu ei saa neid keelata. Ilma nendeta poleks võimalik näiteks teatud sisu kuvamine või meie veebilehele sisse logimine.", + "title": "Tehniliselt vajalikud küpsised", + "toggle": { + "enabled": true, + "readonly": true, + "value": "necessary", + }, + }, + { + "description": "Need aitavad meil jälgida kui palju inimesi meie veebilehte külastab ja kuidas nad seda kasutavad. See teave võimaldab meil veebilehte ja muid teenuseid pidevalt täiustada.", + "title": "Analüütilised küpsised", + "toggle": { + "enabled": false, + "readonly": false, + "value": "analytics", + }, + }, + { + "description": "Meie veebileht on veelgi tõhusam ja töötab paremini tänu nendele küpsistele.", + "title": "Funktsionaalsed küpsised", + "toggle": { + "enabled": false, + "readonly": false, + "value": "functionality", + }, + }, + { + "description": "Need küpsised aitavad meil mõõta meie reklaamide ja suunatud teenusepakkumiste tõhusust. Turundusküpsised võimaldavad ka meil sulle internetist informatsiooni leida, mis võib sinu jaoks asjakohane ja huvipakkuv olla.", + "title": "Turundusküpsised", + "toggle": { + "enabled": false, + "readonly": false, + "value": "ad", + }, + }, + { + "description": "Meie teenused toimivad paremini, kui suudame neid konkreetsetele kasutajatele kohandada. Isikupärastamise küpsiste lubamisega suurendad oma võimalusi soovitud sisu leida.", + "title": "Isikupärastamise küpsised", + "toggle": { + "enabled": false, + "readonly": false, + "value": "personalization", + }, + }, + ], + "cookie_table_headers": [ + { + "name": "Nimetus", + }, + { + "description": "Kirjeldus", + }, + { + "expiration": "Aegumine", + }, + ], + "reject_all_btn": "Nõustun tarvilikega", + "save_settings_btn": "Salvesta sätted", + "title": "Kohandatud küpsiste seaded", + }, +} +`; + +exports[`config et should return localization object for showSettings button mode 1`] = ` +{ + "consent_modal": { + "description": " +

Kui mõistame paremini, mis sind huvitab, näitame sulle asjakohasemat sisu.

+

+ Klõpsates nuppu „Nõustun kõigiga“, annate + ettevõtetele + test1, test2 ning test3 + nõusoleku kasutada küpsiseid isikupärastamiseks, analüüsiks ja sihitud turunduseks. + +

", + "primary_btn": { + "role": "accept_all", + "text": "Nõustun kõigiga", + }, + "secondary_btn": { + "role": "settings", + "text": "Kohandatud seaded", + }, + "title": "Küpsised muudavad meie veebilehe kasutamise veelgi paremaks", + }, + "settings_modal": { + "accept_all_btn": "Nõustun kõigiga", + "blocks": [ + { + "description": "Kui soovid meie veebilehest maksimumi võtta, on kõige parem nõustuda kõigi küpsistega. +Lisateavet selle kohta, mis on küpsised ja kuidas me nendega töötame, leiate lehelt + Privaatsuspoliitika.", + }, + { + "description": "Need küpsised on meie veebilehe nõuetekohaseks toimimiseks hädavajalikud ja seetõttu ei saa neid keelata. Ilma nendeta poleks võimalik näiteks teatud sisu kuvamine või meie veebilehele sisse logimine.", + "title": "Tehniliselt vajalikud küpsised", + "toggle": { + "enabled": true, + "readonly": true, + "value": "necessary", + }, + }, + { + "description": "Need aitavad meil jälgida kui palju inimesi meie veebilehte külastab ja kuidas nad seda kasutavad. See teave võimaldab meil veebilehte ja muid teenuseid pidevalt täiustada.", + "title": "Analüütilised küpsised", + "toggle": { + "enabled": false, + "readonly": false, + "value": "analytics", + }, + }, + { + "description": "Meie veebileht on veelgi tõhusam ja töötab paremini tänu nendele küpsistele.", + "title": "Funktsionaalsed küpsised", + "toggle": { + "enabled": false, + "readonly": false, + "value": "functionality", + }, + }, + { + "description": "Need küpsised aitavad meil mõõta meie reklaamide ja suunatud teenusepakkumiste tõhusust. Turundusküpsised võimaldavad ka meil sulle internetist informatsiooni leida, mis võib sinu jaoks asjakohane ja huvipakkuv olla.", + "title": "Turundusküpsised", + "toggle": { + "enabled": false, + "readonly": false, + "value": "ad", + }, + }, + { + "description": "Meie teenused toimivad paremini, kui suudame neid konkreetsetele kasutajatele kohandada. Isikupärastamise küpsiste lubamisega suurendad oma võimalusi soovitud sisu leida.", + "title": "Isikupärastamise küpsised", + "toggle": { + "enabled": false, + "readonly": false, + "value": "personalization", + }, + }, + ], + "cookie_table_headers": [ + { + "name": "Nimetus", + }, + { + "description": "Kirjeldus", + }, + { + "expiration": "Aegumine", + }, + ], + "reject_all_btn": "Nõustun tarvilikega", + "save_settings_btn": "Salvesta sätted", + "title": "Kohandatud küpsiste seaded", + }, +} +`; + +exports[`config et should return localization object with cookie table 1`] = ` +{ + "consent_modal": { + "description": " +

Kui mõistame paremini, mis sind huvitab, näitame sulle asjakohasemat sisu.

+

+ Klõpsates nuppu „Nõustun kõigiga“, annate + ettevõttele + Alma Career ja teistele selle ärigrupi ettevõtetele + nõusoleku kasutada küpsiseid isikupärastamiseks, analüüsiks ja sihitud turunduseks. + +

", + "primary_btn": { + "role": "accept_all", + "text": "Nõustun kõigiga", + }, + "secondary_btn": { + "role": "settings", + "text": "Kohandatud seaded", + }, + "title": "Küpsised muudavad meie veebilehe kasutamise veelgi paremaks", + }, + "settings_modal": { + "accept_all_btn": "Nõustun kõigiga", + "blocks": [ + { + "description": "Kui soovid meie veebilehest maksimumi võtta, on kõige parem nõustuda kõigi küpsistega. +Lisateavet selle kohta, mis on küpsised ja kuidas me nendega töötame, leiate lehelt + Privaatsuspoliitika.", + }, + { + "cookie_table": [ + { + "description": "Google Analytics description ...", + "expiration": "1 year", + "is_regex": true, + "name": "^_ga", + }, + { + "description": "Foo description", + "expiration": "end of session", + "name": "foo", + }, + ], + "description": "Need küpsised on meie veebilehe nõuetekohaseks toimimiseks hädavajalikud ja seetõttu ei saa neid keelata. Ilma nendeta poleks võimalik näiteks teatud sisu kuvamine või meie veebilehele sisse logimine.", + "title": "Tehniliselt vajalikud küpsised", + "toggle": { + "enabled": true, + "readonly": true, + "value": "necessary", + }, + }, + { + "description": "Need aitavad meil jälgida kui palju inimesi meie veebilehte külastab ja kuidas nad seda kasutavad. See teave võimaldab meil veebilehte ja muid teenuseid pidevalt täiustada.", + "title": "Analüütilised küpsised", + "toggle": { + "enabled": false, + "readonly": false, + "value": "analytics", + }, + }, + { + "description": "Meie veebileht on veelgi tõhusam ja töötab paremini tänu nendele küpsistele.", + "title": "Funktsionaalsed küpsised", + "toggle": { + "enabled": false, + "readonly": false, + "value": "functionality", + }, + }, + { + "description": "Need küpsised aitavad meil mõõta meie reklaamide ja suunatud teenusepakkumiste tõhusust. Turundusküpsised võimaldavad ka meil sulle internetist informatsiooni leida, mis võib sinu jaoks asjakohane ja huvipakkuv olla.", + "title": "Turundusküpsised", + "toggle": { + "enabled": false, + "readonly": false, + "value": "ad", + }, + }, + { + "cookie_table": [ + { + "description": "Session log description ...", + "expiration": "1 year", + "name": "sessionLog_id", + }, + ], + "description": "Meie teenused toimivad paremini, kui suudame neid konkreetsetele kasutajatele kohandada. Isikupärastamise küpsiste lubamisega suurendad oma võimalusi soovitud sisu leida.", + "title": "Isikupärastamise küpsised", + "toggle": { + "enabled": false, + "readonly": false, + "value": "personalization", + }, + }, + ], + "cookie_table_headers": [ + { + "name": "Nimetus", + }, + { + "description": "Kirjeldus", + }, + { + "expiration": "Aegumine", + }, + ], + "reject_all_btn": "Nõustun tarvilikega", + "save_settings_btn": "Salvesta sätted", + "title": "Kohandatud küpsiste seaded", + }, +} +`; + exports[`config hr should return localization object for acceptNecessary button mode 1`] = ` { "consent_modal": { diff --git a/src/languages/__tests__/langConfig.test.ts b/src/languages/__tests__/langConfig.test.ts index a20a7873..e74bd67d 100644 --- a/src/languages/__tests__/langConfig.test.ts +++ b/src/languages/__tests__/langConfig.test.ts @@ -1,6 +1,7 @@ import { config as configCs } from '../cs'; import { config as configDe } from '../de'; import { config as configEn } from '../en'; +import { config as configEt } from '../et'; import { config as configHr } from '../hr'; import { config as configHu } from '../hu'; import { config as configPl } from '../pl'; @@ -14,6 +15,7 @@ describe.each([ ['cs', configCs], ['de', configDe], ['en', configEn], + ['et', configEt], ['hu', configHu], ['hr', configHr], ['pl', configPl], diff --git a/src/languages/et.ts b/src/languages/et.ts new file mode 100644 index 00000000..34d99278 --- /dev/null +++ b/src/languages/et.ts @@ -0,0 +1,106 @@ +import { + addSeparators, + assembleDescriptionIntro, + assembleSecondaryButton, + isSettingsButtonNotShown, + pluralize, + legalizeAlmaCareer, + assembleCategoryNecessary, + assembleCategoryAnalytics, + assembleCategoryFunctionality, + assembleCategoryAd, + assembleCategoryPersonalization, +} from '../utils'; +import { CookieTableCategories, ExtraMessages, Values, VanillaCookieConsent } from '../types'; +import { SecondaryButtonMode } from '../constants'; + +const extra = { + and: 'ning', + company: 'ettevõttele', + companies: 'ettevõtetele', + legalName: 'Alma Career ja teistele selle ärigrupi ettevõtetele', +}; + +/** + * @param {ExtraMessages} [extraMessages] - Object with extra messages + * @param {SecondaryButtonMode} [secondaryButtonMode] - Which secondary button should be shown + * @param {CookieTableCategories} [cookieTable] - Cookie table items defined by category + * @returns {VanillaCookieConsent.Languages} Object with translated messages + */ +export const config = ( + extraMessages: ExtraMessages, + secondaryButtonMode: Values, + cookieTable: CookieTableCategories, +): VanillaCookieConsent.Languages => { + const lang = { ...extra, ...extraMessages }; + + return { + consent_modal: { + title: lang.consentTitle ?? 'Küpsised muudavad meie veebilehe kasutamise veelgi paremaks', + description: ` + ${assembleDescriptionIntro( + 'Kui mõistame paremini, mis sind huvitab, näitame sulle asjakohasemat sisu.', + lang.descriptionIntro, + )} +

+ Klõpsates nuppu „Nõustun kõigiga“, annate + ${pluralize(lang.companyNames.length, lang.company, lang.companies)} + ${addSeparators(legalizeAlmaCareer(lang.companyNames, lang.legalName), lang.and)} + nõusoleku kasutada küpsiseid isikupärastamiseks, analüüsiks ja sihitud turunduseks. + ${ + isSettingsButtonNotShown(secondaryButtonMode) + ? `Küpsiste kasutamist saad kohandada oma kohandatud seadetes.` + : '' + } +

`, + primary_btn: { + text: 'Nõustun kõigiga', + role: VanillaCookieConsent.PrimaryButtonRole.ACCEPT_ALL, + }, + secondary_btn: assembleSecondaryButton(secondaryButtonMode, 'Nõustun tarvilikega', 'Kohandatud seaded'), + }, + settings_modal: { + title: 'Kohandatud küpsiste seaded', + accept_all_btn: 'Nõustun kõigiga', + reject_all_btn: 'Nõustun tarvilikega', + save_settings_btn: 'Salvesta sätted', + cookie_table_headers: [{ name: 'Nimetus' }, { description: 'Kirjeldus' }, { expiration: 'Aegumine' }], + blocks: [ + { + description: + `Kui soovid meie veebilehest maksimumi võtta, on kõige parem nõustuda kõigi küpsistega.\n` + + (lang.settingsModalMoreInfo ?? + `Lisateavet selle kohta, mis on küpsised ja kuidas me nendega töötame, leiate lehelt + Privaatsuspoliitika.`), + }, + assembleCategoryNecessary( + 'Tehniliselt vajalikud küpsised', + 'Need küpsised on meie veebilehe nõuetekohaseks toimimiseks hädavajalikud ja seetõttu ei saa neid keelata. Ilma nendeta poleks võimalik näiteks teatud sisu kuvamine või meie veebilehele sisse logimine.', + cookieTable, + ), + assembleCategoryAnalytics( + 'Analüütilised küpsised', + 'Need aitavad meil jälgida kui palju inimesi meie veebilehte külastab ja kuidas nad seda kasutavad. See teave võimaldab meil veebilehte ja muid teenuseid pidevalt täiustada.', + cookieTable, + ), + assembleCategoryFunctionality( + 'Funktsionaalsed küpsised', + 'Meie veebileht on veelgi tõhusam ja töötab paremini tänu nendele küpsistele.', + cookieTable, + ), + assembleCategoryAd( + 'Turundusküpsised', + 'Need küpsised aitavad meil mõõta meie reklaamide ja suunatud teenusepakkumiste tõhusust. Turundusküpsised võimaldavad ka meil sulle internetist informatsiooni leida, mis võib sinu jaoks asjakohane ja huvipakkuv olla.', + cookieTable, + ), + assembleCategoryPersonalization( + 'Isikupärastamise küpsised', + 'Meie teenused toimivad paremini, kui suudame neid konkreetsetele kasutajatele kohandada. Isikupärastamise küpsiste lubamisega suurendad oma võimalusi soovitud sisu leida.', + cookieTable, + ), + ], + }, + }; +}; + +export default config;