1
0
mirror of https://github.com/bitwarden/mobile.git synced 2024-11-28 12:35:40 +01:00

Merge branch 'main' into bugfix/helper-activities-launchmode

This commit is contained in:
Federico Maccaroni 2024-05-13 17:35:05 -03:00
commit 5aeb3cef0a
No known key found for this signature in database
GPG Key ID: 5D233F8F2B034536
25 changed files with 226 additions and 194 deletions

View File

@ -24,7 +24,7 @@ jobs:
hotfix_branch_exists: ${{ steps.branch-check.outputs.hotfix_branch_exists }}
steps:
- name: Checkout repo
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
with:
submodules: 'true'
@ -80,7 +80,7 @@ jobs:
echo "GitHub event: $GITHUB_EVENT"
- name: Checkout repo
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
with:
fetch-depth: 0
ref: ${{ inputs.ref }}

View File

@ -21,7 +21,7 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: Checkout repo
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
- name: Set up CLOC
run: |
@ -40,7 +40,7 @@ jobs:
hotfix_branch_exists: ${{ steps.branch-check.outputs.hotfix_branch_exists }}
steps:
- name: Checkout repo
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
with:
submodules: 'true'
@ -109,7 +109,7 @@ jobs:
echo "GitHub event: $GITHUB_EVENT"
- name: Checkout repo
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
with:
fetch-depth: 0
@ -335,7 +335,7 @@ jobs:
echo "GitHub event: $GITHUB_EVENT"
- name: Checkout repo
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
- name: Login to Azure - CI Subscription
uses: Azure/login@e15b166166a8746d1a47596803bd8c1b595455cf # v1.6.0
@ -470,7 +470,7 @@ jobs:
echo "GitHub event: $GITHUB_EVENT"
- name: Checkout repo
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
with:
submodules: 'true'
@ -718,7 +718,7 @@ jobs:
_CROWDIN_PROJECT_ID: "269690"
steps:
- name: Checkout repo
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
- name: Login to Azure - CI Subscription
uses: Azure/login@e15b166166a8746d1a47596803bd8c1b595455cf # v1.6.0
@ -733,7 +733,7 @@ jobs:
secrets: "crowdin-api-token"
- name: Upload Sources
uses: crowdin/github-action@67705afb6985401459cd143d5f5f00c9dc212f23 # v1.20.2
uses: crowdin/github-action@8c663f791efc0498270241e9923a8853c99a3a8e # v1.20.3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }}

View File

@ -24,7 +24,7 @@ jobs:
secrets: "github-pat-bitwarden-devops-bot-repo-scope"
- name: Checkout main
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
with:
ref: main
token: ${{ steps.retrieve-bot-secrets.outputs.github-pat-bitwarden-devops-bot-repo-scope }}

View File

@ -15,7 +15,7 @@ jobs:
_CROWDIN_PROJECT_ID: "269690"
steps:
- name: Checkout repo
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
- name: Login to Azure - CI Subscription
uses: Azure/login@e15b166166a8746d1a47596803bd8c1b595455cf # v1.6.0
@ -30,7 +30,7 @@ jobs:
secrets: "crowdin-api-token, github-gpg-private-key, github-gpg-private-key-passphrase"
- name: Download translations
uses: crowdin/github-action@67705afb6985401459cd143d5f5f00c9dc212f23 # v1.20.2
uses: crowdin/github-action@8c663f791efc0498270241e9923a8853c99a3a8e # v1.20.3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }}

View File

@ -38,7 +38,7 @@ jobs:
fi
- name: Checkout repo
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
- name: Check Release Version
id: version
@ -126,7 +126,7 @@ jobs:
if: inputs.fdroid_publish
steps:
- name: Checkout repo
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
- name: Download F-Droid .apk artifact
if: ${{ inputs.release_type != 'Dry Run' }}

View File

@ -27,7 +27,7 @@ jobs:
version: ${{ inputs.version_number_override }}
- name: Checkout Branch
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
with:
ref: main
@ -264,7 +264,7 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: Checkout Branch
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
with:
ref: main

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:versionCode="1" android:versionName="2024.5.0" android:installLocation="internalOnly" package="com.x8bit.bitwarden">
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:versionCode="1" android:versionName="2024.5.1" android:installLocation="internalOnly" package="com.x8bit.bitwarden">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="34" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.NFC" />

View File

@ -11,7 +11,7 @@
<key>CFBundleIdentifier</key>
<string>com.8bit.bitwarden</string>
<key>CFBundleShortVersionString</key>
<string>2024.5.0</string>
<string>2024.5.1</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>CFBundleIconName</key>

View File

@ -25,6 +25,7 @@ namespace Bit.App.Pages
_broadcasterService = ServiceContainer.Resolve<IBroadcasterService>();
_vm = BindingContext as LoginPageViewModel;
_vm.Page = this;
_vm.FromIosExtension = _appOptions?.IosExtension ?? false;
_vm.StartTwoFactorAction = () => MainThread.BeginInvokeOnMainThread(async () => await StartTwoFactorAsync());
_vm.LogInSuccessAction = () => MainThread.BeginInvokeOnMainThread(async () => await LogInSuccessAsync());
_vm.LogInWithDeviceAction = () => StartLoginWithDeviceAsync().FireAndForget();

View File

@ -19,6 +19,7 @@ namespace Bit.App.Pages
_vm.Email = email;
_vm.AuthRequestType = authRequestType;
_vm.AuthingWithSso = authingWithSso;
_vm.FromIosExtension = _appOptions?.IosExtension ?? false;
_vm.StartTwoFactorAction = () => MainThread.BeginInvokeOnMainThread(async () => await StartTwoFactorAsync());
_vm.LogInSuccessAction = () => MainThread.BeginInvokeOnMainThread(async () => await LogInSuccessAsync());
_vm.UpdateTempPasswordAction = () => MainThread.BeginInvokeOnMainThread(async () => await UpdateTempPasswordAsync());

View File

