Fastoche ! Un petit script LUA peut faire ça facilement.
Quelques indices :
catalog:getKeywords() donne la liste des mots-clés tout en haut de la hiérarchie
keyword:getSynonyms() donne la liste des synonymes d'un mot-clé
keyword:getChildren() donne la liste des mots-clés fils d'un parent
C'est dimanche et j'ai pas mal de boulot dans la maison, mais si tu n'es pas familier avec le scripting de LR, je veux bien te l'écrire demain matin dans le train.
Bon, j'ai été un peu présomptueux en disant que c'était fastoche :D Mais j'ai un script qui fonctionne, le voici :
local LrApplication = import 'LrApplication'
local LrTasks = import 'LrTasks'
local LrDialogs = import 'LrDialogs'
--
-- fonction récursive de traitement d'un mot-clé
--
function processKeyword(keyword, fullName)
local longName = keyword:getName()
if fullName ~= "" then
longName = fullName .. " -> " .. longName
end
-- Vérifie si le mot-clé a des enfants
childrenKeywords = keyword:getChildren()
if next(childrenKeywords) == nil then
-- Le mot-clé n'a pas d'enfants, on vérifie s'il a des synonymes
listSynonyms = keyword:getSynonyms()
if next(listSynonyms) == nil then
results = results .. "\n" .. longName .. " n'a pas de synonyme"
end
else
-- Traite les mots-clés enfants
for j, childKeyword in ipairs(childrenKeywords) do
processKeyword(childKeyword, longName)
end
end
return
end
--
-- fonction principale
--
LrTasks.startAsyncTask( function()
LrDialogs.message("Started!")
results = "Résultats :\n"
catalog = LrApplication.activeCatalog() -- obtient le catalogue actif
arrayTopKeywords = catalog:getKeywords() -- obtient la liste des mots-clés
for i,topKeyword in ipairs(arrayTopKeywords) do -- boucle sur les mots-clés
processKeyword(topKeyword, "")
end
LrDialogs.message(results)
end)
Pour l'utiliser, il faut que tu copies toutes les lignes en bleu, et que tu les mettes dans un fichier avec une extension ".lua", par exemple synonymes.lua
Attention de bien vérifier que ton système ne rajoute pas une extension .txt à ce fichier, sinon ça ne marchera pas. Je te conseille d'aller dans les options pour afficher les extensions.
Ensuite, il faut placer ce fichier dans un répertoire qui dépend de ton système :
- Sur MAC, c'est dans /Users/ton_utilisateur/Library/Application Support/Adobe/Lightroom/Scripts. Si le répertoire Scripts n'existe pas, tu le crées.
- Sur PC, c'est dans C:\Users\ton_utilisateur\AppData\Roaming\Adobe\Lightroom\Scripts. Idem ci-dessus, si le répertoire Scripts n'existe pas, tu le crées.
Ensuite, tu relances LR et tu dois voir un nouveau menu :
(https://s3-eu-west-1.amazonaws.com/cloud-pj/Public/chassimages/2018-10-16_LR_menu_script.png)
En cliquant sur ce menu, tu dois voir apparaître le nom que tu as donné au script, soit synonymes. Tu cliques dessus et le script s'exécute.
La liste des mots-clés sans synonyme va s'afficher dans une fenêtre. Si la liste est longue, tu ne vas pas tout voir, mais si tu sélectionnes une partie de cette liste et que tu appuies sur Ctrl-A (ou Cmd-A sur MAC) pour tout sélectionner et Ctrl-C (ou Cmd-C sur MAC) pour copier, tu pourras coller la liste entière dans un éditeur de texte.
Note : cette version ne vérifie la présence de synonymes que sur les mots-clés qui n'ont pas d'enfants. Mais je peux le modifier pour vérifier tous les mots-clés si nécessaire.