wp-m365-login/languages/m365-login.pot
Friederich Loheide 81b3a74ae5
Some checks are pending
CI / PHP lint (7.4) (pull_request) Waiting to run
CI / PHP lint (8.0) (pull_request) Waiting to run
CI / PHP lint (8.1) (pull_request) Waiting to run
CI / PHP lint (8.2) (pull_request) Waiting to run
CI / PHP lint (8.3) (pull_request) Waiting to run
CI / PHP lint (8.4) (pull_request) Waiting to run
CI / WordPress Coding Standards (pull_request) Waiting to run
CI / WordPress.org Plugin Check (pull_request) Waiting to run
Let administrators link Microsoft accounts whose UPN differs from mail
Privileged accounts are never linked through the settable mail
attribute. Two new ways make that workable when UPN and e-mail differ:

- "Link Microsoft account" on the profile screen: the signed-in user
  (nonce, same browser via the state cookie, same user at the callback)
  signs in with Microsoft once and binds that identity. Existing links
  can only be removed by an administrator; an object ID bound elsewhere
  is refused.
- "Assigned Microsoft account (UPN)" per user, editable by
  administrators, used by sign-in and user sync; with an option to
  remove a link.

Sign-in now finds accounts by bound object ID first, then by assigned
UPN, then by e-mail, so linked users sign in whatever their addresses.

Also: third-audit report (docs/security-audit.md section 7), README
section on linking administrator accounts, translations, tests.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 03:57:45 +00:00