@ -1,4 +1,6 @@
namespace Bit.App.Pages
using Bit.App.Models;
namespace Bit.App.Pages
{
public partial class RegisterPage : BaseContentPage
{
@ -6,11 +8,12 @@
private bool _inputFocused;
public RegisterPage(HomePage homePage)
public RegisterPage(HomePage homePage, AppOptions appOptions = null)
{
InitializeComponent();
_vm = BindingContext as RegisterPageViewModel;
_vm.Page = this;
_vm.FromIosExtension = appOptions?.IosExtension ?? false;
_vm.RegistrationSuccess = () => MainThread.BeginInvokeOnMainThread(async () => await RegistrationSuccessAsync(homePage));
_vm.CloseAction = async () =>
{

View File

@ -28,6 +28,7 @@ namespace Bit.App.Pages
_vm = BindingContext as TwoFactorPageViewModel;
_vm.Page = this;
_vm.AuthingWithSso = authingWithSso ?? false;
_vm.FromIosExtension = _appOptions?.IosExtension ?? false;
_vm.StartSetPasswordAction = () =>
MainThread.BeginInvokeOnMainThread(async () => await StartSetPasswordAsync());
_vm.TwoFactorAuthSuccessAction = () =>

View File

@ -11,6 +11,13 @@ using Bit.Core.Models.Request;
using Bit.Core.Resources.Localization;
using Bit.Core.Utilities;
using Newtonsoft.Json;
using Bit.Core.Services;
#if IOS
using WebAuthenticator = Bit.Core.Utilities.MAUI.WebAuthenticator;
using WebAuthenticatorResult = Bit.Core.Utilities.MAUI.WebAuthenticatorResult;
using WebAuthenticatorOptions = Bit.Core.Utilities.MAUI.WebAuthenticatorOptions;
#endif
namespace Bit.App.Pages
{
@ -136,6 +143,7 @@ namespace Bit.App.Pages
nameof(ShowTryAgain),
});
}
public ICommand SubmitCommand { get; }
public ICommand MoreCommand { get; }
public ICommand AuthenticateWithDuoFramelessCommand { get; }
@ -261,7 +269,11 @@ namespace Bit.App.Pages
authResult = await WebAuthenticator.AuthenticateAsync(new WebAuthenticatorOptions
{
Url = new Uri(url),
CallbackUrl = new Uri(Constants.DuoCallback)
CallbackUrl = new Uri(Constants.DuoCallback),
#if IOS
ShouldUseSharedApplicationKeyWindow = FromIosExtension
#endif
});
}
catch (TaskCanceledException)
@ -348,6 +360,9 @@ namespace Bit.App.Pages
Url = new Uri(url),
CallbackUrl = new Uri(callbackUri),
PrefersEphemeralWebBrowserSession = true,
#if IOS
ShouldUseSharedApplicationKeyWindow = FromIosExtension
#endif
};
authResult = await WebAuthenticator.AuthenticateAsync(options);
}

View File

@ -6,6 +6,12 @@ using Bit.App.Utilities;
using Bit.Core.Abstractions;
using Microsoft.Maui.Authentication;
#if IOS
using WebAuthenticator = Bit.Core.Utilities.MAUI.WebAuthenticator;
using WebAuthenticatorResult = Bit.Core.Utilities.MAUI.WebAuthenticatorResult;
using WebAuthenticatorOptions = Bit.Core.Utilities.MAUI.WebAuthenticatorOptions;
#endif
namespace Bit.App.Pages
{
public abstract class CaptchaProtectedViewModel : BaseViewModel
@ -16,6 +22,8 @@ namespace Bit.App.Pages
protected abstract IPlatformUtilsService platformUtilsService { get; }
protected string _captchaToken = null;
public bool FromIosExtension { get; set; }
protected async Task<bool> HandleCaptchaAsync(string captchaSiteKey, bool needsCaptcha, Func<Task> onSuccess)
{
if (!needsCaptcha)
@ -61,6 +69,9 @@ namespace Bit.App.Pages
Url = new Uri(url),
CallbackUrl = new Uri(callbackUri),
PrefersEphemeralWebBrowserSession = false,
#if IOS
ShouldUseSharedApplicationKeyWindow = FromIosExtension
#endif
};
authResult = await WebAuthenticator.AuthenticateAsync(options);
}

View File

@ -2140,10 +2140,10 @@ Scanning will happen automatically.</value>
<value>Your organisation policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s)</value>
</data>
<data name="VaultTimeoutPolicyWithActionInEffect" xml:space="preserve">
<value>Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s). Your vault timeout action is set to {2}.</value>
<value>Your organisation policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s). Your vault timeout action is set to {2}.</value>
</data>
<data name="VaultTimeoutActionPolicyInEffect" xml:space="preserve">
<value>Your organization policies have set your vault timeout action to {0}.</value>
<value>Your organisation policies have set your vault timeout action to {0}.</value>
</data>
<data name="VaultTimeoutToLarge" xml:space="preserve">
<value>Your vault timeout exceeds the restrictions set by your organisation.</value>
@ -2626,7 +2626,7 @@ Do you want to switch to this account?</value>
<value>Region</value>
</data>
<data name="UpdateWeakMasterPasswordWarning" xml:space="preserve">
<value>Your master password does not meet one or more of your organization policies. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.</value>
<value>Your master password does not meet one or more of your organisation policies. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.</value>
</data>
<data name="CurrentMasterPassword" xml:space="preserve">
<value>Current master password</value>
@ -2768,7 +2768,7 @@ Do you want to switch to this account?</value>
<value>Account security</value>
</data>
<data name="BitwardenHelpCenter" xml:space="preserve">
<value>Bitwarden Help Center</value>
<value>Bitwarden Help Centre</value>
</data>
<data name="ContactBitwardenSupport" xml:space="preserve">
<value>Contact Bitwarden support</value>
@ -2827,7 +2827,7 @@ Do you want to switch to this account?</value>
<comment>The parameter is an URL, like bitwarden.com.</comment>
</data>
<data name="ContinueToHelpCenter" xml:space="preserve">
<value>Continue to Help center?</value>
<value>Continue to Help centre?</value>
</data>
<data name="ContinueToContactSupport" xml:space="preserve">
<value>Continue to contact support?</value>
@ -2852,7 +2852,7 @@ Do you want to switch to this account?</value>
<comment>The parameter is an URL, like vault.bitwarden.com.</comment>
</data>
<data name="LearnMoreAboutHowToUseBitwardenOnTheHelpCenter" xml:space="preserve">
<value>Learn more about how to use Bitwarden on the Help center.</value>
<value>Learn more about how to use Bitwarden on the Help centre.</value>
</data>
<data name="ContactSupportDescriptionLong" xml:space="preserve">
<value>Cant find what you are looking for? Reach out to Bitwarden support on bitwarden.com.</value>
@ -2864,7 +2864,7 @@ Do you want to switch to this account?</value>
<value>Explore more features of your Bitwarden account on the web app.</value>
</data>
<data name="LearnAboutOrganizationsDescriptionLong" xml:space="preserve">
<value>Bitwarden allows you to share your vault items with others by using an organization. Learn more on the bitwarden.com website.</value>
<value>Bitwarden allows you to share your vault items with others by using an organisation. Learn more on the bitwarden.com website.</value>
</data>
<data name="RateAppDescriptionLong" xml:space="preserve">
<value>Help others find out if Bitwarden is right for them. Visit the app store and leave a rating now.</value>
@ -2883,10 +2883,10 @@ Do you want to switch to this account?</value>
<value>Account logged out.</value>
</data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
<value>Your organisation permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
<value>Your organisation requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
@ -2975,10 +2975,10 @@ Do you want to switch to this account?</value>
<value>Your passkey will be saved to your Bitwarden vault for {0}</value>
</data>
<data name="OrganizationUnassignedItemsMessageUSEUDescriptionLong" xml:space="preserve">
<value>Unassigned organization items are no longer visible in the All Vaults view and only accessible via the Admin Console. Assign these items to a collection from the Admin Console to make them visible.</value>
<value>Unassigned organisation items are no longer visible in the All Vaults view and only accessible via the Admin Console. Assign these items to a collection from the Admin Console to make them visible.</value>
</data>
<data name="OrganizationUnassignedItemsMessageSelfHost041624DescriptionLong" xml:space="preserve">
<value>On May 16, 2024, unassigned organization items will no longer be visible in the All Vaults view and only accessible via the Admin Console. Assign these items to a collection from the Admin Console to make them visible.</value>
<value>On May 16, 2024, unassigned organisation items will no longer be visible in the All Vaults view and only accessible via the Admin Console. Assign these items to a collection from the Admin Console to make them visible.</value>
</data>
<data name="RemindMeLater" xml:space="preserve">
<value>Remind me later</value>

