Skip to content

Commit

Permalink
Feat: Add Romanian (ro) translation
Browse files Browse the repository at this point in the history
  • Loading branch information
OndraM committed Feb 4, 2025
1 parent d48f1dd commit d665191
Show file tree
Hide file tree
Showing 7 changed files with 237 additions and 1 deletion.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -294,6 +294,7 @@ Translation of the user interface is provided in the following languages:
- Macedonian (`mk`)
- Polish (`pl`)
- Portuguese (`pt`)
- Romanian (`ro`)
- Russian (`ru`)
- Serbian (latin) (`sr`)
- Slovak (`sk`)
Expand Down
4 changes: 4 additions & 0 deletions examples/languages.html
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,10 @@ <h2 class="mt-md-3 mb-3">Select language</h2>
<input type="radio" class="form-check-input" id="lang-select-pt" value="pt" autocomplete="off" name="lang-select" onclick="toggleLanguage();">
<label class="form-check-label" for="lang-select-pt">Portuguese</label>
</div>
<div class="form-check">
<input type="radio" class="form-check-input" id="lang-select-ro" value="ro" autocomplete="off" name="lang-select" onclick="toggleLanguage();">
<label class="form-check-label" for="lang-select-ro">Romanian</label>
</div>
<div class="form-check">
<input type="radio" class="form-check-input" id="lang-select-ru" value="ru" autocomplete="off" name="lang-select" onclick="toggleLanguage();">
<label class="form-check-label" for="lang-select-ru">Russian</label>
Expand Down
143 changes: 143 additions & 0 deletions src/languages/__tests__/__snapshots__/langConfig.test.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -2014,6 +2014,149 @@ exports[`config pt should return localization object with cookie table 1`] = `
}
`;

exports[`config ro should return localization object for acceptNecessary button mode 1`] = `
{
"consentModal": {
"acceptAllBtn": "Permite toate",
"acceptNecessaryBtn": "Permite doar esențiale",
"description": "
<p>În cazul în care vom înțelege mai bine ce vă interesează, vă vom putea afișa conținut adaptat intereselor dumneavoastră.</p>
<p>
Făcând clic pe butonul „Permite toate”, sunteți de acord ca
test1, test2 și test3
să utilizeze fișierele cookies în scop de personalizare, analiză și marketing orientat.
Mai multe informații despre cookies și despre modificarea setărilor acestora puteți găsi în <strong><a href="" data-cc="show-preferencesModal">setările proprii</a></strong>.
</p>",
"title": "Datorită cookie-urilor, site-ul nostru va deveni și mai bun",
},
"preferencesModal": {
"acceptAllBtn": "Permite toate",
"acceptNecessaryBtn": "Permite doar esențiale",
"savePreferencesBtn": "Salvează setările",
"sections": [
{
"description": "Pentru a profita la maxim de site-ul nostru, este recomandat să permiteți toate tipurile de cookies.
Mai multe informații despre ce sunt cookie-urile și despre cum le utilizăm puteți găsi în <a href="https://www.almacareer.com/gdpr" target="_blank">Politica de cookies</a>.",
},
{
"description": "Aceste cookies sunt esențiale pentru funcționarea site-ului nostru, de aceea nu există posibilitatea de a le opri. Fără acestea, nu ar fi, de exemplu, posibil să afișăm conținut pe site și nu ar fi posibilă autentificarea.",
"linkedCategory": "necessary",
"title": "Cookie-uri tehnice",
},
{
"description": "Aceste cookies ne permit să analizăm eficiența publicității noastre și a ofertei de servicii personalizate. Cu ajutorul cookie-urilor publicitare, putem să vă anunțăm online cu privire la noutăți care v-ar putea fi de interes pentru dumneavoastră.",
"linkedCategory": "ad",
"title": "Cookie-uri publicitare",
},
{
"description": "Cookie-urile analitice ne ajută să urmărim numărul de vizitatori ai site-ului nostru și modul în care aceștia utilizează site-ul. Datorită acestor cookies, putem să îmbunătățim constant site-ul nostru și serviciile oferite.",
"linkedCategory": "analytics",
"title": "Cookie-uri analitice",
},
{
"description": "Datorită acestor cookies, site-ul nostru este și mai eficient și funcționează mai bine. Ne permit, de exemplu, să folosim chat-ul, pentru a vă putea răspunde rapid și ușor la toate întrebările.",
"linkedCategory": "functionality",
"title": "Cookie-uri de funcționalitate",
},
{
"description": "Serviciile noastre funcționează mai bine atunci când le putem personaliza pentru fiecare utilizator. Prin acceptarea Cookie-urilor pentru personalizare, creșteți șansele de a primi exact conținutul dorit.",
"linkedCategory": "personalization",
"title": "Cookie-uri pentru personalizare",
},
],
"title": "Personalizează setările cookies",
},
}
`;