1706 lines
54 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Copyright (C) 2026 friloo
# This file is distributed under the GPL-2.0-or-later.
msgid ""
msgstr ""
"Project-Id-Version: M365 Login 1.1.0\n"
"Report-Msgid-Bugs-To: https://github.com/friloo/wp-m365-login/issues\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2026-09-23T00:00:00+00:00\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"X-Generator: bin/make-pot.py\n"
"X-Domain: m365-login\n"
#: includes/class-m365-login-admin.php:108 includes/class-m365-login-admin.php:109 includes/class-m365-login-admin.php:120 includes/class-m365-login-admin.php:779
msgid "M365 Login"
msgstr ""
#: includes/class-m365-login-admin.php:135
msgid "Connection"
msgstr ""
#: includes/class-m365-login-admin.php:136
msgid "Button"
msgstr ""
#: includes/class-m365-login-admin.php:137
msgid "Security"
msgstr ""
#: includes/class-m365-login-admin.php:138
msgid "User sync"
msgstr ""
#: includes/class-m365-login-admin.php:207
msgid "M365 Login: button-only mode is on, but the connection to Microsoft is broken (missing or undecryptable secret, or expired certificate). Nobody can sign in except through the fallback link."
msgstr ""
#: includes/class-m365-login-admin.php:209 includes/class-m365-login-admin.php:227
msgid "Open the settings"
msgstr ""
#: includes/class-m365-login-admin.php:225
msgid "M365 Login is active but not connected to Microsoft Entra ID yet."
msgstr ""
#: includes/class-m365-login-admin.php:263
msgid "Choose button icon"
msgstr ""
#: includes/class-m365-login-admin.php:264
msgid "Use this icon"
msgstr ""
#: includes/class-m365-login-admin.php:265
msgid "Copied!"
msgstr ""
#: includes/class-m365-login-admin.php:266 includes/class-m365-login-admin.php:905 includes/class-m365-login-admin.php:1172 includes/class-m365-login-admin.php:1217
msgid "Copy"
msgstr ""
#: includes/class-m365-login-admin.php:267
msgid "Testing…"
msgstr ""
#: includes/class-m365-login-admin.php:268
msgid "The tenant could not be reached. Check the tenant ID and the servers outgoing connections."
msgstr ""
#: includes/class-m365-login-admin.php:269
msgid "No groups found."
msgstr ""
#: includes/class-m365-login-admin.php:270
msgid "Searching…"
msgstr ""
#: includes/class-m365-login-admin.php:271
msgid "Add"
msgstr ""
#: includes/class-m365-login-admin.php:272 includes/class-m365-login-admin.php:528
msgid "Remove"
msgstr ""
#: includes/class-m365-login-admin.php:273 includes/class-m365-login-admin.php:336 includes/class-m365-login-admin.php:501
msgid "Save the connection settings first, then search for groups."
msgstr ""
#: includes/class-m365-login-admin.php:274
msgid "Generate a new fallback key on save? The old link stops working."
msgstr ""
#: includes/class-m365-login-admin.php:275
msgid "Generating a 3072-bit key pair, this takes a moment…"
msgstr ""
#: includes/class-m365-login-admin.php:276
msgid "Replace the stored certificate? Sign-in stops working until the new certificate is uploaded to Entra ID."
msgstr ""
#: includes/class-m365-login-admin.php:277
msgid "Remove the stored certificate when saving? Sign-in with the certificate method stops working."
msgstr ""
#: includes/class-m365-login-admin.php:278
msgid "Sync is running, this can take a while for large directories…"
msgstr ""
#: includes/class-m365-login-admin.php:279
msgid "Run the sync now with the saved settings? Accounts are created, updated and possibly deactivated or deleted. Tip: run a dry run first."
msgstr ""
#: includes/class-m365-login-admin.php:280
msgid "The request failed or timed out. Reload the page in a few minutes to see the report; for very large directories use \"wp m365-login sync\" (WP-CLI)."
msgstr ""
#: includes/class-m365-login-admin.php:281
msgid "You have unsaved changes. The sync uses the saved settings save first."
msgstr ""
#: includes/class-m365-login-admin.php:282 includes/class-m365-login-admin.php:515
msgid "Move up"
msgstr ""
#: includes/class-m365-login-admin.php:294 includes/class-m365-login-admin.php:333 includes/class-m365-login-admin.php:359 includes/class-m365-login-admin.php:392 includes/class-m365-login-admin.php:566 includes/class-m365-login-sync.php:2224
msgid "You are not allowed to do this."
msgstr ""
#: includes/class-m365-login-admin.php:299
msgid "Please enter a valid tenant ID first."
msgstr ""
#. translators: %d: HTTP status code
#: includes/class-m365-login-admin.php:313
msgid "Microsoft answered with HTTP %d. Is the tenant ID correct?"
msgstr ""
#. translators: %d: HTTP status code
#: includes/class-m365-login-admin.php:322
msgid "Tenant reachable. The OpenID configuration was loaded successfully."
msgstr ""
#: includes/class-m365-login-admin.php:345
msgid "Microsoft Graph refused the request. Grant the application permission \"GroupMember.Read.All\" (or \"Directory.Read.All\") with admin consent in Entra ID."
msgstr ""
#: includes/class-m365-login-admin.php:363
msgid "Unknown operation."
msgstr ""
#: includes/class-m365-login-admin.php:380
msgid "Certificate generated and stored. Download the .cer file and upload it in Entra ID."
msgstr ""
#: includes/class-m365-login-admin.php:407
msgid "The sync has not run yet."
msgstr ""
#: includes/class-m365-login-admin.php:411
msgid "Finished"
msgstr ""
#: includes/class-m365-login-admin.php:412
msgid "Failed"
msgstr ""
#: includes/class-m365-login-admin.php:413
msgid "Stopped by the safety limit"
msgstr ""
#: includes/class-m365-login-admin.php:414
msgid "Not started"
msgstr ""
#: includes/class-m365-login-admin.php:417
msgid "started manually"
msgstr ""
#: includes/class-m365-login-admin.php:418
msgid "scheduled"
msgstr ""
#: includes/class-m365-login-admin.php:419
msgid "WP-CLI"
msgstr ""
#: includes/class-m365-login-admin.php:422
msgid "would be created"
msgstr ""
#: includes/class-m365-login-admin.php:422
msgid "created"
msgstr ""
#: includes/class-m365-login-admin.php:423
msgid "would be updated"
msgstr ""
#: includes/class-m365-login-admin.php:423
msgid "updated"
msgstr ""
#: includes/class-m365-login-admin.php:424
msgid "would be linked"
msgstr ""
#: includes/class-m365-login-admin.php:424
msgid "linked"
msgstr ""
#: includes/class-m365-login-admin.php:425
msgid "unchanged"
msgstr ""
#: includes/class-m365-login-admin.php:426
msgid "would be deactivated"
msgstr ""
#: includes/class-m365-login-admin.php:426
msgid "deactivated"
msgstr ""
#: includes/class-m365-login-admin.php:427
msgid "would be reactivated"
msgstr ""
#: includes/class-m365-login-admin.php:427
msgid "reactivated"
msgstr ""
#: includes/class-m365-login-admin.php:428
msgid "would be deleted"
msgstr ""
#: includes/class-m365-login-admin.php:428
msgid "deleted"
msgstr ""
#: includes/class-m365-login-admin.php:429
msgid "photos"
msgstr ""
#: includes/class-m365-login-admin.php:430
msgid "skipped"
msgstr ""
#: includes/class-m365-login-admin.php:431
msgid "errors"
msgstr ""
#: includes/class-m365-login-admin.php:444
msgid "Dry run nothing was changed"
msgstr ""
#. translators: 1: date and time, 2: how the run was started, 3: duration in seconds
#: includes/class-m365-login-admin.php:449
msgid "%1$s, %2$s, %3$d s"
msgstr ""
#. translators: %d: number of log entries
#: includes/class-m365-login-admin.php:467
msgid "Log (%d entry)"
msgid_plural "Log (%d entries)"
msgstr[0] ""
msgstr[1] ""
#: includes/class-m365-login-admin.php:495
msgid "Search groups"
msgstr ""
#: includes/class-m365-login-admin.php:497
msgid "Type a group name or paste an object ID…"
msgstr ""
#: includes/class-m365-login-admin.php:498
msgid "Search"
msgstr ""
#: includes/class-m365-login-admin.php:503
msgid "Needs the application permission \"GroupMember.Read.All\" with admin consent. Without it you can still paste group object IDs."
msgstr ""
#: includes/class-m365-login-admin.php:509
msgid "Selected groups"
msgstr ""
#: includes/class-m365-login-admin.php:521
msgid "WordPress role"
msgstr ""
#: includes/class-m365-login-admin.php:573
msgid "No certificate is stored."
msgstr ""
#: includes/class-m365-login-admin.php:598
msgid "Do nothing"
msgstr ""
#: includes/class-m365-login-admin.php:599
msgid "Deactivate the WordPress account"
msgstr ""
#: includes/class-m365-login-admin.php:600
msgid "Delete the WordPress account"
msgstr ""
#: includes/class-m365-login-admin.php:603
msgid "Account disabled in Microsoft 365 (sign-in blocked)"
msgstr ""
#: includes/class-m365-login-admin.php:604
msgid "Account deleted in Microsoft 365"
msgstr ""
#: includes/class-m365-login-admin.php:605
msgid "No longer a member of the sync groups"
msgstr ""
#: includes/class-m365-login-admin.php:610
msgid "Import users from Microsoft 365"
msgstr ""
#: includes/class-m365-login-admin.php:611
msgid "Creates a WordPress account for every Microsoft 365 user in scope, links existing accounts by e-mail address, keeps roles and profile fields up to date and deactivates or deletes accounts that were disabled or removed in Microsoft 365. New accounts get a random password and no e-mail; people sign in with the Microsoft button."
msgstr ""
#: includes/class-m365-login-admin.php:616
msgid "Run the sync automatically"
msgstr ""
#: includes/class-m365-login-admin.php:617
msgid "Uses WP-Cron, which runs when the site receives visits. For exact timing, trigger wp-cron.php from a real cron job or run \"wp m365-login sync\"."
msgstr ""
#: includes/class-m365-login-admin.php:623
msgid "Interval"
msgstr ""
#: includes/class-m365-login-admin.php:625
msgid "Hourly"
msgstr ""
#: includes/class-m365-login-admin.php:626
msgid "Twice daily"
msgstr ""
#: includes/class-m365-login-admin.php:627
msgid "Daily"
msgstr ""
#. translators: %s: date and time
#: includes/class-m365-login-admin.php:631
msgid "Next run: %s"
msgstr ""
#: includes/class-m365-login-admin.php:639
msgid "Also import guest users (B2B)"
msgstr ""
#: includes/class-m365-login-admin.php:640
msgid "Guests are external people invited into your tenant. Off by default."
msgstr ""
#: includes/class-m365-login-admin.php:644
msgid "Which users? (optional)"
msgstr ""
#: includes/class-m365-login-admin.php:645
msgid "Limit the import to members of these groups (nested memberships count). Without groups, every user of the tenant is imported. The e-mail domain allow-list on the Security tab applies as well."
msgstr ""
#: includes/class-m365-login-admin.php:646
msgid "No groups selected all users of the tenant are imported."
msgstr ""
#: includes/class-m365-login-admin.php:650
msgid "Roles"
msgstr ""
#: includes/class-m365-login-admin.php:653
msgid "Default role"
msgstr ""
#: includes/class-m365-login-admin.php:657
msgid "Every imported user gets this role. The sync manages the roles of imported accounts manual role changes are overwritten on the next run."
msgstr ""
#: includes/class-m365-login-admin.php:660
msgid "Additional roles from Microsoft 365 groups"
msgstr ""
#: includes/class-m365-login-admin.php:661
msgid "Members of a group (nested memberships count) get the role next to it. If a person leaves the group, the role is removed again on the next sync."
msgstr ""
#: includes/class-m365-login-admin.php:662
msgid "Whoever can change a group's members controls the mapped role. For roles with administrative rights use security groups (ideally role-assignable ones) never public Microsoft 365 groups or Teams, which members can join themselves."
msgstr ""
#: includes/class-m365-login-admin.php:663
msgid "No group mapping everybody gets the default role."
msgstr ""
#: includes/class-m365-login-admin.php:666
msgid "How are mapped roles applied?"
msgstr ""
#: includes/class-m365-login-admin.php:669
msgid "In addition to the default role (a user can have several roles)"
msgstr ""
#: includes/class-m365-login-admin.php:673
msgid "Instead of the default role the first matching group in the list wins (use ↑ to reorder)"
msgstr ""
#: includes/class-m365-login-admin.php:680
msgid "Also manage the roles of accounts that existed before the sync"
msgstr ""
#: includes/class-m365-login-admin.php:681
msgid "Off: existing accounts are only linked and get their profile fields updated; their roles stay as they are. Administrators that existed before the sync and your own account are never changed."
msgstr ""
#: includes/class-m365-login-admin.php:687
msgid "Profile fields"
msgstr ""
#: includes/class-m365-login-admin.php:688
msgid "Selected Microsoft 365 attributes are copied into the WordPress profile on every sync (Microsoft 365 wins). Name fields go into the standard profile fields, everything else into user meta keys starting with \"m365_\" usable by themes and other plugins and is shown on the profile screen."
msgstr ""
#: includes/class-m365-login-admin.php:697
msgid "Profile photos are stored in wp-content/uploads/m365-login-avatars/ and replace the Gravatar. They are compared on every run: changed photos are downloaded again, photos deleted in Microsoft 365 are deleted in WordPress too. Fields and photos you deselect here are removed from the profiles on the next run (first and last name and display name stay)."
msgstr ""
#: includes/class-m365-login-admin.php:701
msgid "Disabled and deleted Microsoft 365 accounts"
msgstr ""
#: includes/class-m365-login-admin.php:702
msgid "Applies to WordPress accounts linked to a Microsoft account (imported, or signed in with Microsoft at least once). Deactivated accounts cannot sign in at all not with Microsoft, a password or an application password and are signed out immediately. When the person is active in Microsoft 365 again, the sync reactivates the account."
msgstr ""
#: includes/class-m365-login-admin.php:713
msgid "Only relevant when the import is limited to groups."
msgstr ""
#: includes/class-m365-login-admin.php:719
msgid "Posts of deleted accounts go to"
msgstr ""
#: includes/class-m365-login-admin.php:727
msgid "— Select a user —"
msgstr ""
#: includes/class-m365-login-admin.php:734
msgid "Required for \"Delete\". Without a user, accounts are deactivated instead, so no content is ever lost."
msgstr ""
#: includes/class-m365-login-admin.php:737
msgid "Safety stop: if a run would deactivate or delete more than 20 % of the linked accounts (at least 5), nothing is deactivated or deleted and the run is reported as stopped. A failed Microsoft Graph request also stops the run before anything is deactivated."
msgstr ""
#: includes/class-m365-login-admin.php:741
msgid "Run the sync"
msgstr ""
#: includes/class-m365-login-admin.php:742
msgid "The run uses the saved settings. Start with a dry run: it reads Microsoft 365 and lists what would change, without changing anything."
msgstr ""
#: includes/class-m365-login-admin.php:744
msgid "Dry run"
msgstr ""
#: includes/class-m365-login-admin.php:745
msgid "Sync now"
msgstr ""
#: includes/class-m365-login-admin.php:747
msgid "Required application permissions (Microsoft Graph, admin consent): User.Read.All, and GroupMember.Read.All when groups are used."
msgstr ""
#: includes/class-m365-login-admin.php:761
msgid "You are not allowed to access this page."
msgstr ""
#: includes/class-m365-login-admin.php:780
msgid "Let existing users sign in with their Microsoft 365 / Entra ID account."
msgstr ""
#: includes/class-m365-login-admin.php:785
msgid "Connected"
msgstr ""
#: includes/class-m365-login-admin.php:785
msgid "Setup incomplete"
msgstr ""
#: includes/class-m365-login-admin.php:807
msgid "Microsoft Entra ID app registration"
msgstr ""
#: includes/class-m365-login-admin.php:808
msgid "Enter the values from your app registration in the Microsoft Entra admin center."
msgstr ""
#: includes/class-m365-login-admin.php:811
msgid "Directory (tenant) ID"
msgstr ""
#: includes/class-m365-login-admin.php:814
msgid "Test tenant"
msgstr ""
#: includes/class-m365-login-admin.php:816
msgid "Recommended: the GUID of your tenant. Only sign-ins from this tenant are accepted. \"organizations\" allows any work or school account."
msgstr ""
#: includes/class-m365-login-admin.php:818
msgid "Multi-tenant mode: accounts from any Microsoft tenant can sign in. Their \"email\" attribute is not verified, so the plugin matches on the user principal name (verified domain) only and ignores the e-mail claim unless Microsoft marks it as domain-verified. Use the e-mail domain allow-list on the Security tab, or better, pin your tenant GUID."
msgstr ""
#: includes/class-m365-login-admin.php:824
msgid "Application (client) ID"
msgstr ""
#: includes/class-m365-login-admin.php:829
msgid "How should WordPress authenticate to Microsoft?"
msgstr ""
#: includes/class-m365-login-admin.php:834 includes/class-m365-login-admin.php:851
msgid "Client secret"
msgstr ""
#: includes/class-m365-login-admin.php:835
msgid "Quick to set up. A password-like value created in Entra ID that expires after 624 months and must be renewed."
msgstr ""
#: includes/class-m365-login-admin.php:841
msgid "Certificate"
msgstr ""
#: includes/class-m365-login-admin.php:841
msgid "Recommended"
msgstr ""
#: includes/class-m365-login-admin.php:842
msgid "The private key never leaves this server; only the public certificate is uploaded to Entra ID. Generated here with one click, valid for 2 years."
msgstr ""
#: includes/class-m365-login-admin.php:853
msgid "•••••••••••• (stored, leave empty to keep)"
msgstr ""
#: includes/class-m365-login-admin.php:853
msgid "Paste the secret value"
msgstr ""
#: includes/class-m365-login-admin.php:854
msgid "Show secret"
msgstr ""
#: includes/class-m365-login-admin.php:859
msgid "Remove the stored secret"
msgstr ""
#: includes/class-m365-login-admin.php:862
msgid "Stored encrypted (AES-256-GCM, key derived from your WordPress salts) and never displayed again. Client secrets expire note the expiry date in Entra ID."
msgstr ""
#: includes/class-m365-login-admin.php:864
msgid "AUTH_KEY and SECURE_AUTH_KEY are not defined in wp-config.php, so WordPress keeps its salts in the database right next to the encrypted secret. Add the salts to wp-config.php to make the encryption effective."
msgstr ""
#: includes/class-m365-login-admin.php:869
msgid "Step-by-step: create a client secret in Entra ID"
msgstr ""
#: includes/class-m365-login-admin.php:872
msgid "Open entra.microsoft.com and sign in with an account that has the \"Application Administrator\" or \"Global Administrator\" role."
msgstr ""
#: includes/class-m365-login-admin.php:873
msgid "Go to Identity → Applications → App registrations and open your app (or create it first, see the general guide in the sidebar)."
msgstr ""
#: includes/class-m365-login-admin.php:874
msgid "In the left menu choose Certificates & secrets, then the tab Client secrets, and click New client secret."
msgstr ""
#: includes/class-m365-login-admin.php:875
msgid "Enter a description such as \"WordPress login\" and pick an expiry. Microsoft allows at most 24 months; put a reminder in your calendar two weeks before."
msgstr ""
#: includes/class-m365-login-admin.php:876
msgid "Click Add. Copy the Value column immediately it is shown only once. The Secret ID column is NOT what you need."
msgstr ""
#: includes/class-m365-login-admin.php:877
msgid "Paste the value into the Client secret field above and save this page."
msgstr ""
#: includes/class-m365-login-admin.php:879
msgid "When the secret expires, sign-ins fail with \"Could not complete the sign-in with Microsoft\". Create a new secret, paste it here, save, then delete the old one in Entra ID."
msgstr ""
#: includes/class-m365-login-admin.php:892
msgid "Expired"
msgstr ""
#. translators: %d: number of days
#: includes/class-m365-login-admin.php:896
msgid "Expires in %d days"
msgstr ""
#. translators: %d: number of days
#: includes/class-m365-login-admin.php:899
msgid "Valid"
msgstr ""
#: includes/class-m365-login-admin.php:904
msgid "Thumbprint (SHA-1)"
msgstr ""
#: includes/class-m365-login-admin.php:906
msgid "Subject"
msgstr ""
#: includes/class-m365-login-admin.php:908
msgid "Key size"
msgstr ""
#: includes/class-m365-login-admin.php:910
msgid "Valid until"
msgstr ""
#: includes/class-m365-login-admin.php:914
msgid "Download certificate (.cer)"
msgstr ""
#: includes/class-m365-login-admin.php:915
msgid "Generate new certificate"
msgstr ""
#: includes/class-m365-login-admin.php:918
msgid "Remove certificate when saving"
msgstr ""
#: includes/class-m365-login-admin.php:922
msgid "No certificate stored yet."
msgstr ""
#: includes/class-m365-login-admin.php:924
msgid "Generate certificate"
msgstr ""
#: includes/class-m365-login-admin.php:925
msgid "3072-bit RSA, self-signed, valid for 2 years. The private key is stored encrypted and never shown or downloadable."
msgstr ""
#: includes/class-m365-login-admin.php:929
msgid "Use your own certificate instead (paste PEM)"
msgstr ""
#: includes/class-m365-login-admin.php:932
msgid "Private key (PEM, unencrypted)"
msgstr ""
#: includes/class-m365-login-admin.php:936
msgid "Certificate (PEM)"
msgstr ""
#: includes/class-m365-login-admin.php:938
msgid "RSA, at least 2048 bits. The pair is validated and the key is encrypted when you save. Both fields stay empty afterwards."
msgstr ""
#: includes/class-m365-login-admin.php:944
msgid "Step-by-step: register the certificate in Entra ID"
msgstr ""
#: includes/class-m365-login-admin.php:947
msgid "Click Generate certificate above (or paste your own). Then click Download certificate (.cer) the file contains only the public part."
msgstr ""
#: includes/class-m365-login-admin.php:948
msgid "Open entra.microsoft.com → Identity → Applications → App registrations and open your app."
msgstr ""
#: includes/class-m365-login-admin.php:949
msgid "Choose Certificates & secrets in the left menu, then the tab Certificates, and click Upload certificate."
msgstr ""
#: includes/class-m365-login-admin.php:950
msgid "Select the downloaded .cer file, add a description such as \"WordPress login\" and click Add."
msgstr ""
#: includes/class-m365-login-admin.php:951
msgid "Compare the thumbprint Entra ID shows with the thumbprint above they must match exactly."
msgstr ""
#: includes/class-m365-login-admin.php:952
msgid "Make sure Certificate is selected above and save this page. If a client secret was stored before, you may delete it in Entra ID now."
msgstr ""
#: includes/class-m365-login-admin.php:954
msgid "How it works: for every token request WordPress signs a short-lived JWT (client assertion) with the private key; Microsoft verifies it with the uploaded certificate. Nothing secret is ever transmitted."
msgstr ""
#: includes/class-m365-login-admin.php:955
msgid "Before the certificate expires: generate a new one here, upload it to Entra ID (both may be registered at the same time), save, then remove the old one from Entra ID. Sign-ins keep working during the switch."
msgstr ""
#: includes/class-m365-login-admin.php:961
msgid "Account prompt"
msgstr ""
#: includes/class-m365-login-admin.php:963
msgid "Always let the user pick an account (recommended)"
msgstr ""
#: includes/class-m365-login-admin.php:964
msgid "Use the current Microsoft session if available"
msgstr ""
#: includes/class-m365-login-admin.php:965
msgid "Always require re-entering credentials"
msgstr ""
#: includes/class-m365-login-admin.php:974
msgid "Appearance"
msgstr ""
#: includes/class-m365-login-admin.php:977
msgid "Live preview"
msgstr ""
#: includes/class-m365-login-admin.php:991
msgid "Button text"
msgstr ""
#: includes/class-m365-login-admin.php:995
msgid "Divider text"
msgstr ""
#: includes/class-m365-login-admin.php:997
msgid "Leave empty to hide the divider line."
msgstr ""
#: includes/class-m365-login-admin.php:1002
msgid "Icon"
msgstr ""
#: includes/class-m365-login-admin.php:1005
msgid "Show an icon on the button"
msgstr ""
#: includes/class-m365-login-admin.php:1016
msgid "Default: Microsoft logo"
msgstr ""
#: includes/class-m365-login-admin.php:1018
msgid "Choose from media library"
msgstr ""
#: includes/class-m365-login-admin.php:1019
msgid "Use Microsoft logo"
msgstr ""
#: includes/class-m365-login-admin.php:1021
msgid "PNG, SVG, JPG or WebP. Square images (e.g. 64×64 px) work best."
msgstr ""
#: includes/class-m365-login-admin.php:1029
msgid "Background"
msgstr ""
#: includes/class-m365-login-admin.php:1030
msgid "Background (hover)"
msgstr ""
#: includes/class-m365-login-admin.php:1031
msgid "Text colour"
msgstr ""
#: includes/class-m365-login-admin.php:1032
msgid "Border"
msgstr ""
#: includes/class-m365-login-admin.php:1045
msgid "Corner radius"
msgstr ""
#: includes/class-m365-login-admin.php:1049
msgid "Position on the login page"
msgstr ""
#: includes/class-m365-login-admin.php:1051
msgid "Below the login form"
msgstr ""
#: includes/class-m365-login-admin.php:1052
msgid "Above the login form"
msgstr ""
#: includes/class-m365-login-admin.php:1058
msgid "Quick presets"
msgstr ""
#: includes/class-m365-login-admin.php:1059
msgid "Microsoft dark"
msgstr ""
#: includes/class-m365-login-admin.php:1060
msgid "Microsoft light"
msgstr ""
#: includes/class-m365-login-admin.php:1061
msgid "Azure blue"
msgstr ""
#: includes/class-m365-login-admin.php:1062
msgid "WordPress blue"
msgstr ""
#: includes/class-m365-login-admin.php:1066
msgid "Custom login page"
msgstr ""
#: includes/class-m365-login-admin.php:1067
msgid "Using your own login page instead of wp-login.php? Tell the plugin where it is so error messages, the fallback link and the post-logout redirect point there."
msgstr ""
#: includes/class-m365-login-admin.php:1070
msgid "URL of your login page"
msgstr ""
#: includes/class-m365-login-admin.php:1072
msgid "Must be on this site. Leave empty to use wp-login.php."
msgstr ""
#: includes/class-m365-login-admin.php:1078
msgid "Add the button to every wp_login_form() form automatically"
msgstr ""
#: includes/class-m365-login-admin.php:1079
msgid "Covers themes and plugins that use the WordPress login form function. Page-builder widgets need the shortcode or the template function below."
msgstr ""
#: includes/class-m365-login-admin.php:1084
msgid "Manual placement"
msgstr ""
#: includes/class-m365-login-admin.php:1085
msgid "Shortcode (block editor, page builders):"
msgstr ""
#: includes/class-m365-login-admin.php:1087
msgid "Template function (theme files):"
msgstr ""
#: includes/class-m365-login-admin.php:1089
msgid "Both show the error messages of the last attempt; use m365_login_messages() to place them separately."
msgstr ""
#: includes/class-m365-login-admin.php:1097
msgid "User matching & hardening"
msgstr ""
#: includes/class-m365-login-admin.php:1098
msgid "Sign-in never creates users. A Microsoft sign-in only succeeds when a WordPress user with the same e-mail address already exists created by hand or imported by the user sync."
msgstr ""
#: includes/class-m365-login-admin.php:1103
msgid "Bind WordPress accounts to the Microsoft object ID"
msgstr ""
#: includes/class-m365-login-admin.php:1104
msgid "On first sign-in the immutable Microsoft object ID is stored with the user. Later sign-ins with the same e-mail but a different Microsoft identity are rejected. Strongly recommended."
msgstr ""
#: includes/class-m365-login-admin.php:1111
msgid "Fall back to the user principal name (UPN)"
msgstr ""
#: includes/class-m365-login-admin.php:1112
msgid "If the token contains no \"email\" claim, use the UPN (e.g. jane@contoso.com) when it is a valid e-mail address. Usually required for work accounts."
msgstr ""
#: includes/class-m365-login-admin.php:1119
msgid "Keep users signed in (\"Remember me\")"
msgstr ""
#: includes/class-m365-login-admin.php:1120
msgid "Issues a 14-day WordPress session instead of a browser session."
msgstr ""
#: includes/class-m365-login-admin.php:1125
msgid "Allowed e-mail domains (optional)"
msgstr ""
#: includes/class-m365-login-admin.php:1127
msgid "One or more domains separated by commas or new lines. Leave empty to allow any domain of your tenant."
msgstr ""
#: includes/class-m365-login-admin.php:1132
msgid "Allowed Entra groups (optional)"
msgstr ""
#: includes/class-m365-login-admin.php:1133
msgid "Only members of at least one of these groups may sign in. Leave empty to allow every matched user. Nested memberships count."
msgstr ""
#: includes/class-m365-login-admin.php:1135
msgid "No groups selected every matched user may sign in."
msgstr ""
#: includes/class-m365-login-admin.php:1137
msgid "Membership is read from the \"groups\" claim of the ID token when present; otherwise the plugin asks Microsoft Graph (application permission \"User.Read.All\" or \"Directory.Read.All\"). If neither works, the sign-in is refused."
msgstr ""
#: includes/class-m365-login-admin.php:1142
msgid "Excluded Entra groups (optional)"
msgstr ""
#: includes/class-m365-login-admin.php:1143
msgid "Members of these groups can never sign in with Microsoft even if they are in an allowed group. Nested memberships count."
msgstr ""
#: includes/class-m365-login-admin.php:1146
msgid "Group rules need a pinned tenant ID (GUID) on the Connection tab. In multi-tenant mode the group check cannot ask Microsoft Graph, so every sign-in is refused while groups are selected here or above."
msgstr ""
#: includes/class-m365-login-admin.php:1148
msgid "No groups excluded."
msgstr ""
#: includes/class-m365-login-admin.php:1150
msgid "The plugin asks Microsoft Graph on every sign-in (application permission \"User.Read.All\" or \"Directory.Read.All\"), because a \"groups\" claim may be filtered and cannot prove that someone is not a member. If the check fails, the sign-in is refused. Password sign-in is not affected combine with button-only mode if needed."
msgstr ""
#: includes/class-m365-login-admin.php:1155
msgid "Button-only mode"
msgstr ""
#: includes/class-m365-login-admin.php:1156
msgid "Hides the username/password fields (on wp-login.php and in wp_login_form() forms) and refuses every sign-in with a normal password on the site custom login forms, XML-RPC and login endpoints of other plugins included. Application passwords (REST, XML-RPC) and WP-CLI keep working; API requests never receive a login cookie."
msgstr ""
#: includes/class-m365-login-admin.php:1161
msgid "Show only the Microsoft button on the login page"
msgstr ""
#: includes/class-m365-login-admin.php:1162
msgid "Becomes active once the connection is configured. Make sure your own account can sign in via Microsoft before enabling this."
msgstr ""
#: includes/class-m365-login-admin.php:1167
msgid "Fallback link (keep it secret)"
msgstr ""
#: includes/class-m365-login-admin.php:1168
msgid "Opening this link shows the password form again in that browser for 30 minutes and allows password sign-in there. Bookmark it somewhere safe it is your way back in if Microsoft sign-in ever breaks."
msgstr ""
#: includes/class-m365-login-admin.php:1176
msgid "Generate a new key when saving"
msgstr ""
#: includes/class-m365-login-admin.php:1179
msgid "A key is generated automatically the first time you save these settings."
msgstr ""
#. translators: %s: PHP constant
#: includes/class-m365-login-admin.php:1185
msgid "Emergency switch: add %s to wp-config.php to disable button-only mode entirely."
msgstr ""
#. translators: %s: PHP constant
#: includes/class-m365-login-admin.php:1194
msgid "What the plugin does to keep sign-ins safe"
msgstr ""
#: includes/class-m365-login-admin.php:1196
msgid "OpenID Connect authorization code flow with PKCE (S256) no tokens ever pass through the browser."
msgstr ""
#: includes/class-m365-login-admin.php:1197
msgid "Single-use state and nonce values bound to the browser via an HttpOnly cookie (CSRF and replay protection)."
msgstr ""
#: includes/class-m365-login-admin.php:1198
msgid "ID token signature verified against Microsofts published signing keys; issuer, audience, tenant, expiry and nonce are checked."
msgstr ""
#: includes/class-m365-login-admin.php:1199
msgid "Client secret encrypted at rest; sign-in never creates accounts or changes passwords."
msgstr ""
#: includes/class-m365-login-admin.php:1207
msgid "Save changes"
msgstr ""
#: includes/class-m365-login-admin.php:1213
msgid "Redirect URI"
msgstr ""
#: includes/class-m365-login-admin.php:1214
msgid "Register this URI in your app registration under Authentication → Web → Redirect URIs:"
msgstr ""
#: includes/class-m365-login-admin.php:1220
msgid "Plain permalinks are active, so the callback uses a query string. If you enable pretty permalinks later, the redirect URI changes and must be updated in Entra ID."
msgstr ""
#: includes/class-m365-login-admin.php:1223
msgid "Your site does not use HTTPS. Microsoft only accepts http:// redirect URIs for localhost; production sites must use HTTPS."
msgstr ""
#: includes/class-m365-login-admin.php:1228
msgid "Setup guide: app registration"
msgstr ""
#: includes/class-m365-login-admin.php:1230
msgid "Open entra.microsoft.com → Identity → Applications → App registrations → New registration."
msgstr ""
#: includes/class-m365-login-admin.php:1231
msgid "Name: e.g. \"WordPress login\". Supported account types: \"Accounts in this organizational directory only\" (single tenant)."
msgstr ""
#: includes/class-m365-login-admin.php:1232
msgid "Redirect URI: choose the platform Web and paste the URI shown above. Then click Register."
msgstr ""
#: includes/class-m365-login-admin.php:1233
msgid "On the Overview page copy the Application (client) ID and the Directory (tenant) ID into the Connection tab."
msgstr ""
#: includes/class-m365-login-admin.php:1234
msgid "Authentication: leave \"ID tokens\" unchecked (the plugin uses the authorization code flow) and \"Allow public client flows\" on No."
msgstr ""
#: includes/class-m365-login-admin.php:1235
msgid "Token configuration → Add optional claim → ID → tick \"email\" → Add. Confirm the API permission prompt."
msgstr ""
#: includes/class-m365-login-admin.php:1236
msgid "Pick the authentication method on the Connection tab and follow its step-by-step guide (client secret or certificate)."
msgstr ""
#: includes/class-m365-login-admin.php:1237
msgid "Optional: restrict who may use the app under Enterprise applications → your app → Properties → \"Assignment required\" = Yes, then assign users/groups."
msgstr ""
#: includes/class-m365-login-admin.php:1239
msgid "Required API permission: openid, profile, email (delegated) granted by default."
msgstr ""
#: includes/class-m365-login-admin.php:1240
msgid "Optional, for group restrictions and the user sync: application permissions GroupMember.Read.All and User.Read.All (Microsoft Graph) with admin consent."
msgstr ""
#: includes/class-m365-login-admin.php:1244
msgid "Shortcode"
msgstr ""
#: includes/class-m365-login-admin.php:1245
msgid "Place the button on a custom login page:"
msgstr ""
#: includes/class-m365-login-admin.php:1247
msgid "More options on the Button tab under \"Custom login page\"."
msgstr ""
#: includes/class-m365-login-auth.php:197
msgid "Password sign-in is disabled on this site. Please use the Microsoft button."
msgstr ""
#: includes/class-m365-login-auth.php:1224
msgid "Microsoft sign-in is temporarily unavailable. Please contact an administrator."
msgstr ""
#: includes/class-m365-login-auth.php:1231
msgid "Password sign-in is temporarily enabled for this browser (30 minutes)."
msgstr ""
#: includes/class-m365-login-auth.php:1252 includes/class-m365-login-graph.php:63
msgid "Microsoft login is not configured yet."
msgstr ""
#: includes/class-m365-login-auth.php:1253
msgid "The login request expired or was invalid. Please try again."
msgstr ""
#: includes/class-m365-login-auth.php:1254
msgid "Microsoft sign-in was cancelled."
msgstr ""
#: includes/class-m365-login-auth.php:1255
msgid "Microsoft returned an error. Please try again."
msgstr ""
#: includes/class-m365-login-auth.php:1256
msgid "Could not complete the sign-in with Microsoft. Please try again or contact an administrator."
msgstr ""
#: includes/class-m365-login-auth.php:1257
msgid "The Microsoft sign-in could not be verified."
msgstr ""
#: includes/class-m365-login-auth.php:1258
msgid "Your Microsoft account did not provide an e-mail address."
msgstr ""
#: includes/class-m365-login-auth.php:1259
msgid "Your e-mail domain is not allowed to sign in here."
msgstr ""
#: includes/class-m365-login-auth.php:1260
msgid "No WordPress account exists for your Microsoft e-mail address."
msgstr ""
#: includes/class-m365-login-auth.php:1261
msgid "This WordPress account is linked to a different Microsoft account. Please contact an administrator."
msgstr ""
#: includes/class-m365-login-auth.php:1262
msgid "You are not allowed to sign in with this account."
msgstr ""
#: includes/class-m365-login-auth.php:1263
msgid "Your Microsoft account is not a member of a group that is allowed to sign in here."
msgstr ""
#: includes/class-m365-login-auth.php:1264
msgid "Your group membership could not be verified. Please contact an administrator."
msgstr ""
#: includes/class-m365-login-auth.php:1265
msgid "Your Microsoft account is a member of a group that is not allowed to sign in here."
msgstr ""
#: includes/class-m365-login-auth.php:1266
msgid "The fallback key is not valid."
msgstr ""
#: includes/class-m365-login-auth.php:1267
msgid "Too many attempts. Please wait 15 minutes."
msgstr ""
#: includes/class-m365-login-auth.php:1268
msgid "Too many sign-in attempts from your connection. Please wait a few minutes and try again."
msgstr ""
#: includes/class-m365-login-auth.php:1269 includes/class-m365-login-sync.php:2132
msgid "This account has been deactivated."
msgstr ""
#: includes/class-m365-login-auth.php:1270
msgid "For security reasons this administrator account is not linked automatically. Sign in once with your password and click \"Link Microsoft account\" on your profile page or ask an administrator to enter your Microsoft account (user principal name) in your WordPress profile."
msgstr ""
#: includes/class-m365-login-auth.php:1271
msgid "The link could not be completed because you are no longer signed in to WordPress. Please sign in and try again."
msgstr ""
#: includes/class-m365-login-auth.php:1272
msgid "Your WordPress account is already linked to a different Microsoft account. An administrator can remove the link in your profile."
msgstr ""
#: includes/class-m365-login-auth.php:1273
msgid "Guest and external accounts cannot sign in here."
msgstr ""
#: includes/class-m365-login-certificate.php:29
msgid "The PHP OpenSSL extension is not available."
msgstr ""
#: includes/class-m365-login-certificate.php:42
msgid "Key generation failed."
msgstr ""
#: includes/class-m365-login-certificate.php:51
msgid "Certificate request failed."
msgstr ""
#: includes/class-m365-login-certificate.php:56
msgid "Certificate signing failed."
msgstr ""
#: includes/class-m365-login-certificate.php:62
msgid "Exporting the certificate failed."
msgstr ""
#: includes/class-m365-login-certificate.php:83
msgid "The private key must be in PEM format (-----BEGIN PRIVATE KEY-----)."
msgstr ""
#: includes/class-m365-login-certificate.php:86
msgid "Password protected private keys are not supported. Export the key without a passphrase."
msgstr ""
#: includes/class-m365-login-certificate.php:90
msgid "The private key could not be read."
msgstr ""
#: includes/class-m365-login-certificate.php:94
msgid "Only RSA keys are supported."
msgstr ""
#: includes/class-m365-login-certificate.php:97
msgid "The RSA key must have at least 2048 bits."
msgstr ""
#: includes/class-m365-login-certificate.php:101
msgid "The certificate field contains a private key. Paste only the certificate (-----BEGIN CERTIFICATE-----) there."
msgstr ""
#: includes/class-m365-login-certificate.php:105 includes/class-m365-login-certificate.php:119
msgid "The certificate could not be read. Paste it in PEM format (-----BEGIN CERTIFICATE-----)."
msgstr ""
#: includes/class-m365-login-certificate.php:108
msgid "The certificate does not belong to this private key."
msgstr ""
#: includes/class-m365-login-certificate.php:113
msgid "The certificate has already expired."
msgstr ""
#: includes/class-m365-login-graph.php:440
msgid "Group"
msgstr ""
#: includes/class-m365-login-graph.php:442
msgid "Security group"
msgstr ""
#: includes/class-m365-login-graph.php:444
msgid "Microsoft 365 group"
msgstr ""
#: includes/class-m365-login-graph.php:448
msgid "Public Microsoft 365 group anyone in the organisation can join"
msgstr ""
#: includes/class-m365-login-settings.php:55
msgid "Sign in with Microsoft"
msgstr ""
#: includes/class-m365-login-settings.php:64
msgid "or"
msgstr ""
#: includes/class-m365-login-settings.php:226 includes/class-m365-login-settings.php:559
msgid "The private key could not be encrypted. Is the OpenSSL extension available?"
msgstr ""
#: includes/class-m365-login-settings.php:505
msgid "The tenant ID must be a GUID (e.g. 1a2b3c4d-…) or one of \"organizations\", \"common\", \"consumers\"."
msgstr ""
#: includes/class-m365-login-settings.php:513
msgid "The application (client) ID must be a GUID."
msgstr ""
#: includes/class-m365-login-settings.php:525
msgid "The client secret contains invalid characters."
msgstr ""
#: includes/class-m365-login-settings.php:529
msgid "The client secret could not be encrypted. Is the OpenSSL extension available?"
msgstr ""
#: includes/class-m365-login-settings.php:549
msgid "Please paste both the private key and the certificate."
msgstr ""
#: includes/class-m365-login-settings.php:551
msgid "The pasted key or certificate is too large."
msgstr ""
#: includes/class-m365-login-settings.php:568
msgid "Certificate authentication is selected but no certificate is stored yet. Generate one or paste your own; the Microsoft button stays hidden until then."
msgstr ""
#: includes/class-m365-login-settings.php:601
msgid "The custom login page must be a URL on this site."
msgstr ""
#: includes/class-m365-login-settings.php:711
msgid "User sync: \"Delete\" needs a user who receives the posts of deleted accounts. Until one is selected, accounts are deactivated instead."
msgstr ""
#: includes/class-m365-login-sync.php:136
msgid "Display name"
msgstr ""
#: includes/class-m365-login-sync.php:140
msgid "First name"
msgstr ""
#: includes/class-m365-login-sync.php:144
msgid "Last name"
msgstr ""
#: includes/class-m365-login-sync.php:148
msgid "Profile photo (used as avatar)"
msgstr ""
#: includes/class-m365-login-sync.php:152
msgid "Job title"
msgstr ""
#: includes/class-m365-login-sync.php:156
msgid "Department"
msgstr ""
#: includes/class-m365-login-sync.php:160
msgid "Company"
msgstr ""
#: includes/class-m365-login-sync.php:164
msgid "Office"
msgstr ""
#: includes/class-m365-login-sync.php:168
msgid "Employee ID"
msgstr ""
#: includes/class-m365-login-sync.php:172
msgid "Business phone"
msgstr ""
#: includes/class-m365-login-sync.php:176
msgid "Mobile phone"
msgstr ""
#: includes/class-m365-login-sync.php:180
msgid "Street address"
msgstr ""
#: includes/class-m365-login-sync.php:184
msgid "Postal code"
msgstr ""
#: includes/class-m365-login-sync.php:188
msgid "City"
msgstr ""
#: includes/class-m365-login-sync.php:192
msgid "State / province"
msgstr ""
#: includes/class-m365-login-sync.php:196
msgid "Country"
msgstr ""
#: includes/class-m365-login-sync.php:200
msgid "Language (sets the admin language if installed)"
msgstr ""
#: includes/class-m365-login-sync.php:336
msgid "Another sync is still running. Please try again in a few minutes."
msgstr ""
#: includes/class-m365-login-sync.php:418
msgid "The sync stopped unexpectedly (PHP error, memory or time limit). Accounts after this point were not processed and nothing was deactivated or deleted. For large directories use \"wp m365-login sync\"."
msgstr ""
#: includes/class-m365-login-sync.php:480
msgid "The connection to Microsoft Entra ID is not configured yet."
msgstr ""
#: includes/class-m365-login-sync.php:484
msgid "The user sync needs a pinned tenant ID (GUID) on the Connection tab."
msgstr ""
#: includes/class-m365-login-sync.php:488
msgid "The default role does not exist. Please check the sync settings."
msgstr ""
#. translators: %d: number of users
#: includes/class-m365-login-sync.php:500
msgid "%d user read from Microsoft 365."
msgid_plural "%d users read from Microsoft 365."
msgstr[0] ""
msgstr[1] ""
#: includes/class-m365-login-sync.php:511
msgid "Microsoft 365 returned no users at all while accounts are linked. Nothing was changed. Check the tenant and the sync groups."
msgstr ""
#. translators: %d: number of accounts
#: includes/class-m365-login-sync.php:584
msgid "%d linked account belongs to another (or an unknown) tenant and was not deactivated or deleted. Unlink it by hand if it is no longer needed."
msgid_plural "%d linked accounts belong to another (or an unknown) tenant and were not deactivated or deleted. Unlink them by hand if they are no longer needed."
msgstr[0] ""
msgstr[1] ""
#. translators: 1: number of accounts, 2: limit
#: includes/class-m365-login-sync.php:595
msgid "Safety stop: %1$d accounts would be deactivated or deleted, more than the limit of %2$d per run. No account was deactivated or deleted. Check the sync groups and the tenant, then run the sync again (the limit can be changed with the m365_login_sync_deprovision_limit filter)."
msgstr ""
#: includes/class-m365-login-sync.php:721 includes/class-m365-login-sync.php:779 includes/class-m365-login-sync.php:1227 includes/class-m365-login-sync.php:2277
msgid "disabled in Microsoft 365"
msgstr ""
#. translators: %s: user principal name
#: includes/class-m365-login-sync.php:732
msgid "%s: no usable e-mail address, skipped."
msgstr ""
#. translators: %s: e-mail address
#: includes/class-m365-login-sync.php:739
msgid "%s: e-mail domain is not on the allow-list, skipped."
msgstr ""
#. translators: %s: e-mail address
#: includes/class-m365-login-sync.php:755
msgid "%s: the WordPress account with this e-mail address is linked to a different Microsoft account, skipped."
msgstr ""
#. translators: %s: e-mail address
#: includes/class-m365-login-sync.php:760
msgid "%s: privileged WordPress account linked only when the Microsoft user principal name equals its e-mail address or the Microsoft account assigned in its profile, or when the person links it from the profile. Skipped."
msgstr ""
#. translators: %s: e-mail address
#: includes/class-m365-login-sync.php:764
msgid "%s: existing account linked."
msgstr ""
#. translators: %s: e-mail address
#: includes/class-m365-login-sync.php:790
msgid "%s: added to this site."
msgstr ""
#. translators: %s: e-mail address
#: includes/class-m365-login-sync.php:799
msgid "%s: reactivated (active in Microsoft 365 again)."
msgstr ""
#. translators: 1: e-mail address, 2: list of changed fields
#: includes/class-m365-login-sync.php:810
msgid "%1$s: updated (%2$s)."
msgstr ""
#. translators: 1: e-mail address, 2: role names
#: includes/class-m365-login-sync.php:837
msgid "%1$s: account created (%2$s)."
msgstr ""
#. translators: 1: e-mail address, 2: error message
#: includes/class-m365-login-sync.php:864
msgid "%1$s: account could not be created: %2$s"
msgstr ""
#. translators: 1: current e-mail address, 2: e-mail address in Microsoft 365
#: includes/class-m365-login-sync.php:923
msgid "%1$s: the e-mail address in Microsoft 365 changed to %2$s. It is not changed automatically for privileged accounts update it by hand if intended."
msgstr ""
#. translators: %s: e-mail address
#: includes/class-m365-login-sync.php:926
msgid "%s: e-mail address is used by another WordPress account and was not changed."
msgstr ""
#. translators: %s: e-mail address
#: includes/class-m365-login-sync.php:929
msgid "e-mail"
msgstr ""
#. translators: %s: profile field
#: includes/class-m365-login-sync.php:979
msgid "%s removed"
msgstr ""
#. translators: 1: e-mail address, 2: error message
#: includes/class-m365-login-sync.php:989
msgid "%1$s: profile could not be updated: %2$s"
msgstr ""
#. translators: %s: role names
#: includes/class-m365-login-sync.php:1098
msgid "roles: %s"
msgstr ""
#. translators: 1: number of accounts, 2: limit
#: includes/class-m365-login-sync.php:1168
msgid "Safety stop: %1$d accounts would lose administrative rights, more than the limit of %2$d per run (or all of them). Nothing was demoted, deactivated or deleted. Check the group → role mapping, then run the sync again (filter m365_login_sync_demotion_limit)."
msgstr ""
#: includes/class-m365-login-sync.php:1219 includes/class-m365-login-sync.php:2278
msgid "deleted in Microsoft 365"
msgstr ""
#: includes/class-m365-login-sync.php:1230 includes/class-m365-login-sync.php:2279
msgid "no longer a member of the sync groups"
msgstr ""
#. translators: 1: e-mail address, 2: reason
#: includes/class-m365-login-sync.php:1262
msgid "%1$s: %2$s, but the account is protected (administrator or your own account) and was not changed."
msgstr ""
#. translators: %s: e-mail address
#: includes/class-m365-login-sync.php:1406
msgid "%s: no valid user to receive the content is selected, so the account is deactivated instead of deleted."
msgstr ""
#. translators: 1: e-mail address, 2: reason
#: includes/class-m365-login-sync.php:1415
msgid "%1$s: account deleted (%2$s)."
msgstr ""
#. translators: 1: e-mail address, 2: reason
#: includes/class-m365-login-sync.php:1424
msgid "%1$s: account deactivated (%2$s)."
msgstr ""
#: includes/class-m365-login-sync.php:1503
msgid "Microsoft Graph refused the request. Grant the application permissions \"User.Read.All\" and \"GroupMember.Read.All\" with admin consent in Entra ID."
msgstr ""
#. translators: %s: error message
#: includes/class-m365-login-sync.php:1506
msgid "Microsoft Graph error: %s"
msgstr ""
#: includes/class-m365-login-sync.php:1524
msgid "Log truncated."
msgstr ""
#. translators: 1: e-mail address, 2: error message
#: includes/class-m365-login-sync.php:1607
msgid "%1$s: profile photo could not be read: %2$s"
msgstr ""
#. translators: %s: e-mail address
#: includes/class-m365-login-sync.php:1631 includes/class-m365-login-sync.php:1674
msgid "%s: profile photo updated."
msgstr ""
#. translators: %s: e-mail address
#: includes/class-m365-login-sync.php:1650
msgid "%s: profile photo could not be downloaded."
msgstr ""
#. translators: %s: e-mail address
#: includes/class-m365-login-sync.php:1657
msgid "%s: profile photo is not a valid image or could not be saved."
msgstr ""
#. translators: %d: number of photos
#: includes/class-m365-login-sync.php:1680
msgid "%d changed profile photo will be downloaded in the next run (download limit per run reached)."
msgid_plural "%d changed profile photos will be downloaded in the next run (download limit per run reached)."
msgstr[0] ""
msgstr[1] ""
#. translators: %s: e-mail address
#: includes/class-m365-login-sync.php:1695
msgid "%s: profile photo removed."
msgstr ""
#. translators: %d: number of photos
#: includes/class-m365-login-sync.php:1723
msgid "Profile photo sync is off: %d stored photo removed."
msgid_plural "Profile photo sync is off: %d stored photos removed."
msgstr[0] ""
msgstr[1] ""
#: includes/class-m365-login-sync.php:1895 includes/class-m365-login-sync.php:1909
msgid "Microsoft 365 (M365 Login)"
msgstr ""
#: includes/class-m365-login-sync.php:1927
msgid "Microsoft object ID"
msgstr ""
#: includes/class-m365-login-sync.php:1928
msgid "Microsoft tenant ID"
msgstr ""
#: includes/class-m365-login-sync.php:1939
msgid "Profile photo"
msgstr ""
#: includes/class-m365-login-sync.php:1943 includes/class-m365-login-sync.php:2294
msgid "Last sync"
msgstr ""
#: includes/class-m365-login-sync.php:1957 includes/class-m365-login-sync.php:2161 includes/class-m365-login-sync.php:2308
msgid "Microsoft 365"
msgstr ""
#: includes/class-m365-login-sync.php:1998
msgid "The link to the Microsoft account and a possible deactivation were kept because they secure the account. The next user sync copies selected profile fields again unless the person is excluded from the sync."
msgstr ""
#: includes/class-m365-login-sync.php:2179
msgid "Deactivated"
msgstr ""
#: includes/class-m365-login-sync.php:2182
msgid "Imported"
msgstr ""
#: includes/class-m365-login-sync.php:2184 includes/class-m365-login-sync.php:2314
msgid "Linked"
msgstr ""
#: includes/class-m365-login-sync.php:2212
msgid "Reactivate"
msgstr ""
#: includes/class-m365-login-sync.php:2212
msgid "Deactivate"
msgstr ""
#: includes/class-m365-login-sync.php:2241
msgid "Your Microsoft account is now linked. From now on you can sign in with the Microsoft button."
msgstr ""
#: includes/class-m365-login-sync.php:2255
msgid "The account has been deactivated and signed out everywhere."
msgstr ""
#: includes/class-m365-login-sync.php:2256
msgid "The account has been reactivated."
msgstr ""
#. translators: 1: date, 2: reason
#: includes/class-m365-login-sync.php:2283
msgid "Deactivated since %1$s (%2$s)"
msgstr ""
#. translators: 1: date, 2: reason
#: includes/class-m365-login-sync.php:2285
msgid "manually"
msgstr ""
#. translators: 1: date, 2: reason
#: includes/class-m365-login-sync.php:2287
msgid "Status"
msgstr ""
#: includes/class-m365-login-sync.php:2290
msgid "Object ID"
msgstr ""
#: includes/class-m365-login-sync.php:2311
msgid "Microsoft account"
msgstr ""
#: includes/class-m365-login-sync.php:2316
msgid "Not linked"
msgstr ""
#: includes/class-m365-login-sync.php:2319
msgid "Link Microsoft account"
msgstr ""
#: includes/class-m365-login-sync.php:2320
msgid "You sign in with Microsoft once; afterwards this WordPress account is bound to that Microsoft account, even if its user principal name differs from your e-mail address."
msgstr ""
#: includes/class-m365-login-sync.php:2326
msgid "Assigned Microsoft account (UPN)"
msgstr ""
#: includes/class-m365-login-sync.php:2329
msgid "Optional. The user principal name of the Microsoft account that belongs to this user. Sign-in and user sync link exactly this account needed for administrators whose user principal name differs from their WordPress e-mail address."
msgstr ""
#: includes/class-m365-login-sync.php:2331
msgid "Remove the link to the Microsoft account"
msgstr ""
#: includes/class-m365-login-sync.php:2344
msgid "These values are managed by the Microsoft 365 user sync and overwritten on the next run."
msgstr ""
#: includes/class-m365-login.php:127
msgid "Settings"
msgstr ""
#: includes/class-m365-login.php:138
msgid "M365 Login requires PHP 7.4 or newer."
msgstr ""
#: includes/class-m365-login.php:139 includes/class-m365-login.php:148
msgid "Plugin activation failed"
msgstr ""
#: includes/class-m365-login.php:147
msgid "M365 Login requires the PHP OpenSSL extension (needed to verify Microsoft token signatures and to encrypt the client secret)."
msgstr ""