ORIGINALS 1.7.1.15
Tools for virtual copies and their originals in Lightroom Classic

Originals is a free plug-in for selecting the originals of virtual copies
and transferring each copy's metadata to its own original: star ratings,
color labels, keywords and flags. For example, you can rate black-and-white
virtual copies and apply those individual ratings to their color originals.
It works with selected virtual copies in any collection.

LANGUAGE
The plug-in follows Lightroom's interface language automatically:
Italian when Lightroom is in Italian, English for other languages.
Menus, panels, buttons, summaries, messages and Undo operation names are
localized. The Originals name stays the same. Both languages are included
in one package. Your keyword names and custom label text are preserved.

WINDOWS INSTALLATION
1. Extract the ZIP. Move Originals.lrplugin to a stable location, such as
   Documents\LightroomPlugins. Keep the entire folder, including
   both TranslatedStrings files and the four PNG icons.
2. Open Lightroom Classic > File > Plug-in Manager > Add.
3. Select the Originals.lrplugin folder. Check that Originals is enabled
   and shows version 1.7.1.15.
4. The three commands appear under Library > Plug-in Extras.

UPDATING
Keep a backup of your plug-in folder before replacing its files.
Copy all updated files into the registered Originals.lrplugin folder.
In Plug-in Manager select Originals, then use Plug-in Author Tools >
Reload Plug-in and check the version. Restart Lightroom to load the new
translations. Add is needed only when changing the registered folder.
The internal plug-in identifier is unchanged.

UPDATES
File > Plug-in Manager > Originals includes an Updates section:
- Check for Updates... runs a manual check.
- Check automatically at startup enables a check when the plug-in loads,
  at most once every 24 hours. It is on for new installations. A saved
  choice to disable it survives restarts and upgrades from earlier versions.
  Enabling it applies from the next plug-in load; use the manual
  button to check immediately.
If a newer version is available, you can open the download page. Download
and extract the ZIP, replace the plug-in folder and restart Lightroom.
The plug-in does not automatically download, install or execute updates.
Automatic network errors are silent; manual checks report them. Automatic
checks notify you once for each newer version; the manual button can show
the same available update again later.

The check reads a small HTTPS file from alessandroavenali.com without sending
photos, paths, metadata, credentials or user identifiers. The request
identifies itself as Originals with the installed version. As with any web
request, the server receives the IP address and normal connection information.
The photographic functions remain available offline. You can turn automatic
checks off at any time.

COMMANDS

Select Originals
  Shows only the originals of the selected copies in the working
  collection Originals - Selection. Multiple copies of one original
  show a single photo; explicitly selected originals are included too.
  Filters used on the copies do not need to be reproduced on originals:
  the command uses the photos' catalog identities.
  The collection is reused and refreshed for each new selection, without
  changing other collections or creating new copies of the photos. It
  remains in the Collections panel after Return to Virtual Copies. Do
  not use it as permanent storage: the next command replaces its contents.
  Existing namesake collections are never adopted. Renaming the plug-in
  collection or adding virtual copies preserves it and creates a new one.
  A deleted working collection is recreated on the next command.
  Each actual update adds an Undo Update Originals Selection entry.
  Repeating an identical selection does not add another entry.

Return to Virtual Copies
  Restores the starting collection/folder, filters, selected photos and
  active photo, keeping any metadata changes made to the originals.
  The return point lasts until a successful return, the next trip from
  copies, or a plug-in reload/Lightroom restart. Running Select Originals
  again while on originals preserves the return point to the copies.
  Returning does not update the working collection or add an Undo entry.

Apply to Originals...
  The four category checkboxes are arranged in a two-column grid with
  icons and regular-weight labels. Instructions and the scope note are separated.
  Opens a panel with four checkboxes: Star ratings, Color labels, Flags
  and Keywords. All four are selected initially: this is "copy all" for
  the metadata handled by Originals. Uncheck categories you do not want,
  or use Select All and Select None. Continue is enabled when at least
  one category is selected.
  Click Continue, review the summary and confirm the transfer.
  The summary uses category panels with icons, bold headings, aligned
  statistics and smaller, separated notes set in italic. Copies with
  empty values are marked Ignored under their category. The same layout
  is used for results and when there are no changes to apply. Panels fit
  their content without an internal scrollbar.
  Develop settings and other metadata are not transferred.