View File

@ -2154,10 +2154,10 @@ Scanning will happen automatically.</value>
<value>Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s)</value>
</data>
<data name="VaultTimeoutPolicyWithActionInEffect" xml:space="preserve">
<value>Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s). Your vault timeout action is set to {2}.</value>
<value>Your organisation policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s). Your vault timeout action is set to {2}.</value>
</data>
<data name="VaultTimeoutActionPolicyInEffect" xml:space="preserve">
<value>Your organization policies have set your vault timeout action to {0}.</value>
<value>Your organisation policies have set your vault timeout action to {0}.</value>
</data>
<data name="VaultTimeoutToLarge" xml:space="preserve">
<value>Your vault timeout exceeds the restrictions set by your organization.</value>
@ -2610,7 +2610,7 @@ Do you want to switch to this account?</value>
<value>Weak password identified and found in a data breach. Use a strong and unique password to protect your account. Are you sure you want to use this password?</value>
</data>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
<value>Organisation SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
@ -2640,7 +2640,7 @@ Do you want to switch to this account?</value>
<value>Region</value>
</data>
<data name="UpdateWeakMasterPasswordWarning" xml:space="preserve">
<value>Your master password does not meet one or more of your organization policies. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.</value>
<value>Your master password does not meet one or more of your organisation policies. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.</value>
</data>
<data name="CurrentMasterPassword" xml:space="preserve">
<value>Current master password</value>
@ -2782,7 +2782,7 @@ Do you want to switch to this account?</value>
<value>Account security</value>
</data>
<data name="BitwardenHelpCenter" xml:space="preserve">
<value>Bitwarden Help Center</value>
<value>Bitwarden Help Centre</value>
</data>
<data name="ContactBitwardenSupport" xml:space="preserve">
<value>Contact Bitwarden support</value>
@ -2841,7 +2841,7 @@ Do you want to switch to this account?</value>
<comment>The parameter is an URL, like bitwarden.com.</comment>
</data>
<data name="ContinueToHelpCenter" xml:space="preserve">
<value>Continue to Help center?</value>
<value>Continue to Help centre?</value>
</data>
<data name="ContinueToContactSupport" xml:space="preserve">
<value>Continue to contact support?</value>
@ -2866,7 +2866,7 @@ Do you want to switch to this account?</value>
<comment>The parameter is an URL, like vault.bitwarden.com.</comment>
</data>
<data name="LearnMoreAboutHowToUseBitwardenOnTheHelpCenter" xml:space="preserve">
<value>Learn more about how to use Bitwarden on the Help center.</value>
<value>Learn more about how to use Bitwarden on the Help centre.</value>
</data>
<data name="ContactSupportDescriptionLong" xml:space="preserve">
<value>Cant find what you are looking for? Reach out to Bitwarden support on bitwarden.com.</value>
@ -2878,7 +2878,7 @@ Do you want to switch to this account?</value>
<value>Explore more features of your Bitwarden account on the web app.</value>
</data>
<data name="LearnAboutOrganizationsDescriptionLong" xml:space="preserve">
<value>Bitwarden allows you to share your vault items with others by using an organization. Learn more on the bitwarden.com website.</value>
<value>Bitwarden allows you to share your vault items with others by using an organisation. Learn more on the bitwarden.com website.</value>
</data>
<data name="RateAppDescriptionLong" xml:space="preserve">
<value>Help others find out if Bitwarden is right for them. Visit the app store and leave a rating now.</value>
@ -2897,10 +2897,10 @@ Do you want to switch to this account?</value>
<value>Account logged out.</value>
</data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
<value>Your organisation permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
<value>Your organisation requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
@ -2989,10 +2989,10 @@ Do you want to switch to this account?</value>
<value>Your passkey will be saved to your Bitwarden vault for {0}</value>
</data>
<data name="OrganizationUnassignedItemsMessageUSEUDescriptionLong" xml:space="preserve">
<value>Unassigned organization items are no longer visible in the All Vaults view and only accessible via the Admin Console. Assign these items to a collection from the Admin Console to make them visible.</value>
<value>Unassigned organisation items are no longer visible in the All Vaults view and only accessible via the Admin Console. Assign these items to a collection from the Admin Console to make them visible.</value>
</data>
<data name="OrganizationUnassignedItemsMessageSelfHost041624DescriptionLong" xml:space="preserve">
<value>On May 16, 2024, unassigned organization items will no longer be visible in the All Vaults view and only accessible via the Admin Console. Assign these items to a collection from the Admin Console to make them visible.</value>
<value>On May 16, 2024, unassigned organisation items will no longer be visible in the All Vaults view and only accessible via the Admin Console. Assign these items to a collection from the Admin Console to make them visible.</value>
</data>
<data name="RemindMeLater" xml:space="preserve">
<value>Remind me later</value>

View File

