Sure! That’s not too complicated. You can simply have a list of terms in long and iterate over them to create the second list. Then make sure you actually pass a content in long to glossarium.
#import "@preview/glossarium:0.5.6": *
#let list-a = (
(
key: "Foo",
long: ("Lorem", "Ipsum"),
description: [Comment A]
),
(
key: "Bar",
long: ("Dolor",),
description: [Comment B]
),
)
#let list-b = list-a.map(
x => for y in x.long {((
key: y,
long: x.key,
description: x.description
),)}
).flatten()
#list-b
#let list-a = list-a.map(
x => (
key: x.key,
long: x.long.join(", "),
description: x.description
)
)
#show: make-glossary
#register-glossary(list-a)
#register-glossary(list-b)
= English to Latin
#print-glossary(list-a, show-all: true)
= Latin to English
#print-glossary(list-b, show-all: true)