What does each OrgPreferenceSetting do?
Here are those I could find:
AnalyticsSharingEnable
(available in version 40.0 and later)Turn On Enhanced Folder Sharing for Reports and Dashboards (?)- Use Your Salesforce Sharing Settings in Wave
AsyncSaveEnabled
(available in version 40.0 and later)- Enabling Asynchronous API
ChatterEnabled
- Chatter Settings
EnhancedEmailEnabled
- Considerations for Setting Up Enhanced Email
EventLogWaveIntegEnabled
- Event Monitoring Wave App (GA)
LoginForensicsEnabled
- Monitor Login Activity with Login Forensics
NetworksEnabled
(available in version 40.0 and later)- Enable Salesforce Communities (?)
NotesReservedPref01
- Want to create a scratch org with Notes enabled via project-scratch-def.json
OfflineDraftsEnabled
- Enable Offline Access and Edit for the Salesforce App
PathAssistantsEnabled
- Sales Path: Help Reps Follow Your Company’s Sales Processes in Lightning Experience
S1DesktopEnabled
- Install and Customize Salesforce Desktop
S1EncryptedStoragePref2
- Create DX scratch org with caching disabled
S1OfflinePref
- Enable Offline Access and Edit for the Salesforce App
ScratchOrgManagementPref
(available in version 41.0 and later)- Enable Dev Hub in Your Org (?)
SendThroughGmailPref
- Send Email from Salesforce with Gmail™ or Office 365™
SocialProfilesEnable
- Set Up Social Accounts, Contacts, and Leads
Translation
(available in version 40.0 and later)- Support Users in Multiple Languages
VoiceEnabled
- Enable Lightning Dialer (?)
An up-to date way of matching the OrgPreferenceSettings
list is using the Settings metadata.
Using heroku/force CLI that would be:
force fetch -t Settings
Now you can search in the different settings metadata files for your org's preferences.
For example:
Accounts.settings
contains the enableAccountTeams
tag that would be translated IsAccountTeamsEnabled
in the scratch-org definition file.
I'd put a bounty on an automatic translation tool if I could.