fix: topic event translations closes #12273

This commit is contained in:
Barış Soner Uşaklı
2024-01-10 17:44:52 -05:00
parent 82a936c380
commit 5f91cc833f

View File

@@ -30,43 +30,43 @@ const Events = module.exports;
Events._types = { Events._types = {
pin: { pin: {
icon: 'fa-thumb-tack', icon: 'fa-thumb-tack',
translation: async event => translateSimple(event, 'topic:user-pinned-topic'), translation: async (event, language) => translateSimple(event, language, 'topic:user-pinned-topic'),
}, },
unpin: { unpin: {
icon: 'fa-thumb-tack fa-rotate-90', icon: 'fa-thumb-tack fa-rotate-90',
translation: async event => translateSimple(event, 'topic:user-unpinned-topic'), translation: async (event, language) => translateSimple(event, language, 'topic:user-unpinned-topic'),
}, },
lock: { lock: {
icon: 'fa-lock', icon: 'fa-lock',
translation: async event => translateSimple(event, 'topic:user-locked-topic'), translation: async (event, language) => translateSimple(event, language, 'topic:user-locked-topic'),
}, },
unlock: { unlock: {
icon: 'fa-unlock', icon: 'fa-unlock',
translation: async event => translateSimple(event, 'topic:user-unlocked-topic'), translation: async (event, language) => translateSimple(event, language, 'topic:user-unlocked-topic'),
}, },
delete: { delete: {
icon: 'fa-trash', icon: 'fa-trash',
translation: async event => translateSimple(event, 'topic:user-deleted-topic'), translation: async (event, language) => translateSimple(event, language, 'topic:user-deleted-topic'),
}, },
restore: { restore: {
icon: 'fa-trash-o', icon: 'fa-trash-o',
translation: async event => translateSimple(event, 'topic:user-restored-topic'), translation: async (event, language) => translateSimple(event, language, 'topic:user-restored-topic'),
}, },
move: { move: {
icon: 'fa-arrow-circle-right', icon: 'fa-arrow-circle-right',
translation: async event => translateEventArgs(event, 'topic:user-moved-topic-from', renderUser(event), `${event.fromCategory.name}`, renderTimeago(event)), translation: async (event, language) => translateEventArgs(event, language, 'topic:user-moved-topic-from', renderUser(event), `${event.fromCategory.name}`, renderTimeago(event)),
}, },
'post-queue': { 'post-queue': {
icon: 'fa-history', icon: 'fa-history',
translation: async event => translateEventArgs(event, 'topic:user-queued-post', renderUser(event), `${relative_path}${event.href}`, renderTimeago(event)), translation: async (event, language) => translateEventArgs(event, language, 'topic:user-queued-post', renderUser(event), `${relative_path}${event.href}`, renderTimeago(event)),
}, },
backlink: { backlink: {
icon: 'fa-link', icon: 'fa-link',
translation: async event => translateEventArgs(event, 'topic:user-referenced-topic', renderUser(event), `${relative_path}${event.href}`, renderTimeago(event)), translation: async (event, language) => translateEventArgs(event, language, 'topic:user-referenced-topic', renderUser(event), `${relative_path}${event.href}`, renderTimeago(event)),
}, },
fork: { fork: {
icon: 'fa-code-fork', icon: 'fa-code-fork',
translation: async event => translateEventArgs(event, 'topic:user-forked-topic', renderUser(event), `${relative_path}${event.href}`, renderTimeago(event)), translation: async (event, language) => translateEventArgs(event, language, 'topic:user-forked-topic', renderUser(event), `${relative_path}${event.href}`, renderTimeago(event)),
}, },
}; };
@@ -76,14 +76,14 @@ Events.init = async () => {
Events._types = types; Events._types = types;
}; };
async function translateEventArgs(event, prefix, ...args) { async function translateEventArgs(event, language, prefix, ...args) {
const key = getTranslationKey(event, prefix); const key = getTranslationKey(event, prefix);
const compiled = translator.compile.apply(null, [key, ...args]); const compiled = translator.compile.apply(null, [key, ...args]);
return utils.decodeHTMLEntities(await translator.translate(compiled)); return utils.decodeHTMLEntities(await translator.translate(compiled, language));
} }
async function translateSimple(event, prefix) { async function translateSimple(event, language, prefix) {
return await translateEventArgs(event, prefix, renderUser(event), renderTimeago(event)); return await translateEventArgs(event, language, prefix, renderUser(event), renderTimeago(event));
} }
Events.translateSimple = translateSimple; // so plugins can perform translate Events.translateSimple = translateSimple; // so plugins can perform translate
@@ -162,9 +162,10 @@ async function modifyEvent({ tid, uid, eventIds, timestamps, events }) {
}); });
} }
const [users, fromCategories] = await Promise.all([ const [users, fromCategories, userSettings] = await Promise.all([
getUserInfo(events.map(event => event.uid).filter(Boolean)), getUserInfo(events.map(event => event.uid).filter(Boolean)),
getCategoryInfo(events.map(event => event.fromCid).filter(Boolean)), getCategoryInfo(events.map(event => event.fromCid).filter(Boolean)),
user.getSettings(uid),
]); ]);
// Remove backlink events if backlinks are disabled // Remove backlink events if backlinks are disabled
@@ -200,7 +201,7 @@ async function modifyEvent({ tid, uid, eventIds, timestamps, events }) {
await Promise.all(events.map(async (event) => { await Promise.all(events.map(async (event) => {
if (Events._types[event.type].translation) { if (Events._types[event.type].translation) {
event.text = await Events._types[event.type].translation(event); event.text = await Events._types[event.type].translation(event, userSettings.userLang);
} }
})); }));