exports[`config ro should return localization object with cookie table 1`] = `
{
"consentModal": {
"acceptAllBtn": "Permite toate",
"acceptNecessaryBtn": "Permite doar esențiale",
"description": "
<p>În cazul în care vom înțelege mai bine ce vă interesează, vă vom putea afișa conținut adaptat intereselor dumneavoastră.</p>
<p>
Făcând clic pe butonul „Permite toate”, sunteți de acord ca
Alma Career și companiile din grupul său
să utilizeze fișierele cookies în scop de personalizare, analiză și marketing orientat.
Mai multe informații despre cookies și despre modificarea setărilor acestora puteți găsi în <strong><a href="" data-cc="show-preferencesModal">setările proprii</a></strong>.
</p>",
"title": "Datorită cookie-urilor, site-ul nostru va deveni și mai bun",
},
"preferencesModal": {
"acceptAllBtn": "Permite toate",
"acceptNecessaryBtn": "Permite doar esențiale",
"savePreferencesBtn": "Salvează setările",
"sections": [
{
"description": "Pentru a profita la maxim de site-ul nostru, este recomandat să permiteți toate tipurile de cookies.
Mai multe informații despre ce sunt cookie-urile și despre cum le utilizăm puteți găsi în <a href="https://www.almacareer.com/gdpr" target="_blank">Politica de cookies</a>.",
},
{
"cookieTable": {
"body": [
{
"description": "Google Analytics description ...",
"expiration": "1 year",
"name": "_ga*",
},
{
"description": "Foo description",
"expiration": "end of session",
"name": "foo",
},
],
"headers": {
"description": "Descriere",
"expiration": "Valabilitate",
"name": "Denumire",
},
},
"description": "Aceste cookies sunt esențiale pentru funcționarea site-ului nostru, de aceea nu există posibilitatea de a le opri. Fără acestea, nu ar fi, de exemplu, posibil să afișăm conținut pe site și nu ar fi posibilă autentificarea.",
"linkedCategory": "necessary",
"title": "Cookie-uri tehnice",
},
{
"description": "Aceste cookies ne permit să analizăm eficiența publicității noastre și a ofertei de servicii personalizate. Cu ajutorul cookie-urilor publicitare, putem să vă anunțăm online cu privire la noutăți care v-ar putea fi de interes pentru dumneavoastră.",
"linkedCategory": "ad",
"title": "Cookie-uri publicitare",
},
{
"description": "Cookie-urile analitice ne ajută să urmărim numărul de vizitatori ai site-ului nostru și modul în care aceștia utilizează site-ul. Datorită acestor cookies, putem să îmbunătățim constant site-ul nostru și serviciile oferite.",
"linkedCategory": "analytics",
"title": "Cookie-uri analitice",
},
{
"description": "Datorită acestor cookies, site-ul nostru este și mai eficient și funcționează mai bine. Ne permit, de exemplu, să folosim chat-ul, pentru a vă putea răspunde rapid și ușor la toate întrebările.",
"linkedCategory": "functionality",
"title": "Cookie-uri de funcționalitate",
},
{
"cookieTable": {
"body": [
{
"description": "Session log description ...",
"expiration": "1 year",
"name": "sessionLog_id",
},
],
"headers": {
"description": "Descriere",
"expiration": "Valabilitate",
"name": "Denumire",
},
},
"description": "Serviciile noastre funcționează mai bine atunci când le putem personaliza pentru fiecare utilizator. Prin acceptarea Cookie-urilor pentru personalizare, creșteți șansele de a primi exact conținutul dorit.",
"linkedCategory": "personalization",
"title": "Cookie-uri pentru personalizare",
},
],
"title": "Personalizează setările cookies",
},
}
`;

