simplex-chat/website/merge_translations.js
M Sarmad Qadeer f97a1fcedf
website: add docs to website (#2080)
* website: add fontmatter & improve image URLs where necessary

* website: add docs to website

* website: add prismjs for code highlighting

* website: change npm install position in web.sh

* website: fix an image URL in lang/cs/README.md

* website: improve image paths in lang/cs/translations.md

* website: add responsiveness & improve stylings of docs

* website: add dir to navbar in blog & docs

* website: remove scroll in mobile dropdown menu

* website: remove rfcs & add guide docs to website

* website: remove file renaming script from web.sh

* website: add menu to docs in nav

* website: add hash list & add scroll to headers

* website: customize docs frontmatter through JS

* website: remove supported_languages.json

* website: move merge_translations.js to JS folder

* website: add the following changes to docs
- add frontmatter to new doc merged from master
- add ignoreForWeb property to frontmatter of README.md docs

* website: remove package-lock.json from .gitignore

* website: add package-lock.json from .gitignore

* website: add no docs message to docs dropdown

* website: improve the sidebar of docs

* website: add revision date to docs

* website: add script to add version to docs frontmatter

* website: add layout to display message in docs if its version is old

* website: improve nav responsiveness

* website: remove frontmatter form main README & rfcs

* website: remove rfcs from website folder

* website: add ignore condition for rfcs in .eleventy

* website: remove frontmatter from lang README docs

* website: remove README from website's lang docs

* website: add guides menu in nav

* website: following changes
- add docs_dropdown.json
- extend reference menu in nav
- remove docs menu from nav

* website: fix in docs sidebar

* website: revert main docs README.md files

* website: revert main docs README.md files

* website: move scripts out of js that are for build

* website: remove displayAt form guide docs

* website: create a docs_sidebar.json & shift to that approach

* update navigation

* website: set navbar

* website: add icons to external links

* website: change the approach for docs sidebar creation

* website: update docs template

* website: add some strings to en.json and map them accordingly

* remove icon

---------

Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
2023-04-30 22:31:23 +01:00

36 lines
1.2 KiB
JavaScript

const fs = require("fs");
const path = require("path");
let supportedLangs = []
const translationsDirectoryPath = path.resolve(__dirname, "langs")
const files = fs.readdirSync(translationsDirectoryPath);
const jsonFileNames = files.filter(file => file.endsWith('.json'));
supportedLangs = jsonFileNames.map(file => file.replace('.json', ''))
// keys of the english language are used as the base keys
const enStrings = require(path.resolve(__dirname, "langs/en.json"))
const languages = {}
for (const lang of supportedLangs) {
languages[lang] = require(path.resolve(__dirname, `langs/${lang}.json`))
}
// this program generates a combined translations.json file
const translations = {}
for (const key in enStrings) {
const langStrings = {}
for (const lang of supportedLangs) {
const str = languages[lang][key]
if (str) langStrings[lang] = str
}
translations[key] = langStrings
}
saveFile(path.resolve(__dirname, "translations.json"), translations)
function saveFile(relPath, data) {
filePath = path.resolve(__dirname, relPath)
fs.writeFileSync(filePath, JSON.stringify(data, undefined, " "), 'utf-8');
console.log(`Data was successfully written to ${filePath}`);
}