Миграция локализации из Share
Скрипт для формирования модуля локализации из alfresco-share (выполняется в консоли браузера). Работает с версии uiserv 1.14.0+ После выполнения можно зайти в системные журналы и скачать новый модуль, после чего залить его в репозиторий:
Скрипт:
var getMessages = async (locale) => {
var resProm = await fetch('/share/service/messages.js?locale=' + locale);
if (resProm.status !== 200) {
resProm = await fetch('/share/noauth/messages.js?locale=' + locale);
}
res = await resProm.text();
var messagesRegexp = /global = (\{.+\})/;
var messagesRes = res.match(messagesRegexp);
return JSON.parse(messagesRes[1]);
};
var locales = ["en", "ru"];
var module = {"moduleId": "alfresco-messages", locales, order: -1, messages: {} };
var messagesByLocale = {};
var keys = {};
for (let locale of locales) {
messagesByLocale[locale] = await getMessages(locale);
for (let key in messagesByLocale[locale]) {
keys[key] = true;
}
}
for (let key of Object.keys(keys)) {
module.messages[key] = locales.map(l => {
let message = messagesByLocale[l][key];
if (message == null) {
for (let locale of locales) {
message = messagesByLocale[locale][key];
if (message != null) {
return message;
}
}
message = "";
}
return message;
});
}
var record = Citeck.Records.get('uiserv/i18n@');
for (let key in module) {
record.att(key, module[key]);
}
record.save();