exports[`config ru should return localization object for acceptNecessary button mode 1`] = `
{
"consentModal": {
Expand Down
2 changes: 2 additions & 0 deletions src/languages/__tests__/langConfig.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import { config as configLv } from '../lv';
import { config as configMk } from '../mk';
import { config as configPl } from '../pl';
import { config as configPt } from '../pt';
import { config as configRo } from '../ro';
import { config as configRu } from '../ru';
import { config as configSk } from '../sk';
import { config as configSl } from '../sl';
Expand All @@ -33,6 +34,7 @@ describe.each([
['mk', configMk],
['pl', configPl],
['pt', configPt],
['ro', configRo],
['ru', configRu],
['sk', configSk],
['sl', configSl],
Expand Down
2 changes: 1 addition & 1 deletion src/languages/__tests__/loader.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ describe('loader', () => {
describe('assembleTranslationsConfig', () => {
it('should assemble configs for all translations', () => {
const config = assembleTranslationsConfig(['Alma Career'], {}, {});
expect(Object.keys(config)).toHaveLength(19);
expect(Object.keys(config)).toHaveLength(20);
});
});
});
2 changes: 2 additions & 0 deletions src/languages/loader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import { config as configLv } from './lv';
import { config as configMk } from './mk';
import { config as configPl } from './pl';
import { config as configPt } from './pt';
import { config as configRo } from './ro';
import { config as configRu } from './ru';
import { config as configSk } from './sk';
import { config as configSl } from './sl';
Expand All @@ -35,6 +36,7 @@ const languagesMap = {
mk: configMk,
pl: configPl,
pt: configPt,
ro: configRo,
ru: configRu,
sk: configSk,
sl: configSl,
Expand Down
84 changes: 84 additions & 0 deletions src/languages/ro.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
import { addSeparators, assembleCookieTableSections, assembleDescriptionIntro, legalizeAlmaCareer } from '../utils';
import { CookieTableCategories, ExtraMessages } from '../types';
import { Translation } from 'vanilla-cookieconsent';

const extra = {
and: 'și',
legalName: 'Alma Career și companiile din grupul său',
};
/**
* @param {ExtraMessages} [extraMessages] - Object with extra messages
* @param {CookieTableCategories} [cookieTable] - Cookie table items defined by category
* @returns {Translation} Object with translated messages
*/
export const config = (extraMessages: ExtraMessages, cookieTable: CookieTableCategories): Translation => {
const lang = { ...extra, ...extraMessages };
const cookieTableHeaders = { name: 'Denumire', description: 'Descriere', expiration: 'Valabilitate' };

return {
consentModal: {
title: lang.consentTitle ?? 'Datorită cookie-urilor, site-ul nostru va deveni și mai bun',
description: `
${assembleDescriptionIntro(
'În cazul în care vom înțelege mai bine ce vă interesează, vă vom putea afișa conținut adaptat intereselor dumneavoastră.',
lang.descriptionIntro,
)}
<p>
Făcând clic pe butonul „Permite toate”, sunteți de acord ca
${addSeparators(legalizeAlmaCareer(lang.companyNames, lang.legalName), extra.and)}
să utilizeze fișierele cookies în scop de personalizare, analiză și marketing orientat.
Mai multe informații despre cookies și despre modificarea setărilor acestora puteți găsi în <strong><a href="" data-cc="show-preferencesModal">setările proprii</a></strong>.
</p>`,
acceptAllBtn: 'Permite toate',
acceptNecessaryBtn: 'Permite doar esențiale',
},
preferencesModal: {
title: 'Personalizează setările cookies',
acceptAllBtn: 'Permite toate',
acceptNecessaryBtn: 'Permite doar esențiale',
savePreferencesBtn: 'Salvează setările',
sections: [
{
description: `Pentru a profita la maxim de site-ul nostru, este recomandat să permiteți toate tipurile de cookies.
${
lang.preferencesModalMoreInfo ??
`Mai multe informații despre ce sunt cookie-urile și despre cum le utilizăm puteți găsi în <a href="https://www.almacareer.com/gdpr" target="_blank">Politica de cookies</a>.`
}`,
},
...assembleCookieTableSections(
cookieTableHeaders,
{
necessary: {
title: 'Cookie-uri tehnice',
description:
'Aceste cookies sunt esențiale pentru funcționarea site-ului nostru, de aceea nu există posibilitatea de a le opri. Fără acestea, nu ar fi, de exemplu, posibil să afișăm conținut pe site și nu ar fi posibilă autentificarea.',
},
analytics: {
title: 'Cookie-uri analitice',
description:
'Cookie-urile analitice ne ajută să urmărim numărul de vizitatori ai site-ului nostru și modul în care aceștia utilizează site-ul. Datorită acestor cookies, putem să îmbunătățim constant site-ul nostru și serviciile oferite.',
},
functionality: {
title: 'Cookie-uri de funcționalitate',
description:
'Datorită acestor cookies, site-ul nostru este și mai eficient și funcționează mai bine. Ne permit, de exemplu, să folosim chat-ul, pentru a vă putea răspunde rapid și ușor la toate întrebările.',
},
ad: {
title: 'Cookie-uri publicitare',
description:
'Aceste cookies ne permit să analizăm eficiența publicității noastre și a ofertei de servicii personalizate. Cu ajutorul cookie-urilor publicitare, putem să vă anunțăm online cu privire la noutăți care v-ar putea fi de interes pentru dumneavoastră.',
},
personalization: {
title: 'Cookie-uri pentru personalizare',
description:
'Serviciile noastre funcționează mai bine atunci când le putem personaliza pentru fiecare utilizator. Prin acceptarea Cookie-urilor pentru personalizare, creșteți șansele de a primi exact conținutul dorit.',
},
},
cookieTable,
),
],
},
};
};

export default config;

0 comments on commit d665191

Please sign in to comment.