@ -118,25 +118,25 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="About" xml:space="preserve">
<value>About</value>
<value>Acerca de</value>
</data>
<data name="Add" xml:space="preserve">
<value>Add</value>
<value>Engadir</value>
<comment>Add/create a new entity (verb).</comment>
</data>
<data name="AddFolder" xml:space="preserve">
<value>Add Folder</value>
<value>Engadir cartafol</value>
</data>
<data name="AddItem" xml:space="preserve">
<value>Add Item</value>
<value>Engadir elemento</value>
<comment>The title for the add item page.</comment>
</data>
<data name="AnErrorHasOccurred" xml:space="preserve">
<value>An error has occurred.</value>
<value>Produciuse un erro.</value>
<comment>Alert title when something goes wrong.</comment>
</data>
<data name="Back" xml:space="preserve">
<value>Back</value>
<value>Atrás</value>
<comment>Navigate back to the previous screen.</comment>
</data>
<data name="Bitwarden" xml:space="preserve">
@ -144,155 +144,155 @@
<comment>App name. Shouldn't ever change.</comment>
</data>
<data name="Cancel" xml:space="preserve">
<value>Cancel</value>
<value>Cancelar</value>
<comment>Cancel an operation.</comment>
</data>
<data name="Copy" xml:space="preserve">
<value>Copy</value>
<value>Copiar</value>
<comment>Copy some value to your clipboard.</comment>
</data>
<data name="CopyPassword" xml:space="preserve">
<value>Copy password</value>
<value>Copiar contrasinal</value>
<comment>The button text that allows a user to copy the login's password to their clipboard.</comment>
</data>
<data name="CopyUsername" xml:space="preserve">
<value>Copy username</value>
<value>Copiar nome de usuario</value>
<comment>The button text that allows a user to copy the login's username to their clipboard.</comment>
</data>
<data name="Credits" xml:space="preserve">
<value>Credits</value>
<value>Créditos</value>
<comment>Title for page that we use to give credit to resources that we use.</comment>
</data>
<data name="Delete" xml:space="preserve">
<value>Delete</value>
<value>Borrar</value>
<comment>Delete an entity (verb).</comment>
</data>
<data name="Deleting" xml:space="preserve">
<value>Deleting...</value>
<value>Borrando...</value>
<comment>Message shown when interacting with the server</comment>
</data>
<data name="DoYouReallyWantToDelete" xml:space="preserve">
<value>Do you really want to delete? This cannot be undone.</value>
<value>Vostede realmente quere borrar? Isto non pode ser desfeito.</value>
<comment>Confirmation alert message when deleteing something.</comment>
</data>
<data name="Edit" xml:space="preserve">
<value>Edit</value>
<value>Editar</value>
</data>
<data name="EditFolder" xml:space="preserve">
<value>Edit folder</value>
<value>Editar cartafol</value>
</data>
<data name="Email" xml:space="preserve">
<value>Email</value>
<value>Correo electrónico</value>
<comment>Short label for an email address.</comment>
</data>
<data name="EmailAddress" xml:space="preserve">
<value>Email address</value>
<value>Enderezo de correo electrónico</value>
<comment>Full label for a email address.</comment>
</data>
<data name="EmailUs" xml:space="preserve">
<value>Email us</value>
<value>Envíanos un correo</value>
</data>
<data name="EmailUsDescription" xml:space="preserve">
<value>Email us directly to get help or leave feedback.</value>
<value>Envíanos un correo directamente para obter axuda ou deixar comentarios.</value>
</data>
<data name="EnterPIN" xml:space="preserve">
<value>Enter your PIN code.</value>
<value>Introduza o seu código PIN.</value>
</data>
<data name="Favorites" xml:space="preserve">
<value>Favorites</value>
<value>Favoritos</value>
<comment>Title for your favorite items in the vault.</comment>
</data>
<data name="FileBugReport" xml:space="preserve">
<value>File a bug report</value>
<value>Presentar un informe de fallo</value>
</data>
<data name="FileBugReportDescription" xml:space="preserve">
<value>Open an issue at our GitHub repository.</value>
<value>Abrir unha incidencia no noso repositorio de GitHub.</value>
</data>
<data name="FingerprintDirection" xml:space="preserve">
<value>Use your fingerprint to verify.</value>
<value>Emprega a túa pegada dactilar para verificar.</value>
</data>
<data name="Folder" xml:space="preserve">
<value>Folder</value>
<value>Cartafol</value>
<comment>Label for a folder.</comment>
</data>
<data name="FolderCreated" xml:space="preserve">
<value>New folder created.</value>
<value>Creouse un novo cartafol.</value>
</data>
<data name="FolderDeleted" xml:space="preserve">
<value>Folder deleted.</value>
<value>Cartafol eliminado.</value>
</data>
<data name="FolderNone" xml:space="preserve">
<value>No Folder</value>
<value>Sen cartafois</value>
<comment>Items that have no folder specified go in this special "catch-all" folder.</comment>
</data>
<data name="Folders" xml:space="preserve">
<value>Folders</value>
<value>Cartafois</value>
</data>
<data name="FolderUpdated" xml:space="preserve">
<value>Folder saved</value>
<value>Cartafol gardado</value>
</data>
<data name="GoToWebsite" xml:space="preserve">
<value>Go to website</value>
<value>Ir á páxina web</value>
<comment>The button text that allows user to launch the website to their web browser.</comment>
</data>
<data name="HelpAndFeedback" xml:space="preserve">
<value>Help and feedback</value>
<value>Axuda e comentarios</value>
</data>
<data name="Hide" xml:space="preserve">
<value>Hide</value>
<value>Agochar</value>
<comment>Hide a secret value that is currently shown (password).</comment>
</data>
<data name="InternetConnectionRequiredMessage" xml:space="preserve">
<value>Please connect to the internet before continuing.</value>
<value>Por favor conéctese a Internet antes de continuar.</value>
<comment>Description message for the alert when internet connection is required to continue.</comment>
</data>
<data name="InternetConnectionRequiredTitle" xml:space="preserve">
<value>Internet connection required</value>
<value>Requírese unha conexión a Internet</value>
<comment>Title for the alert when internet connection is required to continue.</comment>
</data>
<data name="InvalidMasterPassword" xml:space="preserve">
<value>Invalid master password. Try again.</value>
<value>Contrasinal mestre non válido. Téntao de novo.</value>
</data>
<data name="InvalidPIN" xml:space="preserve">
<value>Invalid PIN. Try again.</value>
<value>PIN non válido. Téntao de novo.</value>
</data>
<data name="Launch" xml:space="preserve">
<value>Launch</value>
<value>Abrir</value>
<comment>The button text that allows user to launch the website to their web browser.</comment>
</data>
<data name="LogIn" xml:space="preserve">
<value>Log In</value>
<value>Iniciar sesión</value>
<comment>The login button text (verb).</comment>
</data>
<data name="LogInNoun" xml:space="preserve">
<value>Login</value>
<value>Inicio de sesión</value>
<comment>Title for login page. (noun)</comment>
</data>
<data name="LogOut" xml:space="preserve">
<value>Log out</value>
<value>Pechar sesión</value>
<comment>The log out button text (verb).</comment>
</data>
<data name="LogoutConfirmation" xml:space="preserve">
<value>Are you sure you want to log out?</value>
<value>Estás seguro de que queres pechar a sesión?</value>
</data>
<data name="RemoveAccount" xml:space="preserve">
<value>Remove account</value>
<value>Eliminar conta</value>
</data>
<data name="RemoveAccountConfirmation" xml:space="preserve">
<value>Are you sure you want to remove this account?</value>
<value>Estás seguro de que queres eliminar a conta?</value>
</data>
<data name="AccountAlreadyAdded" xml:space="preserve">
<value>Account already added</value>
<value>Conta xa engadida</value>
</data>
<data name="SwitchToAlreadyAddedAccountConfirmation" xml:space="preserve">
<value>Would you like to switch to it now?</value>
<value>Gustaríache cambiar a ela agora?</value>
</data>
<data name="MasterPassword" xml:space="preserve">
<value>Master password</value>
<value>Contrasinal mestre</value>
<comment>Label for a master password.</comment>
</data>
<data name="More" xml:space="preserve">
<value>More</value>
<value>Máis</value>
<comment>Text to define that there are more options things to see.</comment>
</data>
<data name="MyVault" xml:space="preserve">

View File

