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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?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-sdk android:minSdkVersion="21" android:targetSdkVersion="34" />
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.NFC" /> <uses-permission android:name="android.permission.NFC" />

View File

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

View File

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

View File

@ -19,6 +19,7 @@ namespace Bit.App.Pages
_vm.Email = email; _vm.Email = email;
_vm.AuthRequestType = authRequestType; _vm.AuthRequestType = authRequestType;
_vm.AuthingWithSso = authingWithSso; _vm.AuthingWithSso = authingWithSso;
_vm.FromIosExtension = _appOptions?.IosExtension ?? false;
_vm.StartTwoFactorAction = () => MainThread.BeginInvokeOnMainThread(async () => await StartTwoFactorAsync()); _vm.StartTwoFactorAction = () => MainThread.BeginInvokeOnMainThread(async () => await StartTwoFactorAsync());
_vm.LogInSuccessAction = () => MainThread.BeginInvokeOnMainThread(async () => await LogInSuccessAsync()); _vm.LogInSuccessAction = () => MainThread.BeginInvokeOnMainThread(async () => await LogInSuccessAsync());
_vm.UpdateTempPasswordAction = () => MainThread.BeginInvokeOnMainThread(async () => await UpdateTempPasswordAsync()); _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 public partial class RegisterPage : BaseContentPage
{ {
@ -6,11 +8,12 @@
private bool _inputFocused; private bool _inputFocused;
public RegisterPage(HomePage homePage) public RegisterPage(HomePage homePage, AppOptions appOptions = null)
{ {
InitializeComponent(); InitializeComponent();
_vm = BindingContext as RegisterPageViewModel; _vm = BindingContext as RegisterPageViewModel;
_vm.Page = this; _vm.Page = this;
_vm.FromIosExtension = appOptions?.IosExtension ?? false;
_vm.RegistrationSuccess = () => MainThread.BeginInvokeOnMainThread(async () => await RegistrationSuccessAsync(homePage)); _vm.RegistrationSuccess = () => MainThread.BeginInvokeOnMainThread(async () => await RegistrationSuccessAsync(homePage));
_vm.CloseAction = async () => _vm.CloseAction = async () =>
{ {

View File

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

View File

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

View File

@ -6,6 +6,12 @@ using Bit.App.Utilities;
using Bit.Core.Abstractions; using Bit.Core.Abstractions;
using Microsoft.Maui.Authentication; 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 namespace Bit.App.Pages
{ {
public abstract class CaptchaProtectedViewModel : BaseViewModel public abstract class CaptchaProtectedViewModel : BaseViewModel
@ -16,6 +22,8 @@ namespace Bit.App.Pages
protected abstract IPlatformUtilsService platformUtilsService { get; } protected abstract IPlatformUtilsService platformUtilsService { get; }
protected string _captchaToken = null; protected string _captchaToken = null;
public bool FromIosExtension { get; set; }
protected async Task<bool> HandleCaptchaAsync(string captchaSiteKey, bool needsCaptcha, Func<Task> onSuccess) protected async Task<bool> HandleCaptchaAsync(string captchaSiteKey, bool needsCaptcha, Func<Task> onSuccess)
{ {
if (!needsCaptcha) if (!needsCaptcha)
@ -61,6 +69,9 @@ namespace Bit.App.Pages
Url = new Uri(url), Url = new Uri(url),
CallbackUrl = new Uri(callbackUri), CallbackUrl = new Uri(callbackUri),
PrefersEphemeralWebBrowserSession = false, PrefersEphemeralWebBrowserSession = false,
#if IOS
ShouldUseSharedApplicationKeyWindow = FromIosExtension
#endif
}; };
authResult = await WebAuthenticator.AuthenticateAsync(options); 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> <value>Your organisation policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s)</value>
</data> </data>
<data name="VaultTimeoutPolicyWithActionInEffect" xml:space="preserve"> <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>
<data name="VaultTimeoutActionPolicyInEffect" xml:space="preserve"> <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>
<data name="VaultTimeoutToLarge" xml:space="preserve"> <data name="VaultTimeoutToLarge" xml:space="preserve">
<value>Your vault timeout exceeds the restrictions set by your organisation.</value> <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> <value>Region</value>
</data> </data>
<data name="UpdateWeakMasterPasswordWarning" xml:space="preserve"> <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>
<data name="CurrentMasterPassword" xml:space="preserve"> <data name="CurrentMasterPassword" xml:space="preserve">
<value>Current master password</value> <value>Current master password</value>
@ -2768,7 +2768,7 @@ Do you want to switch to this account?</value>
<value>Account security</value> <value>Account security</value>
</data> </data>
<data name="BitwardenHelpCenter" xml:space="preserve"> <data name="BitwardenHelpCenter" xml:space="preserve">
<value>Bitwarden Help Center</value> <value>Bitwarden Help Centre</value>
</data> </data>
<data name="ContactBitwardenSupport" xml:space="preserve"> <data name="ContactBitwardenSupport" xml:space="preserve">
<value>Contact Bitwarden support</value> <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> <comment>The parameter is an URL, like bitwarden.com.</comment>
</data> </data>
<data name="ContinueToHelpCenter" xml:space="preserve"> <data name="ContinueToHelpCenter" xml:space="preserve">
<value>Continue to Help center?</value> <value>Continue to Help centre?</value>
</data> </data>
<data name="ContinueToContactSupport" xml:space="preserve"> <data name="ContinueToContactSupport" xml:space="preserve">
<value>Continue to contact support?</value> <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> <comment>The parameter is an URL, like vault.bitwarden.com.</comment>
</data> </data>
<data name="LearnMoreAboutHowToUseBitwardenOnTheHelpCenter" xml:space="preserve"> <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>
<data name="ContactSupportDescriptionLong" xml:space="preserve"> <data name="ContactSupportDescriptionLong" xml:space="preserve">
<value>Cant find what you are looking for? Reach out to Bitwarden support on bitwarden.com.</value> <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> <value>Explore more features of your Bitwarden account on the web app.</value>
</data> </data>
<data name="LearnAboutOrganizationsDescriptionLong" xml:space="preserve"> <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>
<data name="RateAppDescriptionLong" xml:space="preserve"> <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> <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> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve"> <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>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve"> <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>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve"> <data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value> <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> <value>Your passkey will be saved to your Bitwarden vault for {0}</value>
</data> </data>
<data name="OrganizationUnassignedItemsMessageUSEUDescriptionLong" xml:space="preserve"> <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>
<data name="OrganizationUnassignedItemsMessageSelfHost041624DescriptionLong" xml:space="preserve"> <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>
<data name="RemindMeLater" xml:space="preserve"> <data name="RemindMeLater" xml:space="preserve">
<value>Remind me later</value> <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> <value>Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s)</value>
</data> </data>
<data name="VaultTimeoutPolicyWithActionInEffect" xml:space="preserve"> <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>
<data name="VaultTimeoutActionPolicyInEffect" xml:space="preserve"> <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>
<data name="VaultTimeoutToLarge" xml:space="preserve"> <data name="VaultTimeoutToLarge" xml:space="preserve">
<value>Your vault timeout exceeds the restrictions set by your organization.</value> <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> <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>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve"> <data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value> <value>Organisation SSO identifier required.</value>
</data> </data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve"> <data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value> <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> <value>Region</value>
</data> </data>
<data name="UpdateWeakMasterPasswordWarning" xml:space="preserve"> <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>
<data name="CurrentMasterPassword" xml:space="preserve"> <data name="CurrentMasterPassword" xml:space="preserve">
<value>Current master password</value> <value>Current master password</value>
@ -2782,7 +2782,7 @@ Do you want to switch to this account?</value>
<value>Account security</value> <value>Account security</value>
</data> </data>
<data name="BitwardenHelpCenter" xml:space="preserve"> <data name="BitwardenHelpCenter" xml:space="preserve">
<value>Bitwarden Help Center</value> <value>Bitwarden Help Centre</value>
</data> </data>
<data name="ContactBitwardenSupport" xml:space="preserve"> <data name="ContactBitwardenSupport" xml:space="preserve">
<value>Contact Bitwarden support</value> <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> <comment>The parameter is an URL, like bitwarden.com.</comment>
</data> </data>
<data name="ContinueToHelpCenter" xml:space="preserve"> <data name="ContinueToHelpCenter" xml:space="preserve">
<value>Continue to Help center?</value> <value>Continue to Help centre?</value>
</data> </data>
<data name="ContinueToContactSupport" xml:space="preserve"> <data name="ContinueToContactSupport" xml:space="preserve">
<value>Continue to contact support?</value> <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> <comment>The parameter is an URL, like vault.bitwarden.com.</comment>
</data> </data>
<data name="LearnMoreAboutHowToUseBitwardenOnTheHelpCenter" xml:space="preserve"> <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>
<data name="ContactSupportDescriptionLong" xml:space="preserve"> <data name="ContactSupportDescriptionLong" xml:space="preserve">
<value>Cant find what you are looking for? Reach out to Bitwarden support on bitwarden.com.</value> <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> <value>Explore more features of your Bitwarden account on the web app.</value>
</data> </data>
<data name="LearnAboutOrganizationsDescriptionLong" xml:space="preserve"> <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>
<data name="RateAppDescriptionLong" xml:space="preserve"> <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> <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> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve"> <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>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve"> <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>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve"> <data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value> <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> <value>Your passkey will be saved to your Bitwarden vault for {0}</value>
</data> </data>
<data name="OrganizationUnassignedItemsMessageUSEUDescriptionLong" xml:space="preserve"> <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>
<data name="OrganizationUnassignedItemsMessageSelfHost041624DescriptionLong" xml:space="preserve"> <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>
<data name="RemindMeLater" xml:space="preserve"> <data name="RemindMeLater" xml:space="preserve">
<value>Remind me later</value> <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> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<data name="About" xml:space="preserve"> <data name="About" xml:space="preserve">
<value>About</value> <value>Acerca de</value>
</data> </data>
<data name="Add" xml:space="preserve"> <data name="Add" xml:space="preserve">
<value>Add</value> <value>Engadir</value>
<comment>Add/create a new entity (verb).</comment> <comment>Add/create a new entity (verb).</comment>
</data> </data>
<data name="AddFolder" xml:space="preserve"> <data name="AddFolder" xml:space="preserve">
<value>Add Folder</value> <value>Engadir cartafol</value>
</data> </data>
<data name="AddItem" xml:space="preserve"> <data name="AddItem" xml:space="preserve">
<value>Add Item</value> <value>Engadir elemento</value>
<comment>The title for the add item page.</comment> <comment>The title for the add item page.</comment>
</data> </data>
<data name="AnErrorHasOccurred" xml:space="preserve"> <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> <comment>Alert title when something goes wrong.</comment>
</data> </data>
<data name="Back" xml:space="preserve"> <data name="Back" xml:space="preserve">
<value>Back</value> <value>Atrás</value>
<comment>Navigate back to the previous screen.</comment> <comment>Navigate back to the previous screen.</comment>
</data> </data>
<data name="Bitwarden" xml:space="preserve"> <data name="Bitwarden" xml:space="preserve">
@ -144,155 +144,155 @@
<comment>App name. Shouldn't ever change.</comment> <comment>App name. Shouldn't ever change.</comment>
</data> </data>
<data name="Cancel" xml:space="preserve"> <data name="Cancel" xml:space="preserve">
<value>Cancel</value> <value>Cancelar</value>
<comment>Cancel an operation.</comment> <comment>Cancel an operation.</comment>
</data> </data>
<data name="Copy" xml:space="preserve"> <data name="Copy" xml:space="preserve">
<value>Copy</value> <value>Copiar</value>
<comment>Copy some value to your clipboard.</comment> <comment>Copy some value to your clipboard.</comment>
</data> </data>
<data name="CopyPassword" xml:space="preserve"> <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> <comment>The button text that allows a user to copy the login's password to their clipboard.</comment>
</data> </data>
<data name="CopyUsername" xml:space="preserve"> <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> <comment>The button text that allows a user to copy the login's username to their clipboard.</comment>
</data> </data>
<data name="Credits" xml:space="preserve"> <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> <comment>Title for page that we use to give credit to resources that we use.</comment>
</data> </data>
<data name="Delete" xml:space="preserve"> <data name="Delete" xml:space="preserve">
<value>Delete</value> <value>Borrar</value>
<comment>Delete an entity (verb).</comment> <comment>Delete an entity (verb).</comment>
</data> </data>
<data name="Deleting" xml:space="preserve"> <data name="Deleting" xml:space="preserve">
<value>Deleting...</value> <value>Borrando...</value>
<comment>Message shown when interacting with the server</comment> <comment>Message shown when interacting with the server</comment>
</data> </data>
<data name="DoYouReallyWantToDelete" xml:space="preserve"> <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> <comment>Confirmation alert message when deleteing something.</comment>
</data> </data>
<data name="Edit" xml:space="preserve"> <data name="Edit" xml:space="preserve">
<value>Edit</value> <value>Editar</value>
</data> </data>
<data name="EditFolder" xml:space="preserve"> <data name="EditFolder" xml:space="preserve">
<value>Edit folder</value> <value>Editar cartafol</value>
</data> </data>
<data name="Email" xml:space="preserve"> <data name="Email" xml:space="preserve">
<value>Email</value> <value>Correo electrónico</value>
<comment>Short label for an email address.</comment> <comment>Short label for an email address.</comment>
</data> </data>
<data name="EmailAddress" xml:space="preserve"> <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> <comment>Full label for a email address.</comment>
</data> </data>
<data name="EmailUs" xml:space="preserve"> <data name="EmailUs" xml:space="preserve">
<value>Email us</value> <value>Envíanos un correo</value>
</data> </data>
<data name="EmailUsDescription" xml:space="preserve"> <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>
<data name="EnterPIN" xml:space="preserve"> <data name="EnterPIN" xml:space="preserve">
<value>Enter your PIN code.</value> <value>Introduza o seu código PIN.</value>
</data> </data>
<data name="Favorites" xml:space="preserve"> <data name="Favorites" xml:space="preserve">
<value>Favorites</value> <value>Favoritos</value>
<comment>Title for your favorite items in the vault.</comment> <comment>Title for your favorite items in the vault.</comment>
</data> </data>
<data name="FileBugReport" xml:space="preserve"> <data name="FileBugReport" xml:space="preserve">
<value>File a bug report</value> <value>Presentar un informe de fallo</value>
</data> </data>
<data name="FileBugReportDescription" xml:space="preserve"> <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>
<data name="FingerprintDirection" xml:space="preserve"> <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>
<data name="Folder" xml:space="preserve"> <data name="Folder" xml:space="preserve">
<value>Folder</value> <value>Cartafol</value>
<comment>Label for a folder.</comment> <comment>Label for a folder.</comment>
</data> </data>
<data name="FolderCreated" xml:space="preserve"> <data name="FolderCreated" xml:space="preserve">
<value>New folder created.</value> <value>Creouse un novo cartafol.</value>
</data> </data>
<data name="FolderDeleted" xml:space="preserve"> <data name="FolderDeleted" xml:space="preserve">
<value>Folder deleted.</value> <value>Cartafol eliminado.</value>
</data> </data>
<data name="FolderNone" xml:space="preserve"> <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> <comment>Items that have no folder specified go in this special "catch-all" folder.</comment>
</data> </data>
<data name="Folders" xml:space="preserve"> <data name="Folders" xml:space="preserve">
<value>Folders</value> <value>Cartafois</value>
</data> </data>
<data name="FolderUpdated" xml:space="preserve"> <data name="FolderUpdated" xml:space="preserve">
<value>Folder saved</value> <value>Cartafol gardado</value>
</data> </data>
<data name="GoToWebsite" xml:space="preserve"> <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> <comment>The button text that allows user to launch the website to their web browser.</comment>
</data> </data>
<data name="HelpAndFeedback" xml:space="preserve"> <data name="HelpAndFeedback" xml:space="preserve">
<value>Help and feedback</value> <value>Axuda e comentarios</value>
</data> </data>
<data name="Hide" xml:space="preserve"> <data name="Hide" xml:space="preserve">
<value>Hide</value> <value>Agochar</value>
<comment>Hide a secret value that is currently shown (password).</comment> <comment>Hide a secret value that is currently shown (password).</comment>
</data> </data>
<data name="InternetConnectionRequiredMessage" xml:space="preserve"> <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> <comment>Description message for the alert when internet connection is required to continue.</comment>
</data> </data>
<data name="InternetConnectionRequiredTitle" xml:space="preserve"> <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> <comment>Title for the alert when internet connection is required to continue.</comment>
</data> </data>
<data name="InvalidMasterPassword" xml:space="preserve"> <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>
<data name="InvalidPIN" xml:space="preserve"> <data name="InvalidPIN" xml:space="preserve">
<value>Invalid PIN. Try again.</value> <value>PIN non válido. Téntao de novo.</value>
</data> </data>
<data name="Launch" xml:space="preserve"> <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> <comment>The button text that allows user to launch the website to their web browser.</comment>
</data> </data>
<data name="LogIn" xml:space="preserve"> <data name="LogIn" xml:space="preserve">
<value>Log In</value> <value>Iniciar sesión</value>
<comment>The login button text (verb).</comment> <comment>The login button text (verb).</comment>
</data> </data>
<data name="LogInNoun" xml:space="preserve"> <data name="LogInNoun" xml:space="preserve">
<value>Login</value> <value>Inicio de sesión</value>
<comment>Title for login page. (noun)</comment> <comment>Title for login page. (noun)</comment>
</data> </data>
<data name="LogOut" xml:space="preserve"> <data name="LogOut" xml:space="preserve">
<value>Log out</value> <value>Pechar sesión</value>
<comment>The log out button text (verb).</comment> <comment>The log out button text (verb).</comment>
</data> </data>
<data name="LogoutConfirmation" xml:space="preserve"> <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>
<data name="RemoveAccount" xml:space="preserve"> <data name="RemoveAccount" xml:space="preserve">
<value>Remove account</value> <value>Eliminar conta</value>
</data> </data>
<data name="RemoveAccountConfirmation" xml:space="preserve"> <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>
<data name="AccountAlreadyAdded" xml:space="preserve"> <data name="AccountAlreadyAdded" xml:space="preserve">
<value>Account already added</value> <value>Conta xa engadida</value>
</data> </data>
<data name="SwitchToAlreadyAddedAccountConfirmation" xml:space="preserve"> <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>
<data name="MasterPassword" xml:space="preserve"> <data name="MasterPassword" xml:space="preserve">
<value>Master password</value> <value>Contrasinal mestre</value>
<comment>Label for a master password.</comment> <comment>Label for a master password.</comment>
</data> </data>
<data name="More" xml:space="preserve"> <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> <comment>Text to define that there are more options things to see.</comment>
</data> </data>
<data name="MyVault" xml:space="preserve"> <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> <value>Login attempt by {0} on {1}</value>
</data> </data>
<data name="DeviceType" xml:space="preserve"> <data name="DeviceType" xml:space="preserve">
<value>Device type</value> <value>Jenis perangkat</value>
</data> </data>
<data name="IpAddress" xml:space="preserve"> <data name="IpAddress" xml:space="preserve">
<value>IP address</value> <value>Alamat IP</value>
</data> </data>
<data name="Time" xml:space="preserve"> <data name="Time" xml:space="preserve">
<value>Time</value> <value>Waktu</value>
</data> </data>
<data name="Near" xml:space="preserve"> <data name="Near" xml:space="preserve">
<value>Near</value> <value>Dekat</value>
</data> </data>
<data name="ConfirmLogIn" xml:space="preserve"> <data name="ConfirmLogIn" xml:space="preserve">
<value>Confirm login</value> <value>Confirm login</value>
@ -2348,10 +2348,10 @@ pilih Tambahkan TOTP untuk menyimpan kunci dengan aman</value>
<value>Deny login</value> <value>Deny login</value>
</data> </data>
<data name="JustNow" xml:space="preserve"> <data name="JustNow" xml:space="preserve">
<value>Just now</value> <value>Baru saja</value>
</data> </data>
<data name="XMinutesAgo" xml:space="preserve"> <data name="XMinutesAgo" xml:space="preserve">
<value>{0} minutes ago</value> <value>{0} menit yang lalu</value>
</data> </data>
<data name="LogInAccepted" xml:space="preserve"> <data name="LogInAccepted" xml:space="preserve">
<value>Login confirmed</value> <value>Login confirmed</value>
@ -2399,19 +2399,19 @@ pilih Tambahkan TOTP untuk menyimpan kunci dengan aman</value>
<value>Forwarded email alias</value> <value>Forwarded email alias</value>
</data> </data>
<data name="RandomWord" xml:space="preserve"> <data name="RandomWord" xml:space="preserve">
<value>Random word</value> <value>Kata acak</value>
</data> </data>
<data name="EmailRequiredParenthesis" xml:space="preserve"> <data name="EmailRequiredParenthesis" xml:space="preserve">
<value>Email (required)</value> <value>Email (wajib)</value>
</data> </data>
<data name="DomainNameRequiredParenthesis" xml:space="preserve"> <data name="DomainNameRequiredParenthesis" xml:space="preserve">
<value>Domain name (required)</value> <value>Domain name (required)</value>
</data> </data>
<data name="APIKeyRequiredParenthesis" xml:space="preserve"> <data name="APIKeyRequiredParenthesis" xml:space="preserve">
<value>API key (required)</value> <value>Key API (wajib)</value>
</data> </data>
<data name="Service" xml:space="preserve"> <data name="Service" xml:space="preserve">
<value>Service</value> <value>Layanan</value>
</data> </data>
<data name="AddyIo" xml:space="preserve"> <data name="AddyIo" xml:space="preserve">
<value>addy.io</value> <value>addy.io</value>
@ -2450,7 +2450,7 @@ pilih Tambahkan TOTP untuk menyimpan kunci dengan aman</value>
<value>Email Type</value> <value>Email Type</value>
</data> </data>
<data name="WebsiteRequired" xml:space="preserve"> <data name="WebsiteRequired" xml:space="preserve">
<value>Website (required)</value> <value>Situs web (wajib)</value>
</data> </data>
<data name="UnknownXErrorMessage" xml:space="preserve"> <data name="UnknownXErrorMessage" xml:space="preserve">
<value>Unknown {0} error occurred.</value> <value>Unknown {0} error occurred.</value>
@ -2545,13 +2545,13 @@ Do you want to switch to this account?</value>
<value>No pending requests</value> <value>No pending requests</value>
</data> </data>
<data name="EnableCamerPermissionToUseTheScanner" xml:space="preserve"> <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>
<data name="Language" xml:space="preserve"> <data name="Language" xml:space="preserve">
<value>Language</value> <value>Bahasa</value>
</data> </data>
<data name="LanguageChangeXDescription" xml:space="preserve"> <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>
<data name="LanguageChangeRequiresAppRestart" xml:space="preserve"> <data name="LanguageChangeRequiresAppRestart" xml:space="preserve">
<value>Language change requires app restart</value> <value>Language change requires app restart</value>
@ -2563,25 +2563,25 @@ Do you want to switch to this account?</value>
<value>Important</value> <value>Important</value>
</data> </data>
<data name="YourMasterPasswordCannotBeRecoveredIfYouForgetItXCharactersMinimum" xml:space="preserve"> <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>
<data name="WeakMasterPassword" xml:space="preserve"> <data name="WeakMasterPassword" xml:space="preserve">
<value>Weak Master Password</value> <value>Sandi Utama Lemah</value>
</data> </data>
<data name="WeakPasswordIdentifiedUseAStrongPasswordToProtectYourAccount" xml:space="preserve"> <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>
<data name="Weak" xml:space="preserve"> <data name="Weak" xml:space="preserve">
<value>Weak</value> <value>Lemah</value>
</data> </data>
<data name="Good" xml:space="preserve"> <data name="Good" xml:space="preserve">
<value>Good</value> <value>Baik</value>
</data> </data>
<data name="Strong" xml:space="preserve"> <data name="Strong" xml:space="preserve">
<value>Strong</value> <value>Kuat</value>
</data> </data>
<data name="CheckKnownDataBreachesForThisPassword" xml:space="preserve"> <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>
<data name="ExposedMasterPassword" xml:space="preserve"> <data name="ExposedMasterPassword" xml:space="preserve">
<value>Exposed Master Password</value> <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> <value>There are no items that match the search</value>
</data> </data>
<data name="US" xml:space="preserve"> <data name="US" xml:space="preserve">
<value>US</value> <value>AS</value>
</data> </data>
<data name="EU" xml:space="preserve"> <data name="EU" xml:space="preserve">
<value>EU</value> <value>EU</value>
@ -2653,16 +2653,16 @@ Do you want to switch to this account?</value>
<value>Passkey</value> <value>Passkey</value>
</data> </data>
<data name="Passkeys" xml:space="preserve"> <data name="Passkeys" xml:space="preserve">
<value>Passkeys</value> <value>Passkey</value>
</data> </data>
<data name="Application" xml:space="preserve"> <data name="Application" xml:space="preserve">
<value>Application</value> <value>Aplikasi</value>
</data> </data>
<data name="YouCannotEditPasskeyApplicationBecauseItWouldInvalidateThePasskey" xml:space="preserve"> <data name="YouCannotEditPasskeyApplicationBecauseItWouldInvalidateThePasskey" xml:space="preserve">
<value>You cannot edit passkey application because it would invalidate the passkey</value> <value>You cannot edit passkey application because it would invalidate the passkey</value>
</data> </data>
<data name="PasskeyWillNotBeCopied" xml:space="preserve"> <data name="PasskeyWillNotBeCopied" xml:space="preserve">
<value>Passkey will not be copied</value> <value>Passkey tidak akan disalin</value>
</data> </data>
<data name="ThePasskeyWillNotBeCopiedToTheClonedItemDoYouWantToContinueCloningThisItem" xml:space="preserve"> <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> <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> <value>Logging in on</value>
</data> </data>
<data name="Vault" xml:space="preserve"> <data name="Vault" xml:space="preserve">
<value>Vault</value> <value>Brankas</value>
</data> </data>
<data name="Appearance" xml:space="preserve"> <data name="Appearance" xml:space="preserve">
<value>Appearance</value> <value>Tampilan</value>
</data> </data>
<data name="AccountSecurity" xml:space="preserve"> <data name="AccountSecurity" xml:space="preserve">
<value>Account security</value> <value>Keamanan akun</value>
</data> </data>
<data name="BitwardenHelpCenter" xml:space="preserve"> <data name="BitwardenHelpCenter" xml:space="preserve">
<value>Bitwarden Help Center</value> <value>Pusat Bantuan Bitwarden</value>
</data> </data>
<data name="ContactBitwardenSupport" xml:space="preserve"> <data name="ContactBitwardenSupport" xml:space="preserve">
<value>Contact Bitwarden support</value> <value>Hubungi dukungan Bitwarden</value>
</data> </data>
<data name="CopyAppInformation" xml:space="preserve"> <data name="CopyAppInformation" xml:space="preserve">
<value>Copy app information</value> <value>Salin informasi aplikasi</value>
</data> </data>
<data name="SyncNow" xml:space="preserve"> <data name="SyncNow" xml:space="preserve">
<value>Sync now</value> <value>Sinkronkan sekarang</value>
</data> </data>
<data name="UnlockOptions" xml:space="preserve"> <data name="UnlockOptions" xml:space="preserve">
<value>Unlock options</value> <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> <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>
<data name="OneHourAndOneMinute" xml:space="preserve"> <data name="OneHourAndOneMinute" xml:space="preserve">
<value>One hour and one minute</value> <value>Satu jam satu menit</value>
</data> </data>
<data name="OneHourAndXMinute" xml:space="preserve"> <data name="OneHourAndXMinute" xml:space="preserve">
<value>One hour and {0} minutes</value> <value>1 jam {0} menit</value>
</data> </data>
<data name="XHoursAndOneMinute" xml:space="preserve"> <data name="XHoursAndOneMinute" xml:space="preserve">
<value>{0} hours and one minute</value> <value>{0} jam 1 menit</value>
</data> </data>
<data name="XHoursAndYMinutes" xml:space="preserve"> <data name="XHoursAndYMinutes" xml:space="preserve">
<value>{0} hours and {1} minutes</value> <value>{0} jam {1} menit</value>
</data> </data>
<data name="XHours" xml:space="preserve"> <data name="XHours" xml:space="preserve">
<value>{0} hours</value> <value>{0} jam</value>
</data> </data>
<data name="PasskeyManagementExplanationLong" xml:space="preserve"> <data name="PasskeyManagementExplanationLong" xml:space="preserve">
<value>Use Bitwarden to save new passkeys and log in with passkeys stored in your vault.</value> <value>Use Bitwarden to save new passkeys and log in with passkeys stored in your vault.</value>
</data> </data>
<data name="AutofillServicesExplanationLong" xml:space="preserve"> <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>
<data name="UseInlineAutofillExplanationLong" xml:space="preserve"> <data name="UseInlineAutofillExplanationLong" xml:space="preserve">
<value>Use inline autofill if your selected keyboard supports it. Otherwise, use the default overlay.</value> <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> <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>
<data name="NumberOfWords" xml:space="preserve"> <data name="NumberOfWords" xml:space="preserve">
<value>Number of words</value> <value>Antal ord</value>
</data> </data>
<data name="Passphrase" xml:space="preserve"> <data name="Passphrase" xml:space="preserve">
<value>Passphrase</value> <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> <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>
<data name="LoggedInAsOn" xml:space="preserve"> <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> <comment>ex: Logged in as user@example.com on bitwarden.com.</comment>
</data> </data>
<data name="VaultLockedMasterPassword" xml:space="preserve"> <data name="VaultLockedMasterPassword" xml:space="preserve">
@ -1550,13 +1550,13 @@ Skanning skjer automatisk.</value>
<value>Brigda fargetemaet på appen</value> <value>Brigda fargetemaet på appen</value>
</data> </data>
<data name="ThemeDefault" xml:space="preserve"> <data name="ThemeDefault" xml:space="preserve">
<value>Default (System)</value> <value>Standard (System)</value>
</data> </data>
<data name="DefaultDarkTheme" xml:space="preserve"> <data name="DefaultDarkTheme" xml:space="preserve">
<value>Default dark theme</value> <value>Standard mørkt tema</value>
</data> </data>
<data name="CopyNotes" xml:space="preserve"> <data name="CopyNotes" xml:space="preserve">
<value>Copy note</value> <value>Kopier notat</value>
</data> </data>
<data name="Exit" xml:space="preserve"> <data name="Exit" xml:space="preserve">
<value>Far ut</value> <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> <value>Er du trygg på at du vil fara ut av Bitwarden?</value>
</data> </data>
<data name="PINRequireMasterPasswordRestart" xml:space="preserve"> <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>
<data name="Black" xml:space="preserve"> <data name="Black" xml:space="preserve">
<value>Svart</value> <value>Svart</value>
@ -1583,7 +1583,7 @@ Skanning skjer automatisk.</value>
<value>Auto-fill blocked URIs</value> <value>Auto-fill blocked URIs</value>
</data> </data>
<data name="AskToAddLogin" xml:space="preserve"> <data name="AskToAddLogin" xml:space="preserve">
<value>Ask to add login</value> <value>Spør om å leggje til innlogging</value>
</data> </data>
<data name="AskToAddLoginDescription" xml:space="preserve"> <data name="AskToAddLoginDescription" xml:space="preserve">
<value>Ask to add an item if one isn't found in your vault.</value> <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> <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>
<data name="OverlayPermission" xml:space="preserve"> <data name="OverlayPermission" xml:space="preserve">
<value>Permission</value> <value>Løyve</value>
</data> </data>
<data name="BitwardenAutofillServiceOpenOverlayPermissionSettings" xml:space="preserve"> <data name="BitwardenAutofillServiceOpenOverlayPermissionSettings" xml:space="preserve">
<value>Open Overlay Permission Settings</value> <value>Open Overlay Permission Settings</value>
@ -1647,19 +1647,19 @@ Skanning skjer automatisk.</value>
<value>Granted</value> <value>Granted</value>
</data> </data>
<data name="FileFormat" xml:space="preserve"> <data name="FileFormat" xml:space="preserve">
<value>File format</value> <value>Filformat</value>
</data> </data>
<data name="ExportVaultMasterPasswordDescription" xml:space="preserve"> <data name="ExportVaultMasterPasswordDescription" xml:space="preserve">
<value>Enter your master password to export your vault data.</value> <value>Enter your master password to export your vault data.</value>
</data> </data>
<data name="SendVerificationCodeToEmail" xml:space="preserve"> <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>
<data name="CodeSent" xml:space="preserve"> <data name="CodeSent" xml:space="preserve">
<value>Kode sendt!</value> <value>Kode sendt!</value>
</data> </data>
<data name="ConfirmYourIdentity" xml:space="preserve"> <data name="ConfirmYourIdentity" xml:space="preserve">
<value>Confirm your identity to continue.</value> <value>Stadfest identiteten din for å fortsetje.</value>
</data> </data>
<data name="ExportVaultWarning" xml:space="preserve"> <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> <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> <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>
<data name="ExportVaultConfirmationTitle" xml:space="preserve"> <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> <comment>Title for the alert to confirm vault exports.</comment>
</data> </data>
<data name="Warning" xml:space="preserve"> <data name="Warning" xml:space="preserve">
@ -1771,7 +1771,7 @@ Skanning skjer automatisk.</value>
<value>Currently unable to login with SSO</value> <value>Currently unable to login with SSO</value>
</data> </data>
<data name="SetMasterPassword" xml:space="preserve"> <data name="SetMasterPassword" xml:space="preserve">
<value>Set master password</value> <value>Set hovudpassord</value>
</data> </data>
<data name="SetMasterPasswordSummary" xml:space="preserve"> <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> <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> <value>Passordet møter ikkje samskipnadskrava. Ver venleg og les retningslinene og freista om att.</value>
</data> </data>
<data name="Loading" xml:space="preserve"> <data name="Loading" xml:space="preserve">
<value>Loading</value> <value>Lastar</value>
</data> </data>
<data name="AcceptPolicies" xml:space="preserve"> <data name="AcceptPolicies" xml:space="preserve">
<value>By activating this switch you agree to the following: <value>By activating this switch you agree to the following:

View File

@ -422,7 +422,7 @@
<value>Сервис Ауто-попуњавања</value> <value>Сервис Ауто-попуњавања</value>
</data> </data>
<data name="SetBitwardenAsPasskeyManagerDescription" xml:space="preserve"> <data name="SetBitwardenAsPasskeyManagerDescription" xml:space="preserve">
<value>Set Bitwarden as your passkey provider in device settings.</value> <value>Поставити Bitwarden као добављача приступног кључа у подешавањима уређаја.</value>
</data> </data>
<data name="AvoidAmbiguousCharacters" xml:space="preserve"> <data name="AvoidAmbiguousCharacters" xml:space="preserve">
<value>Избегавај двосмислене карактере</value> <value>Избегавај двосмислене карактере</value>
@ -1195,7 +1195,7 @@
<value>Windows Hello</value> <value>Windows Hello</value>
</data> </data>
<data name="BitwardenCredentialProviderGoToSettings" xml:space="preserve"> <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>
<data name="BitwardenAutofillGoToSettings" xml:space="preserve"> <data name="BitwardenAutofillGoToSettings" xml:space="preserve">
<value>Нисмо могли аутоматски да отворимо мени за подешавања Ауто-пуњења. До менија подешавања ауто-пуњења можете ручно да дођете из Андроид подешавања &gt; Систем &gt; Језици и унос &gt; Напредно &gt; Сервис ауто-пуњења.</value> <value>Нисмо могли аутоматски да отворимо мени за подешавања Ауто-пуњења. До менија подешавања ауто-пуњења можете ручно да дођете из Андроид подешавања &gt; Систем &gt; Језици и унос &gt; Напредно &gt; Сервис ауто-пуњења.</value>
@ -1823,7 +1823,7 @@
<value>Bitwarden треба пажњу - Омогућите „Преко“ у „Сервиси Ауто-пуњења“ из подешавања Bitwarden-а</value> <value>Bitwarden треба пажњу - Омогућите „Преко“ у „Сервиси Ауто-пуњења“ из подешавања Bitwarden-а</value>
</data> </data>
<data name="PasskeyManagement" xml:space="preserve"> <data name="PasskeyManagement" xml:space="preserve">
<value>Passkey management</value> <value>Управљање приступачног кључа</value>
</data> </data>
<data name="AutofillServices" xml:space="preserve"> <data name="AutofillServices" xml:space="preserve">
<value>Сервиси Ауто-пуњења</value> <value>Сервиси Ауто-пуњења</value>
@ -2810,7 +2810,7 @@
<value>{0} сати/а</value> <value>{0} сати/а</value>
</data> </data>
<data name="PasskeyManagementExplanationLong" xml:space="preserve"> <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>
<data name="AutofillServicesExplanationLong" xml:space="preserve"> <data name="AutofillServicesExplanationLong" xml:space="preserve">
<value>Android Autofill Framework се користи за помоћ при попуњавању података за пријаву у друге апликације на вашем уређају.</value> <value>Android Autofill Framework се користи за помоћ при попуњавању података за пријаву у друге апликације на вашем уређају.</value>
@ -2841,7 +2841,7 @@
<value>Настави на радњу апликације?</value> <value>Настави на радњу апликације?</value>
</data> </data>
<data name="ContinueToDeviceSettings" xml:space="preserve"> <data name="ContinueToDeviceSettings" xml:space="preserve">
<value>Continue to device Settings?</value> <value>Желите ли да наставите на подешавања уређаја?</value>
</data> </data>
<data name="TwoStepLoginDescriptionLong" xml:space="preserve"> <data name="TwoStepLoginDescriptionLong" xml:space="preserve">
<value>Учините свој налог сигурнијим подешавањем пријаве у два корака у Bitwarden веб апликацији.</value> <value>Учините свој налог сигурнијим подешавањем пријаве у два корака у Bitwarden веб апликацији.</value>
@ -2894,25 +2894,25 @@
<value>Подесите опцију откључавања да бисте променили радњу временског ограничења сефа.</value> <value>Подесите опцију откључавања да бисте променили радњу временског ограничења сефа.</value>
</data> </data>
<data name="ChooseALoginToSaveThisPasskeyTo" xml:space="preserve"> <data name="ChooseALoginToSaveThisPasskeyTo" xml:space="preserve">
<value>Choose a login to save this passkey to</value> <value>Изаберите пријаву да бисте сачували овај приступни кључ</value>
</data> </data>
<data name="SavePasskeyAsNewLogin" xml:space="preserve"> <data name="SavePasskeyAsNewLogin" xml:space="preserve">
<value>Save passkey as new login</value> <value>Сачувати приступни кључ као нову пријаву</value>
</data> </data>
<data name="SavePasskey" xml:space="preserve"> <data name="SavePasskey" xml:space="preserve">
<value>Save passkey</value> <value>Сачувати приступни кључ</value>
</data> </data>
<data name="PasskeysForX" xml:space="preserve"> <data name="PasskeysForX" xml:space="preserve">
<value>Passkeys for {0}</value> <value>Приступни кључ за {0}</value>
</data> </data>
<data name="PasswordsForX" xml:space="preserve"> <data name="PasswordsForX" xml:space="preserve">
<value>Passwords for {0}</value> <value>Лозинке за {0}</value>
</data> </data>
<data name="OverwritePasskey" xml:space="preserve"> <data name="OverwritePasskey" xml:space="preserve">
<value>Overwrite passkey?</value> <value>Заменити приступни кључ?</value>
</data> </data>
<data name="ThisItemAlreadyContainsAPasskeyAreYouSureYouWantToOverwriteTheCurrentPasskey" xml:space="preserve"> <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>
<data name="DuoTwoStepLoginIsRequiredForYourAccount" xml:space="preserve"> <data name="DuoTwoStepLoginIsRequiredForYourAccount" xml:space="preserve">
<value>Duo пријава у два корака је потребна за ваш налог. </value> <value>Duo пријава у два корака је потребна за ваш налог. </value>
@ -2924,57 +2924,57 @@
<value>Покренути Duo</value> <value>Покренути Duo</value>
</data> </data>
<data name="VerificationRequiredByX" xml:space="preserve"> <data name="VerificationRequiredByX" xml:space="preserve">
<value>Verification required by {0}</value> <value>Потребдна верификација {0}</value>
</data> </data>
<data name="VerificationRequiredForThisActionSetUpAnUnlockMethodInBitwardenToContinue" xml:space="preserve"> <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>
<data name="ErrorCreatingPasskey" xml:space="preserve"> <data name="ErrorCreatingPasskey" xml:space="preserve">
<value>Error creating passkey</value> <value>Грешка у креацији приступачног кључа</value>
</data> </data>
<data name="ErrorReadingPasskey" xml:space="preserve"> <data name="ErrorReadingPasskey" xml:space="preserve">
<value>Error reading passkey</value> <value>Грешка у читању приступачног кључа</value>
</data> </data>
<data name="ThereWasAProblemCreatingAPasskeyForXTryAgainLater" xml:space="preserve"> <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> <comment>The parameter is the RpId</comment>
</data> </data>
<data name="ThereWasAProblemReadingAPasskeyForXTryAgainLater" xml:space="preserve"> <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> <comment>The parameter is the RpId</comment>
</data> </data>
<data name="VerifyingIdentityEllipsis" xml:space="preserve"> <data name="VerifyingIdentityEllipsis" xml:space="preserve">
<value>Verifying identity...</value> <value>Верификација идентитета...</value>
</data> </data>
<data name="Passwords" xml:space="preserve"> <data name="Passwords" xml:space="preserve">
<value>Passwords</value> <value>Лозинке</value>
</data> </data>
<data name="UnknownAccount" xml:space="preserve"> <data name="UnknownAccount" xml:space="preserve">
<value>Unknown account</value> <value>Непознат налог</value>
</data> </data>
<data name="SetUpAutofill" xml:space="preserve"> <data name="SetUpAutofill" xml:space="preserve">
<value>Set up auto-fill</value> <value>Подесити ауто-пуњење</value>
</data> </data>
<data name="GetInstantAccessToYourPasswordsAndPasskeys" xml:space="preserve"> <data name="GetInstantAccessToYourPasswordsAndPasskeys" xml:space="preserve">
<value>Get instant access to your passwords and passkeys!</value> <value>Имајте инстантни приступ Вашим лозинкама и приступачним кључевима!</value>
</data> </data>
<data name="SetUpAutoFillDescriptionLong" xml:space="preserve"> <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>
<data name="FirstDotGoToYourDeviceSettingsPasswordsPasswordOptions" xml:space="preserve"> <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>
<data name="SecondDotTurnOnAutoFill" xml:space="preserve"> <data name="SecondDotTurnOnAutoFill" xml:space="preserve">
<value>2. Turn on AutoFill</value> <value>2. Омогућите ауто-пуњење</value>
</data> </data>
<data name="ThirdDotSelectBitwardenToUseForPasswordsAndPasskeys" xml:space="preserve"> <data name="ThirdDotSelectBitwardenToUseForPasswordsAndPasskeys" xml:space="preserve">
<value>3. Select "Bitwarden" to use for passwords and passkeys</value> <value>3. Одабрати "Bitwarden" за употребу за лозинке</value>
</data> </data>
<data name="YourPasskeyWillBeSavedToYourBitwardenVault" xml:space="preserve"> <data name="YourPasskeyWillBeSavedToYourBitwardenVault" xml:space="preserve">
<value>Your passkey will be saved to your Bitwarden vault</value> <value>Ваш приступни кључ ће бити сачуван у вашем Bitwarden сефу</value>
</data> </data>
<data name="YourPasskeyWillBeSavedToYourBitwardenVaultForX" xml:space="preserve"> <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>
<data name="OrganizationUnassignedItemsMessageUSEUDescriptionLong" xml:space="preserve"> <data name="OrganizationUnassignedItemsMessageUSEUDescriptionLong" xml:space="preserve">
<value>Недодељене ставке организације више нису видљиве у приказу Сви сефови и доступне су само преко Админ конзоле. Доделите ове ставке колекцији са Админ конзолом да бисте их учинили видљивим.</value> <value>Недодељене ставке организације више нису видљиве у приказу Сви сефови и доступне су само преко Админ конзоле. Доделите ове ставке колекцији са Админ конзолом да бисте их учинили видљивим.</value>
@ -2989,21 +2989,21 @@
<value>Напомена</value> <value>Напомена</value>
</data> </data>
<data name="PasskeysNotSupportedForThisApp" xml:space="preserve"> <data name="PasskeysNotSupportedForThisApp" xml:space="preserve">
<value>Passkeys not supported for this app</value> <value>Приступни кључеви нису подржани за ову апликацију</value>
</data> </data>
<data name="PasskeyOperationFailedBecauseBrowserIsNotPrivileged" xml:space="preserve"> <data name="PasskeyOperationFailedBecauseBrowserIsNotPrivileged" xml:space="preserve">
<value>Passkey operation failed because browser is not privileged</value> <value>Passkey operation failed because browser is not privileged</value>
</data> </data>
<data name="PasskeyOperationFailedBecauseBrowserSignatureDoesNotMatch" xml:space="preserve"> <data name="PasskeyOperationFailedBecauseBrowserSignatureDoesNotMatch" xml:space="preserve">
<value>Passkey operation failed because browser signature does not match</value> <value>Операција лозинке није успела јер се потпис прегледача не подудара</value>
</data> </data>
<data name="PasskeyOperationFailedBecauseOfMissingAssetLinks" xml:space="preserve"> <data name="PasskeyOperationFailedBecauseOfMissingAssetLinks" xml:space="preserve">
<value>Passkey operation failed because of missing asset links</value> <value>Операција лозинке није успела због недостајућих веза средстава</value>
</data> </data>
<data name="PasskeyOperationFailedBecauseAppNotFoundInAssetLinks" xml:space="preserve"> <data name="PasskeyOperationFailedBecauseAppNotFoundInAssetLinks" xml:space="preserve">
<value>Passkey operation failed because app not found in asset links</value> <value>Операција лозинке није успела јер апликација није пронађена у везама за средства</value>
</data> </data>
<data name="PasskeyOperationFailedBecauseAppCouldNotBeVerified" xml:space="preserve"> <data name="PasskeyOperationFailedBecauseAppCouldNotBeVerified" xml:space="preserve">
<value>Passkey operation failed because app could not be verified</value> <value>Операција лозинке није успела јер апликација није могла да се верификује</value>
</data> </data>
</root> </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() private void OnConfirmingNewCredential()
{ {
MainThread.BeginInvokeOnMainThread(() => MainThread.BeginInvokeOnMainThread(() =>

View File

@ -443,14 +443,17 @@ namespace Bit.iOS.Autofill
return; return;
} }
var decCipher = await cipher.DecryptAsync(); if (_context.IsPasskey)
if (!CanProvideCredentialOnPasskeyRequest(decCipher))
{ {
// 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); CancelRequest(ASExtensionErrorCode.CredentialIdentityNotFound);
return; return;
} }
var decCipher = await cipher.DecryptAsync();
if (decCipher.Reprompt != CipherRepromptType.None) if (decCipher.Reprompt != CipherRepromptType.None)
{ {
// Prompt for password using either the lock screen or dialog unless // Prompt for password using either the lock screen or dialog unless
@ -614,8 +617,9 @@ namespace Bit.iOS.Autofill
private void LaunchRegisterFlow() private void LaunchRegisterFlow()
{ {
var registerPage = new RegisterPage(null); var appOptions = new AppOptions { IosExtension = true };
var app = new App.App(new AppOptions { IosExtension = true }); var registerPage = new RegisterPage(null, appOptions);
var app = new App.App(appOptions);
ThemeManager.SetTheme(app.Resources); ThemeManager.SetTheme(app.Resources);
ThemeManager.ApplyResourcesTo(registerPage); ThemeManager.ApplyResourcesTo(registerPage);
if (registerPage.BindingContext is RegisterPageViewModel vm) if (registerPage.BindingContext is RegisterPageViewModel vm)
@ -693,8 +697,9 @@ namespace Bit.iOS.Autofill
private void LaunchTwoFactorFlow(bool authingWithSso) private void LaunchTwoFactorFlow(bool authingWithSso)
{ {
var twoFactorPage = new TwoFactorPage(authingWithSso); var appOptions = new AppOptions { IosExtension = true };
var app = new App.App(new AppOptions { IosExtension = true }); var twoFactorPage = new TwoFactorPage(authingWithSso, appOptions);
var app = new App.App();
ThemeManager.SetTheme(app.Resources); ThemeManager.SetTheme(app.Resources);
ThemeManager.ApplyResourcesTo(twoFactorPage); ThemeManager.ApplyResourcesTo(twoFactorPage);
if (twoFactorPage.BindingContext is TwoFactorPageViewModel vm) if (twoFactorPage.BindingContext is TwoFactorPageViewModel vm)

View File

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

View File

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

View File

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