WHAT IS TRANSFERRED
Star ratings: applies each copy's rating to its own original, including
lower ratings. Unrated copies do not clear ratings on originals.

Color labels: copies the exact label text from each virtual copy.
The displayed color depends on Lightroom's active color label set.
Copies without labels do not clear labels on originals.

Flags: applies Picked or Rejected. Unflagged copies are ignored.
Rejected is a flag: the plug-in does not delete photos.

Keywords: adds missing keywords and keeps those already on the original.
Multiple copies of one original contribute the union of their keywords.
Keyword hierarchies and attributes are retained; identical names in
different hierarchies remain distinct. No keywords are created, renamed
or removed.

TRANSFERS AND CONFLICTS
Run Apply to Originals while the virtual copies are selected. Selected
originals are ignored as sources. Target originals do not need to be
visible or belong to the same collection.

For ratings, labels and flags, conflicting non-empty values among selected
copies of one original skip only that field for that original. Other chosen
fields can still be applied. The summary reports conflicts; select just one
copy to choose which value to apply. Keywords are merged instead.

Each transfer changes only the chosen categories and can be undone with a
single Edit > Undo operation, including transfers with multiple categories.
For multiple categories the operation is named Apply to Originals; for one
category the name identifies that transfer. If you then use Select Originals
and update the working collection, the first Undo affects the collection,
and the next affects the transfer. Check the name shown in Edit before
undoing. The Apply command does not change
the collection, filters or selection. If an original value changes during
confirmation, the transfer stops and you need to run it again.

PLUG-IN PAGE
The Originals link in the Plug-in Manager Status section points to:
https://www.alessandroavenali.com/tools/

AUTHOR AND CONTACT
Created by Alessandro Avenali.
Website: https://www.alessandroavenali.com/
Email: alessandroavenali@gmail.com

File > Plug-in Manager > Originals includes an About and Contact section.
The website button opens your browser. Email the Author and Report a Problem
open drafts in your default email app. Problem reports provide prompts to
fill in, including versions, the command used and the full error message.
The plug-in does not send the email or automatically collect catalog data.

FIRST CHECK
1. Select 2-3 virtual copies with different values and record the originals'
   current values.
2. Try Apply to Originals with one category, then with all four.
3. Use Select Originals to check each pair, existing keywords and Develop
   settings, which should remain unchanged.
4. Use Return to Virtual Copies and check the initial selection, active
   photo and filters.
5. Check the name of Undo in Edit. After updating the working collection,
   first undo Update Originals Selection, then the transfer: that single
   transfer entry must restore all previous values. Repeat Select Originals
   with another group of copies and check that only their originals appear.
6. Check the contact panel and email draft buttons. Check the other
   supported interface language as well if you plan to distribute it.

VALIDATION STATUS
The initial rating transfer was confirmed working in Lightroom by the user.
This version passed 178 scenarios in each of three simulated configurations:
Italian, English and an unsupported language using English fallback
(534 executions). All 163 localized strings were checked.
Collection-based navigation and the Updates panel still need a check
inside Lightroom. The update service must be published on the website
before the complete network check.
The new interface and features added since the initial version still need
confirmation of transfers and Undo inside Lightroom. The new icon-based
summary in 1.5.0.8 was visually inspected in Lightroom on Windows.
The 1.5.1.9 layout without a scrollbar and the Italian translations were
confirmed after restarting Lightroom. Italic rendering and the shorter
Ignored labels, the first dialog and Previously unrated in 1.7.1.15
still require a native visual check.
Development took place on Windows; macOS has not been verified.

TECHNICAL NOTES
All metadata changes use the Lightroom SDK. The plug-in does not write
directly to .lrcat databases, RAW files or XMP files, and does not change
Develop settings. Any automatic XMP writing is managed by Lightroom.
Requires SDK 6.0 or later APIs; Python or other programs are not needed.
If an error occurs, keep the full message, plug-in version, command used
and Lightroom language.

LICENSE AND CHANGES
Distributed under the MIT License. Keep LICENSE.txt with copies.
Italian and English release notes are in RELEASE_NOTES.md.

RATING SUMMARY
Previously unrated counts the originals being updated that had no stars
before this transfer, including zero. It does not count ignored copies.