@ -2330,16 +2330,16 @@ pilih Tambahkan TOTP untuk menyimpan kunci dengan aman</value>
<value>Login attempt by {0} on {1}</value>
</data>
<data name="DeviceType" xml:space="preserve">
<value>Device type</value>
<value>Jenis perangkat</value>
</data>
<data name="IpAddress" xml:space="preserve">
<value>IP address</value>
<value>Alamat IP</value>
</data>
<data name="Time" xml:space="preserve">
<value>Time</value>
<value>Waktu</value>
</data>
<data name="Near" xml:space="preserve">
<value>Near</value>
<value>Dekat</value>
</data>
<data name="ConfirmLogIn" xml:space="preserve">
<value>Confirm login</value>
@ -2348,10 +2348,10 @@ pilih Tambahkan TOTP untuk menyimpan kunci dengan aman</value>
<value>Deny login</value>
</data>
<data name="JustNow" xml:space="preserve">
<value>Just now</value>
<value>Baru saja</value>
</data>
<data name="XMinutesAgo" xml:space="preserve">
<value>{0} minutes ago</value>
<value>{0} menit yang lalu</value>
</data>
<data name="LogInAccepted" xml:space="preserve">
<value>Login confirmed</value>
@ -2399,19 +2399,19 @@ pilih Tambahkan TOTP untuk menyimpan kunci dengan aman</value>
<value>Forwarded email alias</value>
</data>
<data name="RandomWord" xml:space="preserve">
<value>Random word</value>
<value>Kata acak</value>
</data>
<data name="EmailRequiredParenthesis" xml:space="preserve">
<value>Email (required)</value>
<value>Email (wajib)</value>
</data>
<data name="DomainNameRequiredParenthesis" xml:space="preserve">
<value>Domain name (required)</value>
</data>
<data name="APIKeyRequiredParenthesis" xml:space="preserve">
<value>API key (required)</value>
<value>Key API (wajib)</value>
</data>
<data name="Service" xml:space="preserve">
<value>Service</value>
<value>Layanan</value>
</data>
<data name="AddyIo" xml:space="preserve">
<value>addy.io</value>
@ -2450,7 +2450,7 @@ pilih Tambahkan TOTP untuk menyimpan kunci dengan aman</value>
<value>Email Type</value>
</data>
<data name="WebsiteRequired" xml:space="preserve">
<value>Website (required)</value>
<value>Situs web (wajib)</value>
</data>
<data name="UnknownXErrorMessage" xml:space="preserve">
<value>Unknown {0} error occurred.</value>
@ -2545,13 +2545,13 @@ Do you want to switch to this account?</value>
<value>No pending requests</value>
</data>
<data name="EnableCamerPermissionToUseTheScanner" xml:space="preserve">
<value>Enable camera permission to use the scanner</value>
<value>Aktifkan izin kamera untuk menggunakan pemindai</value>
</data>
<data name="Language" xml:space="preserve">
<value>Language</value>
<value>Bahasa</value>
</data>
<data name="LanguageChangeXDescription" xml:space="preserve">
<value>The language has been changed to {0}. Please restart the app to see the change</value>
<value>Bahasa telah diubah ke {0}. Silakan mulai ulang aplikasi untuk melihat perubahan</value>
</data>
<data name="LanguageChangeRequiresAppRestart" xml:space="preserve">
<value>Language change requires app restart</value>
@ -2563,25 +2563,25 @@ Do you want to switch to this account?</value>
<value>Important</value>
</data>
<data name="YourMasterPasswordCannotBeRecoveredIfYouForgetItXCharactersMinimum" xml:space="preserve">
<value>Your master password cannot be recovered if you forget it! {0} characters minimum.</value>
<value>Sandi utama Anda tidak akan bisa dipulihkan jika Anda lupa! Setidaknya {0} karakter.</value>
</data>
<data name="WeakMasterPassword" xml:space="preserve">
<value>Weak Master Password</value>
<value>Sandi Utama Lemah</value>
</data>
<data name="WeakPasswordIdentifiedUseAStrongPasswordToProtectYourAccount" xml:space="preserve">
<value>Weak password identified. Use a strong password to protect your account. Are you sure you want to use a weak password?</value>
<value>Sandi lemah ditemukan. Gunakan sandi yang kuat untuk melindungi akun Anda. Apakah Anda yakin ingin menggunakan sandi yang lemah?</value>
</data>
<data name="Weak" xml:space="preserve">
<value>Weak</value>
<value>Lemah</value>
</data>
<data name="Good" xml:space="preserve">
<value>Good</value>
<value>Baik</value>
</data>
<data name="Strong" xml:space="preserve">
<value>Strong</value>
<value>Kuat</value>
</data>
<data name="CheckKnownDataBreachesForThisPassword" xml:space="preserve">
<value>Check known data breaches for this password</value>
<value>Periksa pelanggaran data yang diketahui untuk kata sandi ini</value>
</data>
<data name="ExposedMasterPassword" xml:space="preserve">
<value>Exposed Master Password</value>
@ -2611,7 +2611,7 @@ Do you want to switch to this account?</value>
<value>There are no items that match the search</value>
</data>
<data name="US" xml:space="preserve">
<value>US</value>
<value>AS</value>
</data>
<data name="EU" xml:space="preserve">
<value>EU</value>
@ -2653,16 +2653,16 @@ Do you want to switch to this account?</value>
<value>Passkey</value>
</data>
<data name="Passkeys" xml:space="preserve">
<value>Passkeys</value>
<value>Passkey</value>
</data>
<data name="Application" xml:space="preserve">
<value>Application</value>
<value>Aplikasi</value>
</data>
<data name="YouCannotEditPasskeyApplicationBecauseItWouldInvalidateThePasskey" xml:space="preserve">
<value>You cannot edit passkey application because it would invalidate the passkey</value>
</data>
<data name="PasskeyWillNotBeCopied" xml:space="preserve">
<value>Passkey will not be copied</value>
<value>Passkey tidak akan disalin</value>
</data>
<data name="ThePasskeyWillNotBeCopiedToTheClonedItemDoYouWantToContinueCloningThisItem" xml:space="preserve">
<value>The passkey will not be copied to the cloned item. Do you want to continue cloning this item?</value>
@ -2759,25 +2759,25 @@ Do you want to switch to this account?</value>
<value>Logging in on</value>
</data>
<data name="Vault" xml:space="preserve">
<value>Vault</value>
<value>Brankas</value>
</data>
<data name="Appearance" xml:space="preserve">
<value>Appearance</value>
<value>Tampilan</value>
</data>
<data name="AccountSecurity" xml:space="preserve">
<value>Account security</value>
<value>Keamanan akun</value>
</data>
<data name="BitwardenHelpCenter" xml:space="preserve">
<value>Bitwarden Help Center</value>
<value>Pusat Bantuan Bitwarden</value>
</data>
<data name="ContactBitwardenSupport" xml:space="preserve">
<value>Contact Bitwarden support</value>
<value>Hubungi dukungan Bitwarden</value>
</data>
<data name="CopyAppInformation" xml:space="preserve">
<value>Copy app information</value>
<value>Salin informasi aplikasi</value>
</data>
<data name="SyncNow" xml:space="preserve">
<value>Sync now</value>
<value>Sinkronkan sekarang</value>
</data>
<data name="UnlockOptions" xml:space="preserve">
<value>Unlock options</value>
@ -2793,25 +2793,25 @@ Do you want to switch to this account?</value>
<comment>A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing.</comment>
</data>
<data name="OneHourAndOneMinute" xml:space="preserve">
<value>One hour and one minute</value>
<value>Satu jam satu menit</value>
</data>
<data name="OneHourAndXMinute" xml:space="preserve">
<value>One hour and {0} minutes</value>
<value>1 jam {0} menit</value>
</data>
<data name="XHoursAndOneMinute" xml:space="preserve">
<value>{0} hours and one minute</value>
<value>{0} jam 1 menit</value>
</data>
<data name="XHoursAndYMinutes" xml:space="preserve">
<value>{0} hours and {1} minutes</value>
<value>{0} jam {1} menit</value>
</data>
<data name="XHours" xml:space="preserve">
<value>{0} hours</value>
<value>{0} jam</value>
</data>
<data name="PasskeyManagementExplanationLong" xml:space="preserve">
<value>Use Bitwarden to save new passkeys and log in with passkeys stored in your vault.</value>
</data>
<data name="AutofillServicesExplanationLong" xml:space="preserve">
<value>The Android Autofill Framework is used to assist in filling login information into other apps on your device.</value>
<value>Android Autofill Framework digunakan untuk membantu Anda mengisi informasi login ke aplikasi lain di perangkat Anda.</value>
</data>
<data name="UseInlineAutofillExplanationLong" xml:space="preserve">
<value>Use inline autofill if your selected keyboard supports it. Otherwise, use the default overlay.</value>

