n8n/packages/core/bin/generate-translations

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

100 lines
2.5 KiB
Plaintext
Raw Normal View History

#!/usr/bin/env node
const {
existsSync,
promises: { writeFile },
} = require('fs');
2021-11-18 02:32:13 -08:00
const path = require('path');
const { packageDir } = require('./common');
2021-11-18 02:32:13 -08:00
const ALLOWED_HEADER_KEYS = ['displayName', 'description'];
const PURPLE_ANSI_COLOR_CODE = 35;
:zap: i18n feedback refactorings (#2597) * :zap: Create endpoint for node credential translation * :zap: Add API helper method in FE * :hammer: Add creds JSON files to tsconfig * :zap: Refactor credentials loading * :zap: Refactor calls in CredentialConfig * :pencil2: Add dummy translations * :zap: Split translations per node * :fire: Remove deprecated method * :zap: Refactor nesting in collections * :truck: Rename topParameter methods for accuracy * :pencil2: Fill out GitHub dummy cred * :truck: Clarify naming for collection utils * :pencil2: Fill out dummy translation * :fire: Remove surplus colons * :fire: Remove logging * :zap: Restore missing space * :fire: Remove lingering colon * :zap: Add path to InputLabel calls * :pencil2: Fill out dummy translations * :bug: Fix multipleValuesButtonText logic * :zap: Add sample properties to be deleted * :zap: Render deeply nested params * :package: Update package-lock.json * :fire: remove logging * :pencil2: Add dummy value to Slack translation * :pencil2: Add placeholder to dummy translation * :zap: Fix placeholder rendering for button text * :shirt: Fix lint * :fire: Remove outdated comment * :bug: Pass in missing arg for placeholder * :pencil2: Fill out Slack translation * :zap: Add explanatory comment * :pencil2: Fill out dummy translation * :pencil2: Update documentation * :fire: Remove broken link * :pencil2: Add pending functionality * :pencil2: Fix indentation * :bug: Fix method call in CredentialEdit * :zap: Implement eventTriggerDescription * :bug: Fix table-json-binary radio buttons * :pencil2: Clarify usage of eventTriggerDescription * :fire: Remove unneeded arg * :bug: Fix display in CodeEdit and TextEdit * :fire: Remove logging * :pencil2: Add translation for test cred options * :pencil2: Add test for separate file in same dir * :pencil2: Add test for versioned node * :pencil2: Add test for node in grouped dir * :pencil2: Add minor clarifications * :pencil2: Add nested collection test * :pencil2: Add pending functionality * :zap: Generalize collections handling * :truck: Rename helper to remove redundancy * :truck: Improve naming in helpers * :pencil2: Improve helpers documentation * :pencil2: Improve i18n methods documentation * :truck: Make endpoint naming consistent * :pencil2: Add final newlines * :pencil2: Clean up JSON examples * :zap: Reuse i18n method * :zap: Improve utils readability * :zap: Return early if cred translation exists * :fire: Remove dummy translations
2022-01-07 13:02:21 -08:00
function getNodeTranslationPaths() {
const nodeDistPaths = require(`${packageDir}/package.json`).n8n.nodes;
2021-11-18 02:32:13 -08:00
const { N8N_DEFAULT_LOCALE: locale } = process.env;
:zap: i18n feedback refactorings (#2597) * :zap: Create endpoint for node credential translation * :zap: Add API helper method in FE * :hammer: Add creds JSON files to tsconfig * :zap: Refactor credentials loading * :zap: Refactor calls in CredentialConfig * :pencil2: Add dummy translations * :zap: Split translations per node * :fire: Remove deprecated method * :zap: Refactor nesting in collections * :truck: Rename topParameter methods for accuracy * :pencil2: Fill out GitHub dummy cred * :truck: Clarify naming for collection utils * :pencil2: Fill out dummy translation * :fire: Remove surplus colons * :fire: Remove logging * :zap: Restore missing space * :fire: Remove lingering colon * :zap: Add path to InputLabel calls * :pencil2: Fill out dummy translations * :bug: Fix multipleValuesButtonText logic * :zap: Add sample properties to be deleted * :zap: Render deeply nested params * :package: Update package-lock.json * :fire: remove logging * :pencil2: Add dummy value to Slack translation * :pencil2: Add placeholder to dummy translation * :zap: Fix placeholder rendering for button text * :shirt: Fix lint * :fire: Remove outdated comment * :bug: Pass in missing arg for placeholder * :pencil2: Fill out Slack translation * :zap: Add explanatory comment * :pencil2: Fill out dummy translation * :pencil2: Update documentation * :fire: Remove broken link * :pencil2: Add pending functionality * :pencil2: Fix indentation * :bug: Fix method call in CredentialEdit * :zap: Implement eventTriggerDescription * :bug: Fix table-json-binary radio buttons * :pencil2: Clarify usage of eventTriggerDescription * :fire: Remove unneeded arg * :bug: Fix display in CodeEdit and TextEdit * :fire: Remove logging * :pencil2: Add translation for test cred options * :pencil2: Add test for separate file in same dir * :pencil2: Add test for versioned node * :pencil2: Add test for node in grouped dir * :pencil2: Add minor clarifications * :pencil2: Add nested collection test * :pencil2: Add pending functionality * :zap: Generalize collections handling * :truck: Rename helper to remove redundancy * :truck: Improve naming in helpers * :pencil2: Improve helpers documentation * :pencil2: Improve i18n methods documentation * :truck: Make endpoint naming consistent * :pencil2: Add final newlines * :pencil2: Clean up JSON examples * :zap: Reuse i18n method * :zap: Improve utils readability * :zap: Return early if cred translation exists * :fire: Remove dummy translations
2022-01-07 13:02:21 -08:00
return nodeDistPaths.reduce((acc, cur) => {
const nodeTranslationPath = path.join(
packageDir,
2021-11-18 02:32:13 -08:00
cur.split('/').slice(1, -1).join('/'),
'translations',
:zap: i18n feedback refactorings (#2597) * :zap: Create endpoint for node credential translation * :zap: Add API helper method in FE * :hammer: Add creds JSON files to tsconfig * :zap: Refactor credentials loading * :zap: Refactor calls in CredentialConfig * :pencil2: Add dummy translations * :zap: Split translations per node * :fire: Remove deprecated method * :zap: Refactor nesting in collections * :truck: Rename topParameter methods for accuracy * :pencil2: Fill out GitHub dummy cred * :truck: Clarify naming for collection utils * :pencil2: Fill out dummy translation * :fire: Remove surplus colons * :fire: Remove logging * :zap: Restore missing space * :fire: Remove lingering colon * :zap: Add path to InputLabel calls * :pencil2: Fill out dummy translations * :bug: Fix multipleValuesButtonText logic * :zap: Add sample properties to be deleted * :zap: Render deeply nested params * :package: Update package-lock.json * :fire: remove logging * :pencil2: Add dummy value to Slack translation * :pencil2: Add placeholder to dummy translation * :zap: Fix placeholder rendering for button text * :shirt: Fix lint * :fire: Remove outdated comment * :bug: Pass in missing arg for placeholder * :pencil2: Fill out Slack translation * :zap: Add explanatory comment * :pencil2: Fill out dummy translation * :pencil2: Update documentation * :fire: Remove broken link * :pencil2: Add pending functionality * :pencil2: Fix indentation * :bug: Fix method call in CredentialEdit * :zap: Implement eventTriggerDescription * :bug: Fix table-json-binary radio buttons * :pencil2: Clarify usage of eventTriggerDescription * :fire: Remove unneeded arg * :bug: Fix display in CodeEdit and TextEdit * :fire: Remove logging * :pencil2: Add translation for test cred options * :pencil2: Add test for separate file in same dir * :pencil2: Add test for versioned node * :pencil2: Add test for node in grouped dir * :pencil2: Add minor clarifications * :pencil2: Add nested collection test * :pencil2: Add pending functionality * :zap: Generalize collections handling * :truck: Rename helper to remove redundancy * :truck: Improve naming in helpers * :pencil2: Improve helpers documentation * :pencil2: Improve i18n methods documentation * :truck: Make endpoint naming consistent * :pencil2: Add final newlines * :pencil2: Clean up JSON examples * :zap: Reuse i18n method * :zap: Improve utils readability * :zap: Return early if cred translation exists * :fire: Remove dummy translations
2022-01-07 13:02:21 -08:00
locale,
toTranslationFile(cur),
2021-11-18 02:32:13 -08:00
);
:zap: i18n feedback refactorings (#2597) * :zap: Create endpoint for node credential translation * :zap: Add API helper method in FE * :hammer: Add creds JSON files to tsconfig * :zap: Refactor credentials loading * :zap: Refactor calls in CredentialConfig * :pencil2: Add dummy translations * :zap: Split translations per node * :fire: Remove deprecated method * :zap: Refactor nesting in collections * :truck: Rename topParameter methods for accuracy * :pencil2: Fill out GitHub dummy cred * :truck: Clarify naming for collection utils * :pencil2: Fill out dummy translation * :fire: Remove surplus colons * :fire: Remove logging * :zap: Restore missing space * :fire: Remove lingering colon * :zap: Add path to InputLabel calls * :pencil2: Fill out dummy translations * :bug: Fix multipleValuesButtonText logic * :zap: Add sample properties to be deleted * :zap: Render deeply nested params * :package: Update package-lock.json * :fire: remove logging * :pencil2: Add dummy value to Slack translation * :pencil2: Add placeholder to dummy translation * :zap: Fix placeholder rendering for button text * :shirt: Fix lint * :fire: Remove outdated comment * :bug: Pass in missing arg for placeholder * :pencil2: Fill out Slack translation * :zap: Add explanatory comment * :pencil2: Fill out dummy translation * :pencil2: Update documentation * :fire: Remove broken link * :pencil2: Add pending functionality * :pencil2: Fix indentation * :bug: Fix method call in CredentialEdit * :zap: Implement eventTriggerDescription * :bug: Fix table-json-binary radio buttons * :pencil2: Clarify usage of eventTriggerDescription * :fire: Remove unneeded arg * :bug: Fix display in CodeEdit and TextEdit * :fire: Remove logging * :pencil2: Add translation for test cred options * :pencil2: Add test for separate file in same dir * :pencil2: Add test for versioned node * :pencil2: Add test for node in grouped dir * :pencil2: Add minor clarifications * :pencil2: Add nested collection test * :pencil2: Add pending functionality * :zap: Generalize collections handling * :truck: Rename helper to remove redundancy * :truck: Improve naming in helpers * :pencil2: Improve helpers documentation * :pencil2: Improve i18n methods documentation * :truck: Make endpoint naming consistent * :pencil2: Add final newlines * :pencil2: Clean up JSON examples * :zap: Reuse i18n method * :zap: Improve utils readability * :zap: Return early if cred translation exists * :fire: Remove dummy translations
2022-01-07 13:02:21 -08:00
if (existsSync(nodeTranslationPath)) {
acc.push(nodeTranslationPath);
}
:sparkles: Update credentials modal (#2154) * :zap: Generalize unique entity name generation * :zap: Standardize variable names * redo credentials * revert some changes, replace got with was * fix v-if order * fix v-if order * update linting * update gulpfile * update ssh display name * update height * update params * update info tip sizes * address design comments * update google button disabled * update icon size to 28px * update design issues * update info tab design * address design comments * update tab size * update run data spacing * address comments, update logo design * fix spacing issues * clean up store * fix create new bug * add loading state * rename prop * remove unused prop * fix select bug * remove label tag * update word break * build * address design comments * update font family of button * update menu opacity * update text * update title * address more comments * update oauth messages * add oauth validation * hide disabled state * update warning modal * show button on text input * clean up cred details * add validation errors * fix bug when deleting cred * Frontend hack to display test button * Created interfaces for testing and endpoint * Testing slack node credentials working * Adding test with node to endpoint for credential testing * Fixed linting and test detectability * Adding required for slack token * Added google sheets credential testing * update message * Adding suggestions by Ivan and Mutasem * Address comments * keep blurred when focused * update font weight of errors * add oauth banner * remove toast * Fixed code bug and added telegram credential testing * scroll to top on success * clean up duplication * Fixed telegram trigger node and added tests to typeform * refactor modal * add more validation support * refactor info tab * scroll to bottom on save, handle cred saving * refactor save button * save cred on valid * save cred on valid * scroll to top if has error * add targets on input labels * delete credentails input * revert fe changes * update validation logic * clean interface * test credentials * update banner design * show testing state * update x position * fix issues * fix focus issues * clean up validation behavior * make error relative * update banner component * update error spacing * don't close dialog * rename button * update how banners behave * if has unsaved changes first * move confirm message * add success banner * update time state * disable transitions * test on open * clean up banner behavior * update banner styling * capitalize * update error banner styling to handle long texts * avoid unnessary content jostling * add loading label * show validation warnings when opening modal * retest cred if not all props req * update scroll to auto * add error warning * update color saturation * set overflow to auto * fix bug to get credentials when connected * round down to minutes * change tab name * update casing oauth * disable credential testing if it has expressions * label same as title * add more space between close and save * remove check on making any changes * hide close on confirm modals * don't accept clicks outside dialog * fix build issues * undo test changes * fix table scrollbar logs * rename modals * fix bug with same name * refactor modal * fix tslint issue * refactor name * update name behavior * update monospace font * remove comment * refactor inputs * refactor error handling * reduce spacing changes * fix doc url oauth1 oauth2 * build * hide infotip if no inputs * address most comments * rename file * fix menu alignment * gst * update types Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Omar Ajoue <krynble@gmail.com>
2021-09-11 01:15:36 -07:00
2021-11-18 02:32:13 -08:00
return acc;
}, []);
2019-06-23 03:35:23 -07:00
}
:zap: i18n feedback refactorings (#2597) * :zap: Create endpoint for node credential translation * :zap: Add API helper method in FE * :hammer: Add creds JSON files to tsconfig * :zap: Refactor credentials loading * :zap: Refactor calls in CredentialConfig * :pencil2: Add dummy translations * :zap: Split translations per node * :fire: Remove deprecated method * :zap: Refactor nesting in collections * :truck: Rename topParameter methods for accuracy * :pencil2: Fill out GitHub dummy cred * :truck: Clarify naming for collection utils * :pencil2: Fill out dummy translation * :fire: Remove surplus colons * :fire: Remove logging * :zap: Restore missing space * :fire: Remove lingering colon * :zap: Add path to InputLabel calls * :pencil2: Fill out dummy translations * :bug: Fix multipleValuesButtonText logic * :zap: Add sample properties to be deleted * :zap: Render deeply nested params * :package: Update package-lock.json * :fire: remove logging * :pencil2: Add dummy value to Slack translation * :pencil2: Add placeholder to dummy translation * :zap: Fix placeholder rendering for button text * :shirt: Fix lint * :fire: Remove outdated comment * :bug: Pass in missing arg for placeholder * :pencil2: Fill out Slack translation * :zap: Add explanatory comment * :pencil2: Fill out dummy translation * :pencil2: Update documentation * :fire: Remove broken link * :pencil2: Add pending functionality * :pencil2: Fix indentation * :bug: Fix method call in CredentialEdit * :zap: Implement eventTriggerDescription * :bug: Fix table-json-binary radio buttons * :pencil2: Clarify usage of eventTriggerDescription * :fire: Remove unneeded arg * :bug: Fix display in CodeEdit and TextEdit * :fire: Remove logging * :pencil2: Add translation for test cred options * :pencil2: Add test for separate file in same dir * :pencil2: Add test for versioned node * :pencil2: Add test for node in grouped dir * :pencil2: Add minor clarifications * :pencil2: Add nested collection test * :pencil2: Add pending functionality * :zap: Generalize collections handling * :truck: Rename helper to remove redundancy * :truck: Improve naming in helpers * :pencil2: Improve helpers documentation * :pencil2: Improve i18n methods documentation * :truck: Make endpoint naming consistent * :pencil2: Add final newlines * :pencil2: Clean up JSON examples * :zap: Reuse i18n method * :zap: Improve utils readability * :zap: Return early if cred translation exists * :fire: Remove dummy translations
2022-01-07 13:02:21 -08:00
function getHeaders(nodeTranslationPaths) {
return nodeTranslationPaths.reduce((acc, cur) => {
const { header } = require(cur);
const nodeType = cur.split('/').pop().replace('.json', '');
2021-11-18 02:32:13 -08:00
:zap: i18n feedback refactorings (#2597) * :zap: Create endpoint for node credential translation * :zap: Add API helper method in FE * :hammer: Add creds JSON files to tsconfig * :zap: Refactor credentials loading * :zap: Refactor calls in CredentialConfig * :pencil2: Add dummy translations * :zap: Split translations per node * :fire: Remove deprecated method * :zap: Refactor nesting in collections * :truck: Rename topParameter methods for accuracy * :pencil2: Fill out GitHub dummy cred * :truck: Clarify naming for collection utils * :pencil2: Fill out dummy translation * :fire: Remove surplus colons * :fire: Remove logging * :zap: Restore missing space * :fire: Remove lingering colon * :zap: Add path to InputLabel calls * :pencil2: Fill out dummy translations * :bug: Fix multipleValuesButtonText logic * :zap: Add sample properties to be deleted * :zap: Render deeply nested params * :package: Update package-lock.json * :fire: remove logging * :pencil2: Add dummy value to Slack translation * :pencil2: Add placeholder to dummy translation * :zap: Fix placeholder rendering for button text * :shirt: Fix lint * :fire: Remove outdated comment * :bug: Pass in missing arg for placeholder * :pencil2: Fill out Slack translation * :zap: Add explanatory comment * :pencil2: Fill out dummy translation * :pencil2: Update documentation * :fire: Remove broken link * :pencil2: Add pending functionality * :pencil2: Fix indentation * :bug: Fix method call in CredentialEdit * :zap: Implement eventTriggerDescription * :bug: Fix table-json-binary radio buttons * :pencil2: Clarify usage of eventTriggerDescription * :fire: Remove unneeded arg * :bug: Fix display in CodeEdit and TextEdit * :fire: Remove logging * :pencil2: Add translation for test cred options * :pencil2: Add test for separate file in same dir * :pencil2: Add test for versioned node * :pencil2: Add test for node in grouped dir * :pencil2: Add minor clarifications * :pencil2: Add nested collection test * :pencil2: Add pending functionality * :zap: Generalize collections handling * :truck: Rename helper to remove redundancy * :truck: Improve naming in helpers * :pencil2: Improve helpers documentation * :pencil2: Improve i18n methods documentation * :truck: Make endpoint naming consistent * :pencil2: Add final newlines * :pencil2: Clean up JSON examples * :zap: Reuse i18n method * :zap: Improve utils readability * :zap: Return early if cred translation exists * :fire: Remove dummy translations
2022-01-07 13:02:21 -08:00
if (isValidHeader(header, ALLOWED_HEADER_KEYS)) {
acc[nodeType] = header;
}
2021-11-18 02:32:13 -08:00
return acc;
}, {});
2021-11-18 02:32:13 -08:00
}
// ----------------------------------
// helpers
// ----------------------------------
:zap: i18n feedback refactorings (#2597) * :zap: Create endpoint for node credential translation * :zap: Add API helper method in FE * :hammer: Add creds JSON files to tsconfig * :zap: Refactor credentials loading * :zap: Refactor calls in CredentialConfig * :pencil2: Add dummy translations * :zap: Split translations per node * :fire: Remove deprecated method * :zap: Refactor nesting in collections * :truck: Rename topParameter methods for accuracy * :pencil2: Fill out GitHub dummy cred * :truck: Clarify naming for collection utils * :pencil2: Fill out dummy translation * :fire: Remove surplus colons * :fire: Remove logging * :zap: Restore missing space * :fire: Remove lingering colon * :zap: Add path to InputLabel calls * :pencil2: Fill out dummy translations * :bug: Fix multipleValuesButtonText logic * :zap: Add sample properties to be deleted * :zap: Render deeply nested params * :package: Update package-lock.json * :fire: remove logging * :pencil2: Add dummy value to Slack translation * :pencil2: Add placeholder to dummy translation * :zap: Fix placeholder rendering for button text * :shirt: Fix lint * :fire: Remove outdated comment * :bug: Pass in missing arg for placeholder * :pencil2: Fill out Slack translation * :zap: Add explanatory comment * :pencil2: Fill out dummy translation * :pencil2: Update documentation * :fire: Remove broken link * :pencil2: Add pending functionality * :pencil2: Fix indentation * :bug: Fix method call in CredentialEdit * :zap: Implement eventTriggerDescription * :bug: Fix table-json-binary radio buttons * :pencil2: Clarify usage of eventTriggerDescription * :fire: Remove unneeded arg * :bug: Fix display in CodeEdit and TextEdit * :fire: Remove logging * :pencil2: Add translation for test cred options * :pencil2: Add test for separate file in same dir * :pencil2: Add test for versioned node * :pencil2: Add test for node in grouped dir * :pencil2: Add minor clarifications * :pencil2: Add nested collection test * :pencil2: Add pending functionality * :zap: Generalize collections handling * :truck: Rename helper to remove redundancy * :truck: Improve naming in helpers * :pencil2: Improve helpers documentation * :pencil2: Improve i18n methods documentation * :truck: Make endpoint naming consistent * :pencil2: Add final newlines * :pencil2: Clean up JSON examples * :zap: Reuse i18n method * :zap: Improve utils readability * :zap: Return early if cred translation exists * :fire: Remove dummy translations
2022-01-07 13:02:21 -08:00
function toTranslationFile(distPath) {
const raw = distPath.split('/').pop().replace('.node', '') + 'on';
return raw.charAt(0).toLowerCase() + raw.slice(1);
}
2021-11-18 02:32:13 -08:00
function isValidHeader(header, allowedHeaderKeys) {
if (!header) return false;
const headerKeys = Object.keys(header);
return headerKeys.length > 0 && headerKeys.every((key) => allowedHeaderKeys.includes(key));
2021-11-18 02:32:13 -08:00
}
:zap: i18n feedback refactorings (#2597) * :zap: Create endpoint for node credential translation * :zap: Add API helper method in FE * :hammer: Add creds JSON files to tsconfig * :zap: Refactor credentials loading * :zap: Refactor calls in CredentialConfig * :pencil2: Add dummy translations * :zap: Split translations per node * :fire: Remove deprecated method * :zap: Refactor nesting in collections * :truck: Rename topParameter methods for accuracy * :pencil2: Fill out GitHub dummy cred * :truck: Clarify naming for collection utils * :pencil2: Fill out dummy translation * :fire: Remove surplus colons * :fire: Remove logging * :zap: Restore missing space * :fire: Remove lingering colon * :zap: Add path to InputLabel calls * :pencil2: Fill out dummy translations * :bug: Fix multipleValuesButtonText logic * :zap: Add sample properties to be deleted * :zap: Render deeply nested params * :package: Update package-lock.json * :fire: remove logging * :pencil2: Add dummy value to Slack translation * :pencil2: Add placeholder to dummy translation * :zap: Fix placeholder rendering for button text * :shirt: Fix lint * :fire: Remove outdated comment * :bug: Pass in missing arg for placeholder * :pencil2: Fill out Slack translation * :zap: Add explanatory comment * :pencil2: Fill out dummy translation * :pencil2: Update documentation * :fire: Remove broken link * :pencil2: Add pending functionality * :pencil2: Fix indentation * :bug: Fix method call in CredentialEdit * :zap: Implement eventTriggerDescription * :bug: Fix table-json-binary radio buttons * :pencil2: Clarify usage of eventTriggerDescription * :fire: Remove unneeded arg * :bug: Fix display in CodeEdit and TextEdit * :fire: Remove logging * :pencil2: Add translation for test cred options * :pencil2: Add test for separate file in same dir * :pencil2: Add test for versioned node * :pencil2: Add test for node in grouped dir * :pencil2: Add minor clarifications * :pencil2: Add nested collection test * :pencil2: Add pending functionality * :zap: Generalize collections handling * :truck: Rename helper to remove redundancy * :truck: Improve naming in helpers * :pencil2: Improve helpers documentation * :pencil2: Improve i18n methods documentation * :truck: Make endpoint naming consistent * :pencil2: Add final newlines * :pencil2: Clean up JSON examples * :zap: Reuse i18n method * :zap: Improve utils readability * :zap: Return early if cred translation exists * :fire: Remove dummy translations
2022-01-07 13:02:21 -08:00
function writeDistFile(data, distPath) {
writeFile(distPath, `module.exports = ${JSON.stringify(data, null, 2)}`);
2021-11-18 02:32:13 -08:00
}
const log = (string, { bulletPoint } = { bulletPoint: false }) => {
if (bulletPoint) {
process.stdout.write(colorize(PURPLE_ANSI_COLOR_CODE, `- ${string}\n`));
2021-11-18 02:32:13 -08:00
return;
}
2021-11-18 02:32:13 -08:00
process.stdout.write(`${string}\n`);
};
const colorize = (ansiColorCode, string) =>
2021-11-19 07:08:43 -08:00
['\033[', ansiColorCode, 'm', string, '\033[0m'].join('');
/**
* Write node translation headers to single file at `/dist/nodes/headers.js`.
*/
const { N8N_DEFAULT_LOCALE: locale } = process.env;
log(`Default locale set to: ${colorize(PURPLE_ANSI_COLOR_CODE, locale || 'en')}`);
if (!locale || locale === 'en') {
log('No translation required - Skipping translations build...');
return;
}
const nodeTranslationPaths = getNodeTranslationPaths();
const headers = getHeaders(nodeTranslationPaths);
const headersDistPath = path.join(packageDir, 'dist', 'nodes', 'headers.js');
writeDistFile(headers, headersDistPath);
log('Headers file written to:');
log(headersDistPath, { bulletPoint: true });