-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: migrates existing translation files from i18next to next-intl f…
…ormat - `modifyJson.js` contains a script to bulk transform the files - enables translations for all locales by updating `i18nConfig` and `middleware`
- Loading branch information
Showing
103 changed files
with
5,294 additions
and
5,062 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
export const i18nConfig = { | ||
defaultLocale: 'en', | ||
locales: ['en', 'de'], | ||
locales: ['en', 'de', 'cs', 'es', 'fr', 'it', 'pt-BR'], | ||
} as const; | ||
|
||
export type Locale = (typeof i18nConfig)['locales'][number]; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
/** | ||
* Modifies JSON files in a specified directory by converting the file names to PascalCase | ||
* and updating the file contents with the modified JSON data. | ||
* @param {string} directoryPath - The path to the directory containing the JSON files. | ||
*/ | ||
const fs = require('fs'); | ||
const path = require('path'); | ||
|
||
const directoryPath = path.join(__dirname, 'public/static/locales/pt-BR'); | ||
|
||
fs.readdir(directoryPath, (err, files) => { | ||
if (err) { | ||
return console.log('Unable to scan directory: ' + err); | ||
} | ||
|
||
files.forEach((file) => { | ||
const filePath = path.join(directoryPath, file); | ||
const rawData = fs.readFileSync(filePath); | ||
const jsonData = JSON.parse(rawData); | ||
|
||
const fileNameWithoutExtension = path.basename(file, '.json'); | ||
const pascalCaseFileName = fileNameWithoutExtension | ||
.split(/[-_]/) | ||
.map((word) => word.charAt(0).toUpperCase() + word.slice(1)) | ||
.join(''); | ||
|
||
const newData = { | ||
[pascalCaseFileName]: jsonData, | ||
}; | ||
|
||
fs.writeFileSync(filePath, JSON.stringify(newData, null, 2)); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,88 +1,90 @@ | ||
{ | ||
"bulkCodesTitle": "Vydání hromadných kódů", | ||
"partnerSignupInfo": "Použití této funkce společnostmi podléhá partnerství se společností Plant-for-the-Planet. Kontaktujte prosím <partnerEmailLink>[email protected]</partnerEmailLink> pro podrobnosti.", | ||
"bulkCodesDescription1": "Pomocí PlanetCash můžete generovat tisíce kódů v jedné operaci.", | ||
"bulkCodesDescription2": "Tuto funkci můžete použít k vytvoření kódů pro vlastní certifikáty, dárkové karty, dary jménem uživatelů a uplatnitelné kódy, které můžete přiřadit k vašim produktům.", | ||
"tabCreationMethod": "Metoda tvorby", | ||
"tabSelectProject": "Zvolte projekt", | ||
"tabIssueCodes": "Kódy vydání", | ||
"issueCodes": "Kódy vydání", | ||
"issuingCodes": "Vydávání kódů...", | ||
"importMethodText": { | ||
"title": "Importovat soubor", | ||
"subtitle": "Tuto metodu použijte, pokud jedno z následujících kritérií odpovídá vašemu případu použití:", | ||
"details": [ | ||
"Chci uvést jméno příjemce nebo e-mail pro každý kód.", | ||
"Chci, aby Plant-for-the-Planet po vygenerování automaticky odeslal příjemcům e-mail (volitelné).", | ||
"Chci vydat kódy pro různé počty stromů." | ||
] | ||
}, | ||
"genericMethodText": { | ||
"title": "Vytvoření obecných kódů", | ||
"subtitle": "Tuto metodu použijte, pokud následující kritéria odpovídají vašemu případu použití:", | ||
"details": [ | ||
"Všechny kódy budou mít stejnou hodnotu.", | ||
"Chci vygenerovat řadu kódů pro libovolné příjemce.", | ||
"Jména a e-maily nelze s kódem asociovat." | ||
] | ||
}, | ||
"projectName": "Název projektu", | ||
"costPerUnit": "Cena za jednotku", | ||
"labelComment": "Komentář [Soukromé]", | ||
"unitOfMeasurement": "Měrná jednotka", | ||
"units": { | ||
"ha": "ha", | ||
"tree": " strom", | ||
"m2": "m²" | ||
}, | ||
"unitsPerCode": "Jednotky za kód*", | ||
"totalNumberOfCodes": "Celkový počet kódů*", | ||
"occasion": "Příležitost", | ||
"total": "Celkem", | ||
"chargeConsentText": "Kliknutím na Kódy vydání, souhlasíte s tím, že výše uvedená částka bude naúčtována na váš účet.", | ||
"invalidEmailWarningText": "Ujistěte se, že příjemce_email je platný e-mail. Používání fiktivních nebo neplatných e-mailů povede k pozastavení účtu v souladu s podmínkami Platformy.", | ||
"projectRequired": "Není vybrán žádný projekt.", | ||
"unitsPerCodeRequired": "Každý kód by měl obsahovat alespoň 1 jednotku.", | ||
"codeQuantityRequired": "Musíte vytvořit alespoň 1 kód.", | ||
"unitsPerCodeInvalidRange": "Jeden kód může obsahovat maximálně 1000 jednotek.", | ||
"codeQuantityInvalidRange": "Maximálně lze vytvořit 5000 kódů.", | ||
"featureAvailability": "Tato funkce je k dispozici pouze pro partnerské projekty.", | ||
"planetCashDisabled": "PlanetCash není aktivován. Chcete-li tuto funkci používat, aktivujte PlanetCash.", | ||
"insufficientPCashBalance": "Nedostatečný balanc.", | ||
"addBalanceGeneric": "Kliknutím sem přidáte finanční prostředky.", | ||
"instructionsUploadCSV": { | ||
"empty": "Přetáhněte /kliknutím vyberte soubor.xslx/.csv pro nahrání.", | ||
"error": "Zkontrolujte prosím problémy a přetáhněte sem soubor .xslx / .csv, který chcete nahrát.", | ||
"processing": "Počkejte prosím, než analyzujeme váš soubor...", | ||
"success": "Pokračujte nebo přetáhněte soubor .xlsx nebo .csv sem, abyste nahradili aktuální soubor." | ||
}, | ||
"statusUploadCSV": { | ||
"error": "Chyba", | ||
"success": "Analýza souborů dokončena" | ||
}, | ||
"errorUploadCSV": { | ||
"fileInvalidType": "Povoleny jsou pouze soubory.csv a .xslx.", | ||
"tooManyFiles": "Nahrajte prosím pouze jeden soubor.", | ||
"fileTooSmall": "Nahraný soubor se zdá být prázdný.", | ||
"fileTooLarge": "Nahraný soubor musí být 5 MB nebo méně.", | ||
"missingColumns": "Nahraný soubor neobsahuje následující sloupce: ", | ||
"noRecipientData": "Nebyla nalezena žádná data příjemce.", | ||
"tooManyRecipients": "V jedné transakci lze zpracovat maximálně 1000 příjemců.", | ||
"unitsNotProvided": "Jednotky chybí/neplatné pro některé příjemce.", | ||
"notifyNotPossible": "U některých příjemců, kteří mají být upozorněni, chybí e-mail a jméno.", | ||
"instructionRowError": "Došlo k chybě v prvním řádku. Zkontrolujte, zda jste pokyny smazali, nebo zda existují další údaje.", | ||
"invalidEmails": "recipient_email obsahuje figuríny/neplatné e-maily v následujících řádcích: {{rowList}}. Odstraňte prosím neplatné e-maily nebo přidejte platné e-maily.", | ||
"generalError": "Něco se pokazilo. Zkuste to prosím o chvíli." | ||
}, | ||
"successUploadCSV": { | ||
"ignoredColumns": "Další sloupce byly ignorovány" | ||
}, | ||
"importInstructions": "Přečtěte si <docsLink>dokumentaci zde</docsLink>, stáhněte si <excelLink>šablonu aplikace Excel zde</excelLink>, a <csvLink>šablonu CSV zde</csvLink>.", | ||
"donationSuccess": "Váš dar byl úspěšný. Přesměrování na zobrazení podrobností o darování brzy...", | ||
"donationError": { | ||
"planet_cash_insufficient_credit": "Dostupný kredit = {{availableBalance}}. Chcete-li provést tento dar, nahrajte zůstatek na svém účtu PlanetCash.", | ||
"default": "Něco se pokazilo. Zkuste to prosím po chvíli.", | ||
"planet_cash_payment_failure": "Transakce selhala. {{reason}}", | ||
"planet_cash_invalid_project": "Nelze darovat vybranému projektu." | ||
"BulkCodes": { | ||
"bulkCodesTitle": "Vydání hromadných kódů", | ||
"partnerSignupInfo": "Použití této funkce společnostmi podléhá partnerství se společností Plant-for-the-Planet. Kontaktujte prosím <partnerEmailLink>[email protected]</partnerEmailLink> pro podrobnosti.", | ||
"bulkCodesDescription1": "Pomocí PlanetCash můžete generovat tisíce kódů v jedné operaci.", | ||
"bulkCodesDescription2": "Tuto funkci můžete použít k vytvoření kódů pro vlastní certifikáty, dárkové karty, dary jménem uživatelů a uplatnitelné kódy, které můžete přiřadit k vašim produktům.", | ||
"tabCreationMethod": "Metoda tvorby", | ||
"tabSelectProject": "Zvolte projekt", | ||
"tabIssueCodes": "Kódy vydání", | ||
"issueCodes": "Kódy vydání", | ||
"issuingCodes": "Vydávání kódů...", | ||
"importMethodText": { | ||
"title": "Importovat soubor", | ||
"subtitle": "Tuto metodu použijte, pokud jedno z následujících kritérií odpovídá vašemu případu použití:", | ||
"details": [ | ||
"Chci uvést jméno příjemce nebo e-mail pro každý kód.", | ||
"Chci, aby Plant-for-the-Planet po vygenerování automaticky odeslal příjemcům e-mail (volitelné).", | ||
"Chci vydat kódy pro různé počty stromů." | ||
] | ||
}, | ||
"genericMethodText": { | ||
"title": "Vytvoření obecných kódů", | ||
"subtitle": "Tuto metodu použijte, pokud následující kritéria odpovídají vašemu případu použití:", | ||
"details": [ | ||
"Všechny kódy budou mít stejnou hodnotu.", | ||
"Chci vygenerovat řadu kódů pro libovolné příjemce.", | ||
"Jména a e-maily nelze s kódem asociovat." | ||
] | ||
}, | ||
"projectName": "Název projektu", | ||
"costPerUnit": "Cena za jednotku", | ||
"labelComment": "Komentář [Soukromé]", | ||
"unitOfMeasurement": "Měrná jednotka", | ||
"units": { | ||
"ha": "ha", | ||
"tree": " strom", | ||
"m2": "m²" | ||
}, | ||
"unitsPerCode": "Jednotky za kód*", | ||
"totalNumberOfCodes": "Celkový počet kódů*", | ||
"occasion": "Příležitost", | ||
"total": "Celkem", | ||
"chargeConsentText": "Kliknutím na Kódy vydání, souhlasíte s tím, že výše uvedená částka bude naúčtována na váš účet.", | ||
"invalidEmailWarningText": "Ujistěte se, že příjemce_email je platný e-mail. Používání fiktivních nebo neplatných e-mailů povede k pozastavení účtu v souladu s podmínkami Platformy.", | ||
"projectRequired": "Není vybrán žádný projekt.", | ||
"unitsPerCodeRequired": "Každý kód by měl obsahovat alespoň 1 jednotku.", | ||
"codeQuantityRequired": "Musíte vytvořit alespoň 1 kód.", | ||
"unitsPerCodeInvalidRange": "Jeden kód může obsahovat maximálně 1000 jednotek.", | ||
"codeQuantityInvalidRange": "Maximálně lze vytvořit 5000 kódů.", | ||
"featureAvailability": "Tato funkce je k dispozici pouze pro partnerské projekty.", | ||
"planetCashDisabled": "PlanetCash není aktivován. Chcete-li tuto funkci používat, aktivujte PlanetCash.", | ||
"insufficientPCashBalance": "Nedostatečný balanc.", | ||
"addBalanceGeneric": "Kliknutím sem přidáte finanční prostředky.", | ||
"instructionsUploadCSV": { | ||
"empty": "Přetáhněte /kliknutím vyberte soubor.xslx/.csv pro nahrání.", | ||
"error": "Zkontrolujte prosím problémy a přetáhněte sem soubor .xslx / .csv, který chcete nahrát.", | ||
"processing": "Počkejte prosím, než analyzujeme váš soubor...", | ||
"success": "Pokračujte nebo přetáhněte soubor .xlsx nebo .csv sem, abyste nahradili aktuální soubor." | ||
}, | ||
"statusUploadCSV": { | ||
"error": "Chyba", | ||
"success": "Analýza souborů dokončena" | ||
}, | ||
"errorUploadCSV": { | ||
"fileInvalidType": "Povoleny jsou pouze soubory.csv a .xslx.", | ||
"tooManyFiles": "Nahrajte prosím pouze jeden soubor.", | ||
"fileTooSmall": "Nahraný soubor se zdá být prázdný.", | ||
"fileTooLarge": "Nahraný soubor musí být 5 MB nebo méně.", | ||
"missingColumns": "Nahraný soubor neobsahuje následující sloupce: ", | ||
"noRecipientData": "Nebyla nalezena žádná data příjemce.", | ||
"tooManyRecipients": "V jedné transakci lze zpracovat maximálně 1000 příjemců.", | ||
"unitsNotProvided": "Jednotky chybí/neplatné pro některé příjemce.", | ||
"notifyNotPossible": "U některých příjemců, kteří mají být upozorněni, chybí e-mail a jméno.", | ||
"instructionRowError": "Došlo k chybě v prvním řádku. Zkontrolujte, zda jste pokyny smazali, nebo zda existují další údaje.", | ||
"invalidEmails": "recipient_email obsahuje figuríny/neplatné e-maily v následujících řádcích: {{rowList}}. Odstraňte prosím neplatné e-maily nebo přidejte platné e-maily.", | ||
"generalError": "Něco se pokazilo. Zkuste to prosím o chvíli." | ||
}, | ||
"successUploadCSV": { | ||
"ignoredColumns": "Další sloupce byly ignorovány" | ||
}, | ||
"importInstructions": "Přečtěte si <docsLink>dokumentaci zde</docsLink>, stáhněte si <excelLink>šablonu aplikace Excel zde</excelLink>, a <csvLink>šablonu CSV zde</csvLink>.", | ||
"donationSuccess": "Váš dar byl úspěšný. Přesměrování na zobrazení podrobností o darování brzy...", | ||
"donationError": { | ||
"planet_cash_insufficient_credit": "Dostupný kredit = {{availableBalance}}. Chcete-li provést tento dar, nahrajte zůstatek na svém účtu PlanetCash.", | ||
"default": "Něco se pokazilo. Zkuste to prosím po chvíli.", | ||
"planet_cash_payment_failure": "Transakce selhala. {{reason}}", | ||
"planet_cash_invalid_project": "Nelze darovat vybranému projektu." | ||
} | ||
} | ||
} | ||
} |
Oops, something went wrong.