View File

@ -1440,7 +1440,7 @@ Skanning skjer automatisk.</value>
<value>Vel ei samskipnad du ynskjer å flytta denne oppføringa til. Ved å flytta ei oppføring til ei samskipnad fører ein eigarskapen til oppføringa til den samskipnaden. Du vil ikkje lenger ha bein eigarskap til denne oppføringa etter ho er flytta.</value>
</data>
<data name="NumberOfWords" xml:space="preserve">
<value>Number of words</value>
<value>Antal ord</value>
</data>
<data name="Passphrase" xml:space="preserve">
<value>Passphrase</value>
@ -1492,7 +1492,7 @@ Skanning skjer automatisk.</value>
<value>Set your PIN code for unlocking Bitwarden. Your PIN settings will be reset if you ever fully log out of the application.</value>
</data>
<data name="LoggedInAsOn" xml:space="preserve">
<value>Logged in as {0} on {1}.</value>
<value>Logga inn som {0} på {1}.</value>
<comment>ex: Logged in as user@example.com on bitwarden.com.</comment>
</data>
<data name="VaultLockedMasterPassword" xml:space="preserve">
@ -1550,13 +1550,13 @@ Skanning skjer automatisk.</value>
<value>Brigda fargetemaet på appen</value>
</data>
<data name="ThemeDefault" xml:space="preserve">
<value>Default (System)</value>
<value>Standard (System)</value>
</data>
<data name="DefaultDarkTheme" xml:space="preserve">
<value>Default dark theme</value>
<value>Standard mørkt tema</value>
</data>
<data name="CopyNotes" xml:space="preserve">
<value>Copy note</value>
<value>Kopier notat</value>
</data>
<data name="Exit" xml:space="preserve">
<value>Far ut</value>
@ -1565,7 +1565,7 @@ Skanning skjer automatisk.</value>
<value>Er du trygg på at du vil fara ut av Bitwarden?</value>
</data>
<data name="PINRequireMasterPasswordRestart" xml:space="preserve">
<value>Do you want to require unlocking with your master password when the application is restarted?</value>
<value>Vil du krevje opplåsing med superpassordet ditt når programmet startast på nytt?</value>
</data>
<data name="Black" xml:space="preserve">
<value>Svart</value>
@ -1583,7 +1583,7 @@ Skanning skjer automatisk.</value>
<value>Auto-fill blocked URIs</value>
</data>
<data name="AskToAddLogin" xml:space="preserve">
<value>Ask to add login</value>
<value>Spør om å leggje til innlogging</value>
</data>
<data name="AskToAddLoginDescription" xml:space="preserve">
<value>Ask to add an item if one isn't found in your vault.</value>
@ -1632,7 +1632,7 @@ Skanning skjer automatisk.</value>
<value>3. On the Android App Settings screen for Bitwarden, go to the "Display over other apps" options (under Advanced) and tap the toggle to allow overlay support.</value>
</data>
<data name="OverlayPermission" xml:space="preserve">
<value>Permission</value>
<value>Løyve</value>
</data>
<data name="BitwardenAutofillServiceOpenOverlayPermissionSettings" xml:space="preserve">
<value>Open Overlay Permission Settings</value>
@ -1647,19 +1647,19 @@ Skanning skjer automatisk.</value>
<value>Granted</value>
</data>
<data name="FileFormat" xml:space="preserve">
<value>File format</value>
<value>Filformat</value>
</data>
<data name="ExportVaultMasterPasswordDescription" xml:space="preserve">
<value>Enter your master password to export your vault data.</value>
</data>
<data name="SendVerificationCodeToEmail" xml:space="preserve">
<value>Send a verification code to your email</value>
<value>Send ein stadfestingskode til e-posten din</value>
</data>
<data name="CodeSent" xml:space="preserve">
<value>Kode sendt!</value>
</data>
<data name="ConfirmYourIdentity" xml:space="preserve">
<value>Confirm your identity to continue.</value>
<value>Stadfest identiteten din for å fortsetje.</value>
</data>
<data name="ExportVaultWarning" xml:space="preserve">
<value>This export contains your vault data in an unencrypted format. You should not store or send the exported file over unsecure channels (such as email). Delete it immediately after you are done using it.</value>
@ -1671,7 +1671,7 @@ Skanning skjer automatisk.</value>
<value>Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account.</value>
</data>
<data name="ExportVaultConfirmationTitle" xml:space="preserve">
<value>Confirm vault export</value>
<value>Stadfest eksportering av kvelv</value>
<comment>Title for the alert to confirm vault exports.</comment>
</data>
<data name="Warning" xml:space="preserve">
@ -1771,7 +1771,7 @@ Skanning skjer automatisk.</value>
<value>Currently unable to login with SSO</value>
</data>
<data name="SetMasterPassword" xml:space="preserve">
<value>Set master password</value>
<value>Set hovudpassord</value>
</data>
<data name="SetMasterPasswordSummary" xml:space="preserve">
<value>In order to complete logging in with SSO, please set a master password to access and protect your vault.</value>
@ -1804,7 +1804,7 @@ Skanning skjer automatisk.</value>
<value>Passordet møter ikkje samskipnadskrava. Ver venleg og les retningslinene og freista om att.</value>
</data>
<data name="Loading" xml:space="preserve">
<value>Loading</value>
<value>Lastar</value>
</data>
<data name="AcceptPolicies" xml:space="preserve">
<value>By activating this switch you agree to the following:

View File

@ -422,7 +422,7 @@
<value>Сервис Ауто-попуњавања</value>
</data>
<data name="SetBitwardenAsPasskeyManagerDescription" xml:space="preserve">
<value>Set Bitwarden as your passkey provider in device settings.</value>
<value>Поставити Bitwarden као добављача приступног кључа у подешавањима уређаја.</value>
</data>
<data name="AvoidAmbiguousCharacters" xml:space="preserve">
<value>Избегавај двосмислене карактере</value>
@ -1195,7 +1195,7 @@
<value>Windows Hello</value>
</data>
<data name="BitwardenCredentialProviderGoToSettings" xml:space="preserve">
<value>We were unable to automatically open the Android credential provider settings menu for you. You can navigate to the credential provider settings menu manually from Android Settings &gt; System &gt; Passwords &amp; accounts &gt; Passwords, passkeys and data services.</value>
<value>Нисмо успели да аутоматски отворимо мени за подешавања Андроид провајдера акредитива за вас. Можете да се крећете до менија подешавања добављача акредитива ручно из Андроид подешавања &gt; Систем &gt; Лозинке и налози &gt; Лозинке, приступни кључени.</value>
</data>
<data name="BitwardenAutofillGoToSettings" xml:space="preserve">
<value>Нисмо могли аутоматски да отворимо мени за подешавања Ауто-пуњења. До менија подешавања ауто-пуњења можете ручно да дођете из Андроид подешавања &gt; Систем &gt; Језици и унос &gt; Напредно &gt; Сервис ауто-пуњења.</value>
@ -1823,7 +1823,7 @@
<value>Bitwarden треба пажњу - Омогућите „Преко“ у „Сервиси Ауто-пуњења“ из подешавања Bitwarden-а</value>
</data>
<data name="PasskeyManagement" xml:space="preserve">
<value>Passkey management</value>
<value>Управљање приступачног кључа</value>
</data>
<data name="AutofillServices" xml:space="preserve">
<value>Сервиси Ауто-пуњења</value>
@ -2810,7 +2810,7 @@
<value>{0} сати/а</value>
</data>
<data name="PasskeyManagementExplanationLong" xml:space="preserve">
<value>Use Bitwarden to save new passkeys and log in with passkeys stored in your vault.</value>
<value>Употребити Bitwarden да сачувате нове приступне кључеве и пријавите се са приступним кључевима ускладиштеним у вашем трезору.</value>
</data>
<data name="AutofillServicesExplanationLong" xml:space="preserve">
<value>Android Autofill Framework се користи за помоћ при попуњавању података за пријаву у друге апликације на вашем уређају.</value>
@ -2841,7 +2841,7 @@
<value>Настави на радњу апликације?</value>
</data>
<data name="ContinueToDeviceSettings" xml:space="preserve">
<value>Continue to device Settings?</value>
<value>Желите ли да наставите на подешавања уређаја?</value>
</data>
<data name="TwoStepLoginDescriptionLong" xml:space="preserve">
<value>Учините свој налог сигурнијим подешавањем пријаве у два корака у Bitwarden веб апликацији.</value>
@ -2894,25 +2894,25 @@
<value>Подесите опцију откључавања да бисте променили радњу временског ограничења сефа.</value>
</data>
<data name="ChooseALoginToSaveThisPasskeyTo" xml:space="preserve">
<value>Choose a login to save this passkey to</value>
<value>Изаберите пријаву да бисте сачували овај приступни кључ</value>
</data>
<data name="SavePasskeyAsNewLogin" xml:space="preserve">
<value>Save passkey as new login</value>
<value>Сачувати приступни кључ као нову пријаву</value>
</data>
<data name="SavePasskey" xml:space="preserve">
<value>Save passkey</value>
<value>Сачувати приступни кључ</value>
</data>
<data name="PasskeysForX" xml:space="preserve">
<value>Passkeys for {0}</value>
<value>Приступни кључ за {0}</value>
</data>
<data name="PasswordsForX" xml:space="preserve">
<value>Passwords for {0}</value>
<value>Лозинке за {0}</value>
</data>
<data name="OverwritePasskey" xml:space="preserve">
<value>Overwrite passkey?</value>
<value>Заменити приступни кључ?</value>
</data>
<data name="ThisItemAlreadyContainsAPasskeyAreYouSureYouWantToOverwriteTheCurrentPasskey" xml:space="preserve">
<value>This item already contains a passkey. Are you sure you want to overwrite the current passkey?</value>
<value>Ова ставка већ садржи приступни кључ. Да ли сте сигурни да желите да замените тренутни приступни кључ?</value>
</data>
<data name="DuoTwoStepLoginIsRequiredForYourAccount" xml:space="preserve">
<value>Duo пријава у два корака је потребна за ваш налог. </value>
@ -2924,57 +2924,57 @@
<value>Покренути Duo</value>
</data>
<data name="VerificationRequiredByX" xml:space="preserve">
<value>Verification required by {0}</value>
<value>Потребдна верификација {0}</value>
</data>
<data name="VerificationRequiredForThisActionSetUpAnUnlockMethodInBitwardenToContinue" xml:space="preserve">
<value>Verification required for this action. Set up an unlock method in Bitwarden to continue.</value>
<value>За ову радњу је потребна верификација. Подесите метод откључавања у Bitwarden да би наставили.</value>
</data>
<data name="ErrorCreatingPasskey" xml:space="preserve">
<value>Error creating passkey</value>
<value>Грешка у креацији приступачног кључа</value>
</data>
<data name="ErrorReadingPasskey" xml:space="preserve">
<value>Error reading passkey</value>
<value>Грешка у читању приступачног кључа</value>
</data>
<data name="ThereWasAProblemCreatingAPasskeyForXTryAgainLater" xml:space="preserve">
<value>There was a problem creating a passkey for {0}. Try again later.</value>
<value>Дошло је до проблема при креирању приступачког кључа за {0}. Покушајте поново касније.</value>
<comment>The parameter is the RpId</comment>
</data>
<data name="ThereWasAProblemReadingAPasskeyForXTryAgainLater" xml:space="preserve">
<value>There was a problem reading your passkey for {0}. Try again later.</value>
<value>Дошло је до проблема при читању приступачког кључа за {0}. Покушајте поново касније.</value>
<comment>The parameter is the RpId</comment>
</data>
<data name="VerifyingIdentityEllipsis" xml:space="preserve">
<value>Verifying identity...</value>
<value>Верификација идентитета...</value>
</data>
<data name="Passwords" xml:space="preserve">
<value>Passwords</value>
<value>Лозинке</value>
</data>
<data name="UnknownAccount" xml:space="preserve">
<value>Unknown account</value>
<value>Непознат налог</value>
</data>
<data name="SetUpAutofill" xml:space="preserve">
<value>Set up auto-fill</value>
<value>Подесити ауто-пуњење</value>
</data>
<data name="GetInstantAccessToYourPasswordsAndPasskeys" xml:space="preserve">
<value>Get instant access to your passwords and passkeys!</value>
<value>Имајте инстантни приступ Вашим лозинкама и приступачним кључевима!</value>
</data>
<data name="SetUpAutoFillDescriptionLong" xml:space="preserve">
<value>To set up password auto-fill and passkey management, set Bitwarden as your preferred provider in the iOS Settings.</value>
<value>Да бисте подесили ауто-пуњење лозинки и управљање приступним кључевима, подесите Bitwarden као ваш омиљени провајдер у подешавањима iOS-а.</value>
</data>
<data name="FirstDotGoToYourDeviceSettingsPasswordsPasswordOptions" xml:space="preserve">
<value>1. Go to your device's Settings &gt; Passwords &gt; Password Options</value>
<value>1. Идите на подешавања уређаја &gt; Лозинке &gt; Опције лозинке</value>
</data>
<data name="SecondDotTurnOnAutoFill" xml:space="preserve">
<value>2. Turn on AutoFill</value>
<value>2. Омогућите ауто-пуњење</value>
</data>
<data name="ThirdDotSelectBitwardenToUseForPasswordsAndPasskeys" xml:space="preserve">
<value>3. Select "Bitwarden" to use for passwords and passkeys</value>
<value>3. Одабрати "Bitwarden" за употребу за лозинке</value>
</data>
<data name="YourPasskeyWillBeSavedToYourBitwardenVault" xml:space="preserve">
<value>Your passkey will be saved to your Bitwarden vault</value>
<value>Ваш приступни кључ ће бити сачуван у вашем Bitwarden сефу</value>
</data>
<data name="YourPasskeyWillBeSavedToYourBitwardenVaultForX" xml:space="preserve">
<value>Your passkey will be saved to your Bitwarden vault for {0}</value>
<value>Ваш приступни кључ ће бити сачуван у вашем Bitwarden сефу за {0}</value>
</data>
<data name="OrganizationUnassignedItemsMessageUSEUDescriptionLong" xml:space="preserve">
<value>Недодељене ставке организације више нису видљиве у приказу Сви сефови и доступне су само преко Админ конзоле. Доделите ове ставке колекцији са Админ конзолом да бисте их учинили видљивим.</value>
@ -2989,21 +2989,21 @@
<value>Напомена</value>
</data>
<data name="PasskeysNotSupportedForThisApp" xml:space="preserve">
<value>Passkeys not supported for this app</value>
<value>Приступни кључеви нису подржани за ову апликацију</value>
</data>
<data name="PasskeyOperationFailedBecauseBrowserIsNotPrivileged" xml:space="preserve">
<value>Passkey operation failed because browser is not privileged</value>
</data>
<data name="PasskeyOperationFailedBecauseBrowserSignatureDoesNotMatch" xml:space="preserve">
<value>Passkey operation failed because browser signature does not match</value>
<value>Операција лозинке није успела јер се потпис прегледача не подудара</value>
</data>
<data name="PasskeyOperationFailedBecauseOfMissingAssetLinks" xml:space="preserve">
<value>Passkey operation failed because of missing asset links</value>
<value>Операција лозинке није успела због недостајућих веза средстава</value>
</data>
<data name="PasskeyOperationFailedBecauseAppNotFoundInAssetLinks" xml:space="preserve">
<value>Passkey operation failed because app not found in asset links</value>
<value>Операција лозинке није успела јер апликација није пронађена у везама за средства</value>
</data>
<data name="PasskeyOperationFailedBecauseAppCouldNotBeVerified" xml:space="preserve">
<value>Passkey operation failed because app could not be verified</value>
<value>Операција лозинке није успела јер апликација није могла да се верификује</value>
</data>
</root>

View File

@ -328,11 +328,6 @@ namespace Bit.iOS.Autofill
}
}
private bool CanProvideCredentialOnPasskeyRequest(CipherView cipherView)
{
return _context.PasskeyCredentialRequest != null && !cipherView.Login.HasFido2Credentials;
}
private void OnConfirmingNewCredential()
{
MainThread.BeginInvokeOnMainThread(() =>

View File

@ -443,14 +443,17 @@ namespace Bit.iOS.Autofill
return;
}
var decCipher = await cipher.DecryptAsync();
if (!CanProvideCredentialOnPasskeyRequest(decCipher))
if (_context.IsPasskey)
{
// this shouldn't happen but as a safeguard we've set it here:
// if somehow the flow got into here then it's impossible to find the credential identity
// i.e. if on iOS < 17 and somehow there is a PasskeyCredentialRequest that was passed along in the iOS callbacks
CancelRequest(ASExtensionErrorCode.CredentialIdentityNotFound);
return;
}
var decCipher = await cipher.DecryptAsync();
if (decCipher.Reprompt != CipherRepromptType.None)
{
// Prompt for password using either the lock screen or dialog unless
@ -614,8 +617,9 @@ namespace Bit.iOS.Autofill
private void LaunchRegisterFlow()
{
var registerPage = new RegisterPage(null);
var app = new App.App(new AppOptions { IosExtension = true });
var appOptions = new AppOptions { IosExtension = true };
var registerPage = new RegisterPage(null, appOptions);
var app = new App.App(appOptions);
ThemeManager.SetTheme(app.Resources);
ThemeManager.ApplyResourcesTo(registerPage);
if (registerPage.BindingContext is RegisterPageViewModel vm)
@ -693,8 +697,9 @@ namespace Bit.iOS.Autofill
private void LaunchTwoFactorFlow(bool authingWithSso)
{
var twoFactorPage = new TwoFactorPage(authingWithSso);
var app = new App.App(new AppOptions { IosExtension = true });
var appOptions = new AppOptions { IosExtension = true };
var twoFactorPage = new TwoFactorPage(authingWithSso, appOptions);
var app = new App.App();
ThemeManager.SetTheme(app.Resources);
ThemeManager.ApplyResourcesTo(twoFactorPage);
if (twoFactorPage.BindingContext is TwoFactorPageViewModel vm)

View File

@ -11,7 +11,7 @@
<key>CFBundleIdentifier</key>
<string>com.8bit.bitwarden.autofill</string>
<key>CFBundleShortVersionString</key>
<string>2024.5.0</string>
<string>2024.5.1</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>CFBundleLocalizations</key>

View File

@ -11,7 +11,7 @@
<key>CFBundleIdentifier</key>
<string>com.8bit.bitwarden.find-login-action-extension</string>
<key>CFBundleShortVersionString</key>
<string>2024.5.0</string>
<string>2024.5.1</string>
<key>CFBundleLocalizations</key>
<array>
<string>en</string>

View File

@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>XPC!</string>
<key>CFBundleShortVersionString</key>
<string>2024.5.0</string>
<string>2024.5.1</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>MinimumOSVersion</key>