diff --git a/.github/README.md b/.github/README.md index 1ec8850f4129..4f7b63a293de 100644 --- a/.github/README.md +++ b/.github/README.md @@ -25,16 +25,18 @@ You can also use the preview version alongside the stable release to get early a - - - + + + +   - - - + + + +

## Building from source diff --git a/.github/assets/ClassicInstallerBadge-dark.png b/.github/assets/ClassicInstallerBadge-dark.png index 645112e689a1..a1ecea01a2b8 100644 Binary files a/.github/assets/ClassicInstallerBadge-dark.png and b/.github/assets/ClassicInstallerBadge-dark.png differ diff --git a/.github/assets/ClassicInstallerBadge-light.png b/.github/assets/ClassicInstallerBadge-light.png index 1875cf4cf2c3..be0886d1bd36 100644 Binary files a/.github/assets/ClassicInstallerBadge-light.png and b/.github/assets/ClassicInstallerBadge-light.png differ diff --git a/.github/assets/FilesScreenshot.png b/.github/assets/FilesScreenshot.png index fb20d5af425a..51459b7adb0c 100644 Binary files a/.github/assets/FilesScreenshot.png and b/.github/assets/FilesScreenshot.png differ diff --git a/.github/assets/ReadmeHero.png b/.github/assets/ReadmeHero.png index 00362280b874..ccd33a74cfbc 100644 Binary files a/.github/assets/ReadmeHero.png and b/.github/assets/ReadmeHero.png differ diff --git a/.github/assets/StoreBadge-dark.png b/.github/assets/StoreBadge-dark.png index 5409ad81e71c..d739cc59ab80 100644 Binary files a/.github/assets/StoreBadge-dark.png and b/.github/assets/StoreBadge-dark.png differ diff --git a/.github/assets/StoreBadge-light.png b/.github/assets/StoreBadge-light.png index e03d0e5362d3..2fe14bbb0b10 100644 Binary files a/.github/assets/StoreBadge-light.png and b/.github/assets/StoreBadge-light.png differ diff --git a/.github/dependabot.yml b/.github/dependabot.yml index aec207e4342a..5ca153e5848f 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,7 +1,7 @@ version: 2 updates: -- package-ecosystem: nuget - directory: "/" - schedule: - interval: daily - open-pull-requests-limit: 10 + - package-ecosystem: nuget + directory: / + schedule: + interval: daily + open-pull-requests-limit: 10 diff --git a/.github/workflows/cd-sideload-preview.yml b/.github/workflows/cd-sideload-preview.yml index fe41da7ffa23..bdbf74c2951a 100644 --- a/.github/workflows/cd-sideload-preview.yml +++ b/.github/workflows/cd-sideload-preview.yml @@ -145,20 +145,15 @@ jobs: timestamp-rfc3161: http://timestamp.acs.microsoft.com timestamp-digest: SHA256 - - name: Login to Azure - uses: azure/login@v2 + - name: Upload packages to Cloudflare + uses: ryand56/r2-upload-action@latest with: - creds: ${{ secrets.AZURE_CREDENTIALS }} - - - name: Upload to Azure blob storage - uses: azure/powershell@v2 - with: - inlineScript: | - az storage blob upload-batch --account-name "filescommunity" --destination "files" --destination-path "preview" --source ${{ env.APPX_PACKAGE_DIR }} --overwrite true - azPSVersion: "latest" - - - name: Logout from Azure - run: 'az logout' + r2-account-id: ${{ secrets.R2_ACCOUNT_ID }} + r2-access-key-id: ${{ secrets.R2_ACCESS_KEY_ID }} + r2-secret-access-key: ${{ secrets.R2_SECRET_ACCESS_KEY }} + r2-bucket: ${{ secrets.R2_BUCKET }} + source-dir: ${{ env.APPX_PACKAGE_DIR }} + destination-dir: ./files/preview - name: Upload the packages to GitHub Actions uses: actions/upload-artifact@v4 diff --git a/.github/workflows/cd-sideload-stable.yml b/.github/workflows/cd-sideload-stable.yml index f5611a4b57b4..e84ddc31c46d 100644 --- a/.github/workflows/cd-sideload-stable.yml +++ b/.github/workflows/cd-sideload-stable.yml @@ -145,20 +145,15 @@ jobs: timestamp-rfc3161: http://timestamp.acs.microsoft.com timestamp-digest: SHA256 - - name: Login to Azure - uses: azure/login@v2 + - name: Upload packages to Cloudflare + uses: ryand56/r2-upload-action@latest with: - creds: ${{ secrets.AZURE_CREDENTIALS }} - - - name: Upload to Azure blob storage - uses: azure/powershell@v2 - with: - inlineScript: | - az storage blob upload-batch --account-name "filescommunity" --destination "files" --destination-path "stable" --source ${{ env.APPX_PACKAGE_DIR }} --overwrite true - azPSVersion: "latest" - - - name: Logout from Azure - run: 'az logout' + r2-account-id: ${{ secrets.R2_ACCOUNT_ID }} + r2-access-key-id: ${{ secrets.R2_ACCESS_KEY_ID }} + r2-secret-access-key: ${{ secrets.R2_SECRET_ACCESS_KEY }} + r2-bucket: ${{ secrets.R2_BUCKET }} + source-dir: ${{ env.APPX_PACKAGE_DIR }} + destination-dir: ./files/stable - name: Upload the packages to GitHub Actions uses: actions/upload-artifact@v4 diff --git a/.github/workflows/cd-store-preview.yml b/.github/workflows/cd-store-preview.yml index 5c2b60efd5fe..4fed52f9d7cf 100644 --- a/.github/workflows/cd-store-preview.yml +++ b/.github/workflows/cd-store-preview.yml @@ -120,14 +120,3 @@ jobs: with: name: 'Appx Packages (${{ env.CONFIGURATION }}, ${{ env.PLATFORM }})' path: ${{ env.ARTIFACTS_STAGING_DIR }} - - - name: Publish the packages to Microsoft Store - uses: isaacrlevin/windows-store-action@1.0 - with: - app-id: '9NSQD9PKV3SS' - tenant-id: ${{ secrets.STORE_TENANT_ID }} - client-id: ${{ secrets.STORE_CLIENT_ID }} - client-secret: ${{ secrets.STORE_CLIENT_SECRET }} - package-path: '${{ env.APPX_PACKAGE_DIR }}' - skip-polling: false - packages-keep: 5 diff --git a/Directory.Build.props b/Directory.Build.props index e8dea3960b24..1eaa9e68097e 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -4,7 +4,7 @@ net9.0 10.0.22621.0 10.0.19041.0 - 10.0.22621.57 + 10.0.26100.67-preview $(TargetFrameworkVersion)-windows$(TargetWindowsVersion) diff --git a/Directory.Packages.props b/Directory.Packages.props index 54b0c9633666..b2c27c87c0cb 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -27,14 +27,14 @@ - + - + - + @@ -50,14 +50,14 @@ - - - + + + - + \ No newline at end of file diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/BadgeLogo.scale-150.png b/src/Files.App (Package)/Assets/AppTiles/Dev/BadgeLogo.scale-150.png index b41bdb4057ac..adfc1003ccae 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/BadgeLogo.scale-150.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/BadgeLogo.scale-150.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/BadgeLogo.scale-200.png b/src/Files.App (Package)/Assets/AppTiles/Dev/BadgeLogo.scale-200.png index 494892460324..92abded43b48 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/BadgeLogo.scale-200.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/BadgeLogo.scale-200.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/BadgeLogo.scale-400.png b/src/Files.App (Package)/Assets/AppTiles/Dev/BadgeLogo.scale-400.png index 53db82e131ce..5260c0cb228d 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/BadgeLogo.scale-400.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/BadgeLogo.scale-400.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/Small71x71Logo.scale-400.png b/src/Files.App (Package)/Assets/AppTiles/Dev/Small71x71Logo.scale-400.png index 3e213238f9e6..a9229801a1b8 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/Small71x71Logo.scale-400.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/Small71x71Logo.scale-400.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-256.png b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-256.png index 872aeb53578a..d8706c491922 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-256.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-256.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-256_altform-lightunplated_theme-light.png b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-256_altform-lightunplated_theme-light.png index 872aeb53578a..d8706c491922 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-256_altform-lightunplated_theme-light.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-256_altform-lightunplated_theme-light.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-256_altform-unplated.png b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-256_altform-unplated.png index 872aeb53578a..d8706c491922 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-256_altform-unplated.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-256_altform-unplated.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-64.png b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-64.png index 35b08f57fb00..724c4fd477ba 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-64.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-64.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-64_altform-lightunplated_theme-light.png b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-64_altform-lightunplated_theme-light.png index 35b08f57fb00..724c4fd477ba 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-64_altform-lightunplated_theme-light.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-64_altform-lightunplated_theme-light.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-64_altform-unplated.png b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-64_altform-unplated.png index 35b08f57fb00..724c4fd477ba 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-64_altform-unplated.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-64_altform-unplated.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-72.png b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-72.png index 6387fa8507e5..2e3a5d80f6b6 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-72.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-72.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-72_altform-lightunplated_theme-light.png b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-72_altform-lightunplated_theme-light.png index 6387fa8507e5..2e3a5d80f6b6 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-72_altform-lightunplated_theme-light.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-72_altform-lightunplated_theme-light.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-72_altform-unplated.png b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-72_altform-unplated.png index 6387fa8507e5..2e3a5d80f6b6 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-72_altform-unplated.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-72_altform-unplated.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-80.png b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-80.png index 6a81161ab4f7..806391d61c66 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-80.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-80.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-80_altform-lightunplated_theme-light.png b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-80_altform-lightunplated_theme-light.png index 6a81161ab4f7..806391d61c66 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-80_altform-lightunplated_theme-light.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-80_altform-lightunplated_theme-light.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-80_altform-unplated.png b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-80_altform-unplated.png index 6a81161ab4f7..806391d61c66 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-80_altform-unplated.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-80_altform-unplated.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-96.png b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-96.png index c3a36006dab9..f0219848fb7c 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-96.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-96.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-96_altform-lightunplated_theme-light.png b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-96_altform-lightunplated_theme-light.png index c3a36006dab9..f0219848fb7c 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-96_altform-lightunplated_theme-light.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-96_altform-lightunplated_theme-light.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-96_altform-unplated.png b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-96_altform-unplated.png index c3a36006dab9..f0219848fb7c 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-96_altform-unplated.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/Square44x44Logo.targetsize-96_altform-unplated.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/StoreLogo.scale-125.png b/src/Files.App (Package)/Assets/AppTiles/Dev/StoreLogo.scale-125.png index 92f73d4f3624..b7220b56a495 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/StoreLogo.scale-125.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/StoreLogo.scale-125.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/StoreLogo.scale-150.png b/src/Files.App (Package)/Assets/AppTiles/Dev/StoreLogo.scale-150.png index 8c077c7c52a4..f9a079f4bfa2 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/StoreLogo.scale-150.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/StoreLogo.scale-150.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/StoreLogo.scale-200.png b/src/Files.App (Package)/Assets/AppTiles/Dev/StoreLogo.scale-200.png index 3264b498b13b..f3435f8db14f 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/StoreLogo.scale-200.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/StoreLogo.scale-200.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/StoreLogo.scale-400.png b/src/Files.App (Package)/Assets/AppTiles/Dev/StoreLogo.scale-400.png index c3bc5a296124..adaf095ead98 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/StoreLogo.scale-400.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/StoreLogo.scale-400.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/BadgeLogo.scale-150_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/BadgeLogo.scale-150_contrast-black.png index b41bdb4057ac..26839b66170a 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/BadgeLogo.scale-150_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/BadgeLogo.scale-150_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/BadgeLogo.scale-200_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/BadgeLogo.scale-200_contrast-black.png index 494892460324..f88b112cd2df 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/BadgeLogo.scale-200_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/BadgeLogo.scale-200_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/BadgeLogo.scale-400_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/BadgeLogo.scale-400_contrast-black.png index 53db82e131ce..1b45f4113a85 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/BadgeLogo.scale-400_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/BadgeLogo.scale-400_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Large310x310Logo.scale-100_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Large310x310Logo.scale-100_contrast-black.png index 30771d2f51e9..034a97a869ed 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Large310x310Logo.scale-100_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Large310x310Logo.scale-100_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Large310x310Logo.scale-125_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Large310x310Logo.scale-125_contrast-black.png index 8a2c30dea032..4256394e3bb1 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Large310x310Logo.scale-125_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Large310x310Logo.scale-125_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Large310x310Logo.scale-150_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Large310x310Logo.scale-150_contrast-black.png index b8be1d2c7f52..16c3a07d7b12 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Large310x310Logo.scale-150_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Large310x310Logo.scale-150_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Large310x310Logo.scale-200_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Large310x310Logo.scale-200_contrast-black.png index fa517de0d159..9c960a5e5b7c 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Large310x310Logo.scale-200_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Large310x310Logo.scale-200_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Large310x310Logo.scale-400_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Large310x310Logo.scale-400_contrast-black.png index 71f4bfa16340..503b8170f0fd 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Large310x310Logo.scale-400_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Large310x310Logo.scale-400_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Small71x71Logo.scale-125_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Small71x71Logo.scale-125_contrast-black.png index 43cf9bedd0ff..01245b95dc94 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Small71x71Logo.scale-125_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Small71x71Logo.scale-125_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Small71x71Logo.scale-150_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Small71x71Logo.scale-150_contrast-black.png index c49f06a05602..54df028c828a 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Small71x71Logo.scale-150_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Small71x71Logo.scale-150_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Small71x71Logo.scale-200_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Small71x71Logo.scale-200_contrast-black.png index 2d641ea1c907..891145a50e75 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Small71x71Logo.scale-200_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Small71x71Logo.scale-200_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Small71x71Logo.scale-400_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Small71x71Logo.scale-400_contrast-black.png index 499fcf3bf3f5..33568b80d4d4 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Small71x71Logo.scale-400_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Small71x71Logo.scale-400_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/SplashScreen.scale-100_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/SplashScreen.scale-100_contrast-black.png index c7f639267ab2..a1b0af8d907a 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/SplashScreen.scale-100_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/SplashScreen.scale-100_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/SplashScreen.scale-125_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/SplashScreen.scale-125_contrast-black.png index f26fcfd42086..18d01b9f49c4 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/SplashScreen.scale-125_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/SplashScreen.scale-125_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/SplashScreen.scale-150_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/SplashScreen.scale-150_contrast-black.png index a2c0658f34ee..f1a0c990d3b0 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/SplashScreen.scale-150_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/SplashScreen.scale-150_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/SplashScreen.scale-200_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/SplashScreen.scale-200_contrast-black.png index 80baf5f8e4c4..e0c14d246981 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/SplashScreen.scale-200_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/SplashScreen.scale-200_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/SplashScreen.scale-400_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/SplashScreen.scale-400_contrast-black.png index cd9ea885232a..03b26e565a19 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/SplashScreen.scale-400_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/SplashScreen.scale-400_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square150x150Logo.scale-100_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square150x150Logo.scale-100_contrast-black.png index b9b10a8232a4..6c3a9edd2052 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square150x150Logo.scale-100_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square150x150Logo.scale-100_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square150x150Logo.scale-125_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square150x150Logo.scale-125_contrast-black.png index 5bfe9c89f33b..f906b44f91a2 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square150x150Logo.scale-125_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square150x150Logo.scale-125_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square150x150Logo.scale-150_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square150x150Logo.scale-150_contrast-black.png index 79ef50408c91..4d8c15af2dc1 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square150x150Logo.scale-150_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square150x150Logo.scale-150_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square150x150Logo.scale-200_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square150x150Logo.scale-200_contrast-black.png index 110738643de4..a873254a4705 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square150x150Logo.scale-200_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square150x150Logo.scale-200_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square150x150Logo.scale-400_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square150x150Logo.scale-400_contrast-black.png index c9f70de1f761..70f7f0c7859d 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square150x150Logo.scale-400_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square150x150Logo.scale-400_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.scale-125_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.scale-125_contrast-black.png index 316975ff5938..a523d3c390b2 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.scale-125_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.scale-125_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.scale-150_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.scale-150_contrast-black.png index 5ce16c0453c5..52979946a552 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.scale-150_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.scale-150_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.scale-200_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.scale-200_contrast-black.png index 268edfc5ec8e..e8aa124b0fda 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.scale-200_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.scale-200_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.scale-400_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.scale-400_contrast-black.png index c6ec4a7a841d..cd5b64632935 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.scale-400_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.scale-400_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-256_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-256_altform-lightunplated_contrast-black.png index af376f815302..1013b1d90b80 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-256_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-256_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-256_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-256_altform-unplated_contrast-black.png index af376f815302..5c31736a1aea 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-256_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-256_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-256_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-256_contrast-black.png index af376f815302..6e7b75ffe3e1 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-256_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-256_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-30_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-30_altform-lightunplated_contrast-black.png index 676f62e889b3..18d51adf8e67 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-30_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-30_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-30_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-30_altform-unplated_contrast-black.png index 676f62e889b3..2392bba009fa 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-30_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-30_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-30_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-30_contrast-black.png index 676f62e889b3..8f1b0d2017b4 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-30_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-30_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-40_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-40_altform-lightunplated_contrast-black.png index 44fb757152aa..f937bd0b8b9a 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-40_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-40_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-40_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-40_altform-unplated_contrast-black.png index 44fb757152aa..fe542d5ffb94 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-40_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-40_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-40_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-40_contrast-black.png index 44fb757152aa..13b801a5fe02 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-40_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-40_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-48_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-48_altform-lightunplated_contrast-black.png index 24a00c97f289..9154ff9c7169 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-48_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-48_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-48_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-48_altform-unplated_contrast-black.png index 24a00c97f289..b33ef5c79660 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-48_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-48_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-48_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-48_contrast-black.png index 24a00c97f289..9154ff9c7169 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-48_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-48_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-60_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-60_altform-lightunplated_contrast-black.png index 95c29e83a545..95ac420b0f5a 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-60_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-60_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-60_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-60_altform-unplated_contrast-black.png index 9865f6cf3452..39327b90deb2 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-60_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-60_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-60_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-60_contrast-black.png index 95c29e83a545..033e70689a35 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-60_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-60_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-64_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-64_altform-lightunplated_contrast-black.png index e2db02d6625f..a09ba8ceaf67 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-64_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-64_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-64_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-64_altform-unplated_contrast-black.png index e2db02d6625f..da2b245f57cc 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-64_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-64_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-64_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-64_contrast-black.png index e2db02d6625f..19e86e45817e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-64_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-64_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-72_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-72_altform-lightunplated_contrast-black.png index 1633235a398a..a1a317d1a06d 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-72_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-72_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-72_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-72_altform-unplated_contrast-black.png index 1633235a398a..526fd3d57abc 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-72_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-72_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-72_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-72_contrast-black.png index 1633235a398a..f10be381c2e2 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-72_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-72_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-80_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-80_altform-lightunplated_contrast-black.png index 1a5de8f50547..f65ddeaa6de1 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-80_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-80_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-80_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-80_altform-unplated_contrast-black.png index 1a5de8f50547..4918f1d596f1 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-80_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-80_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-80_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-80_contrast-black.png index 1a5de8f50547..27c69fdc1b2e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-80_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-80_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-96_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-96_altform-lightunplated_contrast-black.png index 626de87f4b11..6d7086deca58 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-96_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-96_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-96_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-96_altform-unplated_contrast-black.png index 626de87f4b11..92bf47669d56 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-96_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-96_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-96_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-96_contrast-black.png index 626de87f4b11..2314366beb06 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-96_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Square44x44Logo.targetsize-96_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/StoreLogo.scale-125_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/StoreLogo.scale-125_contrast-black.png index 75efc4dfbdd1..7ee57f547afd 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/StoreLogo.scale-125_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/StoreLogo.scale-125_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/StoreLogo.scale-150_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/StoreLogo.scale-150_contrast-black.png index acc7b8e80330..f2b01a2c39e3 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/StoreLogo.scale-150_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/StoreLogo.scale-150_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/StoreLogo.scale-200_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/StoreLogo.scale-200_contrast-black.png index 76eb74f935e6..b101e254a4cd 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/StoreLogo.scale-200_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/StoreLogo.scale-200_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/StoreLogo.scale-400_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/StoreLogo.scale-400_contrast-black.png index 80c54bb96776..bcacf80e652f 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/StoreLogo.scale-400_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/StoreLogo.scale-400_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Wide310x150Logo.scale-100_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Wide310x150Logo.scale-100_contrast-black.png index 9653f5735145..fa799882ea75 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Wide310x150Logo.scale-100_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Wide310x150Logo.scale-100_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Wide310x150Logo.scale-125_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Wide310x150Logo.scale-125_contrast-black.png index c3a9253886a5..49b135848de8 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Wide310x150Logo.scale-125_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Wide310x150Logo.scale-125_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Wide310x150Logo.scale-150_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Wide310x150Logo.scale-150_contrast-black.png index d8e8bea7a15c..3940cb59338c 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Wide310x150Logo.scale-150_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Wide310x150Logo.scale-150_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Wide310x150Logo.scale-200_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Wide310x150Logo.scale-200_contrast-black.png index 5be6f275fdd3..da5fd3fb0b75 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Wide310x150Logo.scale-200_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Wide310x150Logo.scale-200_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Wide310x150Logo.scale-400_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Wide310x150Logo.scale-400_contrast-black.png index 521504103f44..09d6b913b95e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Wide310x150Logo.scale-400_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-black/Wide310x150Logo.scale-400_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/BadgeLogo.scale-150_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/BadgeLogo.scale-150_contrast-white.png index 9bbe3c0ddbcf..4fb29d411d1e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/BadgeLogo.scale-150_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/BadgeLogo.scale-150_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/BadgeLogo.scale-400_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/BadgeLogo.scale-400_contrast-white.png index 92ea6b6a9035..a1c36a37f571 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/BadgeLogo.scale-400_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/BadgeLogo.scale-400_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Large310x310Logo.scale-100_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Large310x310Logo.scale-100_contrast-white.png index 63b36e2b5d10..274fdec475bc 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Large310x310Logo.scale-100_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Large310x310Logo.scale-100_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Large310x310Logo.scale-125_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Large310x310Logo.scale-125_contrast-white.png index 6069b80e4c06..3bb057b23fc9 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Large310x310Logo.scale-125_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Large310x310Logo.scale-125_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Large310x310Logo.scale-150_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Large310x310Logo.scale-150_contrast-white.png index 3905b84788f7..adaa6796e6eb 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Large310x310Logo.scale-150_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Large310x310Logo.scale-150_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Large310x310Logo.scale-200_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Large310x310Logo.scale-200_contrast-white.png index ce7b468806e2..8134887f7a86 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Large310x310Logo.scale-200_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Large310x310Logo.scale-200_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Large310x310Logo.scale-400_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Large310x310Logo.scale-400_contrast-white.png index aa8e33ab067e..a21b932c1020 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Large310x310Logo.scale-400_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Large310x310Logo.scale-400_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Small71x71Logo.scale-125_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Small71x71Logo.scale-125_contrast-white.png index f470e6b08075..6965a7f01342 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Small71x71Logo.scale-125_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Small71x71Logo.scale-125_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Small71x71Logo.scale-150_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Small71x71Logo.scale-150_contrast-white.png index fe05924f4607..a99f0ff32a6c 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Small71x71Logo.scale-150_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Small71x71Logo.scale-150_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Small71x71Logo.scale-200_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Small71x71Logo.scale-200_contrast-white.png index 7332c7d80797..3a754949c826 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Small71x71Logo.scale-200_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Small71x71Logo.scale-200_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Small71x71Logo.scale-400_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Small71x71Logo.scale-400_contrast-white.png index 459b845f6b88..e3d4b4505b20 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Small71x71Logo.scale-400_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Small71x71Logo.scale-400_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/SplashScreen.scale-100_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/SplashScreen.scale-100_contrast-white.png index 0a9b88a266ed..06f579781e1a 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/SplashScreen.scale-100_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/SplashScreen.scale-100_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/SplashScreen.scale-125_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/SplashScreen.scale-125_contrast-white.png index 2d55d06d744f..350d87557831 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/SplashScreen.scale-125_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/SplashScreen.scale-125_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/SplashScreen.scale-150_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/SplashScreen.scale-150_contrast-white.png index 25e6fd30d7b4..3a840be32274 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/SplashScreen.scale-150_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/SplashScreen.scale-150_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/SplashScreen.scale-200_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/SplashScreen.scale-200_contrast-white.png index b8af0ed9dc89..92440ec2e04f 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/SplashScreen.scale-200_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/SplashScreen.scale-200_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/SplashScreen.scale-400_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/SplashScreen.scale-400_contrast-white.png index 639b597e1342..fb9867dde4b6 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/SplashScreen.scale-400_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/SplashScreen.scale-400_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square150x150Logo.scale-100_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square150x150Logo.scale-100_contrast-white.png index f66483513e37..4bf12035812b 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square150x150Logo.scale-100_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square150x150Logo.scale-100_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square150x150Logo.scale-125_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square150x150Logo.scale-125_contrast-white.png index be30bba8112d..8c104459e758 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square150x150Logo.scale-125_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square150x150Logo.scale-125_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square150x150Logo.scale-150_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square150x150Logo.scale-150_contrast-white.png index 742f9a696217..0309ddf06dd2 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square150x150Logo.scale-150_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square150x150Logo.scale-150_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square150x150Logo.scale-200_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square150x150Logo.scale-200_contrast-white.png index ea3af41f6c0b..8d790b23e686 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square150x150Logo.scale-200_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square150x150Logo.scale-200_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square150x150Logo.scale-400_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square150x150Logo.scale-400_contrast-white.png index dd0bd73e529f..2fb1e61fedec 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square150x150Logo.scale-400_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square150x150Logo.scale-400_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.scale-125_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.scale-125_contrast-white.png index f43a85fda8fe..7b373779db2d 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.scale-125_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.scale-125_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.scale-200_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.scale-200_contrast-white.png index 897f55b6a4f0..a3de1676351d 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.scale-200_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.scale-200_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.scale-400_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.scale-400_contrast-white.png index 4bcd859db186..874cbad07074 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.scale-400_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.scale-400_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-256_altform-lightunplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-256_altform-lightunplated_contrast-white.png index d9328313fdef..f40a3ac9b2f3 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-256_altform-lightunplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-256_altform-lightunplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-256_altform-unplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-256_altform-unplated_contrast-white.png index d9328313fdef..b4f8fe743d62 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-256_altform-unplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-256_altform-unplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-256_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-256_contrast-white.png index d9328313fdef..bd32dcf906f4 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-256_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-256_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-48_altform-lightunplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-48_altform-lightunplated_contrast-white.png index b8cdfbb60a1d..afe81d948ecd 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-48_altform-lightunplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-48_altform-lightunplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-48_altform-unplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-48_altform-unplated_contrast-white.png index b8cdfbb60a1d..0ae5afd0c3dd 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-48_altform-unplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-48_altform-unplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-48_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-48_contrast-white.png index b8cdfbb60a1d..392972c73e1f 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-48_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-48_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-60_altform-lightunplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-60_altform-lightunplated_contrast-white.png index 3b697d024b67..e241ed6d8add 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-60_altform-lightunplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-60_altform-lightunplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-60_altform-unplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-60_altform-unplated_contrast-white.png index 3b697d024b67..3b01e260fe70 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-60_altform-unplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-60_altform-unplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-60_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-60_contrast-white.png index 3b697d024b67..3b01e260fe70 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-60_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-60_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-64_altform-lightunplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-64_altform-lightunplated_contrast-white.png index 98a557d9082d..e71ab0cc937f 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-64_altform-lightunplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-64_altform-lightunplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-64_altform-unplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-64_altform-unplated_contrast-white.png index 98a557d9082d..404fbdba9a24 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-64_altform-unplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-64_altform-unplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-64_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-64_contrast-white.png index 98a557d9082d..98549c3c2ce9 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-64_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-64_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-72_altform-lightunplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-72_altform-lightunplated_contrast-white.png index 92774ac3cce9..5539a9551fc5 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-72_altform-lightunplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-72_altform-lightunplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-72_altform-unplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-72_altform-unplated_contrast-white.png index 92774ac3cce9..8589ffb990fd 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-72_altform-unplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-72_altform-unplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-72_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-72_contrast-white.png index 92774ac3cce9..9e74e1fad1ee 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-72_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-72_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-80_altform-lightunplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-80_altform-lightunplated_contrast-white.png index 5ca380a0f445..199f7a44b8ef 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-80_altform-lightunplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-80_altform-lightunplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-80_altform-unplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-80_altform-unplated_contrast-white.png index 5ca380a0f445..57411c1b648e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-80_altform-unplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-80_altform-unplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-80_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-80_contrast-white.png index 5ca380a0f445..972171138258 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-80_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-80_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-96_altform-lightunplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-96_altform-lightunplated_contrast-white.png index 8af17caee915..14342b5d9e17 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-96_altform-lightunplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-96_altform-lightunplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-96_altform-unplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-96_altform-unplated_contrast-white.png index 8af17caee915..5adaf2d84122 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-96_altform-unplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-96_altform-unplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-96_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-96_contrast-white.png index 8af17caee915..59ab25ada907 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-96_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Square44x44Logo.targetsize-96_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/StoreLogo.scale-125_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/StoreLogo.scale-125_contrast-white.png index 1d65287d2ba1..8db88a0c161a 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/StoreLogo.scale-125_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/StoreLogo.scale-125_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/StoreLogo.scale-150_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/StoreLogo.scale-150_contrast-white.png index 0a1eed573bf8..dfe5b147fb19 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/StoreLogo.scale-150_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/StoreLogo.scale-150_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/StoreLogo.scale-200_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/StoreLogo.scale-200_contrast-white.png index ad66c44b2d9d..e55555a9002d 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/StoreLogo.scale-200_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/StoreLogo.scale-200_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/StoreLogo.scale-400_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/StoreLogo.scale-400_contrast-white.png index f61dfff6be8e..0548eef59cb8 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/StoreLogo.scale-400_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/StoreLogo.scale-400_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Wide310x150Logo.scale-100_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Wide310x150Logo.scale-100_contrast-white.png index 21c99a6dc83d..11e0a9673fa5 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Wide310x150Logo.scale-100_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Wide310x150Logo.scale-100_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Wide310x150Logo.scale-125_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Wide310x150Logo.scale-125_contrast-white.png index 883651e3f9a0..f4b5afd70183 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Wide310x150Logo.scale-125_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Wide310x150Logo.scale-125_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Wide310x150Logo.scale-150_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Wide310x150Logo.scale-150_contrast-white.png index 11432e48ff92..73ba37818444 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Wide310x150Logo.scale-150_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Wide310x150Logo.scale-150_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Wide310x150Logo.scale-200_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Wide310x150Logo.scale-200_contrast-white.png index 533c83ca87fe..45aedf9aeeb1 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Wide310x150Logo.scale-200_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Wide310x150Logo.scale-200_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Wide310x150Logo.scale-400_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Wide310x150Logo.scale-400_contrast-white.png index d59dc6ce3326..b32cb238e3cf 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Wide310x150Logo.scale-400_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Dev/contrast-white/Wide310x150Logo.scale-400_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/BadgeLogo.scale-150.png b/src/Files.App (Package)/Assets/AppTiles/Preview/BadgeLogo.scale-150.png index b41bdb4057ac..a03c399f0560 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/BadgeLogo.scale-150.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/BadgeLogo.scale-150.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/BadgeLogo.scale-200.png b/src/Files.App (Package)/Assets/AppTiles/Preview/BadgeLogo.scale-200.png index 494892460324..1c9e56e06474 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/BadgeLogo.scale-200.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/BadgeLogo.scale-200.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/BadgeLogo.scale-400.png b/src/Files.App (Package)/Assets/AppTiles/Preview/BadgeLogo.scale-400.png index 53db82e131ce..3b61f7712d08 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/BadgeLogo.scale-400.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/BadgeLogo.scale-400.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-256.png b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-256.png index 392c7700711f..8f101bb94978 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-256.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-256.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-256_altform-lightunplated_theme-light.png b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-256_altform-lightunplated_theme-light.png index 392c7700711f..8f101bb94978 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-256_altform-lightunplated_theme-light.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-256_altform-lightunplated_theme-light.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-256_altform-unplated.png b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-256_altform-unplated.png index 392c7700711f..8f101bb94978 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-256_altform-unplated.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-256_altform-unplated.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-60.png b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-60.png index a5b7ac5c7567..d156439a99f6 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-60.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-60.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-60_altform-lightunplated_theme-light.png b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-60_altform-lightunplated_theme-light.png index a5b7ac5c7567..d156439a99f6 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-60_altform-lightunplated_theme-light.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-60_altform-lightunplated_theme-light.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-60_altform-unplated.png b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-60_altform-unplated.png index a5b7ac5c7567..d156439a99f6 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-60_altform-unplated.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-60_altform-unplated.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-64.png b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-64.png index 42a086b9725d..1b9956beeb75 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-64.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-64.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-64_altform-lightunplated_theme-light.png b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-64_altform-lightunplated_theme-light.png index 42a086b9725d..1b9956beeb75 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-64_altform-lightunplated_theme-light.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-64_altform-lightunplated_theme-light.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-64_altform-unplated.png b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-64_altform-unplated.png index 42a086b9725d..1b9956beeb75 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-64_altform-unplated.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-64_altform-unplated.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-72.png b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-72.png index 0ce0cded41c4..8b866946a296 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-72.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-72.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-72_altform-lightunplated_theme-light.png b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-72_altform-lightunplated_theme-light.png index 0ce0cded41c4..8b866946a296 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-72_altform-lightunplated_theme-light.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-72_altform-lightunplated_theme-light.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-72_altform-unplated.png b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-72_altform-unplated.png index 0ce0cded41c4..8b866946a296 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-72_altform-unplated.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-72_altform-unplated.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-80.png b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-80.png index b030b6043934..a51e6ad5fff4 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-80.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-80.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-80_altform-lightunplated_theme-light.png b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-80_altform-lightunplated_theme-light.png index b030b6043934..a51e6ad5fff4 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-80_altform-lightunplated_theme-light.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-80_altform-lightunplated_theme-light.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-80_altform-unplated.png b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-80_altform-unplated.png index b030b6043934..a51e6ad5fff4 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-80_altform-unplated.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-80_altform-unplated.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-96.png b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-96.png index 67164c052e3e..0982f6b67838 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-96.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-96.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-96_altform-lightunplated_theme-light.png b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-96_altform-lightunplated_theme-light.png index 67164c052e3e..0982f6b67838 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-96_altform-lightunplated_theme-light.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-96_altform-lightunplated_theme-light.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-96_altform-unplated.png b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-96_altform-unplated.png index 67164c052e3e..0982f6b67838 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-96_altform-unplated.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/Square44x44Logo.targetsize-96_altform-unplated.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/StoreLogo.scale-125.png b/src/Files.App (Package)/Assets/AppTiles/Preview/StoreLogo.scale-125.png index 4f83c4201af7..73d8f08fb52f 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/StoreLogo.scale-125.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/StoreLogo.scale-125.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/StoreLogo.scale-150.png b/src/Files.App (Package)/Assets/AppTiles/Preview/StoreLogo.scale-150.png index 30cf52c6a278..2d6ef08da094 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/StoreLogo.scale-150.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/StoreLogo.scale-150.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/StoreLogo.scale-200.png b/src/Files.App (Package)/Assets/AppTiles/Preview/StoreLogo.scale-200.png index 87fa8b4de870..0b029db1c4cc 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/StoreLogo.scale-200.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/StoreLogo.scale-200.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/StoreLogo.scale-400.png b/src/Files.App (Package)/Assets/AppTiles/Preview/StoreLogo.scale-400.png index d0c62a966852..23ed453d37c2 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/StoreLogo.scale-400.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/StoreLogo.scale-400.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/BadgeLogo.scale-150_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/BadgeLogo.scale-150_contrast-black.png index b41bdb4057ac..312cb9c49989 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/BadgeLogo.scale-150_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/BadgeLogo.scale-150_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/BadgeLogo.scale-200_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/BadgeLogo.scale-200_contrast-black.png index 494892460324..a029e9861741 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/BadgeLogo.scale-200_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/BadgeLogo.scale-200_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/BadgeLogo.scale-400_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/BadgeLogo.scale-400_contrast-black.png index 53db82e131ce..54b3661fa24f 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/BadgeLogo.scale-400_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/BadgeLogo.scale-400_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Large310x310Logo.scale-100_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Large310x310Logo.scale-100_contrast-black.png index 30771d2f51e9..5dbb391438ee 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Large310x310Logo.scale-100_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Large310x310Logo.scale-100_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Large310x310Logo.scale-125_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Large310x310Logo.scale-125_contrast-black.png index 8a2c30dea032..9ebcce1a56a4 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Large310x310Logo.scale-125_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Large310x310Logo.scale-125_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Large310x310Logo.scale-150_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Large310x310Logo.scale-150_contrast-black.png index b8be1d2c7f52..721f2eb8449e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Large310x310Logo.scale-150_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Large310x310Logo.scale-150_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Large310x310Logo.scale-200_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Large310x310Logo.scale-200_contrast-black.png index fa517de0d159..6cddb7e924d3 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Large310x310Logo.scale-200_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Large310x310Logo.scale-200_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Large310x310Logo.scale-400_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Large310x310Logo.scale-400_contrast-black.png index 71f4bfa16340..7923cb2c6e05 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Large310x310Logo.scale-400_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Large310x310Logo.scale-400_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Small71x71Logo.scale-125_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Small71x71Logo.scale-125_contrast-black.png index 43cf9bedd0ff..0ce6b0c2df9b 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Small71x71Logo.scale-125_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Small71x71Logo.scale-125_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Small71x71Logo.scale-150_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Small71x71Logo.scale-150_contrast-black.png index c49f06a05602..6ee1630a3d6e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Small71x71Logo.scale-150_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Small71x71Logo.scale-150_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Small71x71Logo.scale-200_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Small71x71Logo.scale-200_contrast-black.png index 2d641ea1c907..bbbbd7121d83 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Small71x71Logo.scale-200_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Small71x71Logo.scale-200_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Small71x71Logo.scale-400_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Small71x71Logo.scale-400_contrast-black.png index 499fcf3bf3f5..25c2fcb13541 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Small71x71Logo.scale-400_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Small71x71Logo.scale-400_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/SplashScreen.scale-100_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/SplashScreen.scale-100_contrast-black.png index c7f639267ab2..fed911f94f5e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/SplashScreen.scale-100_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/SplashScreen.scale-100_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/SplashScreen.scale-125_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/SplashScreen.scale-125_contrast-black.png index f26fcfd42086..af98ec77cc00 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/SplashScreen.scale-125_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/SplashScreen.scale-125_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/SplashScreen.scale-150_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/SplashScreen.scale-150_contrast-black.png index a2c0658f34ee..5ceea82b911c 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/SplashScreen.scale-150_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/SplashScreen.scale-150_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/SplashScreen.scale-200_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/SplashScreen.scale-200_contrast-black.png index 80baf5f8e4c4..3e4067825623 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/SplashScreen.scale-200_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/SplashScreen.scale-200_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/SplashScreen.scale-400_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/SplashScreen.scale-400_contrast-black.png index cd9ea885232a..eafefa26b4df 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/SplashScreen.scale-400_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/SplashScreen.scale-400_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square150x150Logo.scale-100_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square150x150Logo.scale-100_contrast-black.png index b9b10a8232a4..10964058d3c8 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square150x150Logo.scale-100_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square150x150Logo.scale-100_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square150x150Logo.scale-125_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square150x150Logo.scale-125_contrast-black.png index 5bfe9c89f33b..cf495820647e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square150x150Logo.scale-125_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square150x150Logo.scale-125_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square150x150Logo.scale-150_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square150x150Logo.scale-150_contrast-black.png index 79ef50408c91..563080407c9b 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square150x150Logo.scale-150_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square150x150Logo.scale-150_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square150x150Logo.scale-200_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square150x150Logo.scale-200_contrast-black.png index 110738643de4..144c39c8000d 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square150x150Logo.scale-200_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square150x150Logo.scale-200_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square150x150Logo.scale-400_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square150x150Logo.scale-400_contrast-black.png index c9f70de1f761..0b0a4151dab6 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square150x150Logo.scale-400_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square150x150Logo.scale-400_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.scale-125_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.scale-125_contrast-black.png index 316975ff5938..74ba5983e47c 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.scale-125_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.scale-125_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.scale-150_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.scale-150_contrast-black.png index 5ce16c0453c5..d3e20959d716 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.scale-150_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.scale-150_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.scale-200_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.scale-200_contrast-black.png index 268edfc5ec8e..cef781cc7e2c 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.scale-200_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.scale-200_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.scale-400_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.scale-400_contrast-black.png index c6ec4a7a841d..3e738e28df5f 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.scale-400_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.scale-400_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-256_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-256_altform-lightunplated_contrast-black.png index af376f815302..ee3ef1348954 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-256_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-256_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-256_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-256_altform-unplated_contrast-black.png index af376f815302..5f6e22340728 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-256_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-256_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-256_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-256_contrast-black.png index af376f815302..eb25f4e04e1e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-256_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-256_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-30_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-30_altform-lightunplated_contrast-black.png index 676f62e889b3..4fbceb576ae7 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-30_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-30_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-30_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-30_altform-unplated_contrast-black.png index 676f62e889b3..36717f4e24fe 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-30_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-30_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-30_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-30_contrast-black.png index 676f62e889b3..4fbceb576ae7 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-30_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-30_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-40_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-40_altform-lightunplated_contrast-black.png index 44fb757152aa..d75c69258bec 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-40_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-40_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-40_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-40_altform-unplated_contrast-black.png index 44fb757152aa..ebca7a4a5199 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-40_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-40_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-40_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-40_contrast-black.png index 44fb757152aa..dfcaa2e227e0 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-40_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-40_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-48_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-48_altform-lightunplated_contrast-black.png index 24a00c97f289..a3717726679f 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-48_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-48_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-48_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-48_altform-unplated_contrast-black.png index 24a00c97f289..56687e695ea4 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-48_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-48_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-48_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-48_contrast-black.png index 24a00c97f289..19bf31284041 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-48_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-48_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-60_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-60_altform-lightunplated_contrast-black.png index 95c29e83a545..2a3d63862b94 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-60_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-60_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-60_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-60_altform-unplated_contrast-black.png index 9865f6cf3452..884be21c5d1d 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-60_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-60_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-60_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-60_contrast-black.png index 95c29e83a545..2d71a40901e1 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-60_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-60_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-64_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-64_altform-lightunplated_contrast-black.png index e2db02d6625f..0be03c178423 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-64_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-64_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-64_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-64_altform-unplated_contrast-black.png index e2db02d6625f..a09ba8ceaf67 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-64_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-64_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-64_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-64_contrast-black.png index e2db02d6625f..91391211ef2e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-64_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-64_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-72_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-72_altform-lightunplated_contrast-black.png index 1633235a398a..2be7402436d6 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-72_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-72_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-72_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-72_altform-unplated_contrast-black.png index 1633235a398a..9ad245837d09 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-72_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-72_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-72_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-72_contrast-black.png index 1633235a398a..e7971f080f2a 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-72_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-72_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-80_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-80_altform-lightunplated_contrast-black.png index 1a5de8f50547..af4904991fc1 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-80_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-80_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-80_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-80_altform-unplated_contrast-black.png index 1a5de8f50547..21a5fc970290 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-80_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-80_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-80_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-80_contrast-black.png index 1a5de8f50547..1b2fa7432245 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-80_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-80_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-96_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-96_altform-lightunplated_contrast-black.png index 626de87f4b11..46df895b9705 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-96_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-96_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-96_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-96_altform-unplated_contrast-black.png index 626de87f4b11..28529d2bfe90 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-96_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-96_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-96_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-96_contrast-black.png index 626de87f4b11..cba7b0aebad7 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-96_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Square44x44Logo.targetsize-96_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/StoreLogo.scale-125_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/StoreLogo.scale-125_contrast-black.png index 75efc4dfbdd1..662a01f0655d 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/StoreLogo.scale-125_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/StoreLogo.scale-125_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/StoreLogo.scale-150_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/StoreLogo.scale-150_contrast-black.png index acc7b8e80330..ccba63165b3a 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/StoreLogo.scale-150_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/StoreLogo.scale-150_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/StoreLogo.scale-200_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/StoreLogo.scale-200_contrast-black.png index 76eb74f935e6..7c82d0c6faed 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/StoreLogo.scale-200_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/StoreLogo.scale-200_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/StoreLogo.scale-400_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/StoreLogo.scale-400_contrast-black.png index 80c54bb96776..063c02ee06ff 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/StoreLogo.scale-400_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/StoreLogo.scale-400_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Wide310x150Logo.scale-100_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Wide310x150Logo.scale-100_contrast-black.png index 9653f5735145..2b2b656b78ed 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Wide310x150Logo.scale-100_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Wide310x150Logo.scale-100_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Wide310x150Logo.scale-125_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Wide310x150Logo.scale-125_contrast-black.png index c3a9253886a5..289f20907dfc 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Wide310x150Logo.scale-125_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Wide310x150Logo.scale-125_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Wide310x150Logo.scale-150_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Wide310x150Logo.scale-150_contrast-black.png index d8e8bea7a15c..115941dd01b5 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Wide310x150Logo.scale-150_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Wide310x150Logo.scale-150_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Wide310x150Logo.scale-200_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Wide310x150Logo.scale-200_contrast-black.png index 5be6f275fdd3..c3748294b6b7 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Wide310x150Logo.scale-200_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Wide310x150Logo.scale-200_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Wide310x150Logo.scale-400_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Wide310x150Logo.scale-400_contrast-black.png index 521504103f44..6c9b1bf2eba4 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Wide310x150Logo.scale-400_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-black/Wide310x150Logo.scale-400_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/BadgeLogo.scale-150_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/BadgeLogo.scale-150_contrast-white.png index 9bbe3c0ddbcf..34d8049b3e9a 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/BadgeLogo.scale-150_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/BadgeLogo.scale-150_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/BadgeLogo.scale-400_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/BadgeLogo.scale-400_contrast-white.png index 92ea6b6a9035..b9e1e2d506eb 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/BadgeLogo.scale-400_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/BadgeLogo.scale-400_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Large310x310Logo.scale-100_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Large310x310Logo.scale-100_contrast-white.png index 63b36e2b5d10..f4aff6f16be9 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Large310x310Logo.scale-100_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Large310x310Logo.scale-100_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Large310x310Logo.scale-125_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Large310x310Logo.scale-125_contrast-white.png index 6069b80e4c06..1ac42a915537 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Large310x310Logo.scale-125_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Large310x310Logo.scale-125_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Large310x310Logo.scale-150_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Large310x310Logo.scale-150_contrast-white.png index 3905b84788f7..a5fd28ebf282 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Large310x310Logo.scale-150_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Large310x310Logo.scale-150_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Large310x310Logo.scale-200_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Large310x310Logo.scale-200_contrast-white.png index ce7b468806e2..0ad670007484 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Large310x310Logo.scale-200_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Large310x310Logo.scale-200_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Large310x310Logo.scale-400_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Large310x310Logo.scale-400_contrast-white.png index aa8e33ab067e..19502713639d 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Large310x310Logo.scale-400_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Large310x310Logo.scale-400_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Small71x71Logo.scale-125_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Small71x71Logo.scale-125_contrast-white.png index f470e6b08075..8df60e405d88 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Small71x71Logo.scale-125_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Small71x71Logo.scale-125_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Small71x71Logo.scale-150_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Small71x71Logo.scale-150_contrast-white.png index fe05924f4607..427e791df5a5 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Small71x71Logo.scale-150_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Small71x71Logo.scale-150_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Small71x71Logo.scale-200_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Small71x71Logo.scale-200_contrast-white.png index 7332c7d80797..e61a24711f7d 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Small71x71Logo.scale-200_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Small71x71Logo.scale-200_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Small71x71Logo.scale-400_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Small71x71Logo.scale-400_contrast-white.png index 459b845f6b88..15869b7bc5cc 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Small71x71Logo.scale-400_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Small71x71Logo.scale-400_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/SplashScreen.scale-100_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/SplashScreen.scale-100_contrast-white.png index 0a9b88a266ed..ab0514222fed 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/SplashScreen.scale-100_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/SplashScreen.scale-100_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/SplashScreen.scale-125_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/SplashScreen.scale-125_contrast-white.png index 2d55d06d744f..bf7bd12701d3 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/SplashScreen.scale-125_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/SplashScreen.scale-125_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/SplashScreen.scale-150_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/SplashScreen.scale-150_contrast-white.png index 25e6fd30d7b4..b9d00d6f58e1 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/SplashScreen.scale-150_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/SplashScreen.scale-150_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/SplashScreen.scale-200_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/SplashScreen.scale-200_contrast-white.png index b8af0ed9dc89..c9bae0d26839 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/SplashScreen.scale-200_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/SplashScreen.scale-200_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/SplashScreen.scale-400_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/SplashScreen.scale-400_contrast-white.png index 639b597e1342..9ce1f7e475d7 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/SplashScreen.scale-400_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/SplashScreen.scale-400_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square150x150Logo.scale-100_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square150x150Logo.scale-100_contrast-white.png index f66483513e37..016bb6ca9886 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square150x150Logo.scale-100_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square150x150Logo.scale-100_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square150x150Logo.scale-125_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square150x150Logo.scale-125_contrast-white.png index be30bba8112d..3095b303dd28 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square150x150Logo.scale-125_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square150x150Logo.scale-125_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square150x150Logo.scale-150_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square150x150Logo.scale-150_contrast-white.png index 742f9a696217..790cc4a8b1e6 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square150x150Logo.scale-150_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square150x150Logo.scale-150_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square150x150Logo.scale-200_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square150x150Logo.scale-200_contrast-white.png index ea3af41f6c0b..1dc80544eb6c 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square150x150Logo.scale-200_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square150x150Logo.scale-200_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square150x150Logo.scale-400_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square150x150Logo.scale-400_contrast-white.png index dd0bd73e529f..62950b6885d8 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square150x150Logo.scale-400_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square150x150Logo.scale-400_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.scale-125_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.scale-125_contrast-white.png index f43a85fda8fe..65cd7d7644ef 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.scale-125_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.scale-125_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.scale-200_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.scale-200_contrast-white.png index 897f55b6a4f0..14881220f8cf 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.scale-200_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.scale-200_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.scale-400_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.scale-400_contrast-white.png index 4bcd859db186..d173eca84b8e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.scale-400_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.scale-400_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-256_altform-lightunplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-256_altform-lightunplated_contrast-white.png index d9328313fdef..267325b109a7 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-256_altform-lightunplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-256_altform-lightunplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-256_altform-unplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-256_altform-unplated_contrast-white.png index d9328313fdef..625d31ea63ca 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-256_altform-unplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-256_altform-unplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-256_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-256_contrast-white.png index d9328313fdef..3b71e3c3f628 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-256_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-256_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-48_altform-lightunplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-48_altform-lightunplated_contrast-white.png index b8cdfbb60a1d..192d6d5f545e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-48_altform-lightunplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-48_altform-lightunplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-48_altform-unplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-48_altform-unplated_contrast-white.png index b8cdfbb60a1d..60842d79924e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-48_altform-unplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-48_altform-unplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-48_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-48_contrast-white.png index b8cdfbb60a1d..2d28ab84182a 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-48_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-48_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-60_altform-lightunplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-60_altform-lightunplated_contrast-white.png index 3b697d024b67..e241ed6d8add 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-60_altform-lightunplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-60_altform-lightunplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-60_altform-unplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-60_altform-unplated_contrast-white.png index 3b697d024b67..3f92114c09b3 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-60_altform-unplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-60_altform-unplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-60_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-60_contrast-white.png index 3b697d024b67..3f92114c09b3 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-60_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-60_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-64_altform-lightunplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-64_altform-lightunplated_contrast-white.png index 98a557d9082d..655546ea4bcc 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-64_altform-lightunplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-64_altform-lightunplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-64_altform-unplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-64_altform-unplated_contrast-white.png index 98a557d9082d..7be34ecac60f 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-64_altform-unplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-64_altform-unplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-64_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-64_contrast-white.png index 98a557d9082d..4115f9feb887 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-64_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-64_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-72_altform-lightunplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-72_altform-lightunplated_contrast-white.png index 92774ac3cce9..cbe499fb3509 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-72_altform-lightunplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-72_altform-lightunplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-72_altform-unplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-72_altform-unplated_contrast-white.png index 92774ac3cce9..d717790a8464 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-72_altform-unplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-72_altform-unplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-72_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-72_contrast-white.png index 92774ac3cce9..c2204106e6c6 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-72_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-72_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-80_altform-lightunplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-80_altform-lightunplated_contrast-white.png index 5ca380a0f445..57411c1b648e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-80_altform-lightunplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-80_altform-lightunplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-80_altform-unplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-80_altform-unplated_contrast-white.png index 5ca380a0f445..28fb43da7a59 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-80_altform-unplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-80_altform-unplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-80_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-80_contrast-white.png index 5ca380a0f445..524e865e0452 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-80_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-80_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-96_altform-lightunplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-96_altform-lightunplated_contrast-white.png index 8af17caee915..07e6ee2c7da3 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-96_altform-lightunplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-96_altform-lightunplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-96_altform-unplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-96_altform-unplated_contrast-white.png index 8af17caee915..48164d673826 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-96_altform-unplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-96_altform-unplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-96_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-96_contrast-white.png index 8af17caee915..c163c2758450 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-96_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Square44x44Logo.targetsize-96_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/StoreLogo.scale-125_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/StoreLogo.scale-125_contrast-white.png index 1d65287d2ba1..21c37152b02d 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/StoreLogo.scale-125_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/StoreLogo.scale-125_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/StoreLogo.scale-150_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/StoreLogo.scale-150_contrast-white.png index 0a1eed573bf8..417bbb88b37f 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/StoreLogo.scale-150_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/StoreLogo.scale-150_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/StoreLogo.scale-200_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/StoreLogo.scale-200_contrast-white.png index ad66c44b2d9d..bbe37aeba3f5 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/StoreLogo.scale-200_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/StoreLogo.scale-200_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/StoreLogo.scale-400_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/StoreLogo.scale-400_contrast-white.png index f61dfff6be8e..e9c0385acd40 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/StoreLogo.scale-400_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/StoreLogo.scale-400_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Wide310x150Logo.scale-100_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Wide310x150Logo.scale-100_contrast-white.png index 21c99a6dc83d..8cf18b4963b8 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Wide310x150Logo.scale-100_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Wide310x150Logo.scale-100_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Wide310x150Logo.scale-125_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Wide310x150Logo.scale-125_contrast-white.png index 883651e3f9a0..d5529dd446da 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Wide310x150Logo.scale-125_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Wide310x150Logo.scale-125_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Wide310x150Logo.scale-150_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Wide310x150Logo.scale-150_contrast-white.png index 11432e48ff92..8ae87e26f525 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Wide310x150Logo.scale-150_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Wide310x150Logo.scale-150_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Wide310x150Logo.scale-200_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Wide310x150Logo.scale-200_contrast-white.png index 533c83ca87fe..3cf681665a89 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Wide310x150Logo.scale-200_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Wide310x150Logo.scale-200_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Wide310x150Logo.scale-400_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Wide310x150Logo.scale-400_contrast-white.png index d59dc6ce3326..028c75c05a8a 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Wide310x150Logo.scale-400_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Preview/contrast-white/Wide310x150Logo.scale-400_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/BadgeLogo.scale-150.png b/src/Files.App (Package)/Assets/AppTiles/Release/BadgeLogo.scale-150.png index b41bdb4057ac..4514c3f13eee 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/BadgeLogo.scale-150.png and b/src/Files.App (Package)/Assets/AppTiles/Release/BadgeLogo.scale-150.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/BadgeLogo.scale-200.png b/src/Files.App (Package)/Assets/AppTiles/Release/BadgeLogo.scale-200.png index 494892460324..c6ead7e16aa9 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/BadgeLogo.scale-200.png and b/src/Files.App (Package)/Assets/AppTiles/Release/BadgeLogo.scale-200.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/BadgeLogo.scale-400.png b/src/Files.App (Package)/Assets/AppTiles/Release/BadgeLogo.scale-400.png index 53db82e131ce..039b2e0660c1 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/BadgeLogo.scale-400.png and b/src/Files.App (Package)/Assets/AppTiles/Release/BadgeLogo.scale-400.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/Large310x310Logo.scale-400.png b/src/Files.App (Package)/Assets/AppTiles/Release/Large310x310Logo.scale-400.png index 3f6802546e63..87eecaa9872f 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/Large310x310Logo.scale-400.png and b/src/Files.App (Package)/Assets/AppTiles/Release/Large310x310Logo.scale-400.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/Small71x71Logo.scale-400.png b/src/Files.App (Package)/Assets/AppTiles/Release/Small71x71Logo.scale-400.png index 04451ade6c09..d59c51ee1019 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/Small71x71Logo.scale-400.png and b/src/Files.App (Package)/Assets/AppTiles/Release/Small71x71Logo.scale-400.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/SplashScreen.scale-400.png b/src/Files.App (Package)/Assets/AppTiles/Release/SplashScreen.scale-400.png index b713d7902b9c..cb92bd81af15 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/SplashScreen.scale-400.png and b/src/Files.App (Package)/Assets/AppTiles/Release/SplashScreen.scale-400.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/Square150x150Logo.scale-400.png b/src/Files.App (Package)/Assets/AppTiles/Release/Square150x150Logo.scale-400.png index 025b48156a53..4040d217b737 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/Square150x150Logo.scale-400.png and b/src/Files.App (Package)/Assets/AppTiles/Release/Square150x150Logo.scale-400.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-256.png b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-256.png index 832868158a24..7db9cd2f323c 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-256.png and b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-256.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-256_altform-lightunplated_theme-light.png b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-256_altform-lightunplated_theme-light.png index 832868158a24..7db9cd2f323c 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-256_altform-lightunplated_theme-light.png and b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-256_altform-lightunplated_theme-light.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-256_altform-unplated.png b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-256_altform-unplated.png index 832868158a24..7db9cd2f323c 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-256_altform-unplated.png and b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-256_altform-unplated.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-64.png b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-64.png index 46af9016c04b..78b3c128de31 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-64.png and b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-64.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-64_altform-lightunplated_theme-light.png b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-64_altform-lightunplated_theme-light.png index 46af9016c04b..78b3c128de31 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-64_altform-lightunplated_theme-light.png and b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-64_altform-lightunplated_theme-light.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-64_altform-unplated.png b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-64_altform-unplated.png index 46af9016c04b..78b3c128de31 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-64_altform-unplated.png and b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-64_altform-unplated.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-72.png b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-72.png index f60e576d83da..e7aa45f56667 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-72.png and b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-72.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-72_altform-lightunplated_theme-light.png b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-72_altform-lightunplated_theme-light.png index f60e576d83da..e7aa45f56667 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-72_altform-lightunplated_theme-light.png and b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-72_altform-lightunplated_theme-light.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-72_altform-unplated.png b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-72_altform-unplated.png index f60e576d83da..e7aa45f56667 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-72_altform-unplated.png and b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-72_altform-unplated.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-80.png b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-80.png index 98317ad524bb..8ab2b9292cf1 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-80.png and b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-80.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-80_altform-lightunplated_theme-light.png b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-80_altform-lightunplated_theme-light.png index 98317ad524bb..8ab2b9292cf1 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-80_altform-lightunplated_theme-light.png and b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-80_altform-lightunplated_theme-light.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-80_altform-unplated.png b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-80_altform-unplated.png index 98317ad524bb..8ab2b9292cf1 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-80_altform-unplated.png and b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-80_altform-unplated.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-96.png b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-96.png index 2f00bc8c5f37..1503084789c7 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-96.png and b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-96.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-96_altform-lightunplated_theme-light.png b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-96_altform-lightunplated_theme-light.png index 2f00bc8c5f37..1503084789c7 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-96_altform-lightunplated_theme-light.png and b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-96_altform-lightunplated_theme-light.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-96_altform-unplated.png b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-96_altform-unplated.png index 2f00bc8c5f37..1503084789c7 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-96_altform-unplated.png and b/src/Files.App (Package)/Assets/AppTiles/Release/Square44x44Logo.targetsize-96_altform-unplated.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/StoreLogo.scale-150.png b/src/Files.App (Package)/Assets/AppTiles/Release/StoreLogo.scale-150.png index 17c60c547e07..d01ffae010b9 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/StoreLogo.scale-150.png and b/src/Files.App (Package)/Assets/AppTiles/Release/StoreLogo.scale-150.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/StoreLogo.scale-200.png b/src/Files.App (Package)/Assets/AppTiles/Release/StoreLogo.scale-200.png index c5602773df45..07eb1c03a989 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/StoreLogo.scale-200.png and b/src/Files.App (Package)/Assets/AppTiles/Release/StoreLogo.scale-200.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/StoreLogo.scale-400.png b/src/Files.App (Package)/Assets/AppTiles/Release/StoreLogo.scale-400.png index 9c084c8b5acd..5f6eb84eab3e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/StoreLogo.scale-400.png and b/src/Files.App (Package)/Assets/AppTiles/Release/StoreLogo.scale-400.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/Wide310x150Logo.scale-400.png b/src/Files.App (Package)/Assets/AppTiles/Release/Wide310x150Logo.scale-400.png index c5c656d7cfbd..099507dd284e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/Wide310x150Logo.scale-400.png and b/src/Files.App (Package)/Assets/AppTiles/Release/Wide310x150Logo.scale-400.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/BadgeLogo.scale-150_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/BadgeLogo.scale-150_contrast-black.png index b41bdb4057ac..8c8a424b5fc3 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/BadgeLogo.scale-150_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/BadgeLogo.scale-150_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/BadgeLogo.scale-200_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/BadgeLogo.scale-200_contrast-black.png index 494892460324..c6ead7e16aa9 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/BadgeLogo.scale-200_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/BadgeLogo.scale-200_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/BadgeLogo.scale-400_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/BadgeLogo.scale-400_contrast-black.png index 53db82e131ce..9286cc70dbbf 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/BadgeLogo.scale-400_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/BadgeLogo.scale-400_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Large310x310Logo.scale-100_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Large310x310Logo.scale-100_contrast-black.png index 30771d2f51e9..ceda4ecf81a6 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Large310x310Logo.scale-100_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Large310x310Logo.scale-100_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Large310x310Logo.scale-125_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Large310x310Logo.scale-125_contrast-black.png index 8a2c30dea032..dd9eda9b9b6c 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Large310x310Logo.scale-125_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Large310x310Logo.scale-125_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Large310x310Logo.scale-150_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Large310x310Logo.scale-150_contrast-black.png index b8be1d2c7f52..e3ab4a2f932e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Large310x310Logo.scale-150_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Large310x310Logo.scale-150_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Large310x310Logo.scale-200_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Large310x310Logo.scale-200_contrast-black.png index fa517de0d159..0852f36f9747 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Large310x310Logo.scale-200_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Large310x310Logo.scale-200_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Large310x310Logo.scale-400_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Large310x310Logo.scale-400_contrast-black.png index 71f4bfa16340..62a9ff5a6222 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Large310x310Logo.scale-400_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Large310x310Logo.scale-400_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Small71x71Logo.scale-125_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Small71x71Logo.scale-125_contrast-black.png index 43cf9bedd0ff..a526727d1ee9 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Small71x71Logo.scale-125_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Small71x71Logo.scale-125_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Small71x71Logo.scale-150_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Small71x71Logo.scale-150_contrast-black.png index c49f06a05602..05b98141aa3e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Small71x71Logo.scale-150_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Small71x71Logo.scale-150_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Small71x71Logo.scale-200_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Small71x71Logo.scale-200_contrast-black.png index 2d641ea1c907..83a0b74e99ef 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Small71x71Logo.scale-200_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Small71x71Logo.scale-200_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Small71x71Logo.scale-400_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Small71x71Logo.scale-400_contrast-black.png index 499fcf3bf3f5..685c8e8a1f66 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Small71x71Logo.scale-400_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Small71x71Logo.scale-400_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/SplashScreen.scale-100_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/SplashScreen.scale-100_contrast-black.png index c7f639267ab2..7b96e5259735 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/SplashScreen.scale-100_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/SplashScreen.scale-100_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/SplashScreen.scale-125_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/SplashScreen.scale-125_contrast-black.png index f26fcfd42086..33bcb4ca9db0 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/SplashScreen.scale-125_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/SplashScreen.scale-125_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/SplashScreen.scale-150_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/SplashScreen.scale-150_contrast-black.png index a2c0658f34ee..37e309dc8be2 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/SplashScreen.scale-150_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/SplashScreen.scale-150_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/SplashScreen.scale-200_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/SplashScreen.scale-200_contrast-black.png index 80baf5f8e4c4..bfcaeb43aeac 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/SplashScreen.scale-200_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/SplashScreen.scale-200_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/SplashScreen.scale-400_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/SplashScreen.scale-400_contrast-black.png index cd9ea885232a..73b8a98e32d3 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/SplashScreen.scale-400_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/SplashScreen.scale-400_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square150x150Logo.scale-100_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square150x150Logo.scale-100_contrast-black.png index b9b10a8232a4..8e8e9b2e8c4a 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square150x150Logo.scale-100_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square150x150Logo.scale-100_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square150x150Logo.scale-125_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square150x150Logo.scale-125_contrast-black.png index 5bfe9c89f33b..8c652c246d4a 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square150x150Logo.scale-125_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square150x150Logo.scale-125_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square150x150Logo.scale-150_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square150x150Logo.scale-150_contrast-black.png index 79ef50408c91..c263697d371c 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square150x150Logo.scale-150_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square150x150Logo.scale-150_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square150x150Logo.scale-200_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square150x150Logo.scale-200_contrast-black.png index 110738643de4..4a2bca3a6805 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square150x150Logo.scale-200_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square150x150Logo.scale-200_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square150x150Logo.scale-400_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square150x150Logo.scale-400_contrast-black.png index c9f70de1f761..be20b78dc411 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square150x150Logo.scale-400_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square150x150Logo.scale-400_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.scale-125_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.scale-125_contrast-black.png index 316975ff5938..627defbbcc39 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.scale-125_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.scale-125_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.scale-150_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.scale-150_contrast-black.png index 5ce16c0453c5..544a11a00900 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.scale-150_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.scale-150_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.scale-200_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.scale-200_contrast-black.png index 268edfc5ec8e..e43e3b51604e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.scale-200_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.scale-200_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.scale-400_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.scale-400_contrast-black.png index c6ec4a7a841d..95a4da98238e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.scale-400_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.scale-400_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-256_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-256_altform-lightunplated_contrast-black.png index af376f815302..3abed669b1dc 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-256_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-256_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-256_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-256_altform-unplated_contrast-black.png index af376f815302..3e458152210f 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-256_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-256_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-256_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-256_contrast-black.png index af376f815302..de48cf79381f 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-256_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-256_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-30_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-30_altform-lightunplated_contrast-black.png index 676f62e889b3..2392bba009fa 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-30_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-30_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-30_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-30_altform-unplated_contrast-black.png index 676f62e889b3..3ce0f589ac43 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-30_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-30_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-30_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-30_contrast-black.png index 676f62e889b3..86b450ae373d 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-30_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-30_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-40_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-40_altform-lightunplated_contrast-black.png index 44fb757152aa..2b4d6f8c8384 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-40_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-40_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-40_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-40_altform-unplated_contrast-black.png index 44fb757152aa..e2d619e8792a 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-40_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-40_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-40_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-40_contrast-black.png index 44fb757152aa..93df1cc2499b 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-40_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-40_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-48_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-48_altform-lightunplated_contrast-black.png index 24a00c97f289..ad43311ec28a 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-48_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-48_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-48_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-48_altform-unplated_contrast-black.png index 24a00c97f289..743332bc5dff 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-48_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-48_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-48_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-48_contrast-black.png index 24a00c97f289..dbb9011f233e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-48_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-48_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-60_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-60_altform-lightunplated_contrast-black.png index 95c29e83a545..b7efc10c0021 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-60_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-60_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-60_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-60_altform-unplated_contrast-black.png index 9865f6cf3452..1f228cbe8fd7 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-60_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-60_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-60_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-60_contrast-black.png index 95c29e83a545..4020a744098c 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-60_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-60_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-64_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-64_altform-lightunplated_contrast-black.png index e2db02d6625f..92a5da41985a 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-64_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-64_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-64_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-64_altform-unplated_contrast-black.png index e2db02d6625f..da2b245f57cc 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-64_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-64_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-64_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-64_contrast-black.png index e2db02d6625f..b6966d991b56 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-64_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-64_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-72_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-72_altform-lightunplated_contrast-black.png index 1633235a398a..196548a63673 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-72_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-72_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-72_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-72_altform-unplated_contrast-black.png index 1633235a398a..f7bea47c01ce 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-72_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-72_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-72_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-72_contrast-black.png index 1633235a398a..f13a27987e0a 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-72_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-72_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-80_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-80_altform-lightunplated_contrast-black.png index 1a5de8f50547..27c69fdc1b2e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-80_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-80_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-80_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-80_altform-unplated_contrast-black.png index 1a5de8f50547..39aa6a357242 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-80_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-80_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-80_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-80_contrast-black.png index 1a5de8f50547..af4904991fc1 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-80_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-80_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-96_altform-lightunplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-96_altform-lightunplated_contrast-black.png index 626de87f4b11..75b0f59e2f10 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-96_altform-lightunplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-96_altform-lightunplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-96_altform-unplated_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-96_altform-unplated_contrast-black.png index 626de87f4b11..8479a4439441 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-96_altform-unplated_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-96_altform-unplated_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-96_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-96_contrast-black.png index 626de87f4b11..794a30950495 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-96_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Square44x44Logo.targetsize-96_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/StoreLogo.scale-125_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/StoreLogo.scale-125_contrast-black.png index 75efc4dfbdd1..2ed8c54df889 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/StoreLogo.scale-125_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/StoreLogo.scale-125_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/StoreLogo.scale-150_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/StoreLogo.scale-150_contrast-black.png index acc7b8e80330..2d5c9b86f9d9 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/StoreLogo.scale-150_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/StoreLogo.scale-150_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/StoreLogo.scale-200_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/StoreLogo.scale-200_contrast-black.png index 76eb74f935e6..c3210bbbd268 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/StoreLogo.scale-200_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/StoreLogo.scale-200_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/StoreLogo.scale-400_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/StoreLogo.scale-400_contrast-black.png index 80c54bb96776..942ef437505c 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/StoreLogo.scale-400_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/StoreLogo.scale-400_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Wide310x150Logo.scale-100_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Wide310x150Logo.scale-100_contrast-black.png index 9653f5735145..6f6aa04c70e7 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Wide310x150Logo.scale-100_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Wide310x150Logo.scale-100_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Wide310x150Logo.scale-125_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Wide310x150Logo.scale-125_contrast-black.png index c3a9253886a5..49b135848de8 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Wide310x150Logo.scale-125_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Wide310x150Logo.scale-125_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Wide310x150Logo.scale-150_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Wide310x150Logo.scale-150_contrast-black.png index d8e8bea7a15c..ab596d6ab8b4 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Wide310x150Logo.scale-150_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Wide310x150Logo.scale-150_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Wide310x150Logo.scale-200_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Wide310x150Logo.scale-200_contrast-black.png index 5be6f275fdd3..629e063a88c0 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Wide310x150Logo.scale-200_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Wide310x150Logo.scale-200_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Wide310x150Logo.scale-400_contrast-black.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Wide310x150Logo.scale-400_contrast-black.png index 521504103f44..2a412f860166 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Wide310x150Logo.scale-400_contrast-black.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-black/Wide310x150Logo.scale-400_contrast-black.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/BadgeLogo.scale-150_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/BadgeLogo.scale-150_contrast-white.png index 9bbe3c0ddbcf..e613f1989455 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/BadgeLogo.scale-150_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/BadgeLogo.scale-150_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/BadgeLogo.scale-400_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/BadgeLogo.scale-400_contrast-white.png index 92ea6b6a9035..a18681f1a611 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/BadgeLogo.scale-400_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/BadgeLogo.scale-400_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Large310x310Logo.scale-100_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Large310x310Logo.scale-100_contrast-white.png index 63b36e2b5d10..87069c31211e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Large310x310Logo.scale-100_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Large310x310Logo.scale-100_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Large310x310Logo.scale-125_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Large310x310Logo.scale-125_contrast-white.png index 6069b80e4c06..398430da0b58 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Large310x310Logo.scale-125_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Large310x310Logo.scale-125_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Large310x310Logo.scale-150_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Large310x310Logo.scale-150_contrast-white.png index 3905b84788f7..3fc782df4318 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Large310x310Logo.scale-150_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Large310x310Logo.scale-150_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Large310x310Logo.scale-200_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Large310x310Logo.scale-200_contrast-white.png index ce7b468806e2..4155ccec2f6c 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Large310x310Logo.scale-200_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Large310x310Logo.scale-200_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Large310x310Logo.scale-400_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Large310x310Logo.scale-400_contrast-white.png index aa8e33ab067e..4995b55044ae 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Large310x310Logo.scale-400_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Large310x310Logo.scale-400_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Small71x71Logo.scale-125_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Small71x71Logo.scale-125_contrast-white.png index f470e6b08075..3b7f3f879789 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Small71x71Logo.scale-125_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Small71x71Logo.scale-125_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Small71x71Logo.scale-150_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Small71x71Logo.scale-150_contrast-white.png index fe05924f4607..4faa4a397d86 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Small71x71Logo.scale-150_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Small71x71Logo.scale-150_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Small71x71Logo.scale-200_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Small71x71Logo.scale-200_contrast-white.png index 7332c7d80797..74481a53a142 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Small71x71Logo.scale-200_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Small71x71Logo.scale-200_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Small71x71Logo.scale-400_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Small71x71Logo.scale-400_contrast-white.png index 459b845f6b88..0de188d47082 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Small71x71Logo.scale-400_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Small71x71Logo.scale-400_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/SplashScreen.scale-100_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/SplashScreen.scale-100_contrast-white.png index 0a9b88a266ed..230d8423e698 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/SplashScreen.scale-100_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/SplashScreen.scale-100_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/SplashScreen.scale-125_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/SplashScreen.scale-125_contrast-white.png index 2d55d06d744f..cced727f9f33 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/SplashScreen.scale-125_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/SplashScreen.scale-125_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/SplashScreen.scale-150_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/SplashScreen.scale-150_contrast-white.png index 25e6fd30d7b4..6379d21d8745 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/SplashScreen.scale-150_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/SplashScreen.scale-150_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/SplashScreen.scale-200_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/SplashScreen.scale-200_contrast-white.png index b8af0ed9dc89..c6dc288a6798 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/SplashScreen.scale-200_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/SplashScreen.scale-200_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/SplashScreen.scale-400_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/SplashScreen.scale-400_contrast-white.png index 639b597e1342..ec3b327f89cd 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/SplashScreen.scale-400_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/SplashScreen.scale-400_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square150x150Logo.scale-100_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square150x150Logo.scale-100_contrast-white.png index f66483513e37..250b5b2bd7dd 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square150x150Logo.scale-100_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square150x150Logo.scale-100_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square150x150Logo.scale-125_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square150x150Logo.scale-125_contrast-white.png index be30bba8112d..9fec4696d364 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square150x150Logo.scale-125_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square150x150Logo.scale-125_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square150x150Logo.scale-150_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square150x150Logo.scale-150_contrast-white.png index 742f9a696217..12752e07ad88 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square150x150Logo.scale-150_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square150x150Logo.scale-150_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square150x150Logo.scale-200_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square150x150Logo.scale-200_contrast-white.png index ea3af41f6c0b..353b0fb44607 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square150x150Logo.scale-200_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square150x150Logo.scale-200_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square150x150Logo.scale-400_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square150x150Logo.scale-400_contrast-white.png index dd0bd73e529f..4b1fae80447c 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square150x150Logo.scale-400_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square150x150Logo.scale-400_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.scale-125_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.scale-125_contrast-white.png index f43a85fda8fe..5be624374a0e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.scale-125_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.scale-125_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.scale-200_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.scale-200_contrast-white.png index 897f55b6a4f0..173652e2df82 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.scale-200_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.scale-200_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.scale-400_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.scale-400_contrast-white.png index 4bcd859db186..2acd1601a6a6 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.scale-400_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.scale-400_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-256_altform-lightunplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-256_altform-lightunplated_contrast-white.png index d9328313fdef..42cacdb32c45 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-256_altform-lightunplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-256_altform-lightunplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-256_altform-unplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-256_altform-unplated_contrast-white.png index d9328313fdef..42cacdb32c45 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-256_altform-unplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-256_altform-unplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-256_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-256_contrast-white.png index d9328313fdef..856e521a9425 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-256_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-256_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-48_altform-lightunplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-48_altform-lightunplated_contrast-white.png index b8cdfbb60a1d..81f7589a0661 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-48_altform-lightunplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-48_altform-lightunplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-48_altform-unplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-48_altform-unplated_contrast-white.png index b8cdfbb60a1d..81f7589a0661 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-48_altform-unplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-48_altform-unplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-48_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-48_contrast-white.png index b8cdfbb60a1d..bef420873f2d 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-48_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-48_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-60_altform-lightunplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-60_altform-lightunplated_contrast-white.png index 3b697d024b67..3a6078b96839 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-60_altform-lightunplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-60_altform-lightunplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-60_altform-unplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-60_altform-unplated_contrast-white.png index 3b697d024b67..87a18303adac 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-60_altform-unplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-60_altform-unplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-60_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-60_contrast-white.png index 3b697d024b67..d59492175924 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-60_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-60_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-64_altform-lightunplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-64_altform-lightunplated_contrast-white.png index 98a557d9082d..9a723f4b6be8 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-64_altform-lightunplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-64_altform-lightunplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-64_altform-unplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-64_altform-unplated_contrast-white.png index 98a557d9082d..2bb9197e580d 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-64_altform-unplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-64_altform-unplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-64_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-64_contrast-white.png index 98a557d9082d..2f86c84e5842 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-64_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-64_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-72_altform-lightunplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-72_altform-lightunplated_contrast-white.png index 92774ac3cce9..05edac1f7079 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-72_altform-lightunplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-72_altform-lightunplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-72_altform-unplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-72_altform-unplated_contrast-white.png index 92774ac3cce9..cbe499fb3509 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-72_altform-unplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-72_altform-unplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-72_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-72_contrast-white.png index 92774ac3cce9..ab46f7a55767 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-72_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-72_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-80_altform-lightunplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-80_altform-lightunplated_contrast-white.png index 5ca380a0f445..0e78227219b8 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-80_altform-lightunplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-80_altform-lightunplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-80_altform-unplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-80_altform-unplated_contrast-white.png index 5ca380a0f445..8a452ce69028 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-80_altform-unplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-80_altform-unplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-80_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-80_contrast-white.png index 5ca380a0f445..1e7829f1aa2b 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-80_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-80_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-96_altform-lightunplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-96_altform-lightunplated_contrast-white.png index 8af17caee915..b0eb517f9a2e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-96_altform-lightunplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-96_altform-lightunplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-96_altform-unplated_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-96_altform-unplated_contrast-white.png index 8af17caee915..7b441ff1675b 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-96_altform-unplated_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-96_altform-unplated_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-96_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-96_contrast-white.png index 8af17caee915..311c2c27fc66 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-96_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Square44x44Logo.targetsize-96_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/StoreLogo.scale-125_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/StoreLogo.scale-125_contrast-white.png index 1d65287d2ba1..00ec33b0655e 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/StoreLogo.scale-125_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/StoreLogo.scale-125_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/StoreLogo.scale-150_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/StoreLogo.scale-150_contrast-white.png index 0a1eed573bf8..13c70ac01a5b 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/StoreLogo.scale-150_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/StoreLogo.scale-150_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/StoreLogo.scale-200_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/StoreLogo.scale-200_contrast-white.png index ad66c44b2d9d..58d6810d2dd5 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/StoreLogo.scale-200_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/StoreLogo.scale-200_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/StoreLogo.scale-400_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/StoreLogo.scale-400_contrast-white.png index f61dfff6be8e..88eb80e6e466 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/StoreLogo.scale-400_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/StoreLogo.scale-400_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Wide310x150Logo.scale-100_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Wide310x150Logo.scale-100_contrast-white.png index 21c99a6dc83d..c74b33c76c62 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Wide310x150Logo.scale-100_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Wide310x150Logo.scale-100_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Wide310x150Logo.scale-125_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Wide310x150Logo.scale-125_contrast-white.png index 883651e3f9a0..7c0511507f43 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Wide310x150Logo.scale-125_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Wide310x150Logo.scale-125_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Wide310x150Logo.scale-150_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Wide310x150Logo.scale-150_contrast-white.png index 11432e48ff92..d36b1cb06fad 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Wide310x150Logo.scale-150_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Wide310x150Logo.scale-150_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Wide310x150Logo.scale-200_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Wide310x150Logo.scale-200_contrast-white.png index 533c83ca87fe..34ec6e1288d6 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Wide310x150Logo.scale-200_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Wide310x150Logo.scale-200_contrast-white.png differ diff --git a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Wide310x150Logo.scale-400_contrast-white.png b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Wide310x150Logo.scale-400_contrast-white.png index d59dc6ce3326..319cfa4ee43b 100644 Binary files a/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Wide310x150Logo.scale-400_contrast-white.png and b/src/Files.App (Package)/Assets/AppTiles/Release/contrast-white/Wide310x150Logo.scale-400_contrast-white.png differ diff --git a/src/Files.App (Package)/Package.appxmanifest b/src/Files.App (Package)/Package.appxmanifest index 51224f5dccea..f72465f91456 100644 --- a/src/Files.App (Package)/Package.appxmanifest +++ b/src/Files.App (Package)/Package.appxmanifest @@ -16,7 +16,7 @@ + Version="3.9.14.0" /> Files - Dev diff --git a/src/Files.App.Controls/AdaptiveGridView/AdaptiveGridView.Properties.cs b/src/Files.App.Controls/AdaptiveGridView/AdaptiveGridView.Properties.cs index 9fb91746991e..1021ebc24824 100644 --- a/src/Files.App.Controls/AdaptiveGridView/AdaptiveGridView.Properties.cs +++ b/src/Files.App.Controls/AdaptiveGridView/AdaptiveGridView.Properties.cs @@ -1,11 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Windows.Input; namespace Files.App.Controls diff --git a/src/Files.App.Controls/AdaptiveGridView/AdaptiveGridView.cs b/src/Files.App.Controls/AdaptiveGridView/AdaptiveGridView.cs index 5d17a8ba78da..e348fbd682bd 100644 --- a/src/Files.App.Controls/AdaptiveGridView/AdaptiveGridView.cs +++ b/src/Files.App.Controls/AdaptiveGridView/AdaptiveGridView.cs @@ -2,11 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.UI.Xaml.Data; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using Windows.Foundation.Collections; namespace Files.App.Controls diff --git a/src/Files.App.Controls/AdaptiveGridView/AdaptiveHeightValueConverter.cs b/src/Files.App.Controls/AdaptiveGridView/AdaptiveHeightValueConverter.cs index b636700e395a..4d9fd74339c6 100644 --- a/src/Files.App.Controls/AdaptiveGridView/AdaptiveHeightValueConverter.cs +++ b/src/Files.App.Controls/AdaptiveGridView/AdaptiveHeightValueConverter.cs @@ -2,11 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.UI.Xaml.Data; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace Files.App.Controls { diff --git a/src/Files.App.Controls/BladeView/BladeItem.Events.cs b/src/Files.App.Controls/BladeView/BladeItem.Events.cs index c4dbac9304d0..4b0706c2a16e 100644 --- a/src/Files.App.Controls/BladeView/BladeItem.Events.cs +++ b/src/Files.App.Controls/BladeView/BladeItem.Events.cs @@ -1,12 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - namespace Files.App.Controls { /// diff --git a/src/Files.App.Controls/BladeView/BladeItem.Properties.cs b/src/Files.App.Controls/BladeView/BladeItem.Properties.cs index 5678d63a1c2a..327a0d59fa2d 100644 --- a/src/Files.App.Controls/BladeView/BladeItem.Properties.cs +++ b/src/Files.App.Controls/BladeView/BladeItem.Properties.cs @@ -1,13 +1,8 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using Microsoft.UI.Xaml.Media; using Microsoft.UI; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using Microsoft.UI.Xaml.Media; namespace Files.App.Controls { diff --git a/src/Files.App.Controls/BladeView/BladeItem.cs b/src/Files.App.Controls/BladeView/BladeItem.cs index 0ba8f525f6c0..a96dd33afeb4 100644 --- a/src/Files.App.Controls/BladeView/BladeItem.cs +++ b/src/Files.App.Controls/BladeView/BladeItem.cs @@ -1,7 +1,12 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using CommunityToolkit.WinUI; +using Microsoft.UI.Input; using Microsoft.UI.Xaml.Automation.Peers; +using Microsoft.UI.Xaml.Input; +using Microsoft.UI.Xaml.Media; +using Windows.Foundation; namespace Files.App.Controls { @@ -11,7 +16,14 @@ namespace Files.App.Controls [TemplatePart(Name = "CloseButton", Type = typeof(Button))] public partial class BladeItem : ContentControl { + private const double MINIMUM_WIDTH = 150; + private const double DEFAULT_WIDTH = 300; // Default width for the blade item + private Button _closeButton; + private Border _bladeResizer; + private bool _draggingSidebarResizer; + private double _preManipulationSidebarWidth = 0; + /// /// Initializes a new instance of the class. /// @@ -36,7 +48,31 @@ protected override void OnApplyTemplate() _closeButton.Click -= CloseButton_Click; _closeButton.Click += CloseButton_Click; + + _bladeResizer = GetTemplateChild("BladeResizer") as Border; + + if (_bladeResizer != null) + { + _bladeResizer.ManipulationStarted -= BladeResizer_ManipulationStarted; + _bladeResizer.ManipulationStarted += BladeResizer_ManipulationStarted; + + _bladeResizer.ManipulationDelta -= BladeResizer_ManipulationDelta; + _bladeResizer.ManipulationDelta += BladeResizer_ManipulationDelta; + + _bladeResizer.ManipulationCompleted -= BladeResizer_ManipulationCompleted; + _bladeResizer.ManipulationCompleted += BladeResizer_ManipulationCompleted; + + _bladeResizer.PointerEntered -= BladeResizer_PointerEntered; + _bladeResizer.PointerEntered += BladeResizer_PointerEntered; + + _bladeResizer.PointerExited -= BladeResizer_PointerExited; + _bladeResizer.PointerExited += BladeResizer_PointerExited; + + _bladeResizer.DoubleTapped -= BladeResizer_DoubleTapped; + _bladeResizer.DoubleTapped += BladeResizer_DoubleTapped; + } } + /// /// Creates AutomationPeer () /// @@ -50,5 +86,166 @@ private void CloseButton_Click(object sender, RoutedEventArgs e) { IsOpen = false; } + + private void BladeResizer_ManipulationStarted(object sender, ManipulationStartedRoutedEventArgs e) + { + _draggingSidebarResizer = true; + _preManipulationSidebarWidth = ActualWidth; + VisualStateManager.GoToState(this, "ResizerPressed", true); + e.Handled = true; + } + + private void BladeResizer_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e) + { + var newWidth = _preManipulationSidebarWidth + e.Cumulative.Translation.X; + if (newWidth < MINIMUM_WIDTH) + newWidth = MINIMUM_WIDTH; + + Width = newWidth; + e.Handled = true; + } + + private void BladeResizer_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e) + { + _draggingSidebarResizer = false; + VisualStateManager.GoToState(this, "ResizerNormal", true); + e.Handled = true; + } + + private void BladeResizer_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e) + { + var optimalWidth = CalculateOptimalWidth(); + if (optimalWidth > 0) + { + Width = Math.Max(optimalWidth, MINIMUM_WIDTH); + } + else + { + // Fallback to default width if calculation fails + Width = DEFAULT_WIDTH; + } + + e.Handled = true; + } + + private double CalculateOptimalWidth() + { + try + { + // Look for any ListView within this BladeItem that contains text content + var listView = this.FindDescendant(); + if (listView?.Items == null || !listView.Items.Any()) + return 0; + + // Calculate the maximum width needed by measuring text content + var maxTextWidth = MeasureContentWidth(listView); + + // Add padding for icon, margins, and other UI elements + // Icon width (32) + margins (24) + padding (24) + chevron/tags (40) = 120 + var totalPadding = 120; + + return maxTextWidth + totalPadding; + } + catch (Exception) + { + return 0; + } + } + + private double MeasureContentWidth(ListView listView) + { + try + { + double maxWidth = 0; + + // Find all TextBlocks in the ListView using visual tree walking + var textBlocks = GetTextBlocksFromVisualTree(listView); + + if (textBlocks.Any()) + { + // Measure each TextBlock and find the widest one + foreach (var textBlock in textBlocks) + { + if (string.IsNullOrEmpty(textBlock.Text)) + continue; + + // Create a measuring TextBlock with the same properties + var measuringBlock = new TextBlock + { + Text = textBlock.Text, + FontSize = textBlock.FontSize, + FontFamily = textBlock.FontFamily, + FontWeight = textBlock.FontWeight, + FontStyle = textBlock.FontStyle + }; + + measuringBlock.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity)); + maxWidth = Math.Max(maxWidth, measuringBlock.DesiredSize.Width); + } + } + else + { + // Fallback: estimate based on item count and average text width + var itemCount = listView.Items.Count; + if (itemCount > 0) + { + // Estimate average filename length and multiply by character width + var estimatedCharWidth = 8; // Approximate pixel width per character + var estimatedMaxLength = Math.Min(50, Math.Max(20, itemCount * 2)); // Heuristic + maxWidth = estimatedCharWidth * estimatedMaxLength; + } + } + + return maxWidth; + } + catch (Exception) + { + // Fallback calculation + return 200; // Default reasonable width + } + } + + private List GetTextBlocksFromVisualTree(DependencyObject parent) + { + var textBlocks = new List(); + + if (parent == null) + return textBlocks; + + var childrenCount = VisualTreeHelper.GetChildrenCount(parent); + for (int i = 0; i < childrenCount; i++) + { + var child = VisualTreeHelper.GetChild(parent, i); + + if (child is TextBlock textBlock) + { + textBlocks.Add(textBlock); + } + + // Recursively search child elements + textBlocks.AddRange(GetTextBlocksFromVisualTree(child)); + } + + return textBlocks; + } + + private void BladeResizer_PointerEntered(object sender, PointerRoutedEventArgs e) + { + var sidebarResizer = (FrameworkElement)sender; + sidebarResizer.ChangeCursor(InputSystemCursor.Create(InputSystemCursorShape.SizeWestEast)); + VisualStateManager.GoToState(this, "ResizerPointerOver", true); + e.Handled = true; + } + + private void BladeResizer_PointerExited(object sender, PointerRoutedEventArgs e) + { + if (_draggingSidebarResizer) + return; + + var sidebarResizer = (FrameworkElement)sender; + sidebarResizer.ChangeCursor(InputSystemCursor.Create(InputSystemCursorShape.Arrow)); + VisualStateManager.GoToState(this, "ResizerNormal", true); + e.Handled = true; + } } } diff --git a/src/Files.App.Controls/BladeView/BladeItemAutomationPeer.cs b/src/Files.App.Controls/BladeView/BladeItemAutomationPeer.cs index 0666e56460ae..7c6ec7f7764a 100644 --- a/src/Files.App.Controls/BladeView/BladeItemAutomationPeer.cs +++ b/src/Files.App.Controls/BladeView/BladeItemAutomationPeer.cs @@ -2,13 +2,8 @@ // The .NET Foundation licenses this file to you under the MIT license. using CommunityToolkit.WinUI; -using Microsoft.UI.Xaml.Automation.Peers; using Microsoft.UI.Xaml.Automation; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using Microsoft.UI.Xaml.Automation.Peers; namespace Files.App.Controls { diff --git a/src/Files.App.Controls/BladeView/BladeMode.cs b/src/Files.App.Controls/BladeView/BladeMode.cs index 123d36a2d8d5..7e5250700ee2 100644 --- a/src/Files.App.Controls/BladeView/BladeMode.cs +++ b/src/Files.App.Controls/BladeView/BladeMode.cs @@ -1,12 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - namespace Files.App.Controls { /// diff --git a/src/Files.App.Controls/BladeView/BladeView.Events.cs b/src/Files.App.Controls/BladeView/BladeView.Events.cs index c60e719c876e..69984d8a7281 100644 --- a/src/Files.App.Controls/BladeView/BladeView.Events.cs +++ b/src/Files.App.Controls/BladeView/BladeView.Events.cs @@ -1,12 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - namespace Files.App.Controls { /// diff --git a/src/Files.App.Controls/BladeView/BladeView.Properties.cs b/src/Files.App.Controls/BladeView/BladeView.Properties.cs index c953163127e3..6956c1117bc0 100644 --- a/src/Files.App.Controls/BladeView/BladeView.Properties.cs +++ b/src/Files.App.Controls/BladeView/BladeView.Properties.cs @@ -1,11 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using Windows.Foundation; namespace Files.App.Controls diff --git a/src/Files.App.Controls/BladeView/BladeView.cs b/src/Files.App.Controls/BladeView/BladeView.cs index 48456f58261f..ba3535f73677 100644 --- a/src/Files.App.Controls/BladeView/BladeView.cs +++ b/src/Files.App.Controls/BladeView/BladeView.cs @@ -3,11 +3,6 @@ using CommunityToolkit.WinUI; using Microsoft.UI.Xaml.Automation.Peers; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using Windows.Foundation; using Windows.Foundation.Collections; diff --git a/src/Files.App.Controls/BladeView/BladeView.xaml b/src/Files.App.Controls/BladeView/BladeView.xaml index 82a593fed509..98ebd4d629be 100644 --- a/src/Files.App.Controls/BladeView/BladeView.xaml +++ b/src/Files.App.Controls/BladeView/BladeView.xaml @@ -114,6 +114,18 @@ VerticalAlignment="Stretch" Background="{TemplateBinding Background}" /> + + + - - - + + + + AutomationProperties.Name="Chevron" + Background="{TemplateBinding Background}" + BorderBrush="{TemplateBinding BorderBrush}" + BorderThickness="{TemplateBinding BorderThickness}" + CornerRadius="{StaticResource BreadcrumbBarChevronCornerRaduis}" + Style="{StaticResource BreadcrumbBarItemChevronButtonStyle}" + ToolTipService.ToolTip="{TemplateBinding ChevronToolTip}" + UseSystemFocusVisuals="True"> + + + + + + + + + + + + + + + + + + + + + + - @@ -241,14 +235,36 @@ - + + + + + + + + + + - - - + + + + + + + - diff --git a/src/Files.App.Controls/BreadcrumbBar/BreadcrumbBarItem.Events.cs b/src/Files.App.Controls/BreadcrumbBar/BreadcrumbBarItem.Events.cs index b0f60ecaf587..3e067946cf4f 100644 --- a/src/Files.App.Controls/BreadcrumbBar/BreadcrumbBarItem.Events.cs +++ b/src/Files.App.Controls/BreadcrumbBar/BreadcrumbBarItem.Events.cs @@ -1,6 +1,9 @@ // Copyright (c) Files Community // Licensed under the MIT License. +using Microsoft.UI.Xaml.Input; +using Windows.System; + namespace Files.App.Controls { public partial class BreadcrumbBarItem @@ -15,6 +18,18 @@ private void ItemChevronButton_Click(object sender, RoutedEventArgs e) FlyoutBase.ShowAttachedFlyout(_itemChevronButton); } + private void ItemChevronButton_PreviewKeyDown(object sender, KeyRoutedEventArgs e) + { + if (e.Key == VirtualKey.Down) + FlyoutBase.ShowAttachedFlyout(_itemChevronButton); + } + + private void ItemContentButton_PreviewKeyDown(object sender, KeyRoutedEventArgs e) + { + if (e.Key == VirtualKey.Down) + FlyoutBase.ShowAttachedFlyout(_itemChevronButton); + } + private void ChevronDropDownMenuFlyout_Opening(object? sender, object e) { if (_ownerRef is null || diff --git a/src/Files.App.Controls/BreadcrumbBar/BreadcrumbBarItem.Properties.cs b/src/Files.App.Controls/BreadcrumbBar/BreadcrumbBarItem.Properties.cs index 7b1709d84b26..578ae62c67ad 100644 --- a/src/Files.App.Controls/BreadcrumbBar/BreadcrumbBarItem.Properties.cs +++ b/src/Files.App.Controls/BreadcrumbBar/BreadcrumbBarItem.Properties.cs @@ -13,6 +13,12 @@ public partial class BreadcrumbBarItem [GeneratedDependencyProperty] public partial bool IsLastItem { get; set; } + [GeneratedDependencyProperty] + public partial string? ItemToolTip { get; set; } + + [GeneratedDependencyProperty] + public partial string? ChevronToolTip { get; set; } + partial void OnIsEllipsisChanged(bool newValue) { VisualStateManager.GoToState(this, newValue ? "ChevronCollapsed" : "ChevronVisible", true); diff --git a/src/Files.App.Controls/BreadcrumbBar/BreadcrumbBarItem.cs b/src/Files.App.Controls/BreadcrumbBar/BreadcrumbBarItem.cs index f68d369105db..e7ba940b0153 100644 --- a/src/Files.App.Controls/BreadcrumbBar/BreadcrumbBarItem.cs +++ b/src/Files.App.Controls/BreadcrumbBar/BreadcrumbBarItem.cs @@ -47,7 +47,9 @@ protected override void OnApplyTemplate() VisualStateManager.GoToState(this, "ChevronCollapsed", true); _itemContentButton.Click += ItemContentButton_Click; + _itemContentButton.PreviewKeyDown += ItemContentButton_PreviewKeyDown; _itemChevronButton.Click += ItemChevronButton_Click; + _itemChevronButton.PreviewKeyDown += ItemChevronButton_PreviewKeyDown; _itemChevronDropDownMenuFlyout.Opening += ChevronDropDownMenuFlyout_Opening; _itemChevronDropDownMenuFlyout.Opened += ChevronDropDownMenuFlyout_Opened; _itemChevronDropDownMenuFlyout.Closed += ChevronDropDownMenuFlyout_Closed; diff --git a/src/Files.App.Controls/BreadcrumbBar/BreadcrumbBarItemAutomationPeer.cs b/src/Files.App.Controls/BreadcrumbBar/BreadcrumbBarItemAutomationPeer.cs index 42d81617f28c..bddb74a7bf8f 100644 --- a/src/Files.App.Controls/BreadcrumbBar/BreadcrumbBarItemAutomationPeer.cs +++ b/src/Files.App.Controls/BreadcrumbBar/BreadcrumbBarItemAutomationPeer.cs @@ -24,7 +24,7 @@ protected override string GetLocalizedControlTypeCore() protected override object GetPatternCore(PatternInterface patternInterface) { - if (patternInterface is PatternInterface.Invoke) + if (patternInterface is PatternInterface.ExpandCollapse or PatternInterface.Invoke) return this; return base.GetPatternCore(patternInterface); @@ -37,12 +37,15 @@ protected override string GetClassNameCore() protected override AutomationControlType GetAutomationControlTypeCore() { - return AutomationControlType.Button; + return AutomationControlType.SplitButton; } - /// - /// Sends a request to invoke the item associated with the automation peer. - /// + protected override bool IsControlElementCore() + { + return true; + } + + /// public void Invoke() { if (Owner is not BreadcrumbBarItem item) diff --git a/src/Files.App.Controls/BreadcrumbBar/BreadcrumbBarLayout.cs b/src/Files.App.Controls/BreadcrumbBar/BreadcrumbBarLayout.cs index da0313988121..42f107a96712 100644 --- a/src/Files.App.Controls/BreadcrumbBar/BreadcrumbBarLayout.cs +++ b/src/Files.App.Controls/BreadcrumbBar/BreadcrumbBarLayout.cs @@ -33,13 +33,15 @@ protected override Size MeasureOverride(NonVirtualizingLayoutContext context, Si var accumulatedSize = new Size(0, 0); _availableSize = availableSize; + var indexAfterEllipsis = GetFirstIndexToRender(context); + // Go through all items and measure them - foreach (var item in context.Children) + for (int index = 0; index < context.Children.Count; index++) { - if (item is BreadcrumbBarItem breadcrumbItem) + if (context.Children[index] is BreadcrumbBarItem breadcrumbItem) { breadcrumbItem.Measure(availableSize); - accumulatedSize.Width += breadcrumbItem.DesiredSize.Width; + accumulatedSize.Width += index < indexAfterEllipsis ? 0 : breadcrumbItem.DesiredSize.Width; accumulatedSize.Height = Math.Max(accumulatedSize.Height, breadcrumbItem.DesiredSize.Height); } } @@ -49,7 +51,7 @@ protected override Size MeasureOverride(NonVirtualizingLayoutContext context, Si _ellipsisButton ??= context.Children[0] as BreadcrumbBarItem; // Sets the ellipsis item's visibility based on whether the items are overflowing - EllipsisIsRendered = accumulatedSize.Width > availableSize.Width; + EllipsisIsRendered = indexAfterEllipsis is not 0; return accumulatedSize; } diff --git a/src/Files.App.Controls/Files.App.Controls.csproj b/src/Files.App.Controls/Files.App.Controls.csproj index e2f44e087d4d..9e7631dc70e9 100644 --- a/src/Files.App.Controls/Files.App.Controls.csproj +++ b/src/Files.App.Controls/Files.App.Controls.csproj @@ -10,6 +10,7 @@ x86;x64;arm64 win-x86;win-x64;win-arm64 true + $(DefineConstants);OMNIBAR_DEBUG diff --git a/src/Files.App.Controls/Util.cs b/src/Files.App.Controls/GlobalHelper.cs similarity index 76% rename from src/Files.App.Controls/Util.cs rename to src/Files.App.Controls/GlobalHelper.cs index e9866d156880..62c27e0b7462 100644 --- a/src/Files.App.Controls/Util.cs +++ b/src/Files.App.Controls/GlobalHelper.cs @@ -3,7 +3,7 @@ namespace Files.App.Controls { - public static class Util + public static class GlobalHelper { /// /// Sets cursor when hovering on a specific element. @@ -22,5 +22,11 @@ public static void ChangeCursor(this UIElement uiElement, InputCursor cursor) [cursor] ); } + + [Conditional("OMNIBAR_DEBUG")] + public static void WriteDebugStringForOmnibar(string? message) + { + Debug.WriteLine($"OMNIBAR DEBUG: [{message}]"); + } } } diff --git a/src/Files.App.Controls/GridSplitter/GripperHoverWrapper.cs b/src/Files.App.Controls/GridSplitter/GripperHoverWrapper.cs index 353e46c3b035..99e8579595e9 100644 --- a/src/Files.App.Controls/GridSplitter/GripperHoverWrapper.cs +++ b/src/Files.App.Controls/GridSplitter/GripperHoverWrapper.cs @@ -2,7 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.UI.Input; -using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Input; namespace Files.App.Controls diff --git a/src/Files.App.Controls/Omnibar/EventArgs.cs b/src/Files.App.Controls/Omnibar/EventArgs.cs index 6f0d5ca518ba..71622230d9a0 100644 --- a/src/Files.App.Controls/Omnibar/EventArgs.cs +++ b/src/Files.App.Controls/Omnibar/EventArgs.cs @@ -8,4 +8,8 @@ public record class OmnibarQuerySubmittedEventArgs(OmnibarMode Mode, object? Ite public record class OmnibarSuggestionChosenEventArgs(OmnibarMode Mode, object SelectedItem); public record class OmnibarTextChangedEventArgs(OmnibarMode Mode, OmnibarTextChangeReason Reason); + + public record class OmnibarModeChangedEventArgs(OmnibarMode? OldMode, OmnibarMode NewMode); + + public record class OmnibarIsFocusedChangedEventArgs(bool IsFocused); } diff --git a/src/Files.App.Controls/Omnibar/IOmnibarTextMemberPathProvider.cs b/src/Files.App.Controls/Omnibar/IOmnibarTextMemberPathProvider.cs index 41f798da7e7f..d38f0d3aeb8c 100644 --- a/src/Files.App.Controls/Omnibar/IOmnibarTextMemberPathProvider.cs +++ b/src/Files.App.Controls/Omnibar/IOmnibarTextMemberPathProvider.cs @@ -4,7 +4,7 @@ namespace Files.App.Controls { /// - /// An interface that provides a way to get the text member path of . + /// An interface that provides a way to get the text member path of . /// /// /// An alternative to this interface is to use an powered by CsWinRT. diff --git a/src/Files.App.Controls/Omnibar/Omnibar.Events.cs b/src/Files.App.Controls/Omnibar/Omnibar.Events.cs index 9f33112c8ee0..0c9c46ca386c 100644 --- a/src/Files.App.Controls/Omnibar/Omnibar.Events.cs +++ b/src/Files.App.Controls/Omnibar/Omnibar.Events.cs @@ -19,36 +19,61 @@ private void AutoSuggestBox_GettingFocus(UIElement sender, GettingFocusEventArgs if (args.OldFocusedElement is null) return; + GlobalHelper.WriteDebugStringForOmnibar("The TextBox is getting the focus."); + _previouslyFocusedElement = new(args.OldFocusedElement as UIElement); } + private void AutoSuggestBox_LosingFocus(UIElement sender, LosingFocusEventArgs args) + { + // Prevent the TextBox from losing focus when the ModeButton is focused + if (args.NewFocusedElement is not Button button || + args.InputDevice is FocusInputDeviceKind.Keyboard || + button.Name.ToString() != "PART_ModeButton") + return; + + args.TryCancel(); + } + private void AutoSuggestBox_GotFocus(object sender, RoutedEventArgs e) { + GlobalHelper.WriteDebugStringForOmnibar("The TextBox got the focus."); + IsFocused = true; + IsFocusedChanged?.Invoke(this, new(IsFocused)); + _textBox.SelectAll(); } private void AutoSuggestBox_LostFocus(object sender, RoutedEventArgs e) { // TextBox still has focus if the context menu for selected text is open - if (_textBox.ContextFlyout.IsOpen) + var element = Microsoft.UI.Xaml.Input.FocusManager.GetFocusedElement(this.XamlRoot); + if (element is FlyoutBase or Popup) return; + GlobalHelper.WriteDebugStringForOmnibar("The TextBox lost the focus."); + IsFocused = false; + IsFocusedChanged?.Invoke(this, new(IsFocused)); } - private void AutoSuggestBox_KeyDown(object sender, KeyRoutedEventArgs e) + private async void AutoSuggestBox_KeyDown(object sender, KeyRoutedEventArgs e) { if (e.Key is VirtualKey.Enter) { e.Handled = true; + GlobalHelper.WriteDebugStringForOmnibar("The TextBox accepted the Enter key."); + SubmitQuery(_textBoxSuggestionsPopup.IsOpen && _textBoxSuggestionsListView.SelectedIndex is not -1 ? _textBoxSuggestionsListView.SelectedItem : null); } else if ((e.Key == VirtualKey.Up || e.Key == VirtualKey.Down) && _textBoxSuggestionsPopup.IsOpen) { e.Handled = true; + GlobalHelper.WriteDebugStringForOmnibar("The TextBox accepted the Up/Down key while the suggestions pop-up is open."); + var currentIndex = _textBoxSuggestionsListView.SelectedIndex; var nextIndex = currentIndex; var suggestionsCount = _textBoxSuggestionsListView.Items.Count; @@ -70,13 +95,15 @@ private void AutoSuggestBox_KeyDown(object sender, KeyRoutedEventArgs e) { _textBoxSuggestionsListView.SelectedIndex = nextIndex; - ChooseSuggestionItem(_textBoxSuggestionsListView.SelectedItem); + ChooseSuggestionItem(_textBoxSuggestionsListView.SelectedItem, true); } } else if (e.Key == VirtualKey.Escape) { e.Handled = true; + GlobalHelper.WriteDebugStringForOmnibar("The TextBox accepted the Esc key."); + if (_textBoxSuggestionsPopup.IsOpen) { RevertTextToUserInput(); @@ -101,10 +128,10 @@ private void AutoSuggestBox_TextChanged(object sender, TextChangedEventArgs e) // UpdateSuggestionListView(); - if (_textChangeReason is not OmnibarTextChangeReason.SuggestionChosen and - not OmnibarTextChangeReason.ProgrammaticChange) + if (_textChangeReason is OmnibarTextChangeReason.ProgrammaticChange) + _textBox.SelectAll(); + else { - _textChangeReason = OmnibarTextChangeReason.UserInput; _userInput = _textBox.Text; } @@ -116,9 +143,16 @@ private void AutoSuggestBox_TextChanged(object sender, TextChangedEventArgs e) private void AutoSuggestBoxSuggestionsPopup_GettingFocus(UIElement sender, GettingFocusEventArgs args) { + // The suggestions popup is never wanted to be focused when it come to open. args.TryCancel(); } + private void AutoSuggestBoxSuggestionsPopup_Opened(object? sender, object e) + { + if (_textBoxSuggestionsListView.Items.Count > 0) + _textBoxSuggestionsListView.ScrollIntoView(_textBoxSuggestionsListView.Items[0]); + } + private void AutoSuggestBoxSuggestionsListView_ItemClick(object sender, ItemClickEventArgs e) { if (CurrentSelectedMode is null) @@ -127,5 +161,10 @@ private void AutoSuggestBoxSuggestionsListView_ItemClick(object sender, ItemClic ChooseSuggestionItem(e.ClickedItem); SubmitQuery(e.ClickedItem); } + + private void AutoSuggestBoxSuggestionsListView_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + _textBoxSuggestionsListView.ScrollIntoView(_textBoxSuggestionsListView.SelectedItem); + } } } diff --git a/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs b/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs index fb3cc94db2a5..1ee98de0c802 100644 --- a/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs +++ b/src/Files.App.Controls/Omnibar/Omnibar.Properties.cs @@ -27,8 +27,13 @@ partial void OnCurrentSelectedModePropertyChanged(DependencyPropertyChangedEvent if (e.NewValue is not OmnibarMode newMode) return; + if (e.OldValue is OmnibarMode oldMode) + GlobalHelper.WriteDebugStringForOmnibar($"The mode change from {oldMode} to {newMode} has been requested."); + else + GlobalHelper.WriteDebugStringForOmnibar($"The mode change to {newMode} has been requested."); + ChangeMode(e.OldValue as OmnibarMode, newMode); - CurrentSelectedModeName = newMode.ModeName; + CurrentSelectedModeName = newMode.Name; } partial void OnCurrentSelectedModeNameChanged(string? newValue) @@ -51,6 +56,8 @@ partial void OnIsFocusedChanged(bool newValue) if (CurrentSelectedMode is null || _textBox is null) return; + GlobalHelper.WriteDebugStringForOmnibar($"{nameof(IsFocused)} has been changed to {IsFocused}"); + if (newValue) { VisualStateManager.GoToState(CurrentSelectedMode, "Focused", true); diff --git a/src/Files.App.Controls/Omnibar/Omnibar.cs b/src/Files.App.Controls/Omnibar/Omnibar.cs index f4d29468e1ff..131ca89f4ef5 100644 --- a/src/Files.App.Controls/Omnibar/Omnibar.cs +++ b/src/Files.App.Controls/Omnibar/Omnibar.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Markup; using Microsoft.UI.Xaml.Media.Animation; using Windows.Foundation; @@ -38,6 +37,8 @@ public partial class Omnibar : Control public event TypedEventHandler? QuerySubmitted; public event TypedEventHandler? SuggestionChosen; public event TypedEventHandler? TextChanged; + public event TypedEventHandler? ModeChanged; + public event TypedEventHandler IsFocusedChanged; // Constructor @@ -47,6 +48,8 @@ public Omnibar() Modes = []; AutoSuggestBoxPadding = new(0, 0, 0, 0); + + GlobalHelper.WriteDebugStringForOmnibar("Omnibar has been initialized."); } // Methods @@ -71,14 +74,19 @@ protected override void OnApplyTemplate() SizeChanged += Omnibar_SizeChanged; _textBox.GettingFocus += AutoSuggestBox_GettingFocus; _textBox.GotFocus += AutoSuggestBox_GotFocus; + _textBox.LosingFocus += AutoSuggestBox_LosingFocus; _textBox.LostFocus += AutoSuggestBox_LostFocus; _textBox.KeyDown += AutoSuggestBox_KeyDown; _textBox.TextChanged += AutoSuggestBox_TextChanged; _textBoxSuggestionsPopup.GettingFocus += AutoSuggestBoxSuggestionsPopup_GettingFocus; + _textBoxSuggestionsPopup.Opened += AutoSuggestBoxSuggestionsPopup_Opened; _textBoxSuggestionsListView.ItemClick += AutoSuggestBoxSuggestionsListView_ItemClick; + _textBoxSuggestionsListView.SelectionChanged += AutoSuggestBoxSuggestionsListView_SelectionChanged; // Set the default width _textBoxSuggestionsContainerBorder.Width = ActualWidth; + + GlobalHelper.WriteDebugStringForOmnibar("The template and the events have been initialized."); } public void PopulateModes() @@ -117,7 +125,7 @@ protected void ChangeMode(OmnibarMode? oldMode, OmnibarMode newMode) // Add the reposition transition to the all modes mode.Transitions = [new RepositionThemeTransition()]; mode.UpdateLayout(); - mode.IsTabStop = true; + mode.IsTabStop = false; } var index = _modesHostGrid.Children.IndexOf(newMode); @@ -125,12 +133,15 @@ protected void ChangeMode(OmnibarMode? oldMode, OmnibarMode newMode) if (oldMode is not null) VisualStateManager.GoToState(oldMode, "Unfocused", true); - // Reset - foreach (var column in _modesHostGrid.ColumnDefinitions) - column.Width = GridLength.Auto; + DispatcherQueue.TryEnqueue(() => + { + // Reset + foreach (var column in _modesHostGrid.ColumnDefinitions) + column.Width = GridLength.Auto; - // Expand the given mode - _modesHostGrid.ColumnDefinitions[index].Width = new(1, GridUnitType.Star); + // Expand the given mode + _modesHostGrid.ColumnDefinitions[index].Width = new(1, GridUnitType.Star); + }); var itemCount = Modes.Count; var itemIndex = Modes.IndexOf(newMode); @@ -148,6 +159,13 @@ protected void ChangeMode(OmnibarMode? oldMode, OmnibarMode newMode) VisualStateManager.GoToState(newMode, "Focused", true); newMode.IsTabStop = false; + + ModeChanged?.Invoke(this, new(oldMode, newMode!)); + + _textBox.PlaceholderText = newMode.PlaceholderText ?? string.Empty; + _textBoxSuggestionsListView.ItemTemplate = newMode.ItemTemplate; + _textBoxSuggestionsListView.ItemsSource = newMode.ItemsSource; + if (newMode.IsAutoFocusEnabled) { _textBox.Focus(FocusState.Pointer); @@ -168,16 +186,18 @@ protected void ChangeMode(OmnibarMode? oldMode, OmnibarMode newMode) { VisualStateManager.GoToState(_textBox, "InputAreaVisible", true); } - - TryToggleIsSuggestionsPopupOpen(true); } + TryToggleIsSuggestionsPopupOpen(true); + // Remove the reposition transition from the all modes foreach (var mode in Modes) { mode.Transitions.Clear(); mode.UpdateLayout(); } + + GlobalHelper.WriteDebugStringForOmnibar($"Successfully changed Mode from {oldMode} to {newMode}"); } internal protected void FocusTextBox() @@ -185,23 +205,40 @@ internal protected void FocusTextBox() _textBox.Focus(FocusState.Keyboard); } - public bool TryToggleIsSuggestionsPopupOpen(bool wantToOpen) + internal protected bool TryToggleIsSuggestionsPopupOpen(bool wantToOpen) { - if (wantToOpen && (!IsFocused || CurrentSelectedMode?.SuggestionItemsSource is null || (CurrentSelectedMode?.SuggestionItemsSource is IList collection && collection.Count is 0)) || - _textBoxSuggestionsPopup is null) + if (_textBoxSuggestionsPopup is null) return false; + if (wantToOpen && (!IsFocused || CurrentSelectedMode?.ItemsSource is null || (CurrentSelectedMode?.ItemsSource is IList collection && collection.Count is 0))) + { + _textBoxSuggestionsPopup.IsOpen = false; + + GlobalHelper.WriteDebugStringForOmnibar("The suggestions pop-up closed."); + + return false; + } + + if (CurrentSelectedMode is not null) + { + _textBoxSuggestionsListView.ItemTemplate = CurrentSelectedMode.ItemTemplate; + _textBoxSuggestionsListView.ItemsSource = CurrentSelectedMode.ItemsSource; + } + _textBoxSuggestionsPopup.IsOpen = wantToOpen; + GlobalHelper.WriteDebugStringForOmnibar("The suggestions pop-up is open."); + return false; } - public void ChooseSuggestionItem(object obj) + public void ChooseSuggestionItem(object obj, bool isOriginatedFromArrowKey = false) { if (CurrentSelectedMode is null) return; - if (CurrentSelectedMode.UpdateTextOnSelect) + if (CurrentSelectedMode.UpdateTextOnSelect || + (isOriginatedFromArrowKey && CurrentSelectedMode.UpdateTextOnArrowKeys)) { _textChangeReason = OmnibarTextChangeReason.SuggestionChosen; ChangeTextBoxText(GetObjectText(obj)); @@ -215,7 +252,8 @@ internal protected void ChangeTextBoxText(string text) _textBox.Text = text; // Move the cursor to the end of the TextBox - _textBox?.Select(_textBox.Text.Length, 0); + if (_textChangeReason == OmnibarTextChangeReason.SuggestionChosen) + _textBox?.Select(_textBox.Text.Length, 0); } private void SubmitQuery(object? item) diff --git a/src/Files.App.Controls/Omnibar/Omnibar.xaml b/src/Files.App.Controls/Omnibar/Omnibar.xaml index 64eabed99947..e9b55811f684 100644 --- a/src/Files.App.Controls/Omnibar/Omnibar.xaml +++ b/src/Files.App.Controls/Omnibar/Omnibar.xaml @@ -67,7 +67,6 @@ FontStretch="{TemplateBinding FontStretch}" FontWeight="{TemplateBinding FontWeight}" Foreground="{TemplateBinding Foreground}" - PlaceholderText="{Binding CurrentSelectedMode.PlaceholderText, RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}" ScrollViewer.BringIntoViewOnFocusChange="False" Style="{StaticResource DefaultOmnibarTextBoxStyle}" UseSystemFocusVisuals="{TemplateBinding UseSystemFocusVisuals}" /> @@ -96,11 +95,7 @@ MaxHeight="{ThemeResource AutoSuggestListMaxHeight}" Margin="{ThemeResource AutoSuggestListPadding}" IsItemClickEnabled="True" - ItemTemplate="{Binding CurrentSelectedMode.SuggestionItemTemplate, RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}" - ItemsSource="{Binding CurrentSelectedMode.SuggestionItemsSource, RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}" - SelectionMode="Single"> - - + SelectionMode="Single" /> @@ -122,9 +117,6 @@ - - - @@ -132,30 +124,41 @@ x:Name="PART_RootGrid" Height="{TemplateBinding Height}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" - Background="{TemplateBinding Background}" - TabFocusNavigation="Local"> + Background="{TemplateBinding Background}"> - - - - - - - + ToolTipService.ToolTip="{Binding ModeName, RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}"> + + + + + + + + + + + - - - - - + - - + + @@ -186,13 +185,16 @@ - + + + - + + @@ -366,7 +368,12 @@ FontSize="{StaticResource TextBoxIconFontSize}" Foreground="{ThemeResource TextControlButtonForeground}" IsTabStop="False" - Visibility="Collapsed" /> + Visibility="Collapsed"> + + + + + diff --git a/src/Files.App.Controls/Omnibar/OmnibarMode.Events.cs b/src/Files.App.Controls/Omnibar/OmnibarMode.Events.cs index e7f73fd5262c..b8633bd24c50 100644 --- a/src/Files.App.Controls/Omnibar/OmnibarMode.Events.cs +++ b/src/Files.App.Controls/Omnibar/OmnibarMode.Events.cs @@ -12,6 +12,8 @@ private void ModeButton_PointerEntered(object sender, PointerRoutedEventArgs e) if (_ownerRef is null || _ownerRef.TryGetTarget(out var owner) is false || owner.CurrentSelectedMode == this) return; + GlobalHelper.WriteDebugStringForOmnibar($"The mouse pointer has entered the UI area of this Mode ({this})"); + VisualStateManager.GoToState(this, "PointerOver", true); } @@ -20,6 +22,8 @@ private void ModeButton_PointerPressed(object sender, PointerRoutedEventArgs e) if (_ownerRef is null || _ownerRef.TryGetTarget(out var owner) is false || owner.CurrentSelectedMode == this) return; + GlobalHelper.WriteDebugStringForOmnibar($"The mouse pointer has been pressed on the UI area of this Mode ({this})"); + VisualStateManager.GoToState(this, "PointerPressed", true); } @@ -28,15 +32,24 @@ private void ModeButton_PointerReleased(object sender, PointerRoutedEventArgs e) if (_ownerRef is null || _ownerRef.TryGetTarget(out var owner) is false || owner.CurrentSelectedMode == this) return; - VisualStateManager.GoToState(this, "PointerOver", true); + GlobalHelper.WriteDebugStringForOmnibar($"The mouse pointer has been unpressed from the UI area of this Mode ({this})"); - // Change the current mode - owner.CurrentSelectedMode = this; + VisualStateManager.GoToState(this, "PointerOver", true); } private void ModeButton_PointerExited(object sender, PointerRoutedEventArgs e) { + GlobalHelper.WriteDebugStringForOmnibar($"The mouse pointer has moved away from the UI area of this Mode ({this})"); + VisualStateManager.GoToState(this, "PointerNormal", true); } + + private void ModeButton_Click(object sender, RoutedEventArgs e) + { + if (_ownerRef is null || _ownerRef.TryGetTarget(out var owner) is false || owner.CurrentSelectedMode == this) + return; + + owner.CurrentSelectedMode = this; + } } -} +} \ No newline at end of file diff --git a/src/Files.App.Controls/Omnibar/OmnibarMode.Properties.cs b/src/Files.App.Controls/Omnibar/OmnibarMode.Properties.cs index dbac55f6ca1f..3130d95d305c 100644 --- a/src/Files.App.Controls/Omnibar/OmnibarMode.Properties.cs +++ b/src/Files.App.Controls/Omnibar/OmnibarMode.Properties.cs @@ -28,21 +28,18 @@ public partial class OmnibarMode [GeneratedDependencyProperty] public partial FrameworkElement? IconOnInactive { get; set; } - [GeneratedDependencyProperty] - public partial object? SuggestionItemsSource { get; set; } - - [GeneratedDependencyProperty] - public partial DataTemplate? SuggestionItemTemplate { get; set; } - [GeneratedDependencyProperty] /// - /// Implement in to get the text member path from the suggestion item correctly. + /// Implement in to get the text member path from the suggestion item correctly. /// public partial string? TextMemberPath { get; set; } [GeneratedDependencyProperty(DefaultValue = true)] public partial bool UpdateTextOnSelect { get; set; } + [GeneratedDependencyProperty(DefaultValue = true)] + public partial bool UpdateTextOnArrowKeys { get; set; } + [GeneratedDependencyProperty] public partial bool IsAutoFocusEnabled { get; set; } diff --git a/src/Files.App.Controls/Omnibar/OmnibarMode.cs b/src/Files.App.Controls/Omnibar/OmnibarMode.cs index b4d5927383a9..9f413b7a5c75 100644 --- a/src/Files.App.Controls/Omnibar/OmnibarMode.cs +++ b/src/Files.App.Controls/Omnibar/OmnibarMode.cs @@ -6,7 +6,7 @@ namespace Files.App.Controls { [DebuggerDisplay("{" + nameof(ToString) + "(),nq}")] - public partial class OmnibarMode : Control + public partial class OmnibarMode : ItemsControl { // Constants @@ -16,13 +16,15 @@ public partial class OmnibarMode : Control private WeakReference? _ownerRef; - private Border _modeButton = null!; + private Button _modeButton = null!; // Constructor public OmnibarMode() { DefaultStyleKey = typeof(OmnibarMode); + + GlobalHelper.WriteDebugStringForOmnibar($"Omnibar Mode ({this}) has been initialized."); } // Methods @@ -31,14 +33,23 @@ protected override void OnApplyTemplate() { base.OnApplyTemplate(); - _modeButton = GetTemplateChild(TemplatePartName_ModeButton) as Border + _modeButton = GetTemplateChild(TemplatePartName_ModeButton) as Button ?? throw new MissingFieldException($"Could not find {TemplatePartName_ModeButton} in the given {nameof(OmnibarMode)}'s style."); - + + RegisterPropertyChangedCallback(ItemsSourceProperty, (d, dp) => + { + if (_ownerRef is not null && _ownerRef.TryGetTarget(out var owner)) + owner.TryToggleIsSuggestionsPopupOpen(true); + }); + Loaded += OmnibarMode_Loaded; _modeButton.PointerEntered += ModeButton_PointerEntered; _modeButton.PointerPressed += ModeButton_PointerPressed; _modeButton.PointerReleased += ModeButton_PointerReleased; _modeButton.PointerExited += ModeButton_PointerExited; + _modeButton.Click += ModeButton_Click; + + GlobalHelper.WriteDebugStringForOmnibar($"The template and the events of the Omnibar Mode ({this}) have been initialized."); } protected override void OnKeyUp(KeyRoutedEventArgs args) @@ -66,11 +77,24 @@ protected override void OnKeyUp(KeyRoutedEventArgs args) } } + protected override void OnItemsChanged(object e) + { + base.OnItemsChanged(e); + + if (_ownerRef is not null && _ownerRef.TryGetTarget(out var owner)) + owner.TryToggleIsSuggestionsPopupOpen(true); + } + private void OmnibarMode_Loaded(object sender, RoutedEventArgs e) { // Set this mode as the current mode if it is the default mode if (IsDefault && _ownerRef is not null && _ownerRef.TryGetTarget(out var owner)) - owner.CurrentSelectedMode = this; + { + DispatcherQueue.TryEnqueue(() => + { + owner.CurrentSelectedMode = this; + }); + } } public void SetOwner(Omnibar owner) @@ -80,7 +104,7 @@ public void SetOwner(Omnibar owner) public override string ToString() { - return ModeName ?? string.Empty; + return Name ?? string.Empty; } } } diff --git a/src/Files.App.Controls/SamplePanel/SamplePanel.Properties.cs b/src/Files.App.Controls/SamplePanel/SamplePanel.Properties.cs index 99ff6328a8c0..c187fbf1111b 100644 --- a/src/Files.App.Controls/SamplePanel/SamplePanel.Properties.cs +++ b/src/Files.App.Controls/SamplePanel/SamplePanel.Properties.cs @@ -2,8 +2,6 @@ // Licensed under the MIT License. using CommunityToolkit.WinUI; -using Microsoft.UI.Xaml; -using Microsoft.UI.Xaml.Controls; namespace Files.App.Controls { diff --git a/src/Files.App.Controls/SamplePanel/SamplePanel.cs b/src/Files.App.Controls/SamplePanel/SamplePanel.cs index 9b727cb2a0bf..8d2dbc1ff2e0 100644 --- a/src/Files.App.Controls/SamplePanel/SamplePanel.cs +++ b/src/Files.App.Controls/SamplePanel/SamplePanel.cs @@ -1,10 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Microsoft.UI.Xaml; -using Microsoft.UI.Xaml.Controls; -using Microsoft.UI.Xaml.Markup; - namespace Files.App.Controls { // Visual states diff --git a/src/Files.App.Controls/Sidebar/ISidebarViewModel.cs b/src/Files.App.Controls/Sidebar/ISidebarViewModel.cs index eb35d2ece37e..a3673e6d6105 100644 --- a/src/Files.App.Controls/Sidebar/ISidebarViewModel.cs +++ b/src/Files.App.Controls/Sidebar/ISidebarViewModel.cs @@ -2,7 +2,6 @@ // Licensed under the MIT License. using Microsoft.UI.Input; -using Microsoft.UI.Xaml; using Windows.ApplicationModel.DataTransfer; using Windows.Foundation; diff --git a/src/Files.App.Controls/Sidebar/SidebarItem.Properties.cs b/src/Files.App.Controls/Sidebar/SidebarItem.Properties.cs index 68b1d440c126..79a336758fca 100644 --- a/src/Files.App.Controls/Sidebar/SidebarItem.Properties.cs +++ b/src/Files.App.Controls/Sidebar/SidebarItem.Properties.cs @@ -44,7 +44,7 @@ public double ChildrenPresenterHeight } // Using 30 as a default in case something goes wrong public static readonly DependencyProperty ChildrenPresenterHeightProperty = - DependencyProperty.Register(nameof(ChildrenPresenterHeight), typeof(double), typeof(SidebarItem), new PropertyMetadata(30d)); + DependencyProperty.Register(nameof(ChildrenPresenterHeight), typeof(double), typeof(SidebarItem), new PropertyMetadata(30d)); public ISidebarItemModel? Item { @@ -112,7 +112,7 @@ public static void OnPropertyChanged(DependencyObject sender, DependencyProperty { item.UpdateExpansionState(); } - else if(e.Property == ItemProperty) + else if (e.Property == ItemProperty) { item.HandleItemChange(); } diff --git a/src/Files.App.Controls/Storage/RingShape/RingShape.Properties.cs b/src/Files.App.Controls/Storage/RingShape/RingShape.Properties.cs index d85ff577f316..2d6680a3115b 100644 --- a/src/Files.App.Controls/Storage/RingShape/RingShape.Properties.cs +++ b/src/Files.App.Controls/Storage/RingShape/RingShape.Properties.cs @@ -2,7 +2,6 @@ // Licensed under the MIT License. using CommunityToolkit.WinUI; -using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Media; using Microsoft.UI.Xaml.Shapes; using Windows.Foundation; diff --git a/src/Files.App.Controls/Storage/StorageBar/StorageBar.cs b/src/Files.App.Controls/Storage/StorageBar/StorageBar.cs index 236f74f080b8..d570cc88d1fa 100644 --- a/src/Files.App.Controls/Storage/StorageBar/StorageBar.cs +++ b/src/Files.App.Controls/Storage/StorageBar/StorageBar.cs @@ -217,7 +217,7 @@ private void UpdateColumnWidths() true); var interpolatedGapWidth = valueLarger - ? StorageControlsHelpers.CalculateInterpolatedValue( + ? StorageControlsHelpers.CalculateInterpolatedValue( minPercent, Percent, minPercent + 2.0, diff --git a/src/Files.App.Controls/ThemedIcon/ThemedIcon.Consts.cs b/src/Files.App.Controls/ThemedIcon/ThemedIcon.Consts.cs index 5cc349e20ef9..3de66bb5294c 100644 --- a/src/Files.App.Controls/ThemedIcon/ThemedIcon.Consts.cs +++ b/src/Files.App.Controls/ThemedIcon/ThemedIcon.Consts.cs @@ -1,9 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Microsoft.UI.Xaml; -using Microsoft.UI.Xaml.Controls; - namespace Files.App.Controls { // Template Parts @@ -12,7 +9,7 @@ namespace Files.App.Controls [TemplatePart(Name = LayeredPathIconViewBox, Type = typeof(Viewbox))] [TemplatePart(Name = LayeredPathCanvas, Type = typeof(Canvas))] // Icon Type Visual States - [TemplateVisualState(Name = OutlineTypeStateName, GroupName = IconTypeStateGroupName)] + [TemplateVisualState(Name = OutlineTypeStateName, GroupName = IconTypeStateGroupName)] [TemplateVisualState(Name = LayeredTypeStateName, GroupName = IconTypeStateGroupName)] [TemplateVisualState(Name = FilledTypeStateName, GroupName = IconTypeStateGroupName)] // Icon Color Visual States diff --git a/src/Files.App.Controls/ThemedIcon/ThemedIcon.Owner.cs b/src/Files.App.Controls/ThemedIcon/ThemedIcon.Owner.cs index 3a87ce1efc43..52572e76381f 100644 --- a/src/Files.App.Controls/ThemedIcon/ThemedIcon.Owner.cs +++ b/src/Files.App.Controls/ThemedIcon/ThemedIcon.Owner.cs @@ -2,9 +2,6 @@ // Licensed under the MIT License. using CommunityToolkit.WinUI; -using Microsoft.UI.Xaml; -using Microsoft.UI.Xaml.Controls; -using Microsoft.UI.Xaml.Controls.Primitives; namespace Files.App.Controls { diff --git a/src/Files.App.Controls/ThemedIcon/ThemedIcon.Properties.cs b/src/Files.App.Controls/ThemedIcon/ThemedIcon.Properties.cs index f72caa7a414e..c385aab30c6c 100644 --- a/src/Files.App.Controls/ThemedIcon/ThemedIcon.Properties.cs +++ b/src/Files.App.Controls/ThemedIcon/ThemedIcon.Properties.cs @@ -2,7 +2,6 @@ // Licensed under the MIT License. using CommunityToolkit.WinUI; -using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Media; namespace Files.App.Controls diff --git a/src/Files.App.Controls/ThemedIcon/ThemedIcon.cs b/src/Files.App.Controls/ThemedIcon/ThemedIcon.cs index a42168104c90..c7cfdde8932f 100644 --- a/src/Files.App.Controls/ThemedIcon/ThemedIcon.cs +++ b/src/Files.App.Controls/ThemedIcon/ThemedIcon.cs @@ -1,13 +1,9 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Microsoft.UI.Xaml; -using Microsoft.UI.Xaml.Controls; -using Microsoft.UI.Xaml.Media; using Microsoft.UI.Xaml.Markup; +using Microsoft.UI.Xaml.Media; using Microsoft.UI.Xaml.Shapes; -using System.Linq; -using System.Collections.Generic; namespace Files.App.Controls { @@ -15,11 +11,11 @@ namespace Files.App.Controls /// A control for a State and Color aware Icon /// public partial class ThemedIcon : Control - { - private Viewbox? _filledViewBox; - private Viewbox? _outlineViewBox; - private Viewbox? _layeredViewBox; - private Canvas? _layeredCanvas; + { + private Viewbox? _filledViewBox; + private Viewbox? _outlineViewBox; + private Viewbox? _layeredViewBox; + private Canvas? _layeredCanvas; public ThemedIcon() { @@ -49,11 +45,11 @@ protected override void OnApplyTemplate() private void GetTemplateParts() { // Gets the template parts and sets the private fields - _outlineViewBox = GetTemplateChild( OutlinePathIconViewBox ) as Viewbox; - _filledViewBox = GetTemplateChild( FilledPathIconViewBox ) as Viewbox; - _layeredViewBox = GetTemplateChild( LayeredPathIconViewBox ) as Viewbox; + _outlineViewBox = GetTemplateChild(OutlinePathIconViewBox) as Viewbox; + _filledViewBox = GetTemplateChild(FilledPathIconViewBox) as Viewbox; + _layeredViewBox = GetTemplateChild(LayeredPathIconViewBox) as Viewbox; - _layeredCanvas = GetTemplateChild( LayeredPathCanvas ) as Canvas; + _layeredCanvas = GetTemplateChild(LayeredPathCanvas) as Canvas; } // Updates paths and layers @@ -64,7 +60,7 @@ private void OnFilledIconChanged() if (_filledViewBox == null) return; - SetPathData(FilledIconPath, FilledIconData ?? string.Empty, _filledViewBox ); + SetPathData(FilledIconPath, FilledIconData ?? string.Empty, _filledViewBox); } private void OnOutlineIconChanged() @@ -73,16 +69,16 @@ private void OnOutlineIconChanged() if (_outlineViewBox == null) return; - SetPathData(OutlineIconPath, OutlineIconData ?? string.Empty, _outlineViewBox ); + SetPathData(OutlineIconPath, OutlineIconData ?? string.Empty, _outlineViewBox); } private void OnLayeredIconChanged() { // Updates Layered Icon from it's Layers - if ( _layeredViewBox == null || + if (_layeredViewBox == null || _layeredCanvas == null || Layers is not ICollection layers) - return; + return; _layeredCanvas.Children.Clear(); diff --git a/src/Files.App.Controls/ThemedIcon/ThemedIconLayer/ThemedIconLayer.Consts.cs b/src/Files.App.Controls/ThemedIcon/ThemedIconLayer/ThemedIconLayer.Consts.cs index 99abf1cdd354..137eed61a5ed 100644 --- a/src/Files.App.Controls/ThemedIcon/ThemedIconLayer/ThemedIconLayer.Consts.cs +++ b/src/Files.App.Controls/ThemedIcon/ThemedIconLayer/ThemedIconLayer.Consts.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Microsoft.UI.Xaml; -using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Shapes; namespace Files.App.Controls diff --git a/src/Files.App.Controls/ThemedIcon/ThemedIconLayer/ThemedIconLayer.cs b/src/Files.App.Controls/ThemedIcon/ThemedIconLayer/ThemedIconLayer.cs index 5a8c73be4869..5e1b52444b33 100644 --- a/src/Files.App.Controls/ThemedIcon/ThemedIconLayer/ThemedIconLayer.cs +++ b/src/Files.App.Controls/ThemedIcon/ThemedIconLayer/ThemedIconLayer.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Microsoft.UI.Xaml; -using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Markup; using Microsoft.UI.Xaml.Media; using Microsoft.UI.Xaml.Shapes; @@ -68,8 +66,8 @@ private void UpdateIconLayerState() IconColorType switch { ThemedIconColorType.Critical => CriticalStateName, - ThemedIconColorType.Caution => CautionStateName, - ThemedIconColorType.Success => SuccessStateName, + ThemedIconColorType.Caution => CautionStateName, + ThemedIconColorType.Success => SuccessStateName, ThemedIconColorType.Neutral => NeutralStateName, ThemedIconColorType.Custom => CustomColorStateName, _ => AccentStateName, diff --git a/src/Files.App.Controls/Toolbar/Primitives/ToolbarLayout.cs b/src/Files.App.Controls/Toolbar/Primitives/ToolbarLayout.cs index d6bac7137dec..cf91d1a0bbda 100644 --- a/src/Files.App.Controls/Toolbar/Primitives/ToolbarLayout.cs +++ b/src/Files.App.Controls/Toolbar/Primitives/ToolbarLayout.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Microsoft.UI.Xaml; -using Microsoft.UI.Xaml.Controls; using Windows.Foundation; namespace Files.App.Controls.Primitives @@ -21,14 +19,14 @@ private int GetItemCount(NonVirtualizingLayoutContext context) return context.Children.Count; } - private UIElement GetElementAt(NonVirtualizingLayoutContext context , int index) + private UIElement GetElementAt(NonVirtualizingLayoutContext context, int index) { return context.Children[index]; } // Measuring is performed in a single step, every element is measured, including the overflow button // item, but the total amount of space needed is only composed of the Toolbar Items - protected override Size MeasureOverride(NonVirtualizingLayoutContext context , Size availableSize) + protected override Size MeasureOverride(NonVirtualizingLayoutContext context, Size availableSize) { m_availableSize = availableSize; @@ -39,32 +37,32 @@ protected override Size MeasureOverride(NonVirtualizingLayoutContext context , S //var toolbarItem = (ToolbarItem)GetElementAt(context, i); //toolbarItem.Measure( availableSize ); - if ( i != 0 ) + if (i != 0) { //accumulatedItemsSize.Width += toolbarItem.DesiredSize.Width; //accumulatedItemsSize.Height = Math.Max( accumulatedItemsSize.Height , toolbarItem.DesiredSize.Height ); } } - if ( accumulatedItemsSize.Width > availableSize.Width ) + if (accumulatedItemsSize.Width > availableSize.Width) { - + } else { - + } return accumulatedItemsSize; } - private void ArrangeItem(UIElement breadcrumbItem , ref float accumulatedWidths , float maxElementHeight) + private void ArrangeItem(UIElement breadcrumbItem, ref float accumulatedWidths, float maxElementHeight) { } // Arranging is performed in a single step, as many elements are tried to be drawn going from the last element // towards the first one, if there's not enough space, then the ellipsis button is drawn - protected override Size ArrangeOverride(NonVirtualizingLayoutContext context , Size finalSize) + protected override Size ArrangeOverride(NonVirtualizingLayoutContext context, Size finalSize) { return finalSize; } diff --git a/src/Files.App.Controls/Toolbar/Toolbar.Constants.cs b/src/Files.App.Controls/Toolbar/Toolbar.Constants.cs index bb1c2cab030f..044eeaa6d083 100644 --- a/src/Files.App.Controls/Toolbar/Toolbar.Constants.cs +++ b/src/Files.App.Controls/Toolbar/Toolbar.Constants.cs @@ -4,30 +4,30 @@ namespace Files.App.Controls { // TemplateParts - [TemplatePart( Name = ToolbarItemsRepeaterPartName , Type = typeof( ItemsRepeater ) )] + [TemplatePart(Name = ToolbarItemsRepeaterPartName, Type = typeof(ItemsRepeater))] // VisualStates - [TemplateVisualState( Name = OverflowOnStateName , GroupName = CommonStatesGroupName )] - [TemplateVisualState( Name = OverflowOffStateName , GroupName = CommonStatesGroupName )] + [TemplateVisualState(Name = OverflowOnStateName, GroupName = CommonStatesGroupName)] + [TemplateVisualState(Name = OverflowOffStateName, GroupName = CommonStatesGroupName)] public partial class Toolbar : Control { // TemplatePart Names - internal const string ToolbarItemsRepeaterPartName = "PART_ItemsRepeater"; + internal const string ToolbarItemsRepeaterPartName = "PART_ItemsRepeater"; // VisualState Group Names - internal const string CommonStatesGroupName = "OverflowStates"; + internal const string CommonStatesGroupName = "OverflowStates"; // VisualState Names - internal const string OverflowOnStateName = "OverflowOn"; - internal const string OverflowOffStateName = "OverflowOff"; + internal const string OverflowOnStateName = "OverflowOn"; + internal const string OverflowOffStateName = "OverflowOff"; // ResourceDictionary Keys - internal const string SmallMinWidthResourceKey = "ToolbarButtonSmallMinWidth"; - internal const string SmallMinHeightResourceKey = "ToolbarButtonSmallMinHeight"; + internal const string SmallMinWidthResourceKey = "ToolbarButtonSmallMinWidth"; + internal const string SmallMinHeightResourceKey = "ToolbarButtonSmallMinHeight"; - internal const string MediumMinWidthResourceKey = "ToolbarButtonMediumMinWidth"; - internal const string MediumMinHeightResourceKey = "ToolbarButtonMediumMinHeight"; + internal const string MediumMinWidthResourceKey = "ToolbarButtonMediumMinWidth"; + internal const string MediumMinHeightResourceKey = "ToolbarButtonMediumMinHeight"; - internal const string LargeMinWidthResourceKey = "ToolbarButtonLargeMinWidth"; - internal const string LargeMinHeightResourceKey = "ToolbarButtonLargeMinHeight"; + internal const string LargeMinWidthResourceKey = "ToolbarButtonLargeMinWidth"; + internal const string LargeMinHeightResourceKey = "ToolbarButtonLargeMinHeight"; } } diff --git a/src/Files.App.Controls/Toolbar/Toolbar.Properties.cs b/src/Files.App.Controls/Toolbar/Toolbar.Properties.cs index c2a76e85d066..e58e36f4aff7 100644 --- a/src/Files.App.Controls/Toolbar/Toolbar.Properties.cs +++ b/src/Files.App.Controls/Toolbar/Toolbar.Properties.cs @@ -24,8 +24,8 @@ public partial class Toolbar : Control /// public ToolbarSizes ToolbarSize { - get => (ToolbarSizes)GetValue( ToolbarSizeProperty ); - set => SetValue( ToolbarSizeProperty , value ); + get => (ToolbarSizes)GetValue(ToolbarSizeProperty); + set => SetValue(ToolbarSizeProperty, value); } @@ -34,11 +34,11 @@ public ToolbarSizes ToolbarSize /// /// /// - protected virtual void OnToolbarSizePropertyChanged(ToolbarSizes oldValue , ToolbarSizes newValue) + protected virtual void OnToolbarSizePropertyChanged(ToolbarSizes oldValue, ToolbarSizes newValue) { - if ( newValue != oldValue ) + if (newValue != oldValue) { - ToolbarSizeChanged( newValue ); + ToolbarSizeChanged(newValue); } } @@ -48,26 +48,26 @@ protected virtual void OnToolbarSizePropertyChanged(ToolbarSizes oldValue , Tool public static readonly DependencyProperty ItemsProperty = DependencyProperty.Register( - nameof( Items ), - typeof( IList ), - typeof(Toolbar), - new PropertyMetadata( defaultValue: new List(), (d, e) => ((Toolbar)d).OnItemsPropertyChanged(( IList )e.OldValue, ( IList )e.NewValue))); + nameof(Items), + typeof(IList), + typeof(Toolbar), + new PropertyMetadata(defaultValue: new List(), (d, e) => ((Toolbar)d).OnItemsPropertyChanged((IList)e.OldValue, (IList)e.NewValue))); public IList Items { - get => ( IList )GetValue( ItemsProperty ); - set => SetValue( ItemsProperty , value ); + get => (IList)GetValue(ItemsProperty); + set => SetValue(ItemsProperty, value); } - private void OnItemsPropertyChanged(IList oldItems , IList newItems) + private void OnItemsPropertyChanged(IList oldItems, IList newItems) { - if ( newItems != oldItems ) + if (newItems != oldItems) { - ItemsChanged( newItems ); + ItemsChanged(newItems); } } @@ -92,8 +92,8 @@ private void OnItemsPropertyChanged(IList oldItems , IList public DataTemplate ItemTemplate { - get => (DataTemplate)GetValue( ItemTemplateProperty ); - set => SetValue( ItemTemplateProperty , value ); + get => (DataTemplate)GetValue(ItemTemplateProperty); + set => SetValue(ItemTemplateProperty, value); } @@ -102,11 +102,11 @@ public DataTemplate ItemTemplate /// /// /// - protected virtual void OnItemTemplatePropertyChanged(DataTemplate oldValue , DataTemplate newValue) + protected virtual void OnItemTemplatePropertyChanged(DataTemplate oldValue, DataTemplate newValue) { - if ( newValue != oldValue ) + if (newValue != oldValue) { - ItemTemplateChanged( newValue ); + ItemTemplateChanged(newValue); } } @@ -122,7 +122,7 @@ protected virtual void OnItemTemplatePropertyChanged(DataTemplate oldValue , Dat nameof(ItemList), typeof(ToolbarItemList), typeof(Toolbar), - new PropertyMetadata(new ToolbarItemList(), (d, e) => ((Toolbar)d).OnItemListPropertyChanged(( ToolbarItemList )e.OldValue, ( ToolbarItemList )e.NewValue))); + new PropertyMetadata(new ToolbarItemList(), (d, e) => ((Toolbar)d).OnItemListPropertyChanged((ToolbarItemList)e.OldValue, (ToolbarItemList)e.NewValue))); @@ -131,17 +131,17 @@ protected virtual void OnItemTemplatePropertyChanged(DataTemplate oldValue , Dat /// private ToolbarItemList ItemList { - get { return (ToolbarItemList)GetValue( ItemListProperty ); } - set { SetValue( ItemListProperty , value ); } + get { return (ToolbarItemList)GetValue(ItemListProperty); } + set { SetValue(ItemListProperty, value); } } - private void OnItemListPropertyChanged(ToolbarItemList oldList , ToolbarItemList newList) + private void OnItemListPropertyChanged(ToolbarItemList oldList, ToolbarItemList newList) { - if ( newList != oldList ) + if (newList != oldList) { - PrivateItemListChanged( newList ); + PrivateItemListChanged(newList); } } #endregion @@ -156,7 +156,7 @@ private void OnItemListPropertyChanged(ToolbarItemList oldList , ToolbarItemList nameof(ItemOverflowList), typeof(ToolbarItemOverflowList), typeof(Toolbar), - new PropertyMetadata(new ToolbarItemOverflowList(), (d, e) => ((Toolbar)d).OnItemOverflowListPropertyChanged(( ToolbarItemOverflowList )e.OldValue, ( ToolbarItemOverflowList )e.NewValue))); + new PropertyMetadata(new ToolbarItemOverflowList(), (d, e) => ((Toolbar)d).OnItemOverflowListPropertyChanged((ToolbarItemOverflowList)e.OldValue, (ToolbarItemOverflowList)e.NewValue))); @@ -165,17 +165,17 @@ private void OnItemListPropertyChanged(ToolbarItemList oldList , ToolbarItemList /// private ToolbarItemOverflowList ItemOverflowList { - get { return (ToolbarItemOverflowList)GetValue( ItemOverflowListProperty ); } - set { SetValue( ItemOverflowListProperty , value ); } + get { return (ToolbarItemOverflowList)GetValue(ItemOverflowListProperty); } + set { SetValue(ItemOverflowListProperty, value); } } - private void OnItemOverflowListPropertyChanged(ToolbarItemOverflowList oldList , ToolbarItemOverflowList newList) + private void OnItemOverflowListPropertyChanged(ToolbarItemOverflowList oldList, ToolbarItemOverflowList newList) { - if ( newList != oldList ) + if (newList != oldList) { - PrivateItemOverflowListChanged( newList ); + PrivateItemOverflowListChanged(newList); } } #endregion diff --git a/src/Files.App.Controls/Toolbar/Toolbar.cs b/src/Files.App.Controls/Toolbar/Toolbar.cs index 2d10d6910c18..28b0fb69db02 100644 --- a/src/Files.App.Controls/Toolbar/Toolbar.cs +++ b/src/Files.App.Controls/Toolbar/Toolbar.cs @@ -8,28 +8,28 @@ public partial class Toolbar : Control // A reference to the current available size for ToolbarItems private double _availableSize; - private ItemsRepeater? _itemsRepeater; - private ToolbarItemList? _toolbarItemsList; - private ToolbarItemOverflowList? _toolbarItemsOverflowList; + private ItemsRepeater? _itemsRepeater; + private ToolbarItemList? _toolbarItemsList; + private ToolbarItemOverflowList? _toolbarItemsOverflowList; - private ToolbarItemList _tempToolbarItemsList; - private ToolbarItemOverflowList _tempToolbarItemsOverflowList; + private ToolbarItemList _tempToolbarItemsList; + private ToolbarItemOverflowList _tempToolbarItemsOverflowList; - private double _smallMinWidth = 24; // I have set default values, but we pull from resources - private double _mediumMinWidth = 32; // if they are available. - private double _largeMinWidth = 32; - - private double _smallMinHeight = 24; - private double _mediumMinHeight = 24; - private double _largeMinHeight = 32; + private double _smallMinWidth = 24; // I have set default values, but we pull from resources + private double _mediumMinWidth = 32; // if they are available. + private double _largeMinWidth = 32; - private double _currentMinWidth; - private double _currentMinHeight; + private double _smallMinHeight = 24; + private double _mediumMinHeight = 24; + private double _largeMinHeight = 32; + + private double _currentMinWidth; + private double _currentMinHeight; public Toolbar() { - DefaultStyleKey = typeof( Toolbar ); + DefaultStyleKey = typeof(Toolbar); } protected override void OnApplyTemplate() @@ -38,17 +38,17 @@ protected override void OnApplyTemplate() UpdateMinSizesFromResources(); - if ( Items != null ) + if (Items != null) { _tempToolbarItemsList = new ToolbarItemList(); _tempToolbarItemsOverflowList = new ToolbarItemOverflowList(); - UpdateItems( Items ); + UpdateItems(Items); } - SetItemsRepeater( GetTemplateChild( ToolbarItemsRepeaterPartName ) as ItemsRepeater ); + SetItemsRepeater(GetTemplateChild(ToolbarItemsRepeaterPartName) as ItemsRepeater); - if ( GetItemsRepeater() != null ) + if (GetItemsRepeater() != null) { ItemsRepeater itemsRepeater = GetItemsRepeater(); itemsRepeater.ItemsSource = GetToolbarItemsList(); @@ -201,17 +201,17 @@ private void UpdateItems(IList newItems) /// manage the Buttons and the Menu items /// - foreach ( var item in newItems ) + foreach (var item in newItems) { - SortItemsByOverflowBehavior( item ); - Debug.Write( "-> Sorted " + item.Label + " from Items... ..." + Environment.NewLine ); + SortItemsByOverflowBehavior(item); + Debug.Write("-> Sorted " + item.Label + " from Items... ..." + Environment.NewLine); } - UpdatePrivateItemList( _tempToolbarItemsList ); - Debug.Write( " | tempItemsList " + _tempToolbarItemsList.Count.ToString() + " *" + Environment.NewLine ); + UpdatePrivateItemList(_tempToolbarItemsList); + Debug.Write(" | tempItemsList " + _tempToolbarItemsList.Count.ToString() + " *" + Environment.NewLine); - UpdatePrivateItemOverflowList( _tempToolbarItemsOverflowList ); - Debug.Write( " | tempItemsOverflowList " + _tempToolbarItemsOverflowList.Count.ToString() + " *" + Environment.NewLine ); + UpdatePrivateItemOverflowList(_tempToolbarItemsOverflowList); + Debug.Write(" | tempItemsOverflowList " + _tempToolbarItemsOverflowList.Count.ToString() + " *" + Environment.NewLine); } @@ -225,9 +225,9 @@ private void UpdateItemTemplate(DataTemplate newDataTemplate) - private void UpdateToolbarSize( ToolbarSizes newToolbarSize ) + private void UpdateToolbarSize(ToolbarSizes newToolbarSize) { - UpdateMinSizesFromResources(); + UpdateMinSizesFromResources(); } @@ -239,7 +239,7 @@ private void UpdateAvailableSize() // Do some code to check or respond to size changes for // the Toolbar's Items space (ItemsRepeaterLayout?) - SetAvailableSize( newAvailableSize ); + SetAvailableSize(newAvailableSize); /// We need to check the Item Widths and Heights /// (we know the sizes for buttons, but content will need @@ -256,43 +256,43 @@ private void UpdateAvailableSize() /// private void UpdateMinSizesFromResources() { - double smallMinWidth = (double)Application.Current.Resources[SmallMinWidthResourceKey]; - double smallMinHeight = (double)Application.Current.Resources[SmallMinHeightResourceKey]; + double smallMinWidth = (double)Application.Current.Resources[SmallMinWidthResourceKey]; + double smallMinHeight = (double)Application.Current.Resources[SmallMinHeightResourceKey]; - double mediumMinWidth = (double)Application.Current.Resources[MediumMinWidthResourceKey]; - double mediumMinHeight = (double)Application.Current.Resources[MediumMinHeightResourceKey]; + double mediumMinWidth = (double)Application.Current.Resources[MediumMinWidthResourceKey]; + double mediumMinHeight = (double)Application.Current.Resources[MediumMinHeightResourceKey]; - double largeMinWidth = (double)Application.Current.Resources[LargeMinWidthResourceKey]; - double largeMinHeight = (double)Application.Current.Resources[LargeMinHeightResourceKey]; + double largeMinWidth = (double)Application.Current.Resources[LargeMinWidthResourceKey]; + double largeMinHeight = (double)Application.Current.Resources[LargeMinHeightResourceKey]; - if ( !double.IsNaN( smallMinWidth ) || !double.IsNaN( smallMinHeight ) || - !double.IsNaN( mediumMinWidth ) || !double.IsNaN( mediumMinHeight ) || - !double.IsNaN( largeMinWidth ) || !double.IsNaN( largeMinHeight ) ) + if (!double.IsNaN(smallMinWidth) || !double.IsNaN(smallMinHeight) || + !double.IsNaN(mediumMinWidth) || !double.IsNaN(mediumMinHeight) || + !double.IsNaN(largeMinWidth) || !double.IsNaN(largeMinHeight)) { - SetSmallMinWidth( smallMinWidth ); - SetSmallMinHeight( smallMinHeight ); + SetSmallMinWidth(smallMinWidth); + SetSmallMinHeight(smallMinHeight); - SetMediumMinWidth( mediumMinWidth ); - SetMediumMinHeight( mediumMinHeight ); + SetMediumMinWidth(mediumMinWidth); + SetMediumMinHeight(mediumMinHeight); - SetLargeMinWidth( largeMinWidth ); - SetLargeMinHeight( largeMinHeight ); + SetLargeMinWidth(largeMinWidth); + SetLargeMinHeight(largeMinHeight); } - if ( ToolbarSize == ToolbarSizes.Small ) + if (ToolbarSize == ToolbarSizes.Small) { - SetCurrentMinWidth( GetSmallMinWidth() ); - SetCurrentMinHeight( GetSmallMinHeight() ); + SetCurrentMinWidth(GetSmallMinWidth()); + SetCurrentMinHeight(GetSmallMinHeight()); } - else if ( ToolbarSize == ToolbarSizes.Large ) + else if (ToolbarSize == ToolbarSizes.Large) { - SetCurrentMinWidth( GetLargeMinWidth() ); - SetCurrentMinHeight( GetLargeMinHeight() ); + SetCurrentMinWidth(GetLargeMinWidth()); + SetCurrentMinHeight(GetLargeMinHeight()); } else { - SetCurrentMinWidth( GetMediumMinWidth() ); - SetCurrentMinHeight( GetMediumMinHeight() ); + SetCurrentMinWidth(GetMediumMinWidth()); + SetCurrentMinHeight(GetMediumMinHeight()); } } @@ -304,7 +304,7 @@ private void UpdateMinSizesFromResources() /// private void UpdatePrivateItemList(ToolbarItemList newList) { - SetToolbarItemsList( newList ); + SetToolbarItemsList(newList); } @@ -315,7 +315,7 @@ private void UpdatePrivateItemList(ToolbarItemList newList) /// private void UpdatePrivateItemOverflowList(ToolbarItemOverflowList newOverflowList) { - SetToolbarItemsOverflowList( newOverflowList ); + SetToolbarItemsOverflowList(newOverflowList); } #endregion @@ -328,7 +328,7 @@ private void UpdatePrivateItemOverflowList(ToolbarItemOverflowList newOverflowLi /// private void ItemsChanged(IList newItems) { - UpdateItems( newItems ); + UpdateItems(newItems); } @@ -339,7 +339,7 @@ private void ItemsChanged(IList newItems) /// private void ItemTemplateChanged(DataTemplate newDataTemplate) { - UpdateItemTemplate( newDataTemplate ); + UpdateItemTemplate(newDataTemplate); } @@ -350,7 +350,7 @@ private void ItemTemplateChanged(DataTemplate newDataTemplate) /// private void ToolbarSizeChanged(ToolbarSizes newToolbarSize) { - UpdateToolbarSize( newToolbarSize ); + UpdateToolbarSize(newToolbarSize); } @@ -361,7 +361,7 @@ private void ToolbarSizeChanged(ToolbarSizes newToolbarSize) /// private void PrivateItemListChanged(ToolbarItemList newList) { - UpdatePrivateItemList( newList ); + UpdatePrivateItemList(newList); } @@ -372,7 +372,7 @@ private void PrivateItemListChanged(ToolbarItemList newList) /// private void PrivateItemOverflowListChanged(ToolbarItemOverflowList newOverflowList) { - UpdatePrivateItemOverflowList( newOverflowList ); + UpdatePrivateItemOverflowList(newOverflowList); } #endregion @@ -390,18 +390,18 @@ private void SortItemsByOverflowBehavior(ToolbarItem item) /// Then we pass that item through additional sorting and /// then add the relevant control to the lists. /// - if ( item != null ) + if (item != null) { - if ( item.OverflowBehavior == OverflowBehaviors.Always ) + if (item.OverflowBehavior == OverflowBehaviors.Always) { - AddItemToOverflowList( SortByItemTypeForOverflowItemList( item ) ); + AddItemToOverflowList(SortByItemTypeForOverflowItemList(item)); } else { /// Not sure if we check for space at this point, or /// When we are adding items to the Private ItemList /// - if ( item.OverflowBehavior == OverflowBehaviors.Never ) + if (item.OverflowBehavior == OverflowBehaviors.Never) { /// Not sure if we need to behave differently at /// this stage for the items, but we can do if @@ -414,7 +414,7 @@ private void SortItemsByOverflowBehavior(ToolbarItem item) //AddItemToItemList( SortByItemTypeForItemList( item ) ); } - AddItemToItemList( SortByItemTypeForItemList( item ) ); + AddItemToItemList(SortByItemTypeForItemList(item)); } } } @@ -428,11 +428,11 @@ private void SortItemsByOverflowBehavior(ToolbarItem item) /// private IToolbarItemSet SortByItemTypeForItemList(ToolbarItem item) { - switch ( item.ItemType ) + switch (item.ItemType) { case ToolbarItemTypes.Button: // Add ToolbarButton - return CreateToolbarButton( item.Label , item.ThemedIcon , GetCurrentMinWidth() , GetCurrentMinHeight() , item.IconSize ); + return CreateToolbarButton(item.Label, item.ThemedIcon, GetCurrentMinWidth(), GetCurrentMinHeight(), item.IconSize); case ToolbarItemTypes.FlyoutButton: // Add ToolbarFlyoutButton @@ -448,7 +448,7 @@ private IToolbarItemSet SortByItemTypeForItemList(ToolbarItem item) case ToolbarItemTypes.ToggleButton: // Add ToolbarToggleButton - return CreateToolbarToggleButton( item.Label , item.ThemedIcon , GetCurrentMinWidth() , GetCurrentMinHeight() , item.IconSize , item.IsChecked ); + return CreateToolbarToggleButton(item.Label, item.ThemedIcon, GetCurrentMinWidth(), GetCurrentMinHeight(), item.IconSize, item.IsChecked); case ToolbarItemTypes.Separator: // Add ToolbarToggleButton @@ -472,7 +472,7 @@ private IToolbarItemSet SortByItemTypeForItemList(ToolbarItem item) /// private IToolbarOverflowItemSet SortByItemTypeForOverflowItemList(ToolbarItem item) { - switch ( item.ItemType ) + switch (item.ItemType) { case ToolbarItemTypes.Button: // Add MenuFlyoutItemEx @@ -528,47 +528,51 @@ private void PopulateItemsSourceForItemsRepeater() ItemsRepeater itemsRepeater = GetItemsRepeater(); - foreach ( ToolbarItem item in GetToolbarItemsList() ) + foreach (ToolbarItem item in GetToolbarItemsList()) { /// We can get the AvailableSize /// - double availableSize = GetAvailableSize(); + double availableSize = GetAvailableSize(); ObservableCollection itemsSource = new ObservableCollection(); /// Then we create the ToolbarButton, ToolbarSeparator, ToolbarToggleButton etc /// for each item /// - if ( item.ItemType == ToolbarItemTypes.Button ) + if (item.ItemType == ToolbarItemTypes.Button) { //Add a ToolbarButton to the ItemsSource for the ItemsRepeaterPartName - itemsSource.Add( new ToolbarButton - { - Label = item.Label , - ThemedIcon = item.ThemedIcon , Command = item.Command , - CommandParameter = item.CommandParameter , + itemsSource.Add(new ToolbarButton + { + Label = item.Label, + ThemedIcon = item.ThemedIcon, + Command = item.Command, + CommandParameter = item.CommandParameter, IconSize = item.IconSize, - } ); - }; + }); + } + ; - if ( item.ItemType == ToolbarItemTypes.ToggleButton ) + if (item.ItemType == ToolbarItemTypes.ToggleButton) { //Add a ToolbarToggleButton to the ItemsSource for the ItemsRepeaterPartName - itemsSource.Add( new ToolbarToggleButton + itemsSource.Add(new ToolbarToggleButton { - Label = item.Label , - ThemedIcon = item.ThemedIcon , - Command = item.Command , - CommandParameter = item.CommandParameter , - IconSize = item.IconSize , - } ); - }; - - if ( item.ItemType == ToolbarItemTypes.Separator ) + Label = item.Label, + ThemedIcon = item.ThemedIcon, + Command = item.Command, + CommandParameter = item.CommandParameter, + IconSize = item.IconSize, + }); + } + ; + + if (item.ItemType == ToolbarItemTypes.Separator) { //Add a ToolbarSeparator to the ItemsSource for the ItemsRepeaterPartName //itemsSource.Add( new ToolbarSeparator ); - }; + } + ; /// etc //SetAvailableSize( availableSize - item.Width ); @@ -579,11 +583,11 @@ private void PopulateItemsSourceForItemsRepeater() itemsRepeater.ItemsSource = itemsSource; } - /// We do this for each item until there is no more space - /// available, then we check its OverflowBehavior and move - /// it if neccessary. + /// We do this for each item until there is no more space + /// available, then we check its OverflowBehavior and move + /// it if neccessary. - } + } @@ -594,17 +598,17 @@ private void PopulateItemsSourceForOverflowMenu() /// is what we need to add to the Overflow Menu /// - foreach ( ToolbarItem item in GetToolbarItemsOverflowList() ) + foreach (ToolbarItem item in GetToolbarItemsOverflowList()) { - if ( item != null ) + if (item != null) { - if ( item.ItemType != ToolbarItemTypes.Separator ) - { + if (item.ItemType != ToolbarItemTypes.Separator) + { MenuFlyoutSeparator menuFlyoutSeparator = new MenuFlyoutSeparator(); /// OverflowMenuFlyout.AddMenuItem( menuFlyoutSeparator ); } - if ( item.ItemType != ToolbarItemTypes.FlyoutButton ) + if (item.ItemType != ToolbarItemTypes.FlyoutButton) { MenuFlyoutSubItem menuFlyoutSubItem = new MenuFlyoutSubItem(); menuFlyoutSubItem.Text = item.Label; @@ -615,13 +619,13 @@ private void PopulateItemsSourceForOverflowMenu() /// We will need to make child menu items for the /// ToolbarItem's flyout items. /// - + /// OverflowMenuFlyout.AddMenuItem( menuFlyoutSubItem ); } - if ( item.ItemType != ToolbarItemTypes.Button ) + if (item.ItemType != ToolbarItemTypes.Button) { - MenuFlyoutItem menuFlyoutItem= new MenuFlyoutItem(); + MenuFlyoutItem menuFlyoutItem = new MenuFlyoutItem(); //MenuFlyoutItemEx menuFlyoutItemEx = new MenuFlyoutItemEx(); menuFlyoutItem.Text = item.Label; menuFlyoutItem.Command = item.Command; @@ -633,7 +637,7 @@ private void PopulateItemsSourceForOverflowMenu() /// OverflowMenuFlyout.AddMenuItem( menuFlyoutSeparator ); } - if ( item.ItemType != ToolbarItemTypes.ToggleButton ) + if (item.ItemType != ToolbarItemTypes.ToggleButton) { ToggleMenuFlyoutItem menuToggleItem = new ToggleMenuFlyoutItem(); //ToggleMenuFlyoutItemEx menuToggleItemEx = new ToggleMenuFlyoutItemEx(); @@ -655,15 +659,15 @@ private void PopulateItemsSourceForOverflowMenu() #region Create Elements - private ToolbarButton CreateToolbarButton(string label , Style iconStyle , double minWidth , double minHeight , double iconSize) + private ToolbarButton CreateToolbarButton(string label, Style iconStyle, double minWidth, double minHeight, double iconSize) { ToolbarButton createdButton = new ToolbarButton { - Label = label , - ThemedIcon = iconStyle , - MinWidth = minWidth , - MinHeight = minHeight , - IconSize = iconSize , + Label = label, + ThemedIcon = iconStyle, + MinWidth = minWidth, + MinHeight = minHeight, + IconSize = iconSize, }; return createdButton; @@ -671,16 +675,16 @@ private ToolbarButton CreateToolbarButton(string label , Style iconStyle , doubl - private ToolbarToggleButton CreateToolbarToggleButton(string label , Style iconStyle , double minWidth , double minHeight , double iconSize , bool isChecked) + private ToolbarToggleButton CreateToolbarToggleButton(string label, Style iconStyle, double minWidth, double minHeight, double iconSize, bool isChecked) { ToolbarToggleButton createdToggleButton = new ToolbarToggleButton { - Label = label , - ThemedIcon = iconStyle , - MinWidth = minWidth , - MinHeight = minHeight , - IconSize = iconSize , - IsChecked = isChecked , + Label = label, + ThemedIcon = iconStyle, + MinWidth = minWidth, + MinHeight = minHeight, + IconSize = iconSize, + IsChecked = isChecked, }; return createdToggleButton; @@ -705,10 +709,10 @@ private ToolbarSeparator CreateToolbarSeparator() /// private void AddItemToOverflowList(IToolbarOverflowItemSet item) { - if ( item != null && _tempToolbarItemsOverflowList != null) + if (item != null && _tempToolbarItemsOverflowList != null) { - _tempToolbarItemsOverflowList.Add( item ); - Debug.Write( "<- Added " + item.ToString() + " to OverflowList " + Environment.NewLine ); + _tempToolbarItemsOverflowList.Add(item); + Debug.Write("<- Added " + item.ToString() + " to OverflowList " + Environment.NewLine); } } @@ -720,10 +724,10 @@ private void AddItemToOverflowList(IToolbarOverflowItemSet item) /// private void AddItemToItemList(IToolbarItemSet item) { - if ( item != null && _tempToolbarItemsList != null ) + if (item != null && _tempToolbarItemsList != null) { - _tempToolbarItemsList.Add( item ); - Debug.Write( "Added " + item.ToString() + " to ItemList " + Environment.NewLine ); + _tempToolbarItemsList.Add(item); + Debug.Write("Added " + item.ToString() + " to ItemList " + Environment.NewLine); } } diff --git a/src/Files.App.Controls/Toolbar/ToolbarButton/ToolbarButton.Constants.cs b/src/Files.App.Controls/Toolbar/ToolbarButton/ToolbarButton.Constants.cs index 97119d0b8a9a..60a0a9606f76 100644 --- a/src/Files.App.Controls/Toolbar/ToolbarButton/ToolbarButton.Constants.cs +++ b/src/Files.App.Controls/Toolbar/ToolbarButton/ToolbarButton.Constants.cs @@ -4,34 +4,34 @@ namespace Files.App.Controls { // TemplateParts - [TemplatePart( Name = ThemedIconPartName , Type = typeof( ThemedIcon ) )] - [TemplatePart( Name = ContentPresenterPartName , Type = typeof( ContentPresenter ) )] + [TemplatePart(Name = ThemedIconPartName, Type = typeof(ThemedIcon))] + [TemplatePart(Name = ContentPresenterPartName, Type = typeof(ContentPresenter))] // VisualStates - [TemplateVisualState( Name = NormalStateName , GroupName = CommonStatesGroupName )] - [TemplateVisualState( Name = PointerOverStateName , GroupName = CommonStatesGroupName )] - [TemplateVisualState( Name = PressedStateName , GroupName = CommonStatesGroupName )] - [TemplateVisualState( Name = DisabledStateName , GroupName = CommonStatesGroupName )] + [TemplateVisualState(Name = NormalStateName, GroupName = CommonStatesGroupName)] + [TemplateVisualState(Name = PointerOverStateName, GroupName = CommonStatesGroupName)] + [TemplateVisualState(Name = PressedStateName, GroupName = CommonStatesGroupName)] + [TemplateVisualState(Name = DisabledStateName, GroupName = CommonStatesGroupName)] - [TemplateVisualState( Name = HasContentStateName , GroupName = ContentStatesGroupName )] - [TemplateVisualState( Name = HasNoContentStateName , GroupName = ContentStatesGroupName )] + [TemplateVisualState(Name = HasContentStateName, GroupName = ContentStatesGroupName)] + [TemplateVisualState(Name = HasNoContentStateName, GroupName = ContentStatesGroupName)] public partial class ToolbarButton : Button, IToolbarItemSet { // TemplatePart Names - internal const string ThemedIconPartName = "PART_ThemedIcon"; - internal const string ContentPresenterPartName = "PART_ContentPresenter"; + internal const string ThemedIconPartName = "PART_ThemedIcon"; + internal const string ContentPresenterPartName = "PART_ContentPresenter"; // VisualState Group Names - internal const string CommonStatesGroupName = "CommonStates"; - internal const string ContentStatesGroupName = "ContentStates"; + internal const string CommonStatesGroupName = "CommonStates"; + internal const string ContentStatesGroupName = "ContentStates"; // VisualState Names - internal const string NormalStateName = "Normal"; - internal const string PointerOverStateName = "PointerOver"; - internal const string PressedStateName = "Pressed"; - internal const string DisabledStateName = "Disabled"; + internal const string NormalStateName = "Normal"; + internal const string PointerOverStateName = "PointerOver"; + internal const string PressedStateName = "Pressed"; + internal const string DisabledStateName = "Disabled"; - internal const string HasContentStateName = "HasContent"; - internal const string HasNoContentStateName = "HasNoContent"; + internal const string HasContentStateName = "HasContent"; + internal const string HasNoContentStateName = "HasNoContent"; } } diff --git a/src/Files.App.Controls/Toolbar/ToolbarButton/ToolbarButton.Properties.cs b/src/Files.App.Controls/Toolbar/ToolbarButton/ToolbarButton.Properties.cs index 0022f2961ec0..676376686533 100644 --- a/src/Files.App.Controls/Toolbar/ToolbarButton/ToolbarButton.Properties.cs +++ b/src/Files.App.Controls/Toolbar/ToolbarButton/ToolbarButton.Properties.cs @@ -24,17 +24,17 @@ public partial class ToolbarButton : Button, IToolbarItemSet /// public string Label { - get => (string)GetValue( LabelProperty ); - set => SetValue( LabelProperty , value ); + get => (string)GetValue(LabelProperty); + set => SetValue(LabelProperty, value); } - protected virtual void OnLabelPropertyChanged(string oldValue , string newValue) + protected virtual void OnLabelPropertyChanged(string oldValue, string newValue) { - if ( oldValue != newValue ) + if (oldValue != newValue) { - LabelChanged( newValue ); + LabelChanged(newValue); } } @@ -59,17 +59,17 @@ protected virtual void OnLabelPropertyChanged(string oldValue , string newValue) /// public Style ThemedIcon { - get => (Style)GetValue( ThemedIconProperty ); - set => SetValue( ThemedIconProperty , value ); + get => (Style)GetValue(ThemedIconProperty); + set => SetValue(ThemedIconProperty, value); } - protected virtual void OnThemedIconPropertyChanged(Style oldValue , Style newValue) + protected virtual void OnThemedIconPropertyChanged(Style oldValue, Style newValue) { - if ( newValue != oldValue ) + if (newValue != oldValue) { - ThemedIconChanged( newValue ); + ThemedIconChanged(newValue); } } @@ -91,17 +91,17 @@ protected virtual void OnThemedIconPropertyChanged(Style oldValue , Style newVal /// public double IconSize { - get => (double)GetValue( IconSizeProperty ); - set => SetValue( IconSizeProperty , value ); + get => (double)GetValue(IconSizeProperty); + set => SetValue(IconSizeProperty, value); } - protected virtual void OnIconSizePropertyChanged(double oldValue , double newValue) + protected virtual void OnIconSizePropertyChanged(double oldValue, double newValue) { - if ( newValue != oldValue ) + if (newValue != oldValue) { - IconSizeChanged( newValue ); + IconSizeChanged(newValue); } } @@ -110,12 +110,12 @@ protected virtual void OnIconSizePropertyChanged(double oldValue , double newVal #region ButtonBase Events /// - protected override void OnContentChanged(object oldContent , object newContent) + protected override void OnContentChanged(object oldContent, object newContent) { - if ( newContent != oldContent ) + if (newContent != oldContent) { - ContentChanged( newContent ); - base.OnContentChanged( oldContent , newContent ); + ContentChanged(newContent); + base.OnContentChanged(oldContent, newContent); } } diff --git a/src/Files.App.Controls/Toolbar/ToolbarButton/ToolbarButton.cs b/src/Files.App.Controls/Toolbar/ToolbarButton/ToolbarButton.cs index a2ed552682d7..5561c9ca41b7 100644 --- a/src/Files.App.Controls/Toolbar/ToolbarButton/ToolbarButton.cs +++ b/src/Files.App.Controls/Toolbar/ToolbarButton/ToolbarButton.cs @@ -10,17 +10,17 @@ public partial class ToolbarButton : Button, IToolbarItemSet public ToolbarButton() { - DefaultStyleKey = typeof( ToolbarButton ); + DefaultStyleKey = typeof(ToolbarButton); } /// protected override void OnApplyTemplate() { - RegisterPropertyChangedCallback( ContentProperty , OnContentChanged ); + RegisterPropertyChangedCallback(ContentProperty, OnContentChanged); base.OnApplyTemplate(); - UpdateContentStates( CheckHasContent() ); + UpdateContentStates(CheckHasContent()); } #region Private Getters @@ -59,7 +59,7 @@ private void UpdateLabel(string newLabel) private void UpdateContent(object newContent) { - if ( CheckHasContent() == false ) + if (CheckHasContent() == false) { // We clear the content } @@ -68,7 +68,7 @@ private void UpdateContent(object newContent) // We make sure the content displays } - UpdateContentStates( CheckHasContent() ); + UpdateContentStates(CheckHasContent()); } @@ -80,13 +80,13 @@ private void UpdateContent(object newContent) /// private void UpdateContentStates(bool hasContent) { - if ( hasContent ) + if (hasContent) { - VisualStateManager.GoToState( this , HasContentStateName , true ); + VisualStateManager.GoToState(this, HasContentStateName, true); } else { - VisualStateManager.GoToState( this , HasNoContentStateName , true ); + VisualStateManager.GoToState(this, HasNoContentStateName, true); } } @@ -128,7 +128,7 @@ private void UpdateIconSize(double newSize) /// private void LabelChanged(string newLabel) { - UpdateLabel( newLabel ); + UpdateLabel(newLabel); } @@ -139,7 +139,7 @@ private void LabelChanged(string newLabel) /// private void ThemedIconChanged(Style newStyle) { - UpdateThemedIcon( newStyle ); + UpdateThemedIcon(newStyle); } @@ -148,8 +148,8 @@ private void ThemedIconChanged(Style newStyle) /// /// private void IconSizeChanged(double newSize) - { - UpdateIconSize( newSize ); + { + UpdateIconSize(newSize); } #endregion @@ -163,16 +163,16 @@ private void IconSizeChanged(double newSize) /// private void ContentChanged(object newContent) { - if ( newContent != null ) + if (newContent != null) { - SetHasContent( true ); + SetHasContent(true); } - else + else { - SetHasContent( false ); + SetHasContent(false); } - UpdateContent( newContent ); + UpdateContent(newContent); } #endregion diff --git a/src/Files.App.Controls/Toolbar/ToolbarFlyoutButton/ToolbarFlyoutButton.cs b/src/Files.App.Controls/Toolbar/ToolbarFlyoutButton/ToolbarFlyoutButton.cs index 5517b8b76800..d0d159887861 100644 --- a/src/Files.App.Controls/Toolbar/ToolbarFlyoutButton/ToolbarFlyoutButton.cs +++ b/src/Files.App.Controls/Toolbar/ToolbarFlyoutButton/ToolbarFlyoutButton.cs @@ -7,7 +7,7 @@ public partial class ToolbarFlyoutButton : DropDownButton, IToolbarItemSet { public ToolbarFlyoutButton() { - this.DefaultStyleKey = typeof( ToolbarFlyoutButton ); + this.DefaultStyleKey = typeof(ToolbarFlyoutButton); } protected override void OnApplyTemplate() diff --git a/src/Files.App.Controls/Toolbar/ToolbarItem/ToolbarItem.Properties.cs b/src/Files.App.Controls/Toolbar/ToolbarItem/ToolbarItem.Properties.cs index cf710f2ea8ef..56a81de49cc3 100644 --- a/src/Files.App.Controls/Toolbar/ToolbarItem/ToolbarItem.Properties.cs +++ b/src/Files.App.Controls/Toolbar/ToolbarItem/ToolbarItem.Properties.cs @@ -2,7 +2,6 @@ // Licensed under the MIT License. using Microsoft.UI.Xaml.Input; -using Files.App.Controls.Primitives; namespace Files.App.Controls { @@ -27,17 +26,17 @@ public partial class ToolbarItem : DependencyObject /// public ToolbarItemTypes ItemType { - get => (ToolbarItemTypes)GetValue( ItemTypeProperty ); - set => SetValue( ItemTypeProperty , value ); + get => (ToolbarItemTypes)GetValue(ItemTypeProperty); + set => SetValue(ItemTypeProperty, value); } - protected virtual void OnItemTypePropertyChanged(ToolbarItemTypes oldValue , ToolbarItemTypes newValue) + protected virtual void OnItemTypePropertyChanged(ToolbarItemTypes oldValue, ToolbarItemTypes newValue) { - if ( oldValue != newValue ) + if (oldValue != newValue) { - ItemTypeChanged( newValue ); + ItemTypeChanged(newValue); } } @@ -62,17 +61,17 @@ protected virtual void OnItemTypePropertyChanged(ToolbarItemTypes oldValue , Too /// public OverflowBehaviors OverflowBehavior { - get => (OverflowBehaviors)GetValue( OverflowBehaviorProperty ); - set => SetValue( OverflowBehaviorProperty , value ); + get => (OverflowBehaviors)GetValue(OverflowBehaviorProperty); + set => SetValue(OverflowBehaviorProperty, value); } - protected virtual void OnOverflowBehaviorPropertyChanged(OverflowBehaviors oldValue , OverflowBehaviors newValue) + protected virtual void OnOverflowBehaviorPropertyChanged(OverflowBehaviors oldValue, OverflowBehaviors newValue) { - if ( newValue != oldValue ) + if (newValue != oldValue) { - OverflowBehaviorChanged( newValue ); + OverflowBehaviorChanged(newValue); } } @@ -97,17 +96,17 @@ protected virtual void OnOverflowBehaviorPropertyChanged(OverflowBehaviors oldVa /// public string Label { - get => (string)GetValue( LabelProperty ); - set => SetValue( LabelProperty , value ); + get => (string)GetValue(LabelProperty); + set => SetValue(LabelProperty, value); } - protected virtual void OnLabelPropertyChanged(string oldValue , string newValue) + protected virtual void OnLabelPropertyChanged(string oldValue, string newValue) { - if ( newValue != oldValue ) - { - LabelChanged( newValue ); + if (newValue != oldValue) + { + LabelChanged(newValue); } } @@ -117,26 +116,26 @@ protected virtual void OnLabelPropertyChanged(string oldValue , string newValue) public static readonly DependencyProperty SubItemsProperty = DependencyProperty.Register( - nameof( SubItems ), - typeof( IList ), + nameof(SubItems), + typeof(IList), typeof(ToolbarItem), - new PropertyMetadata( new List(), (d, e) => ((ToolbarItem)d).OnSubItemsPropertyChanged(( IList )e.OldValue, ( IList )e.NewValue))); + new PropertyMetadata(new List(), (d, e) => ((ToolbarItem)d).OnSubItemsPropertyChanged((IList)e.OldValue, (IList)e.NewValue))); public IList SubItems { - get => (IList)GetValue( SubItemsProperty ); - set => SetValue( SubItemsProperty , value ); + get => (IList)GetValue(SubItemsProperty); + set => SetValue(SubItemsProperty, value); } - protected virtual void OnSubItemsPropertyChanged(IList oldItems , IList newItems) + protected virtual void OnSubItemsPropertyChanged(IList oldItems, IList newItems) { - if ( newItems != oldItems ) + if (newItems != oldItems) { - SubItemsChanged( newItems ); + SubItemsChanged(newItems); } } @@ -161,17 +160,17 @@ protected virtual void OnSubItemsPropertyChanged(IList oldItems , I /// public object Content { - get => (object)GetValue( ContentProperty ); - set => SetValue( ContentProperty , value ); + get => (object)GetValue(ContentProperty); + set => SetValue(ContentProperty, value); } - protected virtual void OnContentPropertyChanged(object oldValue , object newValue) + protected virtual void OnContentPropertyChanged(object oldValue, object newValue) { - if ( newValue != oldValue ) + if (newValue != oldValue) { - ContentChanged( newValue ); + ContentChanged(newValue); } } @@ -196,17 +195,17 @@ protected virtual void OnContentPropertyChanged(object oldValue , object newValu /// public Style ThemedIcon { - get => (Style)GetValue( ThemedIconProperty ); - set => SetValue( ThemedIconProperty , value ); + get => (Style)GetValue(ThemedIconProperty); + set => SetValue(ThemedIconProperty, value); } - protected virtual void OnThemedIconPropertyChanged(Style oldValue , Style newValue) + protected virtual void OnThemedIconPropertyChanged(Style oldValue, Style newValue) { - if ( newValue != oldValue ) + if (newValue != oldValue) { - ThemedIconChanged( newValue ); + ThemedIconChanged(newValue); } } @@ -228,17 +227,17 @@ protected virtual void OnThemedIconPropertyChanged(Style oldValue , Style newVal /// public double IconSize { - get => (double)GetValue( IconSizeProperty ); - set => SetValue( IconSizeProperty , value ); + get => (double)GetValue(IconSizeProperty); + set => SetValue(IconSizeProperty, value); } - protected virtual void OnIconSizePropertyChanged(double oldValue , double newValue) + protected virtual void OnIconSizePropertyChanged(double oldValue, double newValue) { - if ( newValue != oldValue ) + if (newValue != oldValue) { - IconSizeChanged( newValue ); + IconSizeChanged(newValue); } } @@ -263,17 +262,17 @@ protected virtual void OnIconSizePropertyChanged(double oldValue , double newVal /// public bool IsChecked { - get => (bool)GetValue( IsCheckedProperty ); - set => SetValue( IsCheckedProperty , value ); + get => (bool)GetValue(IsCheckedProperty); + set => SetValue(IsCheckedProperty, value); } - protected virtual void OnIsCheckedPropertyChanged(bool oldValue , bool newValue) + protected virtual void OnIsCheckedPropertyChanged(bool oldValue, bool newValue) { - if ( newValue != oldValue ) + if (newValue != oldValue) { - IsCheckedChanged( newValue ); + IsCheckedChanged(newValue); } } @@ -298,17 +297,17 @@ protected virtual void OnIsCheckedPropertyChanged(bool oldValue , bool newValue) /// public string KeyboardAcceleratorTextOverride { - get => (string)GetValue( KeyboardAcceleratorTextOverrideProperty ); - set => SetValue( KeyboardAcceleratorTextOverrideProperty , value ); + get => (string)GetValue(KeyboardAcceleratorTextOverrideProperty); + set => SetValue(KeyboardAcceleratorTextOverrideProperty, value); } - protected virtual void OnKeyboardAcceleratorTextOverridePropertyChanged(string oldValue , string newValue) + protected virtual void OnKeyboardAcceleratorTextOverridePropertyChanged(string oldValue, string newValue) { - if ( newValue != oldValue ) + if (newValue != oldValue) { - KeyboardAcceleratorTextOverrideChanged( newValue ); + KeyboardAcceleratorTextOverrideChanged(newValue); } } @@ -333,17 +332,17 @@ protected virtual void OnKeyboardAcceleratorTextOverridePropertyChanged(string o /// public string GroupName { - get => (string)GetValue( GroupNameProperty ); - set => SetValue( GroupNameProperty , value ); + get => (string)GetValue(GroupNameProperty); + set => SetValue(GroupNameProperty, value); } - protected virtual void OnGroupNamePropertyChanged(string oldValue , string newValue) + protected virtual void OnGroupNamePropertyChanged(string oldValue, string newValue) { - if ( newValue != oldValue ) + if (newValue != oldValue) { - GroupNameChanged( newValue ); + GroupNameChanged(newValue); } } @@ -368,17 +367,17 @@ protected virtual void OnGroupNamePropertyChanged(string oldValue , string newVa /// public XamlUICommand Command { - get => (XamlUICommand)GetValue( CommandProperty ); - set => SetValue( CommandProperty , value ); + get => (XamlUICommand)GetValue(CommandProperty); + set => SetValue(CommandProperty, value); } - protected virtual void OnCommandPropertyChanged(XamlUICommand oldValue , XamlUICommand newValue) + protected virtual void OnCommandPropertyChanged(XamlUICommand oldValue, XamlUICommand newValue) { - if ( newValue != oldValue ) + if (newValue != oldValue) { - CommandChanged( newValue ); + CommandChanged(newValue); } } @@ -403,17 +402,17 @@ protected virtual void OnCommandPropertyChanged(XamlUICommand oldValue , XamlUIC /// public object CommandParameter { - get => (object)GetValue( CommandParameterProperty ); - set => SetValue( CommandParameterProperty , value ); + get => (object)GetValue(CommandParameterProperty); + set => SetValue(CommandParameterProperty, value); } - protected virtual void OnCommandParameterPropertyChanged(object oldValue , object newValue) + protected virtual void OnCommandParameterPropertyChanged(object oldValue, object newValue) { - if ( newValue != oldValue ) + if (newValue != oldValue) { - CommandParameterChanged( newValue ); + CommandParameterChanged(newValue); } } diff --git a/src/Files.App.Controls/Toolbar/ToolbarItem/ToolbarItem.cs b/src/Files.App.Controls/Toolbar/ToolbarItem/ToolbarItem.cs index 5e8bdb6421ec..6709a474c8eb 100644 --- a/src/Files.App.Controls/Toolbar/ToolbarItem/ToolbarItem.cs +++ b/src/Files.App.Controls/Toolbar/ToolbarItem/ToolbarItem.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Controls.Primitives; using Microsoft.UI.Xaml.Input; namespace Files.App.Controls @@ -13,7 +12,7 @@ namespace Files.App.Controls /// public partial class ToolbarItem : DependencyObject { - # region Update Item Properties + #region Update Item Properties private void UpdateItemType(ToolbarItemTypes newItemType) { @@ -54,7 +53,7 @@ private void UpdateItemType(ToolbarItemTypes newItemType) private void UpdateLabel(string newLabel) - { + { /// /// Updates the internal item's Text or Label /// property as it changes. @@ -68,7 +67,7 @@ private void UpdateLabel(string newLabel) /// /// private void UpdateSubItems(IList newItems) - { + { } @@ -198,21 +197,21 @@ private void UpdateIsChecked(bool isChecked) private void ItemTypeChanged(ToolbarItemTypes newItemType) { - UpdateItemType( newItemType ); + UpdateItemType(newItemType); } private void OverflowBehaviorChanged(OverflowBehaviors newOverflowBehavior) { - UpdateOverflowBehavior( newOverflowBehavior ); + UpdateOverflowBehavior(newOverflowBehavior); } - private void LabelChanged(string newLabel) + private void LabelChanged(string newLabel) { - UpdateLabel( newLabel ); + UpdateLabel(newLabel); } @@ -224,49 +223,49 @@ private void LabelChanged(string newLabel) /// private void SubItemsChanged(IList newItems) { - UpdateSubItems( newItems ); + UpdateSubItems(newItems); } - private void ContentChanged(object newContent) + private void ContentChanged(object newContent) { - UpdateContent( newContent ); + UpdateContent(newContent); } private void ThemedIconChanged(Style newStyle) { - UpdateThemedIcon( newStyle ); + UpdateThemedIcon(newStyle); } - private void KeyboardAcceleratorTextOverrideChanged( string newKeyboardAcceleratorText) + private void KeyboardAcceleratorTextOverrideChanged(string newKeyboardAcceleratorText) { - UpdateKeyboardAcceleratorTextOverride( newKeyboardAcceleratorText ); + UpdateKeyboardAcceleratorTextOverride(newKeyboardAcceleratorText); } private void GroupNameChanged(string newGroupName) { - UpdateGroupName( newGroupName ); + UpdateGroupName(newGroupName); } private void CommandChanged(XamlUICommand newCommand) { - UpdateCommand( newCommand ); + UpdateCommand(newCommand); } private void CommandParameterChanged(object newCommandParameter) { - UpdateCommandParameter( newCommandParameter ); + UpdateCommandParameter(newCommandParameter); } @@ -276,7 +275,7 @@ private void CommandParameterChanged(object newCommandParameter) /// private void IconSizeChanged(double newSize) { - UpdateIconSize( newSize ); + UpdateIconSize(newSize); } @@ -286,7 +285,7 @@ private void IconSizeChanged(double newSize) /// private void IsCheckedChanged(bool isChecked) { - UpdateIsChecked( isChecked ); + UpdateIsChecked(isChecked); } #endregion diff --git a/src/Files.App.Controls/Toolbar/ToolbarRadioButton/ToolbarRadioButton.cs b/src/Files.App.Controls/Toolbar/ToolbarRadioButton/ToolbarRadioButton.cs index 5e111a32d64b..7760b0b869fc 100644 --- a/src/Files.App.Controls/Toolbar/ToolbarRadioButton/ToolbarRadioButton.cs +++ b/src/Files.App.Controls/Toolbar/ToolbarRadioButton/ToolbarRadioButton.cs @@ -7,7 +7,7 @@ public partial class ToolbarRadioButton : RadioButton, IToolbarItemSet { public ToolbarRadioButton() { - DefaultStyleKey = typeof( ToolbarRadioButton ); + DefaultStyleKey = typeof(ToolbarRadioButton); } protected override void OnApplyTemplate() diff --git a/src/Files.App.Controls/Toolbar/ToolbarSeparator/ToolbarSeparator.cs b/src/Files.App.Controls/Toolbar/ToolbarSeparator/ToolbarSeparator.cs index 7cd4d57acf0f..b8d7290522e3 100644 --- a/src/Files.App.Controls/Toolbar/ToolbarSeparator/ToolbarSeparator.cs +++ b/src/Files.App.Controls/Toolbar/ToolbarSeparator/ToolbarSeparator.cs @@ -3,7 +3,7 @@ namespace Files.App.Controls { - public partial class ToolbarSeparator : Control , IToolbarItemSet + public partial class ToolbarSeparator : Control, IToolbarItemSet { public ToolbarSeparator() { diff --git a/src/Files.App.Controls/Toolbar/ToolbarToggleButton/ToolbarToggleButton.Constants.cs b/src/Files.App.Controls/Toolbar/ToolbarToggleButton/ToolbarToggleButton.Constants.cs index d6c974aff5eb..4e05ae5d6156 100644 --- a/src/Files.App.Controls/Toolbar/ToolbarToggleButton/ToolbarToggleButton.Constants.cs +++ b/src/Files.App.Controls/Toolbar/ToolbarToggleButton/ToolbarToggleButton.Constants.cs @@ -4,54 +4,54 @@ namespace Files.App.Controls { // TemplateParts - [TemplatePart( Name = ThemedIconPartName , Type = typeof( ThemedIcon ) )] - [TemplatePart( Name = ContentPresenterPartName , Type = typeof( ContentPresenter ) )] + [TemplatePart(Name = ThemedIconPartName, Type = typeof(ThemedIcon))] + [TemplatePart(Name = ContentPresenterPartName, Type = typeof(ContentPresenter))] // VisualStates - [TemplateVisualState( Name = NormalStateName , GroupName = CommonStatesGroupName )] - [TemplateVisualState( Name = PointerOverStateName , GroupName = CommonStatesGroupName )] - [TemplateVisualState( Name = PressedStateName , GroupName = CommonStatesGroupName )] - [TemplateVisualState( Name = DisabledStateName , GroupName = CommonStatesGroupName )] - - [TemplateVisualState( Name = CheckedStateName , GroupName = CommonStatesGroupName )] - [TemplateVisualState( Name = CheckedPointerOverStateName , GroupName = CommonStatesGroupName )] - [TemplateVisualState( Name = CheckedPressedStateName , GroupName = CommonStatesGroupName )] - [TemplateVisualState( Name = CheckedDisabledStateName , GroupName = CommonStatesGroupName )] - - [TemplateVisualState( Name = IndeterminateStateName , GroupName = CommonStatesGroupName )] - [TemplateVisualState( Name = IndeterminatePointerOverStateName , GroupName = CommonStatesGroupName )] - [TemplateVisualState( Name = IndeterminatePressedStateName , GroupName = CommonStatesGroupName )] - [TemplateVisualState( Name = IndeterminateDisabledStateName , GroupName = CommonStatesGroupName )] - - [TemplateVisualState( Name = HasContentStateName , GroupName = ContentStatesGroupName )] - [TemplateVisualState( Name = HasNoContentStateName , GroupName = ContentStatesGroupName )] + [TemplateVisualState(Name = NormalStateName, GroupName = CommonStatesGroupName)] + [TemplateVisualState(Name = PointerOverStateName, GroupName = CommonStatesGroupName)] + [TemplateVisualState(Name = PressedStateName, GroupName = CommonStatesGroupName)] + [TemplateVisualState(Name = DisabledStateName, GroupName = CommonStatesGroupName)] + + [TemplateVisualState(Name = CheckedStateName, GroupName = CommonStatesGroupName)] + [TemplateVisualState(Name = CheckedPointerOverStateName, GroupName = CommonStatesGroupName)] + [TemplateVisualState(Name = CheckedPressedStateName, GroupName = CommonStatesGroupName)] + [TemplateVisualState(Name = CheckedDisabledStateName, GroupName = CommonStatesGroupName)] + + [TemplateVisualState(Name = IndeterminateStateName, GroupName = CommonStatesGroupName)] + [TemplateVisualState(Name = IndeterminatePointerOverStateName, GroupName = CommonStatesGroupName)] + [TemplateVisualState(Name = IndeterminatePressedStateName, GroupName = CommonStatesGroupName)] + [TemplateVisualState(Name = IndeterminateDisabledStateName, GroupName = CommonStatesGroupName)] + + [TemplateVisualState(Name = HasContentStateName, GroupName = ContentStatesGroupName)] + [TemplateVisualState(Name = HasNoContentStateName, GroupName = ContentStatesGroupName)] public partial class ToolbarToggleButton : ToggleButton, IToolbarItemSet { // TemplatePart Names - internal const string ThemedIconPartName = "PART_ThemedIcon"; - internal const string ContentPresenterPartName = "PART_ContentPresenter"; + internal const string ThemedIconPartName = "PART_ThemedIcon"; + internal const string ContentPresenterPartName = "PART_ContentPresenter"; // VisualState Group Names - internal const string CommonStatesGroupName = "CommonStates"; - internal const string ContentStatesGroupName = "ContentStates"; + internal const string CommonStatesGroupName = "CommonStates"; + internal const string ContentStatesGroupName = "ContentStates"; // VisualState Names - internal const string NormalStateName = "Normal"; - internal const string PointerOverStateName = "PointerOver"; - internal const string PressedStateName = "Pressed"; - internal const string DisabledStateName = "Disabled"; - - internal const string CheckedStateName = "Checked"; - internal const string CheckedPointerOverStateName = "CheckedPointerOver"; - internal const string CheckedPressedStateName = "CheckedPressed"; - internal const string CheckedDisabledStateName = "CheckedDisabled"; - - internal const string IndeterminateStateName = "Indeterminate"; - internal const string IndeterminatePointerOverStateName = "IndeterminatePointerOver"; - internal const string IndeterminatePressedStateName = "IndeterminatePressed"; - internal const string IndeterminateDisabledStateName = "IndeterminateDisabled"; - - internal const string HasContentStateName = "HasContent"; - internal const string HasNoContentStateName = "HasNoContent"; + internal const string NormalStateName = "Normal"; + internal const string PointerOverStateName = "PointerOver"; + internal const string PressedStateName = "Pressed"; + internal const string DisabledStateName = "Disabled"; + + internal const string CheckedStateName = "Checked"; + internal const string CheckedPointerOverStateName = "CheckedPointerOver"; + internal const string CheckedPressedStateName = "CheckedPressed"; + internal const string CheckedDisabledStateName = "CheckedDisabled"; + + internal const string IndeterminateStateName = "Indeterminate"; + internal const string IndeterminatePointerOverStateName = "IndeterminatePointerOver"; + internal const string IndeterminatePressedStateName = "IndeterminatePressed"; + internal const string IndeterminateDisabledStateName = "IndeterminateDisabled"; + + internal const string HasContentStateName = "HasContent"; + internal const string HasNoContentStateName = "HasNoContent"; } } diff --git a/src/Files.App.Controls/Toolbar/ToolbarToggleButton/ToolbarToggleButton.Properties.cs b/src/Files.App.Controls/Toolbar/ToolbarToggleButton/ToolbarToggleButton.Properties.cs index c0bb0a69c300..1cc13e6bfc52 100644 --- a/src/Files.App.Controls/Toolbar/ToolbarToggleButton/ToolbarToggleButton.Properties.cs +++ b/src/Files.App.Controls/Toolbar/ToolbarToggleButton/ToolbarToggleButton.Properties.cs @@ -24,17 +24,17 @@ public partial class ToolbarToggleButton : ToggleButton, IToolbarItemSet /// public string Label { - get => (string)GetValue( LabelProperty ); - set => SetValue( LabelProperty , value ); + get => (string)GetValue(LabelProperty); + set => SetValue(LabelProperty, value); } - protected virtual void OnLabelPropertyChanged(string oldValue , string newValue) + protected virtual void OnLabelPropertyChanged(string oldValue, string newValue) { - if ( oldValue != newValue ) + if (oldValue != newValue) { - LabelChanged( newValue ); + LabelChanged(newValue); } } @@ -59,17 +59,17 @@ protected virtual void OnLabelPropertyChanged(string oldValue , string newValue) /// public Style ThemedIcon { - get => (Style)GetValue( ThemedIconProperty ); - set => SetValue( ThemedIconProperty , value ); + get => (Style)GetValue(ThemedIconProperty); + set => SetValue(ThemedIconProperty, value); } - protected virtual void OnThemedIconPropertyChanged(Style oldValue , Style newValue) + protected virtual void OnThemedIconPropertyChanged(Style oldValue, Style newValue) { - if ( newValue != oldValue ) + if (newValue != oldValue) { - ThemedIconChanged( newValue ); + ThemedIconChanged(newValue); } } @@ -91,17 +91,17 @@ protected virtual void OnThemedIconPropertyChanged(Style oldValue , Style newVal /// public double IconSize { - get => (double)GetValue( IconSizeProperty ); - set => SetValue( IconSizeProperty , value ); + get => (double)GetValue(IconSizeProperty); + set => SetValue(IconSizeProperty, value); } - protected virtual void OnIconSizePropertyChanged(double oldValue , double newValue) + protected virtual void OnIconSizePropertyChanged(double oldValue, double newValue) { - if ( newValue != oldValue ) + if (newValue != oldValue) { - IconSizeChanged( newValue ); + IconSizeChanged(newValue); } } @@ -110,12 +110,12 @@ protected virtual void OnIconSizePropertyChanged(double oldValue , double newVal #region ButtonBase Events /// - protected override void OnContentChanged(object oldContent , object newContent) + protected override void OnContentChanged(object oldContent, object newContent) { - if ( newContent != oldContent ) + if (newContent != oldContent) { - ContentChanged( newContent ); - base.OnContentChanged( oldContent , newContent ); + ContentChanged(newContent); + base.OnContentChanged(oldContent, newContent); } } diff --git a/src/Files.App.Controls/Toolbar/ToolbarToggleButton/ToolbarToggleButton.cs b/src/Files.App.Controls/Toolbar/ToolbarToggleButton/ToolbarToggleButton.cs index a7331e6954f3..d31356e8a6d6 100644 --- a/src/Files.App.Controls/Toolbar/ToolbarToggleButton/ToolbarToggleButton.cs +++ b/src/Files.App.Controls/Toolbar/ToolbarToggleButton/ToolbarToggleButton.cs @@ -10,16 +10,16 @@ public partial class ToolbarToggleButton : ToggleButton, IToolbarItemSet public ToolbarToggleButton() { - DefaultStyleKey = typeof( ToolbarToggleButton ); + DefaultStyleKey = typeof(ToolbarToggleButton); } protected override void OnApplyTemplate() { - RegisterPropertyChangedCallback( ContentProperty , OnContentChanged ); + RegisterPropertyChangedCallback(ContentProperty, OnContentChanged); base.OnApplyTemplate(); - UpdateContentStates( CheckHasContent() ); + UpdateContentStates(CheckHasContent()); } #region Private Getters @@ -58,7 +58,7 @@ private void UpdateLabel(string newLabel) private void UpdateContent(object newContent) { - if ( CheckHasContent() == false ) + if (CheckHasContent() == false) { // We clear the content } @@ -67,7 +67,7 @@ private void UpdateContent(object newContent) // We make sure the content displays } - UpdateContentStates( CheckHasContent() ); + UpdateContentStates(CheckHasContent()); } @@ -79,13 +79,13 @@ private void UpdateContent(object newContent) /// private void UpdateContentStates(bool hasContent) { - if ( hasContent ) + if (hasContent) { - VisualStateManager.GoToState( this , HasContentStateName , true ); + VisualStateManager.GoToState(this, HasContentStateName, true); } else { - VisualStateManager.GoToState( this , HasNoContentStateName , true ); + VisualStateManager.GoToState(this, HasNoContentStateName, true); } } @@ -127,7 +127,7 @@ private void UpdateIconSize(double newSize) /// private void LabelChanged(string newLabel) { - UpdateLabel( newLabel ); + UpdateLabel(newLabel); } @@ -138,7 +138,7 @@ private void LabelChanged(string newLabel) /// private void ThemedIconChanged(Style newStyle) { - UpdateThemedIcon( newStyle ); + UpdateThemedIcon(newStyle); } @@ -149,7 +149,7 @@ private void ThemedIconChanged(Style newStyle) /// private void IconSizeChanged(double newSize) { - UpdateIconSize( newSize ); + UpdateIconSize(newSize); } #endregion @@ -163,16 +163,16 @@ private void IconSizeChanged(double newSize) /// private void ContentChanged(object newContent) { - if ( newContent != null ) + if (newContent != null) { - SetHasContent( true ); + SetHasContent(true); } else { - SetHasContent( false ); + SetHasContent(false); } - UpdateContent( newContent ); + UpdateContent(newContent); } #endregion diff --git a/src/Files.App.CsWin32/ComHeapPtr`1.cs b/src/Files.App.CsWin32/ComHeapPtr`1.cs index ff63a40942fa..2bf4fa41c642 100644 --- a/src/Files.App.CsWin32/ComHeapPtr`1.cs +++ b/src/Files.App.CsWin32/ComHeapPtr`1.cs @@ -3,8 +3,6 @@ using System; using System.Runtime.CompilerServices; -using Windows.Win32; -using Windows.Win32.System.Com; namespace Windows.Win32 { diff --git a/src/Files.App.CsWin32/ComPtr`1.cs b/src/Files.App.CsWin32/ComPtr`1.cs index aafa936de894..2cceed532893 100644 --- a/src/Files.App.CsWin32/ComPtr`1.cs +++ b/src/Files.App.CsWin32/ComPtr`1.cs @@ -3,10 +3,8 @@ using System; using System.Runtime.CompilerServices; -using Windows.Win32; using Windows.Win32.Foundation; using Windows.Win32.System.Com; -using Windows.Win32.System.WinRT; namespace Windows.Win32 { @@ -64,15 +62,6 @@ public void Attach(T* other) return (T**)Unsafe.AsPointer(ref Unsafe.AsRef(in this)); } - [MethodImpl(MethodImplOptions.AggressiveInlining)] - [Obsolete("Use `HRESULT As(U** other)` instead.")] - public readonly ComPtr As() where U : unmanaged, IComIID - { - ComPtr ptr = default; - ((IUnknown*)_ptr)->QueryInterface((Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in U.Guid)), (void**)ptr.GetAddressOf()); - return ptr; - } - [MethodImpl(MethodImplOptions.AggressiveInlining)] public readonly HRESULT As(U** other) where U : unmanaged, IComIID { @@ -91,22 +80,6 @@ public readonly HRESULT CoCreateInstance(Guid* rclsid, IUnknown* pUnkOuter = nul return PInvoke.CoCreateInstance(rclsid, pUnkOuter, dwClsContext, (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in T.Guid)), (void**)this.GetAddressOf()); } - // Conversion operators - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static implicit operator ComPtr(T* other) - { - ComPtr ptr = default; - ptr.Attach(other); - return ptr; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static implicit operator T*(ComPtr other) - { - return other._ptr; - } - // Disposer [MethodImpl(MethodImplOptions.AggressiveInlining)] diff --git a/src/Files.App.CsWin32/IStorageProviderQuotaUI.cs b/src/Files.App.CsWin32/IStorageProviderQuotaUI.cs index 04c6741412a7..20f9dc08d55b 100644 --- a/src/Files.App.CsWin32/IStorageProviderQuotaUI.cs +++ b/src/Files.App.CsWin32/IStorageProviderQuotaUI.cs @@ -2,9 +2,7 @@ // Licensed under the MIT License. using System; -using System.Diagnostics; using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; using Windows.Win32.Foundation; namespace Windows.Win32.System.WinRT diff --git a/src/Files.App.CsWin32/IStorageProviderStatusUI.cs b/src/Files.App.CsWin32/IStorageProviderStatusUI.cs index 913bbc852e5e..1d778bc008ea 100644 --- a/src/Files.App.CsWin32/IStorageProviderStatusUI.cs +++ b/src/Files.App.CsWin32/IStorageProviderStatusUI.cs @@ -2,9 +2,7 @@ // Licensed under the MIT License. using System; -using System.Diagnostics; using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; using Windows.Win32.Foundation; namespace Windows.Win32.System.WinRT diff --git a/src/Files.App.CsWin32/IStorageProviderStatusUISource.cs b/src/Files.App.CsWin32/IStorageProviderStatusUISource.cs index f0d96390f204..caf7aa291bf3 100644 --- a/src/Files.App.CsWin32/IStorageProviderStatusUISource.cs +++ b/src/Files.App.CsWin32/IStorageProviderStatusUISource.cs @@ -2,9 +2,7 @@ // Licensed under the MIT License. using System; -using System.Diagnostics; using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; using Windows.Win32.Foundation; namespace Windows.Win32.System.WinRT diff --git a/src/Files.App.CsWin32/IStorageProviderStatusUISourceFactory.cs b/src/Files.App.CsWin32/IStorageProviderStatusUISourceFactory.cs index cca56098e7f1..9ab9495766d7 100644 --- a/src/Files.App.CsWin32/IStorageProviderStatusUISourceFactory.cs +++ b/src/Files.App.CsWin32/IStorageProviderStatusUISourceFactory.cs @@ -2,9 +2,7 @@ // Licensed under the MIT License. using System; -using System.Diagnostics; using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; using Windows.Win32.Foundation; namespace Windows.Win32.System.WinRT diff --git a/src/Files.App.CsWin32/ManualGuid.cs b/src/Files.App.CsWin32/ManualGuid.cs index 8ab59f21ee7f..f95973c45048 100644 --- a/src/Files.App.CsWin32/ManualGuid.cs +++ b/src/Files.App.CsWin32/ManualGuid.cs @@ -41,6 +41,27 @@ public static Guid* IID_IStorageProviderStatusUISourceFactory [GuidRVAGen.Guid("00021500-0000-0000-C000-000000000046")] public static partial Guid* IID_IQueryInfo { get; } + + [GuidRVAGen.Guid("BCC18B79-BA16-442F-80C4-8A59C30C463B")] + public static partial Guid* IID_IShellItemImageFactory { get; } + + [GuidRVAGen.Guid("000214F9-0000-0000-C000-000000000046")] + public static partial Guid* IID_IShellLinkW { get; } + + [GuidRVAGen.Guid("B63EA76D-1F85-456F-A19C-48159EFA858B")] + public static partial Guid* IID_IShellItemArray { get; } + + [GuidRVAGen.Guid("7F9185B0-CB92-43C5-80A9-92277A4F7B54")] + public static partial Guid* IID_IExecuteCommand { get; } + + [GuidRVAGen.Guid("1C9CD5BB-98E9-4491-A60F-31AACC72B83C")] + public static partial Guid* IID_IObjectWithSelection { get; } + + [GuidRVAGen.Guid("000214E8-0000-0000-C000-000000000046")] + public static partial Guid* IID_IShellExtInit { get; } + + [GuidRVAGen.Guid("000214F4-0000-0000-C000-000000000046")] + public static partial Guid* IID_IContextMenu2 { get; } } public static unsafe partial class CLSID @@ -59,6 +80,15 @@ public static unsafe partial class CLSID [GuidRVAGen.Guid("45BA127D-10A8-46EA-8AB7-56EA9078943C")] public static partial Guid* CLSID_ApplicationActivationManager { get; } + + [GuidRVAGen.Guid("B455F46E-E4AF-4035-B0A4-CF18D2F6F28E")] + public static partial Guid* CLSID_PinToFrequentExecute { get; } + + [GuidRVAGen.Guid("EE20EEBA-DF64-4A4E-B7BB-2D1C6B2DFCC1")] + public static partial Guid* CLSID_UnPinFromFrequentExecute { get; } + + [GuidRVAGen.Guid("D969A300-E7FF-11d0-A93B-00A0C90F2719")] + public static partial Guid* CLSID_NewMenu { get; } } public static unsafe partial class BHID diff --git a/src/Files.App.CsWin32/NativeMethods.txt b/src/Files.App.CsWin32/NativeMethods.txt index ce5524f6885e..a758d0ef4c51 100644 --- a/src/Files.App.CsWin32/NativeMethods.txt +++ b/src/Files.App.CsWin32/NativeMethods.txt @@ -225,3 +225,47 @@ QITIPF_FLAGS GetKeyboardState MapVirtualKey GetKeyboardLayout +S_FALSE +IExecuteCommand +IObjectWithSelection +SHCreateShellItemArrayFromShellItem +IShellExtInit +IContextMenu2 +GetSubMenu +GetMenuItemCount +GetMenuItemInfo +IsWow64Process2 +GetCurrentProcess +CertFreeCertificateContext +CryptMsgGetParam +CryptMsgClose +CryptMsgOpenToDecode +CryptMsgUpdate +CertOpenStore +CryptDecodeObject +CertFindCertificateInStore +CertComparePublicKeyInfo +CryptQueryObject +CertCloseStore +WinVerifyTrust +FileTimeToSystemTime +FileTimeToLocalFileTime +SystemTimeToFileTime +CRYPTOAPI_BLOB +CMSG_SIGNER_INFO +SignDataHandle +CRYPT_ATTRIBUTE +FILETIME +CRYPT_BIT_BLOB +CERT_ALT_NAME_INFO +CERT_CONTEXT +CERT_INFO +CRYPT_ALGORITHM_IDENTIFIER +CERT_PUBLIC_KEY_INFO +CATALOG_INFO +WINTRUST_FILE_INFO +WINTRUST_DATA +HCERTSTORE +HCRYPTMSG +CERT_QUERY_ENCODING_TYPE +CertGetNameString diff --git a/src/Files.App.Storage/Storables/FtpStorage/FtpHelpers.cs b/src/Files.App.Storage/Ftp/FtpHelpers.cs similarity index 98% rename from src/Files.App.Storage/Storables/FtpStorage/FtpHelpers.cs rename to src/Files.App.Storage/Ftp/FtpHelpers.cs index 15d0d920c773..6c2cec698daf 100644 --- a/src/Files.App.Storage/Storables/FtpStorage/FtpHelpers.cs +++ b/src/Files.App.Storage/Ftp/FtpHelpers.cs @@ -4,7 +4,7 @@ using Files.Shared.Extensions; using FluentFTP; -namespace Files.App.Storage.Storables +namespace Files.App.Storage { internal static class FtpHelpers { diff --git a/src/Files.App.Storage/Storables/FtpStorage/FtpManager.cs b/src/Files.App.Storage/Ftp/FtpManager.cs similarity index 88% rename from src/Files.App.Storage/Storables/FtpStorage/FtpManager.cs rename to src/Files.App.Storage/Ftp/FtpManager.cs index 5a9efb6fc595..db737c199771 100644 --- a/src/Files.App.Storage/Storables/FtpStorage/FtpManager.cs +++ b/src/Files.App.Storage/Ftp/FtpManager.cs @@ -3,7 +3,7 @@ using System.Net; -namespace Files.App.Storage.Storables +namespace Files.App.Storage { public static class FtpManager { diff --git a/src/Files.App.Storage/Storables/FtpStorage/FtpStorable.cs b/src/Files.App.Storage/Ftp/FtpStorable.cs similarity index 90% rename from src/Files.App.Storage/Storables/FtpStorage/FtpStorable.cs rename to src/Files.App.Storage/Ftp/FtpStorable.cs index 7987071dab29..9cf6f855b2ee 100644 --- a/src/Files.App.Storage/Storables/FtpStorage/FtpStorable.cs +++ b/src/Files.App.Storage/Ftp/FtpStorable.cs @@ -3,7 +3,7 @@ using FluentFTP; -namespace Files.App.Storage.Storables +namespace Files.App.Storage { public abstract class FtpStorable : IStorableChild { @@ -16,7 +16,7 @@ public abstract class FtpStorable : IStorableChild /// /// Gets the parent folder of the storable, if any. /// - protected virtual IFolder? Parent { get; } + protected virtual IFolder? Parent { get; } protected internal FtpStorable(string path, string name, IFolder? parent) { diff --git a/src/Files.App.Storage/Storables/FtpStorage/FtpStorageFile.cs b/src/Files.App.Storage/Ftp/FtpStorageFile.cs similarity index 95% rename from src/Files.App.Storage/Storables/FtpStorage/FtpStorageFile.cs rename to src/Files.App.Storage/Ftp/FtpStorageFile.cs index 35ecb890e9c0..decfdcaabfd6 100644 --- a/src/Files.App.Storage/Storables/FtpStorage/FtpStorageFile.cs +++ b/src/Files.App.Storage/Ftp/FtpStorageFile.cs @@ -3,7 +3,7 @@ using System.IO; -namespace Files.App.Storage.Storables +namespace Files.App.Storage { public sealed class FtpStorageFile : FtpStorable, IChildFile { diff --git a/src/Files.App.Storage/Storables/FtpStorage/FtpStorageFolder.cs b/src/Files.App.Storage/Ftp/FtpStorageFolder.cs similarity index 99% rename from src/Files.App.Storage/Storables/FtpStorage/FtpStorageFolder.cs rename to src/Files.App.Storage/Ftp/FtpStorageFolder.cs index 3a5d838079fa..83b01dccaa88 100644 --- a/src/Files.App.Storage/Storables/FtpStorage/FtpStorageFolder.cs +++ b/src/Files.App.Storage/Ftp/FtpStorageFolder.cs @@ -6,7 +6,7 @@ using System.IO; using System.Runtime.CompilerServices; -namespace Files.App.Storage.Storables +namespace Files.App.Storage { public sealed class FtpStorageFolder : FtpStorable, IModifiableFolder, IChildFolder, IDirectCopy, IDirectMove, IGetFirstByName { diff --git a/src/Files.App.Storage/Storables/FtpStorage/FtpStorageService.cs b/src/Files.App.Storage/Ftp/FtpStorageService.cs similarity index 97% rename from src/Files.App.Storage/Storables/FtpStorage/FtpStorageService.cs rename to src/Files.App.Storage/Ftp/FtpStorageService.cs index 7e97f7e07d3f..20df207f45f1 100644 --- a/src/Files.App.Storage/Storables/FtpStorage/FtpStorageService.cs +++ b/src/Files.App.Storage/Ftp/FtpStorageService.cs @@ -4,7 +4,7 @@ using FluentFTP; using System.IO; -namespace Files.App.Storage.Storables +namespace Files.App.Storage { /// public sealed class FtpStorageService : IFtpStorageService diff --git a/src/Files.App.Storage/GlobalUsings.cs b/src/Files.App.Storage/GlobalUsings.cs index 24e1a2323cd6..8fa89979a935 100644 --- a/src/Files.App.Storage/GlobalUsings.cs +++ b/src/Files.App.Storage/GlobalUsings.cs @@ -1,4 +1,4 @@ -// Copyright (c) Files Community +// Copyright (c) Files Community // Licensed under the MIT License. // System diff --git a/src/Files.App.Storage/Storables/HomeFolder/HomeFolder.cs b/src/Files.App.Storage/Legacy/HomeFolder/HomeFolder.cs similarity index 71% rename from src/Files.App.Storage/Storables/HomeFolder/HomeFolder.cs rename to src/Files.App.Storage/Legacy/HomeFolder/HomeFolder.cs index 790cbc17c13e..ae976667d582 100644 --- a/src/Files.App.Storage/Storables/HomeFolder/HomeFolder.cs +++ b/src/Files.App.Storage/Legacy/HomeFolder/HomeFolder.cs @@ -7,7 +7,7 @@ namespace Files.App.Storage.Storables { - public partial class HomeFolder : IHomeFolder + public unsafe partial class HomeFolder : IHomeFolder { public string Id => "Home"; // Will be "files://Home" in the future. @@ -48,38 +48,36 @@ public IAsyncEnumerable GetQuickAccessFolderAsync(CancellationTo /// public IAsyncEnumerable GetLogicalDrivesAsync(CancellationToken cancellationToken = default) { - return GetLogicalDrives().ToAsyncEnumerable(); + var availableDrives = PInvoke.GetLogicalDrives(); + if (availableDrives is 0) + return Enumerable.Empty().ToAsyncEnumerable(); - IEnumerable GetLogicalDrives() - { - var availableDrives = PInvoke.GetLogicalDrives(); - if (availableDrives is 0) - yield break; - - int count = BitOperations.PopCount(availableDrives); - var driveLetters = new char[count]; + int count = BitOperations.PopCount(availableDrives); + var driveLetters = new char[count]; - count = 0; - char driveLetter = 'A'; - while (availableDrives is not 0) - { - if ((availableDrives & 1) is not 0) - driveLetters[count++] = driveLetter; + count = 0; + char driveLetter = 'A'; + while (availableDrives is not 0) + { + if ((availableDrives & 1) is not 0) + driveLetters[count++] = driveLetter; - availableDrives >>= 1; - driveLetter++; - } + availableDrives >>= 1; + driveLetter++; + } - foreach (char letter in driveLetters) - { - cancellationToken.ThrowIfCancellationRequested(); + List driveItems = []; + foreach (char letter in driveLetters) + { + cancellationToken.ThrowIfCancellationRequested(); - if (WindowsStorable.TryParse($"{letter}:\\") is not IWindowsStorable driveRoot) - throw new InvalidOperationException(); + if (WindowsStorable.TryParse($"{letter}:\\") is not IWindowsStorable driveRoot) + throw new InvalidOperationException(); - yield return new WindowsFolder(driveRoot.ThisPtr); - } + driveItems.Add(new WindowsFolder(driveRoot.ThisPtr)); } + + return driveItems.ToAsyncEnumerable(); } /// diff --git a/src/Files.App.Storage/Storables/HomeFolder/IHomeFolder.cs b/src/Files.App.Storage/Legacy/HomeFolder/IHomeFolder.cs similarity index 100% rename from src/Files.App.Storage/Storables/HomeFolder/IHomeFolder.cs rename to src/Files.App.Storage/Legacy/HomeFolder/IHomeFolder.cs diff --git a/src/Files.App.Storage/Storables/NativeStorageLegacy/NativeStorageService.cs b/src/Files.App.Storage/Legacy/NativeStorageLegacy/NativeStorageService.cs similarity index 100% rename from src/Files.App.Storage/Storables/NativeStorageLegacy/NativeStorageService.cs rename to src/Files.App.Storage/Legacy/NativeStorageLegacy/NativeStorageService.cs diff --git a/src/Files.App.Storage/Watchers/RecycleBinWatcher.cs b/src/Files.App.Storage/Legacy/RecycleBinWatcher.cs similarity index 100% rename from src/Files.App.Storage/Watchers/RecycleBinWatcher.cs rename to src/Files.App.Storage/Legacy/RecycleBinWatcher.cs diff --git a/src/Files.App.Storage/Storables/WindowsStorage/IWindowsStorable.cs b/src/Files.App.Storage/Storables/WindowsStorage/IWindowsStorable.cs deleted file mode 100644 index 421d7a68dddd..000000000000 --- a/src/Files.App.Storage/Storables/WindowsStorage/IWindowsStorable.cs +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) Files Community -// Licensed under the MIT License. - -using Windows.Win32; -using Windows.Win32.UI.Shell; - -namespace Files.App.Storage -{ - public interface IWindowsStorable : IDisposable - { - ComPtr ThisPtr { get; } - } -} diff --git a/src/Files.App.Storage/Storables/WindowsStorage/JumpListManager.cs b/src/Files.App.Storage/Storables/WindowsStorage/JumpListManager.cs deleted file mode 100644 index 3cb1dcf27e73..000000000000 --- a/src/Files.App.Storage/Storables/WindowsStorage/JumpListManager.cs +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright (c) Files Community -// Licensed under the MIT License. - -using System.Collections.Concurrent; -using Windows.Win32; -using Windows.Win32.Foundation; -using Windows.Win32.System.Com; -using Windows.Win32.UI.Shell; -using Windows.Win32.UI.Shell.Common; - -namespace Files.App.Storage -{ - public unsafe class JumpListManager : IDisposable - { - private ComPtr pCustomDestinationList = default; - - private static string? AppId - { - get - { - PWSTR pszAppId = default; - HRESULT hr = PInvoke.GetCurrentProcessExplicitAppUserModelID(&pszAppId); - if (hr == HRESULT.E_FAIL) - hr = HRESULT.S_OK; - - hr.ThrowIfFailedOnDebug(); - - return pszAppId.ToString(); - } - } - - public ConcurrentBag JumpListItems { get; private set; } = []; - - public ConcurrentBag RemovedItems { get; private set; } = []; - - public ConcurrentBag RejectedItems { get; private set; } = []; - - // A special "Frequent" category managed by Windows - public bool ShowFrequentCategory { get; set; } - - // A special "Recent" category managed by Windows - public bool ShowRecentCategory { get; set; } - - private static JumpListManager? _Default = null; - public static JumpListManager Default { get; } = _Default ??= new JumpListManager(); - - public JumpListManager() - { - Guid CLSID_CustomDestinationList = typeof(DestinationList).GUID; - Guid IID_ICustomDestinationList = ICustomDestinationList.IID_Guid; - HRESULT hr = PInvoke.CoCreateInstance( - &CLSID_CustomDestinationList, - null, - CLSCTX.CLSCTX_INPROC_SERVER, - &IID_ICustomDestinationList, - (void**)pCustomDestinationList.GetAddressOf()); - - // Should not happen but as a sanity check at an early stage - hr.ThrowOnFailure(); - } - - public HRESULT Save() - { - Debug.Assert(Thread.CurrentThread.GetApartmentState() is ApartmentState.STA); - - HRESULT hr = pCustomDestinationList.Get()->SetAppID(AppId); - - uint cMinSlots = 0; - ComPtr pDeletedItemsObjectArray = default; - Guid IID_IObjectArray = IObjectArray.IID_Guid; - - hr = pCustomDestinationList.Get()->BeginList(&cMinSlots, &IID_IObjectArray, (void**)pDeletedItemsObjectArray.GetAddressOf()); - - // TODO: Validate items - - // TODO: Group them as categories - - // TODO: Append a custom category or to the Tasks - - if (ShowFrequentCategory) - pCustomDestinationList.Get()->AppendKnownCategory(KNOWNDESTCATEGORY.KDC_FREQUENT); - - if (ShowRecentCategory) - pCustomDestinationList.Get()->AppendKnownCategory(KNOWNDESTCATEGORY.KDC_RECENT); - - return HRESULT.S_OK; - } - - public void Dispose() - { - pCustomDestinationList.Dispose(); - } - } -} diff --git a/src/Files.App.Storage/Storables/WindowsStorage/WindowsFolder.cs b/src/Files.App.Storage/Storables/WindowsStorage/WindowsFolder.cs deleted file mode 100644 index f4105687184f..000000000000 --- a/src/Files.App.Storage/Storables/WindowsStorage/WindowsFolder.cs +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright (c) Files Community -// Licensed under the MIT License. - -using System.Runtime.CompilerServices; -using Windows.Win32; -using Windows.Win32.Foundation; -using Windows.Win32.System.SystemServices; -using Windows.Win32.UI.Shell; - -namespace Files.App.Storage -{ - [DebuggerDisplay("{" + nameof(ToString) + "()}")] - public sealed class WindowsFolder : WindowsStorable, IChildFolder - { - public WindowsFolder(ComPtr nativeObject) - { - ThisPtr = nativeObject; - } - - public unsafe WindowsFolder(IShellItem* nativeObject) - { - ComPtr ptr = default; - ptr.Attach(nativeObject); - ThisPtr = ptr; - } - - public unsafe WindowsFolder(Guid folderId) - { - ComPtr pItem = default; - - HRESULT hr = PInvoke.SHGetKnownFolderItem(&folderId, KNOWN_FOLDER_FLAG.KF_FLAG_DEFAULT, HANDLE.Null, IID.IID_IShellItem, (void**)pItem.GetAddressOf()); - if (hr.Failed) - { - fixed (char* pszShellPath = $"Shell:::{folderId:B}") - hr = PInvoke.SHCreateItemFromParsingName(pszShellPath, null, IID.IID_IShellItem, (void**)pItem.GetAddressOf()); - - // Invalid FOLDERID; this should never happen. - hr.ThrowOnFailure(); - } - - ThisPtr = pItem; - } - - public IAsyncEnumerable GetItemsAsync(StorableType type = StorableType.All, CancellationToken cancellationToken = default) - { - return GetItems().ToAsyncEnumerable(); - - unsafe IEnumerable GetItems() - { - ComPtr pEnumShellItems = default; - GetEnumerator(); - - ComPtr pShellItem = default; - while (GetNext() && !pShellItem.IsNull) - { - cancellationToken.ThrowIfCancellationRequested(); - var isFolder = pShellItem.HasShellAttributes(SFGAO_FLAGS.SFGAO_FOLDER); - - if (type is StorableType.File && !isFolder) - { - yield return new WindowsFile(pShellItem); - } - else if (type is StorableType.Folder && isFolder) - { - yield return new WindowsFolder(pShellItem); - } - else - { - continue; - } - } - - yield break; - - unsafe void GetEnumerator() - { - HRESULT hr = ThisPtr.Get()->BindToHandler(null, BHID.BHID_EnumItems, IID.IID_IEnumShellItems, (void**)pEnumShellItems.GetAddressOf()); - hr.ThrowIfFailedOnDebug(); - } - - unsafe bool GetNext() - { - HRESULT hr = pEnumShellItems.Get()->Next(1, pShellItem.GetAddressOf()); - return hr.ThrowIfFailedOnDebug() == HRESULT.S_OK; - } - } - } - } -} diff --git a/src/Files.App.Storage/Storables/WindowsStorage/WindowsStorable.cs b/src/Files.App.Storage/Storables/WindowsStorage/WindowsStorable.cs deleted file mode 100644 index 3fdc51e33389..000000000000 --- a/src/Files.App.Storage/Storables/WindowsStorage/WindowsStorable.cs +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright (c) Files Community -// Licensed under the MIT License. - -using Windows.Win32; -using Windows.Win32.Foundation; -using Windows.Win32.System.SystemServices; -using Windows.Win32.UI.Shell; - -namespace Files.App.Storage -{ - public abstract class WindowsStorable : IWindowsStorable, IStorableChild, IEquatable - { - public ComPtr ThisPtr { get; protected set; } - - public string Id => this.GetDisplayName(SIGDN.SIGDN_FILESYSPATH); - - public string Name => this.GetDisplayName(SIGDN.SIGDN_PARENTRELATIVEFORUI); - - public static unsafe WindowsStorable? TryParse(string parsablePath) - { - HRESULT hr = default; - ComPtr pShellItem = default; - var IID_IShellItem = typeof(IShellItem).GUID; - - fixed (char* pszParsablePath = parsablePath) - { - hr = PInvoke.SHCreateItemFromParsingName( - pszParsablePath, - null, - &IID_IShellItem, - (void**)pShellItem.GetAddressOf()); - } - - if (pShellItem.IsNull) - return null; - - return pShellItem.HasShellAttributes(SFGAO_FLAGS.SFGAO_FOLDER) - ? new WindowsFolder(pShellItem) - : new WindowsFile(pShellItem); - } - - public static unsafe WindowsStorable? TryParse(IShellItem* ptr) - { - ComPtr pShellItem = default; - pShellItem.Attach(ptr); - - return pShellItem.HasShellAttributes(SFGAO_FLAGS.SFGAO_FOLDER) - ? new WindowsFolder(pShellItem) - : new WindowsFile(pShellItem); - } - - public unsafe Task GetParentAsync(CancellationToken cancellationToken = default) - { - cancellationToken.ThrowIfCancellationRequested(); - - ComPtr pParentFolder = default; - HRESULT hr = ThisPtr.Get()->GetParent(pParentFolder.GetAddressOf()); - if (hr.Failed) - { - if (!pParentFolder.IsNull) pParentFolder.Dispose(); - - return Task.FromResult(null); - } - - return Task.FromResult(new WindowsFolder(pParentFolder)); - } - - /// - public override bool Equals(object? obj) - { - return Equals(obj as IWindowsStorable); - } - - public override int GetHashCode() - { - return HashCode.Combine(Id, Name); - } - - /// - public void Dispose() - { - ThisPtr.Dispose(); - } - - /// - public override string ToString() - { - return this.GetDisplayName(); - } - - /// - public unsafe bool Equals(IWindowsStorable? other) - { - if (other is null) - return false; - - return ThisPtr.Get()->Compare(other.ThisPtr.Get(), (uint)_SICHINTF.SICHINT_DISPLAY, out int order).Succeeded && order is 0; - } - - public static bool operator ==(WindowsStorable left, WindowsStorable right) - => left.Equals(right); - - public static bool operator !=(WindowsStorable left, WindowsStorable right) - => !(left == right); - } -} diff --git a/src/Files.App.Storage/Storables/WindowsStorage/WindowsStorableHelpers.Shell.cs b/src/Files.App.Storage/Storables/WindowsStorage/WindowsStorableHelpers.Shell.cs deleted file mode 100644 index c09b2fc0d103..000000000000 --- a/src/Files.App.Storage/Storables/WindowsStorage/WindowsStorableHelpers.Shell.cs +++ /dev/null @@ -1,147 +0,0 @@ -// Copyright (c) Files Community -// Licensed under the MIT License. - -using System.Runtime.CompilerServices; -using System.Text; -using Windows.Win32; -using Windows.Win32.Foundation; -using Windows.Win32.System.SystemServices; -using Windows.Win32.UI.Shell; -using Windows.Win32.UI.Shell.PropertiesSystem; -using Windows.Win32.UI.WindowsAndMessaging; - -namespace Files.App.Storage -{ - public static partial class WindowsStorableHelpers - { - public unsafe static HRESULT GetPropertyValue(this IWindowsStorable storable, string propKey, out TValue value) - { - using ComPtr pShellItem2 = default; - HRESULT hr = storable.ThisPtr.Get()->QueryInterface(IID.IID_IShellItem2, (void**)pShellItem2.GetAddressOf()); - - PROPERTYKEY propertyKey = default; - fixed (char* pszPropertyKey = propKey) - hr = PInvoke.PSGetPropertyKeyFromName(pszPropertyKey, &propertyKey); - - if (typeof(TValue) == typeof(string)) - { - ComHeapPtr szPropertyValue = default; - hr = pShellItem2.Get()->GetString(&propertyKey, szPropertyValue.Get()); - value = (TValue)(object)szPropertyValue.Get()->ToString(); - - return hr; - } - if (typeof(TValue) == typeof(bool)) - { - bool propertyValue = false; - hr = pShellItem2.Get()->GetBool(propertyKey, out var fPropertyValue); - propertyValue = fPropertyValue; - value = Unsafe.As(ref propertyValue); - - return hr; - } - else - { - value = default!; - return HRESULT.E_FAIL; - } - } - - public unsafe static bool HasShellAttributes(this IWindowsStorable storable, SFGAO_FLAGS attributes) - { - return storable.ThisPtr.Get()->GetAttributes(SFGAO_FLAGS.SFGAO_FOLDER, out var returnedAttributes).Succeeded && - returnedAttributes == attributes; - } - - public unsafe static bool HasShellAttributes(this ComPtr pShellItem, SFGAO_FLAGS attributes) - { - return pShellItem.Get()->GetAttributes(SFGAO_FLAGS.SFGAO_FOLDER, out var returnedAttributes).Succeeded && - returnedAttributes == attributes; - } - - public unsafe static string GetDisplayName(this IWindowsStorable storable, SIGDN options = SIGDN.SIGDN_FILESYSPATH) - { - using ComHeapPtr pszName = default; - HRESULT hr = storable.ThisPtr.Get()->GetDisplayName(options, (PWSTR*)pszName.GetAddressOf()); - - return hr.ThrowIfFailedOnDebug().Succeeded - ? new string((char*)pszName.Get()) // this is safe as it gets memcpy'd internally - : string.Empty; - } - - public unsafe static HRESULT TryInvokeContextMenuVerb(this IWindowsStorable storable, string verbName) - { - Debug.Assert(Thread.CurrentThread.GetApartmentState() is ApartmentState.STA); - - using ComPtr pContextMenu = default; - HRESULT hr = storable.ThisPtr.Get()->BindToHandler(null, BHID.BHID_SFUIObject, IID.IID_IContextMenu, (void**)pContextMenu.GetAddressOf()); - HMENU hMenu = PInvoke.CreatePopupMenu(); - hr = pContextMenu.Get()->QueryContextMenu(hMenu, 0, 1, 0x7FFF, PInvoke.CMF_OPTIMIZEFORINVOKE); - - CMINVOKECOMMANDINFO cmici = default; - cmici.cbSize = (uint)sizeof(CMINVOKECOMMANDINFO); - cmici.nShow = (int)SHOW_WINDOW_CMD.SW_HIDE; - - fixed (byte* pszVerbName = Encoding.ASCII.GetBytes(verbName)) - { - cmici.lpVerb = new(pszVerbName); - hr = pContextMenu.Get()->InvokeCommand(cmici); - - if (!PInvoke.DestroyMenu(hMenu)) - return HRESULT.E_FAIL; - - return hr; - } - } - - public unsafe static HRESULT TryInvokeContextMenuVerbs(this IWindowsStorable storable, string[] verbNames, bool earlyReturnOnSuccess) - { - Debug.Assert(Thread.CurrentThread.GetApartmentState() is ApartmentState.STA); - - using ComPtr pContextMenu = default; - HRESULT hr = storable.ThisPtr.Get()->BindToHandler(null, BHID.BHID_SFUIObject, IID.IID_IContextMenu, (void**)pContextMenu.GetAddressOf()); - HMENU hMenu = PInvoke.CreatePopupMenu(); - hr = pContextMenu.Get()->QueryContextMenu(hMenu, 0, 1, 0x7FFF, PInvoke.CMF_OPTIMIZEFORINVOKE); - - CMINVOKECOMMANDINFO cmici = default; - cmici.cbSize = (uint)sizeof(CMINVOKECOMMANDINFO); - cmici.nShow = (int)SHOW_WINDOW_CMD.SW_HIDE; - - foreach (var verbName in verbNames) - { - fixed (byte* pszVerbName = Encoding.ASCII.GetBytes(verbName)) - { - cmici.lpVerb = new(pszVerbName); - hr = pContextMenu.Get()->InvokeCommand(cmici); - - if (!PInvoke.DestroyMenu(hMenu)) - return HRESULT.E_FAIL; - - if (hr.Succeeded && earlyReturnOnSuccess) - return hr; - } - } - - return hr; - } - - public unsafe static HRESULT TryGetShellTooltip(this IWindowsStorable storable, out string? tooltip) - { - tooltip = null; - - using ComPtr pQueryInfo = default; - HRESULT hr = storable.ThisPtr.Get()->BindToHandler(null, BHID.BHID_SFUIObject, IID.IID_IQueryInfo, (void**)pQueryInfo.GetAddressOf()); - if (hr.ThrowIfFailedOnDebug().Failed) - return hr; - - pQueryInfo.Get()->GetInfoTip((uint)QITIPF_FLAGS.QITIPF_DEFAULT, out var pszTip); - if (hr.ThrowIfFailedOnDebug().Failed) - return hr; - - tooltip = pszTip.ToString(); - PInvoke.CoTaskMemFree(pszTip); - - return HRESULT.S_OK; - } - } -} diff --git a/src/Files.App.Storage/Storables/WindowsStorage/WindowsStorableHelpers.Icon.cs b/src/Files.App.Storage/Windows/Helpers/WindowsStorableHelpers.Icon.cs similarity index 96% rename from src/Files.App.Storage/Storables/WindowsStorage/WindowsStorableHelpers.Icon.cs rename to src/Files.App.Storage/Windows/Helpers/WindowsStorableHelpers.Icon.cs index 9b1fd95a31a5..f50de4bbad35 100644 --- a/src/Files.App.Storage/Storables/WindowsStorage/WindowsStorableHelpers.Icon.cs +++ b/src/Files.App.Storage/Windows/Helpers/WindowsStorableHelpers.Icon.cs @@ -45,7 +45,7 @@ public unsafe static HRESULT TryGetThumbnail(this IWindowsStorable storable, int thumbnailData = null; using ComPtr pShellItemImageFactory = default; - storable.ThisPtr.As(pShellItemImageFactory.GetAddressOf()); + storable.ThisPtr->QueryInterface(IID.IID_IShellItemImageFactory, (void**)pShellItemImageFactory.GetAddressOf()); if (pShellItemImageFactory.IsNull) return HRESULT.E_NOINTERFACE; @@ -267,10 +267,8 @@ public unsafe static HRESULT TrySetShortcutIcon(this IWindowsStorable storable, return HRESULT.E_INVALIDARG; using ComPtr pShellLink = default; - Guid IID_IShellLink = IShellLinkW.IID_Guid; - Guid BHID_SFUIObject = PInvoke.BHID_SFUIObject; - HRESULT hr = storable.ThisPtr.Get()->BindToHandler(null, &BHID_SFUIObject, &IID_IShellLink, (void**)pShellLink.GetAddressOf()); + HRESULT hr = storable.ThisPtr->BindToHandler(null, BHID.BHID_SFUIObject, IID.IID_IShellLinkW, (void**)pShellLink.GetAddressOf()); if (hr.ThrowIfFailedOnDebug().Failed) return hr; diff --git a/src/Files.App.Storage/Storables/WindowsStorage/WindowsStorableHelpers.PowerShell.cs b/src/Files.App.Storage/Windows/Helpers/WindowsStorableHelpers.PowerShell.cs similarity index 97% rename from src/Files.App.Storage/Storables/WindowsStorage/WindowsStorableHelpers.PowerShell.cs rename to src/Files.App.Storage/Windows/Helpers/WindowsStorableHelpers.PowerShell.cs index fcc3da01b630..ec3204a12141 100644 --- a/src/Files.App.Storage/Storables/WindowsStorage/WindowsStorableHelpers.PowerShell.cs +++ b/src/Files.App.Storage/Windows/Helpers/WindowsStorableHelpers.PowerShell.cs @@ -7,7 +7,7 @@ public static partial class WindowsStorableHelpers { public static async Task TrySetShortcutIconOnPowerShellAsElevatedAsync(this IWindowsStorable storable, IWindowsStorable iconFile, int index) { - string psScript = + string psScript = $@"$FilePath = '{storable}' $IconFile = '{iconFile}' $IconIndex = '{index}' diff --git a/src/Files.App.Storage/Windows/Helpers/WindowsStorableHelpers.Process.cs b/src/Files.App.Storage/Windows/Helpers/WindowsStorableHelpers.Process.cs new file mode 100644 index 000000000000..aa3948a27e7d --- /dev/null +++ b/src/Files.App.Storage/Windows/Helpers/WindowsStorableHelpers.Process.cs @@ -0,0 +1,27 @@ +// Copyright (c) Files Community +// Licensed under the MIT License. + +using Windows.Win32; +using Windows.Win32.System.SystemInformation; + +namespace Files.App.Storage +{ + public unsafe static partial class WindowsStorableHelpers + { + public static bool IsOnArmProcessor() + { + IMAGE_FILE_MACHINE dwMachineType = default; + + // Assumes the current process token has "PROCESS_QUERY_INFORMATION" or "PROCESS_QUERY_LIMITED_INFORMATION" access right + bool fResult = PInvoke.IsWow64Process2(PInvoke.GetCurrentProcess(), null, &dwMachineType); + if (!fResult) + Debug.WriteLine($"{nameof(PInvoke.IsWow64Process2)} has failed."); + + return dwMachineType is + IMAGE_FILE_MACHINE.IMAGE_FILE_MACHINE_THUMB or + IMAGE_FILE_MACHINE.IMAGE_FILE_MACHINE_ARMNT or + IMAGE_FILE_MACHINE.IMAGE_FILE_MACHINE_ARM64 or + IMAGE_FILE_MACHINE.IMAGE_FILE_MACHINE_ARM; + } + } +} diff --git a/src/Files.App.Storage/Windows/Helpers/WindowsStorableHelpers.Shell.cs b/src/Files.App.Storage/Windows/Helpers/WindowsStorableHelpers.Shell.cs new file mode 100644 index 000000000000..41eb10877af7 --- /dev/null +++ b/src/Files.App.Storage/Windows/Helpers/WindowsStorableHelpers.Shell.cs @@ -0,0 +1,304 @@ +// Copyright (c) Files Community +// Licensed under the MIT License. + +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Text; +using Windows.Win32; +using Windows.Win32.Foundation; +using Windows.Win32.System.Com; +using Windows.Win32.System.SystemServices; +using Windows.Win32.UI.Shell; +using Windows.Win32.UI.Shell.Common; +using Windows.Win32.UI.Shell.PropertiesSystem; +using Windows.Win32.UI.WindowsAndMessaging; + +namespace Files.App.Storage +{ + public unsafe static partial class WindowsStorableHelpers + { + public static HRESULT GetPropertyValue(this IWindowsStorable storable, string propKey, out TValue value) + { + using ComPtr pShellItem2 = default; + HRESULT hr = storable.ThisPtr->QueryInterface(IID.IID_IShellItem2, (void**)pShellItem2.GetAddressOf()); + + PROPERTYKEY propertyKey = default; + fixed (char* pszPropertyKey = propKey) + hr = PInvoke.PSGetPropertyKeyFromName(pszPropertyKey, &propertyKey); + + if (typeof(TValue) == typeof(string)) + { + ComHeapPtr szPropertyValue = default; + hr = pShellItem2.Get()->GetString(&propertyKey, szPropertyValue.Get()); + value = (TValue)(object)szPropertyValue.Get()->ToString(); + + return hr; + } + if (typeof(TValue) == typeof(bool)) + { + bool fPropertyValue = false; + hr = pShellItem2.Get()->GetBool(&propertyKey, (BOOL*)&fPropertyValue); + value = Unsafe.As(ref fPropertyValue); + + return hr; + } + else + { + value = default!; + return HRESULT.E_FAIL; + } + } + + public static bool HasShellAttributes(this IWindowsStorable storable, SFGAO_FLAGS attributes) + { + return storable.ThisPtr->GetAttributes(attributes, out var dwRetAttributes).Succeeded && dwRetAttributes == attributes; + } + + public static string GetDisplayName(this IWindowsStorable storable, SIGDN options = SIGDN.SIGDN_FILESYSPATH) + { + using ComHeapPtr pszName = default; + HRESULT hr = storable.ThisPtr->GetDisplayName(options, (PWSTR*)pszName.GetAddressOf()); + + return hr.ThrowIfFailedOnDebug().Succeeded + ? new string((char*)pszName.Get()) // this is safe as it gets memcpy'd internally + : string.Empty; + } + + public static HRESULT TryInvokeContextMenuVerb(this IWindowsStorable storable, string verbName) + { + Debug.Assert(Thread.CurrentThread.GetApartmentState() is ApartmentState.STA); + + using ComPtr pContextMenu = default; + HRESULT hr = storable.ThisPtr->BindToHandler(null, BHID.BHID_SFUIObject, IID.IID_IContextMenu, (void**)pContextMenu.GetAddressOf()); + HMENU hMenu = PInvoke.CreatePopupMenu(); + hr = pContextMenu.Get()->QueryContextMenu(hMenu, 0, 1, 0x7FFF, PInvoke.CMF_OPTIMIZEFORINVOKE); + + CMINVOKECOMMANDINFO cmici = default; + cmici.cbSize = (uint)sizeof(CMINVOKECOMMANDINFO); + cmici.nShow = (int)SHOW_WINDOW_CMD.SW_HIDE; + + fixed (byte* pszVerbName = Encoding.ASCII.GetBytes(verbName)) + { + cmici.lpVerb = new(pszVerbName); + hr = pContextMenu.Get()->InvokeCommand(cmici); + + if (!PInvoke.DestroyMenu(hMenu)) + return HRESULT.E_FAIL; + + return hr; + } + } + + public static HRESULT TryInvokeContextMenuVerbs(this IWindowsStorable storable, string[] verbNames, bool earlyReturnOnSuccess) + { + Debug.Assert(Thread.CurrentThread.GetApartmentState() is ApartmentState.STA); + + using ComPtr pContextMenu = default; + HRESULT hr = storable.ThisPtr->BindToHandler(null, BHID.BHID_SFUIObject, IID.IID_IContextMenu, (void**)pContextMenu.GetAddressOf()); + HMENU hMenu = PInvoke.CreatePopupMenu(); + hr = pContextMenu.Get()->QueryContextMenu(hMenu, 0, 1, 0x7FFF, PInvoke.CMF_OPTIMIZEFORINVOKE); + + CMINVOKECOMMANDINFO cmici = default; + cmici.cbSize = (uint)sizeof(CMINVOKECOMMANDINFO); + cmici.nShow = (int)SHOW_WINDOW_CMD.SW_HIDE; + + foreach (var verbName in verbNames) + { + fixed (byte* pszVerbName = Encoding.ASCII.GetBytes(verbName)) + { + cmici.lpVerb = new(pszVerbName); + hr = pContextMenu.Get()->InvokeCommand(cmici); + + if (!PInvoke.DestroyMenu(hMenu)) + return HRESULT.E_FAIL; + + if (hr.Succeeded && earlyReturnOnSuccess) + return hr; + } + } + + return hr; + } + + public static HRESULT TryGetShellTooltip(this IWindowsStorable storable, out string? tooltip) + { + tooltip = null; + + using ComPtr pQueryInfo = default; + HRESULT hr = storable.ThisPtr->BindToHandler(null, BHID.BHID_SFUIObject, IID.IID_IQueryInfo, (void**)pQueryInfo.GetAddressOf()); + if (hr.ThrowIfFailedOnDebug().Failed) + return hr; + + pQueryInfo.Get()->GetInfoTip((uint)QITIPF_FLAGS.QITIPF_DEFAULT, out var pszTip); + if (hr.ThrowIfFailedOnDebug().Failed) + return hr; + + tooltip = pszTip.ToString(); + PInvoke.CoTaskMemFree(pszTip); + + return HRESULT.S_OK; + } + + public static HRESULT TryPinFolderToQuickAccess(this IWindowsFolder @this) + { + HRESULT hr = default; + + using ComPtr pExecuteCommand = default; + using ComPtr pObjectWithSelection = default; + + hr = PInvoke.CoCreateInstance(CLSID.CLSID_PinToFrequentExecute, null, CLSCTX.CLSCTX_INPROC_SERVER, IID.IID_IExecuteCommand, (void**)pExecuteCommand.GetAddressOf()); + if (hr.ThrowIfFailedOnDebug().Failed) + return hr; + + using ComPtr pShellItemArray = default; + hr = PInvoke.SHCreateShellItemArrayFromShellItem(@this.ThisPtr, IID.IID_IShellItemArray, (void**)pShellItemArray.GetAddressOf()); + if (hr.ThrowIfFailedOnDebug().Failed) + return hr; + + hr = pExecuteCommand.Get()->QueryInterface(IID.IID_IObjectWithSelection, (void**)pObjectWithSelection.GetAddressOf()); + if (hr.ThrowIfFailedOnDebug().Failed) + return hr; + + hr = pObjectWithSelection.Get()->SetSelection(pShellItemArray.Get()); + if (hr.ThrowIfFailedOnDebug().Failed) + return hr; + + hr = pExecuteCommand.Get()->Execute(); + if (hr.ThrowIfFailedOnDebug().Failed) + return hr; + + return HRESULT.S_OK; + } + + public static HRESULT TryUnpinFolderFromQuickAccess(this IWindowsFolder @this) + { + HRESULT hr = default; + + using ComPtr pExecuteCommand = default; + using ComPtr pObjectWithSelection = default; + + hr = PInvoke.CoCreateInstance(CLSID.CLSID_UnPinFromFrequentExecute, null, CLSCTX.CLSCTX_INPROC_SERVER, IID.IID_IExecuteCommand, (void**)pExecuteCommand.GetAddressOf()); + if (hr.ThrowIfFailedOnDebug().Failed) + return hr; + + using ComPtr pShellItemArray = default; + hr = PInvoke.SHCreateShellItemArrayFromShellItem(@this.ThisPtr, IID.IID_IShellItemArray, (void**)pShellItemArray.GetAddressOf()); + if (hr.ThrowIfFailedOnDebug().Failed) + return hr; + + hr = pExecuteCommand.Get()->QueryInterface(IID.IID_IObjectWithSelection, (void**)pObjectWithSelection.GetAddressOf()); + if (hr.ThrowIfFailedOnDebug().Failed) + return hr; + + hr = pObjectWithSelection.Get()->SetSelection(pShellItemArray.Get()); + if (hr.ThrowIfFailedOnDebug().Failed) + return hr; + + hr = pExecuteCommand.Get()->Execute(); + if (hr.ThrowIfFailedOnDebug().Failed) + return hr; + + return HRESULT.S_OK; + } + + public static IEnumerable GetShellNewItems(this IWindowsFolder @this) + { + HRESULT hr = default; + + IContextMenu* pNewMenu = default; + using ComPtr pShellExtInit = default; + using ComPtr pContextMenu2 = default; + + hr = PInvoke.CoCreateInstance(CLSID.CLSID_NewMenu, null, CLSCTX.CLSCTX_INPROC_SERVER, IID.IID_IContextMenu, (void**)&pNewMenu); + if (hr.ThrowIfFailedOnDebug().Failed) + return []; + + hr = pNewMenu->QueryInterface(IID.IID_IContextMenu2, (void**)pContextMenu2.GetAddressOf()); + if (hr.ThrowIfFailedOnDebug().Failed) + return []; + + hr = pNewMenu->QueryInterface(IID.IID_IShellExtInit, (void**)pShellExtInit.GetAddressOf()); + if (hr.ThrowIfFailedOnDebug().Failed) + return []; + + @this.ShellNewMenu = pNewMenu; + + ITEMIDLIST* pFolderPidl = default; + hr = PInvoke.SHGetIDListFromObject((IUnknown*)@this.ThisPtr, &pFolderPidl); + if (hr.ThrowIfFailedOnDebug().Failed) + return []; + + hr = pShellExtInit.Get()->Initialize(pFolderPidl, null, default); + if (hr.ThrowIfFailedOnDebug().Failed) + return []; + + // Inserts "New (&W)" + HMENU hMenu = PInvoke.CreatePopupMenu(); + hr = pNewMenu->QueryContextMenu(hMenu, 0, 1, 256, 0); + if (hr.ThrowIfFailedOnDebug().Failed) + return []; + + // Invokes CNewMenu::_InitMenuPopup(), which populates the hSubMenu + HMENU hSubMenu = PInvoke.GetSubMenu(hMenu, 0); + hr = pContextMenu2.Get()->HandleMenuMsg(PInvoke.WM_INITMENUPOPUP, (WPARAM)(nuint)hSubMenu.Value, 0); + if (hr.ThrowIfFailedOnDebug().Failed) + return []; + + uint dwCount = unchecked((uint)PInvoke.GetMenuItemCount(hSubMenu)); + if (dwCount is unchecked((uint)-1)) + return []; + + // Enumerates and populates the list + List shellNewItems = []; + for (uint dwIndex = 0; dwIndex < dwCount; dwIndex++) + { + MENUITEMINFOW mii = default; + mii.cbSize = (uint)sizeof(MENUITEMINFOW); + mii.fMask = MENU_ITEM_MASK.MIIM_STRING | MENU_ITEM_MASK.MIIM_ID | MENU_ITEM_MASK.MIIM_STATE; + mii.dwTypeData = (char*)NativeMemory.Alloc(256U); + mii.cch = 256; + + if (PInvoke.GetMenuItemInfo(hSubMenu, dwIndex, true, &mii)) + { + shellNewItems.Add(new() + { + Id = mii.wID, + Name = mii.dwTypeData.ToString(), + Type = (WindowsContextMenuType)mii.fState, + }); + } + + NativeMemory.Free(mii.dwTypeData); + } + + return shellNewItems; + } + + public static bool InvokeShellNewItem(this IWindowsFolder @this, WindowsContextMenuItem item) + { + HRESULT hr = default; + + if (@this.ShellNewMenu is null) + { + IContextMenu* pNewMenu = default; + + hr = PInvoke.CoCreateInstance(CLSID.CLSID_NewMenu, null, CLSCTX.CLSCTX_INPROC_SERVER, IID.IID_IContextMenu, (void**)&pNewMenu); + if (hr.ThrowIfFailedOnDebug().Failed) + return false; + + @this.ShellNewMenu = pNewMenu; + } + + CMINVOKECOMMANDINFO cmici = default; + cmici.cbSize = (uint)sizeof(CMINVOKECOMMANDINFO); + cmici.lpVerb = (PCSTR)(byte*)item.Id; + cmici.nShow = (int)SHOW_WINDOW_CMD.SW_SHOWNORMAL; + + hr = @this.ShellNewMenu->InvokeCommand(&cmici); + if (hr.ThrowIfFailedOnDebug().Failed) + return false; + + return false; + } + } +} diff --git a/src/Files.App.Storage/Storables/WindowsStorage/WindowsStorableHelpers.Storage.cs b/src/Files.App.Storage/Windows/Helpers/WindowsStorableHelpers.Storage.cs similarity index 92% rename from src/Files.App.Storage/Storables/WindowsStorage/WindowsStorableHelpers.Storage.cs rename to src/Files.App.Storage/Windows/Helpers/WindowsStorableHelpers.Storage.cs index 151cad3fbf3c..d3ad8823351a 100644 --- a/src/Files.App.Storage/Storables/WindowsStorage/WindowsStorableHelpers.Storage.cs +++ b/src/Files.App.Storage/Windows/Helpers/WindowsStorableHelpers.Storage.cs @@ -84,5 +84,12 @@ public static bool TryShowFormatDriveDialog(HWND hWnd, uint driveLetterIndex, SH var result = PInvoke.SHFormatDrive(hWnd, driveLetterIndex, id, options); return result is 0xFFFF; } + + public static bool TryRenameVolumeLabel(string path, string newLabel) + { + // TODO: Use shell32.dll!CMountPointRename (CLSID: 60173D16-A550-47f0-A14B-C6F9E4DA0831, IID: 92F8D886-AB61-4113-BD4F-2E894397386F) + + return false; + } } } diff --git a/src/Files.App.Storage/Windows/IWindowsFile.cs b/src/Files.App.Storage/Windows/IWindowsFile.cs new file mode 100644 index 000000000000..43f30155f907 --- /dev/null +++ b/src/Files.App.Storage/Windows/IWindowsFile.cs @@ -0,0 +1,9 @@ +// Copyright (c) Files Community +// Licensed under the MIT License. + +namespace Files.App.Storage +{ + public interface IWindowsFile : IWindowsStorable, IChildFile + { + } +} diff --git a/src/Files.App.Storage/Windows/IWindowsFolder.cs b/src/Files.App.Storage/Windows/IWindowsFolder.cs new file mode 100644 index 000000000000..92160da97f48 --- /dev/null +++ b/src/Files.App.Storage/Windows/IWindowsFolder.cs @@ -0,0 +1,15 @@ +// Copyright (c) Files Community +// Licensed under the MIT License. + +using Windows.Win32.UI.Shell; + +namespace Files.App.Storage +{ + public unsafe interface IWindowsFolder : IWindowsStorable, IChildFolder + { + /// + /// Gets or sets the cached for the ShellNew context menu. + /// + public IContextMenu* ShellNewMenu { get; set; } + } +} diff --git a/src/Files.App.Storage/Windows/IWindowsStorable.cs b/src/Files.App.Storage/Windows/IWindowsStorable.cs new file mode 100644 index 000000000000..c79ef3ba66cb --- /dev/null +++ b/src/Files.App.Storage/Windows/IWindowsStorable.cs @@ -0,0 +1,14 @@ +// Copyright (c) Files Community +// Licensed under the MIT License. + +using Windows.Win32.UI.Shell; + +namespace Files.App.Storage +{ + public unsafe interface IWindowsStorable : IStorableChild, IEquatable, IDisposable + { + IShellItem* ThisPtr { get; set; } + + IContextMenu* ContextMenu { get; set; } + } +} diff --git a/src/Files.App.Storage/Windows/Managers/JumpListDestinationType.cs b/src/Files.App.Storage/Windows/Managers/JumpListDestinationType.cs new file mode 100644 index 000000000000..b811e47d0625 --- /dev/null +++ b/src/Files.App.Storage/Windows/Managers/JumpListDestinationType.cs @@ -0,0 +1,11 @@ +namespace Files.App.Storage +{ + public enum JumpListDestinationType + { + Pinned, + + Recent, + + Frequent, + } +} diff --git a/src/Files.App.Storage/Storables/WindowsStorage/JumpListItem.cs b/src/Files.App.Storage/Windows/Managers/JumpListItem.cs similarity index 100% rename from src/Files.App.Storage/Storables/WindowsStorage/JumpListItem.cs rename to src/Files.App.Storage/Windows/Managers/JumpListItem.cs diff --git a/src/Files.App.Storage/Storables/WindowsStorage/JumpListItemType.cs b/src/Files.App.Storage/Windows/Managers/JumpListItemType.cs similarity index 100% rename from src/Files.App.Storage/Storables/WindowsStorage/JumpListItemType.cs rename to src/Files.App.Storage/Windows/Managers/JumpListItemType.cs diff --git a/src/Files.App.Storage/Windows/Managers/JumpListManager.cs b/src/Files.App.Storage/Windows/Managers/JumpListManager.cs new file mode 100644 index 000000000000..ddee40eb69d4 --- /dev/null +++ b/src/Files.App.Storage/Windows/Managers/JumpListManager.cs @@ -0,0 +1,33 @@ +// Copyright (c) Files Community +// Licensed under the MIT License. + +namespace Files.App.Storage +{ + public unsafe class JumpListManager : IDisposable + { + public string AppId { get; } + + public JumpListManager(string appId) + { + if (string.IsNullOrEmpty(appId)) + throw new ArgumentException("App ID cannot be null or empty.", nameof(appId)); + + AppId = appId; + //_jumpList = new ConcurrentDictionary(); + } + + public IEnumerable GetAutomaticDestinations() + { + return []; + } + + public IEnumerable GetCustomDestinations() + { + return []; + } + + public void Dispose() + { + } + } +} diff --git a/src/Files.App.Storage/Storables/WindowsStorage/STATask.cs b/src/Files.App.Storage/Windows/Managers/STATask.cs similarity index 64% rename from src/Files.App.Storage/Storables/WindowsStorage/STATask.cs rename to src/Files.App.Storage/Windows/Managers/STATask.cs index 29a4a6819e61..742e856e3a84 100644 --- a/src/Files.App.Storage/Storables/WindowsStorage/STATask.cs +++ b/src/Files.App.Storage/Windows/Managers/STATask.cs @@ -1,16 +1,17 @@ // Copyright (c) Files Community // Licensed under the MIT License. +using Microsoft.Extensions.Logging; using Windows.Win32; namespace Files.App.Storage { /// - /// Represents an asynchronous operation on STA. + /// Represents a synchronous/asynchronous operation on STA. /// public partial class STATask { - public static Task Run(Action action) + public static Task Run(Action action, ILogger? logger = null) { var tcs = new TaskCompletionSource(); @@ -26,25 +27,24 @@ public static Task Run(Action action) } catch (Exception ex) { + tcs.SetResult(); + logger?.LogWarning(ex, "An exception was occurred during the execution within STA."); tcs.SetException(ex); } finally { PInvoke.OleUninitialize(); } - }) - { - IsBackground = true, - Priority = ThreadPriority.Normal - }; + }); + thread.IsBackground = true; thread.SetApartmentState(ApartmentState.STA); thread.Start(); return tcs.Task; } - public static Task Run(Func func) + public static Task Run(Func func, ILogger? logger = null) { var tcs = new TaskCompletionSource(); @@ -59,25 +59,24 @@ public static Task Run(Func func) } catch (Exception ex) { + tcs.SetResult(default!); + logger?.LogWarning(ex, "An exception was occurred during the execution within STA."); tcs.SetException(ex); } finally { PInvoke.OleUninitialize(); } - }) - { - IsBackground = true, - Priority = ThreadPriority.Normal - }; + }); + thread.IsBackground = true; thread.SetApartmentState(ApartmentState.STA); thread.Start(); return tcs.Task; } - public static Task Run(Func func) + public static Task Run(Func func, ILogger? logger = null) { var tcs = new TaskCompletionSource(); @@ -93,25 +92,24 @@ public static Task Run(Func func) } catch (Exception ex) { + tcs.SetResult(); + logger?.LogWarning(ex, "An exception was occurred during the execution within STA."); tcs.SetException(ex); } finally { PInvoke.OleUninitialize(); } - }) - { - IsBackground = true, - Priority = ThreadPriority.Normal - }; + }); + thread.IsBackground = true; thread.SetApartmentState(ApartmentState.STA); thread.Start(); return tcs.Task; } - public static Task Run(Func> func) + public static Task Run(Func> func, ILogger? logger = null) { var tcs = new TaskCompletionSource(); @@ -126,18 +124,17 @@ public static Task Run(Func func) } catch (Exception ex) { + tcs.SetResult(default); + logger?.LogWarning(ex, "An exception was occurred during the execution within STA."); tcs.SetException(ex); } finally { PInvoke.OleUninitialize(); } - }) - { - IsBackground = true, - Priority = ThreadPriority.Normal - }; + }); + thread.IsBackground = true; thread.SetApartmentState(ApartmentState.STA); thread.Start(); diff --git a/src/Files.App.Storage/Windows/Managers/SystemTrayManager.cs b/src/Files.App.Storage/Windows/Managers/SystemTrayManager.cs new file mode 100644 index 000000000000..6c861a097f74 --- /dev/null +++ b/src/Files.App.Storage/Windows/Managers/SystemTrayManager.cs @@ -0,0 +1,154 @@ +// Copyright (c) Files Community +// Licensed under the MIT License. + +using System.Runtime.InteropServices; +using Windows.Win32; +using Windows.Win32.Foundation; +using Windows.Win32.UI.Shell; +using Windows.Win32.UI.WindowsAndMessaging; + +namespace Files.App.Storage +{ + /// + /// Exposes a manager to create or delete an system tray icon you provide. + /// + public unsafe partial class SystemTrayManager : IDisposable + { + string _szWndClassName = null!; + string _szToolTip = null!; + HICON _hIcon = default; + private Guid _id; + private uint _dwCallbackMsgId; + Action _callback = null!; + + private HWND _hWnd = default; + private WNDPROC? _wndProc; + private uint _dwTaskbarRestartMsgId; + private bool _isShown; + + public static SystemTrayManager CreateIcon(string szWndClassName, string szToolTip, HICON hIcon, Guid id, uint dwCallbackMsgId, Action callback) + { + return new() + { + _szWndClassName = szWndClassName, + _szToolTip = szToolTip, + _hIcon = hIcon, + _id = id, + _dwCallbackMsgId = dwCallbackMsgId, + _callback = callback, + }; + } + + private bool CreateIcon() + { + if (_hWnd.IsNull) + _hWnd = CreateIconWindow(_szWndClassName); + + NOTIFYICONDATAW data = default; + data.cbSize = (uint)sizeof(NOTIFYICONDATAW); + data.hWnd = _hWnd; + data.uCallbackMessage = _dwCallbackMsgId; + data.guidItem = _id; + data.hIcon = _hIcon; + data.uFlags = NOTIFY_ICON_DATA_FLAGS.NIF_MESSAGE | NOTIFY_ICON_DATA_FLAGS.NIF_ICON | NOTIFY_ICON_DATA_FLAGS.NIF_TIP | NOTIFY_ICON_DATA_FLAGS.NIF_GUID | NOTIFY_ICON_DATA_FLAGS.NIF_SHOWTIP; + data.szTip = _szToolTip; + data.Anonymous.uVersion = 4u; + + if (_isShown) + { + return PInvoke.Shell_NotifyIcon(NOTIFY_ICON_MESSAGE.NIM_DELETE, &data); + } + else + { + bool fRes = PInvoke.Shell_NotifyIcon(NOTIFY_ICON_MESSAGE.NIM_DELETE, &data); + if (!fRes) return false; + + fRes = PInvoke.Shell_NotifyIcon(NOTIFY_ICON_MESSAGE.NIM_ADD, &data); + if (!fRes) return false; + + fRes = PInvoke.Shell_NotifyIcon(NOTIFY_ICON_MESSAGE.NIM_SETVERSION, &data); + if (!fRes) return false; + + _isShown = true; + + return true; + } + } + + public bool DeleteIcon() + { + if (_isShown) + { + NOTIFYICONDATAW data = default; + data.cbSize = (uint)sizeof(NOTIFYICONDATAW); + data.hWnd = _hWnd; + data.guidItem = _id; + data.uFlags = NOTIFY_ICON_DATA_FLAGS.NIF_GUID; + data.Anonymous.uVersion = 4u; + + return PInvoke.Shell_NotifyIcon(NOTIFY_ICON_MESSAGE.NIM_DELETE, &data); + } + + return true; + } + + private HWND CreateIconWindow(string szWndClassName) + { + fixed (char* pszWndClassName = szWndClassName) + { + _wndProc ??= new(WndProc); + + WNDCLASSEXW wndClass = default; + + wndClass.cbSize = (uint)sizeof(WNDCLASSEXW); + wndClass.style = WNDCLASS_STYLES.CS_DBLCLKS; + wndClass.hInstance = PInvoke.GetModuleHandle(default(PCWSTR)); + wndClass.lpszClassName = pszWndClassName; + wndClass.lpfnWndProc = (delegate* unmanaged[Stdcall]) + Marshal.GetFunctionPointerForDelegate(_wndProc); + + PInvoke.RegisterClassEx(&wndClass); + + _dwTaskbarRestartMsgId = PInvoke.RegisterWindowMessage("TaskbarCreated"); + + return PInvoke.CreateWindowEx( + WINDOW_EX_STYLE.WS_EX_LEFT, pszWndClassName, default, + WINDOW_STYLE.WS_OVERLAPPED, 0, 0, 1, 1, HWND.Null, HMENU.Null, HINSTANCE.Null, null); + } + } + + private LRESULT WndProc(HWND hWnd, uint uMsg, WPARAM wParam, LPARAM lParam) + { + if (uMsg == _dwCallbackMsgId) + { + _callback((uint)(lParam.Value & 0xFFFF)); + + return default; + } + else if (uMsg is PInvoke.WM_DESTROY) + { + DeleteIcon(); + + return default; + } + else if (uMsg == _dwTaskbarRestartMsgId) + { + DeleteIcon(); + CreateIcon(); + } + + return PInvoke.DefWindowProc(hWnd, uMsg, wParam, lParam); + } + + public void Dispose() + { + if (!_hWnd.IsNull) + PInvoke.DestroyWindow(_hWnd); + + if (!_hIcon.IsNull) + PInvoke.DestroyIcon(_hIcon); + + _wndProc = null; + } + } +} diff --git a/src/Files.App.Storage/Storables/WindowsStorage/TaskbarManager.cs b/src/Files.App.Storage/Windows/Managers/TaskbarManager.cs similarity index 100% rename from src/Files.App.Storage/Storables/WindowsStorage/TaskbarManager.cs rename to src/Files.App.Storage/Windows/Managers/TaskbarManager.cs diff --git a/src/Files.App.Storage/Windows/Managers/WindowsContextMenuItem.cs b/src/Files.App.Storage/Windows/Managers/WindowsContextMenuItem.cs new file mode 100644 index 000000000000..03af85e6a03e --- /dev/null +++ b/src/Files.App.Storage/Windows/Managers/WindowsContextMenuItem.cs @@ -0,0 +1,19 @@ +// Copyright (c) Files Community +// Licensed under the MIT License. + +namespace Files.App.Storage +{ + /// + /// Represents a Windows Shell ContextMenu item. + /// + public partial class WindowsContextMenuItem + { + public WindowsContextMenuType Type { get; set; } + + public uint Id { get; set; } + + public byte[]? Icon { get; set; } + + public string? Name { get; set; } + } +} diff --git a/src/Files.App.Storage/Windows/Managers/WindowsContextMenuType.cs b/src/Files.App.Storage/Windows/Managers/WindowsContextMenuType.cs new file mode 100644 index 000000000000..904a089fac19 --- /dev/null +++ b/src/Files.App.Storage/Windows/Managers/WindowsContextMenuType.cs @@ -0,0 +1,18 @@ +// Copyright (c) Files Community +// Licensed under the MIT License. + +namespace Files.App.Storage +{ + public enum WindowsContextMenuType + { + Normal = 0x00000000, + + Disabled = 0x00000003, + + Checked = 0x00000008, + + Highlighted = 0x00000080, + + Default = 0x00001000, + } +} diff --git a/src/Files.App.Storage/Storables/WindowsStorage/WindowsBulkOperations.cs b/src/Files.App.Storage/Windows/WindowsBulkOperations.cs similarity index 78% rename from src/Files.App.Storage/Storables/WindowsStorage/WindowsBulkOperations.cs rename to src/Files.App.Storage/Windows/WindowsBulkOperations.cs index a6393243246f..d995d20ea71b 100644 --- a/src/Files.App.Storage/Storables/WindowsStorage/WindowsBulkOperations.cs +++ b/src/Files.App.Storage/Windows/WindowsBulkOperations.cs @@ -12,12 +12,12 @@ namespace Files.App.Storage /// /// Handles bulk file operations in Windows, such as copy, move, delete, create, and rename, supporting progress tracking and event notifications. /// - public sealed partial class WindowsBulkOperations : IDisposable + public unsafe partial class WindowsBulkOperations : IDisposable { // Fields - private readonly ComPtr _pFileOperation; - private readonly ComPtr _pProgressSink; + private readonly IFileOperation* _pFileOperation; + private readonly IFileOperationProgressSink* _pProgressSink; private readonly uint _progressSinkCookie; // Events @@ -70,24 +70,20 @@ public sealed partial class WindowsBulkOperations : IDisposable /// Defines the behavior of the file operation, such as allowing undo and suppressing directory confirmation. public unsafe WindowsBulkOperations(HWND ownerHWnd = default, FILEOPERATION_FLAGS flags = FILEOPERATION_FLAGS.FOF_ALLOWUNDO | FILEOPERATION_FLAGS.FOF_NOCONFIRMMKDIR) { - var clsid = typeof(FileOperation).GUID; - var iid = typeof(IFileOperation).GUID; + IFileOperation* pFileOperation = null; - HRESULT hr = PInvoke.CoCreateInstance( - &clsid, - null, - CLSCTX.CLSCTX_LOCAL_SERVER, - &iid, - (void**)_pFileOperation.GetAddressOf()) - .ThrowIfFailedOnDebug(); + HRESULT hr = PInvoke.CoCreateInstance(CLSID.CLSID_FileOperation, null, CLSCTX.CLSCTX_LOCAL_SERVER, IID.IID_IFileOperation, (void**)&pFileOperation); + hr.ThrowIfFailedOnDebug(); + + _pFileOperation = pFileOperation; if (ownerHWnd != default) - hr = _pFileOperation.Get()->SetOwnerWindow(ownerHWnd).ThrowIfFailedOnDebug(); + hr = _pFileOperation->SetOwnerWindow(ownerHWnd).ThrowIfFailedOnDebug(); - hr = _pFileOperation.Get()->SetOperationFlags(flags).ThrowIfFailedOnDebug(); + hr = _pFileOperation->SetOperationFlags(flags).ThrowIfFailedOnDebug(); - _pProgressSink.Attach((IFileOperationProgressSink*)WindowsBulkOperationsSink.Create(this)); - hr = _pFileOperation.Get()->Advise(_pProgressSink.Get(), out var progressSinkCookie).ThrowIfFailedOnDebug(); + _pProgressSink = (IFileOperationProgressSink*)WindowsBulkOperationsSink.Create(this); + hr = _pFileOperation->Advise(_pProgressSink, out var progressSinkCookie).ThrowIfFailedOnDebug(); _progressSinkCookie = progressSinkCookie; } @@ -101,7 +97,7 @@ public unsafe WindowsBulkOperations(HWND ownerHWnd = default, FILEOPERATION_FLAG public unsafe HRESULT QueueCopyOperation(WindowsStorable targetItem, WindowsFolder destinationFolder, string? copyName) { fixed (char* pszCopyName = copyName) - return _pFileOperation.Get()->CopyItem(targetItem.ThisPtr.Get(), destinationFolder.ThisPtr.Get(), pszCopyName, _pProgressSink.Get()); + return _pFileOperation->CopyItem(targetItem.ThisPtr, destinationFolder.ThisPtr, pszCopyName, _pProgressSink); } /// @@ -111,7 +107,7 @@ public unsafe HRESULT QueueCopyOperation(WindowsStorable targetItem, WindowsFold /// If this method succeeds, it returns . Otherwise, it returns an error code. public unsafe HRESULT QueueDeleteOperation(WindowsStorable targetItem) { - return _pFileOperation.Get()->DeleteItem(targetItem.ThisPtr.Get(), _pProgressSink.Get()); + return _pFileOperation->DeleteItem(targetItem.ThisPtr, _pProgressSink); } /// @@ -124,7 +120,7 @@ public unsafe HRESULT QueueDeleteOperation(WindowsStorable targetItem) public unsafe HRESULT QueueMoveOperation(WindowsStorable targetItem, WindowsFolder destinationFolder, string? newName) { fixed (char* pszNewName = newName) - return _pFileOperation.Get()->MoveItem(targetItem.ThisPtr.Get(), destinationFolder.ThisPtr.Get(), pszNewName, null); + return _pFileOperation->MoveItem(targetItem.ThisPtr, destinationFolder.ThisPtr, pszNewName, null); } /// @@ -138,7 +134,7 @@ public unsafe HRESULT QueueMoveOperation(WindowsStorable targetItem, WindowsFold public unsafe HRESULT QueueCreateOperation(WindowsFolder destinationFolder, FILE_FLAGS_AND_ATTRIBUTES fileAttributes, string name, string? templateName) { fixed (char* pszName = name, pszTemplateName = templateName) - return _pFileOperation.Get()->NewItem(destinationFolder.ThisPtr.Get(), (uint)fileAttributes, pszName, pszTemplateName, _pProgressSink.Get()); + return _pFileOperation->NewItem(destinationFolder.ThisPtr, (uint)fileAttributes, pszName, pszTemplateName, _pProgressSink); } /// @@ -150,7 +146,7 @@ public unsafe HRESULT QueueCreateOperation(WindowsFolder destinationFolder, FILE public unsafe HRESULT QueueRenameOperation(WindowsStorable targetItem, string newName) { fixed (char* pszNewName = newName) - return _pFileOperation.Get()->RenameItem(targetItem.ThisPtr.Get(), pszNewName, _pProgressSink.Get()); + return _pFileOperation->RenameItem(targetItem.ThisPtr, pszNewName, _pProgressSink); } /// @@ -159,7 +155,7 @@ public unsafe HRESULT QueueRenameOperation(WindowsStorable targetItem, string ne /// If this method succeeds, it returns . Otherwise, it returns an error code. public unsafe HRESULT PerformAllOperations() { - return _pFileOperation.Get()->PerformOperations(); + return _pFileOperation->PerformOperations(); } // Disposer @@ -167,11 +163,11 @@ public unsafe HRESULT PerformAllOperations() /// public unsafe void Dispose() { - if (!_pProgressSink.IsNull) - _pFileOperation.Get()->Unadvise(_progressSinkCookie); + if (_pProgressSink is not null) + _pFileOperation->Unadvise(_progressSinkCookie); - _pFileOperation.Dispose(); - _pProgressSink.Dispose(); + _pFileOperation->Release(); + _pProgressSink->Release(); } } } diff --git a/src/Files.App.Storage/Storables/WindowsStorage/WindowsBulkOperationsEventArgs.cs b/src/Files.App.Storage/Windows/WindowsBulkOperationsEventArgs.cs similarity index 100% rename from src/Files.App.Storage/Storables/WindowsStorage/WindowsBulkOperationsEventArgs.cs rename to src/Files.App.Storage/Windows/WindowsBulkOperationsEventArgs.cs diff --git a/src/Files.App.Storage/Storables/WindowsStorage/WindowsBulkOperationsSink.Methods.cs b/src/Files.App.Storage/Windows/WindowsBulkOperationsSink.Methods.cs similarity index 100% rename from src/Files.App.Storage/Storables/WindowsStorage/WindowsBulkOperationsSink.Methods.cs rename to src/Files.App.Storage/Windows/WindowsBulkOperationsSink.Methods.cs diff --git a/src/Files.App.Storage/Storables/WindowsStorage/WindowsBulkOperationsSink.VTable.cs b/src/Files.App.Storage/Windows/WindowsBulkOperationsSink.VTable.cs similarity index 100% rename from src/Files.App.Storage/Storables/WindowsStorage/WindowsBulkOperationsSink.VTable.cs rename to src/Files.App.Storage/Windows/WindowsBulkOperationsSink.VTable.cs diff --git a/src/Files.App.Storage/Storables/WindowsStorage/WindowsFile.cs b/src/Files.App.Storage/Windows/WindowsFile.cs similarity index 69% rename from src/Files.App.Storage/Storables/WindowsStorage/WindowsFile.cs rename to src/Files.App.Storage/Windows/WindowsFile.cs index 3ce56f786c2f..ef4b7d85d24b 100644 --- a/src/Files.App.Storage/Storables/WindowsStorage/WindowsFile.cs +++ b/src/Files.App.Storage/Windows/WindowsFile.cs @@ -2,17 +2,16 @@ // Licensed under the MIT License. using System.IO; -using Windows.Win32; using Windows.Win32.UI.Shell; namespace Files.App.Storage { [DebuggerDisplay("{" + nameof(ToString) + "()}")] - public sealed class WindowsFile : WindowsStorable, IChildFile + public unsafe class WindowsFile : WindowsStorable, IWindowsFile { - public WindowsFile(ComPtr nativeObject) + public WindowsFile(IShellItem* ptr) { - ThisPtr = nativeObject; + ThisPtr = ptr; } public Task OpenStreamAsync(FileAccess accessMode, CancellationToken cancellationToken = default) diff --git a/src/Files.App.Storage/Windows/WindowsFolder.cs b/src/Files.App.Storage/Windows/WindowsFolder.cs new file mode 100644 index 000000000000..510300fa5f6d --- /dev/null +++ b/src/Files.App.Storage/Windows/WindowsFolder.cs @@ -0,0 +1,85 @@ +// Copyright (c) Files Community +// Licensed under the MIT License. + +using System.Runtime.CompilerServices; +using Windows.Win32; +using Windows.Win32.Foundation; +using Windows.Win32.System.SystemServices; +using Windows.Win32.UI.Shell; + +namespace Files.App.Storage +{ + [DebuggerDisplay("{" + nameof(ToString) + "()}")] + public unsafe class WindowsFolder : WindowsStorable, IWindowsFolder + { + /// + public IContextMenu* ShellNewMenu + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + set; + } + + public WindowsFolder(IShellItem* ptr) + { + ThisPtr = ptr; + } + + public WindowsFolder(Guid folderId) + { + IShellItem* pShellItem = default; + + HRESULT hr = PInvoke.SHGetKnownFolderItem(&folderId, KNOWN_FOLDER_FLAG.KF_FLAG_DEFAULT, HANDLE.Null, IID.IID_IShellItem, (void**)&pShellItem); + if (hr.Failed) + { + fixed (char* pszShellPath = $"Shell:::{folderId:B}") + hr = PInvoke.SHCreateItemFromParsingName(pszShellPath, null, IID.IID_IShellItem, (void**)&pShellItem); + + // Invalid FOLDERID; this should never happen. + hr.ThrowOnFailure(); + } + + ThisPtr = pShellItem; + } + + public IAsyncEnumerable GetItemsAsync(StorableType type = StorableType.All, CancellationToken cancellationToken = default) + { + using ComPtr pEnumShellItems = default; + + HRESULT hr = ThisPtr->BindToHandler(null, BHID.BHID_EnumItems, IID.IID_IEnumShellItems, (void**)pEnumShellItems.GetAddressOf()); + if (hr.ThrowIfFailedOnDebug().Failed) + return Enumerable.Empty().ToAsyncEnumerable(); + + List childItems = []; + + IShellItem* pChildShellItem = null; + while ((hr = pEnumShellItems.Get()->Next(1, &pChildShellItem)) == HRESULT.S_OK) + { + bool isFolder = pChildShellItem->GetAttributes(SFGAO_FLAGS.SFGAO_FOLDER, out var dwAttributes).Succeeded && dwAttributes is SFGAO_FLAGS.SFGAO_FOLDER; + + if (type.HasFlag(StorableType.File) && !isFolder) + { + childItems.Add(new WindowsFile(pChildShellItem)); + } + else if (type.HasFlag(StorableType.Folder) && isFolder) + { + childItems.Add(new WindowsFolder(pChildShellItem)); + } + } + + if (hr.ThrowIfFailedOnDebug().Failed) + return Enumerable.Empty().ToAsyncEnumerable(); + + return childItems.ToAsyncEnumerable(); + } + + public override void Dispose() + { + base.Dispose(); + + if (ShellNewMenu is not null) ShellNewMenu->Release(); + } + } +} diff --git a/src/Files.App.Storage/Windows/WindowsStorable.cs b/src/Files.App.Storage/Windows/WindowsStorable.cs new file mode 100644 index 000000000000..d7ed69cc2f31 --- /dev/null +++ b/src/Files.App.Storage/Windows/WindowsStorable.cs @@ -0,0 +1,114 @@ +// Copyright (c) Files Community +// Licensed under the MIT License. + +using System.Runtime.CompilerServices; +using Windows.Win32; +using Windows.Win32.Foundation; +using Windows.Win32.System.SystemServices; +using Windows.Win32.UI.Shell; + +namespace Files.App.Storage +{ + public unsafe abstract class WindowsStorable : IWindowsStorable + { + /// + public IShellItem* ThisPtr + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + set; + } + + /// + public IContextMenu* ContextMenu + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + get; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + set; + } + + /// + public string Id => this.GetDisplayName(SIGDN.SIGDN_FILESYSPATH); + + /// + public string Name => this.GetDisplayName(SIGDN.SIGDN_PARENTRELATIVEFORUI); + + public static WindowsStorable? TryParse(string szPath) + { + HRESULT hr = default; + IShellItem* pShellItem = null; + + fixed (char* pszPath = szPath) + hr = PInvoke.SHCreateItemFromParsingName(pszPath, null, IID.IID_IShellItem, (void**)&pShellItem); + + if (pShellItem is null) + return null; + + return TryParse(pShellItem); + } + + public static WindowsStorable? TryParse(IShellItem* pShellItem) + { + bool isFolder = pShellItem->GetAttributes(SFGAO_FLAGS.SFGAO_FOLDER, out var returnedAttributes).Succeeded && returnedAttributes is SFGAO_FLAGS.SFGAO_FOLDER; + + return isFolder ? new WindowsFolder(pShellItem) : new WindowsFile(pShellItem); + } + + /// + public unsafe Task GetParentAsync(CancellationToken cancellationToken = default) + { + cancellationToken.ThrowIfCancellationRequested(); + + IShellItem* pParentFolder = default; + HRESULT hr = ThisPtr->GetParent(&pParentFolder); + if (hr.ThrowIfFailedOnDebug().Failed) + return Task.FromResult(null); + + return Task.FromResult(new WindowsFolder(pParentFolder)); + } + + /// + public override bool Equals(object? obj) + { + return Equals(obj as IWindowsStorable); + } + + /// + public override int GetHashCode() + { + return HashCode.Combine(Id, Name); + } + + /// + public virtual void Dispose() + { + if (ThisPtr is not null) ThisPtr->Release(); + if (ContextMenu is not null) ContextMenu->Release(); + } + + /// + public override string ToString() + { + return this.GetDisplayName(); + } + + /// + public unsafe bool Equals(IWindowsStorable? other) + { + if (other is null) + return false; + + return ThisPtr->Compare(other.ThisPtr, (uint)_SICHINTF.SICHINT_DISPLAY, out int order).Succeeded && order is 0; + } + + public static bool operator ==(WindowsStorable left, WindowsStorable right) + => left.Equals(right); + + public static bool operator !=(WindowsStorable left, WindowsStorable right) + => !(left == right); + } +} diff --git a/src/Files.App/Actions/Content/Archives/Compress/BaseCompressArchiveAction.cs b/src/Files.App/Actions/Content/Archives/Compress/BaseCompressArchiveAction.cs index 51cb8befbf02..8add21c1d0b0 100644 --- a/src/Files.App/Actions/Content/Archives/Compress/BaseCompressArchiveAction.cs +++ b/src/Files.App/Actions/Content/Archives/Compress/BaseCompressArchiveAction.cs @@ -12,6 +12,9 @@ internal abstract class BaseCompressArchiveAction : BaseUIAction, IAction public abstract string Description { get; } + public RichGlyph Glyph + => new(themedIconStyle: "App.ThemedIcons.Zip"); + public override bool IsExecutable => IsContextPageTypeAdaptedToCommand() && StorageArchiveService.CanCompress(context.SelectedItems) && diff --git a/src/Files.App/Actions/Content/Archives/Decompress/BaseDecompressArchiveAction.cs b/src/Files.App/Actions/Content/Archives/Decompress/BaseDecompressArchiveAction.cs index f399becaf2e5..1c630e6d0d62 100644 --- a/src/Files.App/Actions/Content/Archives/Decompress/BaseDecompressArchiveAction.cs +++ b/src/Files.App/Actions/Content/Archives/Decompress/BaseDecompressArchiveAction.cs @@ -4,7 +4,6 @@ using Files.App.Dialogs; using Microsoft.UI.Xaml.Controls; using SevenZip; -using System.Diagnostics.CodeAnalysis; using System.Text; using Windows.Foundation.Metadata; using Windows.Storage; diff --git a/src/Files.App/Actions/Content/Background/SetAsLockscreenBackgroundAction.cs b/src/Files.App/Actions/Content/Background/SetAsLockscreenBackgroundAction.cs index 5723e4a4e1b6..79b6e48868b4 100644 --- a/src/Files.App/Actions/Content/Background/SetAsLockscreenBackgroundAction.cs +++ b/src/Files.App/Actions/Content/Background/SetAsLockscreenBackgroundAction.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Microsoft.Extensions.Logging; - namespace Files.App.Actions { internal sealed partial class SetAsLockscreenBackgroundAction : BaseSetAsAction diff --git a/src/Files.App/Actions/Content/Background/SetAsSlideshowBackgroundAction.cs b/src/Files.App/Actions/Content/Background/SetAsSlideshowBackgroundAction.cs index a903222eac62..f98ea84becad 100644 --- a/src/Files.App/Actions/Content/Background/SetAsSlideshowBackgroundAction.cs +++ b/src/Files.App/Actions/Content/Background/SetAsSlideshowBackgroundAction.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Microsoft.Extensions.Logging; - namespace Files.App.Actions { internal sealed partial class SetAsSlideshowBackgroundAction : BaseSetAsAction diff --git a/src/Files.App/Actions/Content/Background/SetAsWallpaperBackgroundAction.cs b/src/Files.App/Actions/Content/Background/SetAsWallpaperBackgroundAction.cs index 01e4775cdd31..b8c23e4294df 100644 --- a/src/Files.App/Actions/Content/Background/SetAsWallpaperBackgroundAction.cs +++ b/src/Files.App/Actions/Content/Background/SetAsWallpaperBackgroundAction.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Microsoft.Extensions.Logging; - namespace Files.App.Actions { internal sealed partial class SetAsWallpaperBackgroundAction : BaseSetAsAction diff --git a/src/Files.App/Actions/Content/Install/InstallInfDriverAction.cs b/src/Files.App/Actions/Content/Install/InstallInfDriverAction.cs index ac9bebad3c74..766b6b8df25f 100644 --- a/src/Files.App/Actions/Content/Install/InstallInfDriverAction.cs +++ b/src/Files.App/Actions/Content/Install/InstallInfDriverAction.cs @@ -11,7 +11,7 @@ internal sealed partial class InstallInfDriverAction : ObservableObject, IAction public string Label => Strings.InstallDriver.GetLocalizedResource(); - + public string Description => Strings.InstallInfDriverDescription.GetLocalizedFormatResource(context.SelectedItems.Count); diff --git a/src/Files.App/Actions/Content/PreviewPopup/LaunchPreviewPopupAction.cs b/src/Files.App/Actions/Content/PreviewPopup/LaunchPreviewPopupAction.cs index fbf3b3407874..ece2f77c629f 100644 --- a/src/Files.App/Actions/Content/PreviewPopup/LaunchPreviewPopupAction.cs +++ b/src/Files.App/Actions/Content/PreviewPopup/LaunchPreviewPopupAction.cs @@ -20,7 +20,6 @@ public HotKey HotKey public bool IsExecutable => context.SelectedItems.Count == 1 && - (!context.ShellPage?.ToolbarViewModel?.IsEditModeEnabled ?? false) && (!context.ShellPage?.SlimContentPage?.IsRenamingItem ?? false); public LaunchPreviewPopupAction() diff --git a/src/Files.App/Actions/Content/Selection/ClearSelectionAction.cs b/src/Files.App/Actions/Content/Selection/ClearSelectionAction.cs index a7e44beb059c..30ad883f98f2 100644 --- a/src/Files.App/Actions/Content/Selection/ClearSelectionAction.cs +++ b/src/Files.App/Actions/Content/Selection/ClearSelectionAction.cs @@ -30,11 +30,9 @@ public bool IsExecutable if (page is null) return false; - bool isCommandPaletteOpen = page.ToolbarViewModel.IsCommandPaletteOpen; - bool isEditing = page.ToolbarViewModel.IsEditModeEnabled; bool isRenaming = page.SlimContentPage.IsRenamingItem; - return isCommandPaletteOpen || (!isEditing && !isRenaming); + return !isRenaming; } } diff --git a/src/Files.App/Actions/Content/Selection/InvertSelectionAction.cs b/src/Files.App/Actions/Content/Selection/InvertSelectionAction.cs index 8054e9d0450e..d3bd0c95bfd2 100644 --- a/src/Files.App/Actions/Content/Selection/InvertSelectionAction.cs +++ b/src/Files.App/Actions/Content/Selection/InvertSelectionAction.cs @@ -30,11 +30,8 @@ public bool IsExecutable if (page is null) return false; - bool isCommandPaletteOpen = page.ToolbarViewModel.IsCommandPaletteOpen; - bool isEditing = page.ToolbarViewModel.IsEditModeEnabled; bool isRenaming = page.SlimContentPage.IsRenamingItem; - - return isCommandPaletteOpen || (!isEditing && !isRenaming); + return !isRenaming; } } diff --git a/src/Files.App/Actions/Content/Selection/SelectAllAction.cs b/src/Files.App/Actions/Content/Selection/SelectAllAction.cs index 5f3aae630853..0dac1beab3ad 100644 --- a/src/Files.App/Actions/Content/Selection/SelectAllAction.cs +++ b/src/Files.App/Actions/Content/Selection/SelectAllAction.cs @@ -35,11 +35,9 @@ public bool IsExecutable if (itemCount == selectedItemCount) return false; - bool isCommandPaletteOpen = page.ToolbarViewModel.IsCommandPaletteOpen; - bool isEditing = page.ToolbarViewModel.IsEditModeEnabled; bool isRenaming = page.SlimContentPage?.IsRenamingItem ?? false; - return isCommandPaletteOpen || (!isEditing && !isRenaming); + return !isRenaming; } } diff --git a/src/Files.App/Actions/Content/Tags/OpenAllTaggedActions.cs b/src/Files.App/Actions/Content/Tags/OpenAllTaggedActions.cs index e6492509db41..16e6fe0c5b4f 100644 --- a/src/Files.App/Actions/Content/Tags/OpenAllTaggedActions.cs +++ b/src/Files.App/Actions/Content/Tags/OpenAllTaggedActions.cs @@ -3,8 +3,8 @@ namespace Files.App.Actions { - sealed partial class OpenAllTaggedActions: ObservableObject, IAction - { + sealed partial class OpenAllTaggedActions : ObservableObject, IAction + { private readonly IContentPageContext _pageContext; private readonly ITagsContext _tagsContext; @@ -18,7 +18,7 @@ public string Description public RichGlyph Glyph => new("\uE71D"); - public bool IsExecutable => + public bool IsExecutable => _pageContext.ShellPage is not null && _tagsContext.TaggedItems.Any(); @@ -37,16 +37,16 @@ public async Task ExecuteAsync(object? parameter = null) .Where(item => !item.isFolder) .Select(f => f.path) .ToList(); - + var folderPaths = _tagsContext .TaggedItems .Where(item => item.isFolder) .Select(f => f.path) .ToList(); - + await Task.WhenAll(filePaths.Select(path => NavigationHelpers.OpenPath(path, _pageContext.ShellPage!))); - foreach (var path in folderPaths) + foreach (var path in folderPaths) await NavigationHelpers.OpenPathInNewTab(path); } diff --git a/src/Files.App/Actions/Display/LayoutAction.cs b/src/Files.App/Actions/Display/LayoutAction.cs index e57c6bf27774..1d26b8fc72cb 100644 --- a/src/Files.App/Actions/Display/LayoutAction.cs +++ b/src/Files.App/Actions/Display/LayoutAction.cs @@ -238,7 +238,7 @@ public Task ExecuteAsync(object? parameter = null) break; case FolderLayoutModes.CardsView: if (UserSettingsService.LayoutSettingsService.CardsViewSize > CardsViewSizeKind.Small) - UserSettingsService.LayoutSettingsService.CardsViewSize -= 1; + UserSettingsService.LayoutSettingsService.CardsViewSize -= 1; break; case FolderLayoutModes.GridView: if (UserSettingsService.LayoutSettingsService.GridViewSize > GridViewSizeKind.Small) @@ -275,7 +275,7 @@ public HotKey MediaHotKey public bool IsExecutable => ContentPageContext.PageType is not ContentPageTypes.Home && - ContentPageContext.ShellPage?.InstanceViewModel.FolderSettings.LayoutMode is FolderLayoutModes layoutMode && + ContentPageContext.ShellPage?.InstanceViewModel.FolderSettings.LayoutMode is FolderLayoutModes layoutMode && ((layoutMode is FolderLayoutModes.DetailsView && UserSettingsService.LayoutSettingsService.DetailsViewSize < DetailsViewSizeKind.ExtraLarge) || (layoutMode is FolderLayoutModes.ListView && UserSettingsService.LayoutSettingsService.ListViewSize < ListViewSizeKind.ExtraLarge) || (layoutMode is FolderLayoutModes.CardsView && UserSettingsService.LayoutSettingsService.CardsViewSize < CardsViewSizeKind.ExtraLarge) || diff --git a/src/Files.App/Actions/FileSystem/OpenItemAction.cs b/src/Files.App/Actions/FileSystem/OpenItemAction.cs index 34c4d7cfdfae..87519b842cda 100644 --- a/src/Files.App/Actions/FileSystem/OpenItemAction.cs +++ b/src/Files.App/Actions/FileSystem/OpenItemAction.cs @@ -15,7 +15,7 @@ public string Label public string Description => Strings.OpenItemDescription.GetLocalizedFormatResource(context.SelectedItems.Count); - + public RichGlyph Glyph => new(themedIconStyle: "App.ThemedIcons.OpenFile"); diff --git a/src/Files.App/Actions/FileSystem/Transfer/BaseTransferItemAction.cs b/src/Files.App/Actions/FileSystem/Transfer/BaseTransferItemAction.cs index aa37f1fbd908..a9addf150083 100644 --- a/src/Files.App/Actions/FileSystem/Transfer/BaseTransferItemAction.cs +++ b/src/Files.App/Actions/FileSystem/Transfer/BaseTransferItemAction.cs @@ -6,7 +6,6 @@ using System.IO; using Windows.ApplicationModel.DataTransfer; using Windows.Storage; -using Windows.System; namespace Files.App.Actions { diff --git a/src/Files.App/Actions/Git/GitFetchAction.cs b/src/Files.App/Actions/Git/GitFetchAction.cs index cb6016fa2af5..dc0a3842ef50 100644 --- a/src/Files.App/Actions/Git/GitFetchAction.cs +++ b/src/Files.App/Actions/Git/GitFetchAction.cs @@ -19,7 +19,7 @@ public bool IsExecutable public GitFetchAction() { _context = Ioc.Default.GetRequiredService(); - + _context.PropertyChanged += Context_PropertyChanged; } diff --git a/src/Files.App/Actions/Git/GitInitAction.cs b/src/Files.App/Actions/Git/GitInitAction.cs index c472b3251d89..11f323948793 100644 --- a/src/Files.App/Actions/Git/GitInitAction.cs +++ b/src/Files.App/Actions/Git/GitInitAction.cs @@ -3,8 +3,8 @@ namespace Files.App.Actions { - sealed partial class GitInitAction : ObservableObject, IAction - { + sealed partial class GitInitAction : ObservableObject, IAction + { private readonly IContentPageContext _context; public string Label @@ -13,7 +13,7 @@ public string Label public string Description => Strings.InitRepoDescription.GetLocalizedResource(); - public bool IsExecutable => + public bool IsExecutable => _context.Folder is not null && _context.Folder.ItemPath != SystemIO.Path.GetPathRoot(_context.Folder.ItemPath) && !_context.IsGitRepository; diff --git a/src/Files.App/Actions/Global/EditPathAction.cs b/src/Files.App/Actions/Global/EditPathAction.cs index 1f4ce2013182..302c9d0f9b30 100644 --- a/src/Files.App/Actions/Global/EditPathAction.cs +++ b/src/Files.App/Actions/Global/EditPathAction.cs @@ -20,6 +20,9 @@ public HotKey HotKey public HotKey SecondHotKey => new(Keys.D, KeyModifiers.Alt); + public RichGlyph Glyph + => new(themedIconStyle: "App.ThemedIcons.Omnibar.Path"); + public EditPathAction() { @@ -28,12 +31,7 @@ public EditPathAction() public Task ExecuteAsync(object? parameter = null) { if (context.ShellPage is not null) - { - if (GeneralSettingsService.EnableOmnibar) - context.ShellPage!.ToolbarViewModel.SwitchToPathMode(); - else - context.ShellPage.ToolbarViewModel.IsEditModeEnabled = true; - } + context.ShellPage!.ToolbarViewModel.SwitchToPathMode(); return Task.CompletedTask; } diff --git a/src/Files.App/Actions/Global/SearchAction.cs b/src/Files.App/Actions/Global/SearchAction.cs index 77ad67222e59..446a301695a4 100644 --- a/src/Files.App/Actions/Global/SearchAction.cs +++ b/src/Files.App/Actions/Global/SearchAction.cs @@ -20,16 +20,11 @@ public HotKey SecondHotKey => new(Keys.F3); public RichGlyph Glyph - => new(); - - public bool IsExecutable - => !context.IsSearchBoxVisible; + => new(themedIconStyle: "App.ThemedIcons.Omnibar.Search"); public SearchAction() { context = Ioc.Default.GetRequiredService(); - - context.PropertyChanged += Context_PropertyChanged; } public Task ExecuteAsync(object? parameter = null) @@ -38,15 +33,5 @@ public Task ExecuteAsync(object? parameter = null) return Task.CompletedTask; } - - private void Context_PropertyChanged(object? sender, PropertyChangedEventArgs e) - { - switch (e.PropertyName) - { - case nameof(IContentPageContext.IsSearchBoxVisible): - OnPropertyChanged(nameof(IsExecutable)); - break; - } - } } } diff --git a/src/Files.App/Actions/Navigation/ArrangePanesHorizontallyAction.cs b/src/Files.App/Actions/Navigation/ArrangePanesHorizontallyAction.cs index fe222f926084..7651851893ef 100644 --- a/src/Files.App/Actions/Navigation/ArrangePanesHorizontallyAction.cs +++ b/src/Files.App/Actions/Navigation/ArrangePanesHorizontallyAction.cs @@ -15,7 +15,7 @@ public string Description => Strings.ArrangePanesHorizontallyDescription.GetLocalizedResource(); public RichGlyph Glyph - => new(themedIconStyle: "App.ThemedIcons.Panes.Vertical"); + => new(themedIconStyle: "App.ThemedIcons.Panes.Horizontal"); public bool IsOn => MultiPanesContext.ShellPaneArrangement is ShellPaneArrangement.Horizontal; diff --git a/src/Files.App/Actions/Navigation/ArrangePanesVerticallyAction.cs b/src/Files.App/Actions/Navigation/ArrangePanesVerticallyAction.cs index f3f000c80be5..264f1291afe2 100644 --- a/src/Files.App/Actions/Navigation/ArrangePanesVerticallyAction.cs +++ b/src/Files.App/Actions/Navigation/ArrangePanesVerticallyAction.cs @@ -15,7 +15,7 @@ public string Description => Strings.ArrangePanesVerticallyDescription.GetLocalizedResource(); public RichGlyph Glyph - => new(themedIconStyle: "App.ThemedIcons.Panes.Horizontal"); + => new(themedIconStyle: "App.ThemedIcons.Panes.Vertical"); public bool IsOn => MultiPanesContext.ShellPaneArrangement is ShellPaneArrangement.Vertical; diff --git a/src/Files.App/Actions/Navigation/CloseTabBaseAction.cs b/src/Files.App/Actions/Navigation/CloseTabBaseAction.cs index 051957f3ce10..d5f14cd0d924 100644 --- a/src/Files.App/Actions/Navigation/CloseTabBaseAction.cs +++ b/src/Files.App/Actions/Navigation/CloseTabBaseAction.cs @@ -10,13 +10,13 @@ internal abstract class CloseTabBaseAction : ObservableObject, IAction public abstract string Label { get; } public abstract string Description { get; } - + public bool IsExecutable => GetIsExecutable(); public virtual HotKey HotKey => HotKey.None; - + public virtual HotKey SecondHotKey => HotKey.None; diff --git a/src/Files.App/Actions/Navigation/NextTabAction.cs b/src/Files.App/Actions/Navigation/NextTabAction.cs index b80a9dc724c5..9a34d91a7ddf 100644 --- a/src/Files.App/Actions/Navigation/NextTabAction.cs +++ b/src/Files.App/Actions/Navigation/NextTabAction.cs @@ -36,7 +36,7 @@ public async Task ExecuteAsync(object? parameter = null) // Small delay for the UI to load await Task.Delay(500); - // Refocus on the file list + // Focus the content of the selected tab item (needed for keyboard navigation) (multitaskingContext.CurrentTabItem.TabItemContent as Control)?.Focus(FocusState.Programmatic); } diff --git a/src/Files.App/Actions/Navigation/PreviousTabAction.cs b/src/Files.App/Actions/Navigation/PreviousTabAction.cs index c75104b5ecee..c393ae86055b 100644 --- a/src/Files.App/Actions/Navigation/PreviousTabAction.cs +++ b/src/Files.App/Actions/Navigation/PreviousTabAction.cs @@ -39,7 +39,7 @@ public async Task ExecuteAsync(object? parameter = null) // Small delay for the UI to load await Task.Delay(500); - // Refocus on the file list + // Focus the content of the selected tab item (needed for keyboard navigation) (multitaskingContext.CurrentTabItem.TabItemContent as Control)?.Focus(FocusState.Programmatic); } diff --git a/src/Files.App/Actions/Navigation/ReopenClosedTabAction.cs b/src/Files.App/Actions/Navigation/ReopenClosedTabAction.cs index 5631d0b914e3..2be7e45b532b 100644 --- a/src/Files.App/Actions/Navigation/ReopenClosedTabAction.cs +++ b/src/Files.App/Actions/Navigation/ReopenClosedTabAction.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.UserControls.TabBar; - namespace Files.App.Actions { internal sealed partial class ReopenClosedTabAction : ObservableObject, IAction diff --git a/src/Files.App/Actions/Navigation/AddHorizontalPaneAction.cs b/src/Files.App/Actions/Navigation/SplitPaneHorizontallyAction.cs similarity index 79% rename from src/Files.App/Actions/Navigation/AddHorizontalPaneAction.cs rename to src/Files.App/Actions/Navigation/SplitPaneHorizontallyAction.cs index b9939bf4d92a..a25e89eb50c3 100644 --- a/src/Files.App/Actions/Navigation/AddHorizontalPaneAction.cs +++ b/src/Files.App/Actions/Navigation/SplitPaneHorizontallyAction.cs @@ -3,28 +3,28 @@ namespace Files.App.Actions { - internal sealed partial class AddHorizontalPaneAction : ObservableObject, IAction + internal sealed partial class SplitPaneHorizontallyAction : ObservableObject, IAction { private readonly IContentPageContext ContentPageContext = Ioc.Default.GetRequiredService(); private readonly IGeneralSettingsService GeneralSettingsService = Ioc.Default.GetRequiredService(); public string Label - => Strings.AddHorizontalPane.GetLocalizedResource(); + => Strings.SplitPaneHorizontally.GetLocalizedResource(); public string Description - => Strings.AddHorizontalPaneDescription.GetLocalizedResource(); + => Strings.SplitPaneHorizontallyDescription.GetLocalizedResource(); public HotKey HotKey => new(Keys.H, KeyModifiers.AltShift); public RichGlyph Glyph - => new(themedIconStyle: "App.ThemedIcons.Panes.Vertical"); + => new(themedIconStyle: "App.ThemedIcons.Panes.Horizontal"); public bool IsExecutable => ContentPageContext.IsMultiPaneAvailable && !ContentPageContext.IsMultiPaneActive; - public AddHorizontalPaneAction() + public SplitPaneHorizontallyAction() { ContentPageContext.PropertyChanged += ContentPageContext_PropertyChanged; } diff --git a/src/Files.App/Actions/Navigation/AddVerticalPaneAction.cs b/src/Files.App/Actions/Navigation/SplitPaneVerticallyAction.cs similarity index 84% rename from src/Files.App/Actions/Navigation/AddVerticalPaneAction.cs rename to src/Files.App/Actions/Navigation/SplitPaneVerticallyAction.cs index df7829da23da..a8e5a5a712fc 100644 --- a/src/Files.App/Actions/Navigation/AddVerticalPaneAction.cs +++ b/src/Files.App/Actions/Navigation/SplitPaneVerticallyAction.cs @@ -3,13 +3,13 @@ namespace Files.App.Actions { - internal sealed partial class AddVerticalPaneAction : ObservableObject, IAction + internal sealed partial class SplitPaneVerticallyAction : ObservableObject, IAction { private readonly IContentPageContext ContentPageContext = Ioc.Default.GetRequiredService(); private readonly IGeneralSettingsService GeneralSettingsService = Ioc.Default.GetRequiredService(); public string Label - => Strings.AddVerticalPane.GetLocalizedResource(); + => Strings.SplitPaneVertically.GetLocalizedResource(); public string Description => Strings.AddVerticalPaneDescription.GetLocalizedResource(); @@ -18,13 +18,13 @@ public HotKey HotKey => new(Keys.V, KeyModifiers.AltShift); public RichGlyph Glyph - => new(themedIconStyle: "App.ThemedIcons.Panes.Horizontal"); + => new(themedIconStyle: "App.ThemedIcons.Panes.Vertical"); public bool IsExecutable => ContentPageContext.IsMultiPaneAvailable && !ContentPageContext.IsMultiPaneActive; - public AddVerticalPaneAction() + public SplitPaneVerticallyAction() { ContentPageContext.PropertyChanged += ContentPageContext_PropertyChanged; } diff --git a/src/Files.App/Actions/Open/OpenPropertiesAction.cs b/src/Files.App/Actions/Open/OpenPropertiesAction.cs index 3e65026262d6..2cc4247eb02b 100644 --- a/src/Files.App/Actions/Open/OpenPropertiesAction.cs +++ b/src/Files.App/Actions/Open/OpenPropertiesAction.cs @@ -21,7 +21,7 @@ public HotKey HotKey public bool IsExecutable => context.PageType is not ContentPageTypes.Home && - !(context.PageType is ContentPageTypes.SearchResults && + !(context.PageType is ContentPageTypes.SearchResults && !context.HasSelection); public OpenPropertiesAction() @@ -50,7 +50,7 @@ private void OpenPropertiesFromItemContextMenuFlyout(object? _, object e) var page = context.ShellPage?.SlimContentPage; if (page is not null) page.ItemContextMenuFlyout.Closed -= OpenPropertiesFromItemContextMenuFlyout; - + FilePropertiesHelpers.OpenPropertiesWindow(context.ShellPage!); } @@ -59,7 +59,7 @@ private void OpenPropertiesFromBaseContextMenuFlyout(object? _, object e) var page = context.ShellPage?.SlimContentPage; if (page is not null) page.BaseContextMenuFlyout.Closed -= OpenPropertiesFromBaseContextMenuFlyout; - + FilePropertiesHelpers.OpenPropertiesWindow(context.ShellPage!); } diff --git a/src/Files.App/Actions/Open/OpenRepoInIDEAction.cs b/src/Files.App/Actions/Open/OpenRepoInIDEAction.cs index 0d4d346850cd..c4c3d5514f30 100644 --- a/src/Files.App/Actions/Open/OpenRepoInIDEAction.cs +++ b/src/Files.App/Actions/Open/OpenRepoInIDEAction.cs @@ -2,7 +2,7 @@ // Licensed under the MIT License. namespace Files.App.Actions -{ +{ internal sealed partial class OpenRepoInIDEAction : ObservableObject, IAction { private readonly IDevToolsSettingsService _devToolsSettingsService; diff --git a/src/Files.App/Actions/Open/OpenSettingsAction.cs b/src/Files.App/Actions/Open/OpenSettingsAction.cs index 80f1d03531f4..1278f0560df6 100644 --- a/src/Files.App/Actions/Open/OpenSettingsAction.cs +++ b/src/Files.App/Actions/Open/OpenSettingsAction.cs @@ -20,6 +20,9 @@ public string Description public HotKey HotKey => new(Keys.OemComma, KeyModifiers.Ctrl); + public RichGlyph Glyph + => new(themedIconStyle: "App.ThemedIcons.Settings"); + public Task ExecuteAsync(object? parameter = null) { var dialog = dialogService.GetDialog(viewModel); diff --git a/src/Files.App/Actions/Show/ToggleDualPaneAction.cs b/src/Files.App/Actions/Show/ToggleDualPaneAction.cs new file mode 100644 index 000000000000..a7004a0957ec --- /dev/null +++ b/src/Files.App/Actions/Show/ToggleDualPaneAction.cs @@ -0,0 +1,46 @@ +// Copyright (c) Files Community +// Licensed under the MIT License. + +namespace Files.App.Actions +{ + internal sealed partial class ToggleDualPaneAction : ObservableObject, IToggleAction + { + private readonly IContentPageContext ContentPageContext = Ioc.Default.GetRequiredService(); + private readonly IGeneralSettingsService generalSettingsService = Ioc.Default.GetRequiredService(); + + public string Label + => Strings.ToggleDualPane.GetLocalizedResource(); + + public string Description + => Strings.ToggleDualPaneDescription.GetLocalizedResource(); + + public bool IsOn + => ContentPageContext.IsMultiPaneActive; + + public ToggleDualPaneAction() + { + ContentPageContext.PropertyChanged += ContentPageContext_PropertyChanged; + } + + public Task ExecuteAsync(object? parameter = null) + { + if (IsOn) + ContentPageContext.ShellPage?.PaneHolder.CloseOtherPane(); + else + ContentPageContext.ShellPage?.PaneHolder.OpenSecondaryPane(arrangement: generalSettingsService.ShellPaneArrangementOption); + + return Task.CompletedTask; + } + + private void ContentPageContext_PropertyChanged(object? sender, PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case nameof(IContentPageContext.ShellPage): + case nameof(IContentPageContext.IsMultiPaneActive): + OnPropertyChanged(nameof(IsOn)); + break; + } + } + } +} diff --git a/src/Files.App/Actions/Show/ToggleFilterHeaderAction.cs b/src/Files.App/Actions/Show/ToggleFilterHeaderAction.cs new file mode 100644 index 000000000000..965776269510 --- /dev/null +++ b/src/Files.App/Actions/Show/ToggleFilterHeaderAction.cs @@ -0,0 +1,44 @@ +// Copyright (c) Files Community +// Licensed under the MIT License. + +namespace Files.App.Actions +{ + internal sealed partial class ToggleFilterHeaderAction : ObservableObject, IToggleAction + { + private readonly IGeneralSettingsService generalSettingsService = Ioc.Default.GetRequiredService(); + private readonly IContentPageContext ContentPageContext = Ioc.Default.GetRequiredService(); + + public string Label + => Strings.ToggleFilterHeader.GetLocalizedResource(); + + public string Description + => Strings.ToggleFilterHeaderDescription.GetLocalizedResource(); + + public RichGlyph Glyph + => new(themedIconStyle: "App.ThemedIcons.Filter"); + + public bool IsOn + => generalSettingsService.ShowFilterHeader; + + public ToggleFilterHeaderAction() + { + generalSettingsService.PropertyChanged += GeneralSettingsService_PropertyChanged; + } + + public Task ExecuteAsync(object? parameter = null) + { + generalSettingsService.ShowFilterHeader = !IsOn; + + if (IsOn) + ContentPageContext.ShellPage!.ShellViewModel.InvokeFocusFilterHeader(); + + return Task.CompletedTask; + } + + private void GeneralSettingsService_PropertyChanged(object? sender, PropertyChangedEventArgs e) + { + if (e.PropertyName is nameof(GeneralSettingsService.ShowFilterHeader)) + OnPropertyChanged(nameof(IsOn)); + } + } +} diff --git a/src/Files.App/Actions/Show/ToggleShelfPaneAction.cs b/src/Files.App/Actions/Show/ToggleShelfPaneAction.cs index 43ff818fa7fa..93242351c900 100644 --- a/src/Files.App/Actions/Show/ToggleShelfPaneAction.cs +++ b/src/Files.App/Actions/Show/ToggleShelfPaneAction.cs @@ -23,7 +23,7 @@ public bool IsAccessibleGlobally // TODO Remove IsExecutable when shelf feature is ready public bool IsExecutable => AppLifecycleHelper.AppEnvironment is AppEnvironment.Dev; - + public bool IsOn => generalSettingsService.ShowShelfPane; diff --git a/src/Files.App/Assets/Archives/ExtensionIcon.targetsize-256.png b/src/Files.App/Assets/Archives/ExtensionIcon.targetsize-256.png index c448d7c923d5..ac0fc82c2fcc 100644 Binary files a/src/Files.App/Assets/Archives/ExtensionIcon.targetsize-256.png and b/src/Files.App/Assets/Archives/ExtensionIcon.targetsize-256.png differ diff --git a/src/Files.App/Assets/Shelf/EmptyShelf_100_ThemeDark.svg b/src/Files.App/Assets/Shelf/EmptyShelf_100_ThemeDark.svg index a880a12b61da..2f7cfa0b9c5b 100644 --- a/src/Files.App/Assets/Shelf/EmptyShelf_100_ThemeDark.svg +++ b/src/Files.App/Assets/Shelf/EmptyShelf_100_ThemeDark.svg @@ -1,39 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/src/Files.App/Assets/Shelf/EmptyShelf_100_ThemeLight.svg b/src/Files.App/Assets/Shelf/EmptyShelf_100_ThemeLight.svg index 960e83a84746..d6376c979f62 100644 --- a/src/Files.App/Assets/Shelf/EmptyShelf_100_ThemeLight.svg +++ b/src/Files.App/Assets/Shelf/EmptyShelf_100_ThemeLight.svg @@ -1,39 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/src/Files.App/Assets/Shelf/EmptyShelf_200_ThemeDark.svg b/src/Files.App/Assets/Shelf/EmptyShelf_200_ThemeDark.svg index cd8c95941f5e..7e660a2a6b3d 100644 --- a/src/Files.App/Assets/Shelf/EmptyShelf_200_ThemeDark.svg +++ b/src/Files.App/Assets/Shelf/EmptyShelf_200_ThemeDark.svg @@ -1,49 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/src/Files.App/Assets/Shelf/EmptyShelf_200_ThemeLight.svg b/src/Files.App/Assets/Shelf/EmptyShelf_200_ThemeLight.svg index b08fc3824d9a..79b7fd258c17 100644 --- a/src/Files.App/Assets/Shelf/EmptyShelf_200_ThemeLight.svg +++ b/src/Files.App/Assets/Shelf/EmptyShelf_200_ThemeLight.svg @@ -1,49 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/src/Files.App/Assets/Shelf/EmptyShelf_48_ThemeDark.svg b/src/Files.App/Assets/Shelf/EmptyShelf_48_ThemeDark.svg index 9e69f4e8a31c..5c215a323d74 100644 --- a/src/Files.App/Assets/Shelf/EmptyShelf_48_ThemeDark.svg +++ b/src/Files.App/Assets/Shelf/EmptyShelf_48_ThemeDark.svg @@ -1,14 +1 @@ - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/src/Files.App/Assets/Shelf/EmptyShelf_48_ThemeLight.svg b/src/Files.App/Assets/Shelf/EmptyShelf_48_ThemeLight.svg index ae98f5b685d2..d1433f812d75 100644 --- a/src/Files.App/Assets/Shelf/EmptyShelf_48_ThemeLight.svg +++ b/src/Files.App/Assets/Shelf/EmptyShelf_48_ThemeLight.svg @@ -1,14 +1 @@ - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/src/Files.App/Assets/Sidebar/EmptySidebar_100_ThemeDark.svg b/src/Files.App/Assets/Sidebar/EmptySidebar_100_ThemeDark.svg index c35293f28de0..df74f1c71dd0 100644 --- a/src/Files.App/Assets/Sidebar/EmptySidebar_100_ThemeDark.svg +++ b/src/Files.App/Assets/Sidebar/EmptySidebar_100_ThemeDark.svg @@ -1,33 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/src/Files.App/Assets/Sidebar/EmptySidebar_100_ThemeLight.svg b/src/Files.App/Assets/Sidebar/EmptySidebar_100_ThemeLight.svg index 9b09b8760503..044f44721283 100644 --- a/src/Files.App/Assets/Sidebar/EmptySidebar_100_ThemeLight.svg +++ b/src/Files.App/Assets/Sidebar/EmptySidebar_100_ThemeLight.svg @@ -1,33 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/src/Files.App/Assets/Sidebar/EmptySidebar_200_ThemeDark.svg b/src/Files.App/Assets/Sidebar/EmptySidebar_200_ThemeDark.svg index 2c0ac5003ea2..e1f199493836 100644 --- a/src/Files.App/Assets/Sidebar/EmptySidebar_200_ThemeDark.svg +++ b/src/Files.App/Assets/Sidebar/EmptySidebar_200_ThemeDark.svg @@ -1,43 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/src/Files.App/Assets/Sidebar/EmptySidebar_200_ThemeLight.svg b/src/Files.App/Assets/Sidebar/EmptySidebar_200_ThemeLight.svg index 202e31370a22..d26bca2b4a21 100644 --- a/src/Files.App/Assets/Sidebar/EmptySidebar_200_ThemeLight.svg +++ b/src/Files.App/Assets/Sidebar/EmptySidebar_200_ThemeLight.svg @@ -1,43 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/src/Files.App/Assets/Sidebar/EmptySidebar_48_ThemeDark.svg b/src/Files.App/Assets/Sidebar/EmptySidebar_48_ThemeDark.svg index 55ac929e7e6d..597b1f5484ee 100644 --- a/src/Files.App/Assets/Sidebar/EmptySidebar_48_ThemeDark.svg +++ b/src/Files.App/Assets/Sidebar/EmptySidebar_48_ThemeDark.svg @@ -1,9 +1 @@ - - - - - - - - - + \ No newline at end of file diff --git a/src/Files.App/Assets/Sidebar/EmptySidebar_48_ThemeLight.svg b/src/Files.App/Assets/Sidebar/EmptySidebar_48_ThemeLight.svg index d2fde0aae14e..afdff01524b7 100644 --- a/src/Files.App/Assets/Sidebar/EmptySidebar_48_ThemeLight.svg +++ b/src/Files.App/Assets/Sidebar/EmptySidebar_48_ThemeLight.svg @@ -1,9 +1 @@ - - - - - - - - - + \ No newline at end of file diff --git a/src/Files.App/Constants.cs b/src/Files.App/Constants.cs index b92eb22f08a0..cd124ecbfc98 100644 --- a/src/Files.App/Constants.cs +++ b/src/Files.App/Constants.cs @@ -56,6 +56,7 @@ public static class ImageRes public const int Libraries = 1023; public const int Folder = 3; public const int ShieldIcon = 78; + public const int SearchIcon = 177; } public static class Shell32 @@ -205,9 +206,9 @@ public static class ExternalUrl public const string FeatureRequestUrl = @"https://github.com/files-community/Files/issues/new?labels=feature+request&template=feature_request.yml"; public const string BugReportUrl = @"https://github.com/files-community/Files/issues/new?labels=bug&template=bug_report.yml"; public const string PrivacyPolicyUrl = @"https://files.community/privacy"; - public const string SupportUsUrl = @"https://github.com/sponsors/yaira2"; + public const string SupportUsUrl = @"https://github.com/files-community/Files?sponsor"; public const string CrowdinUrl = @"https://crowdin.com/project/files-app"; - public static readonly string ReleaseNotesUrl= $"https://files.community/blog/posts/v{Package.Current.Id.Version.Major}-{Package.Current.Id.Version.Minor}-{Package.Current.Id.Version.Build}?minimal"; + public static readonly string ReleaseNotesUrl = $"https://files.community/blog/posts/v{Package.Current.Id.Version.Major}-{Package.Current.Id.Version.Minor}-{Package.Current.Id.Version.Build}?minimal"; } public static class DocsPath @@ -219,7 +220,7 @@ public static class Actions { public const int MaxSelectedItems = 5; } - + public static class DragAndDrop { public const Int32 HoverToOpenTimespan = 1300; diff --git a/src/Files.App/Converters/StatusCenterStateToBrushConverter.cs b/src/Files.App/Converters/StatusCenterStateToBrushConverter.cs index 8b8a53606563..77398fc0f141 100644 --- a/src/Files.App/Converters/StatusCenterStateToBrushConverter.cs +++ b/src/Files.App/Converters/StatusCenterStateToBrushConverter.cs @@ -84,7 +84,7 @@ public SolidColorBrush CanceledForegroundBrush public object? Convert(object value, Type targetType, object parameter, string language) { if (value is StatusCenterItemKind state) - { + { if (bool.TryParse(parameter?.ToString(), out var isBackground) && isBackground) { return state switch diff --git a/src/Files.App/Converters/StatusCenterStateToStateIconConverter.cs b/src/Files.App/Converters/StatusCenterStateToStateIconConverter.cs index 178bb4ba7ce0..62a01038914a 100644 --- a/src/Files.App/Converters/StatusCenterStateToStateIconConverter.cs +++ b/src/Files.App/Converters/StatusCenterStateToStateIconConverter.cs @@ -17,16 +17,16 @@ partial class StatusCenterStateToStateIconConverter : IValueConverter { var pathMarkup = state switch { - StatusCenterItemIconKind.Copy => Application.Current.Resources["App.Theme.PathIcon.ActionCopy"] as string, - StatusCenterItemIconKind.Move => Application.Current.Resources["App.Theme.PathIcon.ActionMove"] as string, - StatusCenterItemIconKind.Delete => Application.Current.Resources["App.Theme.PathIcon.ActionDelete"] as string, - StatusCenterItemIconKind.Recycle => Application.Current.Resources["App.Theme.PathIcon.ActionDelete"] as string, - StatusCenterItemIconKind.Extract => Application.Current.Resources["App.Theme.PathIcon.ActionExtract"] as string, - StatusCenterItemIconKind.Compress => Application.Current.Resources["App.Theme.PathIcon.ActionExtract"] as string, - StatusCenterItemIconKind.Successful => Application.Current.Resources["App.Theme.PathIcon.ActionSuccess"] as string, - StatusCenterItemIconKind.Error => Application.Current.Resources["App.Theme.PathIcon.ActionInfo"] as string, - StatusCenterItemIconKind.GitClone => Application.Current.Resources["App.Theme.PathIcon.ActionGitClone"] as string, - StatusCenterItemIconKind.InstallFont => Application.Current.Resources["App.Theme.PathIcon.ActionInstallFont"] as string, + StatusCenterItemIconKind.Copy => Application.Current.Resources["App.Theme.PathIcon.ActionCopy"] as string, + StatusCenterItemIconKind.Move => Application.Current.Resources["App.Theme.PathIcon.ActionMove"] as string, + StatusCenterItemIconKind.Delete => Application.Current.Resources["App.Theme.PathIcon.ActionDelete"] as string, + StatusCenterItemIconKind.Recycle => Application.Current.Resources["App.Theme.PathIcon.ActionDelete"] as string, + StatusCenterItemIconKind.Extract => Application.Current.Resources["App.Theme.PathIcon.ActionExtract"] as string, + StatusCenterItemIconKind.Compress => Application.Current.Resources["App.Theme.PathIcon.ActionExtract"] as string, + StatusCenterItemIconKind.Successful => Application.Current.Resources["App.Theme.PathIcon.ActionSuccess"] as string, + StatusCenterItemIconKind.Error => Application.Current.Resources["App.Theme.PathIcon.ActionInfo"] as string, + StatusCenterItemIconKind.GitClone => Application.Current.Resources["App.Theme.PathIcon.ActionGitClone"] as string, + StatusCenterItemIconKind.InstallFont => Application.Current.Resources["App.Theme.PathIcon.ActionInstallFont"] as string, _ => "" }; diff --git a/src/Files.App/Data/AppModels/SingleFileDatabaseModel.cs b/src/Files.App/Data/AppModels/SingleFileDatabaseModel.cs index 162d14a84083..9b858e0dfcd1 100644 --- a/src/Files.App/Data/AppModels/SingleFileDatabaseModel.cs +++ b/src/Files.App/Data/AppModels/SingleFileDatabaseModel.cs @@ -1,8 +1,4 @@ -using Files.Core.Storage; -using Files.Core.Storage.Extensions; -using Files.Core.Storage.Storables; -using Files.Shared.Extensions; -using Files.Shared.Utils; +using Files.Shared.Utils; using System.IO; namespace Files.App.Data.AppModels diff --git a/src/Files.App/Data/Behaviors/StickyHeaderBehavior.cs b/src/Files.App/Data/Behaviors/StickyHeaderBehavior.cs index 29fafb438288..d41f144e626b 100644 --- a/src/Files.App/Data/Behaviors/StickyHeaderBehavior.cs +++ b/src/Files.App/Data/Behaviors/StickyHeaderBehavior.cs @@ -8,9 +8,6 @@ using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Hosting; -using Microsoft.UI.Xaml.Input; -using Microsoft.UI.Xaml.Media; -using Windows.Foundation; using Windows.Foundation.Metadata; namespace Files.App.Data.Behaviors diff --git a/src/Files.App/Data/Commands/ActionCommand.cs b/src/Files.App/Data/Commands/ActionCommand.cs index d3a413ce2721..51a122c6258f 100644 --- a/src/Files.App/Data/Commands/ActionCommand.cs +++ b/src/Files.App/Data/Commands/ActionCommand.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Sentry; using Files.App.Actions; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; diff --git a/src/Files.App/Data/Commands/HotKey/HotKey.cs b/src/Files.App/Data/Commands/HotKey/HotKey.cs index 4c710e3d783d..f3ad7362fc60 100644 --- a/src/Files.App/Data/Commands/HotKey/HotKey.cs +++ b/src/Files.App/Data/Commands/HotKey/HotKey.cs @@ -2,7 +2,6 @@ // Licensed under the MIT License. using System.Collections.Frozen; -using System.Runtime.InteropServices; using System.Text; using Windows.Win32; using Forms = System.Windows.Forms; @@ -279,6 +278,9 @@ public HotKey(Keys key, KeyModifiers modifier = KeyModifiers.None, bool isVisibl /// Humanized code with a format . public static HotKey Parse(string code, bool localized = true) { + if (string.IsNullOrEmpty(code)) + return None; + var key = Keys.None; var modifier = KeyModifiers.None; bool isVisible = true; @@ -306,7 +308,7 @@ public static HotKey Parse(string code, bool localized = true) { parts = [code]; } - else if (parts.Count > 0 && string.IsNullOrEmpty(parts.Last())) + else if (parts.Count > 1 && string.IsNullOrEmpty(parts.Last())) { // If the last part is empty, remove it and add a "+" to the last non-empty part parts.RemoveAt(parts.Count - 1); diff --git a/src/Files.App/Data/Commands/Manager/CommandCodes.cs b/src/Files.App/Data/Commands/Manager/CommandCodes.cs index edaa553cba0e..100ee5b89476 100644 --- a/src/Files.App/Data/Commands/Manager/CommandCodes.cs +++ b/src/Files.App/Data/Commands/Manager/CommandCodes.cs @@ -27,6 +27,8 @@ public enum CommandCodes ToggleInfoPane, ToggleToolbar, ToggleShelfPane, + ToggleFilterHeader, + ToggleDualPane, // File System CopyItem, @@ -211,8 +213,8 @@ public enum CommandCodes // Shell Panes CloseActivePane, FocusOtherPane, - AddVerticalPane, - AddHorizontalPane, + SplitPaneVertically, + SplitPaneHorizontally, ArrangePanesVertically, ArrangePanesHorizontally, diff --git a/src/Files.App/Data/Commands/Manager/CommandManager.cs b/src/Files.App/Data/Commands/Manager/CommandManager.cs index a0aa75e55b31..626f6e4c29fb 100644 --- a/src/Files.App/Data/Commands/Manager/CommandManager.cs +++ b/src/Files.App/Data/Commands/Manager/CommandManager.cs @@ -58,6 +58,8 @@ public IRichCommand this[HotKey hotKey] public IRichCommand ToggleInfoPane => commands[CommandCodes.ToggleInfoPane]; public IRichCommand ToggleToolbar => commands[CommandCodes.ToggleToolbar]; public IRichCommand ToggleShelfPane => commands[CommandCodes.ToggleShelfPane]; + public IRichCommand ToggleFilterHeader => commands[CommandCodes.ToggleFilterHeader]; + public IRichCommand ToggleDualPane => commands[CommandCodes.ToggleDualPane]; public IRichCommand SelectAll => commands[CommandCodes.SelectAll]; public IRichCommand InvertSelection => commands[CommandCodes.InvertSelection]; public IRichCommand ClearSelection => commands[CommandCodes.ClearSelection]; @@ -133,7 +135,7 @@ public IRichCommand this[HotKey hotKey] public IRichCommand LayoutIncreaseSize => commands[CommandCodes.LayoutIncreaseSize]; public IRichCommand LayoutDetails => commands[CommandCodes.LayoutDetails]; public IRichCommand LayoutList => commands[CommandCodes.LayoutList]; - public IRichCommand LayoutCards=> commands[CommandCodes.LayoutCards]; + public IRichCommand LayoutCards => commands[CommandCodes.LayoutCards]; public IRichCommand LayoutGrid => commands[CommandCodes.LayoutGrid]; public IRichCommand LayoutColumns => commands[CommandCodes.LayoutColumns]; public IRichCommand LayoutAdaptive => commands[CommandCodes.LayoutAdaptive]; @@ -212,8 +214,8 @@ public IRichCommand this[HotKey hotKey] public IRichCommand CloseSelectedTab => commands[CommandCodes.CloseSelectedTab]; public IRichCommand CloseActivePane => commands[CommandCodes.CloseActivePane]; public IRichCommand FocusOtherPane => commands[CommandCodes.FocusOtherPane]; - public IRichCommand AddVerticalPane => commands[CommandCodes.AddVerticalPane]; - public IRichCommand AddHorizontalPane => commands[CommandCodes.AddHorizontalPane]; + public IRichCommand SplitPaneVertically => commands[CommandCodes.SplitPaneVertically]; + public IRichCommand SplitPaneHorizontally => commands[CommandCodes.SplitPaneHorizontally]; public IRichCommand ArrangePanesVertically => commands[CommandCodes.ArrangePanesVertically]; public IRichCommand ArrangePanesHorizontally => commands[CommandCodes.ArrangePanesHorizontally]; public IRichCommand OpenFileLocation => commands[CommandCodes.OpenFileLocation]; @@ -264,6 +266,8 @@ public IEnumerator GetEnumerator() => [CommandCodes.ToggleInfoPane] = new ToggleInfoPaneAction(), [CommandCodes.ToggleToolbar] = new ToggleToolbarAction(), [CommandCodes.ToggleShelfPane] = new ToggleShelfPaneAction(), + [CommandCodes.ToggleFilterHeader] = new ToggleFilterHeaderAction(), + [CommandCodes.ToggleDualPane] = new ToggleDualPaneAction(), [CommandCodes.SelectAll] = new SelectAllAction(), [CommandCodes.InvertSelection] = new InvertSelectionAction(), [CommandCodes.ClearSelection] = new ClearSelectionAction(), @@ -418,8 +422,8 @@ public IEnumerator GetEnumerator() => [CommandCodes.CloseSelectedTab] = new CloseSelectedTabAction(), [CommandCodes.CloseActivePane] = new CloseActivePaneAction(), [CommandCodes.FocusOtherPane] = new FocusOtherPaneAction(), - [CommandCodes.AddVerticalPane] = new AddVerticalPaneAction(), - [CommandCodes.AddHorizontalPane] = new AddHorizontalPaneAction(), + [CommandCodes.SplitPaneVertically] = new SplitPaneVerticallyAction(), + [CommandCodes.SplitPaneHorizontally] = new SplitPaneHorizontallyAction(), [CommandCodes.ArrangePanesVertically] = new ArrangePanesVerticallyAction(), [CommandCodes.ArrangePanesHorizontally] = new ArrangePanesHorizontallyAction(), [CommandCodes.OpenFileLocation] = new OpenFileLocationAction(), diff --git a/src/Files.App/Data/Commands/Manager/ICommandManager.cs b/src/Files.App/Data/Commands/Manager/ICommandManager.cs index d0ceb7699628..a2b5ff7c6191 100644 --- a/src/Files.App/Data/Commands/Manager/ICommandManager.cs +++ b/src/Files.App/Data/Commands/Manager/ICommandManager.cs @@ -32,6 +32,8 @@ public interface ICommandManager : IEnumerable IRichCommand ToggleInfoPane { get; } IRichCommand ToggleToolbar { get; } IRichCommand ToggleShelfPane { get; } + IRichCommand ToggleFilterHeader { get; } + IRichCommand ToggleDualPane { get; } IRichCommand CopyItem { get; } IRichCommand CopyItemPath { get; } @@ -122,7 +124,7 @@ public interface ICommandManager : IEnumerable IRichCommand LayoutIncreaseSize { get; } IRichCommand LayoutDetails { get; } IRichCommand LayoutList { get; } - IRichCommand LayoutCards{ get; } + IRichCommand LayoutCards { get; } IRichCommand LayoutGrid { get; } IRichCommand LayoutColumns { get; } IRichCommand LayoutAdaptive { get; } @@ -194,8 +196,8 @@ public interface ICommandManager : IEnumerable IRichCommand CloseActivePane { get; } IRichCommand FocusOtherPane { get; } - IRichCommand AddVerticalPane { get; } - IRichCommand AddHorizontalPane { get; } + IRichCommand SplitPaneVertically { get; } + IRichCommand SplitPaneHorizontally { get; } IRichCommand ArrangePanesVertically { get; } IRichCommand ArrangePanesHorizontally { get; } diff --git a/src/Files.App/Data/Contexts/ContentPage/ContentPageContext.cs b/src/Files.App/Data/Contexts/ContentPage/ContentPageContext.cs index d51bb9cd8058..5be1861d13c3 100644 --- a/src/Files.App/Data/Contexts/ContentPage/ContentPageContext.cs +++ b/src/Files.App/Data/Contexts/ContentPage/ContentPageContext.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.UserControls.TabBar; using System.Collections.Immutable; namespace Files.App.Data.Contexts @@ -39,8 +38,6 @@ internal sealed partial class ContentPageContext : ObservableObject, IContentPag public bool CanNavigateToParent => ShellPage is not null && ShellPage.ToolbarViewModel.CanNavigateToParent; - public bool IsSearchBoxVisible => ShellPage is not null && ShellPage.ToolbarViewModel.IsSearchBoxVisible; - public bool CanCreateItem => GetCanCreateItem(); public bool IsMultiPaneAvailable => ShellPage is not null && ShellPage.PaneHolder is not null && ShellPage.PaneHolder.IsMultiPaneAvailable; @@ -94,7 +91,7 @@ private void Context_Changed(object? sender, EventArgs e) page.ContentChanged += Page_ContentChanged; page.InstanceViewModel.PropertyChanged += InstanceViewModel_PropertyChanged; page.ToolbarViewModel.PropertyChanged += ToolbarViewModel_PropertyChanged; - + if (page.PaneHolder is not null) page.PaneHolder.PropertyChanged += PaneHolder_PropertyChanged; } @@ -167,7 +164,6 @@ private void ToolbarViewModel_PropertyChanged(object? sender, PropertyChangedEve case nameof(NavigationToolbarViewModel.CanNavigateToParent): case nameof(NavigationToolbarViewModel.HasItem): case nameof(NavigationToolbarViewModel.CanRefresh): - case nameof(NavigationToolbarViewModel.IsSearchBoxVisible): OnPropertyChanged(e.PropertyName); break; case nameof(NavigationToolbarViewModel.SelectedItems): diff --git a/src/Files.App/Data/Contexts/ContentPage/IContentPageContext.cs b/src/Files.App/Data/Contexts/ContentPage/IContentPageContext.cs index f4a4a5c8a9aa..7a278b3a86b9 100644 --- a/src/Files.App/Data/Contexts/ContentPage/IContentPageContext.cs +++ b/src/Files.App/Data/Contexts/ContentPage/IContentPageContext.cs @@ -23,8 +23,6 @@ public interface IContentPageContext : INotifyPropertyChanged bool CanGoForward { get; } bool CanNavigateToParent { get; } - bool IsSearchBoxVisible { get; } - bool CanCreateItem { get; } bool IsMultiPaneAvailable { get; } diff --git a/src/Files.App/Data/Contexts/HomePage/HomePageContext.cs b/src/Files.App/Data/Contexts/HomePage/HomePageContext.cs index a4e07b64ddf7..dcc552a83b1e 100644 --- a/src/Files.App/Data/Contexts/HomePage/HomePageContext.cs +++ b/src/Files.App/Data/Contexts/HomePage/HomePageContext.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.UserControls.Widgets; using Microsoft.UI.Xaml.Controls; using System.Collections.Immutable; diff --git a/src/Files.App/Data/Contexts/Multitasking/IMultitaskingContext.cs b/src/Files.App/Data/Contexts/Multitasking/IMultitaskingContext.cs index ad39ce4f39c6..d68068155de2 100644 --- a/src/Files.App/Data/Contexts/Multitasking/IMultitaskingContext.cs +++ b/src/Files.App/Data/Contexts/Multitasking/IMultitaskingContext.cs @@ -1,9 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.UserControls.TabBar; -using System.ComponentModel; - namespace Files.App.Data.Contexts { public interface IMultitaskingContext : INotifyPropertyChanged diff --git a/src/Files.App/Data/Contexts/Tags/ITagsContext.cs b/src/Files.App/Data/Contexts/Tags/ITagsContext.cs index faf38e436b49..8103d422f096 100644 --- a/src/Files.App/Data/Contexts/Tags/ITagsContext.cs +++ b/src/Files.App/Data/Contexts/Tags/ITagsContext.cs @@ -3,8 +3,8 @@ namespace Files.App.Data.Contexts { - interface ITagsContext: INotifyPropertyChanged - { + interface ITagsContext : INotifyPropertyChanged + { IEnumerable<(string path, bool isFolder)> TaggedItems { get; } - } + } } diff --git a/src/Files.App/Data/Contexts/Tags/TagsContext.cs b/src/Files.App/Data/Contexts/Tags/TagsContext.cs index 729e9f11a364..5ae3fe925207 100644 --- a/src/Files.App/Data/Contexts/Tags/TagsContext.cs +++ b/src/Files.App/Data/Contexts/Tags/TagsContext.cs @@ -6,7 +6,7 @@ namespace Files.App.Data.Contexts { sealed partial class TagsContext : ITagsContext - { + { private static readonly IReadOnlyList<(string path, bool isFolder)> _emptyTaggedItemsList = Enumerable.Empty<(string path, bool isFolder)>().ToImmutableList(); diff --git a/src/Files.App/Data/Contracts/IAddressToolbarViewModel.cs b/src/Files.App/Data/Contracts/IAddressToolbarViewModel.cs index 42a5f0b7637c..f3345d435dc5 100644 --- a/src/Files.App/Data/Contracts/IAddressToolbarViewModel.cs +++ b/src/Files.App/Data/Contracts/IAddressToolbarViewModel.cs @@ -5,15 +5,6 @@ namespace Files.App.Data.Contracts { public interface IAddressToolbarViewModel { - public bool IsSearchBoxVisible { get; set; } - - public bool IsEditModeEnabled { get; set; } - - /// - /// Gets or sets the value that indicates whether the command palette is open. - /// - public bool IsCommandPaletteOpen { get; set; } - public bool CanRefresh { get; set; } public bool CanCopyPathInPage { get; set; } @@ -36,14 +27,11 @@ public interface IAddressToolbarViewModel public event ToolbarQuerySubmittedEventHandler PathBoxQuerySubmitted; - public event EventHandler EditModeEnabled; public event ItemDraggedOverPathItemEventHandler ItemDraggedOverPathItem; public event EventHandler RefreshWidgetsRequested; public void SwitchToSearchMode(); - - public ISearchBoxViewModel SearchBox { get; } } } diff --git a/src/Files.App/Data/Contracts/IAppearanceSettingsService.cs b/src/Files.App/Data/Contracts/IAppearanceSettingsService.cs index dc684c0e7226..f5086d9b689d 100644 --- a/src/Files.App/Data/Contracts/IAppearanceSettingsService.cs +++ b/src/Files.App/Data/Contracts/IAppearanceSettingsService.cs @@ -101,21 +101,16 @@ public interface IAppearanceSettingsService : IBaseSettingsService, INotifyPrope /// Gets or sets a value whether the toolbar should be displayed. /// bool ShowToolbar { get; set; } - + /// /// Gets or sets a value whether the tab actions button should be displayed. /// bool ShowTabActions { get; set; } - /// - /// Gets or sets a value whether the home button should be displayed. - /// - bool ShowHomeButton { get; set; } - /// /// Gets or sets a value whether the shelf pane toggle button should be displayed. /// - bool ShowShelfPaneToggleButton{ get; set; } + bool ShowShelfPaneToggleButton { get; set; } /// diff --git a/src/Files.App/Data/Contracts/IApplicationSettingsService.cs b/src/Files.App/Data/Contracts/IApplicationSettingsService.cs index 312434583600..a809120dd5c6 100644 --- a/src/Files.App/Data/Contracts/IApplicationSettingsService.cs +++ b/src/Files.App/Data/Contracts/IApplicationSettingsService.cs @@ -6,10 +6,15 @@ namespace Files.App.Data.Contracts public interface IApplicationSettingsService : IBaseSettingsService { /// - /// Gets or sets a value indicating whether or not the user clicked to review the app. + /// Gets or sets a value indicating whether or not the user clicked the 'review' prompt. /// - bool ClickedToReviewApp { get; set; } - + bool HasClickedReviewPrompt { get; set; } + + /// + /// Gets or sets a value indicating whether or not the user clicked the 'sponsor' prompt. + /// + bool HasClickedSponsorPrompt { get; set; } + /// /// Gets or sets a value indicating whether or not to display a prompt when running the app as administrator. /// diff --git a/src/Files.App/Data/Contracts/ICompressArchiveModel.cs b/src/Files.App/Data/Contracts/ICompressArchiveModel.cs index 8c18047483c9..c1f0227c18ce 100644 --- a/src/Files.App/Data/Contracts/ICompressArchiveModel.cs +++ b/src/Files.App/Data/Contracts/ICompressArchiveModel.cs @@ -47,7 +47,7 @@ public interface ICompressArchiveModel /// 7zip archive splitting size. /// ArchiveSplittingSizes SplittingSize { get; } - + /// /// Number of CPU Threads to use. /// diff --git a/src/Files.App/Data/Contracts/IDevToolsSettingsService.cs b/src/Files.App/Data/Contracts/IDevToolsSettingsService.cs index 2148c8322722..b942dec691cb 100644 --- a/src/Files.App/Data/Contracts/IDevToolsSettingsService.cs +++ b/src/Files.App/Data/Contracts/IDevToolsSettingsService.cs @@ -9,7 +9,7 @@ public interface IDevToolsSettingsService : IBaseSettingsService, INotifyPropert /// Gets or sets a value when the Open in IDE button should be displayed on the status bar. /// OpenInIDEOption OpenInIDEOption { get; set; } - + /// /// Gets or sets the path of the chosen IDE. /// diff --git a/src/Files.App/Data/Contracts/IDialogService.cs b/src/Files.App/Data/Contracts/IDialogService.cs index 4c2d44c3ea14..b86216c2b95c 100644 --- a/src/Files.App/Data/Contracts/IDialogService.cs +++ b/src/Files.App/Data/Contracts/IDialogService.cs @@ -1,9 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.ViewModels.Dialogs; -using Files.App.Data.Enums; - namespace Files.App.Data.Contracts { /// diff --git a/src/Files.App/Data/Contracts/IGeneralSettingsService.cs b/src/Files.App/Data/Contracts/IGeneralSettingsService.cs index b53fb24b756a..068f4f088fda 100644 --- a/src/Files.App/Data/Contracts/IGeneralSettingsService.cs +++ b/src/Files.App/Data/Contracts/IGeneralSettingsService.cs @@ -50,6 +50,11 @@ public interface IGeneralSettingsService : IBaseSettingsService, INotifyProperty /// List PathHistoryList { get; set; } + /// + /// A list containing previous search queries. + /// + List PreviousSearchQueriesList { get; set; } + /// /// Gets or sets a value indicating which date and time format to use. /// @@ -210,6 +215,11 @@ public interface IGeneralSettingsService : IBaseSettingsService, INotifyProperty /// bool ShowOpenInNewPane { get; set; } + /// + /// Gets or sets a value indicating whether or not to show the option to open folders in Windows Terminal. + /// + bool ShowOpenTerminal { get; set; } + /// /// Gets or sets a value indicating whether or not to show the option to copy an items path. /// @@ -296,8 +306,8 @@ public interface IGeneralSettingsService : IBaseSettingsService, INotifyProperty bool ShowShelfPane { get; set; } /// - /// Gets or sets a value indicating whether or not to enable the Omnibar. + /// Gets or sets a value whether the filter header should be displayed. /// - bool EnableOmnibar { get; set; } + bool ShowFilterHeader { get; set; } } } diff --git a/src/Files.App/Data/Contracts/IInfoPaneSettingsService.cs b/src/Files.App/Data/Contracts/IInfoPaneSettingsService.cs index 687c995a417a..c32a1880632c 100644 --- a/src/Files.App/Data/Contracts/IInfoPaneSettingsService.cs +++ b/src/Files.App/Data/Contracts/IInfoPaneSettingsService.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System.ComponentModel; - namespace Files.App.Data.Contracts { public interface IInfoPaneSettingsService : IBaseSettingsService, INotifyPropertyChanged diff --git a/src/Files.App/Data/Contracts/IResourcesService.cs b/src/Files.App/Data/Contracts/IResourcesService.cs index aa8874ec7198..d201307ea520 100644 --- a/src/Files.App/Data/Contracts/IResourcesService.cs +++ b/src/Files.App/Data/Contracts/IResourcesService.cs @@ -26,7 +26,7 @@ public interface IResourcesService /// /// void SetAppThemeAddressBarBackgroundColor(Color appThemeAddressBarBackgroundColor); - + /// /// Overrides the XAML resource for App.Theme.Toolbar.BackgroundBrush /// diff --git a/src/Files.App/Data/Contracts/ISearchBoxViewModel.cs b/src/Files.App/Data/Contracts/ISearchBoxViewModel.cs deleted file mode 100644 index b04cc5ff18b0..000000000000 --- a/src/Files.App/Data/Contracts/ISearchBoxViewModel.cs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) Files Community -// Licensed under the MIT License. - -using Windows.Foundation; - -namespace Files.App.Data.Contracts -{ - public interface ISearchBoxViewModel - { - event TypedEventHandler TextChanged; - - event TypedEventHandler QuerySubmitted; - - event EventHandler Escaped; - - bool WasQuerySubmitted { get; set; } - - string Query { get; set; } - - void ClearSuggestions(); - - void SetSuggestions(IEnumerable suggestions); - - void AddRecentQueries(); - } -} diff --git a/src/Files.App/Data/Contracts/IShellPage.cs b/src/Files.App/Data/Contracts/IShellPage.cs index fdf28822d652..86b25b89949f 100644 --- a/src/Files.App/Data/Contracts/IShellPage.cs +++ b/src/Files.App/Data/Contracts/IShellPage.cs @@ -65,7 +65,7 @@ public interface IShellPage : ITabBarItemContent, IMultiPaneInfo, IDisposable, I /// Navigates to the home page /// public void NavigateHome(); - + /// /// Navigates to the release notes page /// diff --git a/src/Files.App/Data/Contracts/IShellPanesPage.cs b/src/Files.App/Data/Contracts/IShellPanesPage.cs index afeace482ef9..d2e6e1ba6ee8 100644 --- a/src/Files.App/Data/Contracts/IShellPanesPage.cs +++ b/src/Files.App/Data/Contracts/IShellPanesPage.cs @@ -54,6 +54,11 @@ public interface IShellPanesPage : IDisposable, INotifyPropertyChanged /// public void CloseActivePane(); + /// + /// Closes the non active/focused pane. + /// + public void CloseOtherPane(); + /// /// Focuses the other pane. /// diff --git a/src/Files.App/Data/Contracts/IStartMenuService.cs b/src/Files.App/Data/Contracts/IStartMenuService.cs index f322d469291a..c5fb16d557b3 100644 --- a/src/Files.App/Data/Contracts/IStartMenuService.cs +++ b/src/Files.App/Data/Contracts/IStartMenuService.cs @@ -1,6 +1,4 @@ -using Files.Core.Storage; - -namespace Files.App.Data.Contracts +namespace Files.App.Data.Contracts { /// /// A service that manages actions associated with system Start Menu. diff --git a/src/Files.App/Data/Contracts/IStorageArchiveService.cs b/src/Files.App/Data/Contracts/IStorageArchiveService.cs index ee0ee550bfdc..ef4bfd6b949a 100644 --- a/src/Files.App/Data/Contracts/IStorageArchiveService.cs +++ b/src/Files.App/Data/Contracts/IStorageArchiveService.cs @@ -1,8 +1,8 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System.Text; using SevenZip; +using System.Text; namespace Files.App.Data.Contracts { diff --git a/src/Files.App/Data/Contracts/ImagingService.cs b/src/Files.App/Data/Contracts/ImagingService.cs index 30d3dcd0a427..76fc1d0fc234 100644 --- a/src/Files.App/Data/Contracts/ImagingService.cs +++ b/src/Files.App/Data/Contracts/ImagingService.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.Core.Storage; -using Files.Core.Storage.Storables; using Files.Shared.Utils; using Windows.Storage.FileProperties; diff --git a/src/Files.App/Data/Enums/PropertiesNavigationViewItemType.cs b/src/Files.App/Data/Enums/PropertiesNavigationViewItemType.cs index 4b33779e6c1d..811d70c3474e 100644 --- a/src/Files.App/Data/Enums/PropertiesNavigationViewItemType.cs +++ b/src/Files.App/Data/Enums/PropertiesNavigationViewItemType.cs @@ -47,5 +47,10 @@ public enum PropertiesNavigationViewItemType /// Shortcut page type /// Shortcut, + + /// + /// Signatures page type + /// + Signatures, } } diff --git a/src/Files.App/Data/EventArguments/AddressBarTextEnteredEventArgs.cs b/src/Files.App/Data/EventArguments/AddressBarTextEnteredEventArgs.cs deleted file mode 100644 index eb0f07fbd446..000000000000 --- a/src/Files.App/Data/EventArguments/AddressBarTextEnteredEventArgs.cs +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright (c) Files Community -// Licensed under the MIT License. - -using Files.App.Views; -using Microsoft.UI.Xaml.Controls; -using Windows.ApplicationModel.DataTransfer; - -namespace Files.App.Data.EventArguments -{ - public sealed class AddressBarTextEnteredEventArgs - { - public AutoSuggestBox AddressBarTextField { get; set; } - } -} diff --git a/src/Files.App/Data/EventArguments/EventArrivedEventArgs.cs b/src/Files.App/Data/EventArguments/EventArrivedEventArgs.cs index 6b51012237f7..7e8052a69bde 100644 --- a/src/Files.App/Data/EventArguments/EventArrivedEventArgs.cs +++ b/src/Files.App/Data/EventArguments/EventArrivedEventArgs.cs @@ -2,7 +2,6 @@ // Licensed under the MIT License. using Microsoft.Management.Infrastructure; -using System; namespace Files.App.Data.EventArguments { diff --git a/src/Files.App/Data/EventArguments/PathBoxItemDroppedEventArgs.cs b/src/Files.App/Data/EventArguments/PathBoxItemDroppedEventArgs.cs index a2a997392c08..e9b2c2c71439 100644 --- a/src/Files.App/Data/EventArguments/PathBoxItemDroppedEventArgs.cs +++ b/src/Files.App/Data/EventArguments/PathBoxItemDroppedEventArgs.cs @@ -1,9 +1,7 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Views; using Files.Shared.Helpers; -using Microsoft.UI.Xaml.Controls; using Windows.ApplicationModel.DataTransfer; namespace Files.App.Data.EventArguments diff --git a/src/Files.App/Data/EventArguments/PathNavigationEventArgs.cs b/src/Files.App/Data/EventArguments/PathNavigationEventArgs.cs index d7e9dbd4420b..f44bd27aeb46 100644 --- a/src/Files.App/Data/EventArguments/PathNavigationEventArgs.cs +++ b/src/Files.App/Data/EventArguments/PathNavigationEventArgs.cs @@ -1,10 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Views; -using Microsoft.UI.Xaml.Controls; -using Windows.ApplicationModel.DataTransfer; - namespace Files.App.Data.EventArguments { public sealed class PathNavigationEventArgs diff --git a/src/Files.App/Data/EventArguments/SearchBoxQuerySubmittedEventArgs.cs b/src/Files.App/Data/EventArguments/SearchBoxQuerySubmittedEventArgs.cs index b63f96e4a938..a52f3154361d 100644 --- a/src/Files.App/Data/EventArguments/SearchBoxQuerySubmittedEventArgs.cs +++ b/src/Files.App/Data/EventArguments/SearchBoxQuerySubmittedEventArgs.cs @@ -1,10 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Data.Models; -using Microsoft.UI.Xaml.Controls; -using Windows.Foundation; - namespace Files.App.Data.EventArguments { public sealed class SearchBoxQuerySubmittedEventArgs diff --git a/src/Files.App/Data/EventArguments/SearchBoxTextChangedEventArgs.cs b/src/Files.App/Data/EventArguments/SearchBoxTextChangedEventArgs.cs index e484adee3f02..3583e3d46a5a 100644 --- a/src/Files.App/Data/EventArguments/SearchBoxTextChangedEventArgs.cs +++ b/src/Files.App/Data/EventArguments/SearchBoxTextChangedEventArgs.cs @@ -1,9 +1,7 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Data.Models; using Microsoft.UI.Xaml.Controls; -using Windows.Foundation; namespace Files.App.Data.EventArguments { diff --git a/src/Files.App/Data/EventArguments/SelectedTagChangedEventArgs.cs b/src/Files.App/Data/EventArguments/SelectedTagChangedEventArgs.cs index 9ab5193cfcc9..5501cb49223f 100644 --- a/src/Files.App/Data/EventArguments/SelectedTagChangedEventArgs.cs +++ b/src/Files.App/Data/EventArguments/SelectedTagChangedEventArgs.cs @@ -3,5 +3,5 @@ namespace Files.App.Data.EventArguments { - public record SelectedTagChangedEventArgs(IEnumerable<(string path, bool isFolder)> Items); + public record SelectedTagChangedEventArgs(IEnumerable<(string path, bool isFolder)> Items); } diff --git a/src/Files.App/Data/EventArguments/SettingChangedEventArgs.cs b/src/Files.App/Data/EventArguments/SettingChangedEventArgs.cs index 9fc0238fefcc..d44e774d0ca5 100644 --- a/src/Files.App/Data/EventArguments/SettingChangedEventArgs.cs +++ b/src/Files.App/Data/EventArguments/SettingChangedEventArgs.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System; - namespace Files.App.Data.EventArguments { public sealed class SettingChangedEventArgs : EventArgs diff --git a/src/Files.App/Data/EventArguments/ToolbarFlyoutOpeningEventArgs.cs b/src/Files.App/Data/EventArguments/ToolbarFlyoutOpeningEventArgs.cs deleted file mode 100644 index 7e3d0f32ccd4..000000000000 --- a/src/Files.App/Data/EventArguments/ToolbarFlyoutOpeningEventArgs.cs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) Files Community -// Licensed under the MIT License. - -using Microsoft.UI.Xaml.Controls; - -namespace Files.App.Data.EventArguments -{ - public sealed class ToolbarFlyoutOpeningEventArgs - { - public MenuFlyout OpeningFlyout { get; } - - public ToolbarFlyoutOpeningEventArgs(MenuFlyout openingFlyout) - { - OpeningFlyout = openingFlyout; - } - } -} diff --git a/src/Files.App/Data/EventArguments/ToolbarPathItemLoadedEventArgs.cs b/src/Files.App/Data/EventArguments/ToolbarPathItemLoadedEventArgs.cs deleted file mode 100644 index 2d359dcbaead..000000000000 --- a/src/Files.App/Data/EventArguments/ToolbarPathItemLoadedEventArgs.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) Files Community -// Licensed under the MIT License. - -using Files.App.Views; -using Microsoft.UI.Xaml.Controls; -using Windows.ApplicationModel.DataTransfer; - -namespace Files.App.Data.EventArguments -{ - public sealed class ToolbarPathItemLoadedEventArgs - { - public MenuFlyout OpenedFlyout { get; set; } - - public PathBoxItem Item { get; set; } - } -} diff --git a/src/Files.App/Data/EventArguments/ToolbarQuerySubmittedEventArgs.cs b/src/Files.App/Data/EventArguments/ToolbarQuerySubmittedEventArgs.cs index 3e6585271eb3..8e83c9b4f6f9 100644 --- a/src/Files.App/Data/EventArguments/ToolbarQuerySubmittedEventArgs.cs +++ b/src/Files.App/Data/EventArguments/ToolbarQuerySubmittedEventArgs.cs @@ -1,10 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Views; -using Microsoft.UI.Xaml.Controls; -using Windows.ApplicationModel.DataTransfer; - namespace Files.App.Data.EventArguments { public sealed class ToolbarQuerySubmittedEventArgs diff --git a/src/Files.App/Data/Factories/ContentPageContextFlyoutFactory.cs b/src/Files.App/Data/Factories/ContentPageContextFlyoutFactory.cs index 005220ee83d4..cf4531b71e2c 100644 --- a/src/Files.App/Data/Factories/ContentPageContextFlyoutFactory.cs +++ b/src/Files.App/Data/Factories/ContentPageContextFlyoutFactory.cs @@ -457,14 +457,17 @@ public static List GetBaseItemMenuItems( new ContextMenuFlyoutItemViewModelBuilder(Commands.CutItem) { IsPrimary = true, + AccessKey="X" }.Build(), new ContextMenuFlyoutItemViewModelBuilder(Commands.CopyItem) { IsPrimary = true, + AccessKey="C" }.Build(), new ContextMenuFlyoutItemViewModelBuilder(Commands.PasteItemToSelection) { IsPrimary = true, + AccessKey="V", IsVisible = true, }.Build(), new ContextMenuFlyoutItemViewModelBuilder(Commands.PasteItemAsShortcut).Build(), @@ -493,11 +496,13 @@ public static List GetBaseItemMenuItems( new ContextMenuFlyoutItemViewModelBuilder(Commands.Rename) { IsPrimary = true, + AccessKey="M", IsVisible = itemsSelected }.Build(), new ContextMenuFlyoutItemViewModelBuilder(Commands.ShareItem) { - IsPrimary = true + IsPrimary = true, + AccessKey = "H" }.Build(), new ContextMenuFlyoutItemViewModelBuilder(ModifiableCommands.DeleteItem) { @@ -507,6 +512,7 @@ public static List GetBaseItemMenuItems( new ContextMenuFlyoutItemViewModelBuilder(ModifiableCommands.OpenProperties) { IsPrimary = true, + AccessKey="O", IsVisible = ModifiableCommands.OpenProperties.IsExecutable }.Build(), new ContextMenuFlyoutItemViewModelBuilder(Commands.OpenParentFolder).Build(), @@ -606,14 +612,16 @@ public static List GetBaseItemMenuItems( new ContextMenuFlyoutItemViewModel() { ItemType = ContextMenuFlyoutItemType.Separator, - ShowItem = (!itemsSelected && Commands.OpenTerminal.IsExecutable) || - (areAllItemsFolders && Commands.OpenTerminal.IsExecutable) || + ShowItem = (!itemsSelected && Commands.OpenTerminal.IsExecutable && UserSettingsService.GeneralSettingsService.ShowOpenTerminal) || + (areAllItemsFolders && Commands.OpenTerminal.IsExecutable && UserSettingsService.GeneralSettingsService.ShowOpenTerminal) || Commands.OpenStorageSense.IsExecutable || Commands.FormatDrive.IsExecutable }, new ContextMenuFlyoutItemViewModelBuilder(Commands.OpenTerminal) { - IsVisible = (!itemsSelected && Commands.OpenTerminal.IsExecutable) || (areAllItemsFolders && Commands.OpenTerminal.IsExecutable) + IsVisible = (!itemsSelected || areAllItemsFolders) && + Commands.OpenTerminal.IsExecutable && + UserSettingsService.GeneralSettingsService.ShowOpenTerminal }.Build(), new ContextMenuFlyoutItemViewModelBuilder(Commands.OpenStorageSense).Build(), new ContextMenuFlyoutItemViewModelBuilder(Commands.FormatDrive).Build(), diff --git a/src/Files.App/Data/Factories/PropertiesNavigationViewItemFactory.cs b/src/Files.App/Data/Factories/PropertiesNavigationViewItemFactory.cs index f546301858e4..0723f321df0d 100644 --- a/src/Files.App/Data/Factories/PropertiesNavigationViewItemFactory.cs +++ b/src/Files.App/Data/Factories/PropertiesNavigationViewItemFactory.cs @@ -61,8 +61,15 @@ public static ObservableCollection Initialize ItemType = PropertiesNavigationViewItemType.Compatibility, ThemedIconStyle = (Style)Application.Current.Resources["App.ThemedIcons.Properties.Compatability"], }; + var signaturesItem = new NavigationViewItemButtonStyleItem() + { + Name = Strings.Signatures.GetLocalizedResource(), + ItemType = PropertiesNavigationViewItemType.Signatures, + ThemedIconStyle = (Style)Application.Current.Resources["App.ThemedIcons.Properties.Signatures"], + }; PropertiesNavigationViewItems.Add(generalItem); + PropertiesNavigationViewItems.Add(signaturesItem); PropertiesNavigationViewItems.Add(securityItem); PropertiesNavigationViewItems.Add(hashesItem); PropertiesNavigationViewItems.Add(shortcutItem); @@ -89,6 +96,7 @@ public static ObservableCollection Initialize PropertiesNavigationViewItems.Remove(securityItem); PropertiesNavigationViewItems.Remove(customizationItem); PropertiesNavigationViewItems.Remove(hashesItem); + PropertiesNavigationViewItems.Remove(signaturesItem); } else if (item is ListedItem listedItem) { @@ -102,6 +110,11 @@ public static ObservableCollection Initialize var detailsItemEnabled = !(isFolder && !listedItem.IsArchive) && !isLibrary && !listedItem.IsRecycleBinItem; var customizationItemEnabled = !isLibrary && (isFolder && !listedItem.IsArchive || isShortcut && !listedItem.IsLinkItem); var compatibilityItemEnabled = FileExtensionHelpers.IsExecutableFile(listedItem is IShortcutItem sht ? sht.TargetPath : fileExt, true); + var signaturesItemEnabled = + !isFolder && + !isLibrary && + !listedItem.IsRecycleBinItem && + FileExtensionHelpers.IsSignableFile(fileExt, true); if (!securityItemEnabled) PropertiesNavigationViewItems.Remove(securityItem); @@ -109,6 +122,9 @@ public static ObservableCollection Initialize if (!hashItemEnabled) PropertiesNavigationViewItems.Remove(hashesItem); + if (!signaturesItemEnabled) + PropertiesNavigationViewItems.Remove(signaturesItem); + if (!isShortcut) PropertiesNavigationViewItems.Remove(shortcutItem); @@ -132,6 +148,7 @@ public static ObservableCollection Initialize PropertiesNavigationViewItems.Remove(detailsItem); PropertiesNavigationViewItems.Remove(customizationItem); PropertiesNavigationViewItems.Remove(compatibilityItem); + PropertiesNavigationViewItems.Remove(signaturesItem); } return PropertiesNavigationViewItems; diff --git a/src/Files.App/Data/Factories/SecurityAdvancedAccessControlItemFactory.cs b/src/Files.App/Data/Factories/SecurityAdvancedAccessControlItemFactory.cs index eefb0642b2ba..cfee423820e1 100644 --- a/src/Files.App/Data/Factories/SecurityAdvancedAccessControlItemFactory.cs +++ b/src/Files.App/Data/Factories/SecurityAdvancedAccessControlItemFactory.cs @@ -1,10 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Extensions; -using System.Collections.Generic; -using System.Collections.ObjectModel; - namespace Files.App.Data.Factories { public static class SecurityAdvancedAccessControlItemFactory diff --git a/src/Files.App/Data/Factories/ShellContextFlyoutHelper.cs b/src/Files.App/Data/Factories/ShellContextFlyoutHelper.cs index 836ff7ed3ea8..361766242fe7 100644 --- a/src/Files.App/Data/Factories/ShellContextFlyoutHelper.cs +++ b/src/Files.App/Data/Factories/ShellContextFlyoutHelper.cs @@ -262,8 +262,8 @@ [new ListedItem(null) { ItemPath = path }], (showSendToMenu || !UserSettingsService.GeneralSettingsService.ShowSendToMenu)) shellMenuItems.Remove(sendToItem); - var turnOnBitLocker = shellMenuItems.FirstOrDefault(x => - x.Tag is Win32ContextMenuItem menuItem && + var turnOnBitLocker = shellMenuItems.FirstOrDefault(x => + x.Tag is Win32ContextMenuItem menuItem && (menuItem.CommandString?.StartsWith("encrypt-bde") ?? false)); if (turnOnBitLocker is not null) @@ -384,8 +384,8 @@ x.Tag is Win32ContextMenuItem menuItem && { AddItemsToMainMenu(itemContextMenuFlyout.SecondaryCommands, item); } - else if (itemContextMenuFlyout.SecondaryCommands.FirstOrDefault(x => x is AppBarButton appBarButton - && appBarButton.Tag as string == "ItemOverflow") is AppBarButton overflowItem) + else if (itemContextMenuFlyout.SecondaryCommands.FirstOrDefault(x => x is AppBarButton appBarButton + && appBarButton.Tag as string == "ItemOverflow") is AppBarButton overflowItem) { AddItemsToOverflowMenu(overflowItem, item); } diff --git a/src/Files.App/Data/Items/AccessControlPrincipal.cs b/src/Files.App/Data/Items/AccessControlPrincipal.cs index bb6757957bcc..4da0dc3ebcdd 100644 --- a/src/Files.App/Data/Items/AccessControlPrincipal.cs +++ b/src/Files.App/Data/Items/AccessControlPrincipal.cs @@ -2,7 +2,6 @@ // Licensed under the MIT License. using Windows.Win32; -using Windows.Win32.Foundation; using Windows.Win32.Security; namespace Files.App.Data.Items @@ -87,7 +86,7 @@ public AccessControlPrincipal(string sid) // Get account name and domain bResult = PInvoke.LookupAccountSid(string.Empty, lpSid, lpName, ref cchName, lpDomain, ref cchDomainName, out var snu); - if(!bResult) + if (!bResult) return; PrincipalType = snu switch diff --git a/src/Files.App/Data/Items/ActionWithParameterItem.cs b/src/Files.App/Data/Items/ActionWithParameterItem.cs index 921191a30cec..63ea8691b015 100644 --- a/src/Files.App/Data/Items/ActionWithParameterItem.cs +++ b/src/Files.App/Data/Items/ActionWithParameterItem.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System.Text.Json.Serialization; - namespace Files.App.Data.Items { [Serializable] diff --git a/src/Files.App/Data/Items/AppLanguageItem.cs b/src/Files.App/Data/Items/AppLanguageItem.cs index fe05a9e90e81..bbd9e7119943 100644 --- a/src/Files.App/Data/Items/AppLanguageItem.cs +++ b/src/Files.App/Data/Items/AppLanguageItem.cs @@ -30,7 +30,7 @@ public AppLanguageItem(string code, bool systemDefault = false) if (systemDefault || string.IsNullOrEmpty(code)) { Code = new CultureInfo(code).Name; - Name = Strings.SettingsPreferencesSystemDefaultLanguageOption.GetLocalizedResource(); + Name = Strings.UseSystemSetting.GetLocalizedResource(); } else { diff --git a/src/Files.App/Data/Items/CertNodeInfoItem.cs b/src/Files.App/Data/Items/CertNodeInfoItem.cs new file mode 100644 index 000000000000..abed64927c7a --- /dev/null +++ b/src/Files.App/Data/Items/CertNodeInfoItem.cs @@ -0,0 +1,18 @@ +// Copyright (c) Files Community +// Licensed under the MIT License. + +namespace Files.App.Data.Items +{ + public class CertNodeInfoItem + { + public string IssuedTo { get; set; } = string.Empty; + + public string IssuedBy { get; set; } = string.Empty; + + public string Version { get; set; } = string.Empty; + + public string ValidFrom { get; set; } = string.Empty; + + public string ValidTo { get; set; } = string.Empty; + } +} diff --git a/src/Files.App/Data/Items/EncodingItem.cs b/src/Files.App/Data/Items/EncodingItem.cs index 24c79bc35bf2..51ec61b121e9 100644 --- a/src/Files.App/Data/Items/EncodingItem.cs +++ b/src/Files.App/Data/Items/EncodingItem.cs @@ -5,36 +5,36 @@ namespace Files.App.Data.Items { - /// - /// Represents a text encoding in the application. - /// - public sealed class EncodingItem - { + /// + /// Represents a text encoding in the application. + /// + public sealed class EncodingItem + { - public Encoding? Encoding { get; set; } + public Encoding? Encoding { get; set; } - /// - /// Gets the encoding name. e.g. English (United States) - /// - public string Name { get; set; } + /// + /// Gets the encoding name. e.g. English (United States) + /// + public string Name { get; set; } - /// - /// Initializes a new instance of the class. - /// - /// The code of the language. - public EncodingItem(string? code) - { - if (string.IsNullOrEmpty(code)) - { - Encoding = null; - Name = Strings.Default.GetLocalizedResource(); - } - else - { - Encoding = Encoding.GetEncoding(code); - Name = Encoding.EncodingName; - } - } + /// + /// Initializes a new instance of the class. + /// + /// The code of the language. + public EncodingItem(string? code) + { + if (string.IsNullOrEmpty(code)) + { + Encoding = null; + Name = Strings.Default.GetLocalizedResource(); + } + else + { + Encoding = Encoding.GetEncoding(code); + Name = Encoding.EncodingName; + } + } public EncodingItem(Encoding encoding, string name) { @@ -76,5 +76,5 @@ public EncodingItem(Encoding encoding, string name) .ToArray(); public override string ToString() => Name; - } + } } diff --git a/src/Files.App/Data/Items/NavigationBarSuggestionItem.cs b/src/Files.App/Data/Items/NavigationBarSuggestionItem.cs index dbc4fb8c8f90..12376354e783 100644 --- a/src/Files.App/Data/Items/NavigationBarSuggestionItem.cs +++ b/src/Files.App/Data/Items/NavigationBarSuggestionItem.cs @@ -3,12 +3,17 @@ using Files.App.Controls; using Microsoft.UI.Xaml; +using Microsoft.UI.Xaml.Media; +using Windows.AI.Actions.Hosting; namespace Files.App.Data.Items { [Obsolete("Remove once Omnibar goes out of experimental.")] public sealed partial class NavigationBarSuggestionItem : ObservableObject, IOmnibarTextMemberPathProvider { + private ImageSource? _ActionIconSource; + public ImageSource? ActionIconSource { get => _ActionIconSource; set => SetProperty(ref _ActionIconSource, value); } + private Style? _ThemedIconStyle; public Style? ThemedIconStyle { get => _ThemedIconStyle; set => SetProperty(ref _ThemedIconStyle, value); } @@ -47,6 +52,14 @@ public string? PrimaryDisplayPreMatched private set => SetProperty(ref _PrimaryDisplayPreMatched, value); } + + private ActionInstance? _ActionInstance; + public ActionInstance? ActionInstance + { + get => _ActionInstance; + set => SetProperty(ref _ActionInstance, value); + } + private string? _PrimaryDisplayMatched; public string? PrimaryDisplayMatched { diff --git a/src/Files.App/Data/Items/PathBoxItem.cs b/src/Files.App/Data/Items/PathBoxItem.cs index b83150c0c08a..88199efc841e 100644 --- a/src/Files.App/Data/Items/PathBoxItem.cs +++ b/src/Files.App/Data/Items/PathBoxItem.cs @@ -8,5 +8,7 @@ public sealed class PathBoxItem public string? Title { get; set; } public string? Path { get; set; } + + public string? ChevronToolTip { get; set; } } } diff --git a/src/Files.App/Data/Items/WindowEx.cs b/src/Files.App/Data/Items/WindowEx.cs index b19f3ba449f8..b00cb0565279 100644 --- a/src/Files.App/Data/Items/WindowEx.cs +++ b/src/Files.App/Data/Items/WindowEx.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Microsoft.UI.Composition.SystemBackdrops; using Microsoft.UI.Windowing; using Microsoft.UI.Xaml; using System.Runtime.InteropServices; diff --git a/src/Files.App/Data/Messages/FileSystemDialogOptionChangedMessage.cs b/src/Files.App/Data/Messages/FileSystemDialogOptionChangedMessage.cs index 2de95be9dcc7..218418245c0a 100644 --- a/src/Files.App/Data/Messages/FileSystemDialogOptionChangedMessage.cs +++ b/src/Files.App/Data/Messages/FileSystemDialogOptionChangedMessage.cs @@ -2,7 +2,6 @@ // Licensed under the MIT License. using CommunityToolkit.Mvvm.Messaging.Messages; -using Files.App.ViewModels.Dialogs.FileSystemDialog; namespace Files.App.Data.Messages { diff --git a/src/Files.App/Data/Models/AddItemDialogResultModel.cs b/src/Files.App/Data/Models/AddItemDialogResultModel.cs index 568b3bcdda2d..721458170cf3 100644 --- a/src/Files.App/Data/Models/AddItemDialogResultModel.cs +++ b/src/Files.App/Data/Models/AddItemDialogResultModel.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.Shared; - namespace Files.App.Data.Models { /// diff --git a/src/Files.App/Data/Models/AppModel.cs b/src/Files.App/Data/Models/AppModel.cs index 8b7e213ab34a..e0441f55fddd 100644 --- a/src/Files.App/Data/Models/AppModel.cs +++ b/src/Files.App/Data/Models/AppModel.cs @@ -42,9 +42,8 @@ public int TabStripSelectedIndex { if (value >= 0 && value < MainPageViewModel.AppInstances.Count) { - var rootFrame = (Frame)MainWindow.Instance.Content; - var mainView = (MainPage)rootFrame.Content; - mainView.ViewModel.SelectedTabItem = MainPageViewModel.AppInstances[value]; + if (MainWindow.Instance.Content is Frame rootFrame && rootFrame.Content is MainPage mainView) + mainView.ViewModel.SelectedTabItem = MainPageViewModel.AppInstances[value]; } } catch (COMException) diff --git a/src/Files.App/Data/Models/CompressArchiveModel.cs b/src/Files.App/Data/Models/CompressArchiveModel.cs index cb26f874e0e1..b3f63d3d1618 100644 --- a/src/Files.App/Data/Models/CompressArchiveModel.cs +++ b/src/Files.App/Data/Models/CompressArchiveModel.cs @@ -108,7 +108,7 @@ public IProgress Progress /// public CancellationToken CancellationToken { get; set; } - + /// public int CPUThreads { get; set; } diff --git a/src/Files.App/Data/Models/ContextMenuFlyoutItemViewModel.cs b/src/Files.App/Data/Models/ContextMenuFlyoutItemViewModel.cs index fffbce32f045..339d8cec3053 100644 --- a/src/Files.App/Data/Models/ContextMenuFlyoutItemViewModel.cs +++ b/src/Files.App/Data/Models/ContextMenuFlyoutItemViewModel.cs @@ -62,5 +62,7 @@ public sealed class ContextMenuFlyoutItemViewModel public bool ShowLoadingIndicator { get; set; } public bool IsHidden { get; set; } + + public string AccessKey { get; set; } } } diff --git a/src/Files.App/Data/Models/ContextMenuFlyoutItemViewModelBuilder.cs b/src/Files.App/Data/Models/ContextMenuFlyoutItemViewModelBuilder.cs index 738d12f67d27..8eec74af5087 100644 --- a/src/Files.App/Data/Models/ContextMenuFlyoutItemViewModelBuilder.cs +++ b/src/Files.App/Data/Models/ContextMenuFlyoutItemViewModelBuilder.cs @@ -23,8 +23,11 @@ public bool IsVisible } public bool IsPrimary { get; init; } = false; + public bool IsToggle { get; init; } = false; + public string AccessKey { get; init; } + public object Tag { get; init; } public bool ShowOnShift { get; init; } = false; @@ -64,6 +67,7 @@ public ContextMenuFlyoutItemViewModel Build() ShowInSearchPage = true, ShowInFtpPage = true, ShowInZipPage = true, + AccessKey = AccessKey, }; var glyph = command.Glyph; diff --git a/src/Files.App/Data/Models/CurrentInstanceViewModel.cs b/src/Files.App/Data/Models/CurrentInstanceViewModel.cs index 3eae3ce7ba9a..ffc6a977f291 100644 --- a/src/Files.App/Data/Models/CurrentInstanceViewModel.cs +++ b/src/Files.App/Data/Models/CurrentInstanceViewModel.cs @@ -52,7 +52,7 @@ public bool IsPageTypeNotHome OnPropertyChanged(nameof(CanCopyPathInPage)); } } - + private bool isPageTypeReleaseNotes = false; public bool IsPageTypeReleaseNotes { @@ -64,7 +64,7 @@ public bool IsPageTypeReleaseNotes OnPropertyChanged(nameof(CanCopyPathInPage)); } } - + private bool isPageTypeSettings = false; public bool IsPageTypeSettings { diff --git a/src/Files.App/Data/Models/DirectoryPropertiesViewModel.cs b/src/Files.App/Data/Models/DirectoryPropertiesViewModel.cs index 3be81f4b6587..d6fd99840b3e 100644 --- a/src/Files.App/Data/Models/DirectoryPropertiesViewModel.cs +++ b/src/Files.App/Data/Models/DirectoryPropertiesViewModel.cs @@ -41,8 +41,8 @@ public int SelectedBranchIndex get => _SelectedBranchIndex; set { - if (SetProperty(ref _SelectedBranchIndex, value) && - value != -1 && + if (SetProperty(ref _SelectedBranchIndex, value) && + value != -1 && (value != ACTIVE_BRANCH_INDEX || !_ShowLocals) && value < Branches.Count) { @@ -90,8 +90,8 @@ public bool ShowOpenInIDEButton } } - public ObservableCollection Branches => _ShowLocals - ? _localBranches + public ObservableCollection Branches => _ShowLocals + ? _localBranches : _remoteBranches; public EventHandler? CheckoutRequested; @@ -125,7 +125,7 @@ ContentPageContext.ShellPage is not null && : null; _gitRepositoryPath = repositoryPath; - + // Change ShowLocals value only if branches flyout is closed if (!IsBranchesFlyoutExpanded) ShowLocals = true; diff --git a/src/Files.App/Data/Models/DisposableArray.cs b/src/Files.App/Data/Models/DisposableArray.cs index 1125fdacc6c7..840e5ced1889 100644 --- a/src/Files.App/Data/Models/DisposableArray.cs +++ b/src/Files.App/Data/Models/DisposableArray.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.Shared.Extensions; - namespace Files.App.Data.Models { public sealed partial class DisposableArray : FreeableStore diff --git a/src/Files.App/Data/Models/DrivesViewModel.cs b/src/Files.App/Data/Models/DrivesViewModel.cs index 4e1b13cf161b..cf1976d82266 100644 --- a/src/Files.App/Data/Models/DrivesViewModel.cs +++ b/src/Files.App/Data/Models/DrivesViewModel.cs @@ -2,7 +2,6 @@ // Licensed under the MIT License. using Files.App.Services.SizeProvider; -using Files.Core.Storage.Storables; using Microsoft.Extensions.Logging; using System.IO; diff --git a/src/Files.App/Data/Models/GitItemModel.cs b/src/Files.App/Data/Models/GitItemModel.cs index a71f4740d3a4..a82cd9d79e38 100644 --- a/src/Files.App/Data/Models/GitItemModel.cs +++ b/src/Files.App/Data/Models/GitItemModel.cs @@ -15,7 +15,7 @@ internal sealed class GitItemModel /// This is often showed as A(Added), D(Deleted), M(Modified), U(Untracked) in VS Code. /// public ChangeKind? Status { get; init; } - + /// /// Gets or initializes file change kind icon /// diff --git a/src/Files.App/Data/Models/PinnedFoldersManager.cs b/src/Files.App/Data/Models/PinnedFoldersManager.cs index 3b1c8b11c9ba..04ce0eb23eb3 100644 --- a/src/Files.App/Data/Models/PinnedFoldersManager.cs +++ b/src/Files.App/Data/Models/PinnedFoldersManager.cs @@ -3,7 +3,6 @@ using System.Collections.Specialized; using System.IO; -using System.Text.Json.Serialization; namespace Files.App.Data.Models { diff --git a/src/Files.App/Data/Models/SelectedItemsPropertiesViewModel.cs b/src/Files.App/Data/Models/SelectedItemsPropertiesViewModel.cs index 18ac59ddf185..ace192cbf17b 100644 --- a/src/Files.App/Data/Models/SelectedItemsPropertiesViewModel.cs +++ b/src/Files.App/Data/Models/SelectedItemsPropertiesViewModel.cs @@ -635,7 +635,7 @@ public bool ShortcutItemArgumentsVisibility get => shortcutItemArgumentsVisibility; set => SetProperty(ref shortcutItemArgumentsVisibility, value); } - + private bool shortcutItemWindowArgsVisibility = false; public bool ShortcutItemWindowArgsVisibility { diff --git a/src/Files.App/Data/Models/SignatureInfoItem.cs b/src/Files.App/Data/Models/SignatureInfoItem.cs new file mode 100644 index 000000000000..6b5e8ffc5022 --- /dev/null +++ b/src/Files.App/Data/Models/SignatureInfoItem.cs @@ -0,0 +1,92 @@ +// Copyright (c) Files Community +// Licensed under the MIT License. + +using Files.App.Utils.Signatures; +using System.Windows.Input; +using Windows.Win32.Foundation; + +namespace Files.App.Data.Models +{ + public sealed partial class SignatureInfoItem : ObservableObject + { + private readonly string _fileName; + + private readonly HWND _hwndParent; + + private readonly int _index; + + private string _Version = string.Empty; + public string Version + { + get => _Version; + set => SetProperty(ref _Version, value); + } + + private string _IssuedBy = string.Empty; + public string IssuedBy + { + get => _IssuedBy; + set => SetProperty(ref _IssuedBy, value); + } + + private string _IssuedTo = string.Empty; + public string IssuedTo + { + get => _IssuedTo; + set => SetProperty(ref _IssuedTo, value); + } + + private string _ValidFromTimestamp = string.Empty; + public string ValidFromTimestamp + { + get => _ValidFromTimestamp; + set => SetProperty(ref _ValidFromTimestamp, value); + } + + private string _ValidToTimestamp = string.Empty; + public string ValidToTimestamp + { + get => _ValidToTimestamp; + set => SetProperty(ref _ValidToTimestamp, value); + } + + private string _VerifiedTimestamp = string.Empty; + public string VerifiedTimestamp + { + get => _VerifiedTimestamp; + set => SetProperty(ref _VerifiedTimestamp, value); + } + + private bool _Verified = false; + public bool Verified + { + get => _Verified; + set + { + if (SetProperty(ref _Verified, value)) + OnPropertyChanged(nameof(Glyph)); + } + } + + public List SignChain { get; } + + public string Glyph => Verified ? "\uE930" : "\uEA39"; + + public ICommand OpenDetailsCommand { get; } + + public SignatureInfoItem(string fileName, int index, HWND hWnd, List chain) + { + _fileName = fileName; + _hwndParent = hWnd; + _index = index; + SignChain = chain ?? new List(); + OpenDetailsCommand = new AsyncRelayCommand(DoOpenDetails); + } + + private Task DoOpenDetails() + { + DigitalSignaturesUtil.DisplaySignerInfoDialog(_fileName, _hwndParent, _index); + return Task.CompletedTask; + } + } +} diff --git a/src/Files.App/Data/Models/SuggestionModel.cs b/src/Files.App/Data/Models/SuggestionModel.cs index c147a8c1eab1..df498be22afb 100644 --- a/src/Files.App/Data/Models/SuggestionModel.cs +++ b/src/Files.App/Data/Models/SuggestionModel.cs @@ -1,11 +1,12 @@ // Copyright (c) Files Community // Licensed under the MIT License. +using Files.App.Controls; using Microsoft.UI.Xaml.Media.Imaging; namespace Files.App.Data.Models { - public sealed partial class SuggestionModel : ObservableObject + public sealed partial class SuggestionModel : ObservableObject, IOmnibarTextMemberPathProvider { public bool IsRecentSearch { get; set; } = false; @@ -76,5 +77,10 @@ public SuggestionModel(string itemName, bool isRecentSearch) IsRecentSearch = isRecentSearch; Name = itemName; } + + public string GetTextMemberPath(string textMemberPath) + { + return Name; + } } } diff --git a/src/Files.App/Data/Models/TagViewModel.cs b/src/Files.App/Data/Models/TagViewModel.cs index 598fd5a0478f..cdcc36a8ed58 100644 --- a/src/Files.App/Data/Models/TagViewModel.cs +++ b/src/Files.App/Data/Models/TagViewModel.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System.Text.Json.Serialization; - namespace Files.App.Data.Models { [Serializable] diff --git a/src/Files.App/Data/Parameters/ColumnParam.cs b/src/Files.App/Data/Parameters/ColumnParam.cs index 65753d883b01..2ce6e0e8f55d 100644 --- a/src/Files.App/Data/Parameters/ColumnParam.cs +++ b/src/Files.App/Data/Parameters/ColumnParam.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Views; -using Files.App.Views.Layouts; using Microsoft.UI.Xaml.Controls; namespace Files.App.Data.Parameters diff --git a/src/Files.App/Data/Parameters/TabBarItemParameter.cs b/src/Files.App/Data/Parameters/TabBarItemParameter.cs index 3443a3492c25..8c4c44f6949c 100644 --- a/src/Files.App/Data/Parameters/TabBarItemParameter.cs +++ b/src/Files.App/Data/Parameters/TabBarItemParameter.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System.Text.Json; - namespace Files.App.Data.Parameters { public sealed class TabBarItemParameter diff --git a/src/Files.App/Data/TemplateSelectors/FileSystemDialogItemSelector.cs b/src/Files.App/Data/TemplateSelectors/FileSystemDialogItemSelector.cs index 49e2009f474d..6b5b82df50be 100644 --- a/src/Files.App/Data/TemplateSelectors/FileSystemDialogItemSelector.cs +++ b/src/Files.App/Data/TemplateSelectors/FileSystemDialogItemSelector.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.ViewModels.Dialogs.FileSystemDialog; using Microsoft.UI.Xaml; namespace Files.App.Data.TemplateSelectors diff --git a/src/Files.App/Data/TemplateSelectors/PathBreadcrumbItemSelector.cs b/src/Files.App/Data/TemplateSelectors/PathBreadcrumbItemSelector.cs deleted file mode 100644 index a63112ba2723..000000000000 --- a/src/Files.App/Data/TemplateSelectors/PathBreadcrumbItemSelector.cs +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (c) Files Community -// Licensed under the MIT License. - -using Microsoft.UI.Xaml; -using Microsoft.UI.Xaml.Controls; - -namespace Files.App.Data.TemplateSelectors -{ - /// - /// Provides template selector for Path Breadcrumb template items. - /// - internal sealed partial class PathBreadcrumbItemSelector : DataTemplateSelector - { - public DataTemplate? ParentItems { get; set; } - - public DataTemplate? CurrentItem { get; set; } - - protected override DataTemplate SelectTemplateCore(object item, DependencyObject container) - { - var itemsControl = ItemsControl.ItemsControlFromItemContainer(container); - - if (itemsControl.ItemsSource is ObservableCollection items) - { - return - itemsControl.IndexFromContainer(container) == items.Count - 1 - ? CurrentItem! - : ParentItems!; - } - else - { - throw new ArgumentException($"Type of {nameof(itemsControl.ItemsSource)} doesn't match ObservableCollection<{nameof(PathBoxItem)}>"); - } - } - } -} diff --git a/src/Files.App/Dialogs/AddBranchDialog.xaml.cs b/src/Files.App/Dialogs/AddBranchDialog.xaml.cs index 420f089419f9..0ced3d074fc2 100644 --- a/src/Files.App/Dialogs/AddBranchDialog.xaml.cs +++ b/src/Files.App/Dialogs/AddBranchDialog.xaml.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.ViewModels.Dialogs; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; diff --git a/src/Files.App/Dialogs/AddItemDialog.xaml.cs b/src/Files.App/Dialogs/AddItemDialog.xaml.cs index f230d7ed0ad6..a68da84fed86 100644 --- a/src/Files.App/Dialogs/AddItemDialog.xaml.cs +++ b/src/Files.App/Dialogs/AddItemDialog.xaml.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.ViewModels.Dialogs; -using Files.App.ViewModels.Dialogs.AddItemDialog; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; diff --git a/src/Files.App/Dialogs/CloneRepoDialog.xaml.cs b/src/Files.App/Dialogs/CloneRepoDialog.xaml.cs index bdfb0dd9a2c1..e3d7d92f563f 100644 --- a/src/Files.App/Dialogs/CloneRepoDialog.xaml.cs +++ b/src/Files.App/Dialogs/CloneRepoDialog.xaml.cs @@ -3,7 +3,6 @@ using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; -using Windows.ApplicationModel.DataTransfer; namespace Files.App.Dialogs { diff --git a/src/Files.App/Dialogs/CreateShortcutDialog.xaml.cs b/src/Files.App/Dialogs/CreateShortcutDialog.xaml.cs index 1909a21cd75e..086627286d85 100644 --- a/src/Files.App/Dialogs/CreateShortcutDialog.xaml.cs +++ b/src/Files.App/Dialogs/CreateShortcutDialog.xaml.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.ViewModels.Dialogs; -using Files.App.ViewModels.Dialogs; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Data; diff --git a/src/Files.App/Dialogs/DecompressArchiveDialog.xaml.cs b/src/Files.App/Dialogs/DecompressArchiveDialog.xaml.cs index c795de3221fb..6f260b9325a9 100644 --- a/src/Files.App/Dialogs/DecompressArchiveDialog.xaml.cs +++ b/src/Files.App/Dialogs/DecompressArchiveDialog.xaml.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.ViewModels.Dialogs; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using System.Text; diff --git a/src/Files.App/Dialogs/DynamicDialog.xaml.cs b/src/Files.App/Dialogs/DynamicDialog.xaml.cs index 73277c28940e..73e5fc122692 100644 --- a/src/Files.App/Dialogs/DynamicDialog.xaml.cs +++ b/src/Files.App/Dialogs/DynamicDialog.xaml.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.ViewModels.Dialogs; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; diff --git a/src/Files.App/Dialogs/ElevateConfirmDialog.xaml.cs b/src/Files.App/Dialogs/ElevateConfirmDialog.xaml.cs index a9360045a62a..88069e9170bc 100644 --- a/src/Files.App/Dialogs/ElevateConfirmDialog.xaml.cs +++ b/src/Files.App/Dialogs/ElevateConfirmDialog.xaml.cs @@ -1,11 +1,8 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.ViewModels.Dialogs; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; -using System; -using System.Threading.Tasks; namespace Files.App.Dialogs { diff --git a/src/Files.App/Dialogs/ReorderSidebarItemsDialog.xaml.cs b/src/Files.App/Dialogs/ReorderSidebarItemsDialog.xaml.cs index 1f52db5576dc..b5be41005632 100644 --- a/src/Files.App/Dialogs/ReorderSidebarItemsDialog.xaml.cs +++ b/src/Files.App/Dialogs/ReorderSidebarItemsDialog.xaml.cs @@ -2,15 +2,9 @@ // Licensed under the MIT License. using CommunityToolkit.WinUI; -using Files.App.Data.Items; -using Files.App.Extensions; -using Files.App.ViewModels.Dialogs; -using Files.App.ViewModels.Dialogs; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Input; -using System; -using System.Threading.Tasks; using Windows.ApplicationModel.DataTransfer; namespace Files.App.Dialogs @@ -59,7 +53,7 @@ private void ListViewItem_DragOver(object sender, DragEventArgs e) if ((sender as Grid)?.DataContext is not LocationItem locationItem) return; var deferral = e.GetDeferral(); - + if ((e.DataView.Properties["sourceLocationItem"] as Grid)?.DataContext is LocationItem sourceLocationItem) { DragOver_SetCaptions(sourceLocationItem, locationItem, e); diff --git a/src/Files.App/Dialogs/SettingsDialog.xaml.cs b/src/Files.App/Dialogs/SettingsDialog.xaml.cs index 27ba9a61b38a..6bb9b809385d 100644 --- a/src/Files.App/Dialogs/SettingsDialog.xaml.cs +++ b/src/Files.App/Dialogs/SettingsDialog.xaml.cs @@ -37,7 +37,7 @@ public void NavigateTo(SettingsNavigationParams navParams) ); if (oldSelection is not null) oldSelection.IsSelected = false; - + MainSettingsNavigationView.SelectedItem = targetSection; } diff --git a/src/Files.App/Extensions/ActionManager.cs b/src/Files.App/Extensions/ActionManager.cs new file mode 100644 index 000000000000..8928718ef6c9 --- /dev/null +++ b/src/Files.App/Extensions/ActionManager.cs @@ -0,0 +1,56 @@ +using System.Runtime.InteropServices; +using Windows.AI.Actions; +using Windows.AI.Actions.Hosting; +using Windows.Win32; +using Windows.Win32.Foundation; +using Windows.Win32.System.Com; +using WinRT; + +namespace Files.App.Extensions +{ + internal class ActionManager + { + internal static ActionManager Instance => _instance ??= new(); + + private static ActionManager? _instance; + + // NOTE: This Guid is subject to change in the future + private static readonly Guid IActionRuntimeIID = Guid.Parse("206EFA2C-C909-508A-B4B0-9482BE96DB9C"); + + // Public API usage (ActionCatalog) + private const string ActionRuntimeClsidStr = "C36FEF7E-35F3-4192-9F2C-AF1FD425FB85"; + + internal ActionEntityFactory EntityFactory => ActionRuntime.EntityFactory; + + internal ActionRuntime? ActionRuntime; + internal ActionCatalog ActionCatalog => ActionRuntime.ActionCatalog; + + private ActionManager() + { + ActionRuntime = CreateActionRuntime(); + } + + public static unsafe Windows.AI.Actions.ActionRuntime? CreateActionRuntime() + { + IntPtr abiPtr = default; + try + { + Guid classId = Guid.Parse(ActionRuntimeClsidStr); + Guid iid = IActionRuntimeIID; + + HRESULT hresult = PInvoke.CoCreateInstance(&classId, null, CLSCTX.CLSCTX_LOCAL_SERVER, &iid, (void**)&abiPtr); + Marshal.ThrowExceptionForHR((int)hresult); + + return MarshalInterface.FromAbi(abiPtr); + } + catch + { + return null; + } + finally + { + MarshalInspectable.DisposeAbi(abiPtr); + } + } + } +} \ No newline at end of file diff --git a/src/Files.App/Extensions/EnumExtensions.cs b/src/Files.App/Extensions/EnumExtensions.cs index e1feaff30c2b..ab3759d85da3 100644 --- a/src/Files.App/Extensions/EnumExtensions.cs +++ b/src/Files.App/Extensions/EnumExtensions.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System; using System.Reflection; namespace Files.App.Extensions @@ -15,7 +14,7 @@ public static TEnum GetEnum(string text) where TEnum : struct throw new InvalidOperationException("Generic parameter 'TEnum' must be an enum."); } - return (TEnum)Enum.Parse(typeof(TEnum), text); + return Enum.Parse(text); } } } diff --git a/src/Files.App/Extensions/ImageSourceExtensions.cs b/src/Files.App/Extensions/ImageSourceExtensions.cs index a05692d37312..313e1d8dd0c1 100644 --- a/src/Files.App/Extensions/ImageSourceExtensions.cs +++ b/src/Files.App/Extensions/ImageSourceExtensions.cs @@ -1,11 +1,8 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System; using System.IO; using System.Runtime.InteropServices.WindowsRuntime; -using System.Threading; -using System.Threading.Tasks; using Windows.Storage; using Windows.Storage.Streams; diff --git a/src/Files.App/Extensions/LocalizationExtensions.cs b/src/Files.App/Extensions/LocalizationExtensions.cs index 6331b13126a2..ce7862811e6c 100644 --- a/src/Files.App/Extensions/LocalizationExtensions.cs +++ b/src/Files.App/Extensions/LocalizationExtensions.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Services; - namespace Files.App.Extensions { /// diff --git a/src/Files.App/Extensions/MessageFormatExtensions.cs b/src/Files.App/Extensions/MessageFormatExtensions.cs index 1de281ff2799..a0ac3702ac30 100644 --- a/src/Files.App/Extensions/MessageFormatExtensions.cs +++ b/src/Files.App/Extensions/MessageFormatExtensions.cs @@ -2,9 +2,9 @@ // Licensed under the MIT License. using Jeffijoe.MessageFormat; +using Microsoft.Extensions.Logging; using Microsoft.Windows.ApplicationModel.Resources; using System.Globalization; -using Microsoft.Extensions.Logging; namespace Files.App.Extensions { diff --git a/src/Files.App/Extensions/ShellNewEntryExtensions.cs b/src/Files.App/Extensions/ShellNewEntryExtensions.cs index e09ad6e7fb2f..00cedd074d9b 100644 --- a/src/Files.App/Extensions/ShellNewEntryExtensions.cs +++ b/src/Files.App/Extensions/ShellNewEntryExtensions.cs @@ -1,15 +1,7 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Utils; -using Files.App.Helpers; -using Files.App.Utils.Shell; -using Files.Shared; -using Files.Shared.Extensions; -using System; -using System.Collections.Generic; using System.IO; -using System.Threading.Tasks; using Windows.Storage; namespace Files.App.Extensions diff --git a/src/Files.App/Extensions/Win32FindDataExtensions.cs b/src/Files.App/Extensions/Win32FindDataExtensions.cs index 1e3d9a8ba927..3971145beac6 100644 --- a/src/Files.App/Extensions/Win32FindDataExtensions.cs +++ b/src/Files.App/Extensions/Win32FindDataExtensions.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using static Files.App.Helpers.Win32Helper; - namespace Files.App.Extensions { public static class Win32FindDataExtensions diff --git a/src/Files.App/Helpers/Application/AppLanguageHelper.cs b/src/Files.App/Helpers/Application/AppLanguageHelper.cs index 3883cecae9c5..673e69673c5d 100644 --- a/src/Files.App/Helpers/Application/AppLanguageHelper.cs +++ b/src/Files.App/Helpers/Application/AppLanguageHelper.cs @@ -27,6 +27,21 @@ public static class AppLanguageHelper /// public static AppLanguageItem PreferredLanguage { get; private set; } + /// + /// Gets the preferred language. + /// + public static bool IsPreferredLanguageRtl + { + get + { + if (PreferredLanguage.Code is null) + return false; + + var culture = new CultureInfo(PreferredLanguage.Code); + return culture.TextInfo.IsRightToLeft; + } + } + /// /// Initializes the class. /// diff --git a/src/Files.App/Helpers/Application/AppLifecycleHelper.cs b/src/Files.App/Helpers/Application/AppLifecycleHelper.cs index 6537d6943e4a..9be8c4bd051f 100644 --- a/src/Files.App/Helpers/Application/AppLifecycleHelper.cs +++ b/src/Files.App/Helpers/Application/AppLifecycleHelper.cs @@ -61,7 +61,8 @@ static AppLifecycleHelper() { IsAppUpdated = version.ToString() != AppVersion.ToString(); } - TotalLaunchCount = launchCount is long l ? l + 1 : 1; + + TotalLaunchCount = long.TryParse(launchCount?.ToString(), out var v) ? v + 1 : 1; infoKey.SetValue("LastLaunchVersion", AppVersion.ToString()); infoKey.SetValue("TotalLaunchCount", TotalLaunchCount); } diff --git a/src/Files.App/Helpers/Application/AppToastNotificationHelper.cs b/src/Files.App/Helpers/Application/AppToastNotificationHelper.cs index e34ce4c4df26..a73201c093bd 100644 --- a/src/Files.App/Helpers/Application/AppToastNotificationHelper.cs +++ b/src/Files.App/Helpers/Application/AppToastNotificationHelper.cs @@ -1,10 +1,5 @@ using Microsoft.Windows.AppNotifications; using Microsoft.Windows.AppNotifications.Builder; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace Files.App.Helpers.Application { diff --git a/src/Files.App/Helpers/CollectionDebugView.cs b/src/Files.App/Helpers/CollectionDebugView.cs index 6ad43496debe..11a933c85ac9 100644 --- a/src/Files.App/Helpers/CollectionDebugView.cs +++ b/src/Files.App/Helpers/CollectionDebugView.cs @@ -1,10 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System; -using System.Collections.Generic; -using System.Diagnostics; - namespace Files.App.Helpers { internal sealed class CollectionDebugView diff --git a/src/Files.App/Helpers/CredentialsHelpers.cs b/src/Files.App/Helpers/CredentialsHelpers.cs index 334dd752200c..10d3b3bc1412 100644 --- a/src/Files.App/Helpers/CredentialsHelpers.cs +++ b/src/Files.App/Helpers/CredentialsHelpers.cs @@ -1,5 +1,4 @@ -using System.Runtime.InteropServices; -using Windows.Security.Credentials; +using Windows.Security.Credentials; namespace Files.App.Helpers { diff --git a/src/Files.App/Helpers/Dialog/DynamicDialogFactory.cs b/src/Files.App/Helpers/Dialog/DynamicDialogFactory.cs index 3608b91bc045..a6468fbafaa9 100644 --- a/src/Files.App/Helpers/Dialog/DynamicDialogFactory.cs +++ b/src/Files.App/Helpers/Dialog/DynamicDialogFactory.cs @@ -424,7 +424,7 @@ await commands.OpenSettings.ExecuteAsync( new SettingsNavigationParams() { PageKind = SettingsPageKind.DevToolsPage } ); } - + public static async Task ShowFor_CannotCloneRepo(string exception) { var dialog = new DynamicDialog(new DynamicDialogViewModel() diff --git a/src/Files.App/Helpers/Environment/PackageHelper.cs b/src/Files.App/Helpers/Environment/PackageHelper.cs index bfd9712fd699..f9c54130ce64 100644 --- a/src/Files.App/Helpers/Environment/PackageHelper.cs +++ b/src/Files.App/Helpers/Environment/PackageHelper.cs @@ -1,9 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System; -using System.Diagnostics; -using System.Threading.Tasks; using Windows.System; namespace Files.App.Helpers diff --git a/src/Files.App/Helpers/IntervalSampler.cs b/src/Files.App/Helpers/IntervalSampler.cs index e9c64671440f..1518f4c0aa73 100644 --- a/src/Files.App/Helpers/IntervalSampler.cs +++ b/src/Files.App/Helpers/IntervalSampler.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System; - namespace Files.App.Helpers { internal sealed class IntervalSampler diff --git a/src/Files.App/Helpers/Layout/AdaptiveLayoutHelpers.cs b/src/Files.App/Helpers/Layout/AdaptiveLayoutHelpers.cs index 2936632cf414..83c5ebe14eaa 100644 --- a/src/Files.App/Helpers/Layout/AdaptiveLayoutHelpers.cs +++ b/src/Files.App/Helpers/Layout/AdaptiveLayoutHelpers.cs @@ -93,7 +93,7 @@ static bool IsImage(ListedItem item) static bool IsMedia(ListedItem item) => !string.IsNullOrEmpty(item.FileExtension) - && (FileExtensionHelpers.IsAudioFile(item.FileExtension) + && (FileExtensionHelpers.IsAudioFile(item.FileExtension) || FileExtensionHelpers.IsVideoFile(item.FileExtension)); } diff --git a/src/Files.App/Helpers/Layout/LayoutPreferencesDatabaseManager.cs b/src/Files.App/Helpers/Layout/LayoutPreferencesDatabaseManager.cs index 5e9699102c03..14ae02bd94ed 100644 --- a/src/Files.App/Helpers/Layout/LayoutPreferencesDatabaseManager.cs +++ b/src/Files.App/Helpers/Layout/LayoutPreferencesDatabaseManager.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System.Diagnostics.CodeAnalysis; - namespace Files.App.Helpers { /// diff --git a/src/Files.App/Helpers/MenuFlyout/ContextFlyoutModelToElementHelper.cs b/src/Files.App/Helpers/MenuFlyout/ContextFlyoutModelToElementHelper.cs index c7959d7c87fc..95a815b76ede 100644 --- a/src/Files.App/Helpers/MenuFlyout/ContextFlyoutModelToElementHelper.cs +++ b/src/Files.App/Helpers/MenuFlyout/ContextFlyoutModelToElementHelper.cs @@ -251,6 +251,7 @@ private static ICommandBarElement GetCommandBarButton(ContextMenuFlyoutItemViewM LabelPosition = item.IsPrimary || item.CollapseLabel ? CommandBarLabelPosition.Collapsed : CommandBarLabelPosition.Default, IsEnabled = item.IsEnabled, Visibility = item.IsHidden ? Visibility.Collapsed : Visibility.Visible, + AccessKey = item.AccessKey, }; if (element is AppBarToggleButton toggleButton) @@ -281,6 +282,7 @@ private static ICommandBarElement GetCommandBarButton(ContextMenuFlyoutItemViewM Content = content, IsEnabled = item.IsEnabled, Visibility = item.IsHidden ? Visibility.Collapsed : Visibility.Visible, + AccessKey = item.AccessKey, }; if (element is AppBarButton button) diff --git a/src/Files.App/Helpers/NaturalStringComparer.cs b/src/Files.App/Helpers/NaturalStringComparer.cs index 399ee10bcbbe..6108d604c0b4 100644 --- a/src/Files.App/Helpers/NaturalStringComparer.cs +++ b/src/Files.App/Helpers/NaturalStringComparer.cs @@ -21,47 +21,47 @@ public static IComparer GetForProcessor() /// private sealed class NaturalComparer : IComparer, IComparer, IComparer> { - private readonly StringComparison stringComparison; - - public NaturalComparer(StringComparison stringComparison = StringComparison.Ordinal) - { - this.stringComparison = stringComparison; - } - - public int Compare(object? x, object? y) - { - if (x == y) return 0; - if (x == null) return -1; - if (y == null) return 1; - - return x switch - { - string x1 when y is string y1 => Compare(x1.AsSpan(), y1.AsSpan(), stringComparison), - IComparable comparable => comparable.CompareTo(y), - _ => StringComparer.FromComparison(stringComparison).Compare(x, y) - }; - } - - public int Compare(string? x, string? y) - { - if (ReferenceEquals(x, y)) return 0; - if (x is null) return -1; - if (y is null) return 1; - - return Compare(x.AsSpan(), y.AsSpan(), stringComparison); - } - - public int Compare(ReadOnlySpan x, ReadOnlySpan y) - { - return Compare(x, y, stringComparison); - } - - public int Compare(ReadOnlyMemory x, ReadOnlyMemory y) - { - return Compare(x.Span, y.Span, stringComparison); - } - - public static int Compare(ReadOnlySpan x, ReadOnlySpan y, StringComparison stringComparison) + private readonly StringComparison stringComparison; + + public NaturalComparer(StringComparison stringComparison = StringComparison.Ordinal) + { + this.stringComparison = stringComparison; + } + + public int Compare(object? x, object? y) + { + if (x == y) return 0; + if (x == null) return -1; + if (y == null) return 1; + + return x switch + { + string x1 when y is string y1 => Compare(x1.AsSpan(), y1.AsSpan(), stringComparison), + IComparable comparable => comparable.CompareTo(y), + _ => StringComparer.FromComparison(stringComparison).Compare(x, y) + }; + } + + public int Compare(string? x, string? y) + { + if (ReferenceEquals(x, y)) return 0; + if (x is null) return -1; + if (y is null) return 1; + + return Compare(x.AsSpan(), y.AsSpan(), stringComparison); + } + + public int Compare(ReadOnlySpan x, ReadOnlySpan y) + { + return Compare(x, y, stringComparison); + } + + public int Compare(ReadOnlyMemory x, ReadOnlyMemory y) + { + return Compare(x.Span, y.Span, stringComparison); + } + + public static int Compare(ReadOnlySpan x, ReadOnlySpan y, StringComparison stringComparison) { // Handle file extensions specially int xExtPos = GetExtensionPosition(x); @@ -70,9 +70,9 @@ public static int Compare(ReadOnlySpan x, ReadOnlySpan y, StringComp // If both have extensions, compare the names first if (xExtPos >= 0 && yExtPos >= 0) { - var xName = x.Slice(0, xExtPos); + var xName = x.Slice(0, xExtPos); var yName = y.Slice(0, yExtPos); - + int nameCompare = CompareWithoutExtension(xName, yName, stringComparison); if (nameCompare != 0) return nameCompare; @@ -143,35 +143,35 @@ private static bool IsIgnorableSeparator(ReadOnlySpan span, int index) } - private static ReadOnlySpan GetNumber(ReadOnlySpan span, out ReadOnlySpan number) - { - var i = 0; - while (i < span.Length && char.IsDigit(span[i])) - { - i++; - } + private static ReadOnlySpan GetNumber(ReadOnlySpan span, out ReadOnlySpan number) + { + var i = 0; + while (i < span.Length && char.IsDigit(span[i])) + { + i++; + } - number = span.Slice(0, i); - return span.Slice(i); - } + number = span.Slice(0, i); + return span.Slice(i); + } - private static int CompareNumValues(ReadOnlySpan numValue1, ReadOnlySpan numValue2) - { - var num1AsSpan = numValue1.TrimStart('0'); - var num2AsSpan = numValue2.TrimStart('0'); + private static int CompareNumValues(ReadOnlySpan numValue1, ReadOnlySpan numValue2) + { + var num1AsSpan = numValue1.TrimStart('0'); + var num2AsSpan = numValue2.TrimStart('0'); - if (num1AsSpan.Length < num2AsSpan.Length) return -1; + if (num1AsSpan.Length < num2AsSpan.Length) return -1; - if (num1AsSpan.Length > num2AsSpan.Length) return 1; + if (num1AsSpan.Length > num2AsSpan.Length) return 1; - var compareResult = num1AsSpan.CompareTo(num2AsSpan, StringComparison.Ordinal); + var compareResult = num1AsSpan.CompareTo(num2AsSpan, StringComparison.Ordinal); - if (compareResult != 0) return Math.Sign(compareResult); + if (compareResult != 0) return Math.Sign(compareResult); - if (numValue2.Length == numValue1.Length) return compareResult; + if (numValue2.Length == numValue1.Length) return compareResult; - return numValue2.Length < numValue1.Length ? -1 : 1; // "033" < "33" == true - } + return numValue2.Length < numValue1.Length ? -1 : 1; // "033" < "33" == true + } } } } diff --git a/src/Files.App/Helpers/Navigation/MultitaskingTabsHelpers.cs b/src/Files.App/Helpers/Navigation/MultitaskingTabsHelpers.cs index 2e4b347fddd9..f24bc2d5a97f 100644 --- a/src/Files.App/Helpers/Navigation/MultitaskingTabsHelpers.cs +++ b/src/Files.App/Helpers/Navigation/MultitaskingTabsHelpers.cs @@ -1,11 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.UserControls.TabBar; -using Files.App.ViewModels; -using System.Linq; -using System.Threading.Tasks; - namespace Files.App.Helpers { public static class MultitaskingTabsHelpers @@ -40,7 +35,7 @@ public static void CloseOtherTabs(TabBarItem clickedTab, ITabBar multitaskingCon tabs.Where((t) => t != clickedTab).ToList().ForEach(tab => multitaskingControl.CloseTab(tab)); } } - + public static void CloseAllTabs(ITabBar multitaskingControl) { if (multitaskingControl is not null) diff --git a/src/Files.App/Helpers/Navigation/NavigationHelpers.cs b/src/Files.App/Helpers/Navigation/NavigationHelpers.cs index 079f61a77340..0723bc313e09 100644 --- a/src/Files.App/Helpers/Navigation/NavigationHelpers.cs +++ b/src/Files.App/Helpers/Navigation/NavigationHelpers.cs @@ -198,7 +198,7 @@ private static async Task UpdateTabInfoAsync(TabBarItem tabItem, object navigati iconSource.ImageSource = new BitmapImage(new Uri(Constants.FluentIconsPaths.HomeIcon)); } else if (currentPath == "ReleaseNotes") - { + { tabLocationHeader = Strings.ReleaseNotes.GetLocalizedResource(); iconSource.ImageSource = new BitmapImage(new Uri(AppLifecycleHelper.AppIconPath)); } @@ -489,7 +489,8 @@ public static async Task OpenPath(string path, IShellPage associatedInstan opened = await OpenFile(path, associatedInstance, shortcutInfo, openViaApplicationPicker, args); break; - }; + } + ; if (opened.ErrorCode == FileSystemStatusCode.NotFound && !openSilent) { diff --git a/src/Files.App/Helpers/Navigation/NavigationInteractionTracker.cs b/src/Files.App/Helpers/Navigation/NavigationInteractionTracker.cs index a10a0c268041..5c6886a794cf 100644 --- a/src/Files.App/Helpers/Navigation/NavigationInteractionTracker.cs +++ b/src/Files.App/Helpers/Navigation/NavigationInteractionTracker.cs @@ -221,7 +221,7 @@ public void IdleStateEntered(InteractionTracker sender, InteractionTrackerIdleSt } } else - { + { _parent._tracker.TryUpdatePositionWithAnimation(_returnAnimation); } _shouldBounceBack = false; diff --git a/src/Files.App/Helpers/PathNormalization.cs b/src/Files.App/Helpers/PathNormalization.cs index 58b55ff76b92..b992063950c6 100644 --- a/src/Files.App/Helpers/PathNormalization.cs +++ b/src/Files.App/Helpers/PathNormalization.cs @@ -2,7 +2,6 @@ // Licensed under the MIT License. using Microsoft.Extensions.Logging; -using System; using System.IO; namespace Files.App.Helpers diff --git a/src/Files.App/Helpers/RegexHelpers.cs b/src/Files.App/Helpers/RegexHelpers.cs index 79b19c69ef5b..309dfb6f7785 100644 --- a/src/Files.App/Helpers/RegexHelpers.cs +++ b/src/Files.App/Helpers/RegexHelpers.cs @@ -9,22 +9,22 @@ public static partial class RegexHelpers { [GeneratedRegex(@"\w:\w")] public static partial Regex AlternateStream(); - + [GeneratedRegex("(?<=^[^\"]*(?:\"[^\"]*\"[^\"]*)*) (?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)")] public static partial Regex SpaceSplit(); - + [GeneratedRegex(@"^\\\\\?\\[^\\]*\\?")] public static partial Regex WindowsPath(); - + [GeneratedRegex(@"^[A-Z]:\\\$Recycle\.Bin\\", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant)] public static partial Regex RecycleBinPath(); - + [GeneratedRegex(@"^(?!/)(?!.*//)[^\000-\037\177 ~^:?*[]+(?!.*\.\.)(?!.*@\{)(?!.*\\)(? GetSearchIconResource() + { + return SearchIconResource is not null + ? await SearchIconResource.IconData.ToBitmapAsync() + : null; + } + private static IEnumerable LoadSidebarIconResources() { string imageres = Path.Combine(Constants.UserEnvironmentPaths.SystemRootPath, "System32", "imageres.dll"); @@ -153,5 +162,15 @@ private static IconFileInfo LoadShieldIconResource() return imageResList.FirstOrDefault(); } + + private static IconFileInfo LoadSearchIconResource() + { + string imageres = Path.Combine(Constants.UserEnvironmentPaths.SystemRootPath, "System32", "imageres.dll"); + var imageResList = Win32Helper.ExtractSelectedIconsFromDLL(imageres, new List() { + Constants.ImageRes.SearchIcon + }, 48); + + return imageResList.FirstOrDefault(); + } } } diff --git a/src/Files.App/Helpers/WMI/ManagementEventWatcher.cs b/src/Files.App/Helpers/WMI/ManagementEventWatcher.cs index 6de09f630c47..318d2b0b225b 100644 --- a/src/Files.App/Helpers/WMI/ManagementEventWatcher.cs +++ b/src/Files.App/Helpers/WMI/ManagementEventWatcher.cs @@ -3,8 +3,6 @@ using Microsoft.Management.Infrastructure; using Microsoft.Management.Infrastructure.Generic; -using System; -using System.Threading; namespace Files.App.Helpers { @@ -51,10 +49,7 @@ public ManagementEventWatcher(WqlEventQuery query) { string queryExpression = query.QueryExpression; - if (string.IsNullOrWhiteSpace(queryExpression)) - { - throw new ArgumentNullException(nameof(queryExpression)); - } + ArgumentNullException.ThrowIfNullOrWhiteSpace(queryExpression); _nameSpace = DefaultNameSpace; _queryDialect = DefaultQueryDialect; @@ -70,10 +65,7 @@ public ManagementEventWatcher(WqlEventQuery query) /// public ManagementEventWatcher(string queryDialect, string queryExpression) { - if (string.IsNullOrWhiteSpace(queryExpression)) - { - throw new ArgumentNullException(nameof(queryExpression)); - } + ArgumentNullException.ThrowIfNullOrWhiteSpace(queryExpression); _nameSpace = DefaultNameSpace; _queryDialect = queryDialect ?? DefaultQueryDialect; @@ -90,10 +82,7 @@ public ManagementEventWatcher(string queryDialect, string queryExpression) /// public ManagementEventWatcher(string nameSpace, string queryDialect, string queryExpression) { - if (string.IsNullOrWhiteSpace(queryExpression)) - { - throw new ArgumentNullException(nameof(queryExpression)); - } + ArgumentNullException.ThrowIfNullOrWhiteSpace(queryExpression); _nameSpace = nameSpace ?? DefaultNameSpace; _queryDialect = queryDialect ?? DefaultQueryDialect; @@ -111,10 +100,7 @@ public ManagementEventWatcher(string nameSpace, string queryDialect, string quer /// public ManagementEventWatcher(string computerName, string nameSpace, string queryDialect, string queryExpression) { - if (string.IsNullOrWhiteSpace(queryExpression)) - { - throw new ArgumentNullException(nameof(queryExpression)); - } + ArgumentNullException.ThrowIfNullOrWhiteSpace(queryExpression); _computerName = computerName; _nameSpace = nameSpace ?? DefaultNameSpace; @@ -160,10 +146,7 @@ public void Start() { lock (_myLock) { - if (_isDisposed) - { - throw new ObjectDisposedException(nameof(ManagementEventWatcher)); - } + ObjectDisposedException.ThrowIf(_isDisposed, this); if (_cimWatcherStatus != CimWatcherStatus.Default && _cimWatcherStatus != CimWatcherStatus.Stopped) { @@ -180,10 +163,7 @@ public void Stop() { lock (_myLock) { - if (_isDisposed) - { - throw new ObjectDisposedException(nameof(ManagementEventWatcher)); - } + ObjectDisposedException.ThrowIf(_isDisposed, this); if (_cimWatcherStatus != CimWatcherStatus.Started) { diff --git a/src/Files.App/Helpers/Win32/Win32Helper.Process.cs b/src/Files.App/Helpers/Win32/Win32Helper.Process.cs index 1f73eeb9d795..c8871969efa7 100644 --- a/src/Files.App/Helpers/Win32/Win32Helper.Process.cs +++ b/src/Files.App/Helpers/Win32/Win32Helper.Process.cs @@ -1,10 +1,6 @@ // Copyright (c) 2024 Files Community // Licensed under the MIT License. See the LICENSE. -using Microsoft.Extensions.Logging; -using Windows.Foundation.Metadata; -using Windows.System; - namespace Files.App.Helpers { /// @@ -12,33 +8,6 @@ namespace Files.App.Helpers /// public static partial class Win32Helper { - private static bool? isRunningOnArm = null; - public static bool IsRunningOnArm - { - get - { - // https://stackoverflow.com/questions/54456140/how-to-detect-were-running-under-the-arm64-version-of-windows-10-in-net - // https://learn.microsoft.com/windows/win32/sysinfo/image-file-machine-constants - if (isRunningOnArm is null) - { - isRunningOnArm = IsArmProcessor(); - App.Logger.LogInformation("Running on ARM: {0}", isRunningOnArm); - } - - return isRunningOnArm ?? false; - } - } - - private static bool? isHasThreadAccessPropertyPresent = null; - public static bool IsHasThreadAccessPropertyPresent - { - get - { - isHasThreadAccessPropertyPresent ??= ApiInformation.IsPropertyPresent(typeof(DispatcherQueue).FullName, "HasThreadAccess"); - return isHasThreadAccessPropertyPresent ?? false; - } - } - public static async Task InvokeWin32ComponentAsync(string applicationPath, IShellPage associatedInstance, string arguments = null, bool runAsAdmin = false, string workingDirectory = null) { return await InvokeWin32ComponentsAsync(applicationPath.CreateEnumerable(), associatedInstance, arguments, runAsAdmin, workingDirectory); @@ -158,19 +127,6 @@ public static List WhoIsLocking(string[] resources) return processes; } - private static bool IsArmProcessor() - { - var handle = Process.GetCurrentProcess().Handle; - if (!Win32PInvoke.IsWow64Process2(handle, out _, out var nativeMachine)) - return false; - - return - nativeMachine == 0xaa64 || - nativeMachine == 0x01c0 || - nativeMachine == 0x01c2 || - nativeMachine == 0x01c4; - } - public static Task GetFileAssociationAsync(string filePath) { return GetFileAssociationAsync(filePath, true); diff --git a/src/Files.App/Helpers/Win32/Win32Helper.Storage.cs b/src/Files.App/Helpers/Win32/Win32Helper.Storage.cs index 7e878896a3f9..51bc82a35a73 100644 --- a/src/Files.App/Helpers/Win32/Win32Helper.Storage.cs +++ b/src/Files.App/Helpers/Win32/Win32Helper.Storage.cs @@ -14,9 +14,7 @@ using Vanara.PInvoke; using Windows.System; using Windows.Win32; -using Windows.Win32.Foundation; using Windows.Win32.Storage.FileSystem; -using static Vanara.PInvoke.Kernel32; using COMPRESSION_FORMAT = Windows.Win32.Storage.FileSystem.COMPRESSION_FORMAT; using HRESULT = Vanara.PInvoke.HRESULT; using HWND = Vanara.PInvoke.HWND; @@ -904,13 +902,13 @@ public static SafeFileHandle OpenFileForRead(string filePath, bool readWrite = f (uint)FILE_ACCESS_RIGHTS.FILE_GENERIC_READ | (uint)(readWrite ? FILE_ACCESS_RIGHTS.FILE_GENERIC_WRITE : 0u), (uint)(Win32PInvoke.FILE_SHARE_READ | (readWrite ? 0 : Win32PInvoke.FILE_SHARE_WRITE)), IntPtr.Zero, Win32PInvoke.OPEN_EXISTING, (uint)Win32PInvoke.File_Attributes.BackupSemantics | flags, IntPtr.Zero), true); } - public static bool GetFileDateModified(string filePath, out FILETIME dateModified) + public static bool GetFileDateModified(string filePath, out System.Runtime.InteropServices.ComTypes.FILETIME dateModified) { using var hFile = new SafeFileHandle(Win32PInvoke.CreateFileFromApp(filePath, (uint)FILE_ACCESS_RIGHTS.FILE_GENERIC_READ, Win32PInvoke.FILE_SHARE_READ, IntPtr.Zero, Win32PInvoke.OPEN_EXISTING, (uint)Win32PInvoke.File_Attributes.BackupSemantics, IntPtr.Zero), true); return Win32PInvoke.GetFileTime(hFile.DangerousGetHandle(), out _, out _, out dateModified); } - public static bool SetFileDateModified(string filePath, FILETIME dateModified) + public static bool SetFileDateModified(string filePath, System.Runtime.InteropServices.ComTypes.FILETIME dateModified) { using var hFile = new SafeFileHandle(Win32PInvoke.CreateFileFromApp(filePath, (uint)FILE_ACCESS_RIGHTS.FILE_WRITE_ATTRIBUTES, 0, IntPtr.Zero, Win32PInvoke.OPEN_EXISTING, (uint)Win32PInvoke.File_Attributes.BackupSemantics, IntPtr.Zero), true); return Win32PInvoke.SetFileTime(hFile.DangerousGetHandle(), new(), new(), dateModified); diff --git a/src/Files.App/Helpers/Win32/Win32Helper.WindowManagement.cs b/src/Files.App/Helpers/Win32/Win32Helper.WindowManagement.cs index b502d87c1f70..996c7af3bed7 100644 --- a/src/Files.App/Helpers/Win32/Win32Helper.WindowManagement.cs +++ b/src/Files.App/Helpers/Win32/Win32Helper.WindowManagement.cs @@ -1,9 +1,6 @@ // Copyright (c) 2024 Files Community // Licensed under the MIT License. See the LICENSE. -using Microsoft.UI.Input; -using Microsoft.UI.Xaml; -using System.Reflection; using System.Runtime.InteropServices; using Windows.Win32; using Windows.Win32.UI.WindowsAndMessaging; diff --git a/src/Files.App/Helpers/Win32/Win32PInvoke.Methods.cs b/src/Files.App/Helpers/Win32/Win32PInvoke.Methods.cs index 5d700736a2fa..e52a08638811 100644 --- a/src/Files.App/Helpers/Win32/Win32PInvoke.Methods.cs +++ b/src/Files.App/Helpers/Win32/Win32PInvoke.Methods.cs @@ -1,9 +1,8 @@ -// Copyright (c) 2024 Files Community -// Licensed under the MIT License. See the LICENSE. +// Copyright (c) Files Community +// Licensed under the MIT License. using System.IO; using System.Runtime.InteropServices; -using System.Runtime.InteropServices.ComTypes; using System.Text; using Windows.Win32.Foundation; using Windows.Win32.System.Com; @@ -232,17 +231,17 @@ public static extern bool WriteFileEx( [DllImport("api-ms-win-core-file-l1-2-1.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall, SetLastError = true)] public static extern bool GetFileTime( [In] IntPtr hFile, - out FILETIME lpCreationTime, - out FILETIME lpLastAccessTime, - out FILETIME lpLastWriteTime + out System.Runtime.InteropServices.ComTypes.FILETIME lpCreationTime, + out System.Runtime.InteropServices.ComTypes.FILETIME lpLastAccessTime, + out System.Runtime.InteropServices.ComTypes.FILETIME lpLastWriteTime ); [DllImport("api-ms-win-core-file-l1-2-1.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall, SetLastError = true)] public static extern bool SetFileTime( [In] IntPtr hFile, - in FILETIME lpCreationTime, - in FILETIME lpLastAccessTime, - in FILETIME lpLastWriteTime + in System.Runtime.InteropServices.ComTypes.FILETIME lpCreationTime, + in System.Runtime.InteropServices.ComTypes.FILETIME lpLastAccessTime, + in System.Runtime.InteropServices.ComTypes.FILETIME lpLastWriteTime ); [DllImport("api-ms-win-core-file-l2-1-1.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall, SetLastError = true)] @@ -288,7 +287,7 @@ IntPtr hFindFile [DllImport("api-ms-win-core-timezone-l1-1-0.dll", SetLastError = true)] public static extern bool FileTimeToSystemTime( - ref FILETIME lpFileTime, + ref System.Runtime.InteropServices.ComTypes.FILETIME lpFileTime, out SYSTEMTIME lpSystemTime ); @@ -347,5 +346,9 @@ public static extern int SHGetKnownFolderPath( IntPtr hToken, out IntPtr pszPath ); + + // cryptui.dll + [DllImport("cryptui.dll", SetLastError = true, CharSet = CharSet.Auto)] + public unsafe static extern bool CryptUIDlgViewSignerInfo(CRYPTUI_VIEWSIGNERINFO_STRUCT* pViewInfo); } } diff --git a/src/Files.App/Helpers/Win32/Win32PInvoke.Structs.cs b/src/Files.App/Helpers/Win32/Win32PInvoke.Structs.cs index d54e6ee441e7..d1453d5cd285 100644 --- a/src/Files.App/Helpers/Win32/Win32PInvoke.Structs.cs +++ b/src/Files.App/Helpers/Win32/Win32PInvoke.Structs.cs @@ -3,7 +3,8 @@ using System.IO; using System.Runtime.InteropServices; -using System.Runtime.InteropServices.ComTypes; +using Windows.Win32.Foundation; +using Windows.Win32.Security.Cryptography; namespace Files.App.Helpers { @@ -90,9 +91,9 @@ public struct REPARSE_DATA_BUFFER public struct WIN32_FILE_ATTRIBUTE_DATA { public FileAttributes dwFileAttributes; - public FILETIME ftCreationTime; - public FILETIME ftLastAccessTime; - public FILETIME ftLastWriteTime; + public System.Runtime.InteropServices.ComTypes.FILETIME ftCreationTime; + public System.Runtime.InteropServices.ComTypes.FILETIME ftLastAccessTime; + public System.Runtime.InteropServices.ComTypes.FILETIME ftLastWriteTime; public uint nFileSizeHigh; public uint nFileSizeLow; } @@ -183,9 +184,9 @@ public struct WIN32_FIND_DATA { public uint dwFileAttributes; - public FILETIME ftCreationTime; - public FILETIME ftLastAccessTime; - public FILETIME ftLastWriteTime; + public System.Runtime.InteropServices.ComTypes.FILETIME ftCreationTime; + public System.Runtime.InteropServices.ComTypes.FILETIME ftLastAccessTime; + public System.Runtime.InteropServices.ComTypes.FILETIME ftLastWriteTime; public uint nFileSizeHigh; public uint nFileSizeLow; @@ -198,5 +199,37 @@ public struct WIN32_FIND_DATA [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 14)] public string cAlternateFileName; } + + [StructLayout(LayoutKind.Sequential)] + public unsafe struct SignDataHandle + { + public uint dwObjSize; + public CMSG_SIGNER_INFO* pSignerInfo; + public HCERTSTORE hCertStoreHandle; + } + + [StructLayout(LayoutKind.Sequential)] + public unsafe struct CRYPTOAPI_BLOB + { + public uint cbData; + public void* pbData; + } + + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] + public unsafe struct CRYPTUI_VIEWSIGNERINFO_STRUCT + { + public uint dwSize; + public HWND hwndParent; + public uint dwFlags; + public PCSTR szTitle; + public CMSG_SIGNER_INFO* pSignerInfo; + public void* hMsg; + public PCSTR pszOID; + public uint? dwReserved; + public uint cStores; + public HCERTSTORE* rghStores; + public uint cPropPages; + public void* rgPropPages; + } } } diff --git a/src/Files.App/Helpers/Xaml/DependencyObjectHelpers.cs b/src/Files.App/Helpers/Xaml/DependencyObjectHelpers.cs index 8924da55ba44..938bf6917776 100644 --- a/src/Files.App/Helpers/Xaml/DependencyObjectHelpers.cs +++ b/src/Files.App/Helpers/Xaml/DependencyObjectHelpers.cs @@ -3,8 +3,6 @@ using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Media; -using System; -using System.Collections.Generic; using System.Reflection; namespace Files.App.Helpers diff --git a/src/Files.App/MainWindow.xaml.cs b/src/Files.App/MainWindow.xaml.cs index 6dcfc8b56310..a4d7b352c0c9 100644 --- a/src/Files.App/MainWindow.xaml.cs +++ b/src/Files.App/MainWindow.xaml.cs @@ -160,23 +160,39 @@ public async Task InitializeApplicationAsync(object activatedEventArgs) break; case IFileActivatedEventArgs fileArgs: - var index = 0; - if (rootFrame.Content is null || rootFrame.Content is SplashScreenPage || !MainPageViewModel.AppInstances.Any()) + try { - // When the navigation stack isn't restored navigate to the first page, - // configuring the new page by passing required information as a navigation parameter - rootFrame.Navigate(typeof(MainPage), fileArgs.Files.First().Path, new SuppressNavigationTransitionInfo()); - index = 1; - } - else - { - // Bring to foreground (#14730) - Win32Helper.BringToForegroundEx(new(WindowHandle)); - } + if (fileArgs.Files is null || fileArgs.Files.Count == 0) + { + break; + } + + var index = 0; + if (rootFrame.Content is null || rootFrame.Content is SplashScreenPage || !MainPageViewModel.AppInstances.Any()) + { + // When the navigation stack isn't restored navigate to the first page, + // configuring the new page by passing required information as a navigation parameter + rootFrame.Navigate(typeof(MainPage), fileArgs.Files.First().Path, new SuppressNavigationTransitionInfo()); + index = 1; + } + else + { + // Bring to foreground (#14730) + Win32Helper.BringToForegroundEx(new(WindowHandle)); + } - for (; index < fileArgs.Files.Count; index++) + for (; index < fileArgs.Files.Count; index++) + { + await NavigationHelpers.AddNewTabByPathAsync(typeof(ShellPanesPage), fileArgs.Files[index].Path, true); + } + } + catch (Exception ex) { - await NavigationHelpers.AddNewTabByPathAsync(typeof(ShellPanesPage), fileArgs.Files[index].Path, true); + App.Logger.LogWarning(ex, "Failed to open files."); + if (rootFrame.Content is null || rootFrame.Content is SplashScreenPage || !MainPageViewModel.AppInstances.Any()) + rootFrame.Navigate(typeof(MainPage), null, new SuppressNavigationTransitionInfo()); + else + Win32Helper.BringToForegroundEx(new(WindowHandle)); } break; @@ -277,7 +293,7 @@ async Task PerformNavigationAsync(string payload, string selectItem = null) .Select((tabItem, idx) => new { tabItem, idx }) .FirstOrDefault(x => x.tabItem.NavigationParameter.NavigationParameter is PaneNavigationArguments paneArgs && - (paneNavigationArgs.LeftPaneNavPathParam == paneArgs.LeftPaneNavPathParam || + (paneNavigationArgs.LeftPaneNavPathParam == paneArgs.LeftPaneNavPathParam || paneNavigationArgs.LeftPaneNavPathParam == paneArgs.RightPaneNavPathParam))?.idx ?? -1; if (existingTabIndex >= 0) diff --git a/src/Files.App/Services/App/AppDialogService.cs b/src/Files.App/Services/App/AppDialogService.cs index d5859b77d53d..418eaf3d6d55 100644 --- a/src/Files.App/Services/App/AppDialogService.cs +++ b/src/Files.App/Services/App/AppDialogService.cs @@ -1,15 +1,10 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System.Collections.Frozen; using Files.App.Dialogs; -using Files.App.ViewModels.Dialogs; -using Files.App.Services; -using Files.App.ViewModels.Dialogs; -using Files.App.ViewModels.Dialogs.AddItemDialog; -using Files.App.ViewModels.Dialogs.FileSystemDialog; using Microsoft.Extensions.Logging; using Microsoft.UI.Xaml.Controls; +using System.Collections.Frozen; using Windows.Foundation.Metadata; namespace Files.App.Services diff --git a/src/Files.App/Services/App/AppResourcesService.cs b/src/Files.App/Services/App/AppResourcesService.cs index 4718d8d8f0fd..c3bf262d108d 100644 --- a/src/Files.App/Services/App/AppResourcesService.cs +++ b/src/Files.App/Services/App/AppResourcesService.cs @@ -10,7 +10,7 @@ namespace Files.App.Services public sealed class ResourcesService : IResourcesService { private IAppThemeModeService AppThemeModeService { get; } = Ioc.Default.GetRequiredService(); - + /// public void SetAppThemeBackgroundColor(Color appThemeBackgroundColor) { @@ -31,7 +31,7 @@ public void SetAppThemeToolbarBackgroundColor(Color appThemeToolbarBackgroundCol { Application.Current.Resources["App.Theme.Toolbar.BackgroundBrush"] = appThemeToolbarBackgroundColor; } - + /// public void SetAppThemeSidebarBackgroundColor(Color appThemeSidebarBackgroundColor) { @@ -43,7 +43,7 @@ public void SetAppThemeFileAreaBackgroundColor(Color appThemeFileAreaBackgroundC { Application.Current.Resources["App.Theme.FileArea.BackgroundBrush"] = appThemeFileAreaBackgroundColor; } - + /// public void SetAppThemeFileAreaSecondaryBackgroundColor(Color appThemeFileAreaSecondaryBackgroundColor) { diff --git a/src/Files.App/Services/App/AppUpdateSideloadService.cs b/src/Files.App/Services/App/AppUpdateSideloadService.cs index 25df4e538652..bbea36a8509e 100644 --- a/src/Files.App/Services/App/AppUpdateSideloadService.cs +++ b/src/Files.App/Services/App/AppUpdateSideloadService.cs @@ -87,8 +87,7 @@ public async Task CheckForUpdatesAsync() XmlSerializer xml = new XmlSerializer(typeof(AppInstaller)); var appInstaller = (AppInstaller?)xml.Deserialize(stream); - if (appInstaller is null) - throw new ArgumentNullException(nameof(appInstaller)); + ArgumentNullException.ThrowIfNull(appInstaller); var remoteVersion = new Version(appInstaller.Version); diff --git a/src/Files.App/Services/App/AppUpdateStoreService.cs b/src/Files.App/Services/App/AppUpdateStoreService.cs index 7d2a2d533150..6964c0f67b36 100644 --- a/src/Files.App/Services/App/AppUpdateStoreService.cs +++ b/src/Files.App/Services/App/AppUpdateStoreService.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using CommunityToolkit.WinUI.Helpers; using Microsoft.Extensions.Logging; using Microsoft.UI.Xaml.Controls; using System.IO; diff --git a/src/Files.App/Services/DateTimeFormatter/AbstractDateTimeFormatter.cs b/src/Files.App/Services/DateTimeFormatter/AbstractDateTimeFormatter.cs index 9437eb26e0b9..f690ddfecc0e 100644 --- a/src/Files.App/Services/DateTimeFormatter/AbstractDateTimeFormatter.cs +++ b/src/Files.App/Services/DateTimeFormatter/AbstractDateTimeFormatter.cs @@ -2,7 +2,6 @@ // Licensed under the MIT License. using System.Globalization; -using Windows.Globalization; namespace Files.App.Services.DateTimeFormatter { diff --git a/src/Files.App/Services/DateTimeFormatter/DateTimeFormatterFactory.cs b/src/Files.App/Services/DateTimeFormatter/DateTimeFormatterFactory.cs index 54b4b5f5abe3..cb13916e8b6b 100644 --- a/src/Files.App/Services/DateTimeFormatter/DateTimeFormatterFactory.cs +++ b/src/Files.App/Services/DateTimeFormatter/DateTimeFormatterFactory.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System; - namespace Files.App.Services.DateTimeFormatter { public sealed class DateTimeFormatterFactory : IDateTimeFormatterFactory diff --git a/src/Files.App/Services/DateTimeFormatter/SystemDateTimeFormatter.cs b/src/Files.App/Services/DateTimeFormatter/SystemDateTimeFormatter.cs index 79aa2251e7a9..294593056a7d 100644 --- a/src/Files.App/Services/DateTimeFormatter/SystemDateTimeFormatter.cs +++ b/src/Files.App/Services/DateTimeFormatter/SystemDateTimeFormatter.cs @@ -1,9 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Extensions; -using System; - namespace Files.App.Services.DateTimeFormatter { internal sealed class SystemDateTimeFormatter : AbstractDateTimeFormatter diff --git a/src/Files.App/Services/DateTimeFormatter/UniversalDateTimeFormatter.cs b/src/Files.App/Services/DateTimeFormatter/UniversalDateTimeFormatter.cs index 1271f73652df..cb08253fabc9 100644 --- a/src/Files.App/Services/DateTimeFormatter/UniversalDateTimeFormatter.cs +++ b/src/Files.App/Services/DateTimeFormatter/UniversalDateTimeFormatter.cs @@ -1,9 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Extensions; -using System; - namespace Files.App.Services.DateTimeFormatter { internal sealed class UniversalDateTimeFormatter : AbstractDateTimeFormatter diff --git a/src/Files.App/Services/PreviewPopupProviders/PreviewPopupService.cs b/src/Files.App/Services/PreviewPopupProviders/PreviewPopupService.cs index c6408ef4a842..a09e4849c72c 100644 --- a/src/Files.App/Services/PreviewPopupProviders/PreviewPopupService.cs +++ b/src/Files.App/Services/PreviewPopupProviders/PreviewPopupService.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Services.PreviewPopupProviders; - namespace Files.App.Services.PreviewPopupProviders { /// diff --git a/src/Files.App/Services/PreviewPopupProviders/SeerProProvider.cs b/src/Files.App/Services/PreviewPopupProviders/SeerProProvider.cs index c5a39d53355d..7141c8d5ce24 100644 --- a/src/Files.App/Services/PreviewPopupProviders/SeerProProvider.cs +++ b/src/Files.App/Services/PreviewPopupProviders/SeerProProvider.cs @@ -52,7 +52,7 @@ public async Task SwitchPreviewAsync(string path) if (!IsTrackSelectionSettingEnabled && !string.IsNullOrEmpty(CurrentPath)) { await TogglePreviewPopupAsync(CurrentPath); - return; + return; } // Update the preview window if the path changed diff --git a/src/Files.App/Services/Settings/AppearanceSettingsService.cs b/src/Files.App/Services/Settings/AppearanceSettingsService.cs index 5d53b29eccd7..cd56efe4b0f1 100644 --- a/src/Files.App/Services/Settings/AppearanceSettingsService.cs +++ b/src/Files.App/Services/Settings/AppearanceSettingsService.cs @@ -145,13 +145,6 @@ public bool ShowTabActions set => Set(value); } - /// - public bool ShowHomeButton - { - get => Get(false); - set => Set(value); - } - /// public bool ShowShelfPaneToggleButton { diff --git a/src/Files.App/Services/Settings/ApplicationSettingsService.cs b/src/Files.App/Services/Settings/ApplicationSettingsService.cs index 898bcce492f1..0ad454c44db0 100644 --- a/src/Files.App/Services/Settings/ApplicationSettingsService.cs +++ b/src/Files.App/Services/Settings/ApplicationSettingsService.cs @@ -1,25 +1,28 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Utils.Serialization; -using Files.App.Services.Settings; - namespace Files.App.Services.Settings { internal sealed partial class ApplicationSettingsService : BaseObservableJsonSettings, IApplicationSettingsService { - public bool ClickedToReviewApp + public bool HasClickedReviewPrompt + { + get => Get(false); + set => Set(value); + } + + public bool HasClickedSponsorPrompt { get => Get(false); set => Set(value); } - + public bool ShowRunningAsAdminPrompt { get => Get(true); set => Set(value); } - + public bool ShowDataStreamsAreHiddenPrompt { get => Get(true); diff --git a/src/Files.App/Services/Settings/FileTagsSettingsService.cs b/src/Files.App/Services/Settings/FileTagsSettingsService.cs index 3c999b59f43b..c44d3ecf299c 100644 --- a/src/Files.App/Services/Settings/FileTagsSettingsService.cs +++ b/src/Files.App/Services/Settings/FileTagsSettingsService.cs @@ -1,16 +1,10 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Extensions; -using Files.App.Utils; -using Files.App.Helpers; -using Files.App.Utils.Serialization; using Files.App.Utils.Serialization.Implementation; -using Files.App.Services.Settings; using Microsoft.Extensions.Logging; using System.IO; using Windows.Storage; -using CommunityToolkit.WinUI.Helpers; namespace Files.App.Services.Settings { diff --git a/src/Files.App/Services/Settings/GeneralSettingsService.cs b/src/Files.App/Services/Settings/GeneralSettingsService.cs index 0cf219d65a5e..9c3d0e157d72 100644 --- a/src/Files.App/Services/Settings/GeneralSettingsService.cs +++ b/src/Files.App/Services/Settings/GeneralSettingsService.cs @@ -65,6 +65,12 @@ public List PathHistoryList set => Set(value); } + public List PreviousSearchQueriesList + { + get => Get>(null); + set => Set(value); + } + public DateTimeFormats DateTimeFormat { get => Get(DateTimeFormats.Application); @@ -275,6 +281,12 @@ public bool ShowOpenInNewPane set => Set(value); } + public bool ShowOpenTerminal + { + get => Get(true); + set => Set(value); + } + public bool ShowCopyPath { get => Get(true); @@ -353,7 +365,7 @@ public string UserId public ShellPaneArrangement ShellPaneArrangementOption { - get => (ShellPaneArrangement)Get((long)ShellPaneArrangement.Horizontal); + get => (ShellPaneArrangement)Get((long)ShellPaneArrangement.Vertical); set => Set((long)value); } @@ -363,7 +375,7 @@ public bool ShowShelfPane set => Set(value); } - public bool EnableOmnibar + public bool ShowFilterHeader { get => Get(false); set => Set(value); diff --git a/src/Files.App/Services/Settings/UserSettingsService.cs b/src/Files.App/Services/Settings/UserSettingsService.cs index d6c82bd8b36c..590bb6bf8ae5 100644 --- a/src/Files.App/Services/Settings/UserSettingsService.cs +++ b/src/Files.App/Services/Settings/UserSettingsService.cs @@ -1,12 +1,7 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using CommunityToolkit.Mvvm.DependencyInjection; -using Files.App.Utils.Serialization; using Files.App.Utils.Serialization.Implementation; -using Files.App.Services.Settings; -using Files.Shared.Extensions; -using System.Collections.Generic; using System.IO; using Windows.Storage; @@ -74,6 +69,7 @@ public override object ExportSettings() export.Remove(nameof(GeneralSettingsService.LastSessionTabList)); export.Remove(nameof(GeneralSettingsService.LastCrashedTabList)); export.Remove(nameof(GeneralSettingsService.PathHistoryList)); + export.Remove(nameof(GeneralSettingsService.PreviousSearchQueriesList)); return JsonSettingsSerializer.SerializeToJson(export); } diff --git a/src/Files.App/Services/SizeProvider/CachedSizeProvider.cs b/src/Files.App/Services/SizeProvider/CachedSizeProvider.cs index b55c3287a50f..e3ca98eb91be 100644 --- a/src/Files.App/Services/SizeProvider/CachedSizeProvider.cs +++ b/src/Files.App/Services/SizeProvider/CachedSizeProvider.cs @@ -1,13 +1,8 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Extensions; -using System; using System.Collections.Concurrent; using System.IO; -using System.Threading; -using System.Threading.Tasks; -using static Files.App.Helpers.Win32Helper; namespace Files.App.Services.SizeProvider { diff --git a/src/Files.App/Services/SizeProvider/DrivesSizeProvider.cs b/src/Files.App/Services/SizeProvider/DrivesSizeProvider.cs index 5026e5c45a20..beb54dc2cff1 100644 --- a/src/Files.App/Services/SizeProvider/DrivesSizeProvider.cs +++ b/src/Files.App/Services/SizeProvider/DrivesSizeProvider.cs @@ -1,12 +1,8 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System; using System.Collections.Concurrent; using System.IO; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; namespace Files.App.Services.SizeProvider { diff --git a/src/Files.App/Services/SizeProvider/ISizeProvider.cs b/src/Files.App/Services/SizeProvider/ISizeProvider.cs index eb72f244e114..1ce8ccfe1f09 100644 --- a/src/Files.App/Services/SizeProvider/ISizeProvider.cs +++ b/src/Files.App/Services/SizeProvider/ISizeProvider.cs @@ -1,10 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System; -using System.Threading; -using System.Threading.Tasks; - namespace Files.App.Services.SizeProvider { public interface ISizeProvider : IDisposable diff --git a/src/Files.App/Services/SizeProvider/NoSizeProvider.cs b/src/Files.App/Services/SizeProvider/NoSizeProvider.cs index d8d51e3dca32..5b20daa3b98d 100644 --- a/src/Files.App/Services/SizeProvider/NoSizeProvider.cs +++ b/src/Files.App/Services/SizeProvider/NoSizeProvider.cs @@ -1,10 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System; -using System.Threading; -using System.Threading.Tasks; - namespace Files.App.Services.SizeProvider { public sealed partial class NoSizeProvider : ISizeProvider diff --git a/src/Files.App/Services/SizeProvider/SizeChangedEventArgs.cs b/src/Files.App/Services/SizeProvider/SizeChangedEventArgs.cs index 6452d86c8f31..9d57f65d7ae9 100644 --- a/src/Files.App/Services/SizeProvider/SizeChangedEventArgs.cs +++ b/src/Files.App/Services/SizeProvider/SizeChangedEventArgs.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System; - namespace Files.App.Services.SizeProvider { public sealed class SizeChangedEventArgs : EventArgs diff --git a/src/Files.App/Services/Storage/StorageDevicesService.cs b/src/Files.App/Services/Storage/StorageDevicesService.cs index 7aed69898901..c29ca0b4f485 100644 --- a/src/Files.App/Services/Storage/StorageDevicesService.cs +++ b/src/Files.App/Services/Storage/StorageDevicesService.cs @@ -2,9 +2,9 @@ // Licensed under the MIT License. using Microsoft.Extensions.Logging; +using OwlCore.Storage.System.IO; using System.IO; using Windows.Storage; -using OwlCore.Storage.System.IO; namespace Files.App.Services { diff --git a/src/Files.App/Services/Storage/StorageNetworkService.cs b/src/Files.App/Services/Storage/StorageNetworkService.cs index 0ee1b5881fc0..5cea00e864a1 100644 --- a/src/Files.App/Services/Storage/StorageNetworkService.cs +++ b/src/Files.App/Services/Storage/StorageNetworkService.cs @@ -209,24 +209,24 @@ public async Task AuthenticateNetworkShare(string path) unsafe { - if (!path.StartsWith(@"\\", StringComparison.Ordinal)) + if (!path.StartsWith(@"\\", StringComparison.Ordinal)) { // Special handling for network drives - // This part will change path from "y:\Download" to "\\192.168.0.1\nfs\Download" + // This part will change path from "y:\Download" to "\\192.168.0.1\nfs\Download" [DllImport("mpr.dll", CharSet = CharSet.Auto)] static extern int WNetGetConnection(string lpLocalName, StringBuilder lpRemoteName, ref int lpnLength); - + StringBuilder remoteName = new StringBuilder(300); int length = remoteName.Capacity; string lpLocalName = path.Substring(0, 2); int ret = WNetGetConnection(lpLocalName, remoteName, ref length); - if ( ret == 0 ) + if (ret == 0) path = path.Replace(lpLocalName, remoteName.ToString()); } - + fixed (char* lpcPath = path) netRes.lpRemoteName = new PWSTR(lpcPath); } diff --git a/src/Files.App/Services/Windows/WindowsDialogService.cs b/src/Files.App/Services/Windows/WindowsDialogService.cs index 60ee67f767c6..57b16c37e0fe 100644 --- a/src/Files.App/Services/Windows/WindowsDialogService.cs +++ b/src/Files.App/Services/Windows/WindowsDialogService.cs @@ -65,13 +65,17 @@ public unsafe bool Open_FileOpenDialog(nint hWnd, bool pickFoldersOnly, string[] pDialog.Get()->SetDefaultFolder(pDefaultFolderShellItem.Get()); // Show the dialog - pDialog.Get()->Show(new HWND(hWnd)); + hr = pDialog.Get()->Show(new HWND(hWnd)); + if (hr.Value == unchecked((int)0x800704C7)) // HRESULT_FROM_WIN32(ERROR_CANCELLED) + return false; + + hr.ThrowOnFailure(); // Get the file that user chose using ComPtr pResultShellItem = default; pDialog.Get()->GetResult(pResultShellItem.GetAddressOf()); - if (pResultShellItem.Get() == null) - throw new COMException("FileSaveDialog returned invalid shell item."); + if (pResultShellItem.Get() is null) + throw new COMException("FileOpenDialog returned invalid shell item."); pResultShellItem.Get()->GetDisplayName(SIGDN.SIGDN_FILESYSPATH, out var lpFilePath); filePath = lpFilePath.ToString(); @@ -135,12 +139,16 @@ public unsafe bool Open_FileSaveDialog(nint hWnd, bool pickFoldersOnly, string[] pDialog.Get()->SetDefaultFolder(pDefaultFolderShellItem.Get()); // Show the dialog - pDialog.Get()->Show(new HWND(hWnd)); + hr = pDialog.Get()->Show(new HWND(hWnd)); + if (hr.Value == unchecked((int)0x800704C7)) // HRESULT_FROM_WIN32(ERROR_CANCELLED) + return false; + + hr.ThrowOnFailure(); // Get the file that user chose using ComPtr pResultShellItem = default; pDialog.Get()->GetResult(pResultShellItem.GetAddressOf()); - if (pResultShellItem.Get() == null) + if (pResultShellItem.Get() is null) throw new COMException("FileSaveDialog returned invalid shell item."); pResultShellItem.Get()->GetDisplayName(SIGDN.SIGDN_FILESYSPATH, out var lpFilePath); filePath = lpFilePath.ToString(); diff --git a/src/Files.App/Services/Windows/WindowsJumpListService.cs b/src/Files.App/Services/Windows/WindowsJumpListService.cs index 5678331dbb3d..5c1c8b9d1abb 100644 --- a/src/Files.App/Services/Windows/WindowsJumpListService.cs +++ b/src/Files.App/Services/Windows/WindowsJumpListService.cs @@ -3,7 +3,6 @@ using Microsoft.Extensions.Logging; using System.IO; -using Windows.Storage; using Windows.UI.StartScreen; namespace Files.App.Services diff --git a/src/Files.App/Services/Windows/WindowsQuickAccessService.cs b/src/Files.App/Services/Windows/WindowsQuickAccessService.cs index 616e1d9468a8..b060f123a4d0 100644 --- a/src/Files.App/Services/Windows/WindowsQuickAccessService.cs +++ b/src/Files.App/Services/Windows/WindowsQuickAccessService.cs @@ -1,10 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Utils.Shell; -using Files.App.UserControls.Widgets; -using Files.App.Helpers; - namespace Files.App.Services { internal sealed class QuickAccessService : IQuickAccessService diff --git a/src/Files.App/Services/Windows/WindowsRecentItemsService.cs b/src/Files.App/Services/Windows/WindowsRecentItemsService.cs index ea604e417c50..8d2786b25725 100644 --- a/src/Files.App/Services/Windows/WindowsRecentItemsService.cs +++ b/src/Files.App/Services/Windows/WindowsRecentItemsService.cs @@ -3,11 +3,9 @@ using Microsoft.Extensions.Logging; using System.Collections.Specialized; -using System.Runtime.InteropServices; using System.Text; using Windows.Win32; using Windows.Win32.Foundation; -using Windows.Win32.System.Com; using Windows.Win32.System.SystemServices; using Windows.Win32.UI.Shell; using Windows.Win32.UI.WindowsAndMessaging; @@ -271,9 +269,9 @@ private unsafe bool UpdateRecentItems(bool isFolder) var eventArgs = GetChangedActionEventArgs(snapshot, recentItems); if (isFolder) - RecentFoldersChanged?.Invoke(this, eventArgs); + RecentFoldersChanged?.Invoke(this, eventArgs); else - RecentFilesChanged?.Invoke(this, eventArgs); + RecentFilesChanged?.Invoke(this, eventArgs); return true; } diff --git a/src/Files.App/Services/Windows/WindowsStartMenuService.cs b/src/Files.App/Services/Windows/WindowsStartMenuService.cs index cfc6783c95bb..4ff2b4027663 100644 --- a/src/Files.App/Services/Windows/WindowsStartMenuService.cs +++ b/src/Files.App/Services/Windows/WindowsStartMenuService.cs @@ -1,5 +1,4 @@ -using Files.Core.Storage; -using Windows.UI.StartScreen; +using Windows.UI.StartScreen; namespace Files.App.Services { diff --git a/src/Files.App/Services/Windows/WindowsWallpaperService.cs b/src/Files.App/Services/Windows/WindowsWallpaperService.cs index 502a2759c9aa..6aa7e1abc5de 100644 --- a/src/Files.App/Services/Windows/WindowsWallpaperService.cs +++ b/src/Files.App/Services/Windows/WindowsWallpaperService.cs @@ -5,7 +5,6 @@ using Windows.System.UserProfile; using Windows.Win32; using Windows.Win32.Foundation; -using Windows.Win32.System.Com; using Windows.Win32.UI.Shell; using Windows.Win32.UI.Shell.Common; diff --git a/src/Files.App/Strings/af/Resources.resw b/src/Files.App/Strings/af/Resources.resw index 73332333a218..2b25d61fde2b 100644 --- a/src/Files.App/Strings/af/Resources.resw +++ b/src/Files.App/Strings/af/Resources.resw @@ -217,7 +217,7 @@ Wys versteekte lêers en omslae - Dot files + Show dot files Voorkoms @@ -1090,7 +1090,7 @@ Wissel die inligtingspaneel - Wissel die inligtingvenster om die besonderhede-/voorskoupanele te sien + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1098,6 +1098,12 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + Geen voorskou beskikbaar nie @@ -2013,11 +2019,23 @@ Behaviors - - Review Files + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us - - Would you like to review Files? + + Dismiss Set as background @@ -2422,31 +2440,31 @@ Toggle whether to show sidebar - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Copy path of selected items to the clipboard + Copy path of the current directory - Copy path of selected items to the clipboard + Copy path of selected items - Copy path of selected items with quotes to the clipboard + Copy path of selected items with quotes - Copy path of selected items with quotes to the clipboard + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2569,13 +2587,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -3473,27 +3491,27 @@ Shown in a StatusCenter card. - Compressed {0} item(s) to "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressed {0} item(s) from "{1}" to "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error compressing {0} item(s) to "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to compress {0} item(s) from "{1}" to "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Compressing {0} item(s) to "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressing {0} item(s) from "{1}" to "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3533,63 +3551,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) to "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) from "{1}" to "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copied {0} item(s) to "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copied {0} item(s) from "{1}" to "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error copying {0} item(s) to "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to copy {0} item(s) from "{1}" to "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copying {0} item(s) to "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copying {0} item(s) from "{1}" to "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3625,55 +3643,55 @@ Shown in a StatusCenter card. - Canceled deleting {0} item(s) from "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleted {0} item(s) from "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Error deleting {0} item(s) from "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Failed to delete {0} item(s) from "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleting {0} item(s) from "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) to "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) from "{1}" to "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moved {0} item(s) to "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moved {0} item(s) from "{1}" to "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moving {0} item(s) to "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moving {0} item(s) from "{1}" to "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error moving {0} item(s) to "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to move {0} item(s) from "{1}" to "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3747,7 +3765,7 @@ There was an error applying this tag - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Extract here (Smart) @@ -4067,9 +4085,6 @@ Navigate to the home page - - Show home button in address bar - Toolbars @@ -4209,9 +4224,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4227,4 +4239,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/ar/Resources.resw b/src/Files.App/Strings/ar/Resources.resw index bd1a96e6f338..5d5b8db97fb7 100644 --- a/src/Files.App/Strings/ar/Resources.resw +++ b/src/Files.App/Strings/ar/Resources.resw @@ -124,7 +124,7 @@ نسخ المسار - Copy item path + نسخ المسار نسخ المسار مع الاقتباس @@ -166,7 +166,7 @@ ‏‏تخطي - Select all + تحديد الكل إعكس التحديد @@ -217,7 +217,7 @@ إظهار الملفات والمجلدات المخفية - Dot files + Show dot files المظهر @@ -1089,13 +1089,19 @@ تبديل لوحة المعلومات - تبديل لوحة المعلومات لعرض لوحة التفاصيل/المعاينة + Toggle visibility of the detail/preview panes - Toggle toolbar + إظهار\إخفاء شريط الأدوات - Toggle visibility of the toolbar + عرض / إخفاء شريط الأدوات + + + Toggle filter header + + + Toggle visibility of the filter header المعاينة غير متوفرة @@ -1399,7 +1405,7 @@ {0} من العناصر - Reopen tab + إعادة فتح التبويب إعادة تسمية @@ -1606,7 +1612,7 @@ استبدال جميع إدخالات صلاحيات الكائن الفرعي بإدخالات صلاحيات هذا الكائن - Close pane + إغلاق هذه اللوحة ادخل وضع التراكب المضغوط @@ -1837,10 +1843,10 @@ تسجيل هذا البرنامج لإعادة التشغيل - Start window + شاشة البداية - Normal window + النافذة القياسية تصغير @@ -2013,11 +2019,23 @@ سلوكيات - - مراجعة الملفات + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. - - هل ترغب في مراجعة Files؟ + + Sponsor + + + Rate us + + + Dismiss تعيين كخلفية @@ -2080,7 +2098,7 @@ استعادة كل العناصر - Do you want to restore the {0, plural, one {selected item} other {{0} selected items}}? + هل تريد استعادة {0, plural, one {العنصر المحدد} other {{0} عنصر محدد}}؟ استعادة التحديد @@ -2296,7 +2314,7 @@ خيارات قائمة السياق - File extensions + عرض امتدادات الملفات تنسيق @@ -2305,13 +2323,13 @@ المساعدة - Full screen + عرض ملء الشاشة هل أنت متأكد أنك تريد إزالة هذه العلامة؟ - Play + تشغيل الطول @@ -2371,7 +2389,7 @@ تكبير الحجم - Sort direction + اتجاه الفرز "تصاعدي / تنازلي" اسم غير صالح @@ -2383,37 +2401,37 @@ مقاطع الفيديو - Preview popup + معاينة منبثقة تبديل التراكب المدمج - Open the online help page in your browser + عرض صفحة الدعم الإلكتروني في متصفح النظام - Toggle full screen mode + تبديل وضع "ملء الشاشة" - Enter compact overlay mode + تفعيل وضع العرض المضغوط - Exit compact overlay mode + إنهاء وضع العرض المضغوط - Toggle compact overlay mode + تفعيل /إيقاف وضع العرض المضغوط - Start search in the OmniBar + البحث باستخدام شريط الأوامر - Toggle visibility of hidden items + تبديل ظهور العناصر المخفية - Toggle visibility of dot files + تبديل عرض الملفات المبدوءة بنقطة - Toggle visibility of file extensions + تبديل عرض امتدادات الملفات تشغيل لوحة المعاينة لعرض معاينات الملفات @@ -2422,64 +2440,64 @@ تبديل إذا كان سيتم إظهار الشريط الجانبي - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - نسخ مسار العناصر المحددة إلى الحافظة + Copy path of the current directory - نسخ مسار العناصر المحددة إلى الحافظة + Copy path of selected items - Copy path of selected items with quotes to the clipboard + Copy path of selected items with quotes - نسخ مسار العناصر المحددة مع الاقتباسات إلى الحافظة + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder - Paste to selected folder + لصق في المجلد المحدد - Delete selected {0, plural, one {item} other {items}} + حذف {0, plural, one {العنصر المحدد} other {{0} عناصر محددة}} إنشاء مجلد جديد - Create new {0, plural, one {shortcut} other {shortcuts}} to selected {0, plural, one {item} other {items}} + إنشاء {0, plural, one {اختصار جديد} other {{0} اختصارات جديدة}} للـ{0, plural, one {عنصر محدد} other {عناصر محددة}} إنشاء اختصار جديد لأي عنصر - Empty the contents of Recycle Bin + إفراغ سلة المحذوفات فتح قائمة "تنسيق المحرك" للعنصر المحدد - Restore selected {0, plural, one {item} other {items}} from recycle bin + استعادة {0, plural, one {العنصر المحدد} other {{0} عناصر محددة}} من سلة المحذوفات استعادة جميع العناصر من سلة المهملات - Open {0, plural, one {item} other {items}} + فتح {0, plural, one {العنصر} other {{0} عناصر}} - Open {0, plural, one {item} other {items}} with selected application + فتح {0, plural, one {العنصر} other {{0} عناصر}} باستخدام التطبيق المحدد فتح المجلد الأصلي للعنصر الذي تم البحث عنه @@ -2494,28 +2512,28 @@ حدد جميع العناصر - Invert selected items + عكس التحديد الحالي - Clear selected items + إلغاء تحديد العناصر تبديل تحديد العنصر - Share selected {0, plural, one {file} other {files}} with others + مشاركة {0, plural, one {الملف المحدد} other {{0} ملف محدد}} مع الآخرين - Pin {0, plural, one {item} other {items}} to the Start Menu + تثبيت {0, plural, one {العنصر} other {{0} عناصر}} في قائمة البدء - Unpin {0, plural, one {item} other {items}} from the Start Menu + إلغاء تثبيت {0, plural, one {العنصر} other {{0} عناصر}} من قائمة البدء - Pin {0, plural, one {folder} other {folders}} to Sidebar + تثبيت {0, plural, one {المجلد} other {{0} مجلد}} في الشريط الجانبي - Unpin {0, plural, one {folder} other {folders}} from Sidebar + إلغاء تثبيت {0, plural, one {المجلد} other {{0} مجلد}} من الشريط الجانبي تعيين الصورة المحددة كخلفية سطح المكتب @@ -2530,22 +2548,22 @@ تعيين الصورة المحددة كخلفية للتطبيق - Install font + تثبيت خط - Install driver + تثبيت برنامج التشغيل - Install certificate + تثبيت شهادة - Install selected {0, plural, one {font} other {fonts}} + تثبيت {0, plural, one {الخط المحدد} other {{0} خط محدد}} - Install {0, plural, one {driver} other {drivers}} using selected inf {0, plural, one {file} other {files}} + تثبيت {0, plural, one {تعريف} other {{0} تعريف}} باستخدام {0, plural, one {ملف INF المحدد} other {ملفات INF المحددة}} - Install selected {0, plural, one {certificate} other {certificates}} + تثبيت {0, plural, one {الشهادة المحددة} other {{0} شهادة محددة}} تشغيل التطبيق المحدد كمسؤول @@ -2560,28 +2578,28 @@ تشغيل المعاينة في النافذة المنبثقة - Create archive with selected {0, plural, one {item} other {items}} + إنشاء أرشيف مضغوط لـ {0, plural, one {العنصر المحدد} other {{0} عنصر محدد}} - Create 7z archive with selected {0, plural, one {item} other {items}} + إنشاء أرشيف 7z لـ {0, plural, one {العنصر المحدد} other {{0} عنصر محدد}} - Create zip archive with selected {0, plural, one {item} other {items}} + إنشاء أرشيف zip لـ {0, plural, one {العنصر المحدد} other {{0} عنصر محدد}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder - Rotate selected {0, plural, one {image} other {images}} to the left + تدوير {0, plural, one {الصورة المحددة} other {{0} صورة محددة}} إلى اليسار - Rotate selected {0, plural, one {image} other {images}} to the right + تدوير {0, plural, one {الصورة المحددة} other {{0} صورة محددة}} إلى اليمين فتح صفحة الإعدادات @@ -2602,7 +2620,7 @@ التبديل إلى عرض التفاصيل - Switch to cards view + تبديل نمط العرض إلى بطاقات التبديل إلى عرض القائمة @@ -2704,10 +2722,10 @@ فتح علامة تبويب جديدة - Navigate backward + عودة إلى الخلف - Navigate forward + إلى الأمام الانتقال لأعلى دليل واحد @@ -2737,10 +2755,10 @@ إغلاق علامات التبويب غير علامة التبويب المحددة - إغلاق جميع علامات التبويب ومعها علامة التبويب الحالية + إغلاق جميع التبويبات بما في ذلك التبويب الحالي - Reopen recently closed tab + إعادة فتح التبويب المغلق حديثًا الانتقال إلى علامة التبويب السابقة @@ -2752,13 +2770,13 @@ إغلاق علامة التبويب الحالية - Close the active pane + إغلاق اللوحة النشطة تركيز اللوحة الأخرى - Switch focus to the other pane + الانتقال إلى اللوحة الأخرى تبديل الشريط الجانبي @@ -2966,13 +2984,13 @@ غير معلمة - Previous tab + التبويب السابق - Next tab + التبويب التالي - Close tab + إغلاق التبويب تعديل المسار @@ -3002,7 +3020,7 @@ إظهار مربعات الاختيار عند تحديد العناصر - Edit path in the OmniBar + تحرير المسار في شريط الأوامر إنشاء عنصر جديد @@ -3017,7 +3035,7 @@ حذف بشكل نهائي - Delete selected {0, plural, one {item} other {items}} permanently + حذف {0, plural, one {العنصر المحدد} other {{0} عنصر محدد}} بشكل دائم تشغيل ملفات الوسائط المحددة @@ -3134,7 +3152,7 @@ التبديل إلى فرع جديد - Create a folder with the currently selected {0, plural, one {item} other {items}} + إضافة {0, plural, one {العنصر المحدد} other {{0} عنصر محدد}} إلى مجلد جديد خصائص @@ -3167,7 +3185,7 @@ قم بتشغيل git fetch - Clone a git repo + نسخ مستودع Git قم بتشغيل git pull @@ -3213,7 +3231,7 @@ Mica Alt - Backdrop + خلفية معتمة صلب @@ -3246,16 +3264,16 @@ لا يمكن لـ Files الوصول إلى GitHub الآن. - Open folder in {0} + فتح المجلد في {0} - Open the current directory in {0} + فتح الدليل الحالي في {0} - Open repo in {0} + فتح المستودع في {0} - Open the root of the Git repo in {0} + فتح جذر المستودع Git في {0} نسخ الكود @@ -3282,7 +3300,7 @@ تهيئة مستودع - Initialize current folder as a git repository + إنشاء مستودع Git في هذا المجلد اسم المستودع البعيد @@ -3297,13 +3315,13 @@ فرز العناصر حسب المسار - Open selected directory in a new pane + فتح المجلد في لوحة جديدة - Open selected directory in a new tab + فتح المجلد في نافذة جديدة - Open selected directory in a new window + فتح المجلد في نافذة جديدة فتح الكل @@ -3328,10 +3346,10 @@ الأمر '{0}' غير جاهز لتنفيذه. - Command Palette + قائمة الأوامر السريعة - Open Command Palette in the OmniBar + فتح قائمة الأوامر السريعة في شريط الأوامر بدء في: @@ -3473,123 +3491,123 @@ Shown in a StatusCenter card. - تم ضغط {0} عنصر إلى "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - تم ضغط {0} عنصر من "{1}" إلى "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - حدث خطأ خلال ضغط {0} عنصر إلى "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - فشل في ضغط عنصر {0} من "{1}" إلى "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - يتم ضغط {0} عنصر إلى "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - يتم ضغط {0} عنصر من "{1}" إلى "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Canceled cloning {0} to "{1}" + تم إلغاء نسخ {0} إلى "{1}" Shown in a StatusCenter card. - Canceled cloning {0} from "{1}" to "{2}" + تم إلغاء نسخ {0} عنصر من "{1}" إلى "{2}" Shown in a StatusCenter card. - Cloned "{0}" to "{1}" + استنسخت "{0}" إلى "{1}" Shown in a StatusCenter card. - Cloned {0} from "{1}" to "{2}" + تم نسخ {0} عنصر من "{1}" إلى "{2}" Shown in a StatusCenter card. - Error cloning "{0}" to "{1}" + خطأ في نسخ "{0}" إلى "{1}" Shown in a StatusCenter card. - Failed to clone {0} from "{1}" to "{2}" + تعذر نسخ {0} عنصر من "{1}" إلى "{2}" Shown in a StatusCenter card. - Cloning "{0}" to "{1}" + استنساخ "{0}" إلى Shown in a StatusCenter card. - Cloning {0} from "{1}" to "{2}" + يتم نسخ {0} عنصر من "{1}" إلى "{2}" Shown in a StatusCenter card. - Canceled installing {0} fonts + تم إلغاء تثبيت {0} خط Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - إلغاء نسخ {0} عنصر (عناصر) إلى "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - إلغاء نسخ {0} عنصر (عناصر) من "{1}" إلى "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - تم نسخ العنصر {0} إلى "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - تم نسخ {0} عنصر من "{1}" إلى "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - حدث خطأ خلال نسخ {0} عنصر إلى "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - تعذر نسخ {0} عنصر من "{1}" إلى "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - يتم نسخ {0} عنصر إلى "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - يتم نسخ {0} عنصر من "{1}" إلى "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3625,55 +3643,55 @@ Shown in a StatusCenter card. - تم إلغاء حذف {0} عنصر من "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - تم حذف {0} عنصر من "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - حدث خطأ خلال حذف {0} عنصر من "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - تعذر حذف {0} عنصر من "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - يتم حذف {0} عنصر من "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - تم إلغاء نقل {0} عنصر إلى "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - تم إلغاء نقل {0} عنصر من "{1}" إلى "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - تم نقل {0} عنصر إلى "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - تم نقل {0} عنصر من "{1}" إلى "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - يتم نقل {0} عنصر إلى "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - يتم نقل {0} عنصر من "{1}" إلى "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - حدث خطأ خلال نقل {0} عنصر إلى "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - تعذر نقل {0} عنصر من "{1}" إلى "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3701,7 +3719,7 @@ Shown in a StatusCenter card. - {0}/{1} {0, plural, one {item} other {items}} processed + {0}/{1} {0, plural, zero {}one {عنصر} two {عناصر} few {عناصر} many {عناصر} other {عناصر}} تم معالجتها Shown in a StatusCenter card. Used as "8/20 items processed" @@ -3720,7 +3738,7 @@ تعذر تعيين الخلفية - Failed to open the settings file + فشل فتح ملف الإعدادات حذف فرع Git @@ -3747,7 +3765,7 @@ حدث خطأ خلال تطبيق هذه العلامة - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item استخرج هنا (ذكي) @@ -3756,7 +3774,7 @@ فرز الملفات والمجلدات معا - Sort files and folders in the same list + ترتيب الملفات والمجلدات معًا ترتيب الملفات أولاً @@ -3974,7 +3992,7 @@ This is the friendly name for ICO files. - ICL File + ملف ICL This is the friendly name for ICL files. @@ -4010,23 +4028,23 @@ الحالة: - Show toolbar + إظهار شريط الأدوات Setting that controls if the toolbar is shown in the main view قائمة إجراءات علامة التبويب - Vertical pane + لوحة عمودي - Add vertical pane + إضافة لوحة عمودية - Horizontal pane + لوحة أفقية - Add horizontal pane + إضافة لوحة أفقية الترتيب عمودياً @@ -4067,103 +4085,100 @@ انتقل إلى الصفحة الرئيسية - - Show home button in address bar - - Toolbars + شريط الأدوات - User ID + معرف المستخدم - Bulk rename + إعادة تسمية مجمعة - Compress contents + ضغط المحتوى - Show option to create alternate data stream + إظهار خِيار إنشاء تيار بيانات بديل - Create alternate data stream + إنشاء تيار بيانات بديل - Create alternate data stream for the selected {0, plural, one {item} other {items}} + إنشاء تدفق بيانات بديل لعنصر {0, plural, zero {}one {} two {عناصر} few {عناصر} many {عناصر} other {عناصر}} - Enter data stream name + أدخل اسم تيار البيانات - There was an error creating the alternate data stream + حدث خطأ خلال إنشاء تيار البيانات البديل - Please note that alternate data streams only work on drives formatted as NTFS. + يرجى ملاحظة أن تيارات البيانات البديلة تعمل فقط على الأقراص المنسقة كـ NTFS. - Alternate data streams are currently hidden + حاليا تيارات البيانات البديلة مخفية - Would you like to display alternate data streams? You can modify this setting anytime from the files and folders settings page. + هل ترغب في عرض تيارات البيانات البديلة؟ يمكنك تعديل هذا الإعداد في أي وقت من صفحة إعدادات > الملفات والمجلدات. - Manage tags + إدارة الوسوم - Available + متاح - Total + الإجمالي تحويل التركيز دائمًا إلى علامة التبويب المنشأة حديثا - Toggle shelf pane + تبديل لوحة الرف - Toggle the visibility of the shelf pane + تبديل وضوح لوحة الرف - Show shelf pane toggle in address bar + إظهار مفتاح تبديل لوحة الرف في شريط العنوان - Shelf + رف 'Shelf' refers to the Shelf Pane feature, where users can conveniently drag and drop files for quick access and perform bulk actions with ease. - Clear items + مسح العناصر - Remove from shelf + إزالة من الرف - Add to shelf + إضافة إلى الرف Tooltip that displays when dragging items to the Shelf Pane - Enter a hash to compare + أدخل قيمة الهاش "hash" للمقارنة Placeholder that appears in the compare hash text box - Matches {0} + {0} نتائج مطابقة Appears when two compared hashes match, e.g. "Matches SHA256" - No matches found + لم يتمّ العثور على أية تطابقات Appears when two compared hashes don't match - Path or alias + المسار أو الاسم المستعار "الرمز التعويضي" - Invalid path + مسار خاطئ - Test integration + فحص التكامل - {0} could not be located. Please check your settings and try again. + تعذر تحديد موقع {0}. الرجاء التحقق من الإعدادات الخاصة بك وحاول مرة أخرى. The configured IDE could not be located @@ -4209,9 +4224,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4227,4 +4239,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/be-BY/Resources.resw b/src/Files.App/Strings/be-BY/Resources.resw index 7066dee05501..4cd7099cb86f 100644 --- a/src/Files.App/Strings/be-BY/Resources.resw +++ b/src/Files.App/Strings/be-BY/Resources.resw @@ -217,7 +217,7 @@ Паказваць схаваныя файлы і папкі - Dot files + Show dot files Выгляд @@ -1089,7 +1089,7 @@ Toggle the info pane - Toggle the info pane to view the detail/preview panes + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1097,6 +1097,12 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + No preview available @@ -2012,11 +2018,23 @@ Behaviors - - Review Files + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us - - Would you like to review Files? + + Dismiss Set as background @@ -2421,31 +2439,31 @@ Toggle whether to show sidebar - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Copy path of selected items to the clipboard + Copy path of the current directory - Copy path of selected items to the clipboard + Copy path of selected items - Copy path of selected items with quotes to the clipboard + Copy path of selected items with quotes - Copy path of selected items with quotes to the clipboard + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Compressed {0} item(s) to "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressed {0} item(s) from "{1}" to "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error compressing {0} item(s) to "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to compress {0} item(s) from "{1}" to "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Compressing {0} item(s) to "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressing {0} item(s) from "{1}" to "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) to "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) from "{1}" to "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copied {0} item(s) to "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copied {0} item(s) from "{1}" to "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error copying {0} item(s) to "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to copy {0} item(s) from "{1}" to "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copying {0} item(s) to "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copying {0} item(s) from "{1}" to "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Canceled deleting {0} item(s) from "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleted {0} item(s) from "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Error deleting {0} item(s) from "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Failed to delete {0} item(s) from "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleting {0} item(s) from "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) to "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) from "{1}" to "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moved {0} item(s) to "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moved {0} item(s) from "{1}" to "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moving {0} item(s) to "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moving {0} item(s) from "{1}" to "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error moving {0} item(s) to "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to move {0} item(s) from "{1}" to "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ There was an error applying this tag - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Extract here (Smart) @@ -4066,9 +4084,6 @@ Navigate to the home page - - Show home button in address bar - Toolbars @@ -4208,9 +4223,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/bg/Resources.resw b/src/Files.App/Strings/bg/Resources.resw index 799b7c094d57..7dc7646f9b35 100644 --- a/src/Files.App/Strings/bg/Resources.resw +++ b/src/Files.App/Strings/bg/Resources.resw @@ -217,7 +217,7 @@ Показвай скрити файлове и папки - Dot files + Show dot files Външен вид @@ -1089,7 +1089,7 @@ Toggle the info pane - Toggle the info pane to view the detail/preview panes + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1097,6 +1097,12 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + Няма налична визуализация @@ -2012,11 +2018,23 @@ Поведение - - Прегледани файлове + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us - - Бихте ли искали да прегледате файловете? + + Dismiss Задаване като фон @@ -2421,31 +2439,31 @@ Toggle whether to show sidebar - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Копиране на избраните елементи до буферната памет + Copy path of the current directory - Copy path of selected items to the clipboard + Copy path of selected items - Copy path of selected items with quotes to the clipboard + Copy path of selected items with quotes - Копиране на избраните елементи с кавички до буферната памет + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Компресирани {0} елемент(а) в "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Компресирани {0} елемент(а) от "{1}" в "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Грешка, компресирайки {0} елемент(а) в "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Неуспешно компресиране на {0} елемент(а) от "{1}" в "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Компресиране на {0} елемент(а) в "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Компресиране на {0} елемент(а) от "{1}" в "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Отменено копиране на {0} елемент(а) към "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Отменено копиране на {0} елемент(а) от "{1}" към "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Копирани {0} елемент(а) в "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Копирани {0} елемент(а) от "{1}" в "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Грешка, копирайки {0} елемент(а) в "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Неуспешно копиране на {0} елемент(а) от "{1}" в "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Копиране на {0} елемент(а) в "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Копиране на {0} елемент(а) от "{1}" в "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Отмяна на изтриването на {0} елемент(а) от "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Изтрити {0} елемент(а) от "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Грешка, изтривайки {0} елемент(а) от "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Неуспешно изтриване на {0} елемент(а) от "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Изтриване на {0} елемент(а) от "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Отменено преместване на {0} елемент(а) към "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Отменено преместване на {0} елемент(а) от "{1}" към "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Преместени {0} елемент(а) към "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Преместване на {0} елемент(а) от "{1}" към "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Преместване на {0} елемент(а) в "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Преместване на {0} елемент(а) от "{1}" към "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Грешка, премествайки {0} елемент(а) в "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Неуспешно преместване на {0} елемент(а) от "{1}" към "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ There was an error applying this tag - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Extract here (Smart) @@ -4066,9 +4084,6 @@ Navigate to the home page - - Show home button in address bar - Toolbars @@ -4208,9 +4223,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/ca/Resources.resw b/src/Files.App/Strings/ca/Resources.resw index 5540ca61b6c1..0e0f11ad820a 100644 --- a/src/Files.App/Strings/ca/Resources.resw +++ b/src/Files.App/Strings/ca/Resources.resw @@ -1089,7 +1089,7 @@ Canvia el panell d'informació - Canvia el panell d'informació per veure els panells de detalls/vista prèvia + Commuta la visibilitat dels panells de detall/vista prèvia Commuta la barra d'eines @@ -1097,6 +1097,12 @@ Commuta la visibilitat de la barra d'eines + + Commuta la capçalera del filtre + + + Commuta la visibilitat de la capçalera del filtre + Cap visualització prèvia disponible @@ -2012,11 +2018,23 @@ Comportaments - - Valoreu el Files + + Hola! + + + Us agrada el Files? Considereu fer una ressenya a la Microsoft Store. + + + Us agrada el Files? Penseu en donar suport al projecte al GitHub. + + + Patrocinador + + + Puntueu-nos - - Voleu valorar el Files? + + Descarta Estableix com a fons @@ -2421,31 +2439,31 @@ Mostra/amaga la barra lateral - Copia {0, plural, one {l'element seleccionat} other {els elements seleccionats}} al porta-retalls + Copia {0, plural, one {l'element seleccionat} other {els elements seleccionats}} - Copia el camí del directori actual al porta-retalls + Copia la ruta del directori actual - Copia el camí dels elements seleccionats al porta-retalls + Copia la ruta dels elements seleccionats - Copia el camí dels elements seleccionats amb cometes al porta-retalls + Copia la ruta dels elements seleccionats amb cometes - Copia el camí del directori actual amb cometes al porta-retalls + Copia la ruta del directori actual amb cometes - Retalla {0, plural, one {l'element seleccionat} other {els elements seleccionats}} al porta-retalls + Retalla {0, plural, one {l'element seleccionat} other {els elements seleccionats}} - Enganxa els elements del porta-retalls a la carpeta actual + Enganxa els elements a la carpeta actual - Enganxa els elements del porta-retalls a la carpeta actual com a dreceres + Enganxa els elements a la carpeta actual com a dreceres - Enganxa els elements del porta-retalls a la carpeta seleccionada + Enganxa els elements a la carpeta seleccionada Enganxa a la carpeta seleccionada @@ -2568,13 +2586,13 @@ Crea un fitxer zip amb {0, plural, one {l'item seleccionat} other {els items seleccionats}} - Extreu els elements seleccionats {0, plural, one {del fitxer} other {dels fitxers}} a qualsevol carpeta + Extreu {0, plural, one {l'arxiu seleccionat} other {els arxius seleccionats}} a qualsevol carpeta - Extreu els elements seleccionats {0, plural, one {del fitxer} other {dels fitxers}} a la carpeta actual + Extreu {0, plural, one {l'arxiu seleccionat} other {els arxius seleccionats}} a la carpeta actual - Extreu els elements seleccionats {0, plural, one {del fitxer} other {dels fitxers}} a una nova carpeta + Extreu {0, plural, one {l'arxiu seleccionat} other {els arxius seleccionats}} a una carpeta nova Gira {0, plural, one {la imatge seleccionada} other {les imatges seleccionades}} cap a l'esquerra @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - S'han comprimit {0} elements a "{1}" + {0, plural, one {# element comprimit} other {# elements comprimits}} a «{1}» Shown in a StatusCenter card. - S'han comprimit {0} elements de "{1}" a "{2}" + {0, plural, one {# element comprimit} other {# elements comprimits}} de «{1}» a «{2}» Shown in a StatusCenter card. - S'ha produït un error en comprimir {0} elements a "{1}" + Error en comprimir {0, plural, one {# element} other {# elements}} a «{1}» Shown in a StatusCenter card. - No s'han pogut comprimir {0} elements de "{1}" a "{2}" + No s'ha pogut comprimir {0, plural, one {# element} other {# elements}} de «{1}» a «{2}» Shown in a StatusCenter card. - S'estan comprimint {0} elements a "{1}" + S'està comprimint {0, plural, one {# element} other {# elements}} a «{1}» Shown in a StatusCenter card. - S'estan comprimint {0} elements de "{1}" a "{2}" + S'està comprimint {0, plural, one {# element} other {# elements}} de «{1}» a «{2}» Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - S'ha cancel·lat la instal·lació de {0} fonts de «{1}» + S'ha cancel·lat la instal·lació de {0, plural, one {# origen} other {# origens}} de «{1}» Shown in a StatusCenter card. - S'han instal·lat {0} fonts + {0, plural, one {# origen instal·lat} other {# origens instal·lats}} Shown in a StatusCenter card. - S'han instal·lat {0} fonts de «{1}» + {0, plural, one {# font} other {# fonts}} de «{1}» Shown in a StatusCenter card. - S'ha produït un error en instal·lar {0} font(s) + S'ha produït un error instal·lant {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - No s'han pogut instal·lar {0} fonts de «{1}» + No s'ha pogut instal·lar {0, plural, one {# font} other {# fonts}} de «{1}» Shown in a StatusCenter card. - S'estan instal·lant {0} fonts + S'està instal·lant {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - S'estan instal·lant {0} fonts de «{1}» + S'està instal·lant {0, plural, one {# font} other {# fonts}} de «{1}» Shown in a StatusCenter card. - S'ha cancel·lat la còpia de {0} elements a "{1}" + S'ha cancel·lat la còpia de {0, plural, one {# element} other {# elements}} a «{1}» Shown in a StatusCenter card. - S'ha cancel·lat la còpia de {0} elements de "{1}" a "{2}" + S'ha cancel·lat la còpia de {0, plural, one {# element} other {# elements}} de «{1}» a «{2}» Shown in a StatusCenter card. - S'han copiat {0} elements a "{1}" + S'ha copiat {0, plural, one {# element} other {# elements}} a «{1}» Shown in a StatusCenter card. - S'han copiat {0} elements de "{1}" a "{2}" + S'ha copiat {0, plural, one {# element} other {# elements}} de «{1}» a «{2}» Shown in a StatusCenter card. - S'ha produït un error en copiar {0} elements a "{1}" + S'ha produït un error en copiar {0, plural, one {# element} other {# elements}} a «{1}» Shown in a StatusCenter card. - No s'han pogut copiar {0} elements de "{1}" a "{2}" + No s'ha pogut copiar {0, plural, one {# element} other {# elements}} de «{1}» a «{2}» Shown in a StatusCenter card. - S'estan copiant {0} elements a "{1}" + S'està copiant {0, plural, one {# element} other {# elements}} a «{1}» Shown in a StatusCenter card. - S'estan copiant {0} elements de "{1}" a "{2}" + S'està copiant {0, plural, one {# element} other {# elements}} de «{1}» a «{2}» Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - S'ha cancel·lat la supressió de {0} elements de "{1}" + S'ha cancel·lat l'eliminació de {0, plural, one {# element} other {# elements}} de «{1}» Shown in a StatusCenter card. - S'han suprimit {0} elements de "{1}" + S'ha eliminat {0, plural, one {# element} other {# elements}} de «{1}» Shown in a StatusCenter card. - S'ha produït un error en suprimir {0} elements de "{1}" + S'ha produït un error en eliminar {0, plural, one {# element} other {# elements}} de «{1}» Shown in a StatusCenter card. - No s'han pogut suprimir {0} elements de "{1}" + No s'ha pogut eliminar {0, plural, one {# element} other {# elements}} de «{1}» Shown in a StatusCenter card. - S'estan suprimint {0} elements de "{1}" + S'està eliminant {0, plural, one {# element} other {# elements}} de «{1}» Shown in a StatusCenter card. - S'ha cancel·lat el moviment de {0} elements a "{1}" + S'ha cancel·lat el moviment de {0, plural, one {# element} other {# elements}} a «{1}» Shown in a StatusCenter card. - S'ha cancel·lat el moviment de {0} elements de "{1}" a "{2}" + S'ha cancel·lat el moviment de {0, plural, one {# element} other {# elements}} de «{1}» a «{2}» Shown in a StatusCenter card. - S'han mogut {0} elements a "{1}" + S'ha mogut {0, plural, one {# element} other {# elements}} a «{1}» Shown in a StatusCenter card. - S'han mogut {0} elements de "{1}" a "{2}" + S'ha mogut {0, plural, one {# element} other {# elements}} de «{1}» a «{2}» Shown in a StatusCenter card. - S'estan movent {0} elements a "{1}" + S'està movent {0, plural, one {# element} other {# elements}} a «{1}» Shown in a StatusCenter card. - S'està movent {0} elements de "{1}" a "{2}" + S'està movent {0, plural, one {# element} other {# elements}} de «{1}» a «{2}» Shown in a StatusCenter card. - S'ha produït un error en moure {0} elements a "{1}" + S'ha produït un error en moure {0, plural, one {# element} other {# elements}} a «{1}» Shown in a StatusCenter card. - No s'han pogut moure {0} elements de "{1}" a "{2}" + No s'ha pogut moure {0, plural, one {# element} other {# elements}} de «{1}» a «{2}» Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ S'ha produït un error en aplicar aquesta etiqueta - Extreu {0, plural, one {el fitxer} other {els fitxers}} seleccionats al directori actual si el fitxer conté només un element, o en un nou directori si el fitxer conté diversos elements + Extreu {0, plural, one {l'arxiu seleccionat} other {els arxius seleccionats}} aquí per a un sol element o a una carpeta nova per a diversos elements Extreu aquí (intel·ligent) @@ -4066,9 +4084,6 @@ Aneu a la pàgina d'inici - - Mostra el botó d'inici a la barra d'adreces - Barra d'eines @@ -4208,9 +4223,6 @@ Decimal - - Activa l'Omnibar - Podeu afegir seccions a la barra lateral fent clic amb el botó dret i seleccionant les seccions que voleu afegir @@ -4226,4 +4238,42 @@ Cerca fitxers i carpetes... + + Durant les operacions amb fitxers + + + Mostra el botó del centre d'estat + + + Anell de progrés del centre d'estat + Screen reader name for the status center progress ring + + + Fitxers d'icones + This is the friendly name for a variety of different icon files. + + + Mostra la ruta de navegació de la ruta replegada + + + Mostra les carpetes a {0} + + + Mostra les carpetes a l'inici + + + No hi ha cap ordre que contingui {0} + + + Mostra'n més + + + Filtra per + + + Nom del fitxer + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/cs-CZ/Resources.resw b/src/Files.App/Strings/cs-CZ/Resources.resw index 086b35fecad5..813f9b58e858 100644 --- a/src/Files.App/Strings/cs-CZ/Resources.resw +++ b/src/Files.App/Strings/cs-CZ/Resources.resw @@ -124,13 +124,13 @@ Zkopírovat cestu - Copy item path + Zkopírovat cestu položky Kopírovat cestu s uvozovkami - Kopírovat vybranou cestu k položce včetně uvozovek + Kopírovat vybranou cestu k položce s uvozovkami Procházet @@ -166,7 +166,7 @@ Přeskočit - Select all + Vybrat vše Invertovat výběr @@ -217,7 +217,7 @@ Zobrazit skryté soubory a složky - Dot files + Zobrazit soubory začínající tečkou Vzhled @@ -1089,13 +1089,19 @@ Přepnout informační panel - Přepnout informační podokno pro zobrazení detailu/náhledu podoken + Zobrazit/skrýt panel detailů/náhledů - Toggle toolbar + Přepnout panel nástrojů - Toggle visibility of the toolbar + Přepnout viditelnost panelu nástrojů + + + Toggle filter header + + + Toggle visibility of the filter header Není dostupný žádný náhled @@ -1398,7 +1404,7 @@ {0} položky - Reopen tab + Znova otevřít zavřenou kartu Přejmenovat @@ -1605,7 +1611,7 @@ Nahradit všechny položky oprávnění podřízeného objektu dědičnými záznamy oprávnění z tohoto objektu - Close pane + Zavřít panel Vstoupit do kompaktního překrytí @@ -2012,11 +2018,23 @@ Chování - - Napsat recenzi o aplikaci Files + + Hello! + + + Užíváte si Files? Zvažte prosím ohodnocení v Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. - - Chcete napsat recenzi aplikace Files? + + Sponsor + + + Ohodnoťte nás + + + Zrušit Nastavit jako pozadí @@ -2295,7 +2313,7 @@ Nastavení kontextového menu - File extensions + Přípony souborů Formát @@ -2304,13 +2322,13 @@ Nápověda - Full screen + Celá obrazovka Opravdu chcete odstranit tento štítek? - Play + Přehrát Výška @@ -2370,7 +2388,7 @@ Zvětšení velikosti - Sort direction + Směr řazení Neplatné jméno @@ -2382,37 +2400,37 @@ Videa - Preview popup + Náhled vyskakovacího okna Přepnout kompaktní překrytí - Open the online help page in your browser + Otevřít stránku nápovědy ve vašem prohlížeči - Toggle full screen mode + Přepnout režim celé obrazovky - Enter compact overlay mode + Vstoupit do kompaktního překrytí - Exit compact overlay mode + Zavřít řežim kompaktního překrytí - Toggle compact overlay mode + Přepnout režim kompaktního překrytí - Start search in the OmniBar + Spustit vyhledávání v OmniBaru - Toggle visibility of hidden items + Přepnout viditelnost skrytých položek - Toggle visibility of dot files + Přepnout viditelnost souborů začínajících s tečkou - Toggle visibility of file extensions + Přepnout viditelnost přípon souborů Přepnout panel pro zobrazení náhledu souboru @@ -2421,37 +2439,37 @@ Přepněte, zda se zobrazí postranní panel - Copy selected {0, plural, one {item} other {items}} to clipboard + Kopírovat {0, plural, one {vybranou položku} few {vybrané položky} other {vybraných položek}} - Kopírovat cestu aktuální složky do schránky + Kopírovat cestu aktuální složky - Kopírovat cestu vybraných položek do schránky + Kopírovat cestu vybraných položek - Kopírovat cestu vybraných položek do schránky včetně uvozovek + Kopírovat cestu vybraných položek s uvozovkami - Kopírovat cestu aktuální složky do schránky včetně uvozovek + Kopírovat cestu aktuální složky s uvozovkami - Cut selected {0, plural, one {item} other {items}} to clipboard + Vyjmout {0, plural, one {vybranou položku} few {vybrané položky} other {vybraných položek}} - Paste clipboard items to the current folder + Vložit položky do aktuální složky - Paste clipboard items to the current folder as shortcuts + Vložit položky do aktuální složky jako zástupce - Paste clipboard items to the selected folder + Vložit položky do vybrané složky - Paste to selected folder + Vložit do vybrané složky - Delete selected {0, plural, one {item} other {items}} + Smazat {0, plural, one {vybranou položku} few {vybrané položky} other {vybraných položek}} Vytvořit novou složku @@ -2463,7 +2481,7 @@ Vytvořit nového zástupce pro libovolnou položku - Empty the contents of Recycle Bin + Vyprázdnit obsah Koše Otevře menu "Formátovat disk" pro vybranou položku @@ -2493,10 +2511,10 @@ Vybrat všechny položky - Invert selected items + Invertovat vybrané položky - Clear selected items + Zrušit vybrání položek Přepnout výběr položek @@ -2529,13 +2547,13 @@ Nastaví vybraný obrázek jako pozadí aplikace - Install font + Nainstalovat písmo - Install driver + Nainstalovat ovladač - Install certificate + Nainstalovat certifikát Instalovat {0, plural, one {vybrané písmo} other {vybraná písma}} @@ -2568,13 +2586,13 @@ Vytvořit zip archiv z {0, plural, one {vybrané položky} other {vybraných položek}} - Extrahovat položky z {0, plural, one {vybraného archivu} other {vybraných archivů}} do libovolné složky + Extrahovat {0, plural, one {vybraný archiv} few {vybrané archivy} other {vybraných archivů}} do libovolné složky - Extrahovat položky z {0, plural, one {vybraného archivu} other {vybraných archivů}} do aktuální složky + Extrahovat {0, plural, one {vybraný archiv} few {vybrané archivy} other {vybraných archivů}} do aktuální složky - Extrahovat položky z {0, plural, one {vybraného archivu} other {vybraných archivů}} do nové složky + Extrahovat {0, plural, one {vybraný archiv} few {vybrané archivy} other {vybraných archivů}} do nové složky Otočit {0, plural, one {vybraný obrázek} other {vybrané obrázky}} vlevo @@ -2703,10 +2721,10 @@ Otevřít novou kartu - Navigate backward + Přejít zpět - Navigate forward + Jít vpřed Přejít o složku výše @@ -2739,7 +2757,7 @@ Zavřít všechny karty včetně aktuální - Reopen recently closed tab + Znovu otevřít nedávno zavřenou kartu Přesunout na předchozí kartu @@ -2751,13 +2769,13 @@ Zavřít aktuální kartu - Close the active pane + Zavřít aktivní panel Přepnout se na jiný panel - Switch focus to the other pane + Přepnout fokus na druhý panel Skrýt/Zobrazit postranní panel @@ -2965,13 +2983,13 @@ Bez štítku - Previous tab + Předchozí karta - Next tab + Další karta - Close tab + Zavřít kartu Upravit cestu @@ -3001,7 +3019,7 @@ Zobrazit zaškrtávací políčka při výběru položek - Edit path in the OmniBar + Úprava cesty v OmniBaru Vytvořit novou položku @@ -3016,7 +3034,7 @@ Trvale odstranit - Delete selected {0, plural, one {item} other {items}} permanently + Smazat {0, plural, one {vybranou položku} few {vybrané položky} other {vybraných položek}} trvale Přehrát vybrané soubory médií @@ -3281,7 +3299,7 @@ Inicializovat repozitář - Initialize current folder as a git repository + Inicializovat aktuální složku jako git repozitář Název vzdáleného repozitáře @@ -3296,13 +3314,13 @@ Seřadit položky dle cesty - Open selected directory in a new pane + Otevřít vybranou složku v novém panelu - Open selected directory in a new tab + Otevřít vybranou složku na nové kartě - Open selected directory in a new window + Otevřít vybranou složku v novém okně Otevřít vše @@ -3327,10 +3345,10 @@ Příkaz '{0}' není připraven ke spuštění. - Command Palette + Paleta příkazů - Open Command Palette in the OmniBar + Otevřít paletu příkazů v OmniBaru Začít v: @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Komprimováno {0} položek do "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Komprimováno {0} položek z "{1}" do "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Chyba při komprimování {0} položek do "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Nepodařilo se zkomprimovat {0} položek z {1} do {2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Komprimování {0} položek do "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Komprimování {0} položek z "{1}" do "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Instalace písma {0} z "{1}" byla zrušena + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Písmo {0} bylo nainstalováno + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Písmo {0} z "{1}" bylo nainstalováno + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Chyba při instalaci {0} písma + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Nepodařilo se nainstalovat {0} písmo z "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Instalace {0} písma + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Instalace {0} písma z "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Zrušeno kopírování {0} položky(položek) do "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Zrušeno kopírování {0} položky(položek) z "{1}" do "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Kopírováno {0} položky(položek) do "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Kopírováno {0} položek z "{1}" do "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Chyba při kopírování {0} položky(položek) do "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Nepodařilo se zkopírovat {0} položek z {1} do {2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Kopírování {0} položky(položek) do "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Kopírování {0} položky(položek) z "{1}" do "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Zrušeno mazání {0} položek z "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Smazáno {0} položek z "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Chyba při mazání {0} položek z "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Nepodařilo se smazat {0} položek z {1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Mazání {0} položek z "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Zrušeno přesouvání {0} položek do "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Zrušeno přesouvání {0} položek z "{1}" do "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Přesunuto {0} položek do "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Přesunuto {0} položek z "{1}" do "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Přesouvání {0} položek(y) do "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Přesouvání {0} položek z "{1}" do "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Chyba při přesouvání {0} položek do "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Nepodařilo se přesunout {0} položek z "{1}" do "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ Při aplikování tohoto štítku došlo k chybě - Extrahovat položky z {0, plural, one {vybraného archivu} other {vybraných archivů}} do aktuální složky pro archiv s jednou položkou nebo do nové složky pro archiv s více položkami + Extrahovat {0, plural, one {vybraný archiv} few{vybrané archivy} other {vybraných archivů}} sem pro jednu položku nebo do nové složky pro více položek Extrahovat zde (Chytře) @@ -3755,7 +3773,7 @@ Řadit soubory a složky pohromadě - Sort files and folders in the same list + Řadit soubory a složky v tomtéž seznamu Nejprve řadit soubory @@ -4016,16 +4034,16 @@ Nabídka akcí - Vertical pane + Vertikální panel - Add vertical pane + Přidat vertikální panel - Horizontal pane + Horizontální panel - Add horizontal pane + Přidat horizontální panel Uspořádat vertikálně @@ -4066,9 +4084,6 @@ Přejít na domovskou stránku - - Zobrazit tlačítko Domů v adresním řádku - Panel nástrojů @@ -4118,10 +4133,10 @@ Vždy přepnout na nově vytvořenou kartu - Toggle shelf pane + Zobrazit/skrýt odkládací panel - Toggle the visibility of the shelf pane + Zobrazit/skrýt odkládací panel Zobrazit odkládací okno v adresním řádku @@ -4208,9 +4223,6 @@ Desetinný - - Povolit Omnibar - Do postranního panelu můžete přidat sekce kliknutím pravým tlačítkem myši a výběrem sekcí, které chcete přidat @@ -4226,4 +4238,42 @@ Hledání souborů a složek... + + Během operací se soubory + + + Zobrazit tlačítko stavového centra + + + Kolečko postupu stavového centra + Screen reader name for the status center progress ring + + + Soubory ikon + This is the friendly name for a variety of different icon files. + + + Zobrazit zjednodušenou cestu + + + Show folders in {0} + + + Show folders in Home + + + Nebyly nalezeny žádné příkazy obsahující {0} + + + Zobrazit více + + + Filtering for + + + Název souboru + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/da/Resources.resw b/src/Files.App/Strings/da/Resources.resw index 5dab9b49ff0d..e5bcab015e04 100644 --- a/src/Files.App/Strings/da/Resources.resw +++ b/src/Files.App/Strings/da/Resources.resw @@ -124,7 +124,7 @@ Kopiér sti - Copy item path + Kopiér emnesti Kopiér sti med anførselstegn @@ -142,7 +142,7 @@ Oprettet: - Sti: + Sti Størrelse: @@ -166,7 +166,7 @@ Overspring - Select all + Vælg alle Invertér valg @@ -190,7 +190,7 @@ Søg - Tidligere tilgåede filer vil dukke op her + Tidligere tilgåede filer vil fremgå her Fjern dette emne @@ -217,7 +217,7 @@ Vis skjulte filer og mapper - Dot files + Vis punktum-filer Udseende @@ -226,16 +226,16 @@ Baggrundsfarve - Advanceret + Avanceret - Fortsæt, hvor du slap + Fortsæt fra hvor man slap Åbn en ny fane - Åbn bestemt side(r) + Åbn bestemt(e) side(r) Skrivebord @@ -268,7 +268,7 @@ Åbn - Åbn på ny fane + Åbn i ny fane Åbn i nyt vindue @@ -310,7 +310,7 @@ Mørkt - App + Applikation System @@ -346,10 +346,10 @@ Emne findes allerede - Indstil som låseskærmsbaggrund + Anvend som låseskærmsbaggrund - Angiv som app-baggrund + Anvend som app-baggrund Dette emne kunne ikke slettes @@ -379,10 +379,10 @@ Har du slettet denne mappe? - Filen, der forsøges tilgået, bruges i øjeblikket af {0} + Filen, der forsøges tilgået, anvendes p.t. af {0} - Filen, der forsøges tilgået, bruges i øjeblikket af en anden applikation + Filen, der forsøges tilgået, anvendes p.t. af en anden applikation Fil er i brug @@ -540,7 +540,7 @@ Kopiér til {0} - Clone to {0} + Klon til {0} Opret genvej @@ -639,16 +639,16 @@ Adgang nægtet - Indstil som + Anvend som - Annullér + Afbryd Opret et nyt emne - Vælg en type for det nye emne herunder + Vælg en type for dette nye emne herunder Fil @@ -987,7 +987,7 @@ Frakobl - Duplikér fane + Dublér fane Flyt fane til nyt vindue @@ -1089,13 +1089,19 @@ Slå inforuden til/fra - Slå infovinduet til/fra for at se detalje-/forhåndsvisningsruderne + Slå synlighed af detalje-/forhåndsvisningsruder til/fra - Toggle toolbar + Vis/skjul værktøjslinje - Toggle visibility of the toolbar + Slå synligheden af værktøjslinjen til/fra + + + Slå filterheader til/fra + + + Slå synlighed af filterheaderen til/fra Ingen forhåndsvisning tilgængelig @@ -1191,7 +1197,7 @@ Fastgjorte - Mapper + Biblioteker Intet emne valgt @@ -1326,7 +1332,7 @@ Emnetypekolonne - Kolonneændringsdato + Ændringsdatokolonne Kolonnesletingsdato @@ -1398,7 +1404,7 @@ {0} emner - Reopen tab + Genåbn fane Omdøb @@ -1440,7 +1446,7 @@ Vis mappeindhold - Redigér + Redigering Tilladelser for {0} @@ -1455,7 +1461,7 @@ Gruppe- eller brugernavne - Skrive + Skrivning Ukendt konto @@ -1479,10 +1485,10 @@ Udpak til {0}\ - Opret ny mappe + Opret nyt bibliotek - Gendan standardmapper + Gendan standardbiblioteker Sikker på, at standardmapper skal gendannes? Alle filer forbliver på lagerpladsen. @@ -1605,7 +1611,7 @@ Erstat alle underordnede tilladelsesposter med nedarvelige tilladelsesposter fra dette objekt - Close pane + Luk rude Vis kompakt overlejring @@ -1731,7 +1737,7 @@ Statuscenter - Kolonneoprettelsesdato + Oprettelsesdatokolonne Emnestørrelseskolonne @@ -1749,7 +1755,7 @@ Indsend fejlanmeldelse - Sæt Files som standardfilhåndtering + Brug Files som standardfilhåndtering Brug Files som Åbn fil-dialog @@ -1758,7 +1764,7 @@ Tag - Åbn emner med ét enkelt klik + Åbn emner med ét klik Mappesti @@ -1878,10 +1884,10 @@ Flatten-operationerne er permanente og anbefales ikke. Fortsæt på egen risiko. - Opret mappe + Opret bibliotek - Angiv mappenavn + Angiv biblioteksnavn Beregn mappestørrelser @@ -1899,7 +1905,7 @@ Skjult - Flere oplysninger + Flere detaljer Skrivebeskyttet @@ -1938,10 +1944,10 @@ Mappestørrelsesberegning er ressourcekrævende og kan medføre forøget CPU-forbrug. - Rotér til venstre + Rotér venstre om - Rotér til højre + Rotér højre om Installér @@ -2012,11 +2018,23 @@ Adfærd - - Bedøm Files + + Hej! + + + Synes om Files? Overvej at bedømme den i Microsoft Store. + + + Synes om Files? Overvej at støtte projektet på GitHub. - - Kunne du tænke dig at bedømme Files? + + Sponsorér + + + Bedøm os + + + Afvis Anvend som baggrund @@ -2031,13 +2049,13 @@ Datokolonne - Kolonneoprettelsesdato + Oprettelsesdato-kolonne - Tilpas kolonnestørrelse + Størrelseskolonne - Tag kolonne + Tag-kolonne Typekolonne @@ -2079,7 +2097,7 @@ Gendan alle emner - Do you want to restore the {0, plural, one {selected item} other {{0} selected items}}? + Skal {0, plural, one {det valgte emne} other {{0} valgte emner}} gendannes? Gendan valgte @@ -2103,10 +2121,10 @@ Arkivadgangskode - Encoding + Kodning - {0} (detected) + {0} (fundet) Sti @@ -2151,7 +2169,7 @@ Opdelingsstørrelse - Do not split + Opdel ikke CD @@ -2208,13 +2226,13 @@ Redigere indstillingsfil - Open settings file in your default editor + Åbn indstillingsfilen i standardeditoren - Release Notes + Udgivelsesnoter - Open Release Notes + Åbn udgivelsesnoter Genvejsoprettelse på denne placering kræver administratorprivilegier @@ -2241,7 +2259,7 @@ Vis komprimeringsindstillinger - Vis send til-menu + Vis Send til-menu Vis mulighed for at åbne mapper i en ny fane @@ -2250,7 +2268,7 @@ Vis mulighed for at åbne mapper i et nyt vindue - Hurtigadgang + Hurtig-adgang Angiv legitimationsoplysninger for at forbinde til: {0} @@ -2295,7 +2313,7 @@ Kontekstmenuvalg - File extensions + Filtyper Format @@ -2304,13 +2322,13 @@ Hjælp - Full screen + Fuldskærm Sikker på, at dette tag skal slettes? - Play + Afspil Højde @@ -2370,7 +2388,7 @@ Forøg størrelse - Sort direction + Sorteringsrækkefølge Ugyldigt navn @@ -2382,37 +2400,37 @@ Videoer - Preview popup + Pop op-forhåndsvisning Kompakt overlejring til/fra - Open the online help page in your browser + Åbn onlinehjælpesiden i webbrowseren - Toggle full screen mode + Slå fuldskærmstilstand til/fra - Enter compact overlay mode + Skift til kompakt overlejringstilstand - Exit compact overlay mode + Afslut kompakt overlejringstilstand - Toggle compact overlay mode + Slå kompakt overlejringstilstand til/fra - Start search in the OmniBar + Start søgning i OmniBar - Toggle visibility of hidden items + Slå synligheden af skjulte emner til/fra - Toggle visibility of dot files + Slå synligheden af dot-filer til/fra - Toggle visibility of file extensions + Slå synligheden af filtypenavne til/fra Slå forhåndsvisningsruden til/fra for at se forhåndsvisninger @@ -2421,64 +2439,64 @@ Vis/Skjul sidebjælke - Copy selected {0, plural, one {item} other {items}} to clipboard + Kopiér {0, plural, one {valgt emne} other {valgte emner}} - Kopiér stien til den aktuelle mappe til udklipsholderen + Kopiér sti til aktuel mappe - Kopiér sti til markerede enmer til udklipsholderen + Kopiér sti til valgte emner - Kopiér sti til valgte enmer med anførselstegn til udklipsholderen + Kopiér sti til valgte emner med anførselstegn - Kopiér stien til den aktuelle mappe med anførselstegn til udklipsholderen + Kopiér sti til aktuel mappe med anførselstegn - Cut selected {0, plural, one {item} other {items}} to clipboard + Klip {0, plural, one {valgt emne} other {valgte emner}} - Paste clipboard items to the current folder + Indsæt emner i den aktuelle mappe - Paste clipboard items to the current folder as shortcuts + Indsæt emner i den aktuelle mappe som genveje - Paste clipboard items to the selected folder + Indsæt emner i den aktuelle mappe - Paste to selected folder + Indsæt i den valgte mappe - Delete selected {0, plural, one {item} other {items}} + Slet {0, plural, one {valgt emne} other {valgte emner}} Opret ny mappe - Create new {0, plural, one {shortcut} other {shortcuts}} to selected {0, plural, one {item} other {items}} + Opret {0, plural, one {ny genvej} other {nye genveje}} til {0, plural, one {valgt emne} other {valgte emner}} Opret ny genvej til ethvert emne - Empty the contents of Recycle Bin + Tøm papirkurven Åbn menuen "Formatér Drev" for det valgte emne - Restore selected {0, plural, one {item} other {items}} from recycle bin + Gendan {0, plural, one {valgt emne} other {valgte emner}} fra papirkurven - Gendan alle emner fra papirkurv + Gendan alle emner fra papirkurven - Open {0, plural, one {item} other {items}} + Åbn {0, plural, one {emne} other {emner}} - Open {0, plural, one {item} other {items}} with selected application + Åbn {0, plural, one {emne} other {emner}} med den valgte applikation Åbn overordnet mappe for det søgte emne @@ -2493,28 +2511,28 @@ Vælg alle emner - Invert selected items + Omvendt emnevalg - Clear selected items + Ryd valgte emner Slå emnevalg til/fra - Share selected {0, plural, one {file} other {files}} with others + Del {0, plural, one {valgt fil} other {valgte filer}} med andre - Pin {0, plural, one {item} other {items}} to the Start Menu + Fastgør {0, plural, one {emne} other {emner}} til Startmenuen - Unpin {0, plural, one {item} other {items}} from the Start Menu + Frigør {0, plural, one {emne} other {emner}} fra Startmenuen - Pin {0, plural, one {folder} other {folders}} to Sidebar + Fastgør {0, plural, one {mappe} other {mapper}} til sidebjælken - Unpin {0, plural, one {folder} other {folders}} from Sidebar + Frigør {0, plural, one {mappe} other {mapper}} fra sidebjælken Benyt valgte billede som skrivebordsbaggrund @@ -2529,22 +2547,22 @@ Benyt valgte billede som app-baggrund - Install font + Installere skrifttype - Install driver + Installere driver - Install certificate + Installere certifikat - Install selected {0, plural, one {font} other {fonts}} + Installér {0, plural, one {valgt skrifttype} other {valgte skrifttyper}} - Install {0, plural, one {driver} other {drivers}} using selected inf {0, plural, one {file} other {files}} + Installér {0, plural, one {driver} other {drivere}} ved brug af {0, plural, one {valgt inf-fil} other {valgte inf-filer}} - Install selected {0, plural, one {certificate} other {certificates}} + Installér {0, plural, one {valgt certifikat} other {valgte certifikater}} Kør valgte program som administrator @@ -2559,28 +2577,28 @@ Start forhåndsvisning i pop op-vindue - Create archive with selected {0, plural, one {item} other {items}} + Opret arkiv med {0, plural, one {valgt emne} other {valgte emner}} - Create 7z archive with selected {0, plural, one {item} other {items}} + Opret 7z-arkiv med {0, plural, one {valgt emne} other {valgte emner}} - Create zip archive with selected {0, plural, one {item} other {items}} + Opret ZIP-arkiv med {0, plural, one {valgt emne} other {valgte emner}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Udpak {0, plural, one {valgt arkiv} other {valgte arkiver}} til en mappe - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Udpak {0, plural, one {valgt arkiv} other {valgte arkiver}} til den aktuelle mappe - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Udpak {0, plural, one {valgt arkiv} other {valgte arkiver}} til ny mappe - Rotate selected {0, plural, one {image} other {images}} to the left + Rotér {0, plural, one {valgt billede} other {valgte billeder}} venstre om - Rotate selected {0, plural, one {image} other {images}} to the right + Rotér {0, plural, one {valgt billede} other {valgte billeder}} højre om Åbn indstillingssiden @@ -2703,10 +2721,10 @@ Åbn en ny fane - Navigate backward + Gå tilbage - Navigate forward + Gå frem Gå én mappe op @@ -2739,7 +2757,7 @@ Luk alle faner inkl. den aktuelle - Reopen recently closed tab + Genåbn senest lukkede fane Flyt til forgående fane @@ -2751,13 +2769,13 @@ Luk aktuel fane - Close the active pane + Luk den aktive rude Fokusér anden rude - Switch focus to the other pane + Skift fokus til den anden rude Slå sidebjælken til/fra @@ -2965,13 +2983,13 @@ Ikke-tagget - Previous tab + Foregående fane - Next tab + Næste fane - Close tab + Luk fane Redigér sti @@ -3001,7 +3019,7 @@ Vis afkrydsningsfelter, når emner vælges - Edit path in the OmniBar + Redigér sti i OmniBar Opret nyt emne @@ -3016,7 +3034,7 @@ Slet permanent - Delete selected {0, plural, one {item} other {items}} permanently + Slet {0, plural, one {valgt emne} other {valgte emner}} permanent Afspil de valgte mediefiler @@ -3079,7 +3097,7 @@ Gruppér emner efter måned for redigeringsdato - Gruppér emner efter måned for redigeringsdato + Gruppér emner efter år for redigeringsdato Klik på 'Avancerede tilladelser' for at fortsætte. @@ -3133,7 +3151,7 @@ Skift til ny gren - Create a folder with the currently selected {0, plural, one {item} other {items}} + Opret en mappe med aktuelt {0, plural, one {valgt emne} other {valgte emner}} Egenskaber @@ -3145,7 +3163,7 @@ Åbn egenskabsvindue - Åbn egenskabsvinduet for Stifinder + Åbn egenskabsvinduet i Stifinder Standarder @@ -3154,7 +3172,7 @@ Eksterne - Oversæt på Crowdin + Oversæt via Crowdin Hent @@ -3166,7 +3184,7 @@ Kør git fetch - Clone a git repo + Klon et git-repo Kør git pull @@ -3175,7 +3193,7 @@ Forhåndsvisning - Git status + Git-status Git-fejl @@ -3209,7 +3227,7 @@ Glimmer - Glimmer alternativ + Mica Alt Baggrund @@ -3245,16 +3263,16 @@ Files kan ikke få adgang til GitHub lige nu. - Open folder in {0} + Åbn mappe i {0} - Open the current directory in {0} + Åbn den aktuelle mappe i {0} - Open repo in {0} + Åbn repo i {0} - Open the root of the Git repo in {0} + Åbn roden af Git-repo'et i {0} Kopiér kode @@ -3281,7 +3299,7 @@ Repo-initialisering - Initialize current folder as a git repository + Initialisér aktuel mappe som et Git-repository Fjern-repo navn @@ -3296,13 +3314,13 @@ Sortér emner efter sti - Open selected directory in a new pane + Åbn den valgte mappe i en ny rude - Open selected directory in a new tab + Åbn den valgte mappe i en ny fane - Open selected directory in a new window + Åbn valgt mappe i et nyt vindue Åbn alle @@ -3327,10 +3345,10 @@ Kommandoen '{0}' er ikke klar til eksekvering. - Command Palette + Kommandopalet - Open Command Palette in the OmniBar + Åbn kommandopaletten i OmniBar Start i: @@ -3436,7 +3454,7 @@ One of the custom color themes - Ryd gennemført + Rydning gennemført Navn: @@ -3472,123 +3490,123 @@ Shown in a StatusCenter card. - Komprimerede {0} emne(r) til "{1}" + Komprimeret {0, plural, one {# emne} other {# emner}} til "{1}" Shown in a StatusCenter card. - Komprimerede {0} emne(r) fra "{1}" til "{2}" + Komprimeret {0, plural, one {# emne} other {# emner}} fra "{1}" til "{2}" Shown in a StatusCenter card. - Fejl under komprimeringen af {0} emne(r) til "{1}" + Fejl under komprimering af {0, plural, one {# emne} other {# emner}} til "{1}" Shown in a StatusCenter card. - Kunne ikke komprimere {0} emne(r) fra {1} til {2}" + Mislykkedes at komprimere {0, plural, one {# emne} other {# emner}} fra "{1}" til "{2}" Shown in a StatusCenter card. - Komprimerer {0} emne(r) til "{1}" + Komprimerer {0, plural, one {# emne} other {# emner}} til "{1}" Shown in a StatusCenter card. - Komprimerer {0} emne(r) fra "{1}" til "{2}" + Komprimerer {0, plural, one {# emne} other {# emner}} fra "{1}" til "{2}" Shown in a StatusCenter card. - Canceled cloning {0} to "{1}" + Afbrudt kloning af {0} til "{1}" Shown in a StatusCenter card. - Canceled cloning {0} from "{1}" to "{2}" + Afbrudt kloning af {0} fra "{1}" til "{2}" Shown in a StatusCenter card. - Cloned "{0}" to "{1}" + Klonet "{0}" til "{1}" Shown in a StatusCenter card. - Cloned {0} from "{1}" to "{2}" + Klonet {0} fra "{1}" til "{2}" Shown in a StatusCenter card. - Error cloning "{0}" to "{1}" + Fejl under kloning af "{0}" til "{1}" Shown in a StatusCenter card. - Failed to clone {0} from "{1}" to "{2}" + Mislykkedes at klone {0} fra "{1}" til "{2}" Shown in a StatusCenter card. - Cloning "{0}" to "{1}" + Kloner "{0}" til "{1}" Shown in a StatusCenter card. - Cloning {0} from "{1}" to "{2}" + Kloner {0} fra "{1}" til "{2}" Shown in a StatusCenter card. - Canceled installing {0} fonts + Afbrudt installation af {0} skrifttyper Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Afbrød installationen af {0, plural, one {# skrifttype} other {# skrifttyper}} fra "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installerede {0, plural, one {# skrifttype} other {# skrifttyper}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installerede {0, plural, one {# skrifttype} other {# skrifttyper}} fra "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Fejl under installationen af {0, plural, one {# skrifttype} other {# skrifttyper}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Mislykkedes at installere {0, plural, one {# skrifttype} other {# skrifttyper}} fra "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installerer {0, plural, one {# skrifttype} other {# skrifttyper}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installerer {0, plural, one {# skrifttype} other {# skrifttyper}} fra "{1}" Shown in a StatusCenter card. - Annullerede kopieringen af {0} emne(r) til "{1}" + Afbrød kopieringen af {0, plural, one {# emne} other {# emner}} til "{1}" Shown in a StatusCenter card. - Annullerede kopieringen af {0} vare(r) fra "{1}" til "{2}" + Afbrød kopieringen af {0, plural, one {# emne} other {# emner}} fra "{1}" til "{2}" Shown in a StatusCenter card. - Kopierede {0} emne(r) til "{1}" + Kopieret {0, plural, one {# emne} other {# emner}} til "{1}" Shown in a StatusCenter card. - Kopierede {0} emne(r) fra "{1}" til "{2}" + Kopieret {0, plural, one {# emne} other {# emner}} fra "{1}" til "{2}" Shown in a StatusCenter card. - Fejl under kopieringen af {0} emne(r) til "{1}" + Fejl under komprimeringen af {0, plural, one {# emne} other {# emner}} til "{1}" Shown in a StatusCenter card. - Mislykkedes at kopiere {0} emne(r) fra "{1}" til "{2}" + Mislykkedes at kopiere {0, plural, one {# emne} other {# emner}} fra "{1}" til "{2}" Shown in a StatusCenter card. - Kopierer {0} emne(r) til "{1}" + Kopierer {0, plural, one {# emne} other {# emner}} til "{1}" Shown in a StatusCenter card. - Kopierer {0} emne(r) fra "{1}" til "{2}" + Kopierer {0, plural, one {# emne} other {# emner}} fra "{1}" til "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Annullerede sletningen af {0} emne(r) fra "{1}" + Afbrød sletningen af {0, plural, one {# emne} other {# emner}} fra "{1}" Shown in a StatusCenter card. - Slettede {0} emne(r) fra "{1}" + Slettede {0, plural, one {# emne} other {# emner}} fra "{1}" Shown in a StatusCenter card. - Fejl under sletningen af {0} emne(r) fra "{1}" + Fejl under sletningen af {0, plural, one {# emne} other {# emner}} fra "{1}" Shown in a StatusCenter card. - Mislykkedes at slette {0} emne(r) fra "{1}" + Mislykkedes at slette {0, plural, one {# emne} other {# emner}} fra "{1}" Shown in a StatusCenter card. - Sletter {0} emne(r) fra "{1}" + Sletter {0, plural, one {# emne} other {# emner}} fra "{1}" Shown in a StatusCenter card. - Annullerede flytningen af {0} emne(r) til "{1}" + Afbrød flytningen af {0, plural, one {# emne} other {# emner}} til "{1}" Shown in a StatusCenter card. - Annullerede flytningen af {0} emne(r) fra "{1}" til "{2}" + Afbrød flytningen af {0, plural, one {# emne} other {# emner}} fra "{1}" til "{2}" Shown in a StatusCenter card. - Flyttede {0} emne(r) til "{1}" + Flyttet {0, plural, one {# emne} other {# emner}} til "{1}" Shown in a StatusCenter card. - Flyttede {0} emne(r) fra "{1}" til "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Flytter {0} emne(r) til "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Flytter {0} emne(r) fra "{1}" til "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Fejl under flytningen af {0} emne(r) til "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Kunne ikke flytte {0} emne(r) fra "{1}" til "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3700,7 +3718,7 @@ Shown in a StatusCenter card. - {0}/{1} {0, plural, one {item} other {items}} processed + {0}/{1} {0, plural, one {emne} other {emner}} behandlet Shown in a StatusCenter card. Used as "8/20 items processed" @@ -3713,13 +3731,13 @@ Muligheden for at åbne Files ved Windows-opstart er utilgængelig grundet aktuelle systemindstillinger eller gruppepolitik. For at genaktivere, åbne startsiden i Opgavehåndtering. - Kunne ikke gendanne emner fra papirkurven + Mislykkedes at gendanne emner fra papirkurven Kunne ikke indstille baggrundstapetet - Failed to open the settings file + Mislykkedes at åbne indstillingsfilen Slet Git-gren @@ -3746,7 +3764,7 @@ En fejl opstod under anvendelsen af dette tag - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Udpak her (Smart) @@ -3755,7 +3773,7 @@ Sortér filer og mapper sammen - Sort files and folders in the same list + Sortér filer og mapper i samme liste Sortér filer først @@ -3782,7 +3800,7 @@ Afslut - Kunne ikke dele emner + Mislykkedes at dele emner Rul til foregående mappe, når der navigeres op @@ -3794,7 +3812,7 @@ Skift albumcover - Kunne ikke omdøbe emne + Mislykkedes at omdøbe emne Redigering af "{0}" kræver yderligere tilladelser @@ -3809,7 +3827,7 @@ Hvad blev der af Files? - Spørgsmål og debatter + Spørgsmål og drøftelser Kompakt @@ -3879,7 +3897,7 @@ Tilføj kommando - Gendan standarder + Gendan standardværdier Vælg en handling @@ -3903,7 +3921,7 @@ Baggrundsbillede - Bund + Nederst Image alignment type @@ -3915,7 +3933,7 @@ Image stretch type - Horisontal justering + Vandret justering Billedtilpasning @@ -3958,7 +3976,7 @@ Udviklerværktøjer - Immdstil knappen "Åbn IDE" på statuslinjen + Indstil knappen "Åbn IDE" på statuslinjen Vis for Git-repo'er @@ -4016,16 +4034,16 @@ Fanehandlingsmenu - Vertical pane + Lodret rude - Add vertical pane + Tilføj lodret rude - Horizontal pane + Vandret rude - Add horizontal pane + Tilføj vandret rude Arrangér lodret @@ -4066,9 +4084,6 @@ Gå til startsiden - - Vis Hjem-knap på adressebjælken - Værktøjsbjælker @@ -4088,7 +4103,7 @@ Opret alternativ datastrøm - Create alternate data stream for the selected {0, plural, one {item} other {items}} + Opret alternativ datastrøm for {0, plural, one {valgt emne} other {valgte emner}} Angiv navn på datastrøm @@ -4118,10 +4133,10 @@ Skift altid fokus til den nyoprettede fane - Toggle shelf pane + Vis/skjul hylderuden - Toggle the visibility of the shelf pane + Slå synligheden af hyldestruden til/fra Vis hylderudeskifter på adressebjælken @@ -4141,89 +4156,124 @@ Tooltip that displays when dragging items to the Shelf Pane - Enter a hash to compare + Indtast et hash at sammenligne Placeholder that appears in the compare hash text box - Matches {0} + Matcher {0} Appears when two compared hashes match, e.g. "Matches SHA256" - No matches found + Ingen matches fundet Appears when two compared hashes don't match - Path or alias + Sti eller alias - Invalid path + Ugyldig sti Test integration - {0} could not be located. Please check your settings and try again. + {0} kunne ikke findes. Tjek indstillinger og forsøg igen. - The configured IDE could not be located + Den opsatte IDE kunne ikke findes - Open settings + Åbn indstillinger Visual Studio Code - Enter a path or launch alias + Angiv en sti eller startalias - Please enter a name for the IDE + Angiv et navn til IDE'en - Clone repo + Klon repo Clone repo dialog title - Clone + Klon Primary action button in the clone repo dialog - Repository URL + Repo-URL URL textbox header in the clone repo dialog - Cannot clone repo + Repo kan ikke klones Cannot clone repo dialog title - Compare a file + Sammenlign en fil Button that appears in file hash properties that allows the user to compare two files - Size format + Størrelsesformat - Binary + Binær Decimal - - Enable Omnibar - - You can add sections to the sidebar by right-clicking and selecting the sections you want to add + Afsnit kan føjes til sidepanelet via højreklik og valg af de ønskede afsnit - Drag files or folders here to interact with them across different tabs + Træk filer/mapper hertil for at interagere med dem på tværs af forskellige faner - Enter a path to navigate to... + Indtast en sti at navigere til... - Find features and commands... + Find funktioner og kommandoer... - Search for files and folders... + Søg efter filer og mapper... + + + Under filhandlinger + + + Vis statuscenter-knap + + + Statuscenter statusring + Screen reader name for the status center progress ring + + + Ikonfiler + This is the friendly name for a variety of different icon files. + + + Vis brødkrummer for sammenfoldet sti + + + Show folders in {0} + + + Show folders in Home + + + Der er ingen kommandoer indeholdende {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal diff --git a/src/Files.App/Strings/de-DE/Resources.resw b/src/Files.App/Strings/de-DE/Resources.resw index 8c59041c1505..c01196a236b4 100644 --- a/src/Files.App/Strings/de-DE/Resources.resw +++ b/src/Files.App/Strings/de-DE/Resources.resw @@ -124,7 +124,7 @@ Pfad kopieren - Copy item path + Elementpfad kopieren Pfad mit Anführungszeichen kopieren @@ -166,7 +166,7 @@ Überspringen - Select all + Alles auswählen Auswahl umkehren @@ -217,7 +217,7 @@ Versteckte Dateien und Ordner anzeigen - Dot files + Dateien, die mit einem Punkt beginnen, anzeigen Erscheinungsbild @@ -1089,13 +1089,19 @@ Infobereich umschalten - Infobereich umschalten, um Detail-/Vorschaubereich anzuzeigen + Detail-/Vorschaufenster ein-/ausblenden - Toggle toolbar + Symbolleiste umschalten - Toggle visibility of the toolbar + Sichtbarkeit der Symbolleiste umschalten + + + Filter-Header umschalten + + + Sichtbarkeit des Filter-Headers umschalten Keine Vorschau verfügbar @@ -1398,13 +1404,13 @@ {0} Dateien - Reopen tab + Tab wiederherstellen Umbenennen - Privatsphäre + Datenschutz Der Papierkorb @@ -1605,7 +1611,7 @@ Alle Rechte des untergeordneten Objektes mit vererbaren Rechten dieses Objekts ersetzen - Close pane + Panel schließen Zum kompakten Overlay wechseln @@ -1635,7 +1641,7 @@ Lädt die Datei aus der Cloud herunter und lädt die Vorschau - {0, plural, one {# Element } other {# Elemente }} ({1, plural, one {# Datei} other {# Dateien}}, {2, plural, one {# Ordner} other {# Ordner}}) + {0, plural, one {# Element} other {# Elemente}} ({1, plural, one {# Datei} other {# Dateien}}, {2, plural, one {# Ordner} other {# Ordner}}) Unkomprimierte Größe @@ -2012,11 +2018,23 @@ Verhalten - - File bewerten + + Hallo! + + + Gefällt dir Files? Bitte hinterlasse eine Bewertung im Microsoft Store. + + + Gefällt dir Files? Bitte unterstütze das Projekt auf GitHub. - - Willst du Files bewerten? + + Unterstützen + + + Bewerte uns + + + Verwerfen Als Hintergrund festlegen @@ -2295,7 +2313,7 @@ Optionen des Kontextmenüs - File extensions + Dateierweiterungen Formattieren @@ -2304,13 +2322,13 @@ Hilfe - Full screen + Vollbild Willst du diesen Tag wirklich löschen? - Play + Abspielen Höhe @@ -2370,7 +2388,7 @@ Größe vergrößern - Sort direction + Sortierrichtung Ungültiger Name @@ -2382,37 +2400,37 @@ Videos - Preview popup + Vorschau-Popup Kompakte Ansicht umschalten - Open the online help page in your browser + Öffne die Online-Hilfe in deinem Browser - Toggle full screen mode + Vollbildmodus umschalten - Enter compact overlay mode + Kompaktmodus aktivieren - Exit compact overlay mode + Kompaktmodus deaktivieren - Toggle compact overlay mode + Kompaktmodus umschalten - Start search in the OmniBar + Suche in der OmniBar starten - Toggle visibility of hidden items + Sichtbarkeit versteckter Elemente umschalten - Toggle visibility of dot files + Sichtbarkeit von Dateien, die mit einem Punkt beginnen, umschalten - Toggle visibility of file extensions + Sichtbarkeit von Dateierweiterungen umschalten Vorschaubereich umschalten, um Dateivorschau zu sehen @@ -2421,37 +2439,37 @@ Umschalten, ob Seitenleiste angezeigt werden soll - Copy selected {0, plural, one {item} other {items}} to clipboard + {0, plural, one {Ausgewähltes Element} other {Ausgewählte Elemente}} kopieren - Pfad der ausgewählten Elemente in die Zwischenablage kopieren + Pfad des aktuellen Ordners kopieren - Pfad der ausgewählten Elemente in die Zwischenablage kopieren + Pfad der ausgewählten Elemente kopieren - Pfad der ausgewählten Elemente mit Anführungszeichen in die Zwischenablage kopieren + Pfad der ausgewählten Elemente mit Anführungszeichen kopieren - Pfad der ausgewählten Elemente mit Anführungszeichen in die Zwischenablage kopieren + Pfad des aktuellen Ordners mit Anführungszeichen kopieren - Cut selected {0, plural, one {item} other {items}} to clipboard + {0, plural, one {Ausgewähltes Element} other {Ausgewählte Elemente}} ausschneiden - Paste clipboard items to the current folder + Elemente in den aktuellen Ordner einfügen - Paste clipboard items to the current folder as shortcuts + Elemente als Verknüpfungen in den aktuellen Ordner einfügen - Paste clipboard items to the selected folder + Elemente in den ausgewählten Ordner einfügen - Paste to selected folder + In ausgewählten Ordner einfügen - Delete selected {0, plural, one {item} other {items}} + {0, plural, one {Ausgewähltes Element} other {Ausgewählte Elemente}} löschen Neuen Ordner erstellen @@ -2463,7 +2481,7 @@ Neue Verknüpfung zu beliebigem Element erstellen - Empty the contents of Recycle Bin + Papierkorb leeren "Datenträger formatieren"-Menü für ausgewähltes Element öffnen @@ -2493,10 +2511,10 @@ Alles auswählen - Invert selected items + Auswahl umkehren - Clear selected items + Auswahl aufheben Auswahl umschalten @@ -2529,13 +2547,13 @@ Ausgewähltes Bild als Hintergrund der App festlegen - Install font + Schriftart installieren - Install driver + Treiber installieren - Install certificate + Zertifikat installieren Ausgewählte {0, plural, one {Schriftart} other {Schriftarten}} installieren @@ -2568,13 +2586,13 @@ ZIP-Archiv mit {0, plural, one {ausgewähltem Element} other {ausgewählten Elementen}} erstellen - Elemente aus {0, plural, one {ausgewähltem Archiv} other {ausgewählten Archiven}} in einen beliebigen Ordner entpacken + {0, plural, one {Ausgewähltes Archiv} other {Ausgewählte Archive}} in einen beliebigen Ordner entpacken - Elemente aus {0, plural, one {ausgewähltem Archiv} other {ausgewählten Archiven}} in aktuellen Ordner entpacken + {0, plural, one {Ausgewähltes Archiv} other {Ausgewählte Archive}} in den aktuellen Ordner entpacken - Elemente aus {0, plural, one {ausgewähltem Archiv} other {ausgewählten Archiven}} in einen neuen Ordner entpacken + {0, plural, one {Ausgewähltes Archiv} other {Ausgewählte Archive}} in einen neuen Ordner entpacken {0, plural, one {Ausgewähltes Bild} other {Ausgewählte Bilder}} nach links drehen @@ -2703,10 +2721,10 @@ Einen neuen Tab öffnen - Navigate backward + Zurück navigieren - Navigate forward + Vorwärts navigieren Ein Verzeichnis nach oben navigieren @@ -2739,7 +2757,7 @@ Alle Tabs inklusive des aktuellen Tabs schließen - Reopen recently closed tab + Kürzlich geschlossenen Tab erneut öffnen Zum vorherigen Tab wechseln @@ -2751,13 +2769,13 @@ Aktuellen Tab schließen - Close the active pane + Aktiven Bereich schließen Anderen Bereich fokussieren - Switch focus to the other pane + Fokus auf den anderen Bereich wechseln Seitenleiste umschalten @@ -2965,13 +2983,13 @@ Ohne Tag - Previous tab + Vorheriger Tab - Next tab + Nächster Tab - Close tab + Tab schließen Pfad bearbeiten @@ -3001,7 +3019,7 @@ Auswahlkästchen beim Auswählen von Elementen anzeigen - Edit path in the OmniBar + Pfad in der OmniBar bearbeiten Neues Element erstellen @@ -3016,7 +3034,7 @@ Unwiderruflich löschen - Delete selected {0, plural, one {item} other {items}} permanently + {0, plural, one {Ausgewähltes Element} other {Ausgewählte Elemente}} permanent löschen Ausgewählte Mediendateien abspielen @@ -3281,7 +3299,7 @@ Repository initialisieren - Initialize current folder as a git repository + Aktuellen Ordner als Git-Repository initialisieren Name des Remote-Repositorys @@ -3296,13 +3314,13 @@ Elemente nach Pfad sortieren - Open selected directory in a new pane + Ausgewähltes Verzeichnis in neuem Bereich öffnen - Open selected directory in a new tab + Ausgewähltes Verzeichnis in neuem Tab öffnen - Open selected directory in a new window + Ausgewähltes Verzeichnis in neuem Fenster öffnen Alle öffnen @@ -3327,10 +3345,10 @@ Der '{0}' Befehl ist nicht für die Ausführung bereit. - Command Palette + Befehlspalette - Open Command Palette in the OmniBar + Befehlspalette in der OmniBar öffnen Beginnt in: @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - {0} Element(e) nach "{1}" komprimiert + {0, plural, one {# Element} other {# Elemente}} nach "{1}" komprimiert Shown in a StatusCenter card. - {0} Element(e) von "{1}" nach "{2}" komprimiert + {0, plural, one {# Element} other {# Elemente}} von "{1}" nach "{2}" komprimiert Shown in a StatusCenter card. - Fehler beim Komprimieren von {0} Element(en) nach "{1}" + Fehler beim Komprimieren von {0, plural, one {# Element} other {# Elementen}} nach "{1}" Shown in a StatusCenter card. - Komprimieren von {0} Element(en) von "{1}" nach "{2}" ist fehlgeschlagen + Fehler beim Komprimieren von {0, plural, one {# Element} other {# Elementen}} von "{1}" nach "{2}" Shown in a StatusCenter card. - {0} Element(e) wird/werden nach "{1}" komprimiert + Komprimiere {0, plural, one {# Element} other {# Elemente}} nach "{1}" Shown in a StatusCenter card. - {0} Element(e) wird/werden von "{1}" nach "{2}" komprimiert + Komprimiere {0, plural, one {# Element} other {# Elemente}} von "{1}" nach "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Installation von {0} Schriftart(en) von "{1} " abgebrochen + Installieren von {0, plural, one {# Schriftart} other {# Schriftarten}} aus "{1}" abgebrochen Shown in a StatusCenter card. - {0} Schriftart(en) installiert + {0, plural, one {# Schriftart} other {# Schriftarten}} installiert Shown in a StatusCenter card. - {0} Schriftart(en) von "{1}" installiert + {0, plural, one {# Schriftart} other {# Schriftarten}} aus "{1}" installiert Shown in a StatusCenter card. - Fehler bei der Installation der {0} Schriftart(en) + Fehler beim Installieren von {0, plural, one {# Schriftart} other {# Schriftarten}} Shown in a StatusCenter card. - Fehler bei der Installation der {0} Schriftart(en) von "{1}" + Fehler beim Installieren von {0, plural, one {# Schriftart} other {# Schriftarten}} aus "{1}" Shown in a StatusCenter card. - Installiere {0} Schriftart(en) + Installiere {0, plural, one {# Schriftart} other {# Schriftarten}} Shown in a StatusCenter card. - Installiere {0} Schriftart(en) von "{1}" + Installiere {0, plural, one {# Schriftart} other {# Schriftarten}} aus "{1}" Shown in a StatusCenter card. - Kopieren von {0} Element(en) nach "{1}" abgebrochen + Kopieren von {0, plural, one {# Element} other {# Elementen}} nach "{1}" abgebrochen Shown in a StatusCenter card. - Kopieren von {0} Element(en) von "{1}" nach "{2}" abgebrochen + Kopieren von {0, plural, one {# Element} other {# Elementen}} von "{1}" nach "{2}" abgebrochen Shown in a StatusCenter card. - {0} Element(e) nach "{1}" kopiert + {0, plural, one {# Element} other {# Elemente}} nach "{1}" kopiert Shown in a StatusCenter card. - {0} Element(e) von "{1}" nach "{2}" kopiert + {0, plural, one {# Element} other {# Elemente}} von "{1}" nach "{2}" kopiert Shown in a StatusCenter card. - Fehler beim Kopieren von {0} Element(en) nach "{1}" + Fehler beim Kopieren von {0, plural, one {# Element} other {# Elementen}} nach "{1}" Shown in a StatusCenter card. - Kopieren von {0} Element(en) von "{1}" nach "{2}" ist fehlgeschlagen + Fehler beim Kopieren von {0, plural, one {# Element} other {# Elementen}} von "{1}" nach "{2}" Shown in a StatusCenter card. - {0} Element(e) wird/werden nach "{1}" kopiert + Kopiere {0, plural, one {# Element} other {# Elemente}} nach "{1}" Shown in a StatusCenter card. - {0} Element(e) wird/werden von "{1}" nach "{2}" kopiert + Kopiere {0, plural, one {# Element} other {# Elemente}} von "{1}" nach "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Löschen von {0} Element(en) aus "{1}" abgebrochen + Löschen von {0, plural, one {# Element} other {# Elementen}} aus "{1}" abgebrochen Shown in a StatusCenter card. - {0} Element(e) aus "{1}" gelöscht + {0, plural, one {# Element} other {# Elemente}} aus "{1}" gelöscht Shown in a StatusCenter card. - Fehler beim Löschen von {0} Element(en) aus "{1}" + Fehler beim Löschen von {0, plural, one {# Element} other {# Elementen}} aus "{1}" Shown in a StatusCenter card. - Löschen von {0} Element(en) aus "{1}" fehlgeschlagen + Fehler beim Löschen von {0, plural, one {# Element} other {# Elementen}} aus "{1}" Shown in a StatusCenter card. - {0} Element(e) werden aus "{1}" gelöscht + Lösche {0, plural, one {# Element} other {# Elemente}} aus "{1}" Shown in a StatusCenter card. - Verschieben von {0} Element(en) nach "{1}" abgebrochen + Verschieben von {0, plural, one {# Element} other {# Elementen}} nach "{1}" abgebrochen Shown in a StatusCenter card. - Verschieben von {0} Element(en) von "{1}" nach "{2}" abgebrochen + Verschieben von {0, plural, one {# Element} other {# Elementen}} von "{1}" nach "{2}" abgebrochen Shown in a StatusCenter card. - {0} Element(e) nach "{1}" verschoben + {0, plural, one {# Element} other {# Elemente}} nach "{1}" verschoben Shown in a StatusCenter card. - {0} Element(e) von "{1}" nach "{2}" verschoben + {0, plural, one {# Element} other {# Elemente}} von "{1}" nach "{2}" verschoben Shown in a StatusCenter card. - {0} Element(e) werden nach "{1}" verschoben + Verschiebe {0, plural, one {# Element} other {# Elemente}} nach "{1}" Shown in a StatusCenter card. - {0} Element(e) werden von "{1}" nach "{2}" verschoben + Verschiebe {0, plural, one {# Element} other {# Elemente}} von "{1}" nach "{2}" Shown in a StatusCenter card. - Fehler beim Verschieben von {0} Element(en) nach "{1}" + Fehler beim Verschieben von {0, plural, one {# Element} other {# Elementen}} nach "{1}" Shown in a StatusCenter card. - {0} Element(e) konnte(n) nicht von "{1}" nach "{2}" verschoben werden + Fehler beim Verschieben von {0, plural, one {# Element} other {# Elementen}} von "{1}" nach "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ Beim Anwenden dieses Tags ist ein Fehler aufgetreten - Extrahiere Elemente aus {0, plural, one {dem ausgewählten Archiv} other {den ausgewählten Archiven}} in den aktuellen Ordner für ein Archiv mit einem Element, oder in einen neuen Ordner für ein Archiv mit mehreren Elementen + {0, plural, one {Ausgewähltes Archiv} other {Ausgewählte Archive}} hier entpacken (einzeln) oder in neuen Ordner entpacken (mehrere) Hier entpacken (Smart) @@ -3755,7 +3773,7 @@ Dateien und Ordner zusammen sortieren - Sort files and folders in the same list + Dateien und Ordner in derselben Liste sortieren Dateien zuerst sortieren @@ -4016,16 +4034,16 @@ Tab-Aktionen-Menü - Vertical pane + Vertikaler Bereich - Add vertical pane + Vertikalen Bereich hinzufügen - Horizontal pane + Horizontaler Bereich - Add horizontal pane + Horizontalen Bereich hinzufügen Vertikal anordnen @@ -4066,9 +4084,6 @@ Zur Startseite navigieren - - Startbutton in Adressleiste anzeigen - Werkzeugleisten @@ -4118,10 +4133,10 @@ Immer auf neu erstellten Tab fokussieren - Toggle shelf pane + Ablagebereich umschalten - Toggle the visibility of the shelf pane + Sichtbarkeit des Ablagebereichs umschalten Ablagebereich in der Addressleiste anzeigen @@ -4208,9 +4223,6 @@ Dezimal - - Omnibar aktivieren - Du kannst Abschnitte zur Seitenleiste hinzufügen, indem du mit der rechten Maustaste klickst und die gewünschten Abschnitte auswählst @@ -4226,4 +4238,42 @@ Nach Dateien und Ordnern suchen... + + Während Dateioperationen + + + Status-Center-Button anzeigen + + + Status-Center-Fortschrittsring + Screen reader name for the status center progress ring + + + Icon-Dateien + This is the friendly name for a variety of different icon files. + + + Zusammengeklappte Pfadnavigation anzeigen + + + Ordner in {0} anzeigen + + + Ordner auf der Startseite anzeigen + + + Es gibt keine Befehle, die {0} enthalten + + + Mehr anzeigen + + + Filtern nach + + + Dateiname + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/el/Resources.resw b/src/Files.App/Strings/el/Resources.resw index 15c808c09f37..f9037b1e3880 100644 --- a/src/Files.App/Strings/el/Resources.resw +++ b/src/Files.App/Strings/el/Resources.resw @@ -217,7 +217,7 @@ Εμφάνιση κρυφών αρχείων και φακέλων - Dot files + Show dot files Εμφάνιση @@ -1089,7 +1089,7 @@ Εναλλαγή του πλαισίου πληροφοριών - Εναλλαγή του πλαισίου πληροφοριών για προβολή των παραθύρων λεπτομερειών/προεπισκόπησης + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1097,6 +1097,12 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + Δεν υπάρχει διαθέσιμη προεπισκόπηση @@ -2012,11 +2018,23 @@ Συμπεριφορές - - Αξιολογήστε το Files + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us - - Θα θέλατε να αξιολογήσετε την εφαρμογή "Files"; + + Dismiss Ορισμός ως φόντο @@ -2421,31 +2439,31 @@ Εναλλαγή εμφάνισης πλευρικής μπάρας - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Αντιγραφή διαδρομής των επιλεγμένων στοιχείων στο πρόχειρο + Copy path of the current directory - Αντιγραφή διαδρομής των επιλεγμένων στοιχείων στο πρόχειρο + Copy path of selected items - Αντιγραφή διαδρομής των επιλεγμένων στοιχείων με εισαγωγικά στο πρόχειρο + Copy path of selected items with quotes - Αντιγραφή διαδρομής των επιλεγμένων αντικειμένων με εισαγωγικά στο πρόχειρο + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Έγινε συμπίεση {0} στοιχείου(ων) σε «{1}» + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Συμπιεσμένο(α) στοιχείο(α) {0} από "{1}" σε "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Σφάλμα κατά τη συμπίεση στοιχείου(ων) {0} σε "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Απέτυχε η αντιγραφή {0} στοιχείου(ων) από {1} προς {2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Συμπίεση στοιχείου(ων) από {0} σε "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Συμπίεση στοιχείου(ων) {0} από "{1}" σε "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Ακυρώθηκε η αντιγραφή {0} στοιχείου(ων) στο "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Ακυρώθηκε η αντιγραφή {0} στοιχείου(ων) από "{1}" στο "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Αντιγραφή {0} αντικειμένου(ων) στο "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Αντιγραφή {0} στοιχείου(ων) από το "{1}" στο "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Σφάλμα αντιγραφής {0} στοιχείου(ων) στο "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Απέτυχε η αντιγραφή {0} στοιχείου(ων) από το "{1}" στο "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Αντιγραφή {0} στοιχείου(ων) στο "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Αντιγραφή {0} στοιχείου(ων) από το "{1}" στο "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Ακυρώθηκε η διαγραφή {0} στοιχείου(ων) από το "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Διαγράφηκε {0} στοιχείου(α) από το "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Σφάλμα διαγραφής {0} αντικειμένου(ων) από το "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Απέτυχε η διαγραφή {0} αντικειμένου(ων) από το "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Διαγραφή {0} αντικειμένου(ων) από το "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Ακυρώθηκε η μετακίνηση {0} αντικειμένου(ων) στο "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Ακυρώθηκε η μετακίνηση {0} αντικειμένου(ων) από "{1}" σε "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Μεταφέρθηκε {0} αντικείμενο(α) στο "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Μεταφέρθηκε {0} αντικείμενο(α) από το "{1}" στο "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Μετακίνηση {0} αντικειμένου(ων) στο "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Μετακίνηση {0} αντικειμένου(ων) από το "{1}" στο "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Σφάλμα κατά τη μετακίνηση αντικειμένου(ων) {0} στο "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Η μετακίνηση {0} αντικείμενου(ων) από "{1}" σε "{2}" απέτυχε + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ Παρουσιάστηκε σφάλμα κατά την εφαρμογή αυτής της ετικέτας - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Εξαγωγή εδώ (Έξυπνο) @@ -4066,9 +4084,6 @@ Μετάβαση στην αρχική σελίδα - - Εμφάνιση κουμπιού αρχικής οθόνης στη γραμμή διευθύνσεων - Γραμμές εργαλείων @@ -4208,9 +4223,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/en-GB/Resources.resw b/src/Files.App/Strings/en-GB/Resources.resw index ed8fdb90dbb7..5fdaf8c7455d 100644 --- a/src/Files.App/Strings/en-GB/Resources.resw +++ b/src/Files.App/Strings/en-GB/Resources.resw @@ -217,7 +217,7 @@ Show hidden files and folders - Dot files + Show dot files Appearance @@ -1089,7 +1089,7 @@ Toggle the info pane - Toggle the info pane to view the detail/preview panes + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1097,6 +1097,12 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + No preview available @@ -2012,11 +2018,23 @@ Behaviours - - Review Files + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us - - Would you like to review Files? + + Dismiss Set as background @@ -2421,31 +2439,31 @@ Toggle whether to show sidebar - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Copy path of selected items to the clipboard + Copy path of the current directory - Copy path of selected items to clipboard + Copy path of selected items - Copy path of selected items with quotes to the clipboard + Copy path of selected items with quotes - Copy path of selected items with quotes to the clipboard + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Compressed {0} item(s) to "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressed {0} item(s) from "{1}" to "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error compressing {0} item(s) to "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to compress {0} item(s) from "{1}" to "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Compressing {0} item(s) to "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressing {0} item(s) from "{1}" to "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Cancelled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Cancelled copying {0} item(s) to "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Cancelled copying {0} item(s) from "{1}" to "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copied {0} item(s) to "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copied {0} item(s) from "{1}" to "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error copying {0} item(s) to "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to copy {0} item(s) from "{1}" to "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copying {0} item(s) to "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copying {0} item(s) from "{1}" to "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Cancelled deleting {0} item(s) from "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleted {0} item(s) from "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Error deleting {0} item(s) from "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Failed to delete {0} item(s) from "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleting {0} item(s) from "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Cancelled moving {0} item(s) to "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Cancelled moving {0} item(s) from "{1}" to "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moved {0} item(s) to "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moved {0} item(s) from "{1}" to "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moving {0} item(s) to "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moving {0} item(s) from "{1}" to "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error moving {0} item(s) to "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to move {0} item(s) from "{1}" to "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ There was an error applying this tag - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Extract here (Smart) @@ -4066,9 +4084,6 @@ Navigate to the home page - - Show home button in address bar - Toolbars @@ -4208,9 +4223,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/en-US/Resources.resw b/src/Files.App/Strings/en-US/Resources.resw index 31013adb5b84..b078f103dcc7 100644 --- a/src/Files.App/Strings/en-US/Resources.resw +++ b/src/Files.App/Strings/en-US/Resources.resw @@ -217,7 +217,7 @@ Show hidden files and folders - Dot files + Show dot files Appearance @@ -309,6 +309,9 @@ Dark + + Use system setting + Application @@ -524,9 +527,6 @@ Status - - Windows default - No results @@ -1010,6 +1010,9 @@ Search results in {1} for {0} + + Search results for `{0}` + Details @@ -1089,7 +1092,7 @@ Toggle the info pane - Toggle the info pane to view the detail/preview panes + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1097,6 +1100,18 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + + + Toggle dual pane + + + Toggle dual pane mode + No preview available @@ -2012,11 +2027,23 @@ Behaviors - - Review Files + + Hello! - - Would you like to review Files? + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us + + + Dismiss Set as background @@ -2421,31 +2448,31 @@ Toggle whether to show sidebar - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Copy path of the current directory to the clipboard + Copy path of the current directory - Copy path of selected items to the clipboard + Copy path of selected items - Copy path of selected items with quotes to the clipboard + Copy path of selected items with quotes - Copy path of the current directory with quotes to the clipboard + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2568,13 +2595,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -3472,27 +3499,27 @@ Shown in a StatusCenter card. - Compressed {0} item(s) to "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressed {0} item(s) from "{1}" to "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error compressing {0} item(s) to "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to compress {0} item(s) from "{1}" to "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Compressing {0} item(s) to "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressing {0} item(s) from "{1}" to "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3559,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) to "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) from "{1}" to "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copied {0} item(s) to "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copied {0} item(s) from "{1}" to "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error copying {0} item(s) to "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to copy {0} item(s) from "{1}" to "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copying {0} item(s) to "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copying {0} item(s) from "{1}" to "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3651,55 @@ Shown in a StatusCenter card. - Canceled deleting {0} item(s) from "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleted {0} item(s) from "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Error deleting {0} item(s) from "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Failed to delete {0} item(s) from "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleting {0} item(s) from "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) to "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) from "{1}" to "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moved {0} item(s) to "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moved {0} item(s) from "{1}" to "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moving {0} item(s) to "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moving {0} item(s) from "{1}" to "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error moving {0} item(s) to "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to move {0} item(s) from "{1}" to "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3700,7 +3727,7 @@ Shown in a StatusCenter card. - {0}/{1} {0, plural, one {item} other {items}} processed + {0}/{1, plural, one {# item} other {# items}} processed Shown in a StatusCenter card. Used as "8/20 items processed" @@ -3746,7 +3773,7 @@ There was an error applying this tag - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Extract here (Smart) @@ -4015,17 +4042,17 @@ Tab actions menu - - Vertical pane + + Split vertically - Add vertical pane + Split pane vertically - - Horizontal pane + + Split horizontally - - Add horizontal pane + + Split pane horizontally Arrange vertically @@ -4039,8 +4066,8 @@ Arrange panes horizontally - - Add pane + + Split pane Show tab actions button in the title bar @@ -4048,8 +4075,11 @@ Arrange panes - - Default pane arrangement + + Default dual pane split direction + + + Dual pane mode Horizontal @@ -4066,9 +4096,6 @@ Navigate to the home page - - Show home button in address bar - Toolbars @@ -4208,9 +4235,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4233,11 +4257,56 @@ Show status center button - Status center progress ping + Status center progress ring Screen reader name for the status center progress ring Icon files This is the friendly name for a variety of different icon files. + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Signatures + + + Signature list + + + Issued by: + + + Issued to: + + + Valid from: + + + Valid to: + + + No signature was found. + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/es-419/Resources.resw b/src/Files.App/Strings/es-419/Resources.resw index 3871a6f136e7..d961adc3cc4f 100644 --- a/src/Files.App/Strings/es-419/Resources.resw +++ b/src/Files.App/Strings/es-419/Resources.resw @@ -124,7 +124,7 @@ Copiar ruta - Copy item path + Copiar ruta del elemento Copiar ruta con comillas @@ -166,7 +166,7 @@ Omitir - Select all + Seleccionar todo Invertir selección @@ -217,7 +217,7 @@ Mostrar todos los archivos y carpetas ocultos - Dot files + Mostrar archivos que comienzan con un punto Apariencia @@ -1089,13 +1089,19 @@ Mostrar panel de información - Mostrar/Ocultar panel de información con paneles de vista previa y detalles + Cambiar la visibilidad de los paneles de detalles/vista previa - Toggle toolbar + Mostrar/Ocultar barra de herramientas - Toggle visibility of the toolbar + Cambiar la visibilidad de la barra de herramientas + + + Mostrar/Ocultar cuadro del filtro + + + Cambiar la visibilidad del cuadro del filtro No hay vista previa disponible @@ -1398,7 +1404,7 @@ {0} elementos - Reopen tab + Volver a abrir la pestaña Cambiar nombre @@ -1605,7 +1611,7 @@ Reemplazar todos los permisos de objetos secundarios por permisos heredables de este objeto - Close pane + Cerrar panel Cambiar a modo superposición compacta @@ -2012,11 +2018,23 @@ Comportamiento - - Revisar Files + + ¡Hola! + + + ¿Disfrutando de Files? Por favor, considere hacer una reseña en Microsoft Store. + + + ¿Qué le parece Files? Considere la posibilidad de apoyar el proyecto en GitHub. + + + Patrocinador + + + Valórenos - - ¿Le gustaría hacer una reseña de Files? + + Descartar Establecer como fondo de pantalla @@ -2295,7 +2313,7 @@ Opciones del menú contextual - File extensions + Extensiones de archivo Formato @@ -2304,13 +2322,13 @@ Ayuda - Full screen + Pantalla completa ¿Está seguro que desea eliminar esta etiqueta? - Play + Reproducir Alto @@ -2370,7 +2388,7 @@ Aumentar tamaño - Sort direction + Sentido de la clasificación Nombre no válido @@ -2382,37 +2400,37 @@ Vídeos - Preview popup + Vista previa emergente Intercambiar superposición compacta - Open the online help page in your browser + Abrir la página de ayuda en línea en su navegador - Toggle full screen mode + Entrar/Salir de pantalla completa - Enter compact overlay mode + Entrar en superposición compacta - Exit compact overlay mode + Salir de superposición compacta - Toggle compact overlay mode + Entrar/Salir de superposición compacta - Start search in the OmniBar + Iniciar búsqueda en la barra unificada (omnibar) - Toggle visibility of hidden items + Cambiar la visibilidad de los elementos ocultos - Toggle visibility of dot files + Cambiar la visibilidad de los archivos de puntos - Toggle visibility of file extensions + Cambiar la visibilidad de las extensiones de archivo Activar el panel de vista previa para ver la vista previa del archivo @@ -2421,37 +2439,37 @@ Mostrar o no la barra lateral - Copy selected {0, plural, one {item} other {items}} to clipboard + Copiar {0, plural, one {elemento seleccionado} other {elementos seleccionados}} - Copiar la ruta de los elementos seleccionados al portapapeles + Copiar ruta del directorio actual - Copiar la ruta de los elementos seleccionados al portapapeles + Copiar ruta de los elementos seleccionados - Copiar entre comillas la ruta de los elementos seleccionados al portapapeles + Copiar ruta entre comillas de los elementos seleccionados - Copiar entre comillas la ruta de los elementos seleccionados al portapapeles + Copiar ruta entre comillas del directorio actual - Cut selected {0, plural, one {item} other {items}} to clipboard + Cortar {0, plural, one {elemento seleccionado} other {elementos seleccionados}} - Paste clipboard items to the current folder + Pegar elementos a la carpeta actual - Paste clipboard items to the current folder as shortcuts + Pegar elementos a la carpeta actual como accesos directos - Paste clipboard items to the selected folder + Pegar elementos a la carpeta seleccionada - Paste to selected folder + Pegar a la carpeta seleccionada - Delete selected {0, plural, one {item} other {items}} + Eliminar {0, plural, one {elemento seleccionado} other {elementos seleccionados}} Crear nueva carpeta @@ -2463,7 +2481,7 @@ Crear nuevo acceso directo de cualquier elemento - Empty the contents of Recycle Bin + Vaciar el contenido de la papelera de reciclaje Abrir el menú "Formatear unidad" para el elemento seleccionado @@ -2493,10 +2511,10 @@ Seleccionar todos los elementos - Invert selected items + Invertir elementos seleccionados - Clear selected items + Borrar elementos seleccionados Alternar selección de elementos @@ -2529,13 +2547,13 @@ Establecer la imagen seleccionada como fondo de la aplicación - Install font + Instalar fuente - Install driver + Instalar controlador - Install certificate + Instalar certificado Instala {0, plural, one {fuente seleccionada} other {fuentes seleccionadas}} @@ -2568,13 +2586,13 @@ Crea archivo zip con {0, plural, one {elemento seleccionado} other {elementos seleccionados}} - Extrae elementos desde {0, plural, one {archivo seleccionado} other {archivos seleccionados}} a cualquier carpeta + Extraer {0, plural, one {archivo seleccionado} other {archivos seleccionados}} en cualquier carpeta - Extrae elementos desde {0, plural, one {archivo seleccionado} other {archivos seleccionados}} a carpeta actual + Extraer {0, plural, one {archivo seleccionado} other {archivos seleccionados}} a la carpeta actual - Extrae elementos desde {0, plural, one {archivo seleccionado} other {archivos seleccionados}} a nueva carpeta + Extraer {0, plural, one {archivo seleccionado} other {archivos seleccionados}} en una nueva carpeta Gira {0, plural, one {imagen seleccionada} other {imágenes seleccionadas}} a la izquierda @@ -2703,10 +2721,10 @@ Abrir una nueva pestaña - Navigate backward + Navegar hacia atrás - Navigate forward + Navegar hacia adelante Navegar hacia arriba un directorio @@ -2739,7 +2757,7 @@ Cerrar todas las pestañas incluyendo la actual - Reopen recently closed tab + Reabrir la pestaña recientemente cerrada Mover a la pestaña anterior @@ -2751,13 +2769,13 @@ Cerrar pestaña actual - Close the active pane + Cerrar el panel activo Enfocar otro panel - Switch focus to the other pane + Cambiar foco al otro panel Ocultar/mostrar barra lateral @@ -2965,13 +2983,13 @@ Sin etiquetar - Previous tab + Pestaña anterior - Next tab + Pestaña siguiente - Close tab + Cerrar pestaña Editar ruta @@ -3001,7 +3019,7 @@ Mostrar casillas de verificación al seleccionar elementos - Edit path in the OmniBar + Editar ruta en la barra unificada (omnibar) Crear nuevo elemento @@ -3016,7 +3034,7 @@ Eliminar permanentemente - Delete selected {0, plural, one {item} other {items}} permanently + Eliminar {0, plural, one {elemento seleccionado} other {elementos seleccionados}} permanentemente Reproducir los archivos multimedia seleccionados @@ -3281,7 +3299,7 @@ Inicializar repositorio - Initialize current folder as a git repository + Inicializar la carpeta actual como repositorio git Nombre del repositorio remoto @@ -3296,13 +3314,13 @@ Ordenar elementos por ruta - Open selected directory in a new pane + Abrir directorio seleccionado en un nuevo panel - Open selected directory in a new tab + Abrir directorio seleccionado en una nueva pestaña - Open selected directory in a new window + Abrir directorio seleccionado en una ventana nueva Abrir todo @@ -3327,10 +3345,10 @@ El comando '{0}' no está listo para ser ejecutado. - Command Palette + Paleta de Comandos - Open Command Palette in the OmniBar + Abrir paleta de comandos en la barra unificada (omnibar) Iniciar en: @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Comprimido(s) {0} elemento(s) en "{1}" + Comprimido {0, plural, one {# elemento} other {# elementos}} en "{1}" Shown in a StatusCenter card. - Comprimido(s) {0} elemento(s) desde "{1}" a "{2}" + {0, plural, one {Comprimido # elemento} other {Comprimidos # elementos}} desde "{1}" a "{2}" Shown in a StatusCenter card. - Error al comprimir {0} elemento(s) en "{1}" + Error comprimiendo {0, plural, one {# elemento} other {# elementos}} en "{1}" Shown in a StatusCenter card. - No se pudo comprimir {0} elemento(s) desde "{1}" a "{2}" + {0, plural, one {No se pudo comprimir # elemento} other {No se pudieron comprimir # elementos}} desde "{1}" a "{2}" Shown in a StatusCenter card. - Comprimiendo {0} elemento(s) en "{1}" + Comprimiendo {0, plural, one {# elemento} other {# elementos}} en "{1}" Shown in a StatusCenter card. - Comprimiendo {0} elemento(s) desde "{1}" a "{2}" + Comprimiendo {0, plural, one {# elemento} other {# elementos}} desde "{1}" a "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Cancelada la instalación de {0} fuente(s) desde "{1}" + Cancelada la instalación de {0, plural, one {# fuente} other {# fuentes}} desde "{1}" Shown in a StatusCenter card. - Instalada(s) {0} fuente(s) + {0, plural, one {# Fuente instalada} other {# Fuentes instaladas}} Shown in a StatusCenter card. - Instalada(s) {0} fuente(s) desde "{1}" + {0, plural, one {# Fuente instalada} other {# Fuentes instaladas}} desde "{1}" Shown in a StatusCenter card. - Error instalando {0} fuente(s) + Error instalando {0, plural, one {# fuente} other {# fuentes}} Shown in a StatusCenter card. - No se ha(n) podido instalar {0} fuente(s) desde "{1}" + {0, plural, one {No se pudo instalar # fuente} other {No se pudieron instalar # fuentes}} desde "{1}" Shown in a StatusCenter card. - Instalando {0} fuente(s) + Instalando {0, plural, one {# fuente} other {# fuentes}} Shown in a StatusCenter card. - Instalando {0} fuente(s) desde "{1}" + Instalando {0, plural, one {# fuente} other {# fuentes}} desde "{1}" Shown in a StatusCenter card. - Cancelada la copia de {0} elemento(s) en "{1}" + Cancelada la copia de {0, plural, one {# elemento} other {# elementos}} a "{1}" Shown in a StatusCenter card. - Cancelada la copia de {0} elemento(s) desde "{1}" a "{2}" + Cancelada la copia de {0, plural, one {# elemento} other {# elementos}} desde "{1}" a "{2}" Shown in a StatusCenter card. - Copiado(s) {0} elemento(s) en "{1}" + {0, plural, one {Copiado # elemento} other {Copiados # elementos}} a "{1}" Shown in a StatusCenter card. - Copiado(s) {0} elemento(s) desde "{1}" a "{2}" + {0, plural, one {Copiado # elemento} other {Copiados # elementos}} desde "{1}" a "{2}" Shown in a StatusCenter card. - Error al copiar {0} elemento(s) en "{1}" + Error copiando {0, plural, one {# elemento} other {# elementos}} a "{1}" Shown in a StatusCenter card. - No se pudo copiar {0} elemento(s) desde "{1}" a "{2}" + {0, plural, one {No se pudo copiar # elemento} other {No se pudieron copiar # elementos}} desde "{1}" a "{2}" Shown in a StatusCenter card. - Copiando {0} elemento(s) en "{1}" + Copiando {0, plural, one {# elemento} other {# elementos}} a "{1}" Shown in a StatusCenter card. - Copiando {0} elemento(s) desde "{1}" a "{2}" + Copiando {0, plural, one {# elemento} other {# elementos}} desde "{1}" a "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Cancelada la eliminación de {0} elemento(s) desde "{1}" + Cancelada la eleiminación de {0, plural, one {# elemento} other {# elementos}} de "{1}" Shown in a StatusCenter card. - Eliminado(s) {0} elemento(s) desde "{1}" + {0, plural, one {Eliminado # elemento} other {Eliminados # elementos}} de "{1}" Shown in a StatusCenter card. - Error al eliminar {0} elemento(s) desde "{1}" + Error eliminando {0, plural, one {# elemento} other {# elementos}} de "{1}" Shown in a StatusCenter card. - No se ha(n) podido eliminar {0} elemento(s) desde {1}" + {0, plural, one {No se pudo eliminar # elemento} other {No se pudieron eliminar # elementos}} de "{1}" Shown in a StatusCenter card. - Eliminando {0} elemento(s) desde "{1}" + Eliminando {0, plural, one {# elemento} other {# elementos}} desde "{1}" Shown in a StatusCenter card. - Cancelado el movimiento de {0} elemento(s) a "{1}" + Cancelado el movimiento de {0, plural, one {# elemento} other {# elementos}} a "{1}" Shown in a StatusCenter card. - Cancelado el movimiento de {0} elemento(s) desde "{1}" a "{2}" + Cancelado el movimiento de {0, plural, one {# elemento} other {# elementos}} desde "{1}" a "{2}" Shown in a StatusCenter card. - Movido(s) {0} elemento(s) a "{1}" + {0, plural, one {Movido # elemento} other {Movidos # elementos}} a "{1}" Shown in a StatusCenter card. - Movido(s) {0} elemento(s) desde "{1}" a "{2}" + {0, plural, one {Movido # elemento} other {Movidos # elementos}} desde "{1}" a "{2}" Shown in a StatusCenter card. - Moviendo {0} elemento(s) a "{1}" + Moviendo {0, plural, one {# elemento} other {# elementos}} a "{1}" Shown in a StatusCenter card. - Moviendo {0} elemento(s) desde "{1}" a "{2}" + Moviendo {0, plural, one {# elemento} other {# elementos}} desde "{1}" a "{2}" Shown in a StatusCenter card. - Error al mover {0} elemento(s) a "{1}" + Error moviendo {0, plural, one {# elemento} other {# elementos}} a "{1}" Shown in a StatusCenter card. - No se pudo mover {0} elemento(s) desde "{1}" a "{2}" + {0, plural, one {No se pudo mover # elemento} other {No se pudieron mover # elementos}} desde "{1}" a "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ Se ha producido un error al aplicar esta etiqueta - Extrae elementos desde {0, plural, one {archivo seleccionado} other {archivos seleccionados}} a la carpeta actual para archivos de un solo elemento, o a una nueva carpeta para archivos de varios elementos + Extraer {0, plural, one {archivo seleccionado} other {archivos seleccionados}} aquí para un solo elemento o a una nueva carpeta para varios elementos Extraer aquí (Inteligente) @@ -3755,7 +3773,7 @@ Ordenar archivos y carpetas a la vez - Sort files and folders in the same list + Ordenar archivos y carpetas en la misma lista Ordenar primero los archivos @@ -4016,16 +4034,16 @@ Menú de acciones de pestaña - Vertical pane + Panel vertical - Add vertical pane + Añadir panel vertical - Horizontal pane + Panel horizontal - Add horizontal pane + Añadir panel horizontal Organizar verticalmente @@ -4066,9 +4084,6 @@ Ir a la página de inicio - - Mostrar el botón de inicio en la barra de direcciones - Barras de herramientas @@ -4118,10 +4133,10 @@ Cambiar siempre el foco a la pestaña recién creada - Toggle shelf pane + Mostrar/Ocultar panel estante - Toggle the visibility of the shelf pane + Cambiar la visibilidad del panel estante Mostrar interruptor del panel estante en la barra de direcciones @@ -4208,9 +4223,6 @@ Decimal - - Activar la barra de búsqueda unificada (omnibar) - Puede agregar secciones a la barra lateral haciendo clic derecho y seleccionando las secciones que desea agregar @@ -4226,4 +4238,42 @@ Buscar archivos y carpetas... + + Durante las operaciones de archivo + + + Mostrar botón del centro de estado + + + Anillo de progreso del centro de estado + Screen reader name for the status center progress ring + + + Archivos de iconos + This is the friendly name for a variety of different icon files. + + + Muestra la ruta de navegación contraída + + + Mostrar carpetas en {0} + + + Mostrar carpetas en Inicio + + + No hay comandos que contengan {0} + + + Ver más + + + Filtrar por + + + Nombre del archivo + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/es-ES/Resources.resw b/src/Files.App/Strings/es-ES/Resources.resw index bced333d25c9..b0ca26c42b5e 100644 --- a/src/Files.App/Strings/es-ES/Resources.resw +++ b/src/Files.App/Strings/es-ES/Resources.resw @@ -124,7 +124,7 @@ Copiar ruta - Copy item path + Copiar ruta del elemento Copiar la ruta entre comillas @@ -166,7 +166,7 @@ Omitir - Select all + Seleccionar todo Invertir selección @@ -217,7 +217,7 @@ Mostrar archivos y carpetas ocultos - Dot files + Mostrar archivos que comienzan con un punto Apariencia @@ -1089,13 +1089,19 @@ Mostrar/Ocultar panel de información - Mostrar/Ocultar panel de información para ver paneles detalles/vista previa + Cambiar la visibilidad de los paneles de detalles/vista previa - Toggle toolbar + Mostrar/Ocultar barra de herramientas - Toggle visibility of the toolbar + Cambiar la visibilidad de la barra de herramientas + + + Mostrar/Ocultar cuadro del filtro + + + Cambiar la visibilidad del cuadro del filtro No hay vista previa disponible @@ -1398,7 +1404,7 @@ {0} elementos - Reopen tab + Volver a abrir la pestaña Cambiar nombre @@ -1605,7 +1611,7 @@ Reemplazar todas las entradas de permisos de los objetos secundarios con entradas de permisos heredables de este objeto - Close pane + Cerrar panel Entrar en superposición compacta @@ -2012,11 +2018,23 @@ Comportamiento - - Revisar Files + + ¡Hola! + + + ¿Disfrutando de Files? Por favor, considere hacer una reseña en Microsoft Store. + + + ¿Qué le parece Files? Considere la posibilidad de apoyar el proyecto en GitHub. - - ¿Desea escribir una reseña sobre Files? + + Patrocinador + + + Valórenos + + + Descartar Establecer como fondo de pantalla @@ -2214,7 +2232,7 @@ Notas de la versión - Abre notas de la versión + Abrir notas de la versión Crear un acceso directo en esta ubicación requiere privilegios de administrador @@ -2295,7 +2313,7 @@ Opciones del menú contextual - File extensions + Extensiones de archivo Formatear @@ -2304,13 +2322,13 @@ Ayuda - Full screen + Pantalla completa ¿Está seguro que desea eliminar esta etiqueta? - Play + Reproducir Alto @@ -2370,7 +2388,7 @@ Aumentar tamaño - Sort direction + Sentido de la clasificación Nombre no válido @@ -2382,37 +2400,37 @@ Vídeos - Preview popup + Vista previa emergente Entrar/Salir de superposición compacta - Open the online help page in your browser + Abrir la página de ayuda en línea en su navegador - Toggle full screen mode + Entrar/Salir de pantalla completa - Enter compact overlay mode + Entrar en superposición compacta - Exit compact overlay mode + Salir de superposición compacta - Toggle compact overlay mode + Entrar/Salir de superposición compacta - Start search in the OmniBar + Iniciar búsqueda en la barra unificada (omnibar) - Toggle visibility of hidden items + Cambiar la visibilidad de los elementos ocultos - Toggle visibility of dot files + Cambiar la visibilidad de los archivos de puntos - Toggle visibility of file extensions + Cambiar la visibilidad de las extensiones de archivo Mostrar panel de vista previa para ver la vista previa del archivo @@ -2421,37 +2439,37 @@ Mostrar/Ocultar barra lateral - Copy selected {0, plural, one {item} other {items}} to clipboard + Copiar {0, plural, one {elemento seleccionado} other {elementos seleccionados}} - Copiar la ruta del directorio actual al portapapeles + Copiar ruta del directorio actual - Copiar la ruta de los elementos seleccionados al portapapeles + Copiar ruta de los elementos seleccionados - Copiar entre comillas la ruta de los elementos seleccionados al portapapeles + Copiar ruta entre comillas de los elementos seleccionados - Copiar entre comillas la ruta del directorio actual al portapapeles + Copiar ruta entre comillas del directorio actual - Cut selected {0, plural, one {item} other {items}} to clipboard + Cortar {0, plural, one {elemento seleccionado} other {elementos seleccionados}} - Paste clipboard items to the current folder + Pegar elementos a la carpeta actual - Paste clipboard items to the current folder as shortcuts + Pegar elementos a la carpeta actual como accesos directos - Paste clipboard items to the selected folder + Pegar elementos a la carpeta seleccionada - Paste to selected folder + Pegar a la carpeta seleccionada - Delete selected {0, plural, one {item} other {items}} + Eliminar {0, plural, one {elemento seleccionado} other {elementos seleccionados}} Crear nueva carpeta @@ -2463,7 +2481,7 @@ Crear nuevo acceso directo para cualquier elemento - Empty the contents of Recycle Bin + Vaciar el contenido de la papelera de reciclaje Abrir el menú "Formatear unidad" para el elemento seleccionado @@ -2475,7 +2493,7 @@ Restaurar todos los elementos de la papelera de reciclaje - Abre {0, plural, one {elemento} other {elementos}} + Abrir {0, plural, one {elemento} other {elementos}} Abre {0, plural, one {elemento} other {elementos}} con la aplicación seleccionada @@ -2493,10 +2511,10 @@ Seleccionar todos los elementos - Invert selected items + Invertir elementos seleccionados - Clear selected items + Borrar elementos seleccionados Seleccionar/No selecionar elemento @@ -2505,16 +2523,16 @@ Comparte {0, plural, one {archivo seleccionado} other {archivos seleccionados}} con otros - Ancla {0, plural, one {elemento} other {elementos}} al Menú Inicio + Anclar {0, plural, one {elemento} other {elementos}} al Menú Inicio Desanclar {0, plural, one {elemento} other {elementos}} del Menú Inicio - Ancla {0, plural, one {carpeta} other {carpetas}} a la Barra lateral + Anclar {0, plural, one {carpeta} other {carpetas}} a la Barra lateral - Desancla {0, plural, one {carpeta} other {carpetas}} de la Barra lateral + Desanclar {0, plural, one {carpeta} other {carpetas}} de la Barra lateral Establecer imagen seleccionada como fondo de escritorio @@ -2529,13 +2547,13 @@ Establecer imagen seleccionada como fondo de la aplicación - Install font + Instalar fuente - Install driver + Instalar controlador - Install certificate + Instalar certificado Instala {0, plural, one {fuente seleccionada} other {fuentes seleccionadas}} @@ -2559,22 +2577,22 @@ Abrir vista previa en ventana emergente - Crea archivo con {0, plural, one {elemento seleccionado} other {elementos seleccionados}} + Crear archivo con {0, plural, one {elemento seleccionado} other {elementos seleccionados}} - Crea archivo 7z con {0, plural, one {elemento seleccionado} other {elementos seleccionados}} + Crear archivo 7z con {0, plural, one {elemento seleccionado} other {elementos seleccionados}} - Crea archivo zip con {0, plural, one {elemento seleccionado} other {elementos seleccionados}} + Crear archivo zip con {0, plural, one {elemento seleccionado} other {elementos seleccionados}} - Extrae elementos desde {0, plural, one {archivo seleccionado} other {archivos seleccionados}} a cualquier carpeta + Extraer {0, plural, one {archivo seleccionado} other {archivos seleccionados}} en cualquier carpeta - Extrae elementos desde {0, plural, one {archivo seleccionado} other {archivos seleccionados}} a carpeta actual + Extraer {0, plural, one {archivo seleccionado} other {archivos seleccionados}} a la carpeta actual - Extrae elementos desde {0, plural, one {archivo seleccionado} other {archivos seleccionados}} a nueva carpeta + Extraer {0, plural, one {archivo seleccionado} other {archivos seleccionados}} en una nueva carpeta Gira {0, plural, one {imagen seleccionada} other {imágenes seleccionadas}} a la izquierda @@ -2703,10 +2721,10 @@ Abrir una nueva pestaña - Navigate backward + Navegar hacia atrás - Navigate forward + Navegar hacia adelante Subir un directorio @@ -2739,7 +2757,7 @@ Cerrar todas las pestañas incluyendo la actual - Reopen recently closed tab + Reabrir la pestaña recientemente cerrada Mover a la pestaña anterior @@ -2751,13 +2769,13 @@ Cerrar pestaña actual - Close the active pane + Cerrar el panel activo Enfocar otro panel - Switch focus to the other pane + Cambiar foco al otro panel Mostrar/Ocultar barra lateral @@ -2965,13 +2983,13 @@ Sin etiquetar - Previous tab + Pestaña anterior - Next tab + Pestaña siguiente - Close tab + Cerrar pestaña Editar ruta @@ -3001,7 +3019,7 @@ Mostrar casillas de verificación al seleccionar elementos - Edit path in the OmniBar + Editar ruta en la barra unificada (omnibar) Crear nuevo elemento @@ -3016,7 +3034,7 @@ Eliminar permanentemente - Delete selected {0, plural, one {item} other {items}} permanently + Eliminar {0, plural, one {elemento seleccionado} other {elementos seleccionados}} permanentemente Reproducir los archivos multimedia seleccionados @@ -3281,7 +3299,7 @@ Inicializar repositorio - Initialize current folder as a git repository + Inicializar la carpeta actual como repositorio git Nombre del repositorio remoto @@ -3296,13 +3314,13 @@ Ordenar elementos por ruta - Open selected directory in a new pane + Abrir directorio seleccionado en un nuevo panel - Open selected directory in a new tab + Abrir directorio seleccionado en una nueva pestaña - Open selected directory in a new window + Abrir directorio seleccionado en una ventana nueva Abrir todo @@ -3327,10 +3345,10 @@ El comando '{0}' no está listo para ser ejecutado. - Command Palette + Paleta de Comandos - Open Command Palette in the OmniBar + Abrir paleta de comandos en la barra unificada (omnibar) Iniciar en: @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Comprimido(s) {0} elemento(s) en "{1}" + Comprimido {0, plural, one {# elemento} other {# elementos}} en "{1}" Shown in a StatusCenter card. - Comprimido(s) {0} elemento(s) desde "{1}" a "{2}" + {0, plural, one {Comprimido # elemento} other {Comprimidos # elementos}} desde "{1}" a "{2}" Shown in a StatusCenter card. - Error al comprimir {0} elemento(s) en "{1}" + Error comprimiendo {0, plural, one {# elemento} other {# elementos}} en "{1}" Shown in a StatusCenter card. - No se ha(n) podido comprimir {0} elemento(s) desde "{1}" a "{2}" + {0, plural, one {No se pudo comprimir # elemento} other {No se pudieron comprimir # elementos}} desde "{1}" a "{2}" Shown in a StatusCenter card. - Comprimiendo {0} elemento(s) en "{1}" + Comprimiendo {0, plural, one {# elemento} other {# elementos}} en "{1}" Shown in a StatusCenter card. - Comprimiendo {0} elemento(s) desde "{1}" a "{2}" + Comprimiendo {0, plural, one {# elemento} other {# elementos}} desde "{1}" a "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Cancelada la instalación de {0} fuente(s) desde "{1}" + Cancelada la instalación de {0, plural, one {# fuente} other {# fuentes}} desde "{1}" Shown in a StatusCenter card. - Instalada(s) {0} fuente(s) + {0, plural, one {# Fuente instalada} other {# Fuentes instaladas}} Shown in a StatusCenter card. - Instalada(s) {0} fuente(s) desde "{1}" + {0, plural, one {# Fuente instalada} other {# Fuentes instaladas}} desde "{1}" Shown in a StatusCenter card. - Error instalando {0} fuente(s) + Error instalando {0, plural, one {# fuente} other {# fuentes}} Shown in a StatusCenter card. - No se ha(n) podido instalar {0} fuente(s) desde "{1}" + {0, plural, one {No se pudo instalar # fuente} other {No se pudieron instalar # fuentes}} desde "{1}" Shown in a StatusCenter card. - Instalando {0} fuente(s) + Instalando {0, plural, one {# fuente} other {# fuentes}} Shown in a StatusCenter card. - Instalando {0} fuente(s) desde "{1}" + Instalando {0, plural, one {# fuente} other {# fuentes}} desde "{1}" Shown in a StatusCenter card. - Cancelada la copia de {0} elemento(s) en "{1}" + Cancelada la copia de {0, plural, one {# elemento} other {# elementos}} a "{1}" Shown in a StatusCenter card. - Cancelada la copia de {0} elemento(s) desde "{1}" a "{2}" + Cancelada la copia de {0, plural, one {# elemento} other {# elementos}} desde "{1}" a "{2}" Shown in a StatusCenter card. - Copiado(s) {0} elemento(s) en "{1}" + {0, plural, one {Copiado # elemento} other {Copiados # elementos}} a "{1}" Shown in a StatusCenter card. - Copiado(s) {0} elemento(s) desde "{1}" a "{2}" + {0, plural, one {Copiado # elemento} other {Copiados # elementos}} desde "{1}" a "{2}" Shown in a StatusCenter card. - Error al copiar {0} elemento(s) en "{1}" + Error copiando {0, plural, one {# elemento} other {# elementos}} a "{1}" Shown in a StatusCenter card. - No se ha(n) podido copiar {0} elemento(s) desde "{1}" a "{2}" + {0, plural, one {No se pudo copiar # elemento} other {No se pudieron copiar # elementos}} desde "{1}" a "{2}" Shown in a StatusCenter card. - Copiando {0} elemento(s) en "{1}" + Copiando {0, plural, one {# elemento} other {# elementos}} a "{1}" Shown in a StatusCenter card. - Copiando {0} elemento(s) desde "{1}" a "{2}" + Copiando {0, plural, one {# elemento} other {# elementos}} desde "{1}" a "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Cancelada la eliminación de {0} elemento(s) desde "{1}" + Cancelada la eleiminación de {0, plural, one {# elemento} other {# elementos}} de "{1}" Shown in a StatusCenter card. - Eliminado(s) {0} elemento(s) desde "{1}" + {0, plural, one {Eliminado # elemento} other {Eliminados # elementos}} de "{1}" Shown in a StatusCenter card. - Error al eliminar {0} elemento(s) desde "{1}" + Error eliminando {0, plural, one {# elemento} other {# elementos}} de "{1}" Shown in a StatusCenter card. - No se ha(n) podido eliminar {0} elemento(s) desde {1}" + {0, plural, one {No se pudo eliminar # elemento} other {No se pudieron eliminar # elementos}} de "{1}" Shown in a StatusCenter card. - Eliminando {0} elemento(s) desde "{1}" + Eliminando {0, plural, one {# elemento} other {# elementos}} desde "{1}" Shown in a StatusCenter card. - Cancelado el movimiento de {0} elemento(s) a "{1}" + Cancelado el movimiento de {0, plural, one {# elemento} other {# elementos}} a "{1}" Shown in a StatusCenter card. - Cancelado el movimiento de {0} elemento(s) desde "{1}" a "{2}" + Cancelado el movimiento de {0, plural, one {# elemento} other {# elementos}} desde "{1}" a "{2}" Shown in a StatusCenter card. - Movido(s) {0} elemento(s) a "{1}" + {0, plural, one {Movido # elemento} other {Movidos # elementos}} a "{1}" Shown in a StatusCenter card. - Movido(s) {0} elemento(s) desde "{1}" a "{2}" + {0, plural, one {Movido # elemento} other {Movidos # elementos}} desde "{1}" a "{2}" Shown in a StatusCenter card. - Moviendo {0} elemento(s) a "{1}" + Moviendo {0, plural, one {# elemento} other {# elementos}} a "{1}" Shown in a StatusCenter card. - Moviendo {0} elemento(s) desde "{1}" a "{2}" + Moviendo {0, plural, one {# elemento} other {# elementos}} desde "{1}" a "{2}" Shown in a StatusCenter card. - Error al mover {0} elemento(s) a "{1}" + Error moviendo {0, plural, one {# elemento} other {# elementos}} a "{1}" Shown in a StatusCenter card. - No se ha(n) podido mover {0} elemento(s) desde "{1}" a "{2}" + {0, plural, one {No se pudo mover # elemento} other {No se pudieron mover # elementos}} desde "{1}" a "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ Se ha producido un error al aplicar esta etiqueta - Extrae elementos desde {0, plural, one {archivo seleccionado} other {archivos seleccionados}} a la carpeta actual para archivos de un solo elemento, o a una nueva carpeta para archivos de varios elementos + Extraer {0, plural, one {archivo seleccionado} other {archivos seleccionados}} aquí para un solo elemento o a una nueva carpeta para varios elementos Extraer aquí (Inteligente) @@ -3755,7 +3773,7 @@ Ordenar archivos y carpetas a la vez - Sort files and folders in the same list + Ordenar archivos y carpetas en la misma lista Ordenar con archivos al principio @@ -4016,16 +4034,16 @@ Menú de acciones de pestaña - Vertical pane + Panel vertical - Add vertical pane + Añadir panel vertical - Horizontal pane + Panel horizontal - Add horizontal pane + Añadir panel horizontal Organizar verticalmente @@ -4066,9 +4084,6 @@ Ir a la página de inicio - - Mostrar el botón de inicio en la barra de direcciones - Barra de herramientas @@ -4118,10 +4133,10 @@ Cambiar siempre el foco a la pestaña recién creada - Toggle shelf pane + Mostrar/Ocultar panel estante - Toggle the visibility of the shelf pane + Cambiar la visibilidad del panel estante Mostrar interruptor del panel estante en la barra de direcciones @@ -4208,9 +4223,6 @@ Decimal - - Activar la barra de búsqueda unificada (omnibar) - Puede agregar secciones a la barra lateral haciendo clic derecho y seleccionando las secciones que desea agregar @@ -4226,4 +4238,42 @@ Buscar archivos y carpetas... + + Durante las operaciones de archivo + + + Mostrar botón del centro de estado + + + Anillo de progreso del centro de estado + Screen reader name for the status center progress ring + + + Archivos de iconos + This is the friendly name for a variety of different icon files. + + + Muestra la ruta de navegación contraída + + + Mostrar carpetas en {0} + + + Mostrar carpetas en Inicio + + + No hay comandos que contengan {0} + + + Ver más + + + Filtrar por + + + Nombre del archivo + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/fa-IR/Resources.resw b/src/Files.App/Strings/fa-IR/Resources.resw index 44c59136deab..0a3966312650 100644 --- a/src/Files.App/Strings/fa-IR/Resources.resw +++ b/src/Files.App/Strings/fa-IR/Resources.resw @@ -217,7 +217,7 @@ نمایش فایل ها و فولدرهای مخفی - Dot files + Show dot files ظاهر @@ -1089,7 +1089,7 @@ نمایش جداره‌ی اطلاعات - صفحه اطلاعات برای مشاهده پنجره‌های جزئیات یا پیش‌نمایش می آورد + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1097,6 +1097,12 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + پیش نمایشی در دسترس نیست @@ -2012,11 +2018,23 @@ رفتارها - - بررسی فایل ها + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us - - آیا میخواهید برای Files ثبت نظر کنید؟ + + Dismiss تنظیم بعنوان پس زمینه @@ -2421,31 +2439,31 @@ Toggle whether to show sidebar - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Copy path of selected items to the clipboard + Copy path of the current directory - Copy path of selected items to the clipboard + Copy path of selected items - Copy path of selected items with quotes to the clipboard + Copy path of selected items with quotes - مسیر موارد انتخاب شده را با نقل قول در کلیپ بورد کپی کنید + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Compressed {0} item(s) to "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressed {0} item(s) from "{1}" to "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error compressing {0} item(s) to "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - فشرده سازی {0} آیتم از «{1}» به «{2}» انجام نشد + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Compressing {0} item(s) to "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressing {0} item(s) from "{1}" to "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) to "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - کپی {0} آیتم از «{1}» به «{2}» لغو شد + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copied {0} item(s) to "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copied {0} item(s) from "{1}" to "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error copying {0} item(s) to "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to copy {0} item(s) from "{1}" to "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copying {0} item(s) to "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copying {0} item(s) from "{1}" to "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Canceled deleting {0} item(s) from "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleted {0} item(s) from "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Error deleting {0} item(s) from "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Failed to delete {0} item(s) from "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleting {0} item(s) from "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) to "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) from "{1}" to "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moved {0} item(s) to "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moved {0} item(s) from "{1}" to "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moving {0} item(s) to "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moving {0} item(s) from "{1}" to "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error moving {0} item(s) to "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to move {0} item(s) from "{1}" to "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ There was an error applying this tag - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Extract here (Smart) @@ -4066,9 +4084,6 @@ Navigate to the home page - - Show home button in address bar - Toolbars @@ -4208,9 +4223,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/fi-FI/Resources.resw b/src/Files.App/Strings/fi-FI/Resources.resw index 9354bdc702d6..73665df82c6a 100644 --- a/src/Files.App/Strings/fi-FI/Resources.resw +++ b/src/Files.App/Strings/fi-FI/Resources.resw @@ -124,7 +124,7 @@ Kopioi polku - Copy item path + Kopioi kohteen polku Kopioi polku lainausmerkeillä @@ -166,7 +166,7 @@ Ohita - Select all + Valitse kaikki Käännä valinta @@ -217,7 +217,7 @@ Näytä piilotetut tiedostot ja kansiot - Dot files + Show dot files Ulkoasu @@ -1089,13 +1089,19 @@ Vaihda tietoruudun tilaa - Vaihda tietoruutu näyttämään tiedot- tai esikatseluruutu + Toggle visibility of the detail/preview panes - Toggle toolbar + Näytä/piilota työkalupalkki - Toggle visibility of the toolbar + Näytä tai piilota työkalupalkki + + + Toggle filter header + + + Toggle visibility of the filter header Esikatselua ei ole saatavilla @@ -1398,7 +1404,7 @@ {0} kohdetta - Reopen tab + Avaa välilehti uudelleen Nimeä uudelleen @@ -1605,7 +1611,7 @@ Korvaa kaikki aliobjektin käyttöoikeusmerkinnät tämän objektin periytyvillä käyttöoikeusmerkinnöillä - Close pane + Sulje ruutu Siirry suppeaan asetteluun @@ -2012,11 +2018,23 @@ Toiminnat - - Arvostele Files + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us - - Haluatko arvioida Filesin? + + Dismiss Aseta taustakuvaksi @@ -2295,7 +2313,7 @@ Kontekstivalikon asetukset - File extensions + Tiedostopäätteet Muoto @@ -2304,13 +2322,13 @@ Tuki - Full screen + Koko näyttö Haluatko varmasti poistaa tämän tunnisteen? - Play + Toista Korkeus @@ -2370,7 +2388,7 @@ Suurenna kokoa - Sort direction + Lajittelun suunta Virheellinen nimi @@ -2382,22 +2400,22 @@ Videot - Preview popup + Esikatselun ponnahdusikkuna Kytke suppea asettelu päälle/pois - Open the online help page in your browser + Avaa online-ohjesivu selaimessa - Toggle full screen mode + Ota koko näytön tila käyttöön tai poista se käytöstä - Enter compact overlay mode + Siirry tiiviiseen peittotilaan - Exit compact overlay mode + Poistu tiiviistä peittotilasta Toggle compact overlay mode @@ -2421,31 +2439,31 @@ Valitse, näytetäänkö sivupalkki - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Kopioi valittujen kohteiden polut leikepöydälle + Copy path of the current directory - Kopioi valittujen kohteiden polut leikepöydälle + Copy path of selected items - Kopioi valittujen kohteiden polut lainausmerkein leikepöydälle + Copy path of selected items with quotes - Kopioi valittujen kohteiden polut lainausmerkeillä leikepöydälle + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2568,13 +2586,13 @@ Luo zip-arkisto {0, plural, one {valitusta kohteesta} other {valituista kohteista}} - Pura kohteet {0, plural, one {valitusta arkistosta} other {valituista arkistoista}} kansioon + Extract selected {0, plural, one {archive} other {archives}} to any folder - Pura kohteet {0, plural, one {valitusta arkistosta} other {valituista arkistoista}} nykyiseen kansioon + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Pura kohteet {0, plural, one {valitusta arkistosta} other {valituista arkistoista}} uuteen kansioon + Extract selected {0, plural, one {archive} other {archives}} to new folder Käännä {0, plural, one {valittua kuvaa} other {valittuja kuvia}} vasemmalle @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Pakattu {0} kohdetta kansioon "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Pakattu {0} kohdetta kansiosta "{1}" kansioon "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Virhe pakattaessa {0} kohdetta kansioon "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} kohteen pakkaaminen epäonnistui kansiosta "{1}" kansioon "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Pakataan {0} kohdetta kansioon "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Pakataan {0} kohdetta kansiosta "{1}" kansioon "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - {0} fontin asennus peruutettu kohteesta "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - {0} fontti(a) asennettu + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Asennettu {0} fontti(a) kohteesta "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Virhe asennettaessa {0} fonttia + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - {0} fontin asennus epäonnistui kohteesta "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Asennetaan {0} fontti(a) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Asennetaan {0} fontti(a) kohteesta "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - {0} kohteen kopiointi peruutettu kansioon "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} kohteen kopiointi peruutettu kansiosta "{1}" kansioon "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Kopioitu {0} kohdetta kansioon "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Kopioitu {0} kohdetta kansiosta "{1}" kansioon "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Virhe kopioitaessa {0} kohdetta kansioon "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} kohteen kopiointi epäonnistui kansiosta "{1}" kansioon "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Kopioidaan {0} kohdetta kansioon "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Kopioidaan {0} kohdetta kansiosta "{1}" kansioon "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Peruutettu {0} kohteen poisto kansiosta "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Poistettu {0} kohde(tta) kansiosta "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Virhe poistettaessa {0} kohde(tta) kansiosta "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - {0} kohteen poistaminen epäonnistui kansiosta "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Poistetaan {0} kohde(tta) kansiosta "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Peruutettiin {0} kohteen siirtäminen kansioon "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Peruutettiin {0} kohteen siirtäminen kansiosta "{1}" kansioon "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Siirrettiin {0} kohdetta kansioon "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Siirrettiin {0} kohdetta kansiosta "{1}" kansioon "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Siirretään {0} kohdetta kansioon "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Siirretään {0} kohdetta kansiosta "{1}" kansioon "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Virhe siirrettäessä {0} kohdetta kansioon "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} kohteen siirtäminen kansiosta "{1}" kansioon "{2}" epäonnistui + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ Virhe otettaessa käyttöön tätä tunnistetta - Pura kohteet {0, plural, one {valitusta arkistosta} other {valituista arkistoista}} nykyiseen kansioon, jos arkisto sisältää vain yhden kohteen tai uuteen kansioon, jos kohteita on useita + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Pura tänne (älykäs) @@ -4066,9 +4084,6 @@ Siirry kotisivulle - - Näytä kotipainike osoitepalkissa - Työkalupalkit @@ -4208,9 +4223,6 @@ Decimal - - Enable Omnibar - Voit lisätä osioita sivupalkkiin napsauttamalla hiiren oikealla painikkeella ja valitsemalla ne @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/fil-PH/Resources.resw b/src/Files.App/Strings/fil-PH/Resources.resw index 05b3fa8643fd..7f68741c05d5 100644 --- a/src/Files.App/Strings/fil-PH/Resources.resw +++ b/src/Files.App/Strings/fil-PH/Resources.resw @@ -124,13 +124,13 @@ Kopyahin ang daan - Copy item path + Kopyahin ang Path - Copy selected item path with quotes + Kopyahin ang path ng item kasama ang quotes Mag-browse @@ -166,7 +166,7 @@ Laktawan - Select all + Piliin lahat @@ -217,13 +217,13 @@ Ipakita ang mga natatagong file at folder - Dot files + Show dot files Hitsura - Background color + Kulay ng background Pinahusay @@ -256,7 +256,7 @@ I-paste - Paste shortcut + I-paste ang shortcut Bago @@ -289,7 +289,7 @@ Maligayang pagdating sa Files! - Grant permission + Bigyan ng permiso Upang makapagsimula, kakailanganin mong bigyan kami ng pahintulot na ipakita ang iyong mga file. Magbubukas ito ng setting kung saan maaari mong ibigay sa amin ang pahintulot na ito. Kakailanganin mong muling buksan ang app kapag nakumpleto mo na ang hakbang na ito. @@ -301,7 +301,7 @@ Pangalanan ang bagay - Create new {0} + Gumawa ng bagong Item {0} Maliwanag @@ -316,10 +316,10 @@ Sistema - New folder + Bagong folder - New file + Bagong file Walang laman ang folder na ito. @@ -349,7 +349,7 @@ I-set bilang background ng lock screen - Set as app background + I-set bilang app background Hindi namin natanggal ang item na ito @@ -358,13 +358,13 @@ Mangyaring ipasok ang kinakailangang drive upang ma-access ang item na ito. - Drive unplugged + Natanggal ang Drive Ang file na iyong sinusubukang i-access ay maaaring nailipat o nabura na. - Cannot open properties for this file + Hindi mabuksan ang properties para sa file na ito Ang file na iyong sinusubukang i-access ay maaaring nailipat o nabura na. @@ -394,28 +394,28 @@ Pagbasa-lamang - {0, plural, one {# day ago} other {# days ago}} + {0, plural, one {# na araw} other {# na mga araw}} - 1 day ago + 1 araw na nakalipas - {0} days ago + {0} mga araw ang nakalipas - {0, plural, one {# hour ago} other {# hours ago}} + {0, plural, one {# na oras} other {# na mga oras}} - 1 hour ago + 1 oras na nakalipas - {0} hours ago + {0} mga oras ang nakalipas - {0, plural, one {# minute ago} other {# minutes ago}} + {0, plural, one {# na minuto} other {# na mga minuto}} - 1 minute ago + 1 minuto ang nakaraan {0} minutes ago @@ -1089,7 +1089,7 @@ Toggle the info pane - Toggle the info pane to view the detail/preview panes + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1097,6 +1097,12 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + Walang available na preview @@ -2012,11 +2018,23 @@ Mga pag-uugali - - Suriin ang Files + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us - - Gusto mo bang suriin ang Files? + + Dismiss Itakda bilang background @@ -2421,31 +2439,31 @@ Pindutin maalin kung ipakita ang sidebar - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Copy path of selected items to the clipboard + Copy path of the current directory - Copy path of selected items to the clipboard + Copy path of selected items - Copy path of selected items with quotes to the clipboard + Copy path of selected items with quotes - Copy path of selected items with quotes to the clipboard + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Compressed {0} item(s) to "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressed {0} item(s) from "{1}" to "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error compressing {0} item(s) to "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to compress {0} item(s) from "{1}" to "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Compressing {0} item(s) to "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressing {0} item(s) from "{1}" to "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) to "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) from "{1}" to "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copied {0} item(s) to "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copied {0} item(s) from "{1}" to "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error copying {0} item(s) to "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to copy {0} item(s) from "{1}" to "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copying {0} item(s) to "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copying {0} item(s) from "{1}" to "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Canceled deleting {0} item(s) from "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleted {0} item(s) from "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Error deleting {0} item(s) from "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Failed to delete {0} item(s) from "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleting {0} item(s) from "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) to "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) from "{1}" to "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moved {0} item(s) to "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moved {0} item(s) from "{1}" to "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moving {0} item(s) to "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moving {0} item(s) from "{1}" to "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error moving {0} item(s) to "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to move {0} item(s) from "{1}" to "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ There was an error applying this tag - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Extract here (Smart) @@ -4066,9 +4084,6 @@ Navigate to the home page - - Show home button in address bar - Toolbars @@ -4208,9 +4223,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/fr-FR/Resources.resw b/src/Files.App/Strings/fr-FR/Resources.resw index 66b6716aacc4..5b140c56fd80 100644 --- a/src/Files.App/Strings/fr-FR/Resources.resw +++ b/src/Files.App/Strings/fr-FR/Resources.resw @@ -124,7 +124,7 @@ Copier le chemin - Copy item path + Copier le chemin de l'élément Copier le chemin entre guillemets @@ -166,7 +166,7 @@ Passer - Select all + Tout sélectionner Inverser la sélection @@ -217,7 +217,7 @@ Afficher les fichiers et dossiers cachés - Dot files + Afficher les fichiers dont le nom commence par un point Apparence @@ -771,7 +771,7 @@ Format - Taux d'échantillonnage + Fréquence d'échantillonnage Artiste de l'album @@ -1089,13 +1089,19 @@ Afficher/Masquer le volet d'informations - Afficher/Masquer le volet d'informations pour afficher les volets de détails/aperçu + Activer/Désactiver la visibilité des panneaux de détails/aperçu - Toggle toolbar + Afficher/Masquer la barre d'outils - Toggle visibility of the toolbar + Activer/Désactiver la visibilité de la barre d'outils + + + Afficher/Masquer l'en-tête de filtrage + + + Activer/Désactiver la visibilité de l'en-tête de filtrage Pas d'aperçu disponible @@ -1203,7 +1209,7 @@ Arguments - Défaut + Par défaut Nombre d'éléments @@ -1398,7 +1404,7 @@ {0} éléments - Reopen tab + Restaurer l'onglet Renommer @@ -1605,7 +1611,7 @@ Remplacer toutes les autorisations des sous-éléments par des autorisations héritées de cet objet - Close pane + Fermer le volet Entrer en mode compact @@ -1998,10 +2004,10 @@ Adapter la largeur des colonnes - Adaptatif + Disposition adaptative - Adaptatif (Ctrl+Maj+7) + Adaptative (Ctrl+Maj+7) Ctrl+Maj+7 @@ -2012,11 +2018,23 @@ Comportements - - Évaluer Files + + Bonjour ! + + + Vous appréciez Files ? Pensez à laisser un avis dans le Microsoft Store. + + + Vous appréciez Files ? Pensez à soutenir le projet sur GitHub. - - Souhaitez-vous laisser une évaluation de Files ? + + Sponsor + + + Laisser un avis + + + Ignorer Définir comme fond d'écran @@ -2079,7 +2097,7 @@ Restaurer tous les éléments - Veux-tu restaurer {0, plural, one {l’élément sélectionné} other {{0} éléments sélectionnés}} ? + Veux-tu restaurer {0, plural, one {l'élément sélectionné} other {{0} éléments sélectionnés}} ? Restaurer la sélection @@ -2268,7 +2286,7 @@ Version de l'application - Version Windows + Version de Windows Toujours @@ -2295,7 +2313,7 @@ Options du menu contextuel - File extensions + Extensions de fichiers Formater @@ -2304,13 +2322,13 @@ Aide - Full screen + Plein écran Êtes-vous sûr de vouloir supprimer cette étiquette ? - Play + Lire Hauteur @@ -2370,7 +2388,7 @@ Augmenter la taille - Sort direction + Ordre de tri Nom invalide @@ -2382,103 +2400,103 @@ Vidéos - Preview popup + Aperçu contextuel Activer/Désactiver le mode compact - Open the online help page in your browser + Ouvrir la page d'aide en ligne dans votre navigateur - Toggle full screen mode + Basculer en mode plein écran - Enter compact overlay mode + Entrer en mode compact - Exit compact overlay mode + Quitter le mode compact - Toggle compact overlay mode + Activer/Désactiver le mode compact - Start search in the OmniBar + Démarrer la recherche dans l'OmniBar - Toggle visibility of hidden items + Activer/Désactiver la visibilité des éléments cachés - Toggle visibility of dot files + Activer/Désactiver la visibilité des fichiers dont le nom commence par un point - Toggle visibility of file extensions + Activer/Désactiver la visibilité des extensions de fichiers - Afficher/Masquer le volet d’aperçu pour afficher les aperçus des fichiers + Afficher/Masquer le volet d'aperçu pour afficher les aperçus des fichiers Afficher/Masquer la barre latérale - Copy selected {0, plural, one {item} other {items}} to clipboard + Copier {0, plural, one {l'élément sélectionné} other {les éléments sélectionnés}} - Copier le chemin du dossier actuel dans le presse-papiers + Copier le chemin du dossier actuel - Copier le chemin des éléments sélectionnés dans le presse-papiers + Copier le chemin des éléments sélectionnés - Copier le chemin des éléments sélectionnés entre guillemets dans le presse-papiers + Copier le chemin des éléments sélectionnés avec des guillemets - Copier le chemin du dossier actuel entre guillemets dans le presse-papiers + Copier le chemin du dossier actuel avec des guillemets - Cut selected {0, plural, one {item} other {items}} to clipboard + Couper {0, plural, one {l'élément sélectionné} other {les éléments sélectionnés}} - Paste clipboard items to the current folder + Coller les éléments dans le dossier actuel - Paste clipboard items to the current folder as shortcuts + Coller les éléments dans le dossier actuel comme raccourcis - Paste clipboard items to the selected folder + Coller les éléments dans le dossier sélectionné - Paste to selected folder + Coller dans le dossier sélectionné - Delete selected {0, plural, one {item} other {items}} + Supprimer {0, plural, one {l'élément sélectionné} other {les éléments sélectionnés}} Créer un nouveau dossier - Créer {0, plural, one {un raccourci} other {des raccourcis}} vers {0, plural, one {l’élément sélectionné} other {les éléments sélectionnés}} + Créer {0, plural, one {un raccourci} other {des raccourcis}} vers {0, plural, one {l'élément sélectionné} other {les éléments sélectionnés}} Créer un nouveau raccourci vers n'importe quel élément - Empty the contents of Recycle Bin + Vider le contenu de la corbeille Ouvrir le menu "Formater le lecteur" pour l'élément sélectionné - Restaurer {0, plural, one {l’élément sélectionné} other {les éléments sélectionnés}} depuis la corbeille + Restaurer {0, plural, one {l'élément sélectionné} other {les éléments sélectionnés}} depuis la corbeille Restaurer tous les éléments de la corbeille - Ouvrir {0, plural, one {l’élément} other {les éléments}} + Ouvrir {0, plural, one {l'élément} other {les éléments}} - Ouvrir {0, plural, one {l’élément} other {les éléments}} avec l’application sélectionnée + Ouvrir {0, plural, one {l'élément} other {les éléments}} avec l'application sélectionnée Ouvrir le dossier parent de l'élément recherché @@ -2493,10 +2511,10 @@ Sélectionner tous les éléments - Invert selected items + Inverser les éléments sélectionnés - Clear selected items + Inverser les éléments sélectionnés Activer/Désactiver la sélection d'éléments @@ -2529,19 +2547,19 @@ Définir l'image sélectionnée comme fond d'écran de l'application - Install font + Installer la police - Install driver + Installer le pilote - Install certificate + Installer le certificat Installer {0, plural, one {la police sélectionnée} other {les polices sélectionnées}} - Installer {0, plural, one {le pilote} other {les pilotes}} à l’aide {0, plural, one {du fichier INF sélectionné} other {des fichiers INF sélectionnés}} + Installer {0, plural, one {le pilote} other {les pilotes}} à l'aide {0, plural, one {du fichier INF sélectionné} other {des fichiers INF sélectionnés}} Installer {0, plural, one {le certificat sélectionné} other {les certificats sélectionnés}} @@ -2550,7 +2568,7 @@ Exécuter l'application sélectionnée en tant qu'administrateur - Exécuter l'application sélectionnée en tant qu'un autre utilisateur + Exécuter l'application sélectionnée en tant qu'autre utilisateur Exécuter le script PowerShell sélectionné @@ -2568,13 +2586,13 @@ Créer une archive ZIP avec {0, plural, one {l'élément sélectionné} other {les éléments sélectionnés}} - Extraire les éléments {0, plural, one {de l'archive sélectionnée} other {des archives sélectionnées}} vers n'importe quel dossier + Extraire {0, plural, one {l'archive sélectionnée} other {les archives sélectionnées}} vers n'importe quel dossier - Extraire les éléments {0, plural, one {de l'archive sélectionnée} other {des archives sélectionnées}} vers le dossier actuel + Extraire {0, plural, one {l'archive sélectionnée} other {les archives sélectionnées}} vers le dossier actuel - Extraire les éléments {0, plural, one {de l'archive sélectionnée} other {des archives sélectionnées}} vers un nouveau dossier + Extraire {0, plural, one {l'archive sélectionnée} other {les archives sélectionnées}} vers un nouveau dossier Tourner {0, plural, one {l'image sélectionnée} other {les images sélectionnées}} vers la gauche @@ -2586,10 +2604,10 @@ Ouvrir la page des paramètres - Ouvrir terminal à l'emplacement du dossier + Ouvrir le dossier dans le terminal - Ouvrir terminal à l'emplacement du dossier en tant qu'administrateur + Ouvrir le dossier dans le terminal en tant qu'administrateur Réduire la taille des éléments dans la vue actuelle @@ -2619,7 +2637,7 @@ Basculer en vue colonnes - Basculer les vues en mode adaptatif + Basculer en vue adaptative Trier les éléments par nom @@ -2703,10 +2721,10 @@ Ouvrir un nouvel onglet - Navigate backward + Naviguer en arrière - Navigate forward + Naviguer en avant Revenir au dossier précédent @@ -2718,16 +2736,16 @@ Dupliquer l'onglet sélectionné - Fermer les onglets à la gauche de l'onglet actuel + Fermer les onglets à gauche de l'onglet actuel - Fermer les onglets à la gauche de l'onglet sélectionné + Fermer les onglets à gauche de l'onglet sélectionné Fermer les onglets à droite de l'onglet actuel - Fermer les onglets à la droite de l'onglet sélectionné + Fermer les onglets à droite de l'onglet sélectionné Fermer les onglets autres que l'onglet actuel @@ -2739,10 +2757,10 @@ Fermer tous les onglets, y compris l'onglet actuel - Reopen recently closed tab + Restaurer le dernier onglet fermé - Revenir à l'onglet précédent + Passer à l'onglet précédent Passer à l'onglet suivant @@ -2751,13 +2769,13 @@ Fermer l'onglet actuel - Close the active pane + Fermer le volet actif Se focaliser sur un autre volet - Switch focus to the other pane + Basculer le focus sur l'autre volet Afficher/Masquer la barre latérale @@ -2965,13 +2983,13 @@ Sans étiquette - Previous tab + Onglet précédent - Next tab + Onglet suivant - Close tab + Fermer l'onglet Modifier le chemin @@ -3001,7 +3019,7 @@ Afficher les cases à cocher lors de la sélection des éléments - Edit path in the OmniBar + Modifier le chemin dans l'OmniBar Créer un nouvel élément @@ -3016,7 +3034,7 @@ Supprimer définitivement - Delete selected {0, plural, one {item} other {items}} permanently + Supprimer définitivement {0, plural, one {l'élément} other {les éléments}} Lire les fichiers médias sélectionnés @@ -3145,7 +3163,7 @@ Ouvrir la fenêtre des propriétés - Ouvrir la fenêtre des propriétés de l’Explorateur de fichiers + Ouvrir la fenêtre des propriétés de l'Explorateur de fichiers Locaux @@ -3281,7 +3299,7 @@ Initialiser le dépôt - Initialize current folder as a git repository + Initialiser le dossier actuel en tant que dépôt git Nom du dépôt distant @@ -3296,13 +3314,13 @@ Trier les éléments par chemin - Open selected directory in a new pane + Ouvrir le dossier sélectionner dans un nouveau volet - Open selected directory in a new tab + Ouvrir le dossier sélectionné dans un nouvel onglet - Open selected directory in a new window + Ouvrir le dossier sélectionné dans une nouvelle fenêtre Tout ouvrir @@ -3327,10 +3345,10 @@ La commande '{0}' n'est pas prête à être exécutée. - Command Palette + Palette de commandes - Open Command Palette in the OmniBar + Ouvrir la palette de commandes dans l'OmniBar Démarrer dans : @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - {0} élément(s) compressé(s) vers "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} élément(s) compressé(s) de "{1}" vers "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Erreur lors de la compression de {0} élément(s) vers "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Échec de la compression de {0} élément(s) de "{1}" vers "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Compression de {0} élément(s) vers "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compression de {0} élément(s) de "{1}" vers "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Installation de {0} police(s) depuis "{1}" annulée + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - {0} police(s) installée(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - {0} police(s) installée(s) depuis "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Erreur lors de l'installation de {0} police(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Échec de l'installation de {0} police(s) depuis "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installation de {0} police(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installation de {0} police(s) depuis "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Copie de {0} élément(s) vers "{1}" annulée + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copie de {0} élément(s) de "{1}" vers "{2}" annulée + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} élément(s) copié(s) vers "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} élément(s) copié(s) de "{1}" vers "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Erreur lors de la copie de {0} élément(s) vers "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Échec de la copie de {0} élément(s) de "{1}" vers "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copie de {0} élément(s) vers "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copie de {0} élément(s) de "{1}" vers "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Suppression de {0} élément(s) depuis "{1}" annulée + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - {0} élément(s) supprimé(s) depuis "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Erreur lors de la suppression de {0} élément(s) depuis "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Échec de la suppression de {0} élément(s) depuis "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Suppression de {0} élément(s) depuis "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Déplacement de {0} élément(s) vers "{1}" annulé + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Déplacement de {0} élément(s) de "{1}" vers "{2}" annulé + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} élément(s) déplacé(s) vers "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} élément(s) déplacé(s) de "{1}" vers "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Déplacement de {0} élément(s) vers "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Déplacement de {0} élément(s) depuis "{1}" vers "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Erreur lors du déplacement de {0} élément(s) vers "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Échec du déplacement de {0} élément(s) depuis "{1}" vers "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3719,7 +3737,7 @@ Échec de la définition du fond d'écran - Échec de l’ouverture du fichier de paramètres + Échec de l'ouverture du fichier de paramètres Supprimer la branche Git @@ -3746,7 +3764,7 @@ Une erreur s'est produite lors de l'application de cette étiquette - Extraire les éléments {0, plural, one {de l'archive sélectionnée} other {des archives sélectionnées}} vers le dossier actuel pour une archive à un seul élément, ou vers un nouveau dossier pour une archive multi-éléments + Extraire {0, plural, one {l'archive sélectionnée} other {les archives sélectionnées}} ici pour un seul élément ou dans un nouveau dossier pour plusieurs éléments Extraire ici (Intelligent) @@ -3755,7 +3773,7 @@ Trier les fichiers et les dossiers ensemble - Sort files and folders in the same list + Trier les fichiers et les dossiers dans la même liste Trier les fichiers en premier @@ -3991,7 +4009,7 @@ Réseau - Il n’y a pas d'emplacement réseau. Si vous n’en utilisez pas, vous pouvez désactiver le widget. + Il n'y a pas d'emplacement réseau. Si vous n'en utilisez pas, vous pouvez désactiver le widget. Désactiver @@ -4016,16 +4034,16 @@ Menu des actions de l'onglet - Vertical pane + Volet vertical - Add vertical pane + Ajouter un volet vertical - Horizontal pane + Volet horizontal - Add horizontal pane + Ajouter un volet horizontal Arranger verticalement @@ -4066,9 +4084,6 @@ Aller à la page d'accueil - - Afficher le bouton d'accueil dans la barre d'adresse - Barre d'outils @@ -4094,7 +4109,7 @@ Entrez le nom du flux de données - Une erreur s’est produite lors de la création du flux de données alternatif + Une erreur s'est produite lors de la création du flux de données alternatif Veuillez noter que les flux de données alternatifs ne fonctionnent que sur les lecteurs formatés en NTFS. @@ -4118,10 +4133,10 @@ Toujours basculer le focus vers l'onglet nouvellement créé - Toggle shelf pane + Afficher/Masquer le volet étagère - Toggle the visibility of the shelf pane + Activer/désactiver la visibilité du panneau étagère Afficher le bouton du volet étagère dans la barre d'adresse @@ -4208,9 +4223,6 @@ Décimal - - Activer l'Omnibar - Vous pouvez ajouter des sections à la barre latérale en effectuant un clic droit et en sélectionnant les sections que vous souhaitez ajouter @@ -4226,4 +4238,42 @@ Rechercher des fichiers et des dossiers... + + Pendant les opérations sur les fichiers + + + Afficher le bouton du centre de statut + + + Anneau de progression du centre de statut + Screen reader name for the status center progress ring + + + Fichiers ICON + This is the friendly name for a variety of different icon files. + + + Afficher le fil d'Ariane du chemin réduit + + + Show folders in {0} + + + Show folders in Home + + + Il n'y a aucune commande contenant {0} + + + Voir plus + + + Filtrer par + + + Nom du fichier + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/he-IL/Resources.resw b/src/Files.App/Strings/he-IL/Resources.resw index 24742bca7b00..f380a111348c 100644 --- a/src/Files.App/Strings/he-IL/Resources.resw +++ b/src/Files.App/Strings/he-IL/Resources.resw @@ -124,7 +124,7 @@ העתק נתיב - Copy item path + העתק מיקום אובייקט העתק נתיב עם גרשיים @@ -217,7 +217,7 @@ ‏‏הצג קבצים ותיקיות מוסתרים - Dot files + Show dot files מראה @@ -229,7 +229,7 @@ הגדרות מתקדמות - המשך מהמקום בו עצרת + המשך מאיפה שעצרת פתח כרטיסיה חדשה @@ -1089,7 +1089,7 @@ Toggle the info pane - Toggle the info pane to view the detail/preview panes + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1097,6 +1097,12 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + אין תצוגה מקדימה זמינה @@ -1323,10 +1329,10 @@ Original path column - Item type column + עמודת סוג פריט - Date modified column + עמודת תאריך שינוי Date deleted column @@ -1791,7 +1797,7 @@ שחזר ברירת מחדל - Open tab in existing instance when opening Files from another app + פתיחת חלון בישות קיימת בפתיחת האפליקציה מתוכנה אחרת הגדרות הפעלה באתחול @@ -2012,11 +2018,23 @@ Behaviors - - Review Files + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us - - Would you like to review Files? + + Dismiss Set as background @@ -2421,31 +2439,31 @@ Toggle whether to show sidebar - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Copy path of selected items to the clipboard + Copy path of the current directory - Copy path of selected items to the clipboard + Copy path of selected items - Copy path of selected items with quotes to the clipboard + Copy path of selected items with quotes - Copy path of selected items with quotes to the clipboard + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Compressed {0} item(s) to "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressed {0} item(s) from "{1}" to "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error compressing {0} item(s) to "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to compress {0} item(s) from "{1}" to "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Compressing {0} item(s) to "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressing {0} item(s) from "{1}" to "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) to "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) from "{1}" to "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copied {0} item(s) to "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copied {0} item(s) from "{1}" to "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error copying {0} item(s) to "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to copy {0} item(s) from "{1}" to "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copying {0} item(s) to "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copying {0} item(s) from "{1}" to "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Canceled deleting {0} item(s) from "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleted {0} item(s) from "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Error deleting {0} item(s) from "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Failed to delete {0} item(s) from "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleting {0} item(s) from "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) to "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) from "{1}" to "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moved {0} item(s) to "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moved {0} item(s) from "{1}" to "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moving {0} item(s) to "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moving {0} item(s) from "{1}" to "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error moving {0} item(s) to "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to move {0} item(s) from "{1}" to "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ There was an error applying this tag - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Extract here (Smart) @@ -4066,9 +4084,6 @@ Navigate to the home page - - Show home button in address bar - Toolbars @@ -4208,9 +4223,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/hi-IN/Resources.resw b/src/Files.App/Strings/hi-IN/Resources.resw index c3402c7fbea4..0aa012284700 100644 --- a/src/Files.App/Strings/hi-IN/Resources.resw +++ b/src/Files.App/Strings/hi-IN/Resources.resw @@ -217,7 +217,7 @@ छुपी हुई फ़ाइलें और फ़ोल्डर दिखाएँ - Dot files + Show dot files उपस्थिति @@ -1089,7 +1089,7 @@ Toggle the info pane - Toggle the info pane to view the detail/preview panes + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1097,6 +1097,12 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + कोई पूर्वावलोकन उपलब्ध नहीं @@ -2012,11 +2018,23 @@ Behaviors - - Review Files + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us - - Would you like to review Files? + + Dismiss Set as background @@ -2421,31 +2439,31 @@ Toggle whether to show sidebar - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Copy path of selected items to the clipboard + Copy path of the current directory - Copy path of selected items to the clipboard + Copy path of selected items - Copy path of selected items with quotes to the clipboard + Copy path of selected items with quotes - Copy path of selected items with quotes to the clipboard + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Compressed {0} item(s) to "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressed {0} item(s) from "{1}" to "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error compressing {0} item(s) to "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to compress {0} item(s) from "{1}" to "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Compressing {0} item(s) to "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressing {0} item(s) from "{1}" to "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) to "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) from "{1}" to "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copied {0} item(s) to "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copied {0} item(s) from "{1}" to "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error copying {0} item(s) to "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to copy {0} item(s) from "{1}" to "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copying {0} item(s) to "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copying {0} item(s) from "{1}" to "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Canceled deleting {0} item(s) from "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleted {0} item(s) from "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Error deleting {0} item(s) from "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Failed to delete {0} item(s) from "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleting {0} item(s) from "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) to "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) from "{1}" to "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moved {0} item(s) to "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moved {0} item(s) from "{1}" to "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moving {0} item(s) to "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moving {0} item(s) from "{1}" to "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error moving {0} item(s) to "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to move {0} item(s) from "{1}" to "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ There was an error applying this tag - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Extract here (Smart) @@ -4066,9 +4084,6 @@ Navigate to the home page - - Show home button in address bar - Toolbars @@ -4208,9 +4223,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/hr-HR/Resources.resw b/src/Files.App/Strings/hr-HR/Resources.resw index 50fe5bba2be9..62b1eac92438 100644 --- a/src/Files.App/Strings/hr-HR/Resources.resw +++ b/src/Files.App/Strings/hr-HR/Resources.resw @@ -217,7 +217,7 @@ Prikaz skrivenih datoteka i mapa - Dot files + Show dot files Izgled @@ -1089,7 +1089,7 @@ Toggle the info pane - Toggle the info pane to view the detail/preview panes + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1097,6 +1097,12 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + Pregled nedostupan @@ -1416,7 +1422,7 @@ Očisti - Widgets + Widgeti Status sinkronizacije @@ -2012,11 +2018,23 @@ Behaviors - - Review Files + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us - - Would you like to review Files? + + Dismiss Set as background @@ -2421,31 +2439,31 @@ Toggle whether to show sidebar - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Copy path of selected items to the clipboard + Copy path of the current directory - Copy path of selected items to the clipboard + Copy path of selected items - Copy path of selected items with quotes to the clipboard + Copy path of selected items with quotes - Copy path of selected items with quotes to the clipboard + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Compressed {0} item(s) to "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressed {0} item(s) from "{1}" to "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error compressing {0} item(s) to "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to compress {0} item(s) from "{1}" to "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Compressing {0} item(s) to "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressing {0} item(s) from "{1}" to "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) to "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) from "{1}" to "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copied {0} item(s) to "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copied {0} item(s) from "{1}" to "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error copying {0} item(s) to "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to copy {0} item(s) from "{1}" to "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copying {0} item(s) to "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copying {0} item(s) from "{1}" to "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Canceled deleting {0} item(s) from "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleted {0} item(s) from "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Error deleting {0} item(s) from "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Failed to delete {0} item(s) from "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleting {0} item(s) from "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) to "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) from "{1}" to "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moved {0} item(s) to "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moved {0} item(s) from "{1}" to "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moving {0} item(s) to "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moving {0} item(s) from "{1}" to "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error moving {0} item(s) to "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to move {0} item(s) from "{1}" to "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ There was an error applying this tag - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Extract here (Smart) @@ -3870,7 +3888,7 @@ Layout type - Actions + Radnje Commands @@ -4066,9 +4084,6 @@ Navigate to the home page - - Show home button in address bar - Toolbars @@ -4208,9 +4223,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/hu-HU/Resources.resw b/src/Files.App/Strings/hu-HU/Resources.resw index f7bfd7aeb870..85d95744047b 100644 --- a/src/Files.App/Strings/hu-HU/Resources.resw +++ b/src/Files.App/Strings/hu-HU/Resources.resw @@ -166,7 +166,7 @@ Kihagyás - Select all + Összes kijelölése Kijelölés megfordítása @@ -217,7 +217,7 @@ Rejtett fájlok és mappák megjelenítése - Dot files + Show dot files Megjelenés @@ -1089,7 +1089,7 @@ Az információs ablaktábla be- és kikapcsolása - Az információs ablaktábla be- és kikapcsolása a részlet/előnézet ablaktáblák megtekintéséhez + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1097,6 +1097,12 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + Nincs elérhető előnézet @@ -2012,11 +2018,23 @@ Működés - - Értékelés + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us - - Szeretné értékelni az alkalmazást? + + Dismiss Beállítás háttérképként @@ -2295,7 +2313,7 @@ Helyi menü elemek - File extensions + Fájlkiterjesztések Formázás @@ -2421,31 +2439,31 @@ Oldalsáv megjelenítésének ki-/bekapcsolása - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - A kiválasztott elemek elérési útjának másolása a vágólapra + Copy path of the current directory - A kijelölt elemek útvonalának másolása a vágólapra + Copy path of selected items - A kijelölt elemek útvonalának másolása idézőjelekkel a vágólapra + Copy path of selected items with quotes - A kiválasztott elemek elérési útjának másolása a vágólapra idézőjelekkel + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - {0} elem tömörítve ide: "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} elem(ek) tömörítése "{1}"-ről "{2}"-re + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Nem sikerült {0} elemet tömöríteni ide: "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Nem sikerült {0} elem(ek) tömörítése "{1}"-ről "{2}"-re + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} elem tömörítése ide: "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} elem(ek) tömörítése "{1}"-ről "{2}"-re + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - {0} elem átmásolása ide: "{1}" megszakítva + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} elem átmásolása innen: "{1}" ide: "{2}" megszakítva + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} elem másolva ide: "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} elem átmásolva innen: "{1}" ide: "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Nem sikerült {0} elemet másolni ide: "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Nem sikerült átmásolni {0} elemet innen: "{1}" ide: "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} elem másolása ide: "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} elem átmásolása innen: "{1}" ide: "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - {0} elem törlése innen: "{1}" megszakítva + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - {0} elem törölve innen: "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Nem sikerült {0} elemet törölni innen: "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Nem sikerült törölni {0} elemet innen: "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - {0} elem törlése innen: "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - {0} elem áthelyezése ide: "{1}" megszakítva + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} elem átmásolása innen: "{1}" ide: "{2}" megszakítva + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} elem áthelyezve ide: "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} elem áthelyezve innen: "{1}" ide: "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} elem áthelyezése ide: "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} elem áthelyezése innen: "{1}" ide: "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Nem sikerült {0} elemet áthelyezni ide: "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Nem sikerült áthelyezni {0} elemet innen: "{1}" ide: "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ Hiba történt a címke alkalmazása közben - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Intelligens kicsomagolás ide @@ -4066,9 +4084,6 @@ Navigálás a kezdőlapra - - Kezdőlap gomb megjelenítése a címsorban - Eszköztárak @@ -4208,9 +4223,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/hy-AM/Resources.resw b/src/Files.App/Strings/hy-AM/Resources.resw index e434bd030c27..4bd875d90159 100644 --- a/src/Files.App/Strings/hy-AM/Resources.resw +++ b/src/Files.App/Strings/hy-AM/Resources.resw @@ -217,7 +217,7 @@ Ցույց տալ թաքնված նիշքերը եւ պանակները - Dot files + Show dot files Տեսք @@ -1089,7 +1089,7 @@ Փոխարկել տեղեկի փեղկի - Փոխարկեք տեղեկ վահանակը դեպի մանրամասների/նախադիտման փեղկերը դիտելու համար + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1097,6 +1097,12 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + Նախադիտումը հասանելի չէ @@ -2012,11 +2018,23 @@ Բնութագիր - - Files-ի վերանայում + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us - - Would you like to review Files? + + Dismiss Կայել որպես խորք @@ -2421,31 +2439,31 @@ Toggle whether to show sidebar - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Պատճենեք ընթացիկ գրացուցակի ուղին սեղմատախտակին + Copy path of the current directory - Copy path of selected items to the clipboard + Copy path of selected items - Copy path of selected items with quotes to the clipboard + Copy path of selected items with quotes - Պատճենեք ընթացիկ գրացուցակի ուղին չակերտներով սեղմատախտակին + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Compressed {0} item(s) to "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressed {0} item(s) from "{1}" to "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error compressing {0} item(s) to "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to compress {0} item(s) from "{1}" to "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Compressing {0} item(s) to "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressing {0} item(s) from "{1}" to "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Չեղարկվեց {0} տարրի պատճենումը դեպի «{1}» + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) from "{1}" to "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Պատճենվել է {0} տարր դեպի «{1}» + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copied {0} item(s) from "{1}" to "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error copying {0} item(s) to "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to copy {0} item(s) from "{1}" to "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Պատճենում է {0} տարր դեպի «{1}» + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copying {0} item(s) from "{1}" to "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Canceled deleting {0} item(s) from "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleted {0} item(s) from "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Error deleting {0} item(s) from "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Failed to delete {0} item(s) from "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleting {0} item(s) from "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) to "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) from "{1}" to "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Տեղափողվել է {0} տարր դեպի «{1}» + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moved {0} item(s) from "{1}" to "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Տեղափողվել է {0} տարր դեպի «{1}» + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moving {0} item(s) from "{1}" to "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error moving {0} item(s) to "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to move {0} item(s) from "{1}" to "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ There was an error applying this tag - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Արտահանել այստեղ (Խելացի) @@ -4066,9 +4084,6 @@ Նավարկել դեպի տնէջ - - Show home button in address bar - Գործիքագոտիներ @@ -4208,9 +4223,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/id-ID/Resources.resw b/src/Files.App/Strings/id-ID/Resources.resw index d550de5074d2..4d717032eb62 100644 --- a/src/Files.App/Strings/id-ID/Resources.resw +++ b/src/Files.App/Strings/id-ID/Resources.resw @@ -166,7 +166,7 @@ Lewati - Select all + Pilih semua Balikkan pilihan @@ -217,7 +217,7 @@ Tampilkan file dan folder tersembunyi - Dot files + Show dot files Tampilan @@ -1089,14 +1089,20 @@ Aktifkan panel info - Aktifkan panel info untuk melihat detail/pratinjau panel + Toggle visibility of the detail/preview panes - Toggle toolbar + Tampilkan toolbar Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + Pratinjau tidak tersedia @@ -1254,7 +1260,7 @@ Open the Storage Sense page in Windows Settings - Cleanup + Bersihkan Salin @@ -1398,7 +1404,7 @@ {0} item - Reopen tab + Buka kembali tab yang ditutup Ganti nama @@ -1605,7 +1611,7 @@ Ganti semua entri izin objek bawahan dengan entri izin yang dapat diwariskan dari objek ini - Close pane + Tutup panel Masuk ke tampilan fleksibel @@ -1842,10 +1848,10 @@ Normal window - Minimized + Perkecil - Maximized + Perbesar Jalankan sebagai administrator @@ -1956,7 +1962,7 @@ Tutup tab lain - Close all tabs + Tutup semua tab Musik @@ -1998,7 +2004,7 @@ Atur semua ukuran kolom ke pas - Menyesuaikan + Penyesuaian Adaptif (Ctrl+Shift+7) @@ -2012,11 +2018,23 @@ Perilaku - - Ulas Files + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor - - Apakah Anda ingin memberikan ulasan Files? + + Rate us + + + Dismiss Atur sebagai latar belakang @@ -2151,7 +2169,7 @@ Ukuran pemisahan - Do not split + Jangan dipisah CD @@ -2295,7 +2313,7 @@ Opsi menu konteks - File extensions + Tampilkan ekstensi berkas Format @@ -2304,13 +2322,13 @@ Bantuan - Full screen + Layar penuh Yakin ingin menghapus tag ini? - Play + Putar Tinggi @@ -2370,7 +2388,7 @@ Tingkatkan ukuran - Sort direction + Arah Pengurutan Nama tidak valid @@ -2382,37 +2400,37 @@ Video - Preview popup + Pratinjau di jendela pop-up Beralih ke tampilan fleksibel - Open the online help page in your browser + Buka halaman bantuan secara daring di browser - Toggle full screen mode + Beralih ke layar penuh - Enter compact overlay mode + Masuk ke tampilan kecil - Exit compact overlay mode + Keluar dari tampilan kecil - Toggle compact overlay mode + Beralih ke tampilan kecil - Start search in the OmniBar + Memulai pencarian di OmniBar - Toggle visibility of hidden items + Ubah untuk melihat berkas yang disembunyikan - Toggle visibility of dot files + Ubah untuk melihat dot files - Toggle visibility of file extensions + Ubah untuk melihat ekstensi dari suatu berkas Aktifkan paratinjau panel untuk melihat paratinjau file @@ -2421,34 +2439,34 @@ Pilih untuk menujukkan sidebar - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Salin path dari item yang dipilih ke clipboard + Copy path of the current directory - Copy path of selected items to the clipboard + Copy path of selected items - Copy path of selected items with quotes to the clipboard + Copy path of selected items with quotes - Salin path dari item yang dipilih dengan kutipan ke clipboard + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder - Paste to selected folder + Tempel ke folder yang dipilih Delete selected {0, plural, one {item} other {items}} @@ -2463,7 +2481,7 @@ Buat shortcut baru ke item manapun - Empty the contents of Recycle Bin + Kosongkan tempat pembuangan Buka "Format Penyimpanan" menu pada item yang dipilih @@ -2493,7 +2511,7 @@ Pilih semua item - Invert selected items + Membalikkan item yang dipilih sebelumnya Clear selected items @@ -2556,7 +2574,7 @@ Jalankan skrip PowerShell yang dipilih - Luncurkan pratinjau di jendela popup + Luncurkan pratinjau di jendela pop-up Create archive with selected {0, plural, one {item} other {items}} @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -2703,10 +2721,10 @@ Buka tab baru - Navigate backward + Kembali ke langkah sebelumnya - Navigate forward + Maju ke langkah selanjutnya Mundur selangkah dari folder ini @@ -2739,7 +2757,7 @@ Tutup seluruh tab termasuk yang ini - Reopen recently closed tab + Buka kembali halaman yang terakhir ditutup Pindah ke tab sebelumnya @@ -2965,13 +2983,13 @@ Tidak ditandai - Previous tab + Tab sebelumnya - Next tab + Tab selanjutnya - Close tab + Tutup Tab Ubah jalur @@ -3001,7 +3019,7 @@ Tampilkan kotak centang saat memilih item - Edit path in the OmniBar + Ubah jalur di OmniBar Buat item baru @@ -3281,7 +3299,7 @@ Inisialisasi repo - Initialize current folder as a git repository + Pilih folder ini untuk digunakan di git repository Nama Remote Repository @@ -3302,7 +3320,7 @@ Open selected directory in a new tab - Open selected directory in a new window + Buka tautan yang dipilih di jendela baru Buka semua @@ -3327,10 +3345,10 @@ Perintah {0} belum siap dilaksanakan. - Command Palette + Daftar perintah - Open Command Palette in the OmniBar + Buka daftar perintah Mulai di: @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Kompres {0} item(s) ke "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Kompres {0} item(s) dari "{1}" ke "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Gagal mengkompresi {0} item(s) ke "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Gagal mengkompres {0} item(s) dari "{1}" ke "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Kompres {0} item(s) ke "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Mengompres {0} item(s) dari "{1}" ke "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Membatalkan penyalinan {0} item(s) ke "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Membatalkan penyalinan {0} item(s) dari "{1}" ke "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Disalin {0} item(s) ke "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Disalin {0} item(s) dari "{1}" ke "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error menyalin {0} item(s) ke "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Gagal untuk menyalin {0} item(s) dari "{1}" ke "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Menyalin {0} item(s) ke "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Menyalin {0} item(s) dari "{1}" ke "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Membatalkan penghapusan {0} item(s) dari "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Dihapus {0} item(s) dari "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Error menghapus {0} item(s) dari "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Gagal menghapus {0} item(s) dari {1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Menghapus {0} item(s) dari "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Dibatalkan pemindahan {0} item(s) ke "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Dibatalkan pemindahan {0} item(s) dari "{1}" ke "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Terpindah {0} item(s) ke "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Terpindah {0} item(s) dari "{1}" ke "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Memindah {0} item(s) ke "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Memindah {0} item(s) dari "{1}" ke "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error memindah {0} item(s) ke "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Gagal untuk memindah {0} item(s) dari "{1}" ke "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ Terjadi kesalahan saat menerapkan tag ini - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Ekstrak disini (Smart) @@ -3755,7 +3773,7 @@ Urutkan file dan folder bersama - Sort files and folders in the same list + Atur berkas dan folder secara bersamaan Urutkan file dahulu @@ -4019,13 +4037,13 @@ Vertical pane - Add vertical pane + Tambah panel vertikal Horizontal pane - Add horizontal pane + Tambah panel horizontal Susun secara vertikal @@ -4066,9 +4084,6 @@ Kembali ke beranda - - Show home button in address bar - Toolbars @@ -4208,9 +4223,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/it-IT/Resources.resw b/src/Files.App/Strings/it-IT/Resources.resw index 3efa8a8594ce..cbbad93ecccf 100644 --- a/src/Files.App/Strings/it-IT/Resources.resw +++ b/src/Files.App/Strings/it-IT/Resources.resw @@ -124,7 +124,7 @@ Copia percorso - Copy item path + Copia percorso elemento Copia percorso con virgolette @@ -166,7 +166,7 @@ Salta - Select all + Seleziona tutti Inverti selezione @@ -217,7 +217,7 @@ Mostra file e cartelle nascosti - Dot files + Mostra file e cartelle che iniziano con un punto Aspetto @@ -1089,7 +1089,7 @@ Mostra o nascondi il riquadro informazioni - Commuta il riquadro informazioni per visualizzare i riquadri dettaglio/anteprima + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1097,6 +1097,12 @@ Toggle visibility of the toolbar + + Attiva/Disattiva intestazione filtro + + + Attiva/Disattiva visibilità dell'intestazione del filtro + Anteprima non disponibile @@ -1398,7 +1404,7 @@ {0} elementi - Reopen tab + Riapri scheda Rinomina @@ -1605,7 +1611,7 @@ Sostituisci tutte le voci delle autorizzazioni degli oggetti figlio con le voci delle autorizzazioni ereditabili da questo oggetto - Close pane + Chiudi pannello Entra in modalità Overlay Compatto @@ -2012,11 +2018,23 @@ Comportamenti - - Recensisci Files + + Ciao! + + + Ti piace File? Considera la possibilità di rivedere il Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. - - Vuoi lasciare una recensione su Files? + + Sponsor + + + Votaci + + + Rimuovi Imposta come sfondo @@ -2106,7 +2124,7 @@ Codifica - {0} (detected) + {0} (rilevato) Percorso @@ -2295,7 +2313,7 @@ Opzioni del menu contestuale - File extensions + Estensioni file Formato @@ -2304,13 +2322,13 @@ Aiuto - Full screen + Schermo intero Sei sicuro/a di voler eliminare questo tag? - Play + Riproduci Altezza @@ -2421,31 +2439,31 @@ Attiva o disattiva la visualizzazione della barra laterale - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Copia il percorso della cartella corrente negli appunti + Copy path of the current directory - Copia il percorso degli elementi selezionati negli appunti + Copy path of selected items - Copia il percorso degli elementi selezionati con virgolette negli appunti + Copy path of selected items with quotes - Copia il percorso della directory corrente con virgolette negli appunti + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2475,10 +2493,10 @@ Ripristina tutti gli elementi nel cestino - Open {0, plural, one {item} other {items}} + Apri {0, plural, one {elemento} other {elementi}} - Open {0, plural, one {item} other {items}} with selected application + Apri {0, plural, one {elemento} other {elementi}} con l'applicazione selezionata Apri la cartella superiore dell'elemento cercato @@ -2493,7 +2511,7 @@ Seleziona tutti gli elementi - Invert selected items + Inverti elementi selezionati Clear selected items @@ -2502,7 +2520,7 @@ Inverti la selezione degli elementi - Share selected {0, plural, one {file} other {files}} with others + Condividi {0, plural, one {il file selezionato} other {i file selezionati}} con altri Pin {0, plural, one {item} other {items}} to the Start Menu @@ -2529,22 +2547,22 @@ Imposta l'immagine selezionata come sfondo dell'app - Install font + Installa Font - Install driver + Installa driver - Install certificate + Installa certificato - Install selected {0, plural, one {font} other {fonts}} + Installa font {0, plural, one {selezionato} other {selezionati}} Install {0, plural, one {driver} other {drivers}} using selected inf {0, plural, one {file} other {files}} - Install selected {0, plural, one {certificate} other {certificates}} + Installa {0, plural, one {il certificato selezionato} other {i certificati selezionati}} Esegui l'applicazione selezionata come amministratore @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -2965,13 +2983,13 @@ Senza etichetta - Previous tab + Scheda precedente - Next tab + Scheda successiva - Close tab + Chiudi scheda Modifica percorso @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Compressi {0} elemento/i in "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressi {0} elemento/i da "{1}" in "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Errore nella compressione di {0} elemento/i in "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Errore nella compressione di {0} elemento/i da "{1}" in "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Compressione di {0} elemento/i in "{1}" in corso + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressione di {0} elemento/i da "{1}" in "{2}" in corso + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Annullata l'installazione di {0} caratteri da "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installati {0} caratteri + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installati {0} caratteri da "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Errore nell'installazione di {0} caratteri + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installazione di {0} caratteri da "{1}" fallita + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installazione di {0} caratteri + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installazione di {0} caratteri da "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Annullata copia di {0} elemento/i in "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Annullata copia di {0} elemento/i da "{1}" a "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copiati {0} elemento/i in "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copiati {0} elemento/i da "{1}" a "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Errore nella copia di {0} elemento/i in "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Errore nella copia di {0} elemento/i da "{1}" a "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copia di {0} elemento/i in "{1}" in corso + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copia di {0} elemento/i da "{1}" a "{2}" in corso + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Annullata eliminazione di {0} elemento/i da "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Eliminati {0} elemento/i da "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Errore nell'eliminazione di {0} elemento/i da "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Eliminazione di {0} elementi da "{1}" non riuscita + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Eliminazione di {0} elemento/i da "{1}" in corso + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Annullato spostamento di {0} elemento/i in "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Annullato spostamento di {0} elemento/i da "{1}" in "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Spostati {0} elemento/i in "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Spostati {0} elemento/i da "{1}" in "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Spostamento di {0} elemento/i in "{1}" in corso + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Spostamento di {0} elemento/i da "{1}" in "{2}" in corso + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Errore nello spostamento di {0} elemento/i in "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Errore nello spostamento di {0} elemento/i da "{1}" in "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3700,7 +3718,7 @@ Shown in a StatusCenter card. - {0}/{1} {0, plural, one {item} other {items}} processed + {0}/{1} {0, plural, one {elemento elaborato} other {elementi elaborati}} Shown in a StatusCenter card. Used as "8/20 items processed" @@ -3746,7 +3764,7 @@ Si è verificato un errore durante l'applicazione di quest'etichetta - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Estrai {0, plural, one {l'archivio selezionato} other {gli archivi selezionati}} qui per un singolo elemento o per una nuova cartella per un oggetto multiplo Estrai qui (Smart) @@ -4066,9 +4084,6 @@ Vai alla pagina iniziale - - Mostra il pulsante Home nella barra degli strumenti - Barre degli strumenti @@ -4208,9 +4223,6 @@ Decimale - - Attiva Omnibar - È possibile aggiungere sezioni alla barra laterale facendo clic con il tasto destro del mouse e selezionando le sezioni che si desidera aggiungere @@ -4218,12 +4230,50 @@ Trascina qui i file o le cartelle per interagire con loro attraverso schede diverse - Enter a path to navigate to... + Inserisci un percorso per navigare a... - Find features and commands... + Trova funzionalità e comandi... - Search for files and folders... + Cerca per file e cartelle... + + + Durante le operazioni dei file + + + Mostra il pulsante centro di stato + + + Anello di avanzamento dello stato centrale + Screen reader name for the status center progress ring + + + File icone + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Mostra cartelle in {0} + + + Mostra cartelle in Home + + + Non ci sono comandi contenenti {0} + + + Mostra altro + + + Filtra per + + + Nome file + + + Mostra l'opzione per aprire le cartelle nel terminale di Windows diff --git a/src/Files.App/Strings/ja-JP/Resources.resw b/src/Files.App/Strings/ja-JP/Resources.resw index 1a3f95cec3ad..f6cf34726b6d 100644 --- a/src/Files.App/Strings/ja-JP/Resources.resw +++ b/src/Files.App/Strings/ja-JP/Resources.resw @@ -124,7 +124,7 @@ パスのコピー - Copy item path + アイテムのパスをコピー 引用符付きでパスのコピー @@ -166,7 +166,7 @@ スキップ - Select all + すべて選択 選択を反転 @@ -217,7 +217,7 @@ すべてのファイルとフォルダーを表示する - Dot files + ドット ファイルを表示する 外観 @@ -1089,13 +1089,19 @@ 情報ウィンドウの表示を切り替える - 詳細およびプレビューのための情報ウィンドウを表示するかどうかを切り替える + 詳細/プレビュー ペインの表示/非表示を切り替え - Toggle toolbar + ツールバーの表示を切り替える - Toggle visibility of the toolbar + ツールバーの表示/非表示 + + + Toggle filter header + + + Toggle visibility of the filter header プレビューを利用できません @@ -1398,7 +1404,7 @@ {0} 個の項目 - Reopen tab + 閉じたタブを再度開く 名前を変更 @@ -1605,7 +1611,7 @@ すべての子オブジェクトのアクセス許可エントリを、このオブジェクトから継承可能なアクセス許可エントリに置き換えます - Close pane + ペインを閉じる コンパクト オーバーレイを開始 @@ -2012,11 +2018,23 @@ 動作 - - Files を評価 + + こんにちは! + + + Files をお楽しみいただけましたか? Microsoft Store でのレビューをご検討ください。 + + + Files をお楽しみいただけましたか? GitHub でプロジェクトをサポートすることをご検討ください。 + + + スポンサー - - Files を評価していただけますか? + + 評価する + + + 閉じる 背景に設定 @@ -2295,7 +2313,7 @@ コンテキスト メニューの設定 - File extensions + ファイルの拡張子 フォーマット @@ -2304,13 +2322,13 @@ ヘルプ - Full screen + 全画面表示 このタグを削除しますか? - Play + 再生 高さ @@ -2370,7 +2388,7 @@ サイズを大きくする - Sort direction + 並べ替え方向 無効な名前です @@ -2382,37 +2400,37 @@ ビデオ - Preview popup + プレビューポップアップ コンパクト オーバーレイを切り替える - Open the online help page in your browser + ブラウザでオンラインヘルプページを開く - Toggle full screen mode + 全画面モードの切り替え - Enter compact overlay mode + コンパクト オーバーレイを開始 - Exit compact overlay mode + コンパクト オーバーレイを終了 - Toggle compact overlay mode + コンパクト オーバーレイモードを切り替える - Start search in the OmniBar + OmniBarで検索を開始 - Toggle visibility of hidden items + 非表示項目の表示を切り替える - Toggle visibility of dot files + ドットファイルの表示を切り替える - Toggle visibility of file extensions + ファイル拡張子の表示を切り替える ファイルをプレビューするためのプレビュー ウィンドウを表示する @@ -2421,37 +2439,37 @@ サイドバーを表示するかどうかを切り替える - Copy selected {0, plural, one {item} other {items}} to clipboard + 選択した{0, plural, other {項目}}をコピー - 現在のディレクトリのパスをクリップボードにコピーする + カレントディレクトリのパスをコピー - 選択した項目のパスをクリップボードにコピーする + 選択した項目のパスをコピー - 選択した項目のパスを引用符付きでクリップボードにコピーする + 選択した項目のパスを引用符付きでコピー - 現在のディレクトリのパスを引用符付きでクリップボードにコピーする + 現在のディレクトリのパスを引用符付きでコピーする - Cut selected {0, plural, one {item} other {items}} to clipboard + 選択した{0, plural, other {項目}}をカット - Paste clipboard items to the current folder + 項目を現在のフォルダーに貼り付け - Paste clipboard items to the current folder as shortcuts + 項目を現在のフォルダーにショートカットとして貼り付ける - Paste clipboard items to the selected folder + 選択したフォルダーに項目を貼り付け - Paste to selected folder + 選択したフォルダーに貼り付け - Delete selected {0, plural, one {item} other {items}} + 選択した{0, plural, other {項目}}を削除 新しいフォルダーを作成する @@ -2463,7 +2481,7 @@ 任意の項目へのショートカットを作成する - Empty the contents of Recycle Bin + ごみ箱を空にする 選択した項目の [フォーマット] メニューを開く @@ -2493,10 +2511,10 @@ すべての項目を選択する - Invert selected items + 項目の選択を反転する - Clear selected items + 選択した項目をクリア 項目の選択を切り替える @@ -2529,13 +2547,13 @@ 選択した画像をアプリの背景に設定する - Install font + フォントをインストール - Install driver + ドライバーをインストール - Install certificate + 証明書をインストール 選択した {0, plural, other {フォント}}をインストールする @@ -2559,22 +2577,22 @@ ポップアップ ウィンドウでプレビューを開く - Create archive with selected {0, plural, one {item} other {items}} + 選択した{0, plural, other {項目}}でアーカイブを作成 - Create 7z archive with selected {0, plural, one {item} other {items}} + 選択した{0, plural, other {項目}}で7zアーカイブを作成 - Create zip archive with selected {0, plural, one {item} other {items}} + 選択した{0, plural, other {項目}}でzipアーカイブを作成 - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + 選択した {0, plural, other {アーカイブ}} を任意のフォルダに展開 - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + 選択した {0, plural, other {アーカイブ}} を現在のフォルダに展開 - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -2703,10 +2721,10 @@ 新しいタブ - Navigate backward + 前に戻る - Navigate forward + 次へ進む 1つ上のフォルダーに移動する @@ -2739,7 +2757,7 @@ 現在のタブを含むすべてのタブを閉じる - Reopen recently closed tab + 最近閉じたタブを開く 前のタブに移動する @@ -2751,13 +2769,13 @@ 現在のタブを閉じる - Close the active pane + アクティブなペインを閉じる 別のペインに移動 - Switch focus to the other pane + 他のペインにフォーカスする サイドバーの表示を切り替える @@ -2965,13 +2983,13 @@ タグなし - Previous tab + 前のタブへ - Next tab + 次のタブへ - Close tab + タブを閉じる パスを編集 @@ -3133,7 +3151,7 @@ 新しいブランチに切り替える - Create a folder with the currently selected {0, plural, one {item} other {items}} + 選択された{0, plural, other {}}から新しいフォルダーを作成する プロパティ @@ -3281,7 +3299,7 @@ リポジトリの初期化 - Initialize current folder as a git repository + 今いる場所をGitリポジトリとして初期化する リモート リポジトリ名 @@ -3296,13 +3314,13 @@ 項目をパスで並べ替える - Open selected directory in a new pane + ディレクトリを新しいペインで開く - Open selected directory in a new tab + ディレクトリを新しいタブで開く - Open selected directory in a new window + ディレクトリを新しいウインドウで開く すべて開く @@ -3327,7 +3345,7 @@ コマンド {0} は現在実行できません。 - Command Palette + コマンドパレット Open Command Palette in the OmniBar @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - {0} 項目を "{1}" へ圧縮しました + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} 項目を "{1}" から "{2}" へ圧縮しました + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} 項目を "{1}" へ圧縮中にエラーが発生しました + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} 項目を "{1}" から "{2}" へ圧縮できませんでした + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} 項目を "{1}" へ圧縮しています + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} 項目を "{1}" から "{2}" へ圧縮しています + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - "{1}" からの {0} 個のフォントのインストールをキャンセルしました + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - {0} 個のフォントをインストールしました + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - "{1}" から {0} 個のフォントをインストールしました + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - {0} 個のフォントのインストール中にエラーが発生しました + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - "{1}" からの {0} 個のフォントをインストールできませんでした + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - {0} 個のフォントをインストールしています + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - "{1}" からの {0} 個のフォントをインストールしています + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - {0} 項目の "{1}" へのコピーをキャンセルしました + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} 項目の "{1}" から "{2}" へのコピーをキャンセルしました + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} 項目を "{1}" へコピーしました + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} 項目を "{1}" から "{2}" へコピーしました + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} 項目を "{1}" へコピー中にエラーが発生しました + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} 項目を "{1}" から "{2}" へコピーできませんでした + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} 項目を "{1}" へコピーしています + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} 項目を "{1}" から "{2}" へコピーしています + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - {0} 項目の "{1}" からの削除をキャンセルしました + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - {0} 項目を "{1}" から削除しました + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - {0} 項目を "{1}" から削除中にエラーが発生しました + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - {0} 項目を "{1}" から削除できませんでした + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - {0} 項目を "{1}" から削除しています + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - {0} 項目の "{1}" への移動をキャンセルしました + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} 項目の "{1}" から "{2}" への移動をキャンセルしました + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} 項目を "{1}" へ移動しました + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} 項目を "{1}" から "{2}" へ移動しました + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} 項目を "{1}" へ移動しています + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} 項目を "{1}" から "{2}" へ移動しています + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} 項目を "{1}" へ移動中にエラーが発生しました + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} 項目を "{1}" から "{2}" へ移動できませんでした + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3700,7 +3718,7 @@ Shown in a StatusCenter card. - {0}/{1} {0, plural, one {item} other {items}} processed + {0}/{1}{0, plural, other {}} 完了 Shown in a StatusCenter card. Used as "8/20 items processed" @@ -3746,7 +3764,7 @@ このタグを適用中にエラーが発生しました - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item ここに展開 (スマート) @@ -4016,16 +4034,16 @@ タブ操作メニュー - Vertical pane + 垂直ペイン - Add vertical pane + 縦にペインを追加する - Horizontal pane + 水平ペイン - Add horizontal pane + 横にペインを追加する 縦に配置 @@ -4066,9 +4084,6 @@ ホーム ページに移動する - - アドレス バーにホーム ボタンを表示する - ツールバー @@ -4208,22 +4223,57 @@ 10進 - - オムニバーを有効にする - - You can add sections to the sidebar by right-clicking and selecting the sections you want to add + サイドバーを右クリックして、追加したいセクションを選ぶとサイドバーに追加することができます - Drag files or folders here to interact with them across different tabs + ここにファイルまたはフォルダをドラッグしてタブの間でファイルを操作します - Enter a path to navigate to... + 移動先のパスを入力… - Find features and commands... + 機能とコマンドを検索… - Search for files and folders... + ファイルとフォルダーを検索… + + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + {0}を含むコマンドは存在しません + + + もっと見る + + + 絞り込む + + + ファイル名 + + + Show option to open folders in Windows Terminal diff --git a/src/Files.App/Strings/ka/Resources.resw b/src/Files.App/Strings/ka/Resources.resw index 349ed612eca4..9ddaaf920615 100644 --- a/src/Files.App/Strings/ka/Resources.resw +++ b/src/Files.App/Strings/ka/Resources.resw @@ -217,7 +217,7 @@ დამალული ფაილების და საქაღალდეების ჩვენება - Dot files + Show dot files შესახედაობა @@ -1089,7 +1089,7 @@ Toggle the info pane - Toggle the info pane to view the detail/preview panes + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1097,6 +1097,12 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + გადახედვა არ არის შესაძლებელი @@ -2012,11 +2018,23 @@ Behaviors - - Review Files + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us - - Would you like to review Files? + + Dismiss Set as background @@ -2421,31 +2439,31 @@ Toggle whether to show sidebar - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Copy path of selected items to the clipboard + Copy path of the current directory - Copy path of selected items to the clipboard + Copy path of selected items - Copy path of selected items with quotes to the clipboard + Copy path of selected items with quotes - Copy path of selected items with quotes to the clipboard + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Compressed {0} item(s) to "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressed {0} item(s) from "{1}" to "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error compressing {0} item(s) to "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to compress {0} item(s) from "{1}" to "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Compressing {0} item(s) to "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressing {0} item(s) from "{1}" to "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) to "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) from "{1}" to "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copied {0} item(s) to "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copied {0} item(s) from "{1}" to "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error copying {0} item(s) to "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to copy {0} item(s) from "{1}" to "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copying {0} item(s) to "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copying {0} item(s) from "{1}" to "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Canceled deleting {0} item(s) from "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleted {0} item(s) from "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Error deleting {0} item(s) from "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Failed to delete {0} item(s) from "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleting {0} item(s) from "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) to "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) from "{1}" to "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moved {0} item(s) to "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moved {0} item(s) from "{1}" to "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moving {0} item(s) to "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moving {0} item(s) from "{1}" to "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error moving {0} item(s) to "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to move {0} item(s) from "{1}" to "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ There was an error applying this tag - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Extract here (Smart) @@ -4066,9 +4084,6 @@ Navigate to the home page - - Show home button in address bar - Toolbars @@ -4208,9 +4223,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/km-KH/Resources.resw b/src/Files.App/Strings/km-KH/Resources.resw index 831973f406b2..88926145b8bb 100644 --- a/src/Files.App/Strings/km-KH/Resources.resw +++ b/src/Files.App/Strings/km-KH/Resources.resw @@ -217,7 +217,7 @@ បង្ហាញឯកសារ និងថតដែលលាក់ - Dot files + Show dot files រូបរាង @@ -1089,7 +1089,7 @@ បិទបើកផ្ទាំងព័ត៌មាន - បិទបើកផ្ទាំងព័ត៌មាន ដើម្បីមើលផ្ទាំងលម្អិត/មើលជាមុន + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1097,6 +1097,12 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + មិនមានការមើលជាមុនទេ @@ -1218,13 +1224,13 @@ Columns (Ctrl+Shift+6) - Pin to the Start Menu + ខ្ទាស់​ទៅ​បញ្ជី​ចាប់ផ្ដើម​ - Unpin from the Start Menu + ដក​ខ្ទាស់​ចេញ​ពី​បញ្ជី​ចាប់ផ្ដើម​ - Library + បណ្ណាល័យ​ Locations: @@ -2012,11 +2018,23 @@ Behaviors - - Review Files + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us - - Would you like to review Files? + + Dismiss Set as background @@ -2421,31 +2439,31 @@ Toggle whether to show sidebar - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Copy path of selected items to the clipboard + Copy path of the current directory - Copy path of selected items to the clipboard + Copy path of selected items - Copy path of selected items with quotes to the clipboard + Copy path of selected items with quotes - Copy path of selected items with quotes to the clipboard + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Compressed {0} item(s) to "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressed {0} item(s) from "{1}" to "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error compressing {0} item(s) to "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to compress {0} item(s) from "{1}" to "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Compressing {0} item(s) to "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressing {0} item(s) from "{1}" to "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) to "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) from "{1}" to "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copied {0} item(s) to "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copied {0} item(s) from "{1}" to "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error copying {0} item(s) to "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to copy {0} item(s) from "{1}" to "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copying {0} item(s) to "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copying {0} item(s) from "{1}" to "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Canceled deleting {0} item(s) from "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleted {0} item(s) from "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Error deleting {0} item(s) from "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Failed to delete {0} item(s) from "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleting {0} item(s) from "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) to "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) from "{1}" to "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moved {0} item(s) to "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moved {0} item(s) from "{1}" to "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moving {0} item(s) to "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moving {0} item(s) from "{1}" to "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error moving {0} item(s) to "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to move {0} item(s) from "{1}" to "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ There was an error applying this tag - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Extract here (Smart) @@ -4066,9 +4084,6 @@ Navigate to the home page - - Show home button in address bar - Toolbars @@ -4208,9 +4223,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/ko-KR/Resources.resw b/src/Files.App/Strings/ko-KR/Resources.resw index e810401cfae9..48ab0aecd588 100644 --- a/src/Files.App/Strings/ko-KR/Resources.resw +++ b/src/Files.App/Strings/ko-KR/Resources.resw @@ -217,7 +217,7 @@ 숨김 파일 및 폴더 표시 - Dot files + Show dot files 모양 @@ -1089,7 +1089,7 @@ 정보 보기 - 세부정보/미리보기 패널을 보려면 정보 보기로 전환하세요 + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1097,6 +1097,12 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + 확인 가능한 미리 보기가 없습니다 @@ -2012,11 +2018,23 @@ 동작 - - 파일 검토 + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us - - 파일을 검토하시겠어요? + + Dismiss 배경으로 설정 @@ -2421,31 +2439,31 @@ 사이드바 표시 전환 - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - 선택된 요소들의 경로를 클립보드에 복사하기 + Copy path of the current directory - 선택한 항목의 경로를 클립보드에 복사 + Copy path of selected items - 따옴표로 선택한 항목의 경로를 클립보드에 복사하기 + Copy path of selected items with quotes - 선택된 요소들의 경로를 홑따옴표를 포함하여 클립보드에 복사하기 + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - 항목 {0}개를 "{1}"(으)로 압축했습니다 + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 항목 {0}개를 "{1}"에서 "{2}"(으)로 압축했습니다 + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - 항목 {0}개를 "{1}"(으)로 압축하는 작업 중 오류가 발생했습니다. + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 항목 {0}개를 {1}에서 {2}(으)로 압축하지 못했습니다. + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - 항목 {0}개를 "{1}"(으)로 압축 중 + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 항목 {0}개를 "{1}"에서 "{2}"(으)로 압축 중 + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - 항목 {0}개를 "{1}"(으)로 복사하는 작업을 취소했습니다 + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 항목 {0}개를 "{1}"에서 "{2}"(으)로 복사하는 작업을 취소했습니다 + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - 항목 {0}개를 "{1}"(으)로 복사했습니다 + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 항목 {0}개를 "{1}"에서 "{2}"(으)로 복사했습니다 + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - 항목 {0}개를 "{1}"(으)로 복사하는 작업 중 오류가 발생했습니다. + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 항목 {0}개를 "{1}"에서 "{2}"(으)로 복사하지 못했습니다. + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - 항목 {0}개를 "{1}"(으)로 복사 중 + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 항목 {0}개를 "{1}"에서 "{2}"(으)로 복사 중 + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - 항목 {0}개를 "{1}"에서 삭제하는 작업을 취소했습니다 + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - 항목 {0}개를 "{1}"에서 삭제했습니다 + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - 항목 {0}개를 "{1}"에서 삭제하는 작업 중 오류가 발생했습니다 + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - 항목 {0}개를 "{1}"에서 삭제하는 데 실패했습니다 + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - 항목 {0}개를 "{1}"에서 삭제 중 + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - 항목 {0}개를 "{1}"(으)로 이동하는 작업을 취소했습니다 + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 항목 {0}개를 "{1}"에서 "{2}"(으)로 이동하는 작업을 취소했습니다 + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - 항목 {0}개를 "{1}"(으)로 이동했습니다 + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 항목 {0}개를 "{1}"에서 "{2}"(으)로 이동했습니다 + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - 항목 {0}개를 "{1}"(으)로 이동 중 + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 항목 {0}개를 "{1}"에서 "{2}"(으)로 이동 중 + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - 항목 {0}개를 "{1}"(으)로 이동하는 작업 중 오류가 발생했습니다. + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 항목 {0}개를 "{1}"에서 "{2}"(으)로 이동하지 못했습니다. + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ 태그를 적용하는 중 오류가 발생했습니다. - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item 여기에 압축 해제 (스마트) @@ -4066,9 +4084,6 @@ 홈 페이지로 이동 - - 주소 창에 홈 버튼 표시 - 도구 모음 @@ -4208,9 +4223,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/lt-LT/Resources.resw b/src/Files.App/Strings/lt-LT/Resources.resw index 45ec6954255e..2e8d8cb313d5 100644 --- a/src/Files.App/Strings/lt-LT/Resources.resw +++ b/src/Files.App/Strings/lt-LT/Resources.resw @@ -118,16 +118,16 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - New window + Naujas langas - Copy path + Kopijuoti kelio adresą - Copy item path + Kopijuoti daikto kelio adresą - Copy path with quotes + Kopijuoti kelio adresą su kabutėmis Copy selected item path with quotes @@ -142,16 +142,16 @@ Sukurta: - Path + Vieta Dydis: - Size on disk: + Dydis diske: - Uncompressed size: + Nesuspaustas/Nesuglaudintas dydis: Ši veiksma negalima atlikti @@ -196,34 +196,34 @@ Remove this item - GitHub repository + „GitHub“ saugykla Apie - Open source + Atvirasis kodas Datos formatas - Theme + Apipavidalinimas - Show extensions for known file types + Rodyti žinomų failų plėtinius Show hidden files and folders - Dot files + Show dot files Išvaizda - Background color + Fono spalva Išplėstinė @@ -238,46 +238,46 @@ Open a specific page or pages - Desktop + Darbalaukis - Documents + Dokumentai - Downloads + Atsisiuntimai - Name + Pavadinimas/-ą Ascending - Paste + Įklijuoti - Paste shortcut + Įklijuoti nuorodą - New + Kurti naują - Properties + Ypatybės - Open + Atidaryti/Atverti - Open in new tab + Atidaryti naujame skirtuke - Open in new window + Atidaryti naujame lange Share - Cut + Iškirpti Delete @@ -301,25 +301,25 @@ Enter an item name - Create new {0} + Sukurti naują – „{0}“ - Light + Šviesus - Dark + Tamsus Paraiška - System + Sistema New folder - New file + Naujas failas This folder is empty. @@ -370,7 +370,7 @@ The file you are attempting to access may have been moved or deleted. - File Not Found + Failas nerastas The folder you are attempting to access may have been moved or deleted. @@ -385,7 +385,7 @@ The file you are attempting to access is currently being used by another application - File is in use + Failas yra naudojamas Maketavimas @@ -430,7 +430,7 @@ {0} seconds ago - Now + Dabar The requested operation is not supported @@ -456,7 +456,7 @@ ICU format for plurals, more information here: https://support.crowdin.com/icu-message-syntax/#plural - Yes + Taip Are you sure you want to permanently delete all these items? @@ -513,7 +513,7 @@ Capacity: - File system: + Failų sistema: Recent @@ -534,7 +534,7 @@ Can't access any items to display - Move to {0} + Perkelti į – {0} Copy to {0} @@ -549,7 +549,7 @@ Open file location - Arguments: + Argumentai: Destination: @@ -564,10 +564,10 @@ Bendra - Shortcut + Nuoroda - Internet shortcut + Internetinė nuoroda {0} - shortcut @@ -579,7 +579,7 @@ Something went wrong! - Report this issue + Pranešti apie šią problemą The item referenced is either invalid or inaccessible.{0}Error message:{0}{1} @@ -588,7 +588,7 @@ Invalid item - Version: + Versija: There's nothing to share right now... @@ -624,13 +624,13 @@ Item name was too long - Show more options + Rodyti daugiau parinkčių The application needs to be restarted in order to apply these settings, would you like to restart the app? - Sponsor us on GitHub + Paremkite mus „GitHub“ platformoje We weren't able to create this item @@ -639,7 +639,7 @@ Access Denied - Set as + Nustatyti kaip Cancel @@ -651,10 +651,10 @@ Choose a type for this new item below - File + Failas - Creates an empty file + Sukuria tuščią failą Folder @@ -678,7 +678,7 @@ There was an issue saving some properties. - Error + Klaida Close anyway @@ -795,13 +795,13 @@ Disc Number - Genre + Žanras Track Number - Duration + Trukmė Frame Count @@ -942,7 +942,7 @@ Audio - Music + Muzika Video @@ -951,7 +951,7 @@ Document - Address + Adresas Selection options @@ -978,13 +978,13 @@ The device can now be safely removed from the computer. - Problem Ejecting Device + Įvyko problema, bandant išstumti įrenginį This device is currently in use. Close any programs, windows or tabs that might be using the device, and then try again. - Eject + Išstumti Duplicate tab @@ -993,7 +993,7 @@ Move tab to new window - New tab + Naujas skirtukas Some properties may contain personal information. @@ -1014,7 +1014,7 @@ Details - No + Ne Show protected system files @@ -1029,10 +1029,10 @@ Original path - Add + Pridėti - Edit + Redaguoti Remove @@ -1068,10 +1068,10 @@ Date deleted - Cloud Drives + Debesijos saugykla - Confirm + Patvirtinti Desired name @@ -1089,7 +1089,7 @@ Toggle the info pane - Toggle the info pane to view the detail/preview panes + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1097,6 +1097,12 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + No preview available @@ -1107,7 +1113,7 @@ Unpin from Sidebar - Network + Tinklas File details @@ -1140,7 +1146,7 @@ Excluded from sync - Not calculated + Neapskaičiuota/-s Unknown @@ -1152,7 +1158,7 @@ CD ROM Drive - Cloud Drive + Debesijos saugykla Fixed Disk Drive @@ -1182,7 +1188,7 @@ Date created - More options... + Daugiau parinkčių... Map network drive @@ -1191,7 +1197,7 @@ Pinned - Libraries + Bibliotekos No item selected @@ -1224,7 +1230,7 @@ Unpin from the Start Menu - Library + Biblioteka Locations: @@ -1308,16 +1314,16 @@ Create folder with selection - Type: + Tipas: Date modified: - Open with + Atidaryti naudojant - File icon + Failo piktograma Original path column @@ -1344,37 +1350,37 @@ Descending - Huge + Didžiulis - Very large + Labai didelis - Large + Didelis - Medium + Vidutinis - Small + Mažas - Tiny + Mažytis - Future + Ateitis - Today + Šiandien - Yesterday + Vakar - Earlier this week + Anksčiau šią savaitę - Last week + Praeitą savaitę Earlier this month @@ -1422,7 +1428,7 @@ Sync status - Security + Saugumas Advanced permissions @@ -1464,10 +1470,10 @@ You do not have permissions to view the security properties of this object. Click "Advanced permissions" to proceed. - Owner: + Savininkas/-ė: - Unknown owner + Nežinoma/-s savininkė/-as Extract archive @@ -1491,7 +1497,7 @@ Restore Libraries - Owner + Savininkas/-ė Special @@ -1506,7 +1512,7 @@ Principal - files + failai this folder @@ -1530,7 +1536,7 @@ This folder, subfolders and files - Only files + Tik failai Only subfolders @@ -1554,13 +1560,13 @@ Create folders - Create files + Sukurti failus Delete subdirectories and files - Execute files + Vykdyti failus Read attributes @@ -1617,7 +1623,7 @@ File description - Company + Įmonė Kalba @@ -1626,7 +1632,7 @@ Trademarks - File version + Failo versija Load full preview @@ -1641,13 +1647,13 @@ Uncompressed size - WSL + „WSL“ Hide {0} section - Add file + Pridėti failą Updates available @@ -1662,7 +1668,7 @@ Update - Home + Namai The archive extraction completed successfully. @@ -1695,7 +1701,7 @@ Insert a disc - OK + Gerai/Supratau Credential required @@ -1764,16 +1770,16 @@ Folder path - Export settings + Eksportuoti nustatymus - Import settings + Importuoti nustatymus - Couldn't import settings. The settings file is corrupted. + Nepavyko importuoti nustatymų. Nustatymų failas yra korumpuotas. - Error importing settings + Įvyko klaida importuojant nustatymus Empty Recycle Bin @@ -1809,7 +1815,7 @@ On this program start - System + Sistema System (Enhanced) @@ -1878,10 +1884,10 @@ The flatten operations are permanent and not recommended. Continue at your own risk. - Create Library + Sukurti biblioteką - Enter Library name + Įveskite bibliotekos pavadinimą Calculate folder sizes @@ -1908,22 +1914,22 @@ Cleanup your drive contents - Type + Tipas/-ą - Bytes + Baitai - Extract + Išskleisti - Extract files + Išskleisti failus - Extract here + Išskleisti čia - Ctrl+E + Vald.+E Extract to {0} @@ -1932,7 +1938,7 @@ Run script - Run with PowerShell + Vykdyti su „PowerShell“ Calculating folder sizes is resource intensive and may cause your CPU usage to increase. @@ -1944,7 +1950,7 @@ Rotate right - Install + Įdiegti Close tabs to the left @@ -1959,7 +1965,7 @@ Close all tabs - Music + Muzika Pictures @@ -1974,10 +1980,10 @@ Universal - ex: {0}, {1} + Pvz.: {0}, {1} - Show thumbnails + Rodyti miniatiūras Retry @@ -2012,11 +2018,23 @@ Behaviors - - Review Files + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Įvertinkite mus - - Would you like to review Files? + + Dismiss Set as background @@ -2109,7 +2127,7 @@ {0} (detected) - Path + Kelias Sorting and grouping @@ -2124,7 +2142,7 @@ Create {0} - Enter a name + Įveskite pavadinimą Compression level @@ -2160,19 +2178,19 @@ DVD - FAT + „FAT“ - Blu-ray + „Blu-ray“ - Encryption + Šifravimas - Password + Slaptažodis - Format + Formatas Sync status column @@ -2199,13 +2217,13 @@ Enter the location of the item: - Creates a shortcut + Sukuria nuorodą Recently used files is currently disabled in Windows File Explorer. - Edit settings file + Redaguoti nustatymų failą Open settings file in your default editor @@ -2265,19 +2283,19 @@ Network folder error - App version + Programos versija - Windows version + „Windows“ versija - Always + Visada Permanent deletion only - Never + Niekada Tag color @@ -2328,7 +2346,7 @@ Open in Windows Terminal as administrator - Save + Išsaugoti Multiselect @@ -2358,7 +2376,7 @@ Select hashes to show - Calculating... + Apskaičiuojama... Pinned items @@ -2379,7 +2397,7 @@ Name must not be empty or start or end with a period. - Videos + Vaizdo įrašai Preview popup @@ -2421,31 +2439,31 @@ Toggle whether to show sidebar - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Copy path of selected items to the clipboard + Copy path of the current directory - Copy path of selected items to the clipboard + Copy path of selected items - Copy path of selected items with quotes to the clipboard + Copy path of selected items with quotes - Copy path of selected items with quotes to the clipboard + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2529,13 +2547,13 @@ Set selected picture as the app background - Install font + Įdiegti šriftą - Install driver + Įdiegti tvarkyklę - Install certificate + Įdiegti sertifikatą Install selected {0, plural, one {font} other {fonts}} @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -2583,7 +2601,7 @@ Rotate selected {0, plural, one {image} other {images}} to the right - Open settings page + Atidaryti nustatymų puslapį Open folder in terminal @@ -2767,7 +2785,7 @@ Key name for hotkeys in menus. Use abbreviation if possible. - Ctrl + Vald. Key name for hotkeys in menus. Use abbreviation if possible. @@ -2775,7 +2793,7 @@ Key name for hotkeys in menus. Use abbreviation if possible. - Win + „Win“ Key name for hotkeys in menus. Use abbreviation if possible. @@ -2807,15 +2825,15 @@ Key name for hotkeys in menus. Use abbreviation if possible. - Left + Kairė Key name for hotkeys in menus. Use abbreviation if possible. - Right + Dešinė Key name for hotkeys in menus. Use abbreviation if possible. - Down + Žemyn Key name for hotkeys in menus. Use abbreviation if possible. @@ -2823,7 +2841,7 @@ Key name for hotkeys in menus. Use abbreviation if possible. - Home + Namai Key name for hotkeys in menus. Use abbreviation if possible. @@ -3028,7 +3046,7 @@ Redo the last file operation - Location: + Vietovė: Group items by month @@ -3136,7 +3154,7 @@ Create a folder with the currently selected {0, plural, one {item} other {items}} - Properties + Ypatybės Open File Explorer properties @@ -3154,7 +3172,7 @@ Remotes - Translate on Crowdin + Verskite „Crowdin“ platformoje Fetch @@ -3178,7 +3196,7 @@ Git status - Git error + „Git“ klaida git pull failed due to a timeout error @@ -3227,7 +3245,7 @@ Run git push - Sync + Sinchronizuoti Run git pull and then git push @@ -3266,7 +3284,7 @@ Deleted - Modified + Modifikuota Untracked @@ -3360,7 +3378,7 @@ Leave app running in the background when the window is closed - Blue + Mėlyna/-s One of the custom color themes @@ -3388,7 +3406,7 @@ One of the custom color themes - Green + Žalia/-s One of the custom color themes @@ -3412,7 +3430,7 @@ One of the custom color themes - Red + Raudona/-s One of the custom color themes @@ -3461,7 +3479,7 @@ Processing items... - Speed: + Greitis: Canceled compressing {0} items to "{1}" @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Compressed {0} item(s) to "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressed {0} item(s) from "{1}" to "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error compressing {0} item(s) to "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to compress {0} item(s) from "{1}" to "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Compressing {0} item(s) to "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressing {0} item(s) from "{1}" to "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) to "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) from "{1}" to "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copied {0} item(s) to "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copied {0} item(s) from "{1}" to "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error copying {0} item(s) to "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to copy {0} item(s) from "{1}" to "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copying {0} item(s) to "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copying {0} item(s) from "{1}" to "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Canceled deleting {0} item(s) from "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleted {0} item(s) from "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Error deleting {0} item(s) from "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Failed to delete {0} item(s) from "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleting {0} item(s) from "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) to "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) from "{1}" to "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moved {0} item(s) to "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moved {0} item(s) from "{1}" to "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moving {0} item(s) to "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moving {0} item(s) from "{1}" to "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error moving {0} item(s) to "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to move {0} item(s) from "{1}" to "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ There was an error applying this tag - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Extract here (Smart) @@ -3816,11 +3834,11 @@ Used to describe layout sizes - Small + Mažas Used to describe layout sizes - Medium + Vidutinis Used to describe layout sizes @@ -3844,7 +3862,7 @@ Used to describe layout sizes - Large + Didelis Used to describe layout sizes @@ -3921,14 +3939,14 @@ Image fit - Left + Kairė Image alignment type Opacity - Right + Dešinė Image alignment type @@ -3969,15 +3987,15 @@ This is the friendly name for DLL files. - ICO File + „ICO“ failas This is the friendly name for ICO files. - ICL File + „ICL“ failas This is the friendly name for ICL files. - Zip File + „Zip“ failas This is the friendly name for ZIP files. @@ -4066,9 +4084,6 @@ Navigate to the home page - - Show home button in address bar - Toolbars @@ -4168,7 +4183,7 @@ The configured IDE could not be located - Open settings + Atidaryti nustatymus Visual Studio Code @@ -4196,11 +4211,11 @@ Cannot clone repo dialog title - Compare a file + Palyginti failą Button that appears in file hash properties that allows the user to compare two files - Size format + Dydžio formatas Binary @@ -4208,9 +4223,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Piktogramų failai + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + Žiūrėti daugiau + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/lv-LV/Resources.resw b/src/Files.App/Strings/lv-LV/Resources.resw index b1107b71b484..e4ef9e4011c9 100644 --- a/src/Files.App/Strings/lv-LV/Resources.resw +++ b/src/Files.App/Strings/lv-LV/Resources.resw @@ -217,7 +217,7 @@ Rādīt slēptos failus un mapes - Dot files + Show dot files Izskats @@ -1089,7 +1089,7 @@ Toggle the info pane - Toggle the info pane to view the detail/preview panes + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1097,6 +1097,12 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + Priekšskatījums nav pieejams @@ -2012,11 +2018,23 @@ Uzvedības - - Pārskatīt Failus + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us - - Vai vēlies pārskaīt Failus? + + Dismiss Iestatīt ka fonu @@ -2421,31 +2439,31 @@ Toggle whether to show sidebar - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Copy path of selected items to the clipboard + Copy path of the current directory - Copy path of selected items to the clipboard + Copy path of selected items - Copy path of selected items with quotes to the clipboard + Copy path of selected items with quotes - Copy path of selected items with quotes to the clipboard + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Compressed {0} item(s) to "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressed {0} item(s) from "{1}" to "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error compressing {0} item(s) to "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to compress {0} item(s) from "{1}" to "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Compressing {0} item(s) to "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressing {0} item(s) from "{1}" to "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) to "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) from "{1}" to "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copied {0} item(s) to "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copied {0} item(s) from "{1}" to "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error copying {0} item(s) to "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to copy {0} item(s) from "{1}" to "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copying {0} item(s) to "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copying {0} item(s) from "{1}" to "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Canceled deleting {0} item(s) from "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleted {0} item(s) from "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Error deleting {0} item(s) from "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Failed to delete {0} item(s) from "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleting {0} item(s) from "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) to "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) from "{1}" to "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moved {0} item(s) to "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moved {0} item(s) from "{1}" to "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moving {0} item(s) to "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moving {0} item(s) from "{1}" to "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error moving {0} item(s) to "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to move {0} item(s) from "{1}" to "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ There was an error applying this tag - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Extract here (Smart) @@ -4066,9 +4084,6 @@ Navigate to the home page - - Show home button in address bar - Toolbars @@ -4208,9 +4223,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/ms-MY/Resources.resw b/src/Files.App/Strings/ms-MY/Resources.resw index 88d1a7bf6c8f..ea869a5720d5 100644 --- a/src/Files.App/Strings/ms-MY/Resources.resw +++ b/src/Files.App/Strings/ms-MY/Resources.resw @@ -118,7 +118,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Tetingkap baru + Tetingkap baharu Salin laluan @@ -187,7 +187,7 @@ Masukkan laluan untuk navigasi atau taip ">" untuk membuka palet arahan - Cari + Carian Fail yang telah anda akses sebelum ini akan dipaparkan di sini @@ -217,7 +217,7 @@ Tunjukkan fail dan folder tersembunyi - Dot files + Show dot files Penampilan @@ -244,7 +244,7 @@ Dokumen - Muat turun + Muat Turun Nama @@ -672,7 +672,7 @@ Pindahkan sambungan shell ke dalam submenu - Tunjuk dialog pengesahan ketika memadam fail + Tunjukkan dialog pengesahan semasa memadam item Terdapat masalah dalam menyimpan "Properties". @@ -987,10 +987,10 @@ Eject - Duplicate tab + Gandakan tab - Move tab to new window + Pindahkan tab ke tetingkap baharu Tab baharu @@ -1041,19 +1041,19 @@ Buka tab dalam mod dwipanel - Paparkan opsyen untuk memnuka folder di panel baharu + Tunjukkan pilihan buka dalam anak tetingkap baharu - Show option to copy path + Tunjukkan pilihan salin laluan - Paparkan opsyen untuk mencipta folder dengan pilihan + Tunjukkan pilihan untuk buat folder dengan pilihan - Paparkan opsyen untuk mencipta pintasan + Tunjukkan pilihan buat pintasan - New pane + Anak tetingkap baharu Open in new pane @@ -1065,10 +1065,10 @@ Butiran (Ctrl+Shift+1) - Tarikh dihapus + Tarikh Dihapuskan - Cloud Drives + Pemacu Awan Sahkan @@ -1089,7 +1089,7 @@ Toggle the info pane - Toggle the info pane to view the detail/preview panes + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1097,6 +1097,12 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + No preview available @@ -1107,7 +1113,7 @@ Unpin from Sidebar - Network + Rangkaian Butiran fail @@ -1188,10 +1194,10 @@ Map network drive - Pinned + Disematkan - Libraries + Pusaka No item selected @@ -1338,10 +1344,10 @@ Date modified - Original folder + Folder asal - Descending + Menurun Huge @@ -1398,7 +1404,7 @@ {0} items - Reopen tab + Buka semula tab Namakan semula @@ -1419,7 +1425,7 @@ Widget - Sync status + Status penyegerakan Security @@ -1662,7 +1668,7 @@ Update - Home + Rumah The archive extraction completed successfully. @@ -1728,7 +1734,7 @@ Buka folder dalam tab baharu - Status center + Pusat status Date created column @@ -1908,7 +1914,7 @@ Cleanup your drive contents - Type + Jenis Bytes @@ -1944,13 +1950,13 @@ Rotate right - Install + Pasang - Close tabs to the left + Tutup tab di sebelah kiri - Close tabs to the right + Tutup tab di sebelah kanan Tutup tab lain @@ -1962,7 +1968,7 @@ Muzik - Pictures + Gambar Update Files @@ -2012,14 +2018,26 @@ Behaviors - - Review Files + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. - - Would you like to review Files? + + Sponsor + + + Rate us + + + Dismiss - Set as background + Tetapkan sebagai latar belakang Set as desktop background @@ -2043,7 +2061,7 @@ Kolum Taip - Lockscreen + Skrin Kunci Buka folder dengan satu klik dalam susun atur kolum @@ -2178,16 +2196,16 @@ Sync status column - Group by + Kumpul ikut - Sort by + Isih ikut Group in descending order - Sort in descending order + Isih mengikut susunan menurun Create a new shortcut @@ -2235,19 +2253,19 @@ View more - Show edit tags flyout + Tunjukkan panel sunting tag - Paparkan tetapan pemampatan + Tunjukkan pilihan pemampatan - Paparkan menu "hantar ke" + Tunjukkan menu Hantar ke - Paparkan opsyen untuk membuka folder di tab baharu + Tunjukkan pilihan buka dalam tab baharu - Paparkan opsyen untuk membuka folder di windows baharu + Tunjukkan pilihan buka dalam tetingkap baharu Akses pantas @@ -2271,19 +2289,19 @@ Windows version - Always + Selalu - Permanent deletion only + Hanya pemadaman kekal - Never + Jangan akan Tag color - New tag + Tag baharu Create new tag @@ -2292,7 +2310,7 @@ Loading... - Tetapan menu konteks + Pilihan menu konteks File extensions @@ -2301,7 +2319,7 @@ Format - Help + Bantuan Full screen @@ -2388,22 +2406,22 @@ Toggle compact overlay - Open the online help page in your browser + Buka halaman bantuan atas talian melalui pelayar anda - Toggle full screen mode + Togol mod skrin penuh - Enter compact overlay mode + Masuk mod tindihan padat - Exit compact overlay mode + Keluar mod tindihan padat - Toggle compact overlay mode + Togol mod tindihan padat - Start search in the OmniBar + Mulakan carian dalam OmniBar Toggle visibility of hidden items @@ -2421,31 +2439,31 @@ Toggle whether to show sidebar - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Copy path of selected items to the clipboard + Copy path of the current directory - Copy path of selected items to the clipboard + Copy path of selected items - Copy path of selected items with quotes to the clipboard + Copy path of selected items with quotes - Copy path of selected items with quotes to the clipboard + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -2823,7 +2841,7 @@ Key name for hotkeys in menus. Use abbreviation if possible. - Home + Rumah Key name for hotkeys in menus. Use abbreviation if possible. @@ -2859,7 +2877,7 @@ Key name for hotkeys in menus. Use abbreviation if possible. - Help + Bantuan Key name for hotkeys in menus. Use abbreviation if possible. @@ -2959,7 +2977,7 @@ This PC - Recycle Bin + Tong Kitar Semula Untagged @@ -2974,7 +2992,7 @@ Close tab - Edit path + Sunting laluan Redo @@ -3001,7 +3019,7 @@ Show checkboxes when selecting items - Edit path in the OmniBar + Sunting laluan dalam OmniBar Create new item @@ -3142,10 +3160,10 @@ Open File Explorer properties - Open properties window + Buka tetingkap sifat - Open File Explorer properties window + Buka tetingkap sifat Penjelajah Fail Locals @@ -3436,7 +3454,7 @@ One of the custom color themes - Clear completed + Kosongkan yang telah selesai Name: @@ -3446,7 +3464,7 @@ Shown in a StatusCenter card. Used as "64 MB of 1 GB processed" - items + item Files can't initialize this directory as a Git repository. @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Compressed {0} item(s) to "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressed {0} item(s) from "{1}" to "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error compressing {0} item(s) to "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to compress {0} item(s) from "{1}" to "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Compressing {0} item(s) to "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressing {0} item(s) from "{1}" to "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) to "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) from "{1}" to "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copied {0} item(s) to "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copied {0} item(s) from "{1}" to "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error copying {0} item(s) to "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to copy {0} item(s) from "{1}" to "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copying {0} item(s) to "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copying {0} item(s) from "{1}" to "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Canceled deleting {0} item(s) from "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleted {0} item(s) from "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Error deleting {0} item(s) from "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Failed to delete {0} item(s) from "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleting {0} item(s) from "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) to "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) from "{1}" to "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moved {0} item(s) to "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moved {0} item(s) from "{1}" to "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moving {0} item(s) to "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moving {0} item(s) from "{1}" to "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error moving {0} item(s) to "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to move {0} item(s) from "{1}" to "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3707,7 +3725,7 @@ Unblock downloaded file - Tiada operasi fail yang sedang berjalan + Tiada operasi fail yang sedang dijalankan The option to open Files on Windows Startup is not available due to your system settings or group policy. To re-enable, open the startup page in Task Manager. @@ -3746,31 +3764,31 @@ There was an error applying this tag - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Ekstrak di sini (Pintar) - Susun fail dan folder bersama + Isih fail dan folder bersama Sort files and folders in the same list - Susun fail dahulu + Isih fail dahulu Sort files first then folders - Susun folder dahulu + Isih folder dahulu Sort folders first then files - Keutamaan susunan + Keutamaan pengisihan Failed to rotate the image @@ -3915,17 +3933,17 @@ Image stretch type - Horizontal alignment + Penjajaran mendatar - Image fit + Padanan imej Kiri Image alignment type - Opacity + Kelegapan Kanan @@ -3940,11 +3958,11 @@ Image stretch type - Uniform to fill + Isi penuh secara seragam Image stretch type - Vertical alignment + Penjajaran menegak Thin Acrylic @@ -4066,9 +4084,6 @@ Navigate to the home page - - Show home button in address bar - Toolbars @@ -4208,9 +4223,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/nb-NO/Resources.resw b/src/Files.App/Strings/nb-NO/Resources.resw index 49fb91c1e81b..921c8614a1d8 100644 --- a/src/Files.App/Strings/nb-NO/Resources.resw +++ b/src/Files.App/Strings/nb-NO/Resources.resw @@ -217,7 +217,7 @@ Vis skjulte filer og mapper - Dot files + Show dot files Utseende @@ -1089,7 +1089,7 @@ Vis/Skjul info-ruten - Skru av/på info-ruten for å se detaljer/forhåndsvisning av rutene + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1097,6 +1097,12 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + Forhåndsvisning ikke tilgjengelig @@ -2012,11 +2018,23 @@ Oppførsel - - Anmeld Files + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us - - Har du lyst å gi Files en anmeldelse? + + Dismiss Bruk som bakgrunn @@ -2421,31 +2439,31 @@ Velg om du vil vise sidepanelet - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Kopier banen til de valgte elementene til utklippstavlen + Copy path of the current directory - Copy path of selected items to the clipboard + Copy path of selected items - Copy path of selected items with quotes to the clipboard + Copy path of selected items with quotes - Kopier banen til de valgte elementene med sitater til utklippstavlen + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Compressed {0} item(s) to "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressed {0} item(s) from "{1}" to "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error compressing {0} item(s) to "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to compress {0} item(s) from "{1}" to "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Compressing {0} item(s) to "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressing {0} item(s) from "{1}" to "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Kopierte {0} element(er) til "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Kopierte {0} element(er) fra "{1}til "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Kopierte {0} element(er) til "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copied {0} item(s) from "{1}" to "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error copying {0} item(s) to "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to copy {0} item(s) from "{1}" to "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Kopierer {0} element(er) til "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copying {0} item(s) from "{1}" to "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Canceled deleting {0} item(s) from "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleted {0} item(s) from "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Error deleting {0} item(s) from "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Kunne ikke slette {0} element(er) fra "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Sletter {0} element(er) fra "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) to "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) from "{1}" to "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Flyttet {0} element(er) til "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Flyttet {0} element(er) fra "{1}" til "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moving {0} item(s) to "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moving {0} item(s) from "{1}" to "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error moving {0} item(s) to "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Kunne ikke flytte {0} element(er) fra "{1}" til "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ Det oppstod en feil ved å legge til denne taggen - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Pakk ut her (mart) @@ -4066,9 +4084,6 @@ Navigate to the home page - - Show home button in address bar - Toolbars @@ -4208,9 +4223,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/nl-NL/Resources.resw b/src/Files.App/Strings/nl-NL/Resources.resw index 8d80677b6557..fd1448d8884d 100644 --- a/src/Files.App/Strings/nl-NL/Resources.resw +++ b/src/Files.App/Strings/nl-NL/Resources.resw @@ -217,7 +217,7 @@ Verborgen bestanden en mappen weergeven - Dot files + Show dot files Vormgeving @@ -1089,7 +1089,7 @@ Infopaneel in-/uitschakelen - Infopaneel in-/uitschakelen om het detail-/voorbeeldvenster weer te geven + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1097,6 +1097,12 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + Geen voorbeeld beschikbaar @@ -2012,11 +2018,23 @@ Gedragingen - - Files beoordelen + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us - - Wilt u Files beoordelen? + + Dismiss Als achtergrond instellen @@ -2421,31 +2439,31 @@ In-/uitschakelen om zijbalk weer te geven - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Pad kopiëren van de huidige map naar het klembord + Copy path of the current directory - Pad kopiëren van geselecteerde items naar het klembord + Copy path of selected items - Pad kopiëren van geselecteerde items inclusief aanhalingstekens naar het klembord + Copy path of selected items with quotes - Pad kopiëren van de huidige map met aanhalingstekens naar het klembord + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - {0} item(s) naar "{1}" gecomprimeerd + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} item(s) van "{1}" naar "{2}" gecomprimeerd + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Fout bij het comprimeren van {0} item(s) naar "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Comprimeren van {0} item(s) van "{1}" naar "{2}" mislukt + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} item(s) naar "{1}" comprimeren + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} item(s) van "{1}" naar "{2}" comprimeren + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - {0} lettertype(s) van "{1}" installeren geannuleerd + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - {0} lettertype(s) geïnstalleerd + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - {0} lettertype(s) geïnstalleerd van "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Fout bij installeren van {0} lettertype(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Fout bij installeren van {0} lettertype(s) van "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - {0} lettertype(s) installeren + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - {0} lettertype(s) installeren van "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Kopiëren {0} item(s) naar "{1}" geannuleerd + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Kopiëren {0} item(s) van "{1}" naar "{2}" geannuleerd + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} item(s) naar "{1}" gekopieerd + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} item(s) van "{1}" naar "{2}" gekopieerd + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Fout bij het kopiëren van {0} item(s) naar "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Kopiëren van {0} item(s) van "{1}" naar "{2}" mislukt + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} item(s) naar "{1}" aan het kopiëren + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} item(s) van "{1}" naar "{2}" aan het kopiëren + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Verwijderen van {0} item(s) van "{1}" geannuleerd + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - {0} Item(s) verwijderd van "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Fout bij verwijderen van {0} item(s) van "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Kan {0} item(s) niet verwijderen van "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - {0} item(s) verwijderen van "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Verplaatsen {0} items(s) uit "{1}" geannuleerd + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Verplaatsen {0} items(s) van "{1}" naar "{2}" geannuleerd + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} item(s) verplaatst naar "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} item(s) van "{1}" naar "{2}" verplaatst + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} item(s) verplaatsen naar "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - "{0}" item(s) van "{1}" naar "{2}" verplaatsen + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Fout tijdens verplaatsen van "{0}" item(s) naar "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Verplaatsen van {0} item(s) van "{1}" naar "{2}" mislukt + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ Er is een fout opgetreden tijdens het toewijzen van dit label - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Hier uitpakken (slim) @@ -4066,9 +4084,6 @@ Navigeer naar de homepage - - Home knop weergeven in adresbalk - Werkbalken @@ -4208,9 +4223,6 @@ Decimaal - - Omnibalk inschakelen - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/pl-PL/Resources.resw b/src/Files.App/Strings/pl-PL/Resources.resw index 34ed3765f847..2b06786730a6 100644 --- a/src/Files.App/Strings/pl-PL/Resources.resw +++ b/src/Files.App/Strings/pl-PL/Resources.resw @@ -124,7 +124,7 @@ Kopiuj ścieżkę - Copy item path + Kopiuj ścieżkę pliku/folderu Kopiuj ścieżkę w cudzysłowie @@ -166,7 +166,7 @@ Pomiń - Select all + Zaznacz wszystko Odwróć zaznaczenie @@ -217,7 +217,7 @@ Pokaż ukryte pliki i foldery - Dot files + Pokaż pliki rozpoczynające się kropką Wygląd @@ -1089,13 +1089,19 @@ Przełącz panel informacji - Przełącz panel informacji, aby wyświetlić szczegóły/podgląd + Przełącz widoczność panelu szczegółów/podglądu - Toggle toolbar + Przełącz pasek narzędzi - Toggle visibility of the toolbar + Przełącz widoczność paska narzędzi + + + Przełącz nagłówek filtru + + + Przełącz widoczność nagłówka filtru Podgląd niedostępny @@ -1398,7 +1404,7 @@ {0} elementy - Reopen tab + Ponownie otwórz zakładkę Zmień nazwę @@ -1605,7 +1611,7 @@ Zastąp wszystkie wpisy uprawnień obiektu podrzędnego wpisami uprawnień dziedzicznych z tego obiektu - Close pane + Zamknij panel Otwórz kompaktową nakładkę @@ -2012,11 +2018,23 @@ Zachowania - - Oceń Files + + Cześć! + + + Podoba Ci się Files? Rozważ zostawienie recenzji w sklepie Microsoft. + + + Podoba Ci się Files? Rozważ wsparcie projektu na GitHub. + + + Sponsoruj + + + Oceń nas - - Czy chcesz ocenić Files? + + Odrzuć Ustaw jako tło @@ -2295,7 +2313,7 @@ Opcje menu kontekstowego - File extensions + Rozszerzenia plików Format @@ -2304,13 +2322,13 @@ Pomoc - Full screen + Pełny ekran Na pewno chcesz usunąć ten tag? - Play + Odtwórz Wysokość @@ -2370,7 +2388,7 @@ Zwiększ rozmiar - Sort direction + Kierunek sortowania Nieprawidłowa nazwa @@ -2382,37 +2400,37 @@ Wideo - Preview popup + Pokaż okno podglądu Przełącz kompaktową nakładkę - Open the online help page in your browser + Otwórz stronę pomocy w przeglądarce - Toggle full screen mode + Przełącz tryb pełnoekranowy - Enter compact overlay mode + Wejdź w tryb kompaktowy - Exit compact overlay mode + Wyjdź z trybu kompaktowego - Toggle compact overlay mode + Przełącz tryb kompaktowy - Start search in the OmniBar + Rozpocznij wyszukiwanie w OmniBar - Toggle visibility of hidden items + Przełącz widoczność plików ukrytych - Toggle visibility of dot files + Przełącz widoczność pilików zaczynających się kropką - Toggle visibility of file extensions + Przełącz widoczność rozszerzeń plików Przełącz panel podglądu, aby wyświetlić podgląd pliku @@ -2421,37 +2439,37 @@ Przełącz, czy wyświetlić pasek boczny - Copy selected {0, plural, one {item} other {items}} to clipboard + Skopiuj {0, plural, one {wybrany plik/folder} other {wybrane pliki/foldery}} - Skopiuj ścieżkę wybranych elementów do schowka + Kopiuj ścieżkę do bieżącego folderu - Skopiuj ścieżkę wybranych elementów do schowka + Kopiuj ścieżkę do zaznaczonych plików/folderów - Skopiuj ścieżkę wybranych elementów do schowka z cudzysłowami + Kopiuj ścieżkę zaznaczonych elementów z cudzysłowami - Skopiuj ścieżkę wybranych elementów do schowka z cudzysłowami + Kopiuj ścieżkę do bieżącego folderu z cudzysłowami - Cut selected {0, plural, one {item} other {items}} to clipboard + Wytnij {0, plural, one {wybrany plik/folder} other {pliki/foldery}} - Paste clipboard items to the current folder + Wklej pliki/foldery do bieżącego folderu - Paste clipboard items to the current folder as shortcuts + Wklej pliki/foldery do bieżącego folderu jako skróty - Paste clipboard items to the selected folder + Wklej pliki/foldery do wybranego folderu - Paste to selected folder + Wklej do wybranego folderu - Delete selected {0, plural, one {item} other {items}} + Usuń {0, plural, one {wybrany plik/folder} other {wybrane pliki/foldery}} Utwórz nowy folder @@ -2463,7 +2481,7 @@ Utwórz nowy skrót do dowolnego elementu - Empty the contents of Recycle Bin + Opróżnij zawartość kosza Otwórz menu "Formatuj dysk" dla wybranego elementu @@ -2493,10 +2511,10 @@ Zaznacz wszystkie elementy - Invert selected items + Odwróć zaznaczenie plików/folderów - Clear selected items + Odznacz pliki/foldery Przełącz wybór zaznaczenia @@ -2529,13 +2547,13 @@ Ustaw wybrane zdjęcie jako tło aplikacji - Install font + Instaluj czcionkę - Install driver + Instaluj sterownik - Install certificate + Instaluj certyfikat Zainstaluj {0, plural, one {wybraną czcionkę} other {wybrane czcionki}} @@ -2568,13 +2586,13 @@ Stwórz archiwum zip z {0, plural, one {wybranym przedmiotem} other {wybranymi przedmiotami}} - Wyodrębnij elementy z {0, plural, one {wybranego archiwum} other {wybranych archiwów}} do dowolnego folderu + Wyodrębnij wybrane {0, plural, one {achiwum} other {archiwa}} do dowolnego folderu - Wyodrębnij elementy z {0, plural, one {wybranego archiwum} other {wybranych archiwów}} do obecnego folderu + Wyodrębnij wybrane {0, plural, one {achiwum} other {archiwa}} do bieżączego folderu - Wyodrębnij elementy z {0, plural, one {wybranego archiwum} other {wybranych archiwów}} do nowego folderu + Wyodrębnij wybrane {0, plural, one {achiwum} other {archiwa}} do nowego folderu Obróć {0, plural, one {wybrany obraz} other {wybrane obrazy}} w lewo @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Skompresowano {0} plik(ów) do "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Skompresowano {0} plik(ów) z "{1}" do "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Błąd kompresowania {0} plik(ów) do "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Błąd kompresowania {0} plik(ów) z "{1}" do "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Kompresowanie {0} plików do "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Kompresowanie {0} plików z "{1}" do "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Anulowano usuwanie {0} czcionki/-ek z "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Zainstalowano {0} czcionkę/-i + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Zainstalowano {0} czcionkę/-ek z "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Błąd instalacji {0} czcionki/-ek + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Nie udało się usunąć {0} czcionki/-ek z "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Instalowanie {0} czcionki/-ek + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Instalowanie {0} czcionki/-ek z "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Anulowano kopiowanie {0} plik(ów) do "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Anulowano kopiowanie {0} plik(ów) z "{1}" do "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Skopiowano {0} plik(ów) do "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Skopiowano {0} plik(ów) z "{1}" do "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Błąd kopiowania {0} plików do "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Błąd kopiowania {0} plików z "{1}" do "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Kopiowanie {0} elementu/ów do "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Skopiowano {0} plik(ów) z "{1}" do "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Anulowano usuwanie {0} elementów z "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Usunięto {0} elementów z "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Błąd przy usuwaniu {0} elementów z "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Nie udało się usunąć {0} elementów z "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Usuwanie {0} elementów z "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Anulowano przenoszenie {0} plików do "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Anulowano przenoszenie {0} plików z "{1}" do "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Przeniesiono {0} element(y/ów) do "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Przeniesiono {0} element(y/ów) z "{1}" do "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Przenoszenie {0} elementu/ów do "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Przenoszenie {0} elementu/ów z "{1}" do "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Błąd przenoszenia {0} plików do "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Nie udało się przenieść {0} plików z "{1}" do "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ Wystąpił błąd podczas stosowania tego tagu - Wypakuj elementy z {0, plural, one {wybranego archiwum} other {wybranych archiwów}} do obecnego folderu dla archiwum z jednym elementem, lub do nowego folderu dla archiwum z wieloma elementami + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Wypakuj tutaj (Inteligentnie) @@ -4066,9 +4084,6 @@ Przejdź do strony głównej - - Pokaż przycisk strony głównej na pasku adresu - Paski narzędzi @@ -4208,9 +4223,6 @@ Dziesiętny - - Włącz Omnipasek - Możesz dodać sekcje do paska bocznego, klikając prawym przyciskiem myszy i wybierając sekcje, które chcesz dodać @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/pt-BR/Resources.resw b/src/Files.App/Strings/pt-BR/Resources.resw index c6d534f8edd7..2365558a7ec4 100644 --- a/src/Files.App/Strings/pt-BR/Resources.resw +++ b/src/Files.App/Strings/pt-BR/Resources.resw @@ -124,7 +124,7 @@ Copiar caminho - Copy item path + Copiar caminho do item Copiar caminho entre aspas @@ -166,7 +166,7 @@ Pular - Select all + Selecionar tudo Inverter seleção @@ -217,7 +217,7 @@ Mostrar arquivos e pastas ocultas - Dot files + Mostrar arquivos "." Aparência @@ -1089,13 +1089,19 @@ Exibir o painel de informações - Ative o painel de informações para visualizar os painéis\na visualização de detalhes + Alternar a visibilidade dos painéis de detalhe/visualização - Toggle toolbar + Mostrar/esconder barra de ferramentas - Toggle visibility of the toolbar + Alternar a visibilidade da barra de ferramentas + + + Alternar cabeçalho do filtro + + + Alternar a visibilidade do cabeçalho do filtro Nenhuma visualização disponível @@ -1398,7 +1404,7 @@ {0} itens - Reopen tab + Reabrir aba Renomear @@ -1605,7 +1611,7 @@ Substituir todas as entradas de permissão de objetos menores por entradas de permissão herdáveis deste objeto - Close pane + Fechar painel Insira a sobreposição compacta @@ -2012,11 +2018,23 @@ Comportamentos - - Revisar Arquivos + + Olá! + + + Gostando do Files? Considere fazer uma avaliação na Microsoft Store. + + + Gostando do Files? Por favor, considere apoiar o projeto no GitHub. - - Deseja revisar Arquivos? + + Patrocinador + + + Avalie-nos + + + Dispensar Definir como plano de fundo @@ -2295,7 +2313,7 @@ Opções do menu de contexto - File extensions + Extensões de arquivo Formato @@ -2304,13 +2322,13 @@ Ajuda - Full screen + Tela cheia Tem certeza de que deseja excluir esta tag? - Play + Reproduzir Altura @@ -2370,7 +2388,7 @@ Aumentar tamanho - Sort direction + Ordenar direção Nome inválido @@ -2382,37 +2400,37 @@ Vídeos - Preview popup + Pré-visualizar popup Alternar janela para sobreposição compacta - Open the online help page in your browser + Abrir página de ajuda on-line no navegador - Toggle full screen mode + Alternar modo de tela cheia - Enter compact overlay mode + Entrar no modo de sobreposição compacta - Exit compact overlay mode + Sair do modo de sobreposição compacta - Toggle compact overlay mode + Alternar modo de sobreposição compacta - Start search in the OmniBar + Iniciar busca no OmniBar - Toggle visibility of hidden items + Alternar a visibilidade dos itens ocultos - Toggle visibility of dot files + Alternar a visibilidade de arquivos com ponto - Toggle visibility of file extensions + Alternar a visibilidade das extensões de arquivos Mostrar ou ocultar o painel de visualização @@ -2421,37 +2439,37 @@ Alternar se deseja mostrar a barra lateral - Copy selected {0, plural, one {item} other {items}} to clipboard + Copiar {0, plural, one {item selecionado} other {itens selecionados}} - Copiar o caminho dos itens selecionados para a área de transferência + Copiar caminho da pasta atual - Copiar caminho dos itens selecionados para a área de transferência + Copiar caminho dos itens selecionados - Copiar caminho dos itens selecionados com aspas para a área de transferência + Copiar caminho dos itens selecionados com aspas - Copiar o caminho dos itens selecionados com cotas para a área de transferência + Copiar caminho da pasta atual com aspas - Cut selected {0, plural, one {item} other {items}} to clipboard + Recortar {0, plural, one {item selecionado} other {itens selecionados}} - Paste clipboard items to the current folder + Colar itens na pasta atual - Paste clipboard items to the current folder as shortcuts + Colar itens na pasta atual como atalhos - Paste clipboard items to the selected folder + Colar itens na pasta selecionada - Paste to selected folder + Cola na pasta selecionada - Delete selected {0, plural, one {item} other {items}} + Excluir {0, plural, one {item} other {itens}} Criar nova pasta @@ -2463,7 +2481,7 @@ Criar novo atalho para qualquer item - Empty the contents of Recycle Bin + Esvaziar o conteúdo da Lixeira Abra o menu "Formatar Drive" para o item selecionado @@ -2493,10 +2511,10 @@ Selecionar todos os itens - Invert selected items + Inverter itens selecionados - Clear selected items + Limpar itens selecionados Alternar seleção de itens @@ -2529,13 +2547,13 @@ Definir imagem selecionada como plano de fundo do aplicativo - Install font + Instalar fonte - Install driver + Instalar driver - Install certificate + Instalar certificado Instalar {0, plural, one {fonte} other {fontes}} selecionada(s) @@ -2568,13 +2586,13 @@ Criar arquivo zip com {0, plural, one {item selecionado} other {itens selecionados}} - Extrair itens do {0, plural, one {arquivo selecionado} other {arquivos selecionados}} para qualquer pasta + Extrair {0, plural, one {arquivo selecionado} other {arquivos selecionados}} em qualquer pasta - Extrair itens do {0, plural, one {arquivo selecionado} other {arquivos selecionados}} para a pasta atual + Extrair {0, plural, one {arquivo selecionado} other {arquivos selecionados}} na pasta atual - Extrair itens do {0, plural, one {arquivo selecionado} other {arquivos selecionados}} para nova pasta + Extrair {0, plural, one {arquivo selecionado} other {arquivos selecionados}} em uma nova pasta Girar {0, plural, one {imagem selecionada} other {imagens selecionadas}} para a esquerda @@ -2703,10 +2721,10 @@ Abrir uma nova guia - Navigate backward + Navegar para trás - Navigate forward + Navegar para a frente Navegar para cima uma pasta @@ -2739,7 +2757,7 @@ Fechar todas as abas, incluindo a aba atual - Reopen recently closed tab + Reabrir aba fechada recentemente Mover para a aba anterior @@ -2751,13 +2769,13 @@ Fechar aba atual - Close the active pane + Fechar o painel ativo Focar outro painel - Switch focus to the other pane + Mudar foco para o outro painel Mostrar/ocultar barra lateral @@ -2965,13 +2983,13 @@ Sem marcação - Previous tab + Aba anterior - Next tab + Próxima aba - Close tab + Fechar aba Editar caminho @@ -3001,7 +3019,7 @@ Mostrar caixas de seleção ao selecionar itens - Edit path in the OmniBar + Editar caminho no OmniBar Criar novo item @@ -3016,7 +3034,7 @@ Excluir permanentemente - Delete selected {0, plural, one {item} other {items}} permanently + Excluir {0, plural, one {item} other {itens}} permanentemente Reproduzir os arquivos de mídia selecionados @@ -3200,7 +3218,7 @@ Confirmar SHA - Git + Estúpido Acrílico @@ -3281,7 +3299,7 @@ Inicializar repositório - Initialize current folder as a git repository + Inicializar a pasta atual como um repositório git Nome do Repositório Remoto @@ -3296,13 +3314,13 @@ Classificar por caminho - Open selected directory in a new pane + Abrir a pasta selecionada num novo painel - Open selected directory in a new tab + Abrir a pasta selecionada em uma nova aba - Open selected directory in a new window + Abrir pasta selecionada em uma nova janela Abrir todos @@ -3327,10 +3345,10 @@ O comando '{0}' não está pronto para ser executado. - Command Palette + Paleta de comandos - Open Command Palette in the OmniBar + Abrir paleta de comandos na OmniBar Iniciar em: @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Itens {0} comprimidos para "{1}" + {0, plural, one {# item compactado} other {# items compactados}} para "{1}" Shown in a StatusCenter card. - Item(s) {0} comprimido(s) de "{1}" para "{2}" + {0, plural, one {# item compactado} other {# items compactados}} de "{1}" para "{2}" Shown in a StatusCenter card. - Erro ao comprimir item(s) {0} para "{1}" + Erro ao compactar {0, plural, one {# item} other {# itens}} para "{1}" Shown in a StatusCenter card. - Falha ao comprimir item(s) {0} de "{1}" para "{2}" + Falha ao compactar {0, plural, one {# item} other {# itens}} de "{1}" para "{2}" Shown in a StatusCenter card. - Comprimindo {0} item(s) para "{1}" + Compactando {0, plural, one {# item} other {# itens}} para "{1}" Shown in a StatusCenter card. - Comprimindo item(s) {0} de "{1}" para "{2}" + Compactando {0, plural, one {# item} other {# itens}} de "{1}" para "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Cancelada a instalação de {0} fonte(s) de "{1}" + Cancelado instalação de {0, plural, one {# fonte} other {# fontes}} de "{1}" Shown in a StatusCenter card. - {0} fonte(s) instalada(s) + {0, plural, one {# fonte instalada} other {# fontes instaladas}} Shown in a StatusCenter card. - {0} fonte(s) instalada(s) de "{1}" + {0, plural, one {# fonte instalada} other {# fontes instaladas}} de "{1}" Shown in a StatusCenter card. - Erro ao instalar {0} fonte(s) + Erro ao instalar {0, plural, one {# fonte} other {# fontes}} Shown in a StatusCenter card. - Falha ao instalar {0} fonte(s) de "{1}" + Falha ao instalar {0, plural, one {# fonte} other {# fontes}} de "{1}" Shown in a StatusCenter card. - Instalando {0} fonte(s) + Instalando {0, plural, one {# fonte} other {# fontes}} Shown in a StatusCenter card. - Instalando {0} fonte(s) de "{1}" + Instalando {0, plural, one {# fonte} other {# fontes}} de "{1}" Shown in a StatusCenter card. - Cancelando a cópia do item {0} para "{1}" + Cancelada a cópia de {0, plural, one {# item} other {# itens}} para "{1}" Shown in a StatusCenter card. - Cancelando a cópia de {0} item(s) de "{1}" para "{2}" + Cancelada a cópia de {0, plural, one {# item} other {# itens}} de "{1}" para "{2} " " Shown in a StatusCenter card. - Copiado(s) {0} item(s) para "{1}" + {0, plural, one {# item copiado} other {# itens copiados}} para "{1}" Shown in a StatusCenter card. - Copiado(s) {0} item(s) de "{1}" para "{2}" + Copiado {0, plural, one {# item} other {# itens}} de "{1}" para "{2}" Shown in a StatusCenter card. - Erro ao copiar item(s) {0} para "{1}" + Erro ao copiar {0, plural, one {# item} other {# itens}} para "{1}" Shown in a StatusCenter card. - Falha ao copiar item(s) {0} de "{1}" para "{2}" + Falha ao copiar {0, plural, one {# item} other {# itens}} de "{1}" para "{2} " " Shown in a StatusCenter card. - Copiando item(s) {0} para "{1}" + Copiando {0, plural, one {# item} other {# itens}} para "{1}" Shown in a StatusCenter card. - Copiando item(s) {0} de "{1}" para "{2}" + Copiando {0, plural, one {# item} other {# itens}} de "{1}" para "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Exclusão cancelada do item {0} de "{1}" + Cancelada a exclusão de {0, plural, one {# item} other {# itens}} de "{1}" Shown in a StatusCenter card. - {0} item(s) apagados de "{1}" + {0, plural, one {# item excluído} other {# itens excluídos}} de "{1}" Shown in a StatusCenter card. - Erro ao excluir item(s) {0} de "{1}" + Erro ao excluir {0, plural, one {# item} other {# itens}} de "{1}" Shown in a StatusCenter card. - Falha em excluir {0} itens de {1}" + Falha ao excluir {0, plural, one {# item} other {# itens}} de "{1}" Shown in a StatusCenter card. - Excluindo Item(s) {0} de "{1}" + Excluindo {0, plural, one {# item} other {# itens}} de "{1}" " Shown in a StatusCenter card. - Movimentação cancelada do(s) {0} item(s) para "{1}" + Cancelado mover {0, plural, one {# item} other {# itens}} para "{1}" Shown in a StatusCenter card. - Transferência cancelada do item {0} de "{1}" para "{2}" + Cancelado mover {0, plural, one {# item} other {# itens}} de "{1}" para "{2} " " Shown in a StatusCenter card. - {0} item(ns) Movido(s) para "{1}" + {0, plural, one {# item movido} other {# itens movidos}} para "{1}" Shown in a StatusCenter card. - {0} Movido(s) item(ns) de "{1}" para "{2}" + {0, plural, one {# item movido} other {# itens movidos}} de "{1}" para "{2}" Shown in a StatusCenter card. - Movendo {0} item(ns) para "{1}" + Movendo {0, plural, one {# item} other {# itens}} para "{1}" Shown in a StatusCenter card. - Movendo um item(s) {0} de "{1}" para "{2}" + Movendo {0, plural, one {# item} other {# itens}} de "{1}" para "{2}" Shown in a StatusCenter card. - Erro ao mover item(s) {0} para "{1}" + Erro ao mover {0, plural, one {# item} other {# itens}} para "{1}" Shown in a StatusCenter card. - Falha ao mover item(s) {0} de "{1}" para "{2}" + Falha ao mover {0, plural, one {# item} other {# itens}} de "{1}" para "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ Ocorreu um erro ao aplicar esta etiqueta - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extrair {0, plural, one {arquivo selecionado} other {arquivos selecionados}} aqui para um único item ou em uma nova pasta para vários itens Extraia aqui (Inteligente) @@ -4066,9 +4084,6 @@ Navegar para a página inicial - - Mostrar botão de início na barra de endereços - Barras de ferramentas @@ -4208,9 +4223,6 @@ Decimal - - Habilitar Omnibar - Você pode adicionar seções à barra lateral clicando com o botão direito e selecionando as seções que você deseja adicionar @@ -4226,4 +4238,42 @@ Procurar por arquivos e pastas... + + Durante operações de arquivo + + + Mostrar botão de status central + + + Toque de progresso do centro de status + Screen reader name for the status center progress ring + + + Arquivos de ícone + This is the friendly name for a variety of different icon files. + + + Mostrar trilhas de navegação recolhidas + + + Mostrar pastas em {0} + + + Mostrar pastas no Início + + + Não há comandos contendo {0} + + + Ver mais + + + Filtrar por + + + Nome do arquivo + + + Mostrar a opção de abrir pastas no Terminal do Windows + diff --git a/src/Files.App/Strings/pt-PT/Resources.resw b/src/Files.App/Strings/pt-PT/Resources.resw index 19f9001681ed..24c74075f5db 100644 --- a/src/Files.App/Strings/pt-PT/Resources.resw +++ b/src/Files.App/Strings/pt-PT/Resources.resw @@ -124,16 +124,16 @@ Copiar caminho - Copy item path + Copiar caminho do item Copiar caminho com aspas - Copiar, com aspas, o caminho do item selecionado + Copiar caminho do item selecionado com aspas - Explorar + Procurar... Tamanho @@ -166,7 +166,7 @@ Ignorar - Select all + Selecionar tudo Inverter seleção @@ -217,7 +217,7 @@ Mostrar ficheiros e pastas ocultas - Dot files + Mostrar ficheiros ocultos Aspeto @@ -235,7 +235,7 @@ Abrir um novo separador - Abrir página(s) específica(s) + Abrir uma ou várias páginas específicas Ambiente de trabalho @@ -283,10 +283,10 @@ Eliminar - Afixar na barra lateral + Afixar em Acesso rápido - Obrigado por utilizar Files! + Bem-vindo ao Files! Conceder permissão @@ -325,7 +325,7 @@ Esta pasta está vazia. - Recuar + Voltar Avançar @@ -459,7 +459,7 @@ Sim - Tem a certeza de que pretende eliminar permanentemente todos estes itens? + Tem a certeza de que pretende eliminar de forma permanente todos estes itens? Esvaziar reciclagem @@ -1083,28 +1083,34 @@ Mostrar/ocultar painel de detalhes - Mostrar/ocultar detalhes para ver as propriedades do ficheiro + Mostra/oculta a exibição do painel de detalhes Mostrar/ocultar painel de informações - Mostrar/ocultar painel de informações para ver os detalhes ou pré-visualização + Mostra/oculta os painéis de detalhe/pré-visualização - Toggle toolbar + Mostrar/ocultar barra de ferramentas - Toggle visibility of the toolbar + Mostra/oculta a exibição da barra de ferramentas + + + Mostrar/ocultar cabeçalho "Filtro" + + + Comutar exibição do cabeçalho "Filtro" - Nenhuma pré-visualização disponível + Pré-visualização indisponível Nome do item - Desafixar da barra lateral + Remover de Acesso rápido Rede @@ -1218,10 +1224,10 @@ Colunas (Ctrl+Shift+6) - Afixar no menu Iniciar + Afixar em Iniciar - Desafixar do menu Iniciar + Remover de Iniciar Biblioteca @@ -1398,7 +1404,7 @@ {0} itens - Reopen tab + Reabrir separador Mudar nome @@ -1470,10 +1476,10 @@ Proprietário desconhecido - Extrair arquivo + Selecionar um destino e Extrair Ficheiros - Abrir pasta de destino ao terminar + Mostrar ficheiros extraídos quando concluir Extrair para {0}\ @@ -1605,13 +1611,13 @@ Substituir todas as entradas de permissão do objeto filho por entradas de permissão herdáveis deste objeto - Close pane + Fechar painel - Ativar modo de sobreposição compacta + Ativar sobreposição compacta - Desativar modo de sobreposição compacta + Desativar sobreposição compacta Descrição do ficheiro @@ -1632,7 +1638,7 @@ Carregar pré-visualização completa - Descarrega o item da nuvem e carrega a pré-visualização + Transfere o item da nuvem e carrega a pré-visualização {0, plural, one {# item} other {# itens}} ({1, plural, one {# ficheiro} other {# ficheiros}}, {2, plural, one {# pasta} other {# pastas}}) @@ -1665,10 +1671,10 @@ Início - A extração do arquivo foi terminada com sucesso. + A extração dos ficheiros foi concluída com sucesso. - A extrair arquivo + A extrair ficheiros Extração terminada! @@ -2012,11 +2018,23 @@ Comportamentos - - Avaliar Files + + Olá! + + + Está a gostar do Files? Considere deixar uma classificação na Microsoft Store. + + + Está a gostar do Files? Considere apoiar o projeto no GitHub. + + + Patrocinador + + + Clasifique-nos - - Deseja avaliar Files? + + Dispensar Definir como imagem de fundo @@ -2295,7 +2313,7 @@ Opções do menu de contexto - File extensions + Extensões de ficheiro Formatar @@ -2304,13 +2322,13 @@ Ajuda - Full screen + Ecrã completo Tem a certeza de que deseja eliminar esta etiqueta? - Play + Reproduzir Altura @@ -2370,7 +2388,7 @@ Aumentar tamanho - Sort direction + Ordem de ordenação Nome inválido @@ -2382,76 +2400,76 @@ Vídeos - Preview popup + Janela de pré-visualização Ativar/desativar modo de sobreposição compacta - Open the online help page in your browser + Abrir página de ajuda no navegador - Toggle full screen mode + Ativa/desativa o ecrã completo - Enter compact overlay mode + Ativar modo de sobreposição compacta - Exit compact overlay mode + Desativar modo de sobreposição compacta - Toggle compact overlay mode + Ativa/desativa o modo de sobreposição compacta - Start search in the OmniBar + Ir para a caixa de pesquisa - Toggle visibility of hidden items + Mostrar/ocultar itens ocultos - Toggle visibility of dot files + Mostra/oculta os ficheiros ocultos - Toggle visibility of file extensions + Mostra/oculta as extensões de ficheiros - Alternar painel de pré-visualização de ficheiros + Mostra/oculta as extensões de ficheiros do painel de pré-visualização - Alternar exibição da barra lateral + Mostra/oculta a barra lateral - Copy selected {0, plural, one {item} other {items}} to clipboard + Copia {0, plural, one {o item selecionado} other {os itens selecionados}} - Copiar caminho do diretório atual para a área de transferência + Copia o caminho da pasta atual - Copiar caminho dos itens selecionados para a área de transferência + Copia o caminho dos itens selecionados - Copiar, com aspas, o caminho dos itens selecionados para a área de transferência + Copia o caminho dos itens selecionados com aspas - Copiar, com aspas, o caminho do diretório atual para a área de transferência + Copia o caminho da pasta atual com aspas - Cut selected {0, plural, one {item} other {items}} to clipboard + Corta {0, plural, one {o item selecionado} other {os itens selecionados}} - Paste clipboard items to the current folder + Cola itens na pasta atual - Paste clipboard items to the current folder as shortcuts + Cola itens na pasta atual como atalhos - Paste clipboard items to the selected folder + Cola itens na pasta selecionada - Paste to selected folder + Colar na pasta selecionada - Delete selected {0, plural, one {item} other {items}} + Eliminar {0, plural, one {item} other {itens}} Criar nova pasta @@ -2463,7 +2481,7 @@ Criar atalho para qualquer item - Empty the contents of Recycle Bin + Esvaziar reciclagem Abrir menu "Formatar unidade" para o item selecionado @@ -2490,31 +2508,31 @@ Mudar nome do item selecionado - Selecionar todos os itens + Selecionar tudo - Invert selected items + Inverter seleção de itens - Clear selected items + Limpar itens selecionados - Alternar seleção de itens + Seleciona/desseleciona o item Partilhar {0, plural, one {ficheiro selecionado} other {ficheiros selecionados}} com outros - Afixar {0, plural, one {item} other {itens}} no Menu Iniciar + Afixar {0, plural, one {item} other {itens}} em Iniciar - Desafixar {0, plural, one {item} other {itens}} do Menu Iniciar + Remover {0, plural, one {item} other {itens}} de Iniciar - Afixar {0, plural, one {pasta} other {pastas}} na barra lateral + Afixar {0, plural, one {pasta} other {pastas}} em Acesso rápido - Desafixar {0, plural, one {pasta} other {pastas}} da barra lateral + Remover {0, plural, one {pasta} other {pastas}} de Acesso rápido Definir imagem selecionada como fundo do ambiente de trabalho @@ -2529,16 +2547,16 @@ Utilizar imagem selecionada como fundo da aplicação - Install font + Instalar tipo de letra - Install driver + Instalar controlador - Install certificate + Instalar certificado - Instalar {0, plural, one {tipo de letra selecionado} other {tipos de letra selecionados}} + Instala {0, plural, one {o tipo de letra selecionado} other {os tipos de letra selecionados}} Instalar {0, plural, one {controlador} other {controladores}} utilizando {0, plural, one {o ficheiro inf selecionado} other {os ficheiros inf selecionados}} @@ -2568,13 +2586,13 @@ Criar ficheiro zip com {0, plural, one {item selecionado} other {itens selecionados}} - Extrair itens {0, plural, one {do ficheiro selecionado} other {dos ficheiros selecionados}} para qualquer pasta + Extrai {0, plural, one {o ficheiro selecionado} other {os ficheiros selecionados}} para qualquer pasta - Extrair itens {0, plural, one {do ficheiro selecionado} other {dos ficheiros selecionados}} para a pasta atual + Extrai {0, plural, one {o ficheiro selecionado} other {os ficheiros selecionados}} para a pasta atual - Extrair itens {0, plural, one {do ficheiro selecionado} other {dos ficheiros selecionados}} para nova pasta + Extrai {0, plural, one {o ficheiro selecionado} other {os ficheiros selecionados}} para uma nova pasta Rodar {0, plural, one {imagem selecionada} other {imagens selecionadas}} para a esquerda @@ -2655,7 +2673,7 @@ Ordenar itens por ordem descendente - Alternar direção da ordem dos itens + Alterna a ordem de ordenação dos itens Não agrupar itens @@ -2664,7 +2682,7 @@ Agrupar itens por nome - Agrupar itens por data de alteração + Agrupar itens por data de modificação Agrupar itens por data de criação @@ -2697,16 +2715,16 @@ Ordenar grupos por ordem descendente - Alternar direção da ordem dos grupos + Alterna a ordem de ordenação dos grupos - Abrir um novo separador + Abrir novo separador - Navigate backward + Navegar para trás - Navigate forward + Navegar para a frente Subir uma pasta @@ -2739,7 +2757,7 @@ Fechar todos os separadores, incluindo o atual - Reopen recently closed tab + Reabrir último separador fechado Mover para o separador anterior @@ -2751,13 +2769,13 @@ Fechar separador atual - Close the active pane + Fechar painel ativo Foco no outro painel - Switch focus to the other pane + Trocar foco para o outro painel Mostrar/ocultar barra lateral @@ -2939,18 +2957,18 @@ Key name for hotkeys in menus. Use abbreviation if possible. - Baixar volume + Diminuir volume Key name for hotkeys in menus. Use abbreviation if possible. - Subir volume + Aumentar volume Key name for hotkeys in menus. Use abbreviation if possible. Alterar - Inverter seleção + Selecionar/desselecionar Mostrar aviso ao alterar as extensões de ficheiros @@ -2965,13 +2983,13 @@ Sem etiqueta - Previous tab + Separador anterior - Next tab + Separador seguinte - Close tab + Fechar separador Editar caminho @@ -3001,7 +3019,7 @@ Mostrar caixas de seleção ao selecionar itens - Edit path in the OmniBar + Editar caminho no OmniBar Criar novo item @@ -3016,7 +3034,7 @@ Eliminar permanentemente - Delete selected {0, plural, one {item} other {items}} permanently + Eliminar {0, plural, one {item} other {itens}} permanentemente Reproduzir ficheiros selecionados @@ -3043,7 +3061,7 @@ Dia - Alternar unidade de agrupamento por data + Alterna a unidade de agrupamento por data Alternar unidade de agrupamento @@ -3281,7 +3299,7 @@ Inicializar repositório - Initialize current folder as a git repository + Inicializar pasta atual como repositório Git Nome do repositório remoto @@ -3296,13 +3314,13 @@ Ordenar itens por caminho - Open selected directory in a new pane + Abrir pasta selecionada em novo painel - Open selected directory in a new tab + Abrir pasta selecionada em novo separador - Open selected directory in a new window + Abrir pasta selecionada em nova janela Abrir tudo @@ -3327,10 +3345,10 @@ O comando '{0}' não está pronto para ser executado. - Command Palette + Paleta de comandos - Open Command Palette in the OmniBar + Abrir paleta de comandos na OmniBar Iniciar em: @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - {0} itens comprimidos para "{1}" + {0, plural, one {# item comprimido} other {# itens comprimidos}} para "{1}" Shown in a StatusCenter card. - {0} itens comprimidos de "{1}" para "{2}" + {0, plural, one {# item comprimido} other {# itens comprimidos}} de "{1}" para "{2}" Shown in a StatusCenter card. - Erro ao comprimir {0} itens para "{1}" + Erro ao comprimir {0, plural, one {# item} other {# itens}} para "{1}" Shown in a StatusCenter card. - Falha ao comprimir {0} itens de "{1}" para "{2}" + Falha ao comprimir {0, plural, one {# item} other {# itens}} de "{1}" para "{2}" Shown in a StatusCenter card. - A comprimir {0} itens para "{1}" + A comprimir {0, plural, one {# item} other {# itens}} para "{1}" Shown in a StatusCenter card. - A comprimir {0} itens de "{1}" para "{2}" + A comprimir {0, plural, one {# item} other {# itens}} de "{1}" para "{2}" Shown in a StatusCenter card. @@ -3528,67 +3546,67 @@ Shown in a StatusCenter card. - Cancelada a instalação de {0} tipo(s) de letra + Instalação cancelada de {0} tipo(s) de letra Shown in a StatusCenter card. - Cancelada a instalação de {0} tipo(s) de letra de “{1}” + Instalação cancelada de {0, plural, one {# tipo de letra} other {# tipos de letra}} de "{1}" Shown in a StatusCenter card. - Instalado {0} tipo(s) de letra + {0, plural, one {# tipo de letra instalado} other {# tipos de letra instalados}} Shown in a StatusCenter card. - Instalado {0} tipo(s) de letra de “{1}” + {0, plural, one {# tipo de letra instalado} other {# tipos de letra instalados}} de "{1}" Shown in a StatusCenter card. - Erro ao instalar {0} tipo(s) de letra + Erro ao instalar {0, plural, one {# tipo de letra} other {# tipos de letra}} Shown in a StatusCenter card. - Falha ao instalar {0} tipo(s) de letra de "{1}" + Falha ao instalar {0, plural, one {# tipo de letra} other {# tipos de letra}} de "{1}" Shown in a StatusCenter card. - A instalar {0} tipo(s) de letra + A instalar {0, plural, one {# tipo de letra} other {# tipos de letra}} Shown in a StatusCenter card. - A instalar {0} tipo(s) de letra de "{1}" + A instalar {0, plural, one {# tipo de letra} other {# tipos de letra}} de "{1}" Shown in a StatusCenter card. - Cancelou a cópia de {0} itens para "{1}" + Cópia cancelada de {0, plural, one {# item} other {# itens}} para "{1}" Shown in a StatusCenter card. - Cancelou a cópia de {0} itens de "{1}" para "{2}" + Cópia cancelada de {0, plural, one {# item} other {# itens}} de "{1}" para "{2}" Shown in a StatusCenter card. - {0} itens copiados para "{1}" + {0, plural, one {# item copiado} other {# itens copiados}} para "{1}" Shown in a StatusCenter card. - {0} itens copiados de "{1}" para "{2}" + {0, plural, one {# item copiado} other {# itens copiados}} de "{1}" para "{2}" Shown in a StatusCenter card. - Erro ao copiar {0} itens para "{1}" + Erro ao copiar {0, plural, one {# item} other {# itens}} para "{1}" Shown in a StatusCenter card. - Falha ao copiar {0} itens de "{1}" para "{2}" + Falha ao copiar {0, plural, one {# item} other {# itens}} de "{1}" para "{2}" Shown in a StatusCenter card. - A copiar {0} itens para "{1}" + A copiar {0, plural, one {# item} other {# itens}} para "{1}" Shown in a StatusCenter card. - A copiar {0} itens de "{1}" para "{2}" + A copiar {0, plural, one {# item} other {# itens}} de "{1}" para "{2}" Shown in a StatusCenter card. @@ -3624,59 +3642,59 @@ Shown in a StatusCenter card. - Cancelou a eliminação de {0} itens de "{1}" + Eliminação cancelada de {0, plural, one {# item} other {# itens}} de "{1}" Shown in a StatusCenter card. - Eliminou {0} itens de "{1}" + {0, plural, one {# item eliminado} other {# itens eliminados}} de "{1}" Shown in a StatusCenter card. - Erro ao eliminar {0} itens de "{1}" + Erro ao eliminar {0, plural, one {# item} other {# itens}} de "{1}" Shown in a StatusCenter card. - Falha ao eliminar {0} itens de "{1}" + Falha ao eliminar {0, plural, one {# item} other {# itens}} de "{1}" Shown in a StatusCenter card. - A eliminar {0} itens de "{1}" + A eliminar {0, plural, one {# item} other {# itens}} de "{1}" Shown in a StatusCenter card. - Cancelou a movimentação de {0} itens para "{1}" + Movimentação cancelada de {0, plural, one {# item} other {# itens}} para "{1}" Shown in a StatusCenter card. - Cancelou a movimentação de {0} itens de "{1}" para "{2}" + Movimentação cancelada de {0, plural, one {# item} other {# itens}} de "{1}" para "{2}" Shown in a StatusCenter card. - {0} itens movidos para "{1}" + {0, plural, one {# item movido} other {# itens movidos}} para "{1}" Shown in a StatusCenter card. - {0} itens movidos de "{1}" para "{2}" + {0, plural, one {# item movido} other {# itens movidos}} de "{1}" para "{2}" Shown in a StatusCenter card. - A mover {0} itens para "{1}" + A mover {0, plural, one {# item} other {# itens}} para "{1}" Shown in a StatusCenter card. - A mover {0} itens de "{1}" para "{2}" + A mover {0, plural, one {# item} other {# itens}} de "{1}" para "{2}" Shown in a StatusCenter card. - Erro ao mover {0} itens para "{1}" + Erro ao mover {0, plural, one {# item} other {# itens}} para "{1}" Shown in a StatusCenter card. - Falha ao mover {0} itens de "{1}" para "{2}" + Falha ao mover {0, plural, one {# item} other {# itens}} de "{1}" para "{2}" Shown in a StatusCenter card. - Cancelou a limpeza da Reciclagem + Esvaziamento da reciclagem cancelado Shown in a StatusCenter card. @@ -3684,15 +3702,15 @@ Shown in a StatusCenter card. - A esvaziar Reciclagem + A esvaziar reciclagem Shown in a StatusCenter card. - Erro ao esvaziar a Reciclagem + Erro ao esvaziar a reciclagem Shown in a StatusCenter card. - Falha ao esvaziar a Reciclagem + Falha ao esvaziar a reciclagem Shown in a StatusCenter card. @@ -3704,7 +3722,7 @@ Shown in a StatusCenter card. Used as "8/20 items processed" - Desbloquear ficheiro descarregado + Desbloquear o ficheiro transferido Não existem operações em curso @@ -3746,7 +3764,7 @@ Ocorreu um erro ao aplicar a etiqueta - Extrair itens {0, plural, one {do ficheiro selecionado} other {dos ficheiros selecionados}} para a pasta atual, no caso de um ficheiro de item único, ou para uma nova pasta, no caso de um ficheiro de vários itens + Extrai {0, plural, one {o ficheiro selecionado} other {os ficheiros selecionados}} aqui para um item único ou para uma nova pasta para vários itens Extrair aqui (inteligente) @@ -3755,7 +3773,7 @@ Ordenar ficheiros e pastas em conjunto - Sort files and folders in the same list + Ordenar ficheiros e pastas na mesma lista Ordenar ficheiros primeiro @@ -4016,16 +4034,16 @@ Menu de ações em separadores - Vertical pane + Painel vertical - Add vertical pane + Adicionar painel vertical - Horizontal pane + Painel horizontal - Add horizontal pane + Adicionar painel horizontal Organizar verticalmente @@ -4066,9 +4084,6 @@ Ir para a página inicial - - Mostrar botão Início na barra de endereço - Barras de ferramentas @@ -4118,26 +4133,26 @@ Trocar foco para o separador mais recente - Toggle shelf pane + Mostrar/ocultar painel da prateleira - Toggle the visibility of the shelf pane + Mostra/oculta o painel da prateleira - Mostrar botão para alternar o painel Estante na barra de endereço + Mostrar botão para mostrar/ocultar a prateleira na barra de endereços - Estante + Prateleira 'Shelf' refers to the Shelf Pane feature, where users can conveniently drag and drop files for quick access and perform bulk actions with ease. Limpar itens - Remover da estante + Remover da prateleira - Adicionar à estante + Adicionar à prateleira Tooltip that displays when dragging items to the Shelf Pane @@ -4208,9 +4223,6 @@ Decimal - - Ativar Omnibar - Pode adicionar secções à barra lateral clicando com o botão direito do rato e selecionando as que pretende adicionar @@ -4226,4 +4238,42 @@ Pesquisar ficheiros e pastas... + + Durante as operações de ficheiros + + + Mostrar botão "Centro de estado" + + + Anel de progresso do centro de estado + Screen reader name for the status center progress ring + + + Ficheiros de ícones + This is the friendly name for a variety of different icon files. + + + Mostra os caminhos de navegação recolhidos + + + Mostrar pastas em {0} + + + Mostrar pastas em Início + + + Não existem comandos que contenham {0} + + + Ver mais + + + Filtrar por + + + Nome de ficheiro + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/ro-RO/Resources.resw b/src/Files.App/Strings/ro-RO/Resources.resw index 202ee0ca8e3e..43e912dc7218 100644 --- a/src/Files.App/Strings/ro-RO/Resources.resw +++ b/src/Files.App/Strings/ro-RO/Resources.resw @@ -124,7 +124,7 @@ Copiază calea - Copy item path + Copiază calea elementului Copiază calea cu ghilimele @@ -166,7 +166,7 @@ Omite - Select all + Selectează tot Inversează selecția @@ -184,13 +184,13 @@ Elimină toate elementele - Introduceți o cale pentru a naviga sau tastați „>” pentru a deschide paleta de comenzi + Introdu o cale pentru a naviga sau tastează „>” pentru a deschide paleta de comenzi - Caută + Căutare - Fișierele pe care le veți accesa vor apărea aici + Fișierele pe care le vei accesa vor apărea aici Elimină acest element @@ -214,10 +214,10 @@ Afișează extensiile pentru tipurile de fișiere cunoscute - Afișează fișierele și folderele ascunse + Afișează fișierele și dosarele ascunse - Dot files + Afișare fișiere punct Aspect vizual @@ -229,7 +229,7 @@ Avansat - Continuați de unde ați rămas + Continuă de unde ai rămas Deschide o filă nouă @@ -256,10 +256,10 @@ Lipește - Lipire comandă rapidă + Lipește ca scurtătură - Nou + Creează Proprietăți @@ -280,10 +280,10 @@ Decupează - Ștergere + Șterge - Fixare la Bara Laterală + Fixează la bara laterală Bun venit la Files! @@ -292,16 +292,16 @@ Acordă permisiunea - Pentru a începe, va trebui să ne acordați permisiunea de a vă afișa fișierele. Acest lucru va deschide o pagină de setări de unde ne puteți acorda permisiunea. Va trebui să reporniți aplicația după ce ați acordat permisiunea. + Pentru a începe, va trebui să ne acorzi permisiunea de a-ți afișa fișierele. Acest lucru va deschide o pagină de setări de unde ne poți acorda permisiunea. Va trebui să repornești aplicația după ce ai acordat permisiunea. Afișare - Introduceți un nume + Introdu un nume de element - Creare {0} nou + Creează {0} nou Luminoasă @@ -334,10 +334,10 @@ Sus - Reîmprospătare + Reîmprospătează - Un element cu acest nume exista deja în acest folder. + Un element cu acest nume există deja în acest dosar. Înlocuiește elementul existent @@ -355,7 +355,7 @@ Nu am putut șterge acest element - Vă rugăm introduceți unitatea necesară pentru a accesa acest element. + Te rog introdu unitatea necesară pentru a accesa acest element. Unitate deconectată @@ -376,7 +376,7 @@ Dosarul pe care încerci să-l accesezi a fost mutat sau șters. - Ați șters acest folder? + Ai șters acest dosar? Fișierul pe care încerci să-l accesezi este utilizat de {0} @@ -468,28 +468,28 @@ octeți - KB + KO - MB + MO - GB + GO - TB + TO - PB + PO - B + O - {0, number} {0, plural, one {fișier} few {fișiere} other {de fișiere}}, {1, number} {1, plural, one {folder} few {foldere} other {de foldere}} + {0, number} {0, plural, one {fișier} few {fișiere} other {de fișiere}}, {1, number} {1, plural, one {dosar} few {dosare} other {de dosare}} - {0, number} {0, plural, one {fișier} few {fișiere} other {de fișiere}}, {1, number} {1, plural, one {folder} few {foldere} other {de foldere}} din {2, number} {2, plural, one {locație} few {locații} other {de locații}} + {0, number} {0, plural, one {fișier} few {fișiere} other {de fișiere}}, {1, number} {1, plural, one {dosar} few {dosare} other {de dosare}} din {2, number} {2, plural, one {locație} few {locații} other {de locații}} Rulează ca alt utilizator @@ -519,13 +519,13 @@ Recente - Mutați fila aici + Mută fila aici Stare - Implicit sistem + Implicit Windows Niciun rezultat @@ -594,7 +594,7 @@ Nu este nimic de partajat acum... - Fișierul pe care l-ați selectat va fi partajat + Elementele pe care le-ai selectat vor fi partajate Elementul selectat va fi partajat @@ -606,70 +606,70 @@ Se partajează {0} {1} - Fișierul pe care încercați să îl redenumiți nu mai există. Verificați locația corectă a fișierului pe care trebuie să-l redenumiți. + Elementul pe care încerci să-l redenumești nu mai există. Verifică locația corectă a elementului pe care dorești să-l redenumești. Elementul nu mai există - Numele specificat a fost invalid. Vă rugăm să verificați numele fișierului dorit și încercați din nou. + Numele specificat este invalid. Te rog verifică numele elementului dorit și încearcă din nou. Nume element invalid - Lungimea numelui fișierului specificat depășește limita maximă. Vă rugăm să verificați numele dorit și încercați din nou. + Lungimea numelui elementului specificat depășește limita maximă. Te rog să verifici numele dorit și să încerci din nou. - Numele fișierului era prea lung + Numele elementului era prea lung Afișează mai multe opțiuni - Aplicația trebuie să repornească pentru a aplica aceste setări, doriți să reporniți aplicația? + Aplicația trebuie să fie repornită pentru a aplica aceste setări, dorești să repornești aplicația acum? - Sponsorizați-ne pe GitHub + Sponsorizează-ne pe GitHub - Nu am putut crea acest element + Nu s-a putut crea acest element - Acces Respins + Acces refuzat - Setați ca + Setează ca - Anulare + Anulează - Creați un element nou + Creează un element nou - Alege un tip pentru acest fișier nou mai jos + Alege un tip pentru acest element nou de mai jos Fișier - Creați un fișier gol + Creează un fișier gol - Folder + Dosar - Creați un folder gol + Creează un dosar gol - Reîmprospătați directorul + Reîmprospătează dosarul Limbă - Mutați extensiile shell într-un sub-meniu + Plasează extensiile shell-ului într-un sub-meniu Arată dialogul de confirmare înainte de a șterge @@ -738,7 +738,7 @@ Decimal Longitudine - Decimal latitudine + Latitudine zecimală Altitudine @@ -840,19 +840,19 @@ Editor - Calea Miniaturilor Mari + Calea miniaturilor mari - Calea Miniaturilor Uri + URI miniaturi mari - Calea Miniaturilor Mici + Calea miniaturi mici - Calea Miniaturilor Uri + URI miniaturi mici - URL web al utilizator + URL web utilizator Autor @@ -906,10 +906,10 @@ Codare Bitrate - Rată de Biți de Codificare Audio + Rată de biți codificare audio - Rată de Biți de Codificare Video + Rată de biți codificare video Compresie @@ -969,7 +969,7 @@ Unități - Mutați aici + Mută aici Sigur pentru a elimina hardware-ul @@ -978,16 +978,16 @@ Dispozitivul poate fi acum scos în siguranță din calculator. - Problemă la scoaterea dispozitivului + Problemă la eliminarea dispozitivului Acest dispozitiv este în prezent în uz. Închideți orice programe, ferestre sau file care ar putea utiliza dispozitivul și apoi încercați din nou. - Scoatere + Elimină în siguranță - Duplicare filă + Duplică fila Mută fila într-o fereastră nouă @@ -1002,10 +1002,10 @@ Ștergeți toate proprietățile - Verificați starea operațiunilor cu fișiere aici + Verifică starea operațiunilor cu fișiere de aici - Centru de stare + Centrul de operațiuni Rezultatele căutării în {1} pentru {0} @@ -1020,46 +1020,46 @@ Arată fișierele protejate de sistem - Sincronizați aspectul și preferințele de sortare între directoare + Sincronizează aspectul și preferințele de sortare între dosare - Personalizați meniul contextual clic dreapta + Personalizează meniul contextual clic-dreapta Calea originală - Adăugare + Adaugă - Editare + Editează - Eliminare + Elimină - Deschidere file în modul panou dublu + Deschide filele în modul panou dublu - Arată opțiunea pentru a deschide foldere într-un panou nou + Afișează opțiunea pentru a deschide dosarele într-un panou nou - Afișați opțiunea pentru a copia calea + Afișează opțiunea pentru a copia calea - Afișați opțiunea pentru a crea un folder cu selecție + Afișează opțiunea pentru a crea un dosar cu selecția - Afișați opțiunea pentru a crea o comandă rapidă + Afișează opțiunea pentru a crea o scurtătură Panou nou - Deschideți într-un panou nou + Deschide într-un panou nou - Fișiere & foldere + Fișiere și dosare Detalii (Ctrl+Shift+1) @@ -1071,16 +1071,16 @@ Unități în cloud - Confirmați + Confirmă Nume dorit - Afișați sau ascundeți panoul de previzualizare + Comută panoul de previzualizare - Afișați sau ascundeți panoul de detalii + Comută panoul de detalii Comută panoul de detalii pentru a vizualiza proprietățile de bază ale fișierelor @@ -1089,13 +1089,19 @@ Comută panoul de informații - Comutați panoul de informații pentru a vizualiza panourile de detalii/previzualizare + Comută vizibilitatea panourilor de detalii și de previzualizare - Toggle toolbar + Comutare Bară de Instrumente - Toggle visibility of the toolbar + Comută vizibilitatea barei de instrumente + + + Comutare antet filtru + + + Comută vizibilitatea antetului de filtru Nicio previzualizare disponibilă @@ -1104,7 +1110,7 @@ Nume Obiect - Anulați fixarea la Bara Laterală + Anulează fixarea la bara laterală Rețea @@ -1122,7 +1128,7 @@ Feedback - Disponibil când sunteți online + Disponibil când ești online Documentație @@ -1146,10 +1152,10 @@ Necunoscut - Dacă modificați extensia unui fișier, acesta poate deveni inutilizabil. Sigur modificați extensia? + Dacă modifici extensia unui fișier, acesta poate deveni inutilizabil. Sigur dorești să modifici extensia? - Drive CD ROM + Unitate CD-ROM Unitate în cloud @@ -1158,7 +1164,7 @@ Unitate de disc fixă - Unitate de disc floppy + Unitate de disc flexibil Unitate de rețea @@ -1167,10 +1173,10 @@ Unitate nemontată - Unitate RAM disc + Unitate disc RAM - Dispozitiv de stocare amovil + Dispozitiv de stocare amovibil Necunoscut @@ -1185,7 +1191,7 @@ Mai multe opțiuni... - Conectare unitate de rețea + Asociază unitate de rețea Fixat @@ -1212,16 +1218,16 @@ Această acțiune necesită drepturi de administrator - Doriți să continuați ca administrator? + Dorești să continui ca administrator? Coloane (Ctrl + Shift+6) - Fixare la Start + Fixează la meniul Start - Anulați fixarea la Start + Anulează fixarea în meniul Start Bibliotecă @@ -1248,37 +1254,37 @@ O bibliotecă cu același nume exista deja! - Deschideți Stocare inteligentă + Deschide Stocare inteligentă - Deschideți pagina Stocare Inteligentă în Setările Windows + Deschide pagina Stocare Inteligentă în Setările Windows Curățare - Copiere + Copiază Se copiază {0, plural, one {element} other {elemente}} - Se șterg {0, plural, one {element} other {elemente}} + Ștergere {0, plural, one {element} other {elemente}} Mutare la - {0, plural, one {Un element va fii mutat} other {# elemente vor fii mutate}} + {0, plural, one {Un element va fi mutat} other {# elemente vor fi mutate}} Se mută {0, plural, one {element} other {elemente}} - {0, plural, one {Un element va fii șters} other {# elemente vor fii șterse}} + {0, plural, one {Un element va fi șters} other {# elemente vor fi șterse}} - Continuați + Continuă {0, plural, one {Există un nume de fișier conflictual} other {Există # nume de fișier conflictuale}} @@ -1287,13 +1293,13 @@ {0, plural, one {Există un nume de fișier conflictual} other {Există # nume de fișier conflictuale}}, și {1, plural, one {un element în curs} other {# elemente în curs}} - {0, plural, one {nume de fișier} other {nume de fișiere}} în conflict + {0, plural, one {Nume de fișier} other {Nume de fișiere}} în conflict - {0, plural, one {Un element va fii copiat} other {# elemente vor fii copiate}} + {0, plural, one {Un element va fi copiat} other {# elemente vor fi copiate}} - Ștergere definitivă + Șterge definitiv Viteză ISO @@ -1305,7 +1311,7 @@ Generează un nume nou - Creare folder cu selecție + Creare dosar cu selecție Tip: @@ -1326,7 +1332,7 @@ Coloană tip element - Coloană data modificări + Coloană data modificării Coloana data ștergerii @@ -1338,7 +1344,7 @@ Data modificării - Folder original + Dosar original Descendentă @@ -1398,10 +1404,10 @@ {0} elemente - Reopen tab + Redeschide fila închisă - Redenumire + Redenumește Confidențialitate @@ -1431,7 +1437,7 @@ Permitere - Refuzați + Refuză Control total @@ -1461,7 +1467,7 @@ Cont Necunoscut - Nu aveți permisiuni pentru a vizualiza proprietățile de securitate ale acestui obiect. Faceți clic pe „Permisiuni avansate” pentru a continua. + Nu ai permisiunea de a vizualiza proprietățile de securitate ale acestui obiect. Fă clic pe „Permisiuni avansate” pentru a continua. Proprietar: @@ -1470,25 +1476,25 @@ Proprietar necunoscut - Extrage Arhiva + Extrage arhiva - Deschideți folderul de destinație când se finalizează + Deschide dosarul destinație la finalizare - Extragere în {0}\ + Extrage în {0}\ - Creați o bibliotecă nouă + Creează o bibliotecă nouă - Restabilire biblioteci implicite + Restaurează bibliotecile implicite - Sigur doriți să restaurați bibliotecile implicite? Toate fișierele dvs. vor rămâne în spațiul de stocare. + Ești sigur că dorești să restaurezi bibliotecile implicite? Toate fișierele tale vor rămâne pe unitatea de stocare. - Restabilire biblioteci + Restaurează bibliotecile Proprietar @@ -1509,10 +1515,10 @@ fișiere - acest folder + acest dosar - subfoldere + subdosare Moștenite @@ -1521,13 +1527,13 @@ Permisiuni - Nu aveți permisiuni pentru a vizualiza proprietățile de securitate ale acestui obiect. Puteți încerca să preluați proprietatea asupra acestui obiect. + Nu ai permisiunea de a vizualiza proprietățile de securitate ale acestui obiect. Poți încerca să preiei proprietatea asupra acestui obiect. - Acest folder și fișiere + Acest dosar și fișiere - Acest folder, subfoldere și fișiere + Acest dosar, sub-dosare și fișiere Doar fișiere @@ -1539,25 +1545,25 @@ Doar subfoldere şi fişiere - Doar acest folder + Doar acest dosar - Acest folder și subfoldere + Acest dosar și sub-dosare - Adăugați date + Adaugă date - Schimbați permisiunea + Schimbă permisiunea - Creați foldere + Creează dosare - Creați fișiere + Creează fișiere - Ștergeți subdirectoarele și fișierele + Șterge sub-dosarele și fișierele Execută fişierele @@ -1575,43 +1581,43 @@ Citire permisiuni - Preluați permisiune + Preia proprietatea - Vizitați folderul + Vizitează dosarul - Scriere atribute + Scrie atributele - Scriere date + Scrie datele Scriere atribute extinse - Convertiți permisiunile moștenite în permisiuni explicite + Convertește permisiunile moștenite în permisiuni explicite - Activați moștenirea + Activează moștenirea - Eliminați toate permisiunile moștenite + Elimină toate permisiunile moștenite - Resetare permisiuni copil + Resetează permisiuni pe copil - Înlocuiți toate intrările de permisiuni ale obiectului copil cu intrări de permisiuni moștenite de la acest obiect + Înlocuiește toate intrările de permisiuni ale obiectului copil cu intrări de permisiuni moștenite de la acest obiect - Close pane + Închide panoul - Intrare în suprapunere compactă + Mod compact, mereu deasupra - Ieșire din suprapunere compactă + Ieși din modul compact Descriere fişier @@ -1629,19 +1635,19 @@ Versiune fișier - Încărcați previzualizarea completă + Încarcă previzualizarea completă Descarcă elementul din cloud si încarcă previzualizarea - {0, plural, one {# element} other {# elemente}} ({1, plural, one {# fișier} other {# fișiere}}, {2, plural, one {# folder} other {# foldere}}) + {0, plural, one {# element} other {# elemente}} ({1, plural, one {# fișier} other {# fișiere}}, {2, plural, one {# dosar} other {# dosare}}) Dimensiune necomprimată - SLW + WSL Ascundeți secțiunea {0} @@ -1656,13 +1662,13 @@ Actualizările sunt gata de instalare - Închidere + Închide - Actualizare + Actualizează - Pornire + Acasă Extragerea arhivei s-a finalizat cu succes. @@ -1674,7 +1680,7 @@ Extragere completă! - Deschideți folderul părinte + Deschide dosarul părinte Necunoscut @@ -1686,10 +1692,10 @@ Parte din set - Deschidere unitate + Deschide unitate - Introduceți un disc în unitatea {0} + Introdu un disc în unitatea {0} Introduceți un disc @@ -1704,7 +1710,7 @@ Anonim - Furnizați datele de autentificare: + Furnizează datele de autentificare: Nume de utilizator @@ -1725,10 +1731,10 @@ Carduri - Deschide foldere în filă nouă + Deschide dosarele în filă nouă - Centru de stare + Centrul de operațiuni Coloană dată de creare @@ -1740,19 +1746,19 @@ Caracteristici experimentale - Asistență şi suport + Ajutor și asistență - Trimiteți o cerere de funcție + Trimite o cerere pentru o funcție nouă - Trimiteți un raport despre o problemă + Trimite un raport despre o problemă - Setați Files ca manager de fișiere implicit + Setează Files ca manager de fișiere implicit - Utilizați Files ca dialog de deschidere fișiere + Utilizează Files ca dialog de deschidere fișiere Etichetă @@ -1761,13 +1767,13 @@ Deschide elementele cu un singur clic - Cale folder + Cale dosar - Exportare setări + Exportă setări - Importare setări + Importă setări Nu s-au putut importa setările. Fișierul de setări este corupt. @@ -1782,13 +1788,13 @@ Bară Laterală - Alegeți o pictogramă personalizată pentru folder + Alegeți o pictogramă personalizată pentru dosar Personalizare - Restabiliți valorile implicite + Restabilește valoarea implicită Deschide fila în instanța existentă la deschiderea Files dintr-o altă aplicație @@ -1803,7 +1809,7 @@ Niciuna - Când mă conectez la Windows + La pornirea Windows La pornirea programului @@ -1812,7 +1818,7 @@ Sistem - Sistem (Îmbunătățit) + Sistem (îmbunătățit) Culoare 16-bit (65536) @@ -1821,19 +1827,19 @@ Culoare 8-bit (256) - Dezactivați optimizările pe ecran complet + Dezactivează optimizările pe ecran complet - Rulați la rezoluția ecranului de 640 x 480 + Rulează la rezoluția ecranului de 640 x 480 - Suprascrieți comportamentul de scalare DPI mare + Suprascrie comportamentul de scalare la DPI mare Mod de culoare redus - Înregistrați acest program pentru repornire + Înregistrează acest program pentru repornire Fereastră de pornire @@ -1848,19 +1854,19 @@ Maximizat - Rulare ca administrator + Execută ca administrator - Rulați depanatorul pentru compatibilitate + Rulează depanatorul pentru compatibilitate - Utilizați setările DPI ale monitorului principal + Utilizează setările DPI ale monitorului principal - Nu ajustați setările DPI + Nu ajusta setările DPI - Nu suprascrieți setările DPI + Nu suprascrie setările DPI Mod compatibilitate @@ -1872,25 +1878,25 @@ Biblioteci terțe - Această opțiune modifică registrul sistemului și poate avea efecte secundare neașteptate pe dispozitiv. Continuați pe propriul risc. + Această opțiune modifică registrul sistemului și poate avea efecte secundare neașteptate pe dispozitiv. Continuă pe propriul risc. - Operațiunile de aplatizare sunt permanente și nu sunt recomandate. Continuați pe propriul risc. + Operațiunile de aplatizare dosare sunt permanente și nu sunt recomandate. Continuă pe propriul risc. - Creați o bibliotecă + Creează o bibliotecă - Introduceți numele Bibliotecii + Introdu numele bibliotecii - Calculează dimensiunea folderelor + Calculează dimensiunea dosarelor Fișiere recente - Deschideți Files la pornirea Windows + Lansează Files la pornirea Windows Atribute @@ -1905,7 +1911,7 @@ Doar citire - Curățați conținutul unității + Curăță conținutul unității de stocare Tip @@ -1914,19 +1920,19 @@ Octeți - Extragere + Extrage - Extragere fişiere + Extrage fişierele - Extrageți aici + Extrage aici Ctrl+E - Extragere în {0} + Extrage în {0} Execută scriptul @@ -1935,16 +1941,16 @@ Execută cu PowerShell - Calcularea dimensiunilor folderelor consumă multe resurse şi poate creşte utilizarea procesorului. + Calcularea dimensiunilor dosarelor consumă multe resurse și poate crește utilizarea procesorului. - Rotire la stânga + Rotește la stânga - Rotire la dreapta + Rotește la dreapta - Instalare + Instalează Închide filele din stânga @@ -1953,7 +1959,7 @@ Închide filele din dreapta - Închideți celelalte file + Închide celelalte file Închide toate filele @@ -1965,7 +1971,7 @@ Imagini - Actualizați Files + Actualizează Files Etichete @@ -1977,13 +1983,13 @@ ex: {0}, {1} - Afișați miniaturi + Afișează miniaturi - Reîncercați + Reîncearcă - Operațiunea de mutare nu este suportată în acest context. Doriți să copiați elementele în schimb? + Operațiunea de mutare nu este suportată în acest context. Dorești să copiezi elementele în schimb? Elemente ascunse @@ -2012,20 +2018,32 @@ Comportamente - - Lăsați o recenzie pentru Files + + Salut! + + + Îți place Files? Te rog să iei în considerare scrierea unei recenzii în Microsoft Store. + + + Îți place Files? Te rog să iei în considerare susținerea proiectului pe GitHub. - - Doriți să revizuiți Files? + + Sponsorizare + + + Acordă-ne o notă + + + Ignorare - Setați ca fundal + Setează ca fundal - Stabilire ca imagine de fundal pentru desktop + Setează ca imagine de fundal pentru spațiul de lucru - Setați ca implicit + Setează ca implicit Coloană dată @@ -2046,46 +2064,46 @@ Ecran de blocare - Deschide folderele cu un singur clic în aspectul coloană + Deschide dosarele cu un singur clic în aspectul coloană - Deschidere elemente + Deschiderea elementelor - Comprimare + Comprimă - Mută tot conținutul din subfoldere în locația selectată + Mută tot conținutul din sub-dosare în locația selectată - Aplatizare folder + Aplatizează dosar - Aplatizare + Aplatizează - Aplatizarea unui folder mută tot conținutul din subfolderele sale în locația selectată. Această operațiune este permanentă și nu poate fii anulată. Prin utilizarea acestei caracteristici experimentale, vă asumați riscul și sunteți de acord să nu trageți la răspundere echipa Files pentru orice pierdere de date. + Aplatizarea unui dosar mută tot conținutul din sub-dosarele sale în locația selectată. Această operațiune este permanentă și nu poate fi anulată. Prin utilizarea acestei caracteristici experimentale, îți asumi riscul și ești de acord să nu tragi la răspundere echipa Files pentru orice pierdere de date. - Afișare opțiuni de aplatizare + Afișare opțiuni de aplatizare dosare - Selectați fișiere și foldere când treceți cu mouse-ul peste ele + Selectează fișiere și dosare când ții mausul deasupra lor - Sunteți sigur că vreți să restaurați toate elementele din coșul de reciclare? + Ești sigur că vrei să restaurezi toate elementele din coșul de reciclare? - Restaurați toate elementele + Restaurează toate elementele - Doriți să restaurați {0, plural, one {element selectat} other {{0} elemente selectate}}? + Dorești să restaurezi {0, plural, one {elementul selectat} few {cele # elemente selectate} other {cele # de elemente selectate}}? - Restaurare selecție + Restaurează selecția - Restaurați toate elementele + Restaurează toate elementele Restaurare @@ -2094,10 +2112,10 @@ Comanda rapidă nu poate fi deschisă - Destinația țintă nu poate fi găsită {0}. Doriți să ștergeți această comandă rapidă? + Destinația țintă nu poate fi găsită {0}. Dorești să ștergi această scurtătură? - Nu aveți permisiunea de a accesa acest folder. + Nu ai permisiunea de a accesa acest dosar. Parolă arhivă @@ -2115,16 +2133,16 @@ Sortare și grupare - Creare arhivă + Creează arhivă - Creare + Creează - Creare {0} + Creează {0} - Introduceți un nume + Introdu un nume Nivel de comprimare @@ -2139,19 +2157,19 @@ Normal - Scăzută + Scăzut - Rapidă + Rapid - Niciuna + Fără - Dimensiune împărțită + Dimensiune împărțire - Nu despărțiți + Nu împărți CD @@ -2172,16 +2190,16 @@ Parolă - Formatare + Format - Sincronizați coloana de status + Sincronizează coloana de stare - Grupați după + Grupează după - Sortare după + Ordonează după Grupare în ordine descrescătoare @@ -2190,37 +2208,37 @@ Sortare în ordine descrescătoare - Creați o comandă rapidă nouă + Creează o nouă scurtătură - Creați comenzi rapide la programele locale sau de rețea, fișiere, foldere, computere sau adrese de internet. + Creează scurtături către programe locale sau din rețea, fișiere, dosare, computere sau adrese de internet. - Introduceți locația elementului: + Introdu locația elementului: - Creează o comandă rapidă + Creează o scurtătură Fișierele utilizate recent sunt dezactivate în Windows File Explorer. - Editați fișierul de setări + Editează fișierul de setări - Deschideți fișierul de setări în editorul dvs. implicit + Deschide fișierul de setări în editorul tău implicit Note de Lansare - Deschideți Notele de Lansare + Deschide notele de lansare - Crearea unei comenzi rapide în această locație necesită privilegii de administrator + Crearea unei scurtături în această locație necesită privilegii de administrator - Doriți în schimb să creați o comandă rapidă pe desktop? + Dorești să creezi o scurtătură pe spațiul de lucru în schimb? Numele elementului specificat nu este valid @@ -2229,25 +2247,25 @@ Setări - Dublu-clic pe un spațiu gol pentru a urca un director + Dublu-clic pe spațiul gol pentru a naviga în dosarul părinte - Vedeți mai mult + Vezi mai mult Afișează editarea etichetelor - Afișați opțiunile de compresie + Afișează opțiunile de compresie - Afișați trimitere la meniu + Afișează meniul de trimitere la - Arată opțiunea pentru a deschide foldere într-o filă nouă + Afișează opțiunea pentru a deschide dosarele într-o filă nouă - Arată opțiunea pentru a deschide foldere într-o fereastră nouă + Afișează opțiunea pentru a deschide dosarele într-o fereastră nouă Acces rapid @@ -2256,10 +2274,10 @@ Introduceți acreditările pentru a vă conecta la: {0} - Introduceți acreditările rețelei + Introdu datele de autentificare în rețea - Memorează-mi acreditările + Ține minte datele de autentificare Eroare la dosarul rețelei @@ -2274,7 +2292,7 @@ Întotdeauna - Doar ștergere permanentă + Doar la ștergere definitivă Niciodată @@ -2286,7 +2304,7 @@ Etichetă nouă - Creați o etichetă nouă + Creează o etichetă nouă Se încarcă... @@ -2295,7 +2313,7 @@ Opțiuni meniu contextual - File extensions + Extensii nume de fișier Formatare @@ -2304,13 +2322,13 @@ Ajutor - Full screen + Ecran complet Ești sigur că vrei să ștergi această etichetă? - Play + Redare Înălțime @@ -2322,10 +2340,10 @@ Aplică această acțiune tuturor elementelor contradictorii - Deschideți în Terminal Windows + Deschide în Terminal Windows - Deschideți în Terminal Windows ca administrator + Deschide în Terminal Windows ca administrator Salvare @@ -2334,28 +2352,28 @@ Selectare multiplă - Reordonarați elementele din bara laterală + Reordonează elementele din bara laterală - Hash-uri + Sume de control A apărut o eroare in timpul calculului - Nu s-a putut calcula hash-ul, te rugăm să închizi fișierul și să încerci din nou. + Nu s-a putut calcula suma de control, te rog să închizi fișierul și să încerci din nou. - Hash-urile nu sunt disponibile pentru fișierele online + Sumele de control nu sunt disponibile pentru fișierele online Algoritm - Valoare hash + Valoare sumă de control - Selectați hash-uri de afișat + Selectează sumele de control de afișat Se calculează... @@ -2364,13 +2382,13 @@ Elemente fixate - Reduceți dimensiunea + Redu dimensiunea - Măriți dimensiunea + Mărește dimensiunea - Sort direction + Direcție sortare Nume invalid @@ -2382,229 +2400,229 @@ Videoclipuri - Preview popup + Previzualizare pop-up - Comutare suprapunere compactă + Comută mod compact - Open the online help page in your browser + Deschide pagina de ajutor online în browser - Toggle full screen mode + Comută ecran complet - Enter compact overlay mode + Mod compact, mereu deasupra - Exit compact overlay mode + Ieși din modul compact - Toggle compact overlay mode + Comută mod compact - Start search in the OmniBar + Începeți căutarea în OmniBar - Toggle visibility of hidden items + Comută vizibilitatea elementelor ascunse - Toggle visibility of dot files + Comută vizibilitatea fișierelor care încep cu punct - Toggle visibility of file extensions + Comută vizibilitatea extensiilor fișierelor Comută panoul de previzualizare pentru a vizualiza previzualizări ale fișierelor - Comutați dacă se afișează bara laterală + Comută afișarea barei laterale - Copy selected {0, plural, one {item} other {items}} to clipboard + Copiază {0, plural, one {elementul selectat} few {elementele selectate} other {elementele selectate}} - Copiați calea elementelor selectate în clipboard + Copiază calea către dosarul curent - Copiază calea elementelor selectate în clipboard + Copiază calea elementelor selectate - Copiați calea elementelor selectate cu ghilimele în clipboard + Copiază calea elementelor selectate cu ghilimele - Copiați calea elementelor selectate cu ghilimele în clipboard + Copiază calea către dosarul curent cu ghilimele - Cut selected {0, plural, one {item} other {items}} to clipboard + Decupează {0, plural, one {elementul selectat} few {elementele selectate} other {elementele selectate}} - Paste clipboard items to the current folder + Lipește elementele în dosarul curent - Paste clipboard items to the current folder as shortcuts + Lipește elementele în dosarul curent ca scurtături - Paste clipboard items to the selected folder + Lipește elementele în dosarul selectat - Paste to selected folder + Lipește în dosarul selectat - Delete selected {0, plural, one {item} other {items}} + Șterge {0, plural, one {elementul selectat} few {elementele selectate} other {elementele selectate}} - Crează un folder nou + Creează un dosar nou - Creați {0, plural, one {o comandă rapidă nouă} other {comenzi rapide noi}} pentru {0, plural, one {elementul selectat} other {elementele selectate}} + Creează {0, plural, one {o nouă scurtătură} other {noi scurtături}} pentru {0, plural, one {elementul selectat} other {elementele selectate}} - Creați o comandă rapidă către orice element + Creează o scurtătură către orice element - Empty the contents of Recycle Bin + Golește coșul de reciclare - Deschideți meniul "Formatare unitate" pentru elementul selectat + Deschide meniul „Formatează unitate” pentru elementul selectat - Restaurați {0, plural, one {elementul selectat} other {elementele selectate}} din coșul de reciclare + Restaurează {0, plural, one {elementul selectat} few {elementele selectate} other {elementele selectate}} din coșul de reciclare - Restaurați toate elementele din coșul de reciclare + Restaurează toate elementele din coșul de reciclare - Deschidere {0, plural, one {element} other {elemente}} + Deschide {0, plural, one {elementul} other {elementele}} - Deschidere {0, plural, one {element} other {elemente} other {elemente}} cu aplicația selectată + Deschide {0, plural, one {elementul} other {elementele} other {elementele}} cu aplicația selectată - Deschide folderul părinte al elementului căutat + Deschide dosarul părinte al elementului căutat - Reîmprospătați conținutul paginii + Reîmprospătează conținutul paginii - Redenumiți elementul selectat + Redenumește elementul selectat - Selectați toate elementele + Selectează toate elementele - Invert selected items + Inversează selecția elementelor - Clear selected items + Anulează selecția Comută selecția elementelor - Partajați {0, plural, one {fișierul selectat} other {fișierele selectate}} altora + Partajează {0, plural, one {fișierul selectat} other {fișierele selectate}} cu alții - Fixați {0, plural, one {elementul} other {elementele}} la Meniul Start + Fixează {0, plural, one {elementul} other {elementele}} la meniul Start - Anulați fixarea {0, plural, one {elementului} other {elementelor}} de la Meniul Start + Anulează fixarea {0, plural, one {elementului} other {elementelor}} de la meniul Start - Fixați {0, plural, one {folderul} other {folderele} other {folderele}} în bara laterală + Fixează {0, plural, one {dosarul} other {dosarele} other {dosarele}} în bara laterală - Anulați fixarea {0, plural, one {folderului} other {folderelor}} din Bara Laterală + Anulează fixarea {0, plural, one {dosarului} other {dosarelor}} la bara laterală - Setați imaginea selectată ca imagine de fundal + Setează imaginea selectată ca imagine de fundal a spațiului de lucru - Setați imaginea selectată ca expunere de diapozitiv + Setează imaginile selectate ca expunere de diapozitive a spațiului de lucru - Setați imaginea selectată ca imagine de fundal pentru ecranul de blocare + Setează imaginea selectată ca imagine de fundal pentru ecranul de blocare Setează imaginea selectată ca fundal al aplicației - Install font + Instalează font - Install driver + Instalează driver - Install certificate + Instalează certificat - Instalați {0, plural, one {fontul selectat} other{fonturile selectate}} + Instalează {0, plural, one {fontul selectat} other{fonturile selectate}} - Instalați {0, plural, one {driverul} other {driverele}} folosind {0, plural, one {fișierul .inf selectat} other {fișiere .inf selectate}} + Instalează {0, plural, one {driver-ul} other {driver-ele}} folosind {0, plural, one {fișierul .inf selectat} other {fișierele .inf selectate}} - Instalați {0, plural, one {certificatul selectat} other {certificatele selectate}} + Instalează {0, plural, one {certificatul selectat} other {certificatele selectate}} - Executați aplicația selectată ca administrator + Execută aplicația selectată ca administrator - Executați aplicația selectată ca alt utilizator + Execută aplicația selectată ca un alt utilizator - Executați scriptul PowerShell selectat + Execută scriptul PowerShell selectat - Lansați previzualizarea în fereastra pop-up + Lansează previzualizarea în fereastră pop-up - Creare arhivă cu {0, plural, one {elementul selectat} other{elementele selectate}} + Creează o arhivă cu {0, plural, one {elementul selectat} other{elementele selectate}} - Creare archivă 7z cu {0, plural, one {elementul selectat} other {elementele selectate}} + Creează o arhivă 7z cu {0, plural, one {elementul selectat} other {elementele selectate}} - Creare archivă zip cu {0, plural, one {elementul selectat} other {elementele selectate}} + Creează o arhivă zip cu {0, plural, one {elementul selectat} other {elementele selectate}} - Extrageți elementele din {0, plural, one {arhiva selectată} other {arhivele selectate}} în orice folder + Extrage {0, plural, one {arhiva selectată} few {arhivele selectate} other {arhivele selectate}} în orice dosar - Extrageți elementele din {0, plural, one {arhiva selectată} other {arhivele selectate}} în folderul curent + Extrage {0, plural, one {arhiva selectată} few {arhivele selectate} other {arhivele selectate}} în dosarul curent - Extrageți elementele din {0, plural, one {arhiva selectată} other {arhivele selectate}} într-un folder nou + Extrage {0, plural, one {arhiva selectată} few {arhivele selectate} other {arhivele selectate}} într-un dosar nou - Rotiți {0, plural, one {imaginea selectată} other {imaginile selectată}} la stânga + Rotește {0, plural, one {imaginea selectată} other {imaginile selectată}} la stânga - Rotiți {0, plural, one {imaginea selectată} other {imaginile selectată}} la dreapta + Rotește {0, plural, one {imaginea selectată} other {imaginile selectată}} la dreapta - Deschideți pagina de setări + Deschide pagina de setări - Deschidere folder în terminal + Deschide dosarul în terminal - Deschidere folder în terminal ca administrator + Deschide dosarul în terminal ca administrator - Micșorați dimensiunea elementului în vizualizarea curentă + Micșorează dimensiunea elementului în vizualizarea curentă - Măriți dimensiunea elementului în vizualizarea curentă + Mărește dimensiunea elementului în vizualizarea curentă - Comutare la vizualizare detalii + Comută la vizualizare detalii - Comutare la vizualizare carduri + Comută la vizualizare carduri - Comutare la vizualizare listă + Comută la vizualizare listă Listă @@ -2613,154 +2631,154 @@ Grilă - Comutare la vizualizare grilă + Comută la vizualizare grilă - Comutare la vizualizare coloane + Comută la vizualizare coloane - Comutare vizualizări în mod adaptiv + Comută vizualizări în mod adaptiv - Sortați elementele după nume + Ordonează elementele după nume - Sortare elemente după data modificării + Ordonează elementele după data modificării - Sortare elemente după data creării + Ordonează elementele după data creării - Sortare elemente după dimensiune + Ordonează elementele după dimensiune - Sortare elemente după tip + Ordonează elementele după tip - Sortare elemente după starea de sincronizare + Ordonează elementele după starea de sincronizare - Sortare elemente după etichete + Ordonează elementele după etichete - Sortare elemente după folderul original + Ordonează elementele după dosarul original - Sortare elemente după data ștergerii + Ordonează elementele după data ștergerii - Sortare elemente în ordine crescătoare + Ordonează elementele în ordine crescătoare - Sortare elemente în ordine descrescătoare + Ordonează elementele în ordine descrescătoare - Comutare direcție sortare + Inversează direcția de sortare a elementelor - Listare elemente fără grupare + Listează elementele fără grupare - Grupați elementele după nume + Grupează elementele după nume - Grupați elementele după data modificării + Grupează elementele după data modificării - Grupați elementele după data creării + Grupează elementele după data creării - Grupați elementele după dimensiune + Grupează elementele după dimensiune - Grupați elementele după tip + Grupează elementele după tip - Grupați elementele după starea de sincronizare + Grupează elementele după starea de sincronizare - Grupați elementele după etichete + Grupează elementele după etichete - Grupați elementele după folderul original + Grupează elementele după dosarul original - Grupați elementele după data ștergerii + Grupează elementele după data ștergerii - Grupați elementele după calea folderului + Grupează elementele după calea dosarului - Sortare grupuri în ordine crescătoare + Ordonează grupurile crescător - Sortare grupuri în ordine descrescătoare + Ordonează grupurile în descrescător - Comutare direcție sortare grup + Inversează direcția de sortare a grupului Deschide o filă nouă - Navigate backward + Navighează înapoi - Navigate forward + Navighează înainte - Navigați în sus într-un director + Navighează în dosarul părinte - Duplicați fila curentă + Duplică fila curentă - Duplicați fila selectată + Duplică fila selectată - Închideți filele din stânga filei curente + Închide filele din stânga filei curente - Închideți filele din stânga filei selectate + Închide filele din stânga filei selectate - Închideți filele din dreapta filei curente + Închide filele din dreapta filei curente - Închideți filele din dreapta filei selectate + Închide filele din dreapta filei selectate - Închideți alte file decât fila curentă + Închide toate filele în afara filei curente - Închideți alte file decât fila selectată + Închide toate filele în afara filei selectate - Închide toate filele inclusiv fila curentă + Închide toate filele, inclusiv fila curentă - Reopen recently closed tab + Redeschide fila închisă recent - Treceți la fila anterioară + Treci la fila anterioară - Treceți la fila următoare + Treci la fila următoare - Închideți fila curentă + Închide fila curentă - Close the active pane + Închide panoul activ - Focalizare pe alt panou + Focalizează pe celălalt panou - Switch focus to the other pane + Comută focalizarea la celălalt panou - Comutare bară laterală + Comută bara laterală Alt @@ -2791,7 +2809,7 @@ Key name for hotkeys in menus. Use abbreviation if possible. - Înapoi + Backspace Key name for hotkeys in menus. Use abbreviation if possible. @@ -2823,7 +2841,7 @@ Key name for hotkeys in menus. Use abbreviation if possible. - Pornire + Acasă Key name for hotkeys in menus. Use abbreviation if possible. @@ -2847,7 +2865,7 @@ Key name for hotkeys in menus. Use abbreviation if possible. - Hibernare + Ațipire Key name for hotkeys in menus. Use abbreviation if possible. @@ -2855,7 +2873,7 @@ Key name for hotkeys in menus. Use abbreviation if possible. - Print + Tipărire Key name for hotkeys in menus. Use abbreviation if possible. @@ -2863,11 +2881,11 @@ Key name for hotkeys in menus. Use abbreviation if possible. - Mouse4 + Maus4 Key name for hotkeys in menus. Use abbreviation if possible. - Mouse5 + Maus5 Key name for hotkeys in menus. Use abbreviation if possible. @@ -2883,27 +2901,27 @@ Key name for hotkeys in menus. Use abbreviation if possible. - Mail + Email Key name for hotkeys in menus. Use abbreviation if possible. - Pornire + NavigareAcasă Key name for hotkeys in menus. Use abbreviation if possible. - Înapoi + NavigareÎnapoi Key name for hotkeys in menus. Use abbreviation if possible. - Înainte + NavigareÎnainte Key name for hotkeys in menus. Use abbreviation if possible. - BrowserReîmprospătare + ReîmprospătareNavigator Key name for hotkeys in menus. Use abbreviation if possible. - BrowserStop + StopNavigator Key name for hotkeys in menus. Use abbreviation if possible. @@ -2923,11 +2941,11 @@ Key name for hotkeys in menus. Use abbreviation if possible. - MelodiaPrecedentă + PistaPrecedentă Key name for hotkeys in menus. Use abbreviation if possible. - MelodiaUrmătoare + PistaUrmătoare Key name for hotkeys in menus. Use abbreviation if possible. @@ -2935,7 +2953,7 @@ Key name for hotkeys in menus. Use abbreviation if possible. - Silențios + Mut Key name for hotkeys in menus. Use abbreviation if possible. @@ -2947,31 +2965,31 @@ Key name for hotkeys in menus. Use abbreviation if possible. - Modificare + Schimbă - Comutare selecție + Comută selecția - Afișați un avertisment la modificarea extensiilor de fișiere + Afișează un avertisment la modificarea extensiilor de fișiere Acest PC - Coș de Reciclare + Coș de reciclare Fără etichetă - Previous tab + Fila precedentă - Next tab + Fila următoare - Close tab + Închide fila Editare cale @@ -2983,10 +3001,10 @@ Anulare - Locație nevalidă + Locație invalidă - Sunteți sigur că doriți să copiați aceste fișiere fără proprietățile lor? + Ești sigur că dorești să copiezi aceste fișiere fără proprietățile lor? Aceste fișiere au proprietăți care nu pot fi copiate la noua locație @@ -2995,46 +3013,46 @@ Aceste fișiere au proprietăți care nu pot fi mutate la noua locație - Sunteți sigur că doriți să mutați aceste fișiere fără proprietățile lor? + Ești sigur că dorești să muți aceste fișiere fără proprietățile lor? - Afișați casete de selectare când selectați elemente + Afișează casete de selecție când selectezi elemente - Edit path in the OmniBar + Editează calea în OmniBar - Creare element nou + Creează un element nou Niciun grup sau utilizatori nu au permisiunea de a accesa acest obiect. Cu toate acestea, proprietarul acestui obiect poate atribui permisiuni. - Deschideți locația elementului + Deschide locația elementului - Ștergere definitivă + Șterge definitiv - Delete selected {0, plural, one {item} other {items}} permanently + Șterge {0, plural, one {elementul selectat} few {elementele selectate} other {elementele selectate}} definitiv - Redați fișierele media selectate + Redă fișierele media selectate - Anulați ultima operație de fișier + Anulează ultima operație pe fișier - Refaceți ultima operație de fișier + Refă ultima operație pe fișier Locație: - Grupați elementele după lună + Grupează elementele după lună - Grupați elementele după an + Grupează elementele după an Lună @@ -3046,136 +3064,136 @@ Comută unitatea pentru grupare după dată - Comutare unitate de grupare + Comută unitatea de grupare An - Grupați după unitatea de dată + Grupează elementele unitatea de dată - Grupați elementele după ziua datei create + Grupează elementele după ziua datei create - Grupați elementele după luna datei creării + Grupează elementele după luna datei creării - Grupați elementele după anul datei creării + Grupează elementele după anul datei creării - Grupați elementele după ziua datei ștergerii + Grupează elementele după ziua datei ștergerii - Grupați elementele după luna datei ștergerii + Grupează elementele după luna datei ștergerii - Grupați elementele după anul datei ștergerii + Grupează elementele după anul datei ștergerii - Grupați elementele după ziua datei modificării + Grupează elementele după ziua datei modificării - Grupați elementele după luna datei modificării + Grupează elementele după luna datei modificării - Grupați elementele după anul datei modificării + Grupează elementele după anul datei modificării - Faceți clic pe „Permisiuni avansate” pentru a continua. + Fă clic pe „Permisiuni avansate” pentru a continua. - Trebuie să aveți Permisiuni de citire pentru a vizualiza proprietățile acestui element. + Trebuie să ai permisiune de citire pentru a vizualiza proprietățile acestui element. - Pentru a încerca să preluați proprietatea asupra elementului, care include permisiunea de a-i vedea proprietățile, faceți clic pe Modificare mai sus. + Pentru a încerca să preiei proprietatea asupra elementului, care include permisiunea de a-i vedea proprietățile, fă clic mai sus pe Modificare. Nu se pot afișa permisiunile. - Lăsați modificările mele pe '{0}' + Lasă modificările mele pe „{0}” - Renunțați la modificările mele + Renunță la modificările mele - Aduceți modificările mele la „{0}” + Adu modificările mele la „{0}” - Aveți modificări neconfirmate în această ramură. Ce doriți să faceți cu ele? + Ai modificări necomise în această ramură. Ce dorești să faci cu ele? - Comutare ramură + Comută ramura Ramuri - Comutare + Comută Ramură nouă - Nume ramură nevalid + Nume ramură invalid - Creare ramură + Creează ramură - Creare ramură + Creează ramură - Bazat pe + Bazată pe - Comutați la o ramură nouă + Comută la o ramură nouă - Creați un folder cu {0, plural, one {elementul selectat} other {elementele selectate}} în prezent + Creează un dosar cu {0, plural, one {elementul selectat} other {elementele selectate}} Proprietăți - Deschideți proprietăți Explorer + Deschide proprietăți Explorer - Deschideți fereastra proprietăți + Deschide fereastra proprietăți - Deschideți fereastra proprietăți Explorer + Deschide fereastra proprietăți Explorer Locale - La distanță + Pe server - Traduceți pe Crowdin + Tradu pe Crowdin - Preluare + Fetch Pull - Rulare preluarea git + Rulează git fetch - Clonați un repozitoriu git + Clonează un repozitoriu git - Rulare git pull + Rulează git pull Previzualizare - Status Git + Stare Git Eroare Git @@ -3191,25 +3209,25 @@ Autor - Data comiterii + Data commit-ului - Mesajul comiterii + Mesajul commit-ului - Comitere SHA + SHA commit Git - Acrylic + Acrilic - Mica + Mică - Mica Alt + Mică alt Fundal @@ -3218,49 +3236,49 @@ Solid - Gestionare ramuri + Gestionează ramuri Push - Rulare git push + Rulează git push - Sincronizare + Sincronizează - Rulați git pull și apoi git push + Rulează git pull și apoi git push - {0} ieșiri / {1} comiteri de intrare + Commit-uri: {0} outgoing / {1} outgoing - Conectați-vă la GitHub + Conectează-te la GitHub - Introduceți următorul cod la link-ul de mai jos pentru a începe să lucrați cu repozitoriile GitHub. + Introdu următorul cod la link-ul de mai jos pentru a începe să lucrezi cu repozitoriile GitHub. Files nu poate accesa GitHub momentan. - Deschideți folderul în {0} + Deschide dosarul în {0} - Deschideți directorul curent în {0} + Deschide dosarul curent în {0} - Deschideți repozitoriul în {0} + Deschide repozitoriul în {0} - Deschideți rădăcina repozitoriului Git în {0} + Deschide rădăcina repozitoriului Git în {0} - Copiere cod + Copiază cod - Adaugat + Adăugat Șters @@ -3278,37 +3296,37 @@ Minunat! Acum ești autorizat. - Inițializați repozitoriul + Inițializează repozitoriul - Initialize current folder as a git repository + Inițializează dosarul curent ca un repozitoriu git - Nume Repozitoriu la Distanță + Nume repozitoriu pe server - Ramura Curentă + Ramura curentă Coloană cale - Sortare elemente după cale + Ordonează elementele după cale - Open selected directory in a new pane + Deschide dosarul selectat într-un panou nou - Open selected directory in a new tab + Deschide dosarul selectat într-o filă nouă - Open selected directory in a new window + Deschide dosarul selectat într-o fereastră nouă - Deschideți toate + Deschide-le pe toate - Deschideți toate elementele etichetate + Deschide toate elementele etichetate Unitate ({0}) @@ -3327,19 +3345,19 @@ Comanda '{0}' nu este gata pentru a fi executată. - Command Palette + Paletă de Comenzi - Open Command Palette in the OmniBar + Deschide paleta de comenzi în OmniBar - Pornire în: + Pornește în: - Activați BitLocker + Activează BitLocker - Gestionați BitLocker + Gestionează BitLocker Următoarele elemente sunt prea mari pentru a fi copiate la această unitate @@ -3354,17 +3372,17 @@ Files rulează ca administrator - Din cauza unei limitări a Windows și WinAppSdk, tragerea și fixarea nu sunt disponibile atunci când executați Files ca administrator. Dacă doriți să folosiți caracteristica tragere și fixare puteți lucra în jurul acestei limitări deschizând CCU (Control Cont Utilizator) din Meniul Start și selectând al treilea nivel, și apoi reporniți Windows. Altfel, puteți continua să utilizați Files fără caracteristica tragere și fixare. + Din cauza unei limitări a Windows și WinAppSdk, operația de drag & drop nu este disponibilă atunci când rulezi Files ca administrator. Dacă dorești să folosești caracteristica drag & drop, poți evita această limitare deschizând CCU (Control Cont Utilizator) din meniul Start și selectând al treilea nivel, apoi repornind Windows. Altfel, poți continua să utilizezi Files fără caracteristica drag & drop. - Lăsați aplicația să ruleze în fundal atunci când fereastra este închisă + Lasă aplicația să ruleze în fundal atunci când fereastra este închisă Albastru One of the custom color themes - Gri Albăstrui + Gri albăstrui One of the custom color themes @@ -3376,7 +3394,7 @@ One of the custom color themes - Albastru Deschis + Albastru rece luminos One of the custom color themes @@ -3384,7 +3402,7 @@ One of the custom color themes - Gri Închis + Gri închis One of the custom color themes @@ -3392,19 +3410,19 @@ One of the custom color themes - Iris Pastelat + Iris pastel One of the custom color themes - Mentă Deschisă + Mentă deschisă One of the custom color themes - Roșu Aprins + Roșu moderat One of the custom color themes - Portocaliu Strălucitor + Portocaliu luminos One of the custom color themes @@ -3416,11 +3434,11 @@ One of the custom color themes - Roz Deschis + Roz luminos One of the custom color themes - Spuma Mării + Spuma mării One of the custom color themes @@ -3428,7 +3446,7 @@ One of the custom color themes - Roșu-violet Deschis + Roșu-violet deschis One of the custom color themes @@ -3436,7 +3454,7 @@ One of the custom color themes - Finalizat + Golește istoricul Nume: @@ -3452,10 +3470,10 @@ Files nu poate inițializa acest director ca un repozitoriu Git. - Artiști Contribuitori + Artiști contribuitori - Adăugare pagină + Adaugă pagină Se procesează elementele... @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - S-au comprimat {0} element(e) în „{1}” + Comprimat {0, plural, one {# element} few {# elemente} other {# de elemente}} la „{1}” Shown in a StatusCenter card. - S-au comprimat {0} element(e) din „{1}” în „{2}” + Comprimat {0, plural, one {# element} few {# elemente} other {# de elemente}} de la „{1}” la „{2}” Shown in a StatusCenter card. - Eroare la comprimarea {0} element(e) la „{1}” + Eroare la comprimarea a {0, plural, one {# element} few {# elemente} other {# de elemente}} la „{1}” Shown in a StatusCenter card. - Copierea a {0} element(e) de la „{1}” la „{2}” a eșuat + Nu s-a putut comprima {0, plural, one {# element} few {# elemente} other {# de elemente}} de la „{1}” la „{2}” Shown in a StatusCenter card. - Se comprimă {0} element(e) la „{1}” + Se comprimă {0, plural, one {# element} few {# elemente} other {# de elemente}} la „{1}” Shown in a StatusCenter card. - Se comprimă {0} element(e) de la „{1}” la „{2}” + Se comprimă {0, plural, one {# element} few {# elemente} other {# de elemente}} de la „{1}” la „{2}” Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Instalarea a {0} font(uri) de la „{1}” a fost anulată + Instalarea a {0, plural, one {# font} few {# fonturi} other {# de fonturi}} din „{1}” a fost anulată Shown in a StatusCenter card. - S-au instalat {0} font(uri) + S-au instalat {0, plural, one {# font} few{# fonturi} other{# de fonturi}} Shown in a StatusCenter card. - S-au instalat {0} font(uri) de la „{1}” + S-au instalat {0, plural, one {# font} few{# fonturi} other{# de fonturi}} de la „{1}” Shown in a StatusCenter card. - Eroare la instalarea a {0} font(uri) + Eroare la instalarea a {0, plural, one {# font} few {# fonturi} other {# de fonturi}} Shown in a StatusCenter card. - Instalarea a {0} font(uri) din „{1}” a eșuat + Nu s-a putut instala {0, plural, one {# font} few {# fonturi} other{# de fonturi}} de la „{1}” Shown in a StatusCenter card. - Se instalează {0} font(uri) + Se instalează {0, plural, one {# font} few{# fonturi} other {# de fonturi}} Shown in a StatusCenter card. - Se instalează {0} font(uri) de la „{1}” + Se instalează {0, plural, one {# font} few{# fonturi} other {# de fonturi}} de la „{1}” Shown in a StatusCenter card. - S-a anulat copierea a {0} element(e) la „{1}” + Copierea a {0, plural, one {# element} few {# elemente} other {# de elemente}} la „{1}” a fost anulată Shown in a StatusCenter card. - S-a anulat copierea a {0} element(e) de la „{1}” la „{2}” + Copierea a {0, plural, one {# element} few {# elemente} other {# elemente}} de la „{1}” la „{2}” a fost anulată Shown in a StatusCenter card. - S-au copiat {0} element(e) la „{1}” + S-a copiat {0, plural, one {# element} few {# elemente} other {# de elemente}} la „{1}” Shown in a StatusCenter card. - S-au copiat {0} element(e) de la „{1}” la „{2}” + S-a copiat {0, plural, one {# element} few {# elemente} other {# de elemente}} de la „{1}” la „{2}” Shown in a StatusCenter card. - Eroare la copierea a {0} element(e) la „{1}” + Eroare la copierea a {0, plural, one {# element} few {# elemente} other {# de elemente}} la „{1}” Shown in a StatusCenter card. - Copierea a {0} element(e) de la „{1}” la „{2}” a eșuat + Nu s-a putut copia {0, plural, one {# element} few {# elemente} other {# de elemente}} de la „{1}” la „{2}” Shown in a StatusCenter card. - Se copiază {0} element(e) în „{1}” + Se copiază {0, plural, one {# element} few {# elemente} other {# de elemente}} la „{1}” Shown in a StatusCenter card. - Se copiază {0} element(e) de la „{1}” la „{2}” + Se copiază {0, plural, one {# element} few {# elemente} other {# de elemente}} de la „{1}” la „{2}” Shown in a StatusCenter card. @@ -3624,59 +3642,59 @@ Shown in a StatusCenter card. - S-a anulat ștergerea a {0} element(e) din „{1}” + Ștergerea a {0, plural, one {# element} few {# elemente} other {# de elemente}} de la „{1}” a fost anulată Shown in a StatusCenter card. - S-au șters {0} element(e) din „{1}” + S-au șters {0, plural, one {# element} few {# elemente} other {# de elemente}} de la „{1}” Shown in a StatusCenter card. - Eroare la ștergerea a {0} element(e) din „{1}” + Eroare la ștergerea a {0, plural, one {# element} few {# elemente} other {# de elemente}} de la „{1}” Shown in a StatusCenter card. - Ștergerea a {0} element(e) din „{1}” a eșuat + Nu s-a putut șterge {0, plural, one {# element} few {# elemente} other {# de elemente}} de la „{1}” Shown in a StatusCenter card. - Se șterg {0} element(e) din „{1}” + Se șterge {0, plural, one {# element} few {# elemente} other {# de elemente}} de la „{1}” Shown in a StatusCenter card. - S-a anulat mutarea a {0} element(e) în „{1}” + Mutarea a {0, plural, one {# element} few {# elemente} other {# de elemente}} la „{1}” a fost anulată Shown in a StatusCenter card. - S-a anulat mutarea a {0} element(e) din „{1}” în „{2}” + Mutarea a {0, plural, one {# element} few {# elemente} other {# de elemente}} de la „{1}” la „{2}” a fost anulată Shown in a StatusCenter card. - S-au mutat {0} element(e) în „{1}” + {0, plural, one {A fost mutat # element} few {Au fost mutate # elemente} other {Au fost mutate # de elemente}} la „{1}” Shown in a StatusCenter card. - S-au mutat {0} element(e) din „{1}” în „{2}” + {0, plural, one {A fost mutat # element} few {Au fost mutate # elemente} other {Au fost mutate # de elemente}} de la „{1}” la „{2}” Shown in a StatusCenter card. - Se mută {0} element(e) în „{1}” + Se mută {0, plural, one {# element} few {# elemente} other {# de elemente}} la „{1}” Shown in a StatusCenter card. - Se mută {0} element(e) din „{1}” în „{2}” + Se mută {0, plural, one {# element} few {# elemente} other {# de elemente}} de la „{1}” la „{2}” Shown in a StatusCenter card. - Eroare la mutarea a {0} element(e) în „{1}” + Eroare la mutarea a {0, plural, one {# element} few {# elemente} other {# de elemente}} la „{1}” Shown in a StatusCenter card. - Mutarea a {0} element(e) din „{1}” la „{2}” a eșuat + Nu s-a putut muta {0, plural, one {# element} few {# elemente} other {# de elemente}} de la „{1}” la „{2}” Shown in a StatusCenter card. - S-a anulat golirea Coșului de Reciclare + S-a anulat golirea coșului de reciclare Shown in a StatusCenter card. @@ -3684,15 +3702,15 @@ Shown in a StatusCenter card. - Se Golește Coșul de Reciclare + Se golește coșul de reciclare Shown in a StatusCenter card. - Eroare la golirea Coșului de Reciclare + Eroare la golirea coșului de reciclare Shown in a StatusCenter card. - Golirea Coșului de Reciclare a eșuat + Golirea coșului de reciclare a eșuat Shown in a StatusCenter card. @@ -3707,13 +3725,13 @@ Deblocare fișier descărcat - Fără operațiuni de fișiere în curs + Nu există operațiuni în desfășurare Opțiunea de a deschide Files la pornirea Windows nu este disponibilă din cauza setărilor de sistem sau a politicii de grup. Pentru a reîncerca, deschideți pagina de pornire în Managerul de Activități. - Nu s-au putut restaura elementele din Coșul de Reciclare + Nu s-au putut restaura elementele din coșul de reciclare Nu s-a putut seta imaginea de fundal @@ -3722,10 +3740,10 @@ Nu s-a reușit deschiderea fișierului de setări - Ștergere Ramură Git + Șterge ramură Git - Sigur doriți să ștergeți definitiv ramura „{0}”? + Sigur dorești să ștergi definitiv ramura „{0}”? Conectat la GitHub @@ -3734,40 +3752,40 @@ Deconectare - Conectați-vă la GitHub + Conectează-te la GitHub Conectare - Etichetele sunt în prezent compatibile doar pe unitățile formatate ca NTFS. + Etichetele sunt în prezent compatibile doar cu unitățile formatate ca NTFS. A apărut o eroare la aplicarea acestei etichete - Extrageți elementele din {0, plural, one {arhiva selectată} other {arhivele selectate}} în folderul curent pentru arhive cu un singur element sau într-un folder nou pentru arhive cu mai multe elemente + Extrage {0, plural, one {arhiva selectată} few {arhivele selectate} other {arhivele selectate}} aici pentru un singur element sau într-un dosar nou pentru mai multe elemente - Extrageți aici (Smart) + Extrage aici (inteligent) - Sortați fișierele și folderele împreună + Sortează fișierele și dosarele împreună - Sort files and folders in the same list + Sortare fișiere și dosare în aceeași listă - Sortați mai întâi fișierele + Sortează întâi fișierele - Sortați mai întâi fișierele apoi folderele + Sortează întâi fișierele, apoi dosarele - Sortați mai întâi folderele + Sortează întâi dosarele - Sortați mai întâi folderele apoi fișierele + Sortează întâi dosarele, apoi fișierele Prioritate de sortare @@ -3776,7 +3794,7 @@ Rotirea imaginii a eșuat - Repornire + Repornește Ieșire @@ -3785,13 +3803,13 @@ Partajarea elementelor a eșuat - Derulează la folderul anterior când navighezi în sus + Selectează dosarul curent după navigarea înapoi - Deschideți o fereastră nouă + Deschide o fereastră nouă - Schimbați coperta albumului + Schimbă coperta albumului Nu s-a putut redenumi elementul @@ -3800,7 +3818,7 @@ Editarea „{0}” necesită permisiuni suplimentare - Editare permisiuni + Editează permisiunile Files încă rulează în fundal pentru a îmbunătăți performanța la pornire. @@ -3876,13 +3894,13 @@ Comenzi - Adăugare comandă + Adaugă comandă - Restabiliți la valorile implicite + Restabilește implicite - Alegeți o acțiune + Alege o acțiune Sunteți sigur că doriți să restaurați comenzile rapide la valorile implicite? Această acțiune nu poate fi anulată. @@ -3891,27 +3909,27 @@ Această comandă rapidă este deja utilizată, vă rugăm să alegeți o comandă rapidă diferită pentru a continua. - Comanda rapidă pe care ați ales-o nu poate fii folosită, vă rugăm să încercați o altă comandă rapidă. + Combinația de taste pe care ai ales-o nu poate fi folosită, te rog încearcă din nou folosind o altă combinație de taste. Personalizat - Aspectul Adaptiv nu este disponibil atunci când preferințele sunt sincronizate, aspectul implicit a fost schimbat la Detalii. + Aspectul adaptiv nu este disponibil atunci când preferințele sunt sincronizate. Aspectul implicit a fost schimbat la „Detaliat”. Imagine de fundal - Partea de jos + în jos Image alignment type - Centrare + centrat Image alignment type - Umplere + umplere Image stretch type @@ -3921,26 +3939,26 @@ Potrivire imagine - Stânga + la stânga Image alignment type Opacitate - Dreapta + la dreapta Image alignment type - Deasupra + în sus Image alignment type - Uniformă + uniformă Image stretch type - Umplere uniformă + umplere uniformă Image stretch type @@ -3958,10 +3976,10 @@ Instrumente pentru dezvoltatori - Configurați butonul "Deschide IDE" pe bara de stare + Configurează butonul „Deschidere IDE” de pe bara de stare - Arată pentru Git repos + Arată pentru repozitoriile Git Setting where users can choose to display "Open IDE" button for all locations. @@ -3977,7 +3995,7 @@ This is the friendly name for ICL files. - Fișier Zip + Fișier ZIP This is the friendly name for ZIP files. @@ -3991,83 +4009,80 @@ Locații în rețea - Nu există locații în rețea. Dacă nu utilizați locații în rețea, puteți dezactiva widget-ul. + Nu există locații în rețea. Dacă nu utilizezi locații în rețea, poți dezactiva widget-ul. Dezactivează - Editare în Notepad + Editează în Notepad - Editați fișierul selectat în Notepad + Editează fișierul selectat în Notepad Dimensiuni: - Statut: + Stare: - Afișați bara de instrumente + Afișează bara de instrumente Setting that controls if the toolbar is shown in the main view Meniu acțiuni filă - Vertical pane + Panou orizontal - Add vertical pane + Adaugă panou orizontal - Horizontal pane + Panou vertical - Add horizontal pane + Adaugă panou vertical - Aranjare verticală + Aranjează orizontal - Aranjați panourile vertical + Aranjează panourile orizontal - Aranjare orizontală + Aranjează vertical - Aranjați panourile orizontal + Aranjează panourile vertical - Adăugare panou + Adaugă panou Afișează butonul de acțiuni de filă în bara de titlu - Aranjați panourile + Aranjează panourile Aranjamentul implicit al panoului - Orizontal + Vertical - Vertical + Orizontal - Arată pictograma Files în System Tray + Arată pictograma Files în tăvița sistemului - Fire CPU + Fire de execuție CPU - Navigați spre pagina principală - - - Afișați butonul Pornire în bara de adresă + Navighează spre pagina Acasă Bare de Instrumente @@ -4076,37 +4091,37 @@ ID utilizator - Redenumire în masă + Redenumește în masă - Comprimați conținutul + Conținut comprimat - Afișați opțiunea pentru a crea un flux alternativ de date + Afișează opțiunea pentru a crea un flux alternativ de date - Creare flux alternativ de date + Creează flux alternativ de date - Creați un flux de date alternativ pentru {0, plural, one {elemetul selectat} other {elementele selectate}} + Creează un flux de date alternativ pentru {0, plural, one {elemetul selectat} other {elementele selectate}} - Introduceți numele fluxului de date + Introdu numele fluxului de date A apărut o eroare la crearea fluxului alternativ de date - Vă rugăm să rețineți că fluxurile alternative de date funcționează doar pe unitățile formatate ca NTFS. + Reține că fluxurile alternative de date funcționează doar pe unitățile formatate ca NTFS. Fluxurile alternative de date sunt în prezent ascunse - Doriți să afișați fluxuri alternative de date? Puteți modifica această setare oricând din pagina de setări a fișierelor și folderelor. + Dorești să afișezi fluxuri alternative de date? Poți modifica această setare oricând din pagina de setări a fișierelor și dosarelor. - Gestionare etichete + Gestionează etichetele Disponibil @@ -4115,33 +4130,33 @@ Total - Comutați întotdeauna focalizarea la fila nou creată + Comută întotdeauna focalizarea la fila nou creată - Toggle shelf pane + Comută panou raft - Toggle the visibility of the shelf pane + Comută vizibilitatea panoului raft - Afișați comutatorul pentru panoul raft în bara de adresă + Afișează comutatorul pentru panoul raft în bara de adresă Raft 'Shelf' refers to the Shelf Pane feature, where users can conveniently drag and drop files for quick access and perform bulk actions with ease. - Eliminare elemente + Golește elementele - Eliminare din raft + Elimină din raft - Adăugare la raft + Adaugă la raft Tooltip that displays when dragging items to the Shelf Pane - Introduceți un hash pentru a compara + Introdu o sumă de control pentru a o compara Placeholder that appears in the compare hash text box @@ -4162,29 +4177,29 @@ Integrare test - {0} nu a putut fi localizat. Vă rugăm să vă verificați setările și să încercați din nou. + {0} nu a putut fi localizat. Te rog să verifici setările și să încerci din nou. IDE-ul configurat nu a putut fi localizat - Deschideți setările + Deschide setările Visual Studio Code - Introduceți o cale sau un alias de lansare + Introdu o cale sau un alias de lansare - Vă rugăm să introduceți un nume pentru IDE + Te rog să introduci un nume pentru IDE - Clonare repozitoriu + Clonează repozitoriu Clone repo dialog title - Clonare + Clonează Primary action button in the clone repo dialog @@ -4196,34 +4211,69 @@ Cannot clone repo dialog title - Comparați un fișier + Compară un fișier Button that appears in file hash properties that allows the user to compare two files Format dimensiune - Binar + binar - Zecimal - - - Activare Omnibar + zecimal - Puteți adăuga secțiuni în bara laterală făcând clic dreapta și selectând secțiunile pe care doriți să le adăugați + Poți adăuga secțiuni în bara laterală făcând clic dreapta și selectând secțiunile pe care dorești să le adaugi - Trageți fișiere sau foldere aici pentru a interacționa cu ele prin diferite file + Trage fișiere sau dosare aici pentru a interacționa cu ele prin diferite file - Introduceți o cale pentru a naviga la... + Introdu o cale pentru a naviga la aceasta... - Găsiți caracteristici și comenzi... + Găsește funcții și comenzi... - Căutare fișiere și foldere... + Caută fișiere și dosare... + + + În timpul operațiunilor de fișier + + + Afișează butonul pentru centrul de operațiuni + + + Inel de progres al centrului de operațiuni + Screen reader name for the status center progress ring + + + Fișiere pictograme + This is the friendly name for a variety of different icon files. + + + Afișare cale compactă (breadcrumbs) + + + Arată dosarele din {0} + + + Arată dosarele în Acasă + + + Nu există comenzi care să conțină {0} + + + Vezi mai multe + + + Se filtrează pentru + + + Nume fișier + + + Afișați opțiunea de a deschide foldere în Terminalul Windows diff --git a/src/Files.App/Strings/ru-RU/Resources.resw b/src/Files.App/Strings/ru-RU/Resources.resw index 3d17480a8f43..41a7e1f83ef4 100644 --- a/src/Files.App/Strings/ru-RU/Resources.resw +++ b/src/Files.App/Strings/ru-RU/Resources.resw @@ -124,7 +124,7 @@ Скопировать путь - Copy item path + Копировать путь элемента Скопировать путь с кавычками @@ -166,13 +166,13 @@ Пропустить - Select all + Выбрать всё Инвертировать выделение - Очистить выделение + Убрать выделение Изменено: @@ -217,7 +217,7 @@ Показывать скрытые файлы и папки - Dot files + Показать dot-файлы Внешний вид @@ -1089,13 +1089,19 @@ Показать информационную панель - Переключить информационную панель для просмотра панелей с подробностями/предпросмотром + Toggle visibility of the detail/preview panes - Toggle toolbar + Показать/скрыть панель инструментов - Toggle visibility of the toolbar + Переключить видимость панели инструментов + + + Toggle filter header + + + Toggle visibility of the filter header Предпросмотр недоступен @@ -1398,7 +1404,7 @@ {0} элементов - Reopen tab + Восстановить закрытую вкладку Переименовать @@ -1605,7 +1611,7 @@ Заменить все записи разрешений дочернего объекта наследуемыми записями разрешений от этого объекта - Close pane + Закрыть pane Войти в компактный режим @@ -2012,11 +2018,23 @@ Поведение - - Оценить Files + + Привет! + + + Нравится Files? Пожалуйста, оцените приложение в Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Спонсор - - Хотели бы вы оценить Files? + + Оцените нас + + + Dismiss Установить как фон @@ -2295,7 +2313,7 @@ Настройки контекстного меню - File extensions + Расширения файлов Форматировать @@ -2304,13 +2322,13 @@ Помощь - Full screen + Полноэкранный режим Вы уверены, что хотите удалить эту метку? - Play + Воспроизвести Высота @@ -2370,7 +2388,7 @@ Увеличить размер - Sort direction + Направление сортировки Некорректное имя @@ -2382,37 +2400,37 @@ Видео - Preview popup + Запустить предпросмотр во всплывающем окне Включить компактный режим - Open the online help page in your browser + Открыть справку в браузере - Toggle full screen mode + Включить полноэкранный режим - Enter compact overlay mode + Войти в компактный режим - Exit compact overlay mode + Выйти из компактного режима - Toggle compact overlay mode + Включить компактный режим - Start search in the OmniBar + Начать поиск в OmniBar - Toggle visibility of hidden items + Включить видимость скрытых элементов - Toggle visibility of dot files + Включить видимость dot-файлов - Toggle visibility of file extensions + Включить видимость расширений файлов Переключить панель предпросмотра для просмотра превью файла @@ -2421,34 +2439,34 @@ Включить/выключить отображение боковой панели - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Копировать путь выбранных элементов в буфер обмена + Скопировать путь текущей папки - Копировать путь выбранных элементов в буфер обмена + Скопировать путь выбранных элементов - Копировать путь выбранных элементов с кавычками в буфер обмена + Скопировать путь выбранных элементов (с ковычками) - Копировать путь выбранных элементов с кавычками в буфер обмена + Скопировать путь текущей папки (с ковычками) - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Вставить элементы в текущую папку - Paste clipboard items to the current folder as shortcuts + Вставить элементы в текущую папку как ярлыки - Paste clipboard items to the selected folder + Вставить элементы в выбранную папку - Paste to selected folder + Вставить в выбранную папку Delete selected {0, plural, one {item} other {items}} @@ -2463,7 +2481,7 @@ Создать ярлык для любого элемента - Empty the contents of Recycle Bin + Очистить содержимое Корзины Открыть меню «Форматирование диска» @@ -2493,10 +2511,10 @@ Выбрать все - Invert selected items + Инвертировать выделение - Clear selected items + Убрать выделение Переключить выбор элемента @@ -2529,13 +2547,13 @@ Установить выбранное изображение в качестве фона приложения - Install font + Установить шрифт - Install driver + Установить драйвер - Install certificate + Установить сертификат Install selected {0, plural, one {font} other {fonts}} @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -2703,10 +2721,10 @@ Открыть новую вкладку - Navigate backward + Вернуться назад - Navigate forward + Вернуться вперёд Перейти на одну папку назад @@ -2739,7 +2757,7 @@ Закрыть все вкладки включая текущую вкладку - Reopen recently closed tab + Восстановить закрытую вкладку Переход на предыдущую вкладку @@ -2751,13 +2769,13 @@ Закрыть текущую вкладку - Close the active pane + Закрыть текущий pane Фокус на другую вкладку - Switch focus to the other pane + Переключить фокус на другой pane Переключить панель @@ -2965,13 +2983,13 @@ Без меток - Previous tab + Предыдущая вкладка - Next tab + Следующая вкладка - Close tab + Закрыть вкладку Изменить путь @@ -3001,7 +3019,7 @@ Отображать чекбоксы при выборе элементов - Edit path in the OmniBar + Изменить путь в OmniBar Создать новый элемент @@ -3281,7 +3299,7 @@ Инициализировать репозиторий - Initialize current folder as a git repository + Сделать текущую папку git-репозиторием Убрать Имя Репозитория @@ -3296,13 +3314,13 @@ Сортировка элементов по пути - Open selected directory in a new pane + Открыть выбранную папку в новом pane - Open selected directory in a new tab + Открыть выбранную папку в новой вкладке - Open selected directory in a new window + Открыть выбранную папку в новом окне Открыть все @@ -3327,10 +3345,10 @@ Команда '{0}' не готова к выполнению. - Command Palette + Командны в OmniBar - Open Command Palette in the OmniBar + Открыть командны в OmniBar Начало через: @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Сжато {0} элементов в "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Сжато {0} элементов из "{1}" в "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Ошибка сжатия {0} элементов в "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Не удалось сжать {0} элементов из "{1}" в "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Сжатие {0} элементов в "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Сжатие {0} элементов из "{1}" в "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Установка {0} шрифт(ов) из "{1} " отменена + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Установленный {0} шрифт(ы) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Установленный {0} шрифт(ы) из "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Ошибка установки {0} шрифта(ов) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Не удалось установить {0} шрифт(ы) из "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Установка {0} шрифта(ов) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Установка {0} шрифта(ов) из "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Копирование {0} элементов в "{1}" отменено + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Копирование {0} элементов из "{1}" в "{2}" отменено + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Скопировано {0} элементов в "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Скопировано {0} элементов из "{1}" в "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Ошибка копирования {0} элементов в "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Не удалось скопировать {0} элементов из "{1}" в "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Копирование {0} элементов в "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Копирование {0} элементов из "{1}" в "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Удаление {0} элементов из "{1}" отменено + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Удалено {0} элементов из "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Ошибка удаления {0} элементов из "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Не удалось удалить {0} элементов из {1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Удаление {0} элементов из "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Перемещение {0} элементов в "{1}" отменено + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Перемещение {0} элементов из "{1}" в "{2}" отменено + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Перемещено {0} элементов в "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Перемещено {0} элементов из "{1}" в "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Перемещение {0} элементов в "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Перемещение {0} элементов из "{1}" в "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Ошибка перемещения {0} элементов в "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Не удалось переместить {0} элементов из "{1}" в "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ Произошла ошибка при применении этой метки - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Распаковать здесь (Smart) @@ -3755,7 +3773,7 @@ Сортировать файлы и папки вместе - Sort files and folders in the same list + Сортировать файлы и папки вместе Сортировать файлы сначала @@ -4016,16 +4034,16 @@ Меню действий вкладки - Vertical pane + Pane по вертикали - Add vertical pane + Добавить pane по горизонтали - Horizontal pane + Pane по горизонтали - Add horizontal pane + Добавить pane по вертикали Расположить вертикально @@ -4066,9 +4084,6 @@ Перейти на главную страницу - - Показать кнопку "Домой" в адресной строке - Панели инструментов @@ -4208,9 +4223,6 @@ Десятичный - - Включить Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/sk-SK/Resources.resw b/src/Files.App/Strings/sk-SK/Resources.resw index 75103d72c1de..4a23bf63e34a 100644 --- a/src/Files.App/Strings/sk-SK/Resources.resw +++ b/src/Files.App/Strings/sk-SK/Resources.resw @@ -217,7 +217,7 @@ Zobraziť skryté súbory a priečinky - Dot files + Show dot files Prispôsobenie @@ -1091,7 +1091,7 @@ Prepnite info panel - Prepnúť detail/náhlaď + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1099,6 +1099,12 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + Žiaden náhľad k dispozícii @@ -2014,11 +2020,23 @@ Správania - - Ohodnotiť Files + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us - - Chceli by ste ohodnotiť Files? + + Dismiss Nastaviť ako pozadie @@ -2423,31 +2441,31 @@ Prepnite, či chcete zobraziť bočný panel - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Skopírovať cestu vybraných položiek do schránky + Copy path of the current directory - Copy path of selected items to the clipboard + Copy path of selected items - Copy path of selected items with quotes to the clipboard + Copy path of selected items with quotes - Skopírovať cestu vybraných položiek s úvodzkovami do schránky + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2570,13 +2588,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -3474,27 +3492,27 @@ Shown in a StatusCenter card. - Compressed {0} item(s) to "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressed {0} item(s) from "{1}" to "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error compressing {0} item(s) to "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to compress {0} item(s) from "{1}" to "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Compressing {0} item(s) to "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressing {0} item(s) from "{1}" to "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3534,63 +3552,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) to "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) from "{1}" to "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copied {0} item(s) to "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copied {0} item(s) from "{1}" to "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error copying {0} item(s) to "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to copy {0} item(s) from "{1}" to "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Kopíruje sa {0} položiek do {1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Presúva sa {0} položiek z {1} do {2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3626,55 +3644,55 @@ Shown in a StatusCenter card. - Canceled deleting {0} item(s) from "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleted {0} item(s) from "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Chyba pri odstraňovaní {0} položiek z „{1}“ + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Nepodarilo sa odstrániť {0} položiek z "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Odstraňuje sa {0} položiek z {1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) to "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) from "{1}" to "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moved {0} item(s) to "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moved {0} item(s) from "{1}" to "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moving {0} item(s) to "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moving {0} item(s) from "{1}" to "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error moving {0} item(s) to "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to move {0} item(s) from "{1}" to "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3748,7 +3766,7 @@ There was an error applying this tag - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Rozbaliť tu (chytré) @@ -4068,9 +4086,6 @@ Navigate to the home page - - Show home button in address bar - Toolbars @@ -4210,9 +4225,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4228,4 +4240,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/sq-AL/Resources.resw b/src/Files.App/Strings/sq-AL/Resources.resw index cb1369b3d4fd..927b57a634d0 100644 --- a/src/Files.App/Strings/sq-AL/Resources.resw +++ b/src/Files.App/Strings/sq-AL/Resources.resw @@ -217,7 +217,7 @@ Shfaq skedarët dhe dosjet e fshehura - Dot files + Show dot files Pamja e jashtme @@ -1089,7 +1089,7 @@ Toggle the info pane - Toggle the info pane to view the detail/preview panes + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1097,6 +1097,12 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + No preview available @@ -1638,7 +1644,7 @@ {0, plural, one {# item} other {# items}} ({1, plural, one {# file} other {# files}}, {2, plural, one {# folder} other {# folders}}) - Uncompressed size + Madhësia e pakompresuar WSL @@ -2012,11 +2018,23 @@ Behaviors - - Review Files + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us - - Would you like to review Files? + + Dismiss Set as background @@ -2109,7 +2127,7 @@ {0} (detected) - Path + Vendndodhja Sorting and grouping @@ -2421,31 +2439,31 @@ Toggle whether to show sidebar - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Copy path of selected items to the clipboard + Copy path of the current directory - Copy path of selected items to the clipboard + Copy path of selected items - Copy path of selected items with quotes to the clipboard + Copy path of selected items with quotes - Copy path of selected items with quotes to the clipboard + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -3266,7 +3284,7 @@ Deleted - Modified + Modifikuar Untracked @@ -3439,7 +3457,7 @@ Clear completed - Name: + Emrit: {0} of {1} processed @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Compressed {0} item(s) to "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressed {0} item(s) from "{1}" to "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error compressing {0} item(s) to "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to compress {0} item(s) from "{1}" to "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Compressing {0} item(s) to "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressing {0} item(s) from "{1}" to "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) to "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) from "{1}" to "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copied {0} item(s) to "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copied {0} item(s) from "{1}" to "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error copying {0} item(s) to "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to copy {0} item(s) from "{1}" to "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copying {0} item(s) to "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copying {0} item(s) from "{1}" to "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Canceled deleting {0} item(s) from "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleted {0} item(s) from "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Error deleting {0} item(s) from "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Failed to delete {0} item(s) from "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleting {0} item(s) from "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) to "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) from "{1}" to "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moved {0} item(s) to "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moved {0} item(s) from "{1}" to "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moving {0} item(s) to "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moving {0} item(s) from "{1}" to "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error moving {0} item(s) to "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to move {0} item(s) from "{1}" to "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ There was an error applying this tag - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Extract here (Smart) @@ -4066,9 +4084,6 @@ Navigate to the home page - - Show home button in address bar - Toolbars @@ -4208,9 +4223,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/sr-Cyrl/Resources.resw b/src/Files.App/Strings/sr-Cyrl/Resources.resw index a80cd1cd8e91..b4197030929c 100644 --- a/src/Files.App/Strings/sr-Cyrl/Resources.resw +++ b/src/Files.App/Strings/sr-Cyrl/Resources.resw @@ -217,7 +217,7 @@ Прикажи скривене датотеке и фасцикле - Dot files + Show dot files Изглед @@ -1089,7 +1089,7 @@ Toggle the info pane - Toggle the info pane to view the detail/preview panes + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1097,6 +1097,12 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + Брзи преглед датотеке није доступан @@ -2012,11 +2018,23 @@ Понашање - - Review Files + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us - - Would you like to review Files? + + Dismiss Set as background @@ -2421,31 +2439,31 @@ Toggle whether to show sidebar - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Copy path of selected items to the clipboard + Copy path of the current directory - Copy path of selected items to the clipboard + Copy path of selected items - Copy path of selected items with quotes to the clipboard + Copy path of selected items with quotes - Copy path of selected items with quotes to the clipboard + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Compressed {0} item(s) to "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressed {0} item(s) from "{1}" to "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error compressing {0} item(s) to "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to compress {0} item(s) from "{1}" to "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Compressing {0} item(s) to "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressing {0} item(s) from "{1}" to "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) to "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) from "{1}" to "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copied {0} item(s) to "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copied {0} item(s) from "{1}" to "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error copying {0} item(s) to "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to copy {0} item(s) from "{1}" to "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copying {0} item(s) to "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copying {0} item(s) from "{1}" to "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Canceled deleting {0} item(s) from "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleted {0} item(s) from "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Error deleting {0} item(s) from "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Failed to delete {0} item(s) from "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleting {0} item(s) from "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) to "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) from "{1}" to "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moved {0} item(s) to "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moved {0} item(s) from "{1}" to "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moving {0} item(s) to "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moving {0} item(s) from "{1}" to "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error moving {0} item(s) to "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to move {0} item(s) from "{1}" to "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ There was an error applying this tag - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Extract here (Smart) @@ -4066,9 +4084,6 @@ Navigate to the home page - - Show home button in address bar - Toolbars @@ -4208,9 +4223,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/sv-SE/Resources.resw b/src/Files.App/Strings/sv-SE/Resources.resw index 8288237110ea..ca798fb53bbd 100644 --- a/src/Files.App/Strings/sv-SE/Resources.resw +++ b/src/Files.App/Strings/sv-SE/Resources.resw @@ -217,7 +217,7 @@ Visa dolda filer och mappar - Dot files + Show dot files Utseende @@ -301,7 +301,7 @@ Ange ett namn för objektet - Create new {0} + Skapa ny {0} Ljust @@ -1089,14 +1089,20 @@ Slå av eller på informationspanelen - Växla infopanelen för att se detaljerna/förhandsgranskningsrutorna + Toggle visibility of the detail/preview panes - Toggle toolbar + Växla verktygsfält Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + Ingen förhandsgranskning är tillgänglig @@ -1722,7 +1728,7 @@ Kolumner - Cards + Kort Öppna mappar i ny flik @@ -1839,13 +1845,13 @@ Start window - Normal window + Normalt fönster - Minimized + Minimerad - Maximized + Maximerad Kör som administratör @@ -1869,7 +1875,7 @@ Ingen reducerad färg - Third party libraries + Tredjepartsbibliotek Det här alternativet ändrar systemregistret och kan ha oväntade effekter på din enhet. Fortsätt på egen risk. @@ -1956,7 +1962,7 @@ Stäng övriga flikar - Close all tabs + Stäng alla flikar Musik @@ -2012,11 +2018,23 @@ Beteenden - - Betygsätt Files + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us - - Vill du betygsätta Files? + + Dismiss Ange som bakgrund @@ -2295,7 +2313,7 @@ Inställningar för innehållsmeny - File extensions + Filändelser Format @@ -2304,13 +2322,13 @@ Hjälp - Full screen + Fullskärm Är du säker på att du vill radera den här taggen? - Play + Spela Höjd @@ -2391,7 +2409,7 @@ Open the online help page in your browser - Toggle full screen mode + Växla fullskärmsläge Enter compact overlay mode @@ -2421,31 +2439,31 @@ Växla om sidofältet ska visas - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Kopiera sökväg för valda objekt till urklipp + Copy path of the current directory - Copy path of selected items to the clipboard + Copy path of selected items - Copy path of selected items with quotes to the clipboard + Copy path of selected items with quotes - Kopiera sökväg för valda objekt med citat till urklipp + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2529,13 +2547,13 @@ Ange vald bild som appbakgrund - Install font + Installera teckensnitt - Install driver + Installera drivrutin - Install certificate + Installera certifikat Install selected {0, plural, one {font} other {fonts}} @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -2601,7 +2619,7 @@ Växla till detaljvy - Switch to cards view + Växla till kortvy Växla till listvy @@ -2703,10 +2721,10 @@ Öppna en ny flik - Navigate backward + Navigera bakåt - Navigate forward + Navigera framåt Gå upp en mapp @@ -2965,13 +2983,13 @@ Otaggad(e) - Previous tab + Föregående flik - Next tab + Nästa flik - Close tab + Stäng flik Redigera sökväg @@ -3212,7 +3230,7 @@ Mica Alt - Backdrop + Bakgrund Solid @@ -3245,7 +3263,7 @@ Filer kan inte komma åt GitHub just nu. - Open folder in {0} + Öppna mapp i {0} Open the current directory in {0} @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Komprimerat {0} objekt till "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Komprimerat {0} objekt från "{1}" till "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Fel vid komprimering av {0} objekt till "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Det gick inte att komprimera {0} objekt från "{1}" till "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Komprimerar {0} objekt till "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Komprimerar {0} objekt från "{1}" till "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Avbröt kopiering av {0} objekt till "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Avbröt kopiering av {0} objekt från "{1}" till "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Kopierade {0} objekt till "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Kopierade {0} objekt från "{1}" till "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Fel vid kopiering av {0} objekt till "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Det gick inte att kopiera {0} objekt från "{1}" till "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Kopierar {0} objekt till "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Kopierar {0} objekt från "{1}" till "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Avbröt borttagning av {0} objekt från "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Tog bort {0} objekt från "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Fel vid borttagning av {0} objekt från "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Det gick inte att ta bort {0} objekt från "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Tar bort {0} objekt från "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Avbröt flyttningen av {0} objekt till "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Avbröt flyttningen av {0} objekt från "{1}" till "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Flyttade {0} objekt till "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Flyttade {0} objekt från "{1}" till "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Flyttar {0} objekt till "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Flyttar {0} objekt från "{1}" till "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Fel vid flytt av {0} objekt till "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Misslyckades att flytta {0} objekt från "{1}" till "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ Det gick inte att tillämpa denna tagg - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Extrahera här (Smart) @@ -3973,7 +3991,7 @@ This is the friendly name for ICO files. - ICL File + ICL-fil This is the friendly name for ICL files. @@ -4003,13 +4021,13 @@ Redigera den valda filen i Anteckningar - Dimensions: + Dimensioner: Status: - Show toolbar + Visa verktygsfält Setting that controls if the toolbar is shown in the main view @@ -4034,7 +4052,7 @@ Arrange panes vertically - Arrange horizontally + Ordna horisontellt Arrange panes horizontally @@ -4061,25 +4079,22 @@ Show Files icon in the System Tray - CPU threads + CPU-trådar Navigate to the home page - - Show home button in address bar - - Toolbars + Verktygsfält - User ID + Användar-ID Bulk rename - Compress contents + Komprimera innehåll Show option to create alternate data stream @@ -4106,10 +4121,10 @@ Would you like to display alternate data streams? You can modify this setting anytime from the files and folders settings page. - Manage tags + Hantera taggar - Available + Tillgänglig Total @@ -4127,14 +4142,14 @@ Show shelf pane toggle in address bar - Shelf + Hylla 'Shelf' refers to the Shelf Pane feature, where users can conveniently drag and drop files for quick access and perform bulk actions with ease. Clear items - Remove from shelf + Ta bort från hylla Add to shelf @@ -4153,10 +4168,10 @@ Appears when two compared hashes don't match - Path or alias + Sökväg eller alias - Invalid path + Ogiltig sökväg Test integration @@ -4168,7 +4183,7 @@ The configured IDE could not be located - Open settings + Öppna inställningar Visual Studio Code @@ -4196,7 +4211,7 @@ Cannot clone repo dialog title - Compare a file + Jämför en fil Button that appears in file hash properties that allows the user to compare two files @@ -4208,9 +4223,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4224,6 +4236,44 @@ Find features and commands... - Search for files and folders... + Sök efter filer och mappar... + + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Ikonfiler + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal diff --git a/src/Files.App/Strings/ta/Resources.resw b/src/Files.App/Strings/ta/Resources.resw index 77644587a007..e39b6a952d1b 100644 --- a/src/Files.App/Strings/ta/Resources.resw +++ b/src/Files.App/Strings/ta/Resources.resw @@ -217,7 +217,7 @@ Show hidden files and folders - Dot files + Show dot files தோற்றம் @@ -1089,7 +1089,7 @@ Toggle the info pane - Toggle the info pane to view the detail/preview panes + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1097,6 +1097,12 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + No preview available @@ -2012,11 +2018,23 @@ Behaviors - - Review Files + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us - - Would you like to review Files? + + Dismiss Set as background @@ -2421,31 +2439,31 @@ Toggle whether to show sidebar - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Copy path of selected items to the clipboard + Copy path of the current directory - Copy path of selected items to the clipboard + Copy path of selected items - Copy path of selected items with quotes to the clipboard + Copy path of selected items with quotes - Copy path of selected items with quotes to the clipboard + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -3412,7 +3430,7 @@ One of the custom color themes - Sivapu + சிவப்பு One of the custom color themes @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Compressed {0} item(s) to "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressed {0} item(s) from "{1}" to "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error compressing {0} item(s) to "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to compress {0} item(s) from "{1}" to "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Compressing {0} item(s) to "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressing {0} item(s) from "{1}" to "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) to "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) from "{1}" to "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copied {0} item(s) to "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copied {0} item(s) from "{1}" to "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error copying {0} item(s) to "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to copy {0} item(s) from "{1}" to "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copying {0} item(s) to "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copying {0} item(s) from "{1}" to "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Canceled deleting {0} item(s) from "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleted {0} item(s) from "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Error deleting {0} item(s) from "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Failed to delete {0} item(s) from "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleting {0} item(s) from "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) to "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) from "{1}" to "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moved {0} item(s) to "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moved {0} item(s) from "{1}" to "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moving {0} item(s) to "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moving {0} item(s) from "{1}" to "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error moving {0} item(s) to "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to move {0} item(s) from "{1}" to "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ There was an error applying this tag - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Extract here (Smart) @@ -4066,9 +4084,6 @@ ஹோம் பேஜ்கு போ - - Show home button in address bar - Toolbars @@ -4208,9 +4223,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/th-TH/Resources.resw b/src/Files.App/Strings/th-TH/Resources.resw index 463506a4c266..6f87f119c8f7 100644 --- a/src/Files.App/Strings/th-TH/Resources.resw +++ b/src/Files.App/Strings/th-TH/Resources.resw @@ -217,7 +217,7 @@ แสดงไฟล์และโฟลเดอร์ที่ซ่อนไว้ - Dot files + Show dot files ตกแต่ง @@ -1089,7 +1089,7 @@ Toggle the info pane - Toggle the info pane to view the detail/preview panes + Toggle visibility of the detail/preview panes Toggle toolbar @@ -1097,6 +1097,12 @@ Toggle visibility of the toolbar + + Toggle filter header + + + Toggle visibility of the filter header + ไม่มีตัวอย่างให้ดู @@ -2012,11 +2018,23 @@ ลักษณะการทำงาน - - แสดงคำวิจารณ์แอป + + Hello! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + Rate us - - คุณต้องการให้คำวิจารณ์แอปนี้ไหม?? + + Dismiss ตั้งเป็นพื้นหลัง @@ -2421,31 +2439,31 @@ Toggle whether to show sidebar - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Copy path of selected items to the clipboard + Copy path of the current directory - Copy path of selected items to the clipboard + Copy path of selected items - Copy path of selected items with quotes to the clipboard + Copy path of selected items with quotes - Copy path of selected items with quotes to the clipboard + Copy path of the current directory with quotes - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Paste items to the current folder - Paste clipboard items to the current folder as shortcuts + Paste items to the current folder as shortcuts - Paste clipboard items to the selected folder + Paste items to the selected folder Paste to selected folder @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Compressed {0} item(s) to "{1}" + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressed {0} item(s) from "{1}" to "{2}" + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error compressing {0} item(s) to "{1}" + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to compress {0} item(s) from "{1}" to "{2}" + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Compressing {0} item(s) to "{1}" + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Compressing {0} item(s) from "{1}" to "{2}" + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installing {0} font(s) + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installing {0} font(s) from "{1}" + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) to "{1}" + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled copying {0} item(s) from "{1}" to "{2}" + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copied {0} item(s) to "{1}" + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copied {0} item(s) from "{1}" to "{2}" + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error copying {0} item(s) to "{1}" + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to copy {0} item(s) from "{1}" to "{2}" + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Copying {0} item(s) to "{1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Copying {0} item(s) from "{1}" to "{2}" + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Canceled deleting {0} item(s) from "{1}" + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleted {0} item(s) from "{1}" + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Error deleting {0} item(s) from "{1}" + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Failed to delete {0} item(s) from "{1}" + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Deleting {0} item(s) from "{1}" + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) to "{1}" + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Canceled moving {0} item(s) from "{1}" to "{2}" + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moved {0} item(s) to "{1}" + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moved {0} item(s) from "{1}" to "{2}" + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Moving {0} item(s) to "{1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Moving {0} item(s) from "{1}" to "{2}" + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - Error moving {0} item(s) to "{1}" + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - Failed to move {0} item(s) from "{1}" to "{2}" + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ There was an error applying this tag - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item แยกไฟล์ที่นี้ (อัจฉริยะ) @@ -4066,9 +4084,6 @@ Navigate to the home page - - Show home button in address bar - Toolbars @@ -4208,9 +4223,6 @@ Decimal - - Enable Omnibar - You can add sections to the sidebar by right-clicking and selecting the sections you want to add @@ -4226,4 +4238,42 @@ Search for files and folders... + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/tr-TR/Resources.resw b/src/Files.App/Strings/tr-TR/Resources.resw index bde9c7f8cd40..28b6a2d87644 100644 --- a/src/Files.App/Strings/tr-TR/Resources.resw +++ b/src/Files.App/Strings/tr-TR/Resources.resw @@ -124,7 +124,7 @@ Yolu kopyala - Copy item path + Öğe yolunu kopyala Tırnak işaretleriyle yolu kopyala @@ -133,7 +133,7 @@ Seçilen öğenin yolunu tırnak işaretleri ile kopyala - Göz at + Gözat Boyut @@ -166,7 +166,7 @@ Atla - Select all + Tümünü seç Seçimi tersine çevir @@ -196,7 +196,7 @@ Bu ögeyi kaldır - GitHub Reposu + GitHub deposu Hakkında @@ -217,13 +217,13 @@ Gizli dosya ve klasörleri göster - Dot files + dot dosyalarını göster Görünüm - Arka plan rengi + Arkaplan rengi Gelişmiş @@ -337,7 +337,7 @@ Yenile - Bu dizinde aynı adlı bir öge zaten var. + Bu klasörde aynı adlı bir öge zaten var. Var olan ögeyi değiştir @@ -415,7 +415,7 @@ {0, plural, one {# dakika önce} other {# dakika önce}} - 1 dakika önce güncellendi + 1 dakika önce {0} dakika önce @@ -663,7 +663,7 @@ Boş bir klasör oluşturur - Dizini yenile + Klasörü yenile Dil @@ -1020,7 +1020,7 @@ Korunan sistem dosyalarını göster - Dizinler arası düzen ve sıralama tercihlerini senkronla + Dizinler arası düzen ve sıralama tercihlerini eşitle Sağ tık menüsünü özelleştir @@ -1059,7 +1059,7 @@ Yeni bölmede aç - Dosyalar ve klasörler + Dosyalar & klasörler Ayrıntılar Görünümü (Ctrl+Shift+1) @@ -1077,25 +1077,31 @@ İstenilen ad - Önizleme bölmesini aç/kapat + Önizleme bölmesini değiştir - Önizleme bölmesini aç/kapat + Ayrıntılar bölmesini değiştir Temel dosya özelliklerini görüntülemek için ayrıntılar bölmesini açın - Bilgi bölmesini aç/kapat + Bilgi bölmesini değiştir - Ayrıntı/önizleme bölmelerini görüntülemek için bilgi bölmesini açın + Toggle visibility of the detail/preview panes - Toggle toolbar + Araç çubuğunu değiştir - Toggle visibility of the toolbar + Araç çubuğu görünürlüğünü değiştir + + + Toggle filter header + + + Filtre başlığının görünürlüğünü değiştir Ön izleme yok @@ -1104,7 +1110,7 @@ Öge Adı - Kenar Çubuğundan sabitlemeyi kaldır + Kenar çubuğundan kaldır @@ -1116,7 +1122,7 @@ Dosya ön izlemesi - Seçilmiş dosya ön izleme panosu + Seçili dosya önizleme bölmesi Geri bildirim @@ -1218,10 +1224,10 @@ Sütun Görünümü (Ctrl+Shift+6) - Başlat Menüsüne Sabitle + Başlat menüsüne sabitle - Başlat Menüsünden Sabitlemeyi Kaldır + Başlat menüsünden sabitlemeyi kaldır Kütüphane @@ -1398,7 +1404,7 @@ {0} öğe - Reopen tab + Sekmeyi yeniden aç Yeniden adlandır @@ -1605,7 +1611,7 @@ Tüm alt nesne izin girişlerini bu nesneden devralınabilir izin girişleriyle değiştir - Close pane + Bölmeyi kapat Kompakt yer paylaşımına gir @@ -1731,10 +1737,10 @@ Durum Merkezi - Sütun oluşturulma tarihi + Oluşturulma tarihi sütunu - Öğe Sütun Boyutu + Öğe boyutu sütunu Deneysel özellik işaretleri @@ -1758,19 +1764,19 @@ Dosya etiketi - Öğeleri tek bir tıklamayla açın + Öğeleri tek tıklamayla aç Klasör yolu - Ayarları Dışa Aktar + Ayarları dışa aktar Ayarları içe aktar - Ayarları içe aktarılamadı. Ayarlar dosyası bozuk. + Ayarları içeri aktarılamadı. Ayarlar dosyası bozuk. Ayarları içe aktarırken hata oluştu @@ -1794,7 +1800,7 @@ Dosyaları başka bir uygulamadan açarken sekmeyi mevcut örnekte aç - Başlatma seçenekleri + Başlangıç ​​ayarları Uyumluluk @@ -1887,7 +1893,7 @@ Klasör boyutlarını hesapla - Son Dosyalar + Son dosyalar Windows başlatıldığında Files'ı aç @@ -1998,7 +2004,7 @@ Tüm Sütunları Sığacak Şekilde Boyutlandır - Uyarlanır düzen + Uyarlanabilir düzen Uyarlanabilir (Ctrl+Shift+7) @@ -2012,11 +2018,23 @@ Davranışlar - - Files'ı Değerlendir + + Merhaba! + + + Enjoying Files? Please consider reviewing in the Microsoft Store. + + + Enjoying Files? Please consider supporting the project on GitHub. - - Files'ı değerlendirmek ister misiniz? + + Destekle + + + Bizi değerlendirin + + + Reddet Arka plan olarak ayarla @@ -2031,7 +2049,7 @@ Tarih sütunu - Sütun oluşturulma tarihi + Oluşturulma tarihi sütunu Boyut sütunu @@ -2040,13 +2058,13 @@ Etiket sütunu - Tip sütunu + Tür sütunu Kilit Ekranı - Sütunlar Düzeninde tek bir tıklama ile klasörleri aç + Sütun düzeninde tek tıklama ile klasörleri aç Açılış öğeleri @@ -2070,13 +2088,13 @@ Düzleştirme seçeneklerini göster - Üzerine getirildiğinde dosyaları ve dizinleri seç + Üzerine getirildiğinde dosyaları ve klasörleri seç Geri dönüşüm kutusundaki tüm öğeleri geri yüklemek istediğinizden emin misiniz? - Bütün öğeleri geri yükle + Tüm ögeleri geri yükle Do you want to restore the {0, plural, one {selected item} other {{0} selected items}}? @@ -2085,7 +2103,7 @@ Seçimi geri yükle - Bütün öğeleri geri yükle + Tüm Öğeleri Geri Yükle Geri yükle @@ -2205,10 +2223,10 @@ Son kullanılan dosyalar şu an için Windows Dosya Gezgininde devre dışıdır. - Ayar Dosyasını Düzenle + Ayar dosyasını düzenle - Ayarlar dosyasını öntanımlı düzenleyiciniz içinde açın + Ayarlar dosyasını varsayılan düzenleyici içinde aç Sürüm Notları @@ -2295,7 +2313,7 @@ Bağlam menüsü seçenekleri - File extensions + Dosya uzantıları Biçim @@ -2304,13 +2322,13 @@ Yardım - Full screen + Tam ekran Bu etiketi silmek istediğinize emin misiniz? - Play + Oynat Boy @@ -2370,7 +2388,7 @@ Boyutu büyüt - Sort direction + Sıralama yönü Geçersiz isim @@ -2388,31 +2406,31 @@ Kompakt üstyazımı aç / kapa - Open the online help page in your browser + Tarayıcınızda çevrimiçi yardım sayfasını açın - Toggle full screen mode + Tam ekran modunu değiştir - Enter compact overlay mode + Kompakt yer paylaşımı moduna gir Exit compact overlay mode - Toggle compact overlay mode + Kompakt katman modunu değiştir - Start search in the OmniBar + OmniBar üstünde arama başlat - Toggle visibility of hidden items + Gizli öğelerin görünürlüğünü değiştir - Toggle visibility of dot files + Nokta ile başlayan dosyaların görünürlüğünü değiştir - Toggle visibility of file extensions + Dosya uzantılarının görünürlüğünü değiştir Dosya önizlemelerini görüntülemek için önizleme bölmesini açın @@ -2421,34 +2439,34 @@ Yan bölme görünürlüğünü aç / kapa - Copy selected {0, plural, one {item} other {items}} to clipboard + Copy selected {0, plural, one {item} other {items}} - Seçilen öğelerin yolunu panoya kopyala + Geçerli dizin yolunu kopyala - Seçilen öğelerin yolunu panoya kopyala + Seçili öğelerin yolunu kopyala - Seçilen öğelerin yolunu tırnak işaretleri ile panoya kopyala + Seçili öğelerin yolunu tırnak işaretleriyle kopyala - Seçilen öğelerin yolunu tırnak işaretleri ile panoya kopyala + Geçerli dizinin yolunu tırnak işaretleriyle kopyala - Cut selected {0, plural, one {item} other {items}} to clipboard + Cut selected {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + Öğeleri mevcut klasöre yapıştır - Paste clipboard items to the current folder as shortcuts + Öğeleri mevcut klasöre kısayol olarak yapıştır - Paste clipboard items to the selected folder + Öğeleri seçilen klasöre yapıştır - Paste to selected folder + Seçili klasöre yapıştır Delete selected {0, plural, one {item} other {items}} @@ -2463,7 +2481,7 @@ Herhangi bir ögeye yeni kısayol oluştur - Empty the contents of Recycle Bin + Çöp kutusu içeriğini boşalt Seçili öge için "Sürücüyü Biçimlendir" menüsünü aç @@ -2493,10 +2511,10 @@ Tüm ögeleri seç - Invert selected items + Seçili öğeleri ters çevir - Clear selected items + Seçilen öğeleri temizle Öge seçimini aç / kapa @@ -2529,13 +2547,13 @@ Seçili resmi uygulama arka planı olarak ayarla - Install font + Yazı tipi kur - Install driver + Sürücü kur - Install certificate + Sertifika kur Install selected {0, plural, one {font} other {fonts}} @@ -2568,13 +2586,13 @@ Create zip archive with selected {0, plural, one {item} other {items}} - Extract items from selected {0, plural, one {archive} other {archives}} to any folder + Extract selected {0, plural, one {archive} other {archives}} to any folder - Extract items from selected {0, plural, one {archive} other {archives}} to current folder + Extract selected {0, plural, one {archive} other {archives}} to the current folder - Extract items from selected {0, plural, one {archive} other {archives}} to new folder + Extract selected {0, plural, one {archive} other {archives}} to new folder Rotate selected {0, plural, one {image} other {images}} to the left @@ -2703,10 +2721,10 @@ Yeni sekmede aç - Navigate backward + Geriye git - Navigate forward + İleriye git Bir dizinde yukarı git @@ -2739,7 +2757,7 @@ Şu anki sekme dahil olmak üzere tüm sekmeleri kapat - Reopen recently closed tab + Son kapatılan sekmeyi yeniden aç Önceki sekmeye git @@ -2751,13 +2769,13 @@ Geçerli sekmeyi kapat - Close the active pane + Etkin bölmeyi kapat - Diğer sekmeye odaklan + Diğer bölmeye odaklan - Switch focus to the other pane + Odaklanmayı diğer bölmeye geçir Kenar çubuğunu değiştir @@ -2965,13 +2983,13 @@ Etiketlenmemiş - Previous tab + Önceki sekme - Next tab + Sonraki sekme - Close tab + Sekmeyi kapat Yolu düzenle @@ -2980,7 +2998,7 @@ Tekrarla - Geri Al + Geri al Geçersiz konum @@ -3001,7 +3019,7 @@ Öğeleri seçerken onay kutularını göster - Edit path in the OmniBar + OmniBar üstünde yolu düzenle Yeni öğe oluştur @@ -3236,7 +3254,7 @@ {0} giden / {1} gelen commit - GitHub'a Bağlan + GitHub'a bağlan GitHub repolarıyla çalışmaya başlamak için aşağıdaki bağlantıya aşağıdaki kodu girin. @@ -3248,13 +3266,13 @@ Klasörü {0} içinde aç - Open the current directory in {0} + Geçerli dizini {0} konumunda aç Depoyu {0} içinde aç - Open the root of the Git repo in {0} + Git deposunun kökünü {0} içinde açın Kodu kopyala @@ -3281,7 +3299,7 @@ Repo başlat - Initialize current folder as a git repository + Mevcut klasörü bir git deposu olarak başlat Uzak Depo Adı @@ -3296,13 +3314,13 @@ Öğeleri yola göre sırala - Open selected directory in a new pane + Seçili dizini yeni bir bölme üstünde aç - Open selected directory in a new tab + Seçili dizini yeni bir sekmede aç - Open selected directory in a new window + Seçili dizini yeni bir pencerede aç Tümünü aç @@ -3327,7 +3345,7 @@ '{0}' komutu, çalıştırılmak için hazır değil. - Command Palette + Komut Paleti Open Command Palette in the OmniBar @@ -3357,7 +3375,7 @@ Windows ile WinAppSdk arasındaki bir kısıtlamadan ötürü sürükle ve bırak, Files yönetici olarak çalışırken kullanılamaz. Sürükle ve bırakı kullanmak istiyorsanız, geçici bir çözüm olarak Başlat Menüsünden UAC'ı (Kullanıcı Hesap Denetimi) başlatın ve üçüncü düzeyi seçin, ardından Windows'u yeniden başlatın. Aksi hâlde Files'ı sürükle ve bırak olmadan kullanmaya devam edebilirsiniz. - Penceresi kapatıldığında uygulamayı arka planda çalışır durumda bırak + Pencere kapatıldığında uygulamayı arka planda çalışır durumda bırak Mavi @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - {0} öğe "{1}" olarak sıkıştırıldı + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} öğe "{1}"den "{2}"ye sıkıştırıldı + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} öğe "{1}" olarak sıkıştırılırken hata oluştu + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} öğe "{1}"den "{2}"ye sıkıştırılamadı + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} öğe/öğe "{1}" olarak sıkıştırılıyor + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} öğe "{1}"den "{2}"ye sıkıştırılıyor + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Canceled installing {0} font(s) from "{1}" + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Installed {0} font(s) + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Installed {0} font(s) from "{1}" + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - Error installing {0} font(s) + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - Failed to install {0} font(s) from "{1}" + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - {0} yazı tip(leri) yükleniyor + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - “{1}"den {0} yazı tipi(leri) yükleniyor + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - {0} öğenin "{1}" öğesine kopyalanması iptal edildi + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} öğenin "{1}" öğesinden "{2}" öğesine kopyalanması iptal edildi + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} öğe "{1}" öğesine kopyalandı + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} öğe "{1}" öğesinden "{2}" öğesine kopyalandı + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} öğe "{1}" öğesine kopyalanırken hata oluştu + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} öğe "{1}" öğesinden "{2}" öğesine kopyalanamadı + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} öğe "{1}" öğesine kopyalanıyor + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} öğe "{1}" öğesinden "{2}" öğesine kopyalanıyor + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - "{1}" kaynağından {0} öğenin silinmesi iptal edildi + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - "{1}" kaynağından {0} öğe silindi + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - "{1}" kaynağından {0} öğe silinirken hata oluştu + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - "{1}" kaynağından {0} öğe silinemedi + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - "{1}" kaynağından {0} öğe siliniyor + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - {0} öğenin "{1}" öğesine taşınması iptal edildi + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} öğenin "{1}" konumundan "{2}" konumuna taşınması iptal edildi + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} öğe "{1}" konumuna taşındı + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} öğe "{1}" konumundan "{2}" konumuna taşındı + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} öğe "{1}" öğesine taşınıyor + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} öğe "{1}" konumundan "{2}" konumuna taşınıyor + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - {0} öğe "{1}" öğesine taşınırken hata oluştu + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - {0} öğe "{1}" konumundan "{2}" konumuna taşınamadı + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ Bu etiketi uygularken bir hata oluştu - Extract items from selected {0, plural, one {archive} other {archives}} to current folder for single-item archive, or to new folder for multi-item archive + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item Buraya çıkart (Akıllı) @@ -3755,7 +3773,7 @@ Dosyaları ve klasörleri birlikte sırala - Sort files and folders in the same list + Dosyaları ve klasörleri aynı listede sıralayın Önce dosyaları sırala @@ -3897,7 +3915,7 @@ Özelleştirilmiş - Tercihler senkronize edildiğinde uyarlanabilir düzen kullanılamaz, varsayılan düzen Ayrıntılar olarak değiştirilmiştir. + Tercihler eşitlendiğinde uyarlanabilir düzen kullanılamaz, varsayılan düzen ayrıntılar olarak değiştirildi. Arka plan resmi @@ -4016,16 +4034,16 @@ Sekme aksiyonları menüsü - Vertical pane + Dikey bölme - Add vertical pane + Dikey bölme ekle - Horizontal pane + Yatay bölme - Add horizontal pane + Yatay bölme ekle Dikey düzenle @@ -4040,16 +4058,16 @@ Sekmeleri yatay düzenle - Sekme ekle + Bölme ekle - İsim çubuğunda sekme eylemleri butonunu göster + Başlık çubuğunda sekme eylemleri düğmesini göster - Sekmeleri düzenle + Bölmeleri düzenle - Varsayılan sekme dizilimi + Varsayılan bölme dizilimi Yatay @@ -4058,7 +4076,7 @@ Dikey - Sistem Tepsisinde Files ikonunu göster + Sistem tepsisinde Files simgesini göster CPU iş parçacıkları @@ -4066,9 +4084,6 @@ Ev sayfasına gidin - - Adres çubuğunda ana sayfa düğmesini göster - Araç çubukları @@ -4118,10 +4133,10 @@ Her zaman yeni oluşturulan sekmeye odaklan - Toggle shelf pane + Raf bölmesini değiştir - Toggle the visibility of the shelf pane + Raf bölmesinin görünürlüğünü değiştir Adres çubuğunda raf bölmesi ayarını göster @@ -4159,7 +4174,7 @@ Geçersiz dosya yolu - Test integration + Test entegrasyonu {0} bulunamadı. Lütfen ayarlarınızı kontrol edip tekrar deneyin. @@ -4196,11 +4211,11 @@ Cannot clone repo dialog title - Compare a file + Dosyayı karşılaştır Button that appears in file hash properties that allows the user to compare two files - Size format + Boyut biçimi İkili @@ -4208,22 +4223,57 @@ Ondalık - - Enable Omnibar - - You can add sections to the sidebar by right-clicking and selecting the sections you want to add + Sağ tıklayıp eklemek istediğiniz bölümleri seçerek kenar çubuğuna bölümler ekleyebilirsiniz - Drag files or folders here to interact with them across different tabs + Dosyaları veya klasörleri buraya sürükleyerek farklı sekmelerde etkileşim kurabilirsiniz - Enter a path to navigate to... + Gezinmek için bir yol girin... - Find features and commands... + Özellikleri ve komutları bulun... - Search for files and folders... + Dosya ve klasörleri arayın... + + + Dosya işlemler sırasında + + + Durum merkezi düğmesini göster + + + Durum merkezi ilerleme halkası + Screen reader name for the status center progress ring + + + Simge dosyaları + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal diff --git a/src/Files.App/Strings/uk-UA/Resources.resw b/src/Files.App/Strings/uk-UA/Resources.resw index 48599719e760..66b31796f076 100644 --- a/src/Files.App/Strings/uk-UA/Resources.resw +++ b/src/Files.App/Strings/uk-UA/Resources.resw @@ -124,7 +124,7 @@ Копіювати шлях - Copy item path + Копіювати шлях до елемента Копіювати шлях у лапках @@ -166,7 +166,7 @@ Пропустити - Select all + Вибрати все Інвертувати виділення @@ -217,7 +217,7 @@ Відображати приховані файли та папки - Dot files + Показувати файли, які починаються з крапки Оформлення @@ -1089,13 +1089,19 @@ Перемкнути інформаційну панель - Перемкнути інформаційну панель для перегляду деталей/прев'ю панелей + Увімк. / Вимк. видимість деталей / передперегляду панелей - Toggle toolbar + Сховати / Показати панель інструментів - Toggle visibility of the toolbar + Сховати / Приховати видимість панелі інструментів + + + Увімк. / Вимк. заголовок фільтра + + + Увімк. / Вимк. видимість заголовка фільтра Попередній перегляд недоступний @@ -1398,7 +1404,7 @@ Елементів: {0} - Reopen tab + Знову відкрити вкладку Перейменувати @@ -1605,7 +1611,7 @@ Замінити всіх записів дозволів дочірніх об'єктів на успадковувані записи дозволів з цього об'єкта - Close pane + Закрити панель Компактний режим @@ -2012,11 +2018,23 @@ Поведінки - - Оцінити Files + + Привіт! - - Бажаєте залишити відгук про Files? + + Подобається Files? Залиште відгук у Microsoft Store. + + + Подобається Files? Підтримайте проєкт на GitHub. + + + Спонсор + + + Оцінити нас + + + Відхилити Встановити як тло @@ -2295,7 +2313,7 @@ Опції контекстного меню - File extensions + Розширення файлів Формат @@ -2304,13 +2322,13 @@ Довідка - Full screen + На весь екран Ви впевнені, що хочете видалити цю мітку? - Play + Відтворити Висота @@ -2370,7 +2388,7 @@ Збільшити розмір - Sort direction + Порядок сортування Недопустима назва @@ -2382,37 +2400,37 @@ Відео - Preview popup + Спливне вікно передперегляду Увімкнути компактний оверлей - Open the online help page in your browser + Відкрити онлайн сторінку довідки у вашому браузері - Toggle full screen mode + Перемкнути режим «На весь екран» - Enter compact overlay mode + Увімкнути компактне накладання - Exit compact overlay mode + Вимкнути компактне накладання - Toggle compact overlay mode + Увімк. / Вимк. компактне накладання - Start search in the OmniBar + Почати пошук в OmniBar - Toggle visibility of hidden items + Сховати / Показати приховані елементи - Toggle visibility of dot files + Сховати / Показати файли, що починаються з крапки - Toggle visibility of file extensions + Сховати / Показати розширення файлів Перемкнути панель попереднього перегляду файлів @@ -2421,37 +2439,37 @@ Перемкнути для показу бічної панелі - Copy selected {0, plural, one {item} other {items}} to clipboard + Скопіювати {0, plural, one {вибраний елемент} few {вибрані елементи} many {вибраних елементів} other {вибраних елементів}} - Копіювати шлях до вибраних елементів в буфер обміну + Копіювати шлях поточної теки - Скопіювати шлях до вибраних елементів у буфер обміну + Копіювати шлях вибраних елементів - Скопіювати шлях до вибраних елементів з лапками у буфер обміну + Копіювати шлях вибраних елементів у лапках - Копіювати шлях до вибраних елементів з лапок в буфер обміну + Копіювати шлях поточної теки в лапках - Cut selected {0, plural, one {item} other {items}} to clipboard + Вирізати {0, plural, one {вибраний елемент} few {вибрані елементи} many {вибраних елементів} other {вибраних елементів}} - Paste clipboard items to the current folder + Вставити елементи до поточної теки - Paste clipboard items to the current folder as shortcuts + Вставити елементи до поточної теки як ярлики - Paste clipboard items to the selected folder + Вставити елементи до вибраної теки - Paste to selected folder + Вставити до вибраної теки - Delete selected {0, plural, one {item} other {items}} + Видалити {0, plural, one {вибраний елемент} few {вибрані елементи} many {вибраних елементів} other {вибраних елементів}} Створити нову теку @@ -2463,7 +2481,7 @@ Створити новий ярлик будь-якого елемента - Empty the contents of Recycle Bin + Очистити вміст кошика Відкрити меню "Відформатувати диск" для вибраного елемента @@ -2493,10 +2511,10 @@ Вибрати все - Invert selected items + Інвертувати вибрані елементи - Clear selected items + Очистити вибрані елементи Перемкнути виділення елементу @@ -2529,13 +2547,13 @@ Встановити зображення тлом додатку - Install font + Встановити шрифт - Install driver + Встановити драйвер - Install certificate + Встановити сертифікат Встановити {0, plural, one {вибраний шрифт} few {вибрані шрифти} many {вибраних шрифтів} other {вибраних шрифтів}} @@ -2568,13 +2586,13 @@ Створити zip-архів з {0, plural, one {вибраним елементом} few {вибраними елементами} many {вибраними елементами} other {вибраними елементами}} - Витягнути елементи з {0, plural, one {вибраного архіву} few {вибраних архівів} many {вибраних архівів} other {вибраних архівів}} до будь-якої теки + Витягнути {0, plural, one {вибраний архів} few {вибрані архіви} many {вибраних архівів} other {вибраних архівів}} до будь-якої теки - Витягнути елементи з {0, plural, one {вибраного архіву} few {вибраних архівів} many {вибраних архівів} other {вибраних архівів}} до поточної теки + Витягнути {0, plural, one {вибраний архів} few {вибрані архіви} many {вибраних архівів} other {вибраних архівів}} до поточної теки - Витягнути елементи з {0, plural, one {вибраного архіву} few {вибраних архівів} many {вибраних архівів} other {вибраних архівів}} до нової теки + Витягнути {0, plural, one {вибраний архів} few {вибрані архіви} many {вибраних архівів} other {вибраних архівів}} до нової теки Обернути {0, plural, one {вибране зображення} few {вибрані зображення} many {вибраних зображень} other {вибраних зображень}} ліворуч @@ -2703,10 +2721,10 @@ Відкрити нову вкладку - Navigate backward + Перейти назад - Navigate forward + Перейти вперед Перейти на один каталог вище @@ -2739,7 +2757,7 @@ Закрити всі вкладки, включаючи поточну вкладку - Reopen recently closed tab + Повторно відкрити нещодавно закриту вкладку Перейти до попередньої вкладки @@ -2751,13 +2769,13 @@ Закрити поточну вкладку - Close the active pane + Закрити активну панель Сфокусуватися на іншій панелі - Switch focus to the other pane + Перемкнути фокус на іншу панель Перемкнути бічну панель @@ -2965,13 +2983,13 @@ Без міток - Previous tab + Попередня вкладка - Next tab + Наступна вкладка - Close tab + Закрити вкладку Редагувати шлях @@ -3001,7 +3019,7 @@ Показувати прапорці під час вибору елементів - Edit path in the OmniBar + Змінити шлях до OmniBar Створити новий елемент @@ -3016,7 +3034,7 @@ Видалити безповоротно - Delete selected {0, plural, one {item} other {items}} permanently + Остаточно видалити {0, plural, one {вибраний елемент} few {вибраних елементи} many {вибраних елементів} other {вибраних елементів}} Відтворити вибрані медіафайли @@ -3281,7 +3299,7 @@ Ініціалізувати репозиторій - Initialize current folder as a git repository + Встановити поточну теку як git-репозиторій Назва віддаленого репозиторію @@ -3296,13 +3314,13 @@ Впорядкувати елементи за шляхом - Open selected directory in a new pane + Відкрити вибраний каталог у новій панелі - Open selected directory in a new tab + Відкрити вибраний каталог у новій вкладці - Open selected directory in a new window + Відкрити вибраний каталог у новому вікні Відкрити все @@ -3327,10 +3345,10 @@ Команда '{0}' не готова до виконання. - Command Palette + Командна палітра - Open Command Palette in the OmniBar + Відкрити командну палітру в OmniBar Запустити в: @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Стиснення {0} елемент(ів) до "{1}" + Стиснуто {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} до «{1}» Shown in a StatusCenter card. - Стиснення {0} елемент(ів) з "{1}" до "{2}" + Стиснуто {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} з «{1}» до «{2}» Shown in a StatusCenter card. - Помилка стиснення {0} елемент(ів) до "{1}" + Помилка стиснення {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} до «{1}» Shown in a StatusCenter card. - Не вдалось стиснути {0} елемент(ів) з "{1}" до "{2}" + Не вдалося стиснути {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} з «{1}» до «{2}» Shown in a StatusCenter card. - Стиснення {0} елемент(ів) до "{1}" + Стиснення {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} до «{1}» Shown in a StatusCenter card. - Стиснення {0} елемент(ів) до "{1}" до "{2}" + Стиснення {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} з «{1}» до «{2}» Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Скасовано встановлення {0} шрифту (-ів) з «{1}» + Скасовано встановлення {0, plural, one {# шрифту} few {# шрифтів} many {# шрифтів} other {# шрифтів}} з «{1}» Shown in a StatusCenter card. - Встановлено {0} шрифт (-и) + Встановлено {0, plural, one {# шрифт} few {# шрифти} many {# шрифтів} other {# шрифтів}} Shown in a StatusCenter card. - Встановлено {0} шрифт (-и) з «{1}» + Встановлено {0, plural, one {# шрифт} few {# шрифти} many {# шрифтів} other {# шрифтів}} з «{1}» Shown in a StatusCenter card. - Помилка встановлення {0} шрифту (-ів) + Помилка встановлення {0, plural, one {# шрифт} few {# шрифти} many {# шрифтів} other {# шрифтів}} Shown in a StatusCenter card. - Не вдалося встановити {0} шрифт (-и) з «{1}» + Не вдалося встановити {0, plural, one {# шрифту} few {# шрифтів} many {# шрифтів} other {# шрифтів}} з «{1}» Shown in a StatusCenter card. - Встановлення {0} шрифту (-ів) + Встановлення {0, plural, one {# шрифт} few {# шрифти} many {# шрифтів} other {# шрифтів}} Shown in a StatusCenter card. - Встановлення {0} шрифту (-ів) з «{1}» + Встановлення {0, plural, one {# шрифт} few {# шрифти} many {# шрифтів} other {# шрифтів}} з «{1}» Shown in a StatusCenter card. - Скасовано копіювання {0} елемент(ів) до "{1}" + Скасовано копіювання {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} до «{1}» Shown in a StatusCenter card. - Скасовано копіювання {0} елемент(ів) з "{1}" до "{2}" + Скасовано встановлення {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} з «{1}» до «{2}» Shown in a StatusCenter card. - Скопійовано {0} елемент(ів) до "{1}" + Скопійовано {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} до «{1}» Shown in a StatusCenter card. - Скопійовано {0} елемент(ів) з "{1}" до "{2}" + Скопійовано {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} з «{1}» до «{2}» Shown in a StatusCenter card. - Помилка копіювання {0} елемент(ів) до "{1}" + Помилка копіювання {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} до «{1}» Shown in a StatusCenter card. - Не вдалось скопіювати {0} елемент(ів) з "{1}" до "{2}" + Не вдалося скопіювати {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} з «{1}» до «{2}» Shown in a StatusCenter card. - Копіювання {0} елемент(ів) до "{1}" + Копіювання {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} до «{1}» Shown in a StatusCenter card. - Копіювання {0} елемент(ів) з "{1}" до "{2}" + Копіювання {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} з «{1}» до «{2}» Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Скасовано видалення {0} елементів з "{1}" + Скасовано видалення {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} з «{1}» Shown in a StatusCenter card. - Видалено {0} item(s) з "{1} " " + Видалено {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} з «{1}» Shown in a StatusCenter card. - Помилка видалення {0} елемента(ів) з "{1}" + Помилка видалення {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} з «{1}» Shown in a StatusCenter card. - Не вдалося видалити {0} item(s) з "{1}" + Не вдалося видалити {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} з «{1}» Shown in a StatusCenter card. - Видалення {0} елемент(ів) з "{1} " " + Видалення {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} з «{1}» Shown in a StatusCenter card. - Скасовано переміщення {0} елемент(ів) до "{1}" + Скасовано переміщення {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} до «{1}» Shown in a StatusCenter card. - Скасовано переміщення {0} елемент(ів) з "{1}" до "{2}" + Скасовано переміщення {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} з «{1}» до «{2}» Shown in a StatusCenter card. - Переміщено {0} елемент(ів) до "{1}" + Переміщено {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} до «{1}» Shown in a StatusCenter card. - Переміщено {0} елемент(ів) з "{1}" до "{2}" + Переміщено {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} з «{1}» до «{2}» Shown in a StatusCenter card. - Переміщення {0} елемент(ів) з "{1}" + Перміщення {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} до «{1}» Shown in a StatusCenter card. - Переміщення {0} елемент(ів) з "{1}" до "{2}" + Переміщення {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} з «{1}» до «{2}» Shown in a StatusCenter card. - Помлка переміщення {0} елемент(ів) до "{1}" + Помилка переміщення {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} до «{1}» Shown in a StatusCenter card. - Не вдалось перемістити {0} елемент(ів) з "{1}" до "{2}" + Не вдалося перемістити {0, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} з «{1}» до «{2}» Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ При застосуванні цього тега сталася помилка - Витягнути елементи з {0, plural, one {вибраного архіву} few {вибраних архівів} many {вибраних архівів} other {вибраних архівів}} до поточної теки для архіву з одним елементом або до нової теки для архіву з кількома + Витягнути {0, plural, one {вибраний архів} few {вибрані архіви} many {вибраних архівів} other {вибраних архівів}} сюди для одного елемента або в нову теку для декількох Видобути тут (Smart) @@ -3755,7 +3773,7 @@ Сортувати папки та файли разом - Sort files and folders in the same list + Сортувати файли та теки з одного списку Спершу сортувати файли @@ -4016,16 +4034,16 @@ Меню дій вкладки - Vertical pane + Вертикальна панель - Add vertical pane + Додати вертикальну панель - Horizontal pane + Горизонтальна панель - Add horizontal pane + Додати горизонтальну панель Розташувати вертикально @@ -4066,9 +4084,6 @@ Перейти до головної сторінки - - Показувати кнопку «Головна» в адресному рядку - Панелі інструментів @@ -4118,10 +4133,10 @@ Завжди перемикати фокус на новостворену вкладку - Toggle shelf pane + Перемкнути панель полиць - Toggle the visibility of the shelf pane + Сховати / Показати панель полиць Показувати перемикач панелі полиць в адресному рядку @@ -4208,9 +4223,6 @@ Десятковий - - Увімкнути Omnibar - Ви можете додати розділи на бічну панель, клацнувши ПКМ та вибравши розділи, які ви хочете додати. @@ -4226,4 +4238,42 @@ Знайти файли й теки... + + Під час роботи з файлами + + + Показати кнопку «Центр стану» + + + Кільце прогресу центру стану + Screen reader name for the status center progress ring + + + Файли значків + This is the friendly name for a variety of different icon files. + + + Показувати згорнутий шлях + + + Показати теку в {0} + + + Показати теки в Головній + + + Немає команд, що містять {0} + + + Показати більше + + + Фільтрувати за + + + Назва файлу + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/Strings/vi/Resources.resw b/src/Files.App/Strings/vi/Resources.resw index e426de44d473..45a555dfec6e 100644 --- a/src/Files.App/Strings/vi/Resources.resw +++ b/src/Files.App/Strings/vi/Resources.resw @@ -124,7 +124,7 @@ Sao chép đường dẫn - Copy item path + Sao chép đường dẫn khoản mục Sao chép đường dẫn kèm dấu ngoặc kép @@ -148,7 +148,7 @@ Kích cỡ: - Kích cỡ trên ổ đĩa: + Kích cỡ thực tế: Kích cỡ chưa nén: @@ -166,7 +166,7 @@ Bỏ qua - Select all + Chọn tất cả Đảo lựa chọn @@ -202,7 +202,7 @@ Giới thiệu - Mã nguồn mở + Nguồn mở Định dạng thời gian @@ -217,7 +217,7 @@ Hiện tệp và thư mục bị ẩn - Dot files + Hiện tệp có tên bắt đầu bằng dấu chấm Giao diện @@ -292,7 +292,7 @@ Cấp quyền - Trước khi bắt đầu, bạn cần phải cấp quyền hiển thị các tệp. Ứng dụng sẽ tự động mở cửa số Cài đặt để bạn thực hiện cấp quyền truy cập này. Sau khi hoàn tất, bạn sẽ cần khởi động lại ứng dụng. + Trước khi bắt đầu, bạn cần phải cấp quyền để hiển thị các tệp. Ứng dụng sẽ mở cửa sổ Cài đặt, hãy thực hiện cấp quyền trong cửa sổ này. Sau khi hoàn tất, bạn sẽ cần khởi động lại ứng dụng. Hiển thị @@ -1077,25 +1077,31 @@ Tên mong muốn - Bật/Tắt ngăn xem trước + Bật tắt ngăn xem trước - Bật/Tắt ngăn chi tiết + Bật tắt ngăn chi tiết Ẩn hoặc hiện ngăn chi tiết để xem các thuộc tính cơ bản của tệp - Bật/Tắt ngăn thông tin + Bật tắt ngăn thông tin - Ẩn hoặc hiện ngăn thông tin để xem chi tiết hoặc xem trước tệp + Ẩn hoặc hiện thanh chi tiết và thanh xem trước - Toggle toolbar + Bật tắt thanh công cụ - Toggle visibility of the toolbar + Ẩn hoặc hiện thanh công cụ + + + Bật tắt phần lọc + + + Ẩn hoặc hiện phần lọc Không có bản xem trước @@ -1398,7 +1404,7 @@ {0} mục - Reopen tab + Mở lại thẻ Đổi tên @@ -1443,7 +1449,7 @@ Sửa đổi - Quyền truy cập cho {0} + Quyền truy cập của {0} Đọc và thực thi @@ -1605,13 +1611,13 @@ Thay thế mọi quyền truy cập của đối tượng con bằng quyền được kế thừa từ đối tượng này - Close pane + Đóng ngăn - Bật chế độ thu gọn + Mở chế độ thu gọn - Tắt chế độ thu gọn + Thoát chế độ thu gọn Mô tả tệp @@ -1689,7 +1695,7 @@ Mở ổ đĩa - Vui lòng cho đĩa vào ổ đĩa {0} + Vui lòng cho đĩa vào ổ {0} Chèn đĩa @@ -1935,7 +1941,7 @@ Chạy bằng PowerShell - Việc tính toán kích cỡ thư mục có thể tốn nhiều tài nguyên thiết bị và khiến mức sử dụng CPU tăng lên. + Việc tính toán kích cỡ thư mục tốn nhiều tài nguyên thiết bị và có thể khiến mức sử dụng CPU tăng lên. Xoay trái @@ -1986,7 +1992,7 @@ Thao tác di chuyển không được hỗ trợ trong ngữ cảnh này. Thay vào đó, bạn có muốn sao chép khoản mục không? - Mục bị ẩn + Khoản mục bị ẩn Tùy chỉnh @@ -2012,11 +2018,23 @@ Hành vi - - Đánh giá Files + + Xin chào! + + + Thích Files? Hãy gửi nhận xét của bạn lên Microsoft Store. + + + Thích Files? Hãy cân nhắc hỗ trợ dự án trên GitHub. - - Bạn có muốn đánh giá Files không? + + Tài trợ + + + Đánh giá + + + Bỏ qua Đặt làm hình nền @@ -2046,7 +2064,7 @@ Màn hình khóa - Mở thư mục bằng một lần nhấp ở bố cục dạng cột + Mở thư mục bằng một lần nhấp trong bố cục cột Mở các khoản mục @@ -2295,7 +2313,7 @@ Tùy chọn menu ngữ cảnh - File extensions + Phần mở rộng tệp Định dạng @@ -2304,13 +2322,13 @@ Trợ giúp - Full screen + Toàn màn hình Bạn có chắc chắn muốn xóa nhãn này không? - Play + Phát Chiều cao @@ -2370,49 +2388,49 @@ Tăng kích thước - Sort direction + Hướng sắp xếp Tên không hợp lệ - Tên không được để trống hoặc bắt đầu/kết thúc với một dấu chấm. + Tên không được để trống hoặc bắt đầu/kết thúc bằng dấu chấm. Video - Preview popup + Cửa sổ xem trước - Bật/Tắt chế độ thu gọn + Bật tắt chế độ thu gọn - Open the online help page in your browser + Mở trang trợ giúp trực tuyến trong trình duyệt - Toggle full screen mode + Bật hoặc tắt chế độ toàn màn hình - Enter compact overlay mode + Mở chế độ thu gọn - Exit compact overlay mode + Thoát chế độ thu gọn - Toggle compact overlay mode + Bật hoặc tắt chế độ thu gọn - Start search in the OmniBar + Tìm kiếm nội dung trong thanh kết hợp - Toggle visibility of hidden items + Ẩn hoặc hiện các tệp bị ẩn - Toggle visibility of dot files + Ẩn hoặc hiện tệp có tên bắt đầu bằng dấu chấm - Toggle visibility of file extensions + Ẩn hoặc hiện phần mở rộng tệp Ẩn hoặc hiện ngăn xem trước để xem nhanh nội dung tệp @@ -2421,37 +2439,37 @@ Ẩn hoặc hiện thanh bên - Copy selected {0, plural, one {item} other {items}} to clipboard + Sao chép {0, plural, other {khoản mục}} đã chọn - Sao chép đường dẫn khoản mục đã chọn vào bộ nhớ tạm + Sao chép đường dẫn thư mục hiện tại - Sao chép đường dẫn khoản mục đã chọn vào bộ nhớ tạm + Sao chép đường dẫn khoản mục đã chọn Sao chép đường dẫn khoản mục đã chọn kèm dấu ngoặc kép - Sao chép đường dẫn khoản mục đã chọn kèm dấu ngoặc kép vào bộ nhớ tạm + Sao chép đường dẫn thư mục hiện tại kèm dấu ngoặc kép - Cut selected {0, plural, one {item} other {items}} to clipboard + Cắt {0, plural, other {khoản mục}} đã chọn - Paste clipboard items to the current folder + Dán khoản mục vào thư mục hiện tại - Paste clipboard items to the current folder as shortcuts + Dán khoản mục vào thư mục hiện tại dưới dạng lối tắt - Paste clipboard items to the selected folder + Dán khoản mục vào thư mục đã chọn - Paste to selected folder + Dán vào thư mục đã chọn - Delete selected {0, plural, one {item} other {items}} + Xóa bỏ {0, plural, other {khoản mục}} đã chọn Tạo thư mục mới @@ -2463,7 +2481,7 @@ Tạo lối tắt mới đến khoản mục bất kỳ - Empty the contents of Recycle Bin + Dọn sạch thùng rác Mở menu "Định dạng ổ lưu trữ" cho khoản mục đã chọn @@ -2493,13 +2511,13 @@ Chọn tất cả khoản mục - Invert selected items + Đảo lựa chọn khoản mục - Clear selected items + Hủy chọn khoản mục - Chọn hoặc bỏ chọn khoản mục đã thao tác gần nhất + Hoán đổi lựa chọn cuối Chia sẻ {0, plural, other {khoản mục}} với người khác @@ -2529,13 +2547,13 @@ Đặt hình ảnh đã chọn làm hình nền ứng dụng - Install font + Cài đặt phông chữ - Install driver + Cài đặt trình điều khiển - Install certificate + Cài đặt chứng chỉ Cài đặt {0, plural, other {phông chữ}} đã chọn @@ -2568,13 +2586,13 @@ Tạo tệp nén zip từ {0, plural, other {khoản mục}} đã chọn - Giải nén khoản mục từ {0, plural, other {tệp nén}} đã chọn vào thư mục bất kỳ + Giải nén {0, plural, other {tệp}} đã chọn vào thư mục bất kỳ - Giải nén khoản mục từ {0, plural, other {tệp nén}} đã chọn vào thư mục hiện tại + Giải nén {0, plural, other {tệp}} đã chọn vào thư mục hiện tại - Giải nén khoản mục từ {0, plural, other {tệp nén}} đã chọn vào thư mục mới + Giải nén {0, plural, other {tệp}} đã chọn vào thư mục mới Xoay trái {0, plural, other {hình ảnh}} đã chọn @@ -2616,7 +2634,7 @@ Chuyển sang bố cục lưới - Chuyển sang bố cục dạng cột + Chuyển sang bố cục cột Tự động lựa chọn bố cục phù hợp @@ -2700,13 +2718,13 @@ Chuyển đổi hướng sắp xếp nhóm - Mở một thẻ mới + Mở thẻ mới - Navigate backward + Điều hướng lùi về - Navigate forward + Điều hướng tiến lên Điều hướng về thư mục nguồn @@ -2739,7 +2757,7 @@ Đóng tất cả các thẻ bao gồm thẻ hiện tại - Reopen recently closed tab + Mở lại thẻ đã đóng gần đây Chuyển đến thẻ trước đó @@ -2751,16 +2769,16 @@ Đóng thẻ hiện tại - Close the active pane + Đóng ngăn hiện hoạt Chuyển đến ngăn còn lại - Switch focus to the other pane + Đặt tiêu điểm vào ngăn còn lại - Bật/Tắt thanh bên + Bật tắt thanh bên Alt @@ -2965,13 +2983,13 @@ Chưa gắn nhãn - Previous tab + Thẻ trước đó - Next tab + Thẻ tiếp theo - Close tab + Đóng thẻ Chỉnh sửa đường dẫn @@ -3001,7 +3019,7 @@ Hiện hộp kiểm khi chọn khoản mục - Edit path in the OmniBar + Chỉnh sửa đường dẫn trong thanh kết hợp Tạo khoản mục mới @@ -3016,7 +3034,7 @@ Xóa vĩnh viễn - Delete selected {0, plural, one {item} other {items}} permanently + Xóa vĩnh viễn {0, plural, other {khoản mục}} đã chọn Phát các tệp phương tiện đã chọn @@ -3046,7 +3064,7 @@ Ẩn hoặc hiện đơn vị khi nhóm theo ngày tháng - Ẩn/Hiện đơn vị nhóm + Bật tắt đơn vị nhóm Năm @@ -3166,7 +3184,7 @@ Chạy git fetch - Clone một kho lưu trữ git + Clone kho lưu trữ Git Chạy git pull @@ -3248,7 +3266,7 @@ Mở thư mục trong {0} - Mở đường dẫn hiện tại trong {0} + Mở thư mục hiện tại trong {0} Mở kho lưu trữ trong {0} @@ -3281,7 +3299,7 @@ Khởi tạo kho lưu trữ - Initialize current folder as a git repository + Khởi tạo thư mục hiện tại dưới dạng kho lưu trữ Git Tên kho lưu trữ từ xa @@ -3296,13 +3314,13 @@ Sắp xếp khoản mục theo đường dẫn - Open selected directory in a new pane + Mở thư mục đã chọn trong ngăn mới - Open selected directory in a new tab + Mở thư mục đã chọn trong thẻ mới - Open selected directory in a new window + Mở thư mục đã chọn trong cửa sổ mới Mở tất cả @@ -3327,10 +3345,10 @@ Lệnh '{0}' chưa sẵn sàng để thực thi. - Command Palette + Bảng lệnh - Open Command Palette in the OmniBar + Mở bảng lệnh trong thanh kết hợp Bắt đầu trong: @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - Đã nén {0} mục đến "{1}" + Đã nén {0, plural, other {# khoản mục}} vào "{1}" Shown in a StatusCenter card. - Đã nén {0} mục từ "{1}" đến "{2}" + Đã nén {0, plural, other {# khoản mục}} từ "{1}" vào "{2}" Shown in a StatusCenter card. - Đã xảy ra lỗi khi nén {0} mục đến "{1}" + Đã xảy ra lỗi khi nén {0, plural, other {# khoản mục}} vào "{1}" Shown in a StatusCenter card. - Không thể nén {0} mục từ "{1}" đến "{2}" + Không thể nén {0, plural, other {# khoản mục}} từ "{1}" vào "{2}" Shown in a StatusCenter card. - Đang nén {0} mục đến "{1}" + Đang nén {0, plural, other {# khoản mục}} vào "{1}" Shown in a StatusCenter card. - Đang nén {0} mục từ "{1}" đến "{2}" + Đang nén {0, plural, other {# khoản mục}} từ "{1}" vào "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - Đã hủy cài đặt {0} phông chữ từ "{1}" + Đã hủy cài đặt {0, plural, other {# phông chữ}} từ "{1}" Shown in a StatusCenter card. - Đã cài đặt {0} phông chữ + Đã cài đặt {0, plural, other {# phông chữ}} Shown in a StatusCenter card. - Đã cài đặt {0} phông chữ từ "{1}" + Đã cài đặt {0, plural, other {# phông chữ}} từ "{1}" Shown in a StatusCenter card. - Đã xảy ra lỗi khi cài đặt {0} phông chữ + Đã xảy ra lỗi khi cài đặt {0, plural, other {# phông chữ}} Shown in a StatusCenter card. - Không thể cài đặt {0} phông chữ từ "{1}" + Không thể cài đặt {0, plural, other {# phông chữ}} từ "{1}" Shown in a StatusCenter card. - Đang cài đặt {0} phông chữ + Đang cài đặt {0, plural, other {# phông chữ}} Shown in a StatusCenter card. - Đang cài đặt {0} phông chữ từ "{1}" + Đang cài đặt {0, plural, other {# phông chữ}} từ "{1}" Shown in a StatusCenter card. - Đã hủy sao chép {0} mục đến "{1}" + Đã hủy sao chép {0, plural, other {# khoản mục}} đến "{1}" Shown in a StatusCenter card. - Đã hủy sao chép {0} mục từ "{1}" đến "{2}" + Đã hủy sao chép {0, plural, other {# khoản mục}} từ "{1}" đến "{2}" Shown in a StatusCenter card. - Đã sao chép {0} mục đến "{1}" + Đã sao chép {0, plural, other {# khoản mục}} đến "{1}" Shown in a StatusCenter card. - Đã sao chép {0} mục từ "{1}" đến "{2}" + Đã sao chép {0, plural, other {# khoản mục}} từ "{1}" đến "{2}" Shown in a StatusCenter card. - Đã xảy ra lỗi khi sao chép {0} mục đến "{1}" + Đã xảy ra lỗi khi sao chép {0, plural, other {# khoản mục}} đến "{1}" Shown in a StatusCenter card. - Không thể sao chép {0} mục từ "{1}" đến "{2}" + Không thể sao chép {0, plural, other {# khoản mục}} từ "{1}" đến "{2}" Shown in a StatusCenter card. - Đang sao chép {0} mục đến "{1}" + Đang sao chép {0, plural, other {# khoản mục}} đến "{1}" Shown in a StatusCenter card. - Đang sao chép {0} mục từ "{1}" đến "{2}" + Đang sao chép {0, plural, other {# khoản mục}} từ "{1}" đến "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - Đã hủy xóa {0} mục khỏi "{1}" + Đã hủy xóa {0, plural, other {# khoản mục}} khỏi "{1}" Shown in a StatusCenter card. - Đã xóa {0} mục khỏi "{1}" + Đã xóa {0, plural, other {# khoản mục}} khỏi "{1}" Shown in a StatusCenter card. - Đã xảy ra lỗi khi xóa {0} mục khỏi "{1}" + Đã xảy ra lỗi khi xóa {0, plural, other {# khoản mục}} khỏi "{1}" Shown in a StatusCenter card. - Không thể xóa {0} mục khỏi "{1}" + Không thể xóa {0, plural, other {# khoản mục}} khỏi "{1}" Shown in a StatusCenter card. - Đang xóa {0} mục khỏi "{1}" + Đang xóa {0, plural, other {# khoản mục}} khỏi "{1}" Shown in a StatusCenter card. - Đã hủy di chuyển {0} mục đến "{1}" + Đã hủy di chuyển {0, plural, other {# khoản mục}} đến "{1}" Shown in a StatusCenter card. - Đã hủy di chuyển {0} mục từ "{1}" đến "{2}" + Đã hủy di chuyển {0, plural, other {# khoản mục}} từ "{1}" đến "{2}" Shown in a StatusCenter card. - Đã di chuyển {0} mục đến "{1}" + Đã di chuyển {0, plural, other {# khoản mục}} đến "{1}" Shown in a StatusCenter card. - Đã di chuyển {0} mục từ "{1}" đến "{2}" + Đã di chuyển {0, plural, other {# khoản mục}} từ "{1}" đến "{2}" Shown in a StatusCenter card. - Đang di chuyển {0} mục đến "{1}" + Đang di chuyển {0, plural, other {# khoản mục}} đến "{1}" Shown in a StatusCenter card. - Đang thực hiện di chuyển {0} mục từ "{1}" đến "{2}" + Đang di chuyển {0, plural, other {# khoản mục}} từ "{1}" đến "{2}" Shown in a StatusCenter card. - Đã xảy ra lỗi khi di chuyển {0} mục đến "{1}" + Đã xảy ra lỗi khi di chuyển {0, plural, other {# khoản mục}} đến "{1}" Shown in a StatusCenter card. - Không thể di chuyển {0} mục từ "{1}" đến "{2}" + Không thể di chuyển {0, plural, other {# khoản mục}} từ "{1}" đến "{2}" Shown in a StatusCenter card. @@ -3746,7 +3764,7 @@ Đã xảy ra lỗi khi gắn nhãn - Giải nén {0, plural, other {tệp}} đã chọn vào thư mục hiện tại nếu tệp chỉ chứa một khoản mục, hoặc vào thư mục mới nếu tệp chứa nhiều khoản mục + Giải nén {0, plural, other {tệp}} tại đây nếu chỉ chứa một khoản mục, hoặc vào thư mục mới nếu chứa nhiều khoản mục Giải nén tại đây (Thông minh) @@ -3755,7 +3773,7 @@ Sắp xếp tệp chung với thư mục - Sort files and folders in the same list + Sắp xếp tệp và thư mục chung với nhau Sắp xếp tệp lên đầu @@ -3882,16 +3900,16 @@ Khôi phục mặc định - Chọn một tác vụ + Chọn tác vụ Bạn có chắc chắn muốn khôi phục tổ hợp phím mặc định không? Bạn sẽ không thể hoàn tác sau khi tiếp tục. - Tổ hợp phím này đã được sử dụng, vui lòng chọn một tổ hợp phím khác để tiếp tục. + Tổ hợp phím này đã được sử dụng, vui lòng chọn tổ hợp khác để tiếp tục. - Không thể sử dụng tổ hợp phím này, vui lòng chọn một tổ hợp phím khác. + Không thể sử dụng tổ hợp phím này, vui lòng chọn tổ hợp khác. Tùy chỉnh @@ -4016,16 +4034,16 @@ Menu tác vụ - Vertical pane + Ngăn dọc - Add vertical pane + Thêm ngăn theo chiều dọc - Horizontal pane + Ngăn ngang - Add horizontal pane + Thêm ngăn theo chiều ngang Bố trí dọc @@ -4066,9 +4084,6 @@ Điều hướng về trang chủ - - Hiện nút trang chủ trên thanh địa chỉ - Thanh công cụ @@ -4103,7 +4118,7 @@ Luồng dữ liệu phụ hiện đang ẩn - Bạn có muốn hiển thị luồng dữ liệu phụ không? Để sửa đổi cài đặt này, hãy mở phần Tệp & thư mục trong Cài đặt ứng dụng. + Bạn có muốn hiển thị luồng dữ liệu phụ không? Để sửa đổi cài đặt này, hãy mở phần Tệp & thư mục trong giao diện cài đặt. Quản lý nhãn @@ -4118,13 +4133,13 @@ Luôn đặt tiêu điểm vào thẻ mới - Toggle shelf pane + Bật tắt ngăn tạm - Toggle the visibility of the shelf pane + Ẩn hoặc hiện ngăn tạm - Hiện nút ẩn/hiện ngăn tạm trên thanh địa chỉ + Hiện nút ẩn hoặc hiện ngăn tạm trên thanh địa chỉ Ngăn tạm @@ -4208,9 +4223,6 @@ Thập phân - - Bật thanh đường dẫn - Bạn có thể thêm phân mục vào thanh bên bằng cách nhấp chuột phải rồi chọn vào mục mình muốn thêm @@ -4226,4 +4238,42 @@ Tìm kiếm tệp và thư mục... + + Trong khi thực hiện thao tác tệp + + + Hiện nút trung tâm trạng thái + + + Vòng tiến trình trong trung tâm trạng thái + Screen reader name for the status center progress ring + + + Tệp biểu tượng + This is the friendly name for a variety of different icon files. + + + Hiện nút thả đường dẫn đã ẩn đi + + + Hiện thư mục trong {0} + + + Hiện thư mục trong Trang chủ + + + Không có lệnh nào chứa {0} + + + Xem thêm + + + Lọc theo + + + Tên tệp + + + Hiện tùy chọn mở thư mục trong Windows Terminal + diff --git a/src/Files.App/Strings/zh-Hans/Resources.resw b/src/Files.App/Strings/zh-Hans/Resources.resw index 0e7caa966d3f..1cbcea7ce273 100644 --- a/src/Files.App/Strings/zh-Hans/Resources.resw +++ b/src/Files.App/Strings/zh-Hans/Resources.resw @@ -124,7 +124,7 @@ 复制路径 - Copy item path + 复制项目路径 复制路径(带引号) @@ -166,7 +166,7 @@ 跳过 - Select all + 全部选择 反选 @@ -190,7 +190,7 @@ 搜索 - 将在此显示访问过的文件(夹) + 以前访问过的文件和文件夹将显示在此处 移除此项 @@ -214,10 +214,10 @@ 显示已知文件类型的扩展名 - 显示隐藏的文件(夹) + 显示隐藏的文件或文件夹 - Dot files + 显示以英文句点开头的文件 外观 @@ -1089,13 +1089,19 @@ 显示/隐藏信息窗格 - 打开信息窗格以查看详细信息/预览窗格 + 切换详细信息/预览窗格可见性 - Toggle toolbar + 显示/隐藏工具栏 - Toggle visibility of the toolbar + 切换工具栏的可见性 + + + 显示/隐藏筛选顶栏 + + + 切换筛选顶栏可见性 没有预览 @@ -1398,7 +1404,7 @@ {0} 个项目 - Reopen tab + 重新打开标签页 重命名 @@ -1605,7 +1611,7 @@ 用来自该对象的可继承权限条目替换所有子对象权限条目 - Close pane + 关闭窗格 进入精简模式 @@ -2012,11 +2018,23 @@ 行为 - - 评价 Files + + 您好! + + + 喜欢Files吗?请考虑在Microsoft Store中给我们写评价。 + + + 喜欢Files吗?请考虑在Github上支持该项目 - - 看官老爷们,给个好评呗 + + 赞助者 + + + 为我们评分 + + + 忽略 设置为背景 @@ -2220,7 +2238,7 @@ 在此位置创建快捷方式需要管理员权限 - 您要在桌面上创建快捷方式吗? + 要改为在桌面上创建快捷方式吗? 指定的项目名称无效 @@ -2295,7 +2313,7 @@ 右键菜单选项 - File extensions + 文件扩展名 格式化 @@ -2304,13 +2322,13 @@ 帮助 - Full screen + 全屏 确定要删除此标签吗? - Play + 播放 高度 @@ -2370,7 +2388,7 @@ 增加大小 - Sort direction + 排列顺序 无效名称 @@ -2382,37 +2400,37 @@ 视频 - Preview popup + 预览弹窗 开关精简模式 - Open the online help page in your browser + 在你的浏览器中打开在线帮助页面 - Toggle full screen mode + 切换全屏模式 - Enter compact overlay mode + 进入精简模式 - Exit compact overlay mode + 进入精简模式 - Toggle compact overlay mode + 切换精简模式 - Start search in the OmniBar + 在 OmniBar 中开始搜索 - Toggle visibility of hidden items + 切换隐藏的项目的可见性 - Toggle visibility of dot files + 切换以英文句点 (.) 开头的文件的可见性 - Toggle visibility of file extensions + 切换文件扩展名的可见性 切换到预览窗格以预览文件 @@ -2421,37 +2439,37 @@ 切换侧边栏显示 - Copy selected {0, plural, one {item} other {items}} to clipboard + 复制选中的{0, plural, other {项目}} - 复制当前目录的路径到剪贴板 + 复制当前文件夹的路径 - 复制选中项的路径到剪贴板 + 复制选中项目的路径 - 复制选中项的路径(带引号)到剪贴板 + 复制选中项目的路径(带引号) - 复制当前目录的路径(带引号)到剪贴板 + 复制当前目录的路径(带引号) - Cut selected {0, plural, one {item} other {items}} to clipboard + 剪切选中的{0, plural, other {项目}} - Paste clipboard items to the current folder + 将文件粘贴到当前文件夹 - Paste clipboard items to the current folder as shortcuts + 将项目在当前文件夹粘贴为快捷方式 - Paste clipboard items to the selected folder + 将文件粘贴到选中的文件夹 - Paste to selected folder + 粘贴到选中的文件夹 - Delete selected {0, plural, one {item} other {items}} + 删除选中的{0, plural, other {项目}} 创建新文件夹 @@ -2463,7 +2481,7 @@ 创建指向项目的快捷方式 - Empty the contents of Recycle Bin + 清空回收站的内容 打开所选项目的“格式化驱动器”菜单 @@ -2493,10 +2511,10 @@ 选择所有项目 - Invert selected items + 反向选中项目 - Clear selected items + 清除选中项目 切换项目选择 @@ -2529,13 +2547,13 @@ 设置所选图片为此应用程序的背景 - Install font + 安装字体 - Install driver + 安装驱动程序 - Install certificate + 安装证书 安装选中的{0, plural, other {字体}} @@ -2703,10 +2721,10 @@ 打开新标签页 - Navigate backward + 向后导航 - Navigate forward + 向前导航 导航至上一级目录 @@ -2739,7 +2757,7 @@ 关闭所有标签页(包括当前标签页) - Reopen recently closed tab + 打开最近关闭的标签页 移到上一标签页 @@ -2751,13 +2769,13 @@ 关闭当前标签页 - Close the active pane + 关闭活动窗格 切换焦点到其他窗格 - Switch focus to the other pane + 切换焦点到另一窗格 打开/关闭侧边栏 @@ -2965,13 +2983,13 @@ 无标签 - Previous tab + 上一个标签页 - Next tab + 下一个标签页 - Close tab + 关闭标签页 编辑路径 @@ -3001,7 +3019,7 @@ 选择项目时显示复选框 - Edit path in the OmniBar + 在 OmniBar 中编辑路径 创建新项目 @@ -3016,7 +3034,7 @@ 永久删除 - Delete selected {0, plural, one {item} other {items}} permanently + 永久删除选中的{0, plural, other {项目}} 播放选中的媒体文件 @@ -3281,7 +3299,7 @@ 初始化存储库 - Initialize current folder as a git repository + 将当前文件夹初始化为 git 仓库 远程仓库名称 @@ -3296,13 +3314,13 @@ 按路径排序 - Open selected directory in a new pane + 在新窗格中打开选中的目录 - Open selected directory in a new tab + 在新标签页中打开选中的目录 - Open selected directory in a new window + 在新窗口中打开选中的目录 全部打开 @@ -3327,10 +3345,10 @@ 命令“{0}”尚未准备好执行。 - Command Palette + 命令面板 - Open Command Palette in the OmniBar + 在 OmniBar 中打开命令面板 起始位置: @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - 已将 {0} 个项目压缩到“{1}” + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 已将 {0} 个项目从“{1}”压缩到“{2}” + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - 将 {0} 个项目压缩到“{1}”时出错 + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 无法将 {0} 个项目从“{1}”压缩到“{2}” + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - 正在将 {0} 个项目压缩到“{1}” + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 正在将 {0} 个项目从“{1}”压缩到“{2}” + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - 已取消从“{1}”中安装 {0} 个字体 + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - 已安装 {0} 个字体 + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - 已从“{1}”中安装 {0} 个字体 + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - 安装 {0} 个字体时出错 + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - 无法从“{1}”中安装 {0} 个字体 + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - 正在安装 {0} 个字体 + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - 正在从“{1}”中安装 {0} 个字体 + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - 已取消将 {0} 个项目复制到“{1}” + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 已取消将 {0} 个项目从“{1}”复制到“{2}” + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - 已将 {0} 个项目复制到“{1}” + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 已将 {0} 个项目从“{1}”复制到“{2}” + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - 将 {0} 个项目复制到“{1}”时出错 + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 无法将 {0} 个项目从“{1}”复制到“{2}” + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - 正在将 {0} 个项目复制到 {1}" + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 正在将 {0} 个项目从“{1}”复制到“{2}” + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - 已取消从“{1}”中删除 {0} 个项目 + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - 已从“{1}”中删除 {0} 个项目 + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - 从“{1}”中删除 {0} 个项目时出错 + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - 无法从“{1}”中删除 {0} 个项目 + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - 正在从 "{1}" 中删除 {0} 个项目 + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - 已取消将 {0} 个项目移动到“{1}” + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 已取消将 {0} 个项目从“{1}”移动到“{2}” + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - 已将 {0} 个项目移动到“{1}” + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 已将 {0} 个项目从“{1}”移动到“{2}” + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - 正在将 {0} 个项目移动到 {1}" + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 正在将 {0} 个项目从“{1}”移动到“{2}” + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - 将 {0} 个项目移动到“{1}”时出错 + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 无法将 {0} 个项目从“{1}”移动到“{2}” + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3755,7 +3773,7 @@ 将文件和文件夹一同排序 - Sort files and folders in the same list + 将文件和文件夹混合在同一列表中进行排序 先排序文件 @@ -4016,16 +4034,16 @@ 标签操作菜单 - Vertical pane + 垂直窗格 - Add vertical pane + 添加垂直窗格 - Horizontal pane + 水平窗格 - Add horizontal pane + 添加水平窗格 垂直排列 @@ -4066,9 +4084,6 @@ 返回主页 - - 在地址栏中显示主页按钮 - 工具栏 @@ -4118,10 +4133,10 @@ 总是切换到新创建的标签页 - Toggle shelf pane + 显示/隐藏中转站窗格 - Toggle the visibility of the shelf pane + 切换中转站窗格的可见性 在地址栏中显示中转站窗格开关 @@ -4208,22 +4223,57 @@ 十进制 - - 启用 Omnibar - 可以通过右击并选择需要的部分将其添加至侧边栏 - 将文件或文件夹拖动到此处以在不同标签页间交互操作 + 将文件或文件夹拖动到此处,以在不同标签页之间进行操作 - 输入导航到的路径... + 输入要导航到的路径… - 查找功能和命令... + 查找功能和命令… - 搜索文件和文件夹... + 搜索文件和文件夹… + + + 在文件操作进行期间 + + + 显示状态中心按钮 + + + 状态中心进度 + Screen reader name for the status center progress ring + + + 图标文件 + This is the friendly name for a variety of different icon files. + + + 显示被折叠的路径层级导航栏 + + + Show folders in {0} + + + 在主页显示文件夹 + + + 没有包含 {0} 的命令 + + + 查看更多 + + + 筛选 + + + 文件名 + + + Show option to open folders in Windows Terminal diff --git a/src/Files.App/Strings/zh-Hant/Resources.resw b/src/Files.App/Strings/zh-Hant/Resources.resw index f83100617f42..1a66cade2d36 100644 --- a/src/Files.App/Strings/zh-Hant/Resources.resw +++ b/src/Files.App/Strings/zh-Hant/Resources.resw @@ -124,7 +124,7 @@ 複製路徑 - Copy item path + 複製檔案路徑 複製帶引號的路徑 @@ -166,7 +166,7 @@ 略過 - Select all + 選取全部 反選 @@ -217,7 +217,7 @@ 顯示隱藏的檔案和資料夾 - Dot files + 顯示以點開頭的隱藏配置文件(Dotfiles) 外觀 @@ -1089,13 +1089,19 @@ 切換詳細資料視窗 - 開啟資料視窗以查看詳細資料/預覽視窗 + 顯示或隱藏詳細資訊/預覽窗格 - Toggle toolbar + 切換工具列 - Toggle visibility of the toolbar + 顯示或隱藏工具列 + + + Toggle filter header + + + Toggle visibility of the filter header 無法預覽 @@ -1398,7 +1404,7 @@ {0} 個項目 - Reopen tab + 重新開啟已關閉的分頁 重新命名 @@ -1605,7 +1611,7 @@ 覆蓋所有子物件的權限為此父物件的可繼承權限 - Close pane + 關閉活動窗格 進入精簡懸浮模式 @@ -2012,11 +2018,23 @@ 行為 - - 評價這個軟體 + + Hello! + + + 喜歡「Files」嗎?請考慮至 Microsoft Store 留下評論。 + + + Enjoying Files? Please consider supporting the project on GitHub. + + + Sponsor + + + 為我們評分 - - 您想要在商店中評價本軟體嗎? + + 關閉 設為背景 @@ -2079,7 +2097,7 @@ 還原​​所有項目​​ - 是否要復原選取的{0,plural,other{ {0} 個項目}}? + 是否要復原選取的 {0, plural, one {selected item} other {{0} selected items}}? 還原選取項目 @@ -2295,7 +2313,7 @@ 右鍵選單功能 - File extensions + 副檔名 格式化 @@ -2304,13 +2322,13 @@ 幫助 - Full screen + 全螢幕 您確定要刪除這個標籤? - Play + 播放 高度 @@ -2370,7 +2388,7 @@ 放大 - Sort direction + 排序方式 無效名稱 @@ -2382,25 +2400,25 @@ 影片 - Preview popup + 預覽彈出視窗 切換緊湊檢視 - Open the online help page in your browser + 在瀏覽器中開啟說明頁面 - Toggle full screen mode + 切換全螢幕模式 - Enter compact overlay mode + 開啟懸浮模式 - Exit compact overlay mode + 關閉懸浮模式 - Toggle compact overlay mode + 切換懸浮模式 Start search in the OmniBar @@ -2421,37 +2439,37 @@ 切換是否顯示側邊攔 - Copy selected {0, plural, one {item} other {items}} to clipboard + 複製選取的 {0, plural, one {item} other {items}} - 將目前目錄的路徑複製到剪貼簿 + 複製目前目錄的路徑 - 將選取項目的路徑複製到剪貼簿 + 複製選取項目的路徑 - 將選取項目的帶引號路徑複製到剪貼簿 + 複製選定項目的路徑(含引號) - 將目前目錄的帶引號路徑複製到剪貼簿 + 複製目前目錄的路徑(含引號) - Cut selected {0, plural, one {item} other {items}} to clipboard + 剪下選取的 {0, plural, one {item} other {items}} - Paste clipboard items to the current folder + 貼上檔案至目前的資料夾 - Paste clipboard items to the current folder as shortcuts + 貼上檔案捷徑至目前的資料夾 - Paste clipboard items to the selected folder + 貼上檔案至選取的資料夾 - Paste to selected folder + 貼上至選取的資料夾 - Delete selected {0, plural, one {item} other {items}} + 刪除選取的 {0, plural, one {item} other {items}} 新增資料夾 @@ -2463,7 +2481,7 @@ 建立捷徑至任何項目 - Empty the contents of Recycle Bin + 清空回收桶 開啟「格式化磁碟」選單於所選項目 @@ -2493,10 +2511,10 @@ 選擇所有項目 - Invert selected items + 復原選取檔案 - Clear selected items + 清除選取檔案 選取/取消選取所選定的項目 @@ -2529,13 +2547,13 @@ 設成此應用程式背景 - Install font + 安裝字型 - Install driver + 安裝驅動程式 - Install certificate + 安裝憑證 安裝選取的{0,plural,other{字型}} @@ -2568,13 +2586,13 @@ 建立包含「選取的{0,plural,other{項目}}」的zip壓縮檔 - 將所選的 {0, plural, other {壓縮檔}} 中的項目解壓縮到任意資料夾 + Extract selected {0, plural, one {archive} other {archives}} to any folder - 將所選的 {0, plural, other {壓縮檔}} 中的項目解壓縮到目前資料夾 + Extract selected {0, plural, one {archive} other {archives}} to the current folder - 將所選的 {0, plural, other {壓縮檔}} 中的項目解壓縮到新資料夾 + Extract selected {0, plural, one {archive} other {archives}} to new folder 向左旋轉已選取{0, plural, other{影像}} @@ -2703,10 +2721,10 @@ 開啟新索引標籤頁面 - Navigate backward + 下一頁 - Navigate forward + 上一頁 上層目錄 @@ -2739,7 +2757,7 @@ 關閉所有分頁,也包含目前的分頁 - Reopen recently closed tab + 重新開啟已關閉的分頁 移至上一個索引標籤 @@ -2965,13 +2983,13 @@ 無標記 - Previous tab + 上一分頁 - Next tab + 下一分頁 - Close tab + 關閉分頁 編輯路徑 @@ -3001,7 +3019,7 @@ 選擇項目時顯示核取方塊 - Edit path in the OmniBar + 在 OmniBar 中編輯路徑 新增項目 @@ -3016,7 +3034,7 @@ 永久刪除 - Delete selected {0, plural, one {item} other {items}} permanently + 永久刪除選取的 {0, plural, one {item} other {items}} 播放所選取的媒體檔 @@ -3296,13 +3314,13 @@ 按路徑排序 - Open selected directory in a new pane + 在窗格中開啟選取的目錄 - Open selected directory in a new tab + 在分頁中開啟選取的目錄 - Open selected directory in a new window + 在新視窗中開啟選取的目錄 開啟所有 @@ -3472,27 +3490,27 @@ Shown in a StatusCenter card. - 已成功將 {0} 個項目壓縮到「{1}」 + Compressed {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 已成功將 {0} 個項目從「{1}」壓縮到「{2}」 + Compressed {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - 壓縮 {0} 個項目到「{1}」時發生錯誤 + Error compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 無法將 {0} 個項目從「{1}」壓縮到「{2}」 + Failed to compress {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - 正在將 {0} 個項目壓縮到「{1}」 + Compressing {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 正在將 {0} 個項目從「{1}」壓縮到「{2}」 + Compressing {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3532,63 +3550,63 @@ Shown in a StatusCenter card. - 已取消從「{1}」刪除 {0} 款字型 + Canceled installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - 已安裝 {0} 款字型 + Installed {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - 安裝 {0} 款字型時發生錯誤 + Installed {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - 安裝 {0} 個字型時發生錯誤 + Error installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - 無法從「{1}」安裝 {0} 款字型 + Failed to install {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - 正在安裝 {0} 款字型 + Installing {0, plural, one {# font} other {# fonts}} Shown in a StatusCenter card. - 正在從「{1}」安裝 {0} 款字型 + Installing {0, plural, one {# font} other {# fonts}} from "{1}" Shown in a StatusCenter card. - 已取消將 {0} 個項目複製到「{1}」 + Canceled copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 已取消將 {0} 個項目從「{1}」複製到「{2}」 + Canceled copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - 已成功將 {0} 個項目複製到「{1}」 + Copied {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 已成功將 {0} 個項目從「{1}」複製到「{2}」 + Copied {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - 將一個項目"{0}"複製到"{1}"時發生錯誤 + Error copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 無法將 {0} 個項目從「{1}」複製到「{2}」 + Failed to copy {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - 正在將 {0} 個項目複製到「{1}」 + Copying {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 正在將 {0} 個項目從「{1}」複製到「{2}」 + Copying {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3624,55 +3642,55 @@ Shown in a StatusCenter card. - 已取消將 {0} 個項目從「{1}」刪除 + Canceled deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - 已成功將 {0} 個項目從「{1}」刪除 + Deleted {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - 從「{1}」中刪除 {0} 個項目時發生錯誤 + Error deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - 無法將 {0} 個項目從「{1}」刪除 + Failed to delete {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - 正在將 {0} 個項目從「{1}」刪除 + Deleting {0, plural, one {# item} other {# items}} from "{1}" Shown in a StatusCenter card. - 已取消將 {0} 個項目移動到「{1}」 + Canceled moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 已取消將 {0} 個項目從「{1}」移動到「{2}」 + Canceled moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - 已成功將 {0} 個項目移動到「{1}」 + Moved {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 已成功將 {0} 個項目從「{1}」移動到「{2}」 + Moved {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - 正在將 {0} 個項目移動到「{1}」 + Moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 正在將 {0} 個項目從「{1}」移動到「{2}」 + Moving {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. - 將 {0} 個項目移動到 {1} 時發生錯誤 + Error moving {0, plural, one {# item} other {# items}} to "{1}" Shown in a StatusCenter card. - 無法將 {0} 個項目從 {1} 移至 {2} + Failed to move {0, plural, one {# item} other {# items}} from "{1}" to "{2}" Shown in a StatusCenter card. @@ -3746,9 +3764,7 @@ 套用此標籤時發生錯誤 - 從所選的 {0, plural, other {壓縮檔}} 解壓縮項目: -若為單一項目壓縮檔,則解壓縮到目前資料夾; -若為多項目壓縮檔,則解壓縮到新資料夾 + Extract selected {0, plural, one {archive} other {archives}} here for single-item or to new folder for multi-item 解壓縮至此(智慧) @@ -4068,9 +4084,6 @@ 前往首頁 - - 在路徑列中顯示首頁鍵 - 工具列 @@ -4210,9 +4223,6 @@ 十進位 - - 啟用萬用列(Omnibar) - 你可以透過右鍵點擊並選取想要新增的區段,來將區段加入側邊欄 @@ -4220,12 +4230,50 @@ 將檔案或資料夾拖曳到這裡,以在不同分頁間互動 - 請輸入路徑... + 請輸入路徑…… - 搜尋功能與指令... + 搜尋功能與指令…… 搜尋資料夾和檔案…… + + During file operations + + + Show status center button + + + Status center progress ring + Screen reader name for the status center progress ring + + + Icon files + This is the friendly name for a variety of different icon files. + + + Show collapsed path breadcrumbs + + + Show folders in {0} + + + Show folders in Home + + + There are no commands containing {0} + + + See more + + + Filtering for + + + Filename + + + Show option to open folders in Windows Terminal + diff --git a/src/Files.App/UserControls/ComboBoxEx/ComboBoxEx.cs b/src/Files.App/UserControls/ComboBoxEx/ComboBoxEx.cs index e1ceb930139a..fa63796ca6bd 100644 --- a/src/Files.App/UserControls/ComboBoxEx/ComboBoxEx.cs +++ b/src/Files.App/UserControls/ComboBoxEx/ComboBoxEx.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Windows.Foundation; diff --git a/src/Files.App/UserControls/FileIcon.xaml.cs b/src/Files.App/UserControls/FileIcon.xaml.cs index 028ff819c309..f772e4cba136 100644 --- a/src/Files.App/UserControls/FileIcon.xaml.cs +++ b/src/Files.App/UserControls/FileIcon.xaml.cs @@ -1,13 +1,10 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.ViewModels; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Media.Imaging; -using System; using System.Runtime.InteropServices.WindowsRuntime; -using System.Threading.Tasks; using Windows.Storage.Streams; namespace Files.App.UserControls diff --git a/src/Files.App/UserControls/FilePreviews/CodePreview.xaml.cs b/src/Files.App/UserControls/FilePreviews/CodePreview.xaml.cs index 70baa500b48f..5eda9aa0495e 100644 --- a/src/Files.App/UserControls/FilePreviews/CodePreview.xaml.cs +++ b/src/Files.App/UserControls/FilePreviews/CodePreview.xaml.cs @@ -1,7 +1,6 @@ using ColorCode; using Files.App.ViewModels.Previews; using Microsoft.UI.Xaml.Controls; -using System; // The User Control item template is documented at https://go.microsoft.com/fwlink/?LinkId=234236 diff --git a/src/Files.App/UserControls/FilePreviews/MarkdownPreview.xaml.cs b/src/Files.App/UserControls/FilePreviews/MarkdownPreview.xaml.cs index e4bcf3cffba1..d088c598aa0c 100644 --- a/src/Files.App/UserControls/FilePreviews/MarkdownPreview.xaml.cs +++ b/src/Files.App/UserControls/FilePreviews/MarkdownPreview.xaml.cs @@ -1,9 +1,11 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using CommunityToolkit.WinUI.Controls; +using CommunityToolkit.Labs.WinUI.MarkdownTextBlock; using Files.App.ViewModels.Previews; +using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; +using Microsoft.UI.Xaml.Media; using Windows.System; namespace Files.App.UserControls.FilePreviews @@ -16,6 +18,10 @@ public MarkdownPreview(MarkdownPreviewViewModel model) { ViewModel = model; InitializeComponent(); + + // Workaround for https://github.com/CommunityToolkit/Labs-Windows/issues/611 + PreviewMarkdownTextBlock.Config = MarkdownConfig.Default; + PreviewMarkdownTextBlock.Config.Themes.HeadingForeground = (Brush)Application.Current.Resources["TextControlForeground"]; } private async void PreviewMarkdownTextBlock_OnLinkClicked(object sender, CommunityToolkit.Labs.WinUI.MarkdownTextBlock.LinkClickedEventArgs e) diff --git a/src/Files.App/UserControls/FilePreviews/MediaPreview.xaml.cs b/src/Files.App/UserControls/FilePreviews/MediaPreview.xaml.cs index 23fb5fff1098..a71c7d30baa1 100644 --- a/src/Files.App/UserControls/FilePreviews/MediaPreview.xaml.cs +++ b/src/Files.App/UserControls/FilePreviews/MediaPreview.xaml.cs @@ -36,8 +36,11 @@ private void MediaPreview_Unloaded(object sender, RoutedEventArgs e) PlayerContext.Source = null; PlayerContext.Loaded -= PlayerContext_Loaded; - Unloaded -= MediaPreview_Unloaded; - } + Unloaded -= MediaPreview_Unloaded; + + PlayerContext.MediaPlayer.VolumeChanged -= MediaPlayer_VolumeChanged; + ViewModel.TogglePlaybackRequested -= TogglePlaybackRequestInvoked; + } private void MediaPlayer_VolumeChanged(MediaPlayer sender, object args) { @@ -47,7 +50,7 @@ private void MediaPlayer_VolumeChanged(MediaPlayer sender, object args) } } - private void TogglePlaybackRequestInvoked(object sender, EventArgs e) + private void TogglePlaybackRequestInvoked(object? sender, EventArgs e) { if (PlayerContext.MediaPlayer.PlaybackSession.PlaybackState is not MediaPlaybackState.Playing) { diff --git a/src/Files.App/UserControls/KeyboardShortcut/KeyboardShortcut.Properties.cs b/src/Files.App/UserControls/KeyboardShortcut/KeyboardShortcut.Properties.cs index 009d19496a62..8ebf9dfa35c8 100644 --- a/src/Files.App/UserControls/KeyboardShortcut/KeyboardShortcut.Properties.cs +++ b/src/Files.App/UserControls/KeyboardShortcut/KeyboardShortcut.Properties.cs @@ -2,7 +2,6 @@ // Licensed under the MIT License. using Microsoft.UI.Xaml; -using Microsoft.UI.Xaml.Controls; namespace Files.App.UserControls.KeyboardShortcut { diff --git a/src/Files.App/UserControls/KeyboardShortcut/KeyboardShortcut.cs b/src/Files.App/UserControls/KeyboardShortcut/KeyboardShortcut.cs index 05502732f360..61711bed0532 100644 --- a/src/Files.App/UserControls/KeyboardShortcut/KeyboardShortcut.cs +++ b/src/Files.App/UserControls/KeyboardShortcut/KeyboardShortcut.cs @@ -50,7 +50,7 @@ private async void OnHotKeysChanged() items.Add(new() { Text = ",", ItemType = KeyboardShortcutItemKind.TextOnly, Size = Size }); } - switch(item.Key, item.Modifier) + switch (item.Key, item.Modifier) { // No keys or modifiers specified case (Keys.None, KeyModifiers.None): diff --git a/src/Files.App/UserControls/KeyboardShortcut/KeyboardShortcutItem.Properties.cs b/src/Files.App/UserControls/KeyboardShortcut/KeyboardShortcutItem.Properties.cs index 2b1f256afd48..ee0dd3f4eae3 100644 --- a/src/Files.App/UserControls/KeyboardShortcut/KeyboardShortcutItem.Properties.cs +++ b/src/Files.App/UserControls/KeyboardShortcut/KeyboardShortcutItem.Properties.cs @@ -2,7 +2,6 @@ // Licensed under the MIT License. using Microsoft.UI.Xaml; -using Microsoft.UI.Xaml.Controls; namespace Files.App.UserControls.KeyboardShortcut { diff --git a/src/Files.App/UserControls/Menus/MenuFlyoutItemWithThemedIcon.xaml.cs b/src/Files.App/UserControls/Menus/MenuFlyoutItemWithThemedIcon.xaml.cs index ca540a680608..834a77f6a0d1 100644 --- a/src/Files.App/UserControls/Menus/MenuFlyoutItemWithThemedIcon.xaml.cs +++ b/src/Files.App/UserControls/Menus/MenuFlyoutItemWithThemedIcon.xaml.cs @@ -8,7 +8,7 @@ namespace Files.App.UserControls { - public sealed partial class MenuFlyoutItemWithThemedIcon: MenuFlyoutItem + public sealed partial class MenuFlyoutItemWithThemedIcon : MenuFlyoutItem { public Style ThemedIconStyle { diff --git a/src/Files.App/UserControls/Menus/ToggleMenuFlyoutItemWithThemedIcon.xaml.cs b/src/Files.App/UserControls/Menus/ToggleMenuFlyoutItemWithThemedIcon.xaml.cs index b10adda4a492..88f0cd7d474b 100644 --- a/src/Files.App/UserControls/Menus/ToggleMenuFlyoutItemWithThemedIcon.xaml.cs +++ b/src/Files.App/UserControls/Menus/ToggleMenuFlyoutItemWithThemedIcon.xaml.cs @@ -8,7 +8,7 @@ namespace Files.App.UserControls { - public sealed partial class ToggleMenuFlyoutItemWithThemedIcon: ToggleMenuFlyoutItem + public sealed partial class ToggleMenuFlyoutItemWithThemedIcon : ToggleMenuFlyoutItem { public Style ThemedIconStyle { diff --git a/src/Files.App/UserControls/NavigationToolbar.xaml b/src/Files.App/UserControls/NavigationToolbar.xaml index cd42bde08434..227ecf2e1a6c 100644 --- a/src/Files.App/UserControls/NavigationToolbar.xaml +++ b/src/Files.App/UserControls/NavigationToolbar.xaml @@ -30,6 +30,10 @@ + @@ -136,6 +140,34 @@ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -332,18 +238,21 @@ IconOnActive="{controls:ThemedIconMarkup Style={StaticResource App.ThemedIcons.Omnibar.Path}, IsFilled=True}" IconOnInactive="{controls:ThemedIconMarkup Style={StaticResource App.ThemedIcons.Omnibar.Path}, IconType=Outline}" IsDefault="True" + ItemsSource="{x:Bind ViewModel.PathModeSuggestionItems, Mode=OneWay}" ModeName="{x:Bind Commands.EditPath.LabelWithHotKey, Mode=OneWay}" PlaceholderText="{helpers:ResourceString Name=OmnibarPathModeTextPlaceholder}" - SuggestionItemsSource="{x:Bind ViewModel.PathModeSuggestionItems, Mode=OneWay}" Text="{x:Bind ViewModel.PathText, Mode=TwoWay}" TextMemberPath="Path"> + ItemsSource="{x:Bind ViewModel.PathComponents, Mode=OneWay}" + RootItemChevronToolTip="{helpers:ResourceString Name=BreadcrumbBarRootChevronButtonToolTip}" + RootItemToolTip="{helpers:ResourceString Name=Home}"> - + - + - + - + - + - + - + + HotKeys="{x:Bind HotKeys, Mode=OneWay}" /> - + + PlaceholderText="{helpers:ResourceString Name=OmnibarSearchModeTextPlaceholder}" + Text="{x:Bind ViewModel.OmnibarSearchModeText, Mode=TwoWay}" + UpdateTextOnSelect="False"> + + + + + + + + + + + + + + + + + + @@ -432,19 +390,6 @@ Grid.Column="2" Orientation="Horizontal" Spacing="4"> - - - - + + - + + + + + + + - - + - + - - - + + + + diff --git a/src/Files.App/UserControls/NavigationToolbar.xaml.cs b/src/Files.App/UserControls/NavigationToolbar.xaml.cs index 1a42b1d0c61f..dd2f3aa05576 100644 --- a/src/Files.App/UserControls/NavigationToolbar.xaml.cs +++ b/src/Files.App/UserControls/NavigationToolbar.xaml.cs @@ -6,11 +6,12 @@ using Microsoft.UI.Input; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; -using Microsoft.UI.Xaml.Controls.Primitives; using Microsoft.UI.Xaml.Input; using Microsoft.UI.Xaml.Media; using Microsoft.UI.Xaml.Navigation; +using Windows.AI.Actions.Hosting; using Windows.System; +using Windows.UI.Core; namespace Files.App.UserControls { @@ -22,6 +23,7 @@ public sealed partial class NavigationToolbar : UserControl private readonly MainPageViewModel MainPageViewModel = Ioc.Default.GetRequiredService(); private readonly ICommandManager Commands = Ioc.Default.GetRequiredService(); private readonly StatusCenterViewModel OngoingTasksViewModel = Ioc.Default.GetRequiredService(); + private readonly IContentPageContext ContentPageContext = Ioc.Default.GetRequiredService(); // Properties @@ -34,9 +36,6 @@ public sealed partial class NavigationToolbar : UserControl [GeneratedDependencyProperty] public partial bool ShowSettingsButton { get; set; } - [GeneratedDependencyProperty] - public partial bool ShowSearchBox { get; set; } - [GeneratedDependencyProperty] public partial NavigationToolbarViewModel ViewModel { get; set; } @@ -56,80 +55,6 @@ private void NavToolbar_Loading(FrameworkElement _, object e) OngoingTasksViewModel.NewItemAdded += OngoingTasksActions_ProgressBannerPosted; } - private void VisiblePath_Loaded(object _, RoutedEventArgs e) - { - // AutoSuggestBox won't receive focus unless it's fully loaded - VisiblePath.Focus(FocusState.Programmatic); - - if (DependencyObjectHelpers.FindChild(VisiblePath) is TextBox textBox) - { - if (textBox.Text.StartsWith(">")) - textBox.Select(1, textBox.Text.Length - 1); - else - textBox.SelectAll(); - } - } - - private void ManualPathEntryItem_Click(object _, PointerRoutedEventArgs e) - { - if (e.Pointer.PointerDeviceType is PointerDeviceType.Mouse) - { - var ptrPt = e.GetCurrentPoint(NavToolbar); - if (ptrPt.Properties.IsMiddleButtonPressed) - return; - } - ViewModel.IsEditModeEnabled = true; - } - - private async void VisiblePath_KeyDown(object _, KeyRoutedEventArgs e) - { - if (e.Key is VirtualKey.Escape) - ViewModel.IsEditModeEnabled = false; - - if (e.Key is VirtualKey.Tab) - { - ViewModel.IsEditModeEnabled = false; - // Delay to ensure clickable path is ready to be focused - await Task.Delay(10); - ClickablePath.Focus(FocusState.Keyboard); - } - } - private void VisiblePath_LostFocus(object _, RoutedEventArgs e) - { - if (App.AppModel.IsMainWindowClosed) - return; - - var element = Microsoft.UI.Xaml.Input.FocusManager.GetFocusedElement(MainWindow.Instance.Content.XamlRoot); - if (element is FlyoutBase or AppBarButton or Popup) - return; - - if (element is not Control control) - { - if (ViewModel.IsEditModeEnabled) - ViewModel.IsEditModeEnabled = false; - return; - } - - if (control.FocusState is not FocusState.Programmatic and not FocusState.Keyboard) - ViewModel.IsEditModeEnabled = false; - else if (ViewModel.IsEditModeEnabled) - VisiblePath.Focus(FocusState.Programmatic); - } - - private void SearchRegion_OnGotFocus(object sender, RoutedEventArgs e) => ViewModel.SearchRegion_GotFocus(sender, e); - private void SearchRegion_LostFocus(object sender, RoutedEventArgs e) => ViewModel.SearchRegion_LostFocus(sender, e); - private void SearchRegion_AccessKeyInvoked(UIElement sender, AccessKeyInvokedEventArgs args) - { - // Suppress access key invocation if any dialog is open - if (VisualTreeHelper.GetOpenPopupsForXamlRoot(MainWindow.Instance.Content.XamlRoot).Any()) - args.Handled = true; - else - sender.Focus(FocusState.Keyboard); - } - - private void VisiblePath_QuerySubmitted(AutoSuggestBox sender, AutoSuggestBoxQuerySubmittedEventArgs args) - => ViewModel.VisiblePath_QuerySubmitted(sender, args); - private void OngoingTasksActions_ProgressBannerPosted(object? _, StatusCenterItem e) { if (OngoingTasksViewModel is not null) @@ -244,41 +169,81 @@ void HistoryItemClicked(ToolbarHistoryItemModel? itemModel) } } - private void ClickablePath_GettingFocus(UIElement sender, GettingFocusEventArgs args) - { - if (args.InputDevice != FocusInputDeviceKind.Keyboard) - return; - - var previousControl = args.OldFocusedElement as FrameworkElement; - if (previousControl?.Name == nameof(HomeButton) || previousControl?.Name == nameof(Refresh)) - ViewModel.IsEditModeEnabled = true; - } - private async void Omnibar_QuerySubmitted(Omnibar sender, OmnibarQuerySubmittedEventArgs args) { - if (Omnibar.CurrentSelectedMode == OmnibarPathMode) + var mode = Omnibar.CurrentSelectedMode; + + // Path mode + if (mode == OmnibarPathMode) { await ViewModel.HandleItemNavigationAsync(args.Text); + (MainPageViewModel.SelectedTabItem?.TabItemContent as Control)?.Focus(FocusState.Programmatic); + return; } - else if (Omnibar.CurrentSelectedMode == OmnibarCommandPaletteMode) + + // Command palette mode + else if (mode == OmnibarCommandPaletteMode) { - if (args.Item is not NavigationBarSuggestionItem item || item.Text is not { } commandText) - return; + var item = args.Item as NavigationBarSuggestionItem; + + // Try invoking built-in command + foreach (var command in Commands) + { + if (command == Commands.None) + continue; + + if (!string.Equals(command.Description, item?.Text, StringComparison.OrdinalIgnoreCase) && + !string.Equals(command.Description, args.Text, StringComparison.OrdinalIgnoreCase)) + continue; - var command = Commands[commandText]; - if (command == Commands.None) - await DialogDisplayHelper.ShowDialogAsync(Strings.InvalidCommand.GetLocalizedResource(), - string.Format(Strings.InvalidCommandContent.GetLocalizedResource(), commandText)); - else if (!command.IsExecutable) - await DialogDisplayHelper.ShowDialogAsync(Strings.CommandNotExecutable.GetLocalizedResource(), - string.Format(Strings.CommandNotExecutableContent.GetLocalizedResource(), command.Code)); - else await command.ExecuteAsync(); + (MainPageViewModel.SelectedTabItem?.TabItemContent as Control)?.Focus(FocusState.Programmatic); + return; + } + + // Try invoking Windows app action + if (ActionManager.Instance.ActionRuntime is not null && item?.ActionInstance is ActionInstance actionInstance) + { + // Workaround for https://github.com/microsoft/App-Actions-On-Windows-Samples/issues/7 + var action = ActionManager.Instance.ActionRuntime.ActionCatalog.GetAllActions() + .FirstOrDefault(a => a.Id == actionInstance.Context.ActionId); - ViewModel.OmnibarCurrentSelectedMode = OmnibarPathMode; + if (action is not null) + { + var overload = action.GetOverloads().FirstOrDefault(); + await overload?.InvokeAsync(actionInstance.Context); + } + + (MainPageViewModel.SelectedTabItem?.TabItemContent as Control)?.Focus(FocusState.Programmatic); + return; + } + + await DialogDisplayHelper.ShowDialogAsync(Strings.InvalidCommand.GetLocalizedResource(), + string.Format(Strings.InvalidCommandContent.GetLocalizedResource(), args.Text)); + + (MainPageViewModel.SelectedTabItem?.TabItemContent as Control)?.Focus(FocusState.Programmatic); + return; } - else if (Omnibar.CurrentSelectedMode == OmnibarSearchMode) + + // Search mode + else if (mode == OmnibarSearchMode) { + var shellPage = ContentPageContext.ShellPage; + + if (args.Item is SuggestionModel item && !string.IsNullOrWhiteSpace(item.ItemPath) && shellPage is not null) + await NavigationHelpers.OpenPath(item.ItemPath, shellPage); + else + { + var searchQuery = args.Item is SuggestionModel x && !string.IsNullOrWhiteSpace(x.Name) + ? x.Name + : args.Text; + + shellPage?.SubmitSearch(searchQuery); // use the resolved shellPage for consistency + ViewModel.SaveSearchQueryToList(searchQuery); + } + + (MainPageViewModel.SelectedTabItem?.TabItemContent as Control)?.Focus(FocusState.Programmatic); + return; } } @@ -289,14 +254,15 @@ private async void Omnibar_TextChanged(Omnibar sender, OmnibarTextChangedEventAr if (Omnibar.CurrentSelectedMode == OmnibarPathMode) { - await ViewModel.PopulateOmnibarSuggestionsForPathMode(); + await DispatcherQueue.EnqueueOrInvokeAsync(ViewModel.PopulateOmnibarSuggestionsForPathMode); } else if (Omnibar.CurrentSelectedMode == OmnibarCommandPaletteMode) { - ViewModel.PopulateOmnibarSuggestionsForCommandPaletteMode(); + await DispatcherQueue.EnqueueOrInvokeAsync(ViewModel.PopulateOmnibarSuggestionsForCommandPaletteMode); } else if (Omnibar.CurrentSelectedMode == OmnibarSearchMode) { + await DispatcherQueue.EnqueueOrInvokeAsync(ViewModel.PopulateOmnibarSuggestionsForSearchMode); } } @@ -390,5 +356,110 @@ private void BreadcrumbBar_ItemDropDownFlyoutClosed(object sender, BreadcrumbBar // Clear the flyout items to save memory e.Flyout.Items.Clear(); } + + /// + /// Handles mode changes in the Omnibar control. This event can fire even when the Omnibar + /// already has focus (e.g., user switching from Command Palette to Search mode). + /// Updates the appropriate text property and populates suggestions based on the new mode. + /// + private async void Omnibar_ModeChanged(object sender, OmnibarModeChangedEventArgs e) + { + if (e.NewMode == OmnibarPathMode) + { + // Initialize with current working directory or fallback to home path + ViewModel.PathText = string.IsNullOrEmpty(ContentPageContext.ShellPage?.ShellViewModel?.WorkingDirectory) + ? Constants.UserEnvironmentPaths.HomePath + : ContentPageContext.ShellPage.ShellViewModel.WorkingDirectory; + + await DispatcherQueue.EnqueueOrInvokeAsync(ViewModel.PopulateOmnibarSuggestionsForPathMode); + } + else if (e.NewMode == OmnibarCommandPaletteMode) + { + // Clear text and load command suggestions + ViewModel.OmnibarCommandPaletteModeText = string.Empty; + + await DispatcherQueue.EnqueueOrInvokeAsync(ViewModel.PopulateOmnibarSuggestionsForCommandPaletteMode); + } + else if (e.NewMode == OmnibarSearchMode) + { + // Preserve existing search query or clear for new search + if (!ViewModel.InstanceViewModel.IsPageTypeSearchResults) + ViewModel.OmnibarSearchModeText = string.Empty; + else + ViewModel.OmnibarSearchModeText = ViewModel.InstanceViewModel.CurrentSearchQuery; + + await DispatcherQueue.EnqueueOrInvokeAsync(ViewModel.PopulateOmnibarSuggestionsForSearchMode); + } + } + + /// + /// Handles focus state changes for the Omnibar control. + /// When focused: Updates Path Mode content (Path Mode has both focused/unfocused states). + /// When unfocused: Automatically switches back to Path Mode to display the BreadcrumbBar. + /// + private async void Omnibar_IsFocusedChanged(Omnibar sender, OmnibarIsFocusedChangedEventArgs args) + { + if (args.IsFocused) + { + // Path Mode needs special handling when gaining focus since it has an unfocused state + if (Omnibar.CurrentSelectedMode == OmnibarPathMode) + { + ViewModel.PathText = string.IsNullOrEmpty(ContentPageContext.ShellPage?.ShellViewModel?.WorkingDirectory) + ? Constants.UserEnvironmentPaths.HomePath + : ContentPageContext.ShellPage.ShellViewModel.WorkingDirectory; + + await DispatcherQueue.EnqueueOrInvokeAsync(ViewModel.PopulateOmnibarSuggestionsForPathMode); + } + } + else + { + // When Omnibar loses focus, revert to Path Mode to display BreadcrumbBar + Omnibar.CurrentSelectedMode = OmnibarPathMode; + } + } + + private async void Omnibar_PreviewKeyDown(object sender, KeyRoutedEventArgs e) + { + if (e.Key is VirtualKey.Escape) + { + Omnibar.IsFocused = false; + (MainPageViewModel.SelectedTabItem?.TabItemContent as Control)?.Focus(FocusState.Programmatic); + } + else if (e.Key is VirtualKey.Tab && Omnibar.IsFocused && !InputKeyboardSource.GetKeyStateForCurrentThread(VirtualKey.Shift).HasFlag(CoreVirtualKeyStates.Down)) + { + var currentSelectedMode = Omnibar.CurrentSelectedMode; + Omnibar.IsFocused = false; + await Task.Delay(15); + + if (currentSelectedMode == OmnibarPathMode) + BreadcrumbBar.Focus(FocusState.Keyboard); + else if (currentSelectedMode == OmnibarCommandPaletteMode) + OmnibarCommandPaletteMode.Focus(FocusState.Keyboard); + else if (currentSelectedMode == OmnibarSearchMode) + OmnibarSearchMode.Focus(FocusState.Keyboard); + } + } + + private void NavigationButtonOverflowFlyoutButton_LosingFocus(UIElement sender, LosingFocusEventArgs args) + { + // Prevent the Omnibar from taking focus if the overflow button is hidden while the button is focused + if (args.NewFocusedElement is TextBox) + args.Cancel = true; + } + + private void BreadcrumbBarItem_DragLeave(object sender, DragEventArgs e) + { + ViewModel.PathBoxItem_DragLeave(sender, e); + } + + private async void BreadcrumbBarItem_DragOver(object sender, DragEventArgs e) + { + await ViewModel.PathBoxItem_DragOver(sender, e); + } + + private async void BreadcrumbBarItem_Drop(object sender, DragEventArgs e) + { + await ViewModel.PathBoxItem_Drop(sender, e); + } } } diff --git a/src/Files.App/UserControls/Pane/InfoPane.xaml.cs b/src/Files.App/UserControls/Pane/InfoPane.xaml.cs index 7ccfe0fd1be1..e3a5189fa41c 100644 --- a/src/Files.App/UserControls/Pane/InfoPane.xaml.cs +++ b/src/Files.App/UserControls/Pane/InfoPane.xaml.cs @@ -83,7 +83,7 @@ public bool IsHorizontal set => SetProperty(ref isHorizontal, value); } } - + private void TagItem_Tapped(object sender, TappedRoutedEventArgs e) { var tagName = ((sender as StackPanel)?.Children[1] as TextBlock)?.Text; diff --git a/src/Files.App/UserControls/Pane/ShelfPane.xaml.cs b/src/Files.App/UserControls/Pane/ShelfPane.xaml.cs index 7fe285de737e..01c1c2e6e23d 100644 --- a/src/Files.App/UserControls/Pane/ShelfPane.xaml.cs +++ b/src/Files.App/UserControls/Pane/ShelfPane.xaml.cs @@ -95,7 +95,7 @@ widgetCardItem.DataContext is not ShelfItem item || var menuFlyout = new MenuFlyout(); - menuFlyout.Items.Add (new MenuFlyoutItem + menuFlyout.Items.Add(new MenuFlyoutItem { Text = Strings.RemoveFromShelf.GetLocalizedResource(), Icon = new FontIcon { Glyph = "\uE738" }, @@ -127,7 +127,7 @@ public ICommand? ClearCommand } public static readonly DependencyProperty ClearCommandProperty = DependencyProperty.Register(nameof(ClearCommand), typeof(ICommand), typeof(ShelfPane), new PropertyMetadata(null)); - + public ICommand? ItemFocusedCommand { get => (ICommand?)GetValue(ItemFocusedCommandProperty); diff --git a/src/Files.App/UserControls/PathBreadcrumb.xaml b/src/Files.App/UserControls/PathBreadcrumb.xaml deleted file mode 100644 index 9913d9ea4c5d..000000000000 --- a/src/Files.App/UserControls/PathBreadcrumb.xaml +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Files.App/UserControls/PathBreadcrumb.xaml.cs b/src/Files.App/UserControls/PathBreadcrumb.xaml.cs deleted file mode 100644 index 66726ee9e82b..000000000000 --- a/src/Files.App/UserControls/PathBreadcrumb.xaml.cs +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright (c) Files Community -// Licensed under the MIT License. - -using CommunityToolkit.WinUI; -using Microsoft.UI.Xaml; -using Microsoft.UI.Xaml.Controls; -using Microsoft.UI.Xaml.Input; - -namespace Files.App.UserControls -{ - public sealed partial class PathBreadcrumb : UserControl - { - [GeneratedDependencyProperty] - public partial NavigationToolbarViewModel ViewModel { get; set; } - - public PathBreadcrumb() - { - InitializeComponent(); - } - - private void PathItemSeparator_DataContextChanged(FrameworkElement sender, DataContextChangedEventArgs args) - { - ViewModel.PathItemSeparator_DataContextChanged(sender, args); - } - - private void PathBoxItemFlyout_Opening(object sender, object e) - { - ViewModel.PathboxItemFlyout_Opening(sender, e); - } - - private void PathBoxItemFlyout_Closed(object sender, object e) - { - ViewModel.PathBoxItemFlyout_Closed(sender, e) ; - } - - private void PathBoxItem_DragLeave(object sender, DragEventArgs e) - { - ViewModel.PathBoxItem_DragLeave(sender, e); - } - - private async void PathBoxItem_DragOver(object sender, DragEventArgs e) - { - await ViewModel.PathBoxItem_DragOver(sender, e); - } - - private async void PathBoxItem_Drop(object sender, DragEventArgs e) - { - await ViewModel.PathBoxItem_Drop(sender, e); - } - - private async void PathBoxItem_Tapped(object sender, TappedRoutedEventArgs e) - { - if (sender is not TextBlock textBlock || - textBlock.DataContext is not PathBoxItem item || - item.Path is not { } path) - return; - - // TODO: Implement middle click retrieving. - await ViewModel.HandleFolderNavigationAsync(path); - - e.Handled = true; - } - - private void PathBoxItem_PointerPressed(object sender, PointerRoutedEventArgs e) - { - ViewModel.PathBoxItem_PointerPressed(sender, e); - } - - private void PathBoxItem_PreviewKeyDown(object sender, KeyRoutedEventArgs e) - { - ViewModel.PathBoxItem_PreviewKeyDown(sender, e); - } - } -} diff --git a/src/Files.App/UserControls/SearchBox.xaml b/src/Files.App/UserControls/SearchBox.xaml deleted file mode 100644 index a3a9f49cc0f6..000000000000 --- a/src/Files.App/UserControls/SearchBox.xaml +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Files.App/UserControls/SearchBox.xaml.cs b/src/Files.App/UserControls/SearchBox.xaml.cs deleted file mode 100644 index ff31b9899cd1..000000000000 --- a/src/Files.App/UserControls/SearchBox.xaml.cs +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (c) Files Community -// Licensed under the MIT License. - -using Files.App.ViewModels; -using Microsoft.UI.Xaml; -using Microsoft.UI.Xaml.Controls; -using Microsoft.UI.Xaml.Input; - -namespace Files.App.UserControls -{ - public sealed partial class SearchBox : UserControl - { - public static readonly DependencyProperty SearchBoxViewModelProperty = - DependencyProperty.Register(nameof(SearchBoxViewModel), typeof(SearchBoxViewModel), typeof(SearchBox), new PropertyMetadata(null)); - - public SearchBoxViewModel SearchBoxViewModel - { - get => (SearchBoxViewModel)GetValue(SearchBoxViewModelProperty); - set => SetValue(SearchBoxViewModelProperty, value); - } - - public SearchBox() => InitializeComponent(); - - private void SearchRegion_TextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs e) - => SearchBoxViewModel.SearchRegion_TextChanged(sender, e); - - private void SearchRegion_QuerySubmitted(AutoSuggestBox sender, AutoSuggestBoxQuerySubmittedEventArgs e) - => SearchBoxViewModel.SearchRegion_QuerySubmitted(sender, e); - - private void SearchRegion_Escaped(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs e) - => SearchBoxViewModel.SearchRegion_Escaped(sender, e); - - private void SearchRegion_KeyDown(object sender, KeyRoutedEventArgs e) - => SearchBoxViewModel.SearchRegion_KeyDown(sender, e); - } -} diff --git a/src/Files.App/UserControls/Selection/ExtendPreviousItemSelectionStrategy.cs b/src/Files.App/UserControls/Selection/ExtendPreviousItemSelectionStrategy.cs index d42fd085a595..460ac84cfcef 100644 --- a/src/Files.App/UserControls/Selection/ExtendPreviousItemSelectionStrategy.cs +++ b/src/Files.App/UserControls/Selection/ExtendPreviousItemSelectionStrategy.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System.Collections.Generic; using System.Runtime.InteropServices; namespace Files.App.UserControls.Selection diff --git a/src/Files.App/UserControls/Selection/IgnorePreviousItemSelectionStrategy.cs b/src/Files.App/UserControls/Selection/IgnorePreviousItemSelectionStrategy.cs index 58ea310cc6a1..f82e03c43215 100644 --- a/src/Files.App/UserControls/Selection/IgnorePreviousItemSelectionStrategy.cs +++ b/src/Files.App/UserControls/Selection/IgnorePreviousItemSelectionStrategy.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System.Collections.Generic; using System.Runtime.InteropServices; namespace Files.App.UserControls.Selection diff --git a/src/Files.App/UserControls/Selection/InvertPreviousItemSelectionStrategy.cs b/src/Files.App/UserControls/Selection/InvertPreviousItemSelectionStrategy.cs index 2ed042f324e5..399caa93286f 100644 --- a/src/Files.App/UserControls/Selection/InvertPreviousItemSelectionStrategy.cs +++ b/src/Files.App/UserControls/Selection/InvertPreviousItemSelectionStrategy.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System.Collections.Generic; using System.Runtime.InteropServices; namespace Files.App.UserControls.Selection diff --git a/src/Files.App/UserControls/Selection/ItemSelectionStrategy.cs b/src/Files.App/UserControls/Selection/ItemSelectionStrategy.cs index 5fba4d65ca02..cc04f4dd5281 100644 --- a/src/Files.App/UserControls/Selection/ItemSelectionStrategy.cs +++ b/src/Files.App/UserControls/Selection/ItemSelectionStrategy.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System.Collections.Generic; - namespace Files.App.UserControls.Selection { public abstract class ItemSelectionStrategy diff --git a/src/Files.App/UserControls/Selection/RectangleSelection.cs b/src/Files.App/UserControls/Selection/RectangleSelection.cs index e3fddb2ee439..a3dc27287475 100644 --- a/src/Files.App/UserControls/Selection/RectangleSelection.cs +++ b/src/Files.App/UserControls/Selection/RectangleSelection.cs @@ -5,7 +5,6 @@ using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Shapes; -using System; using Windows.Foundation; namespace Files.App.UserControls.Selection diff --git a/src/Files.App/UserControls/Selection/RectangleSelection_ListViewBase.cs b/src/Files.App/UserControls/Selection/RectangleSelection_ListViewBase.cs index 8dedaab885be..eb64ebb415aa 100644 --- a/src/Files.App/UserControls/Selection/RectangleSelection_ListViewBase.cs +++ b/src/Files.App/UserControls/Selection/RectangleSelection_ListViewBase.cs @@ -6,9 +6,6 @@ using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Input; using Microsoft.UI.Xaml.Shapes; -using System; -using System.Collections.Generic; -using System.Linq; using Windows.Foundation; using Windows.System; using DispatcherQueue = Microsoft.UI.Dispatching.DispatcherQueue; diff --git a/src/Files.App/UserControls/StatusBar.xaml.cs b/src/Files.App/UserControls/StatusBar.xaml.cs index ec8abd2c4842..bee3c6282b0a 100644 --- a/src/Files.App/UserControls/StatusBar.xaml.cs +++ b/src/Files.App/UserControls/StatusBar.xaml.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Data.Commands; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; diff --git a/src/Files.App/UserControls/StatusCenter/SpeedGraph.cs b/src/Files.App/UserControls/StatusCenter/SpeedGraph.cs index 5aa80607dd6d..3a4dcae09190 100644 --- a/src/Files.App/UserControls/StatusCenter/SpeedGraph.cs +++ b/src/Files.App/UserControls/StatusCenter/SpeedGraph.cs @@ -3,10 +3,8 @@ using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Hosting; -using Microsoft.UI.Xaml.Media; using System.Collections.Specialized; using System.Numerics; -using Windows.UI; // To learn more about WinUI, the WinUI project structure, // and more about our project templates, see: http://aka.ms/winui-project-info. @@ -24,7 +22,7 @@ public ObservableCollection Points SetValue(PointsProperty, value); } } - + public static readonly DependencyProperty PointsProperty = DependencyProperty.Register(nameof(Points), typeof(ObservableCollection), typeof(SpeedGraph), null); @@ -52,7 +50,7 @@ public ObservableCollection Points float highestValue; IAppThemeModeService themeModeService; - + public SpeedGraph() { compositor = ElementCompositionPreview.GetElementVisual(this).Compositor; diff --git a/src/Files.App/UserControls/TabBar/BaseTabBar.cs b/src/Files.App/UserControls/TabBar/BaseTabBar.cs index 7baf785cf354..7196b481592c 100644 --- a/src/Files.App/UserControls/TabBar/BaseTabBar.cs +++ b/src/Files.App/UserControls/TabBar/BaseTabBar.cs @@ -146,7 +146,7 @@ public void CloseTab(TabBarItem tabItem) Items.Remove(tabItem); tabItem.Unload(); - + // Dispose and save tab arguments PushRecentTab( [ diff --git a/src/Files.App/UserControls/TabBar/TabBar.xaml b/src/Files.App/UserControls/TabBar/TabBar.xaml index 6fa306a27efe..2e02a641a7d2 100644 --- a/src/Files.App/UserControls/TabBar/TabBar.xaml +++ b/src/Files.App/UserControls/TabBar/TabBar.xaml @@ -143,24 +143,24 @@ - - - - + x:Load="{x:Bind Commands.SplitPaneHorizontally.IsExecutable, Mode=OneWay}" + Text="{helpers:ResourceString Name=SplitPane}"> + + Command="{x:Bind Commands.SplitPaneVertically, Mode=OneWay}" + KeyboardAcceleratorTextOverride="{x:Bind Commands.SplitPaneVertically.HotKeyText, Mode=OneWay}" + Text="{x:Bind Commands.SplitPaneVertically.Label}" + ThemedIconStyle="{x:Bind Commands.SplitPaneVertically.ThemedIconStyle}" /> + + + @@ -170,15 +170,6 @@ x:Load="{x:Bind Commands.CloseActivePane.IsExecutable, Mode=OneWay}" Text="{helpers:ResourceString Name=ArrangePanes}"> - - - + + + diff --git a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs index c1163e066c12..7455e6511038 100644 --- a/src/Files.App/UserControls/TabBar/TabBar.xaml.cs +++ b/src/Files.App/UserControls/TabBar/TabBar.xaml.cs @@ -363,7 +363,7 @@ private async void DragAreaRectangle_Loaded(object sender, RoutedEventArgs e) if (HorizontalTabView.ActualWidth <= 0 && TabBarAddNewTabButton.Width <= 0) await Task.Delay(100); - var titleBarInset = ((FilePropertiesHelpers.FlowDirectionSettingIsRightToLeft + var titleBarInset = ((AppLanguageHelper.IsPreferredLanguageRtl ? MainWindow.Instance.AppWindow.TitleBar.LeftInset : MainWindow.Instance.AppWindow.TitleBar.RightInset) / DragAreaRectangle.XamlRoot.RasterizationScale) + 40; diff --git a/src/Files.App/UserControls/TabBar/TabBarItem.cs b/src/Files.App/UserControls/TabBar/TabBarItem.cs index bda3f9a4e300..e82897386a41 100644 --- a/src/Files.App/UserControls/TabBar/TabBarItem.cs +++ b/src/Files.App/UserControls/TabBar/TabBarItem.cs @@ -2,6 +2,7 @@ // Licensed under the MIT License. using Microsoft.UI.Xaml.Controls; +using Microsoft.UI.Xaml.Media.Animation; namespace Files.App.UserControls.TabBar { @@ -60,7 +61,7 @@ public TabBarItemParameter NavigationParameter _NavigationArguments = value; if (_NavigationArguments is not null) { - ContentFrame.Navigate(_NavigationArguments.InitialPageType, _NavigationArguments.NavigationParameter); + ContentFrame.Navigate(_NavigationArguments.InitialPageType, _NavigationArguments.NavigationParameter, new SuppressNavigationTransitionInfo()); } else { diff --git a/src/Files.App/UserControls/Toolbar.xaml b/src/Files.App/UserControls/Toolbar.xaml index a167218e65e0..45181870f195 100644 --- a/src/Files.App/UserControls/Toolbar.xaml +++ b/src/Files.App/UserControls/Toolbar.xaml @@ -500,6 +500,21 @@ Grid.Column="1" DefaultLabelPosition="Right"> + + + + + @@ -33,6 +31,7 @@ private static IEnumerable EnumerateDetectors() yield return new BoxCloudDetector(); yield return new GenericCloudDetector(); yield return new SynologyDriveCloudDetector(); + yield return new OXDriveCloudDetector(); } } } diff --git a/src/Files.App/Utils/Cloud/Detector/DropBoxCloudDetector.cs b/src/Files.App/Utils/Cloud/Detector/DropBoxCloudDetector.cs index 975c720e945c..a67c9ee5983d 100644 --- a/src/Files.App/Utils/Cloud/Detector/DropBoxCloudDetector.cs +++ b/src/Files.App/Utils/Cloud/Detector/DropBoxCloudDetector.cs @@ -1,9 +1,7 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Utils.Cloud; using System.IO; -using System.Text.Json; using Windows.Storage; namespace Files.App.Utils.Cloud diff --git a/src/Files.App/Utils/Cloud/Detector/GenericCloudDetector.cs b/src/Files.App/Utils/Cloud/Detector/GenericCloudDetector.cs index 80c0a62b2172..b3e2afa9976f 100644 --- a/src/Files.App/Utils/Cloud/Detector/GenericCloudDetector.cs +++ b/src/Files.App/Utils/Cloud/Detector/GenericCloudDetector.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Utils.Cloud; - namespace Files.App.Utils.Cloud { /// diff --git a/src/Files.App/Utils/Cloud/Detector/GoogleDriveCloudDetector.cs b/src/Files.App/Utils/Cloud/Detector/GoogleDriveCloudDetector.cs index 56c8bfa44066..f3ba712c2b18 100644 --- a/src/Files.App/Utils/Cloud/Detector/GoogleDriveCloudDetector.cs +++ b/src/Files.App/Utils/Cloud/Detector/GoogleDriveCloudDetector.cs @@ -5,8 +5,8 @@ using Microsoft.Extensions.Logging; using Microsoft.Win32; using System.IO; -using Windows.Storage; using Vanara.Windows.Shell; +using Windows.Storage; namespace Files.App.Utils.Cloud { @@ -220,7 +220,7 @@ private static async Task Inspect(SqliteConnection database, string sqlCommand, } var path = googleDriveRegValPropProp.GetString(); - if (path is not null) + if (path is not null) return ConvertDriveLetterToPathAndValidate(ref path) ? path : null; _logger.LogWarning($"Could not get string from value from {_googleDriveRegValPropPropName}"); @@ -234,7 +234,7 @@ private static async Task Inspect(SqliteConnection database, string sqlCommand, /// private static bool ConvertDriveLetterToPathAndValidate(ref string path) { - if (path.Length > 1) + if (path.Length > 1) return ValidatePath(path); DriveInfo driveInfo; @@ -253,7 +253,7 @@ private static bool ConvertDriveLetterToPathAndValidate(ref string path) } private static bool ValidatePath(string path) - { + { if (Directory.Exists(path)) return true; _logger.LogWarning($"Invalid path: {path}"); @@ -273,7 +273,7 @@ private static bool ValidatePath(string path) } private static bool AddMyDriveToPathAndValidate(ref string path) - { + { // If `path` contains a shortcut named "My Drive", store its target in `shellFolderBaseFirst`. // This happens when "My Drive syncing options" is set to "Mirror files". // TODO: Avoid to use Vanara (#15000) diff --git a/src/Files.App/Utils/Cloud/Detector/OXDriveCloudDetector.cs b/src/Files.App/Utils/Cloud/Detector/OXDriveCloudDetector.cs new file mode 100644 index 000000000000..bbc764853bc7 --- /dev/null +++ b/src/Files.App/Utils/Cloud/Detector/OXDriveCloudDetector.cs @@ -0,0 +1,77 @@ +// Copyright (c) Files Community +// Licensed under the MIT License. + +using Microsoft.Win32; +using System.IO; +using Windows.Storage; + +namespace Files.App.Utils.Cloud +{ + /// + /// Provides an utility for OX Drive Cloud detection. + /// + public sealed class OXDriveCloudDetector : AbstractCloudDetector + { + protected override async IAsyncEnumerable GetProviders() + { + var syncFolder = await GetOXDriveSyncFolder(); + if (!string.IsNullOrEmpty(syncFolder)) + { + var iconFile = GetOXDriveIconFile(); + yield return new CloudProvider(CloudProviders.OXDrive) + { + Name = "OX Drive", + SyncFolder = syncFolder, + IconData = iconFile?.IconData + }; + } + } + public static async Task GetOXDriveSyncFolder() + { + var jsonPath = Path.Combine(UserDataPaths.GetDefault().LocalAppData, "Open-Xchange", "OXDrive", "userConfig.json"); + if (!File.Exists(jsonPath)) + return null; + + var configFile = await StorageFile.GetFileFromPathAsync(jsonPath); + using var jsonDoc = JsonDocument.Parse(await FileIO.ReadTextAsync(configFile)); + var jsonElem = jsonDoc.RootElement; + + string? syncFolderPath = null; + + if (jsonElem.TryGetProperty("Accounts", out var accounts) && accounts.GetArrayLength() > 0) + { + var account = accounts[0]; + + if (account.TryGetProperty("MainFolderPath", out var folderPathElem)) + syncFolderPath = folderPathElem.GetString(); + } + + return syncFolderPath; + } + + private static IconFileInfo? GetOXDriveIconFile() + { + var installPath = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Open-Xchange\OXDrive", "InstallDir", null) as string; + + // Fallback to default known path if not found in the registry. + if (string.IsNullOrEmpty(installPath)) + { + var pfX86 = Environment.GetEnvironmentVariable("ProgramFiles(x86)"); + if (string.IsNullOrEmpty(pfX86)) + return null; + + installPath = Path.Combine(pfX86, "Open-Xchange", "OXDrive"); + } + + var oxDriveFilePath = Path.Combine(installPath, "OXDrive.exe"); + if (!File.Exists(oxDriveFilePath)) + { + return null; + } + + // Extract the icon from the OXDrive executable (though it is executable, it contains icons) + var icons = Win32Helper.ExtractSelectedIconsFromDLL(oxDriveFilePath, new List { 0 }, 32); + return icons.FirstOrDefault(); + } + } +} diff --git a/src/Files.App/Utils/Cloud/Detector/SynologyDriveCloudDetector.cs b/src/Files.App/Utils/Cloud/Detector/SynologyDriveCloudDetector.cs index 16592c9af50e..df75d90a789f 100644 --- a/src/Files.App/Utils/Cloud/Detector/SynologyDriveCloudDetector.cs +++ b/src/Files.App/Utils/Cloud/Detector/SynologyDriveCloudDetector.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Utils.Cloud; using Microsoft.Data.Sqlite; using System.IO; using Windows.Storage; diff --git a/src/Files.App/Utils/Git/GitHelpers.cs b/src/Files.App/Utils/Git/GitHelpers.cs index 59d6b4589e60..340e9395f89c 100644 --- a/src/Files.App/Utils/Git/GitHelpers.cs +++ b/src/Files.App/Utils/Git/GitHelpers.cs @@ -333,7 +333,7 @@ public static bool ValidateBranchNameForRepository(string branchName, string rep branch.FriendlyName.Equals(branchName, StringComparison.OrdinalIgnoreCase)); } - public static async void FetchOrigin(string? repositoryPath) + public static async void FetchOrigin(string? repositoryPath, CancellationToken cancellationToken = default) { if (string.IsNullOrWhiteSpace(repositoryPath)) return; @@ -359,11 +359,15 @@ public static async void FetchOrigin(string? repositoryPath) await DoGitOperationAsync(() => { + cancellationToken.ThrowIfCancellationRequested(); + var result = GitOperationResult.Success; try { foreach (var remote in repository.Network.Remotes) { + cancellationToken.ThrowIfCancellationRequested(); + LibGit2Sharp.Commands.Fetch( repository, remote.Name, @@ -371,6 +375,8 @@ await DoGitOperationAsync(() => _fetchOptions, "git fetch updated a ref"); } + + cancellationToken.ThrowIfCancellationRequested(); } catch (Exception ex) { @@ -384,6 +390,10 @@ await DoGitOperationAsync(() => MainWindow.Instance.DispatcherQueue.TryEnqueue(() => { + if (cancellationToken.IsCancellationRequested) + // Do nothing because the operation was cancelled and another fetch may be in progress + return; + IsExecutingGitAction = false; GitFetchCompleted?.Invoke(null, EventArgs.Empty); }); diff --git a/src/Files.App/Utils/Global/QuickAccessManager.cs b/src/Files.App/Utils/Global/QuickAccessManager.cs index e91a880d43f1..5971690c42b5 100644 --- a/src/Files.App/Utils/Global/QuickAccessManager.cs +++ b/src/Files.App/Utils/Global/QuickAccessManager.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using CommunityToolkit.WinUI.Helpers; using System.IO; namespace Files.App.Utils diff --git a/src/Files.App/Utils/Global/WindowsStorageDeviceWatcher.cs b/src/Files.App/Utils/Global/WindowsStorageDeviceWatcher.cs index f80c1b922b5f..97c4dccbfd7d 100644 --- a/src/Files.App/Utils/Global/WindowsStorageDeviceWatcher.cs +++ b/src/Files.App/Utils/Global/WindowsStorageDeviceWatcher.cs @@ -1,11 +1,7 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Data.Items; -using Files.App.Helpers; -using Files.Core.Storage.Storables; using Microsoft.Extensions.Logging; -using System; using System.IO; using System.Runtime.InteropServices; using Windows.Devices.Enumeration; @@ -63,7 +59,7 @@ private async void Win32_OnDeviceAdded(object? sender, DeviceEventArgs e) + " failed at the StorageFolder initialization step. This device will be ignored."); return; } - + var type = DriveHelpers.GetDriveType(driveAdded); var label = DriveHelpers.GetExtendedDriveLabel(driveAdded); DriveItem driveItem = await DriveItem.CreateFromPropertiesAsync(rootAdded, e.DeviceId, label, type); @@ -96,7 +92,7 @@ private async void Watcher_Added(DeviceWatcher sender, DeviceInformation args) return; } - Data.Items.DriveType type; + Data.Items.DriveType type; string label; try { diff --git a/src/Files.App/Utils/Library/LibraryManager.cs b/src/Files.App/Utils/Library/LibraryManager.cs index c97c6abf8f29..937ed51096e4 100644 --- a/src/Files.App/Utils/Library/LibraryManager.cs +++ b/src/Files.App/Utils/Library/LibraryManager.cs @@ -2,7 +2,6 @@ // Licensed under the MIT License. using Files.App.Dialogs; -using Files.App.ViewModels.Dialogs; using Microsoft.Extensions.Logging; using Microsoft.UI.Xaml.Controls; using System.Collections.Specialized; @@ -383,7 +382,12 @@ private void OnLibraryChanged(WatcherChangeTypes changeType, string oldPath, str return; } - var library1 = ShellFolderExtensions.GetShellLibraryItem(library, newPath); + var library1 = SafetyExtensions.IgnoreExceptions(() => ShellFolderExtensions.GetShellLibraryItem(library, newPath)); + if (library1 is null) + { + App.Logger.LogWarning($"Failed to open library after {changeType}: {newPath}"); + return; + } string? path = oldPath; if (string.IsNullOrEmpty(oldPath)) diff --git a/src/Files.App/Utils/Serialization/BaseJsonSettings.cs b/src/Files.App/Utils/Serialization/BaseJsonSettings.cs index b13f98143456..215952c8f0ec 100644 --- a/src/Files.App/Utils/Serialization/BaseJsonSettings.cs +++ b/src/Files.App/Utils/Serialization/BaseJsonSettings.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System; using System.Runtime.CompilerServices; namespace Files.App.Utils.Serialization diff --git a/src/Files.App/Utils/Serialization/BaseObservableJsonSettings.cs b/src/Files.App/Utils/Serialization/BaseObservableJsonSettings.cs index ac0151556ed5..39ae970163fa 100644 --- a/src/Files.App/Utils/Serialization/BaseObservableJsonSettings.cs +++ b/src/Files.App/Utils/Serialization/BaseObservableJsonSettings.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System.ComponentModel; using System.Runtime.CompilerServices; namespace Files.App.Utils.Serialization diff --git a/src/Files.App/Utils/Serialization/Implementation/DefaultJsonSettingsDatabase.cs b/src/Files.App/Utils/Serialization/Implementation/DefaultJsonSettingsDatabase.cs index 797fd086a0fb..f928aff6b1a9 100644 --- a/src/Files.App/Utils/Serialization/Implementation/DefaultJsonSettingsDatabase.cs +++ b/src/Files.App/Utils/Serialization/Implementation/DefaultJsonSettingsDatabase.cs @@ -2,7 +2,6 @@ // Licensed under the MIT License. using System.Collections.Concurrent; -using System.Text.Json; namespace Files.App.Utils.Serialization.Implementation { diff --git a/src/Files.App/Utils/Serialization/Implementation/DefaultJsonSettingsSerializer.cs b/src/Files.App/Utils/Serialization/Implementation/DefaultJsonSettingsSerializer.cs index ccb621eb5a40..7965e6cbf534 100644 --- a/src/Files.App/Utils/Serialization/Implementation/DefaultJsonSettingsSerializer.cs +++ b/src/Files.App/Utils/Serialization/Implementation/DefaultJsonSettingsSerializer.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System.Text.Json; - namespace Files.App.Utils.Serialization.Implementation { internal sealed class DefaultJsonSettingsSerializer : IJsonSettingsSerializer diff --git a/src/Files.App/Utils/Serialization/Implementation/DefaultSettingsSerializer.cs b/src/Files.App/Utils/Serialization/Implementation/DefaultSettingsSerializer.cs index 9a3cf4a30804..db37b20cd7f5 100644 --- a/src/Files.App/Utils/Serialization/Implementation/DefaultSettingsSerializer.cs +++ b/src/Files.App/Utils/Serialization/Implementation/DefaultSettingsSerializer.cs @@ -36,14 +36,14 @@ public bool CreateFile(string path) /// public string ReadFromFile() { - _ = _filePath ?? throw new ArgumentNullException(nameof(_filePath)); + ArgumentNullException.ThrowIfNull(_filePath); return ReadStringFromFile(_filePath); } public bool WriteToFile(string? text) { - _ = _filePath ?? throw new ArgumentNullException(nameof(_filePath)); + ArgumentNullException.ThrowIfNull(_filePath); return WriteStringToFile(_filePath, text); } diff --git a/src/Files.App/Utils/Shell/ContextMenu.cs b/src/Files.App/Utils/Shell/ContextMenu.cs index b409ba730c03..54cb5eaab4a5 100644 --- a/src/Files.App/Utils/Shell/ContextMenu.cs +++ b/src/Files.App/Utils/Shell/ContextMenu.cs @@ -17,9 +17,9 @@ namespace Files.App.Utils.Shell public partial class ContextMenu : Win32ContextMenu, IDisposable { private Shell32.IContextMenu _cMenu; - + private User32.SafeHMENU _hMenu; - + private readonly ThreadWithMessageQueue _owningThread; private readonly Func? _itemFilter; diff --git a/src/Files.App/Utils/Shell/ShellFileOperations2.cs b/src/Files.App/Utils/Shell/ShellFileOperations2.cs index daf610d95fc9..59512f57091d 100644 --- a/src/Files.App/Utils/Shell/ShellFileOperations2.cs +++ b/src/Files.App/Utils/Shell/ShellFileOperations2.cs @@ -576,7 +576,7 @@ protected virtual void Dispose(bool disposing) // Dispose managed state (managed objects). } - if (sink != null) + if (sink != null && op != null) { op.Unadvise(sinkCookie); } diff --git a/src/Files.App/Utils/Shell/ShellFolderExtensions.cs b/src/Files.App/Utils/Shell/ShellFolderExtensions.cs index 68468f842ffd..81682aaa428d 100644 --- a/src/Files.App/Utils/Shell/ShellFolderExtensions.cs +++ b/src/Files.App/Utils/Shell/ShellFolderExtensions.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System; using System.IO; using Vanara.PInvoke; using Vanara.Windows.Shell; diff --git a/src/Files.App/Utils/Shell/ShellHelpers.cs b/src/Files.App/Utils/Shell/ShellHelpers.cs index 149c54e11be8..2f3dc7f107d6 100644 --- a/src/Files.App/Utils/Shell/ShellHelpers.cs +++ b/src/Files.App/Utils/Shell/ShellHelpers.cs @@ -1,9 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Extensions; -using Files.Shared; -using System; using System.IO; namespace Files.App.Utils.Shell diff --git a/src/Files.App/Utils/Shell/ShellLibraryFolders.cs b/src/Files.App/Utils/Shell/ShellLibraryFolders.cs index a4499c245c98..ee33126d09c3 100644 --- a/src/Files.App/Utils/Shell/ShellLibraryFolders.cs +++ b/src/Files.App/Utils/Shell/ShellLibraryFolders.cs @@ -38,8 +38,7 @@ bool ICollection.IsReadOnly /// location public void Add(ShellItem location) { - if (location is null) - throw new ArgumentNullException(nameof(location)); + ArgumentNullException.ThrowIfNull(location); _lib.AddFolder(location.IShellItem); } @@ -52,8 +51,7 @@ public void Add(ShellItem location) /// location public bool Remove(ShellItem location) { - if (location is null) - throw new ArgumentNullException(nameof(location)); + ArgumentNullException.ThrowIfNull(location); try { diff --git a/src/Files.App/Utils/Shell/ShellNewMenuHelper.cs b/src/Files.App/Utils/Shell/ShellNewMenuHelper.cs index 9fac780426b7..669f84923a54 100644 --- a/src/Files.App/Utils/Shell/ShellNewMenuHelper.cs +++ b/src/Files.App/Utils/Shell/ShellNewMenuHelper.cs @@ -69,7 +69,8 @@ private static async Task GetShellNewRegistryEntries(RegistryKey } } } - catch { + catch + { // Ignore exceptions when the registry is inaccessible to avoid freezes } diff --git a/src/Files.App/Utils/Signatures/DigitalSignaturesUtil.cs b/src/Files.App/Utils/Signatures/DigitalSignaturesUtil.cs new file mode 100644 index 000000000000..2c6a15b19bb1 --- /dev/null +++ b/src/Files.App/Utils/Signatures/DigitalSignaturesUtil.cs @@ -0,0 +1,990 @@ +// Copyright (c) Files Community +// Licensed under the MIT License. + +using System.Runtime.InteropServices; +using Windows.Win32; +using Windows.Win32.Foundation; +using Windows.Win32.Security.Cryptography; +using Windows.Win32.Security.WinTrust; +using static Files.App.Helpers.Win32PInvoke; + +namespace Files.App.Utils.Signatures +{ + public static class DigitalSignaturesUtil + { + // OIDs + private const string szOID_NESTED_SIGNATURE = "1.3.6.1.4.1.311.2.4.1"; + private const string szOID_RSA_counterSign = "1.2.840.113549.1.9.6"; + private const string szOID_RSA_signingTime = "1.2.840.113549.1.9.5"; + private const string szOID_RFC3161_counterSign = "1.3.6.1.4.1.311.3.3.1"; + private const string szOID_OIWSEC_sha1 = "1.3.14.3.2.26"; + private const string szOID_RSA_MD5 = "1.2.840.113549.2.5"; + private const string szOID_NIST_sha256 = "2.16.840.1.101.3.4.2.1"; + + // Flags + private const uint CERT_NAME_SIMPLE_DISPLAY_TYPE = 4; + private const uint CERT_SYSTEM_STORE_CURRENT_USER = 0x00010000; + private const uint PKCS_7_ASN_ENCODING = 0x00010000; + private const uint CRYPT_ASN_ENCODING = 0x00000001; + private const CERT_QUERY_ENCODING_TYPE ENCODING = + CERT_QUERY_ENCODING_TYPE.X509_ASN_ENCODING | CERT_QUERY_ENCODING_TYPE.PKCS_7_ASN_ENCODING; + + private const uint CMSG_SIGNER_INFO_PARAM = 6; + + // Version numbers + private const uint CERT_V1 = 0; + private const uint CERT_V2 = 1; + private const uint CERT_V3 = 2; + + private static readonly byte[] SG_ProtoCoded = [ + 0x30, 0x82 + ]; + + private static readonly byte[] SG_SignedData = [ + 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x07, 0x02 + ]; + + private static readonly IDateTimeFormatter formatter = Ioc.Default.GetRequiredService(); + + public static void LoadItemSignatures( + string filePath, + ObservableCollection signatures, + HWND hWnd, + CancellationToken ct) + { + var signChain = new List(); + GetSignerCertificateInfo(filePath, signChain, ct); + + foreach (var signNode in signChain) + { + if (signNode.CertChain.Count == 0) + continue; + + var signatureInfo = new SignatureInfoItem(filePath, signNode.Index, hWnd, signNode.CertChain) + { + Version = signNode.Version, + IssuedBy = signNode.CertChain[0].IssuedBy, + IssuedTo = signNode.CertChain[0].IssuedTo, + ValidFromTimestamp = signNode.CertChain[0].ValidFrom, + ValidToTimestamp = signNode.CertChain[0].ValidTo, + VerifiedTimestamp = signNode.CounterSign.TimeStamp, + Verified = signNode.IsValid, + }; + signatures.Add(signatureInfo); + } + } + + public unsafe static void DisplaySignerInfoDialog(string filePath, HWND hwndParent, int index) + { + if (string.IsNullOrEmpty(filePath)) + return; + + void* hAuthCryptMsg = null; + var signHandle = new SignDataHandle(); + var signDataChain = new List(); + + try + { + var result = TryGetSignerInfo( + filePath, + out hAuthCryptMsg, + out signHandle.hCertStoreHandle, + out signHandle.pSignerInfo, + out signHandle.dwObjSize + ); + if (!result || signHandle.pSignerInfo is null) + return; + + signDataChain.Add(signHandle); + GetNestedSignerInfo(ref signHandle, signDataChain); + if (index >= signDataChain.Count) + return; + + signHandle = signDataChain[index]; + var issuer = signHandle.pSignerInfo->Issuer; + var pCertContext = PInvoke.CertFindCertificateInStore( + signHandle.hCertStoreHandle, + ENCODING, + 0, + CERT_FIND_FLAGS.CERT_FIND_ISSUER_NAME, + &issuer, + null + ); + if (pCertContext is null) + return; + + var viewInfo = new CRYPTUI_VIEWSIGNERINFO_STRUCT + { + dwSize = (uint)Marshal.SizeOf(), + hwndParent = hwndParent, + dwFlags = 0, + szTitle = (PCSTR)null, + pSignerInfo = signHandle.pSignerInfo, + hMsg = hAuthCryptMsg, + pszOID = (PCSTR)null, + dwReserved = null, + cStores = 1, + rghStores = (HCERTSTORE*)NativeMemory.Alloc((uint)sizeof(void*)), + cPropPages = 0, + rgPropPages = null + }; + *(viewInfo.rghStores) = signHandle.hCertStoreHandle; + + result = CryptUIDlgViewSignerInfo(&viewInfo); + + PInvoke.CertFreeCertificateContext(pCertContext); + } + finally + { + // Since signDataChain contains nested signatures, + // you must release them starting from the last one. + for (int i = signDataChain.Count - 1; i >= 0; i--) + { + if (signDataChain[i].pSignerInfo is not null) + NativeMemory.Free(signDataChain[i].pSignerInfo); + + if (!signDataChain[i].hCertStoreHandle.IsNull) + PInvoke.CertCloseStore(signDataChain[i].hCertStoreHandle, 0); + } + + if (hAuthCryptMsg is not null) + PInvoke.CryptMsgClose(hAuthCryptMsg); + } + } + + private unsafe static bool GetSignerSignatureInfo( + HCERTSTORE hSystemStore, + HCERTSTORE hCertStore, + CERT_CONTEXT* pOrigContext, + ref CERT_CONTEXT* pCurrContext, + SignNodeInfo signNode) + { + var pCertInfo = pCurrContext->pCertInfo; + var certNode = new CertNodeInfoItem(); + + (_, certNode.Version) = CalculateSignVersion(pCertInfo->dwVersion); + GetStringFromCertContext(pCurrContext, CERT_NAME_SIMPLE_DISPLAY_TYPE, 0, certNode); + GetStringFromCertContext(pCurrContext, CERT_NAME_SIMPLE_DISPLAY_TYPE, 1, certNode); + + var pft = &(pCertInfo->NotBefore); + certNode.ValidFrom = TimeToString(pft); + pft = &(pCertInfo->NotAfter); + certNode.ValidTo = TimeToString(pft); + + signNode.CertChain.Add(certNode); + + pCurrContext = PInvoke.CertFindCertificateInStore( + hCertStore, + ENCODING, + 0, + CERT_FIND_FLAGS.CERT_FIND_SUBJECT_NAME, + &(pCertInfo->Issuer), + null + ); + + if (pCurrContext is null) + { + pCurrContext = PInvoke.CertFindCertificateInStore( + hSystemStore, + ENCODING, + 0, + CERT_FIND_FLAGS.CERT_FIND_SUBJECT_NAME, + &(pCertInfo->Issuer), + null + ); + } + + if (pCurrContext is null) + return false; + + var result = PInvoke.CertComparePublicKeyInfo( + ENCODING, + &pCurrContext->pCertInfo->SubjectPublicKeyInfo, + &pOrigContext->pCertInfo->SubjectPublicKeyInfo + ); + + return !result; + } + + private unsafe static bool GetSignerCertificateInfo(string fileName, List signChain, CancellationToken ct) + { + var succeded = false; + var authSignData = new SignDataHandle() { dwObjSize = 0, hCertStoreHandle = HCERTSTORE.Null, pSignerInfo = null }; + var signDataChain = new List(); + signChain.Clear(); + + var cert_store_prov_system = (PCSTR)(byte*)10; + var root = "Root"; + var pRoot = &root; + var hSystemStore = PInvoke.CertOpenStore( + cert_store_prov_system, + ENCODING, + HCRYPTPROV_LEGACY.Null, + (CERT_OPEN_STORE_FLAGS)CERT_SYSTEM_STORE_CURRENT_USER, + pRoot + ); + if (hSystemStore == IntPtr.Zero) + return false; + + void* hAuthCryptMsg = null; + var result = TryGetSignerInfo( + fileName, + out hAuthCryptMsg, + out authSignData.hCertStoreHandle, + out authSignData.pSignerInfo, + out authSignData.dwObjSize + ); + + if (hAuthCryptMsg is not null) + { + PInvoke.CryptMsgClose(hAuthCryptMsg); + hAuthCryptMsg = null; + } + + if (!result) + { + if (authSignData.hCertStoreHandle != IntPtr.Zero) + PInvoke.CertCloseStore(authSignData.hCertStoreHandle, 0); + + PInvoke.CertCloseStore(hSystemStore, 0); + return false; + } + + signDataChain.Add(authSignData); + GetNestedSignerInfo(ref authSignData, signDataChain); + + for (var i = 0; i < signDataChain.Count; i++) + { + if (ct.IsCancellationRequested) + { + PInvoke.CertCloseStore(hSystemStore, 0); + return false; + } + + CERT_CONTEXT* pCurrContext = null; + CMSG_SIGNER_INFO* pCounterSigner = null; + var signNode = new SignNodeInfo(); + + GetCounterSignerInfo(signDataChain[i].pSignerInfo, &pCounterSigner); + if (pCounterSigner is not null) + GetCounterSignerData(pCounterSigner, signNode.CounterSign); + else + GetGeneralizedTimeStamp(signDataChain[i].pSignerInfo, signNode.CounterSign); + + var pszObjId = signDataChain[i].pSignerInfo->HashAlgorithm.pszObjId; + var szObjId = new string((sbyte*)(byte*)pszObjId); + CalculateDigestAlgorithm(szObjId, signNode); + (_, signNode.Version) = CalculateSignVersion(signDataChain[i].pSignerInfo->dwVersion); + + + var pIssuer = &(signDataChain[i].pSignerInfo->Issuer); + pCurrContext = PInvoke.CertFindCertificateInStore( + signDataChain[i].hCertStoreHandle, + ENCODING, + 0, + CERT_FIND_FLAGS.CERT_FIND_ISSUER_NAME, + pIssuer, + null + ); + + result = pCurrContext is not null; + while (result) + { + var pOrigContext = pCurrContext; + result = GetSignerSignatureInfo( + hSystemStore, + signDataChain[i].hCertStoreHandle, + pOrigContext, + ref pCurrContext, + signNode + ); + PInvoke.CertFreeCertificateContext(pOrigContext); + } + + if (pCurrContext is not null) + PInvoke.CertFreeCertificateContext(pCurrContext); + + if (pCounterSigner is not null) + NativeMemory.Free(pCounterSigner); + + if (signDataChain[i].pSignerInfo is not null) + NativeMemory.Free(signDataChain[i].pSignerInfo); + + if (!signDataChain[i].hCertStoreHandle.IsNull) + PInvoke.CertCloseStore(signDataChain[i].hCertStoreHandle, 0); + + succeded = true; + signNode.IsValid = VerifyySignature(fileName); + signNode.Index = i; + signChain.Add(signNode); + } + + PInvoke.CertCloseStore(hSystemStore, 0); + return succeded; + } + + private unsafe static bool VerifyySignature(string certPath) + { + int res = 1; + var sFileInfo = (uint)Marshal.SizeOf(); + var sData = (uint)Marshal.SizeOf(); + var actionGuid = new Guid("{00AAC56B-CD44-11D0-8CC2-00C04FC295EE}"); + + fixed (char* pCertPath = certPath) + { + var fileInfo = new WINTRUST_FILE_INFO + { + cbStruct = sFileInfo, + pcwszFilePath = (PCWSTR)pCertPath, + hFile = (HANDLE)null, + pgKnownSubject = null + }; + + var wintrustData = new WINTRUST_DATA + { + cbStruct = sData, + pPolicyCallbackData = null, + pSIPClientData = null, + dwUIChoice = WINTRUST_DATA_UICHOICE.WTD_UI_NONE, + fdwRevocationChecks = 0, // No revocation checking + dwUnionChoice = WINTRUST_DATA_UNION_CHOICE.WTD_CHOICE_FILE, + dwStateAction = WINTRUST_DATA_STATE_ACTION.WTD_STATEACTION_VERIFY, + hWVTStateData = (HANDLE)null, + pwszURLReference = null, + dwUIContext = 0, + Anonymous = new WINTRUST_DATA._Anonymous_e__Union + { + pFile = &fileInfo, + }, + }; + + res = PInvoke.WinVerifyTrust((HWND)null, ref actionGuid, &wintrustData); + + // Release hWVTStateData + wintrustData.dwStateAction = WINTRUST_DATA_STATE_ACTION.WTD_STATEACTION_CLOSE; + PInvoke.WinVerifyTrust((HWND)null, ref actionGuid, &wintrustData); + } + + return res == 0; + } + + private unsafe static bool TryGetSignerInfo( + string fileName, + out void* hMsg, + out HCERTSTORE hCertStore, + out CMSG_SIGNER_INFO* pSignerInfo, + out uint signerSize, + uint index = 0) + { + CERT_QUERY_ENCODING_TYPE encoding = 0; + CERT_QUERY_CONTENT_TYPE dummy = 0; + CERT_QUERY_FORMAT_TYPE dummy2 = 0; + void* pDummy = null; + BOOL result = false; + + HCERTSTORE hCertStoreTmp = HCERTSTORE.Null; + void* hMsgTmp = null; + + fixed (char* pFileName = fileName) + { + result = PInvoke.CryptQueryObject( + CERT_QUERY_OBJECT_TYPE.CERT_QUERY_OBJECT_FILE, + pFileName, + CERT_QUERY_CONTENT_TYPE_FLAGS.CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED, + CERT_QUERY_FORMAT_TYPE_FLAGS.CERT_QUERY_FORMAT_FLAG_BINARY, + 0, + &encoding, + &dummy, + &dummy2, + &hCertStoreTmp, + &hMsgTmp, + &pDummy + ); + } + + hCertStore = hCertStoreTmp; + hMsg = hMsgTmp; + pSignerInfo = null; + signerSize = 0; + + if (!result) + return false; + + var vpSignerInfo = (void*)pSignerInfo; + result = CustomCryptMsgGetParam( + hMsg, + CMSG_SIGNER_INFO_PARAM, + index, + ref vpSignerInfo, + ref signerSize + ); + pSignerInfo = (CMSG_SIGNER_INFO*)vpSignerInfo; + + return result; + } + + private unsafe static bool GetCounterSignerInfo( + CMSG_SIGNER_INFO* pSignerInfo, + CMSG_SIGNER_INFO** pTargetSigner) + { + uint objSize = 0; + if (pSignerInfo is null || pTargetSigner is null) + return false; + + try + { + *pTargetSigner = null; + CRYPT_ATTRIBUTE* attr = null; + var res = TryGetUnauthAttr(pSignerInfo, szOID_RSA_counterSign, ref attr); + if (!res || attr is null) + return false; + + var pkcs7_signer_info = (PCSTR)(byte*)500; + var result = PInvoke.CryptDecodeObject( + ENCODING, + pkcs7_signer_info, + attr->rgValue[0].pbData, + attr->rgValue[0].cbData, + 0, + null, + &objSize + ); + if (!result) + return false; + + *pTargetSigner = (CMSG_SIGNER_INFO*)NativeMemory.Alloc(objSize); + if (*pTargetSigner is null) + return false; + + result = PInvoke.CryptDecodeObject( + ENCODING, + pkcs7_signer_info, + attr->rgValue[0].pbData, + attr->rgValue[0].cbData, + 0, + *pTargetSigner, + &objSize + ); + if (!result) + return false; + } + finally + { + } + + return true; + } + + private unsafe static bool GetCounterSignerData(CMSG_SIGNER_INFO* pSignerInfo, SignCounterSign counterSign) + { + CRYPT_ATTRIBUTE* attr = null; + var res = TryGetAuthAttr(pSignerInfo, szOID_RSA_signingTime, ref attr); + if (!res || attr is null) + return false; + + var data = (uint)Marshal.SizeOf(); + var ft = (System.Runtime.InteropServices.ComTypes.FILETIME*)NativeMemory.Alloc(data); + try + { + var pkcs_utc_time = (PCSTR)(byte*)17; + var result = PInvoke.CryptDecodeObject( + ENCODING, + pkcs_utc_time, + attr->rgValue[0].pbData, + attr->rgValue[0].cbData, + 0, + ft, + &data + ); + if (!result) + return false; + + PInvoke.FileTimeToLocalFileTime(*ft, out var lft); + PInvoke.FileTimeToSystemTime(lft, out var st); + counterSign.TimeStamp = TimeToString(null, &st); + + return true; + } + finally + { + NativeMemory.Free(ft); + } + } + + private unsafe static bool ParseDERFindType( + int typeSearch, + byte* pbSignature, + uint size, + ref uint positionFound, + ref uint lengthFound) + { + uint position = 0; + uint sizeFound = 0; + uint bytesParsed = 0; + var iType = 0; + var iClass = 0; + positionFound = 0; + lengthFound = 0; + if (pbSignature is null) + return false; + + while (size > position) + { + if (!SafeToReadNBytes(size, position, 2)) + return false; + + ParseDERType(pbSignature[position], ref iType, ref iClass); + switch (iType) + { + case 0x05: // Null + ++position; + if (pbSignature[position] != 0x00) + return false; + + ++position; + break; + + case 0x06: // Object Identifier + ++position; + if (!SafeToReadNBytes(size - position, 1, pbSignature[position])) + return false; + + position += 1u + pbSignature[position]; + break; + + case 0x00: // ? + case 0x01: // Boolean + case 0x02: // Integer + case 0x03: // Bit String + case 0x04: // Octet String + case 0x0A: // enumerated + case 0x0C: // UTF8string + case 0x13: // printable string + case 0x14: // T61 string + case 0x16: // IA5String + case 0x17: // UTC time + case 0x18: // Generalized time + case 0x1E: // BMPstring + ++position; + if (!ParseDERSize( + pbSignature + position, + size - position, + ref sizeFound, + ref bytesParsed)) + { + return false; + } + + position += bytesParsed; + if (!SafeToReadNBytes(size - position, 0, sizeFound)) + return false; + + if (typeSearch == iType) + { + positionFound = position; + lengthFound = sizeFound; + + return true; + } + + position += sizeFound; + break; + + case 0x20: // context specific + case 0x21: // context specific + case 0x23: // context specific + case 0x24: // context specific + case 0x30: // sequence + case 0x31: // set + position++; + if (!ParseDERSize( + pbSignature + position, + size - position, + ref sizeFound, + ref bytesParsed)) + { + return false; + } + + position += bytesParsed; + break; + + case 0x22: // ? + position += 2; + break; + + default: + return false; + } + } + + return false; + } + + private unsafe static bool GetGeneralizedTimeStamp( + CMSG_SIGNER_INFO* pSignerInfo, + SignCounterSign counter) + { + uint positionFound = 0; + uint lengthFound = 0; + CRYPT_ATTRIBUTE* attr = null; + var res = TryGetUnauthAttr(pSignerInfo, szOID_RFC3161_counterSign, ref attr); + if (!res || attr is null) + return false; + + var result = ParseDERFindType( + 0x04, + attr->rgValue[0].pbData, + attr->rgValue[0].cbData, + ref positionFound, + ref lengthFound); + if (!result) + return false; + + // Counter Signer Timstamp + var pbOctetString = attr->rgValue[0].pbData + positionFound; + counter.TimeStamp = GetTimeStampFromDER(pbOctetString, lengthFound, ref positionFound); + + return true; + } + + private unsafe static string GetTimeStampFromDER(byte* pbOctetString, uint lengthFound, ref uint positionFound) + { + var result = ParseDERFindType( + 0x18, + pbOctetString, + lengthFound, + ref positionFound, + ref lengthFound + ); + if (!result) + return string.Empty; + + var st = new Windows.Win32.Foundation.SYSTEMTIME(); + var buffer = new string((sbyte*)(pbOctetString + positionFound)); + + _ = ushort.TryParse(buffer.AsSpan(0, 4), out st.wYear); + _ = ushort.TryParse(buffer.AsSpan(4, 2), out st.wMonth); + _ = ushort.TryParse(buffer.AsSpan(6, 2), out st.wDay); + _ = ushort.TryParse(buffer.AsSpan(8, 2), out st.wHour); + _ = ushort.TryParse(buffer.AsSpan(10, 2), out st.wMinute); + _ = ushort.TryParse(buffer.AsSpan(12, 2), out st.wSecond); + _ = ushort.TryParse(buffer.AsSpan(15, 3), out st.wMilliseconds); + + PInvoke.SystemTimeToFileTime(st, out var fft); + PInvoke.FileTimeToLocalFileTime(fft, out var lft); + PInvoke.FileTimeToSystemTime(lft, out var lst); + var timestamp = TimeToString(null, &lst); + + return timestamp; + } + + private unsafe static bool GetStringFromCertContext(CERT_CONTEXT* pCertContext, uint dwType, uint flag, CertNodeInfoItem info) + { + var data = PInvoke.CertGetNameString(pCertContext, dwType, flag, null, (PWSTR)null, 0); + if (data == 0) + { + PInvoke.CertFreeCertificateContext(pCertContext); + return false; + } + + var pszTempName = (PWSTR)NativeMemory.Alloc(data * sizeof(char)); + if (pszTempName.Value is null) + { + PInvoke.CertFreeCertificateContext(pCertContext); + NativeMemory.Free(pszTempName); + return false; + } + + data = PInvoke.CertGetNameString(pCertContext, dwType, flag, null, pszTempName, data); + if (data == 0) + { + NativeMemory.Free(pszTempName); + return false; + } + + var name = pszTempName.AsSpan().ToString(); + NativeMemory.Free(pszTempName); + if (flag == 0) + info.IssuedTo = StripString(name); + else + info.IssuedBy = StripString(name); + + return true; + } + + private unsafe static bool TryGetUnauthAttr(CMSG_SIGNER_INFO* pSignerInfo, string oid, ref CRYPT_ATTRIBUTE* attr) + { + int n = 0; + attr = null; + for (; n < pSignerInfo->UnauthAttrs.cAttr; n++) + { + attr = &pSignerInfo->UnauthAttrs.rgAttr[n]; + var objId = new string((sbyte*)(byte*)attr->pszObjId); + if (objId == oid) + break; + } + + return n < pSignerInfo->UnauthAttrs.cAttr; + } + + private unsafe static bool TryGetAuthAttr(CMSG_SIGNER_INFO* pSignerInfo, string oid, ref CRYPT_ATTRIBUTE* attr) + { + int n = 0; + attr = null; + for (; n < pSignerInfo->AuthAttrs.cAttr; n++) + { + attr = &pSignerInfo->AuthAttrs.rgAttr[n]; + var objId = new string((sbyte*)(byte*)attr->pszObjId); + if (objId == oid) + break; + } + + return n < pSignerInfo->AuthAttrs.cAttr; + } + + private unsafe static bool GetNestedSignerInfo(ref SignDataHandle AuthSignData, List NestedChain) + { + var succeded = false; + void* hNestedMsg = null; + if (AuthSignData.pSignerInfo is null) + return false; + + try + { + CRYPT_ATTRIBUTE* attr = null; + var res = TryGetUnauthAttr(AuthSignData.pSignerInfo, szOID_NESTED_SIGNATURE, ref attr); + if (!res || attr is null) + return false; + + var cbCurrData = attr->rgValue[0].cbData; + var pbCurrData = attr->rgValue[0].pbData; + var upperBound = AuthSignData.pSignerInfo + AuthSignData.dwObjSize; + while (pbCurrData > AuthSignData.pSignerInfo && pbCurrData < upperBound) + { + var nestedHandle = new SignDataHandle() { dwObjSize = 0, pSignerInfo = null, hCertStoreHandle = HCERTSTORE.Null }; + if (!Memcmp(pbCurrData, SG_ProtoCoded) || + !Memcmp(pbCurrData + 6, SG_SignedData)) + { + break; + } + + hNestedMsg = PInvoke.CryptMsgOpenToDecode( + PKCS_7_ASN_ENCODING | CRYPT_ASN_ENCODING, + 0, + 0, + HCRYPTPROV_LEGACY.Null, + null, + null + ); + if (hNestedMsg is null) + return false; + + cbCurrData = XCHWordLitend(*(ushort*)(pbCurrData + 2)) + 4u; + var pbNextData = pbCurrData; + pbNextData += EightByteAlign(cbCurrData, (long)pbCurrData); + var result = PInvoke.CryptMsgUpdate(hNestedMsg, pbCurrData, cbCurrData, true); + pbCurrData = pbNextData; + if (!result) + continue; + + var pSignerInfo = (void*)nestedHandle.pSignerInfo; + result = CustomCryptMsgGetParam( + hNestedMsg, + CMSG_SIGNER_INFO_PARAM, + 0, + ref pSignerInfo, + ref nestedHandle.dwObjSize + ); + nestedHandle.pSignerInfo = (CMSG_SIGNER_INFO*)pSignerInfo; + if (!result) + continue; + + var cert_store_prov_msg = (PCSTR)(byte*)1; + nestedHandle.hCertStoreHandle = PInvoke.CertOpenStore( + cert_store_prov_msg, + ENCODING, + HCRYPTPROV_LEGACY.Null, + 0, + hNestedMsg + ); + + succeded = true; + NestedChain.Add(nestedHandle); + } + } + finally + { + if (hNestedMsg is not null) + PInvoke.CryptMsgClose(hNestedMsg); + } + + return succeded; + } + + private unsafe static bool CustomCryptMsgGetParam( + void* hCryptMsg, + uint paramType, + uint index, + ref void* pParam, + ref uint outSize) + { + bool result; + uint size = 0; + + result = PInvoke.CryptMsgGetParam( + hCryptMsg, + paramType, + index, + null, + ref size + ); + if (!result) + return false; + + pParam = NativeMemory.Alloc(size); + if (pParam is null) + return false; + + result = PInvoke.CryptMsgGetParam( + hCryptMsg, + paramType, + index, + pParam, + ref size + ); + if (!result) + return false; + + outSize = size; + return true; + } + + private static ushort XCHWordLitend(uint num) + => (ushort)(((((ushort)num) & 0xFF00) >> 8) | (((ushort)num) & 0x00FF) << 8); + + private static long EightByteAlign(long offset, long b) + => ((offset + b + 7) & 0xFFFFFFF8L) - (b & 0xFFFFFFF8L); + + private unsafe static bool Memcmp(byte* ptr1, byte[] arr) + { + for (var i = 0; i < arr.Length; i++) + { + if (ptr1[i] != arr[i]) + return false; + } + + return true; + } + + private static (bool, string) CalculateSignVersion(uint versionNumber) + { + var res = versionNumber switch + { + CERT_V1 => "V1", + CERT_V2 => "V2", + CERT_V3 => "V3", + _ => "Unknown", + }; + return (true, res); + } + + private static bool CalculateDigestAlgorithm(string pszObjId, SignNodeInfo info) + { + if (string.IsNullOrWhiteSpace(pszObjId)) + info.DigestAlgorithm = "Unknown"; + else if (pszObjId == szOID_OIWSEC_sha1) + info.DigestAlgorithm = "SHA1"; + else if (pszObjId == szOID_RSA_MD5) + info.DigestAlgorithm = "MD5"; + else if (pszObjId == szOID_NIST_sha256) + info.DigestAlgorithm = "SHA256"; + else + info.DigestAlgorithm = StripString(pszObjId); + + return true; + } + + private static bool SafeToReadNBytes(uint size, uint start, uint requestSize) + => size - start >= requestSize; + + private static void ParseDERType(byte bIn, ref int iType, ref int iClass) + { + iType = bIn & 0x3F; + iClass = bIn >> 6; + } + + private unsafe static uint ReadNumberFromNBytes(byte* pbSignature, uint start, uint requestSize) + { + uint number = 0; + for (var i = 0; i < requestSize; i++) + number = number * 0x100 + pbSignature[start + i]; + + return number; + } + + private unsafe static bool ParseDERSize(byte* pbSignature, uint size, ref uint sizeFound, ref uint bytesParsed) + { + if (pbSignature[0] > 0x80 && !SafeToReadNBytes(size, 1, pbSignature[0] - 0x80u)) + return false; + + if (pbSignature[0] <= 0x80) + { + sizeFound = pbSignature[0]; + bytesParsed = 1; + } + else + { + sizeFound = ReadNumberFromNBytes(pbSignature, 1, pbSignature[0] - 0x80u); + bytesParsed = pbSignature[0] - 0x80u + 1; + } + + return true; + } + + private static string StripString(string? str) + { + return str? + .Replace("\t", "")? + .Replace("\n", "")? + .Replace("\r", "")? + .Replace(((char)0).ToString(), "") ?? string.Empty; + } + + private unsafe static string TimeToString( + System.Runtime.InteropServices.ComTypes.FILETIME* pftIn, + Windows.Win32.Foundation.SYSTEMTIME* pstIn = null) + { + if (pstIn is null) + { + if (pftIn is null) + return string.Empty; + + PInvoke.FileTimeToSystemTime(*pftIn, out var sysTime); + pstIn = &sysTime; + } + + var date = new DateTime( + pstIn->wYear, pstIn->wMonth, pstIn->wDay, + pstIn->wHour, pstIn->wMinute, pstIn->wSecond + ); + + return formatter.ToLongLabel(date); + } + + class SignCounterSign + { + public string TimeStamp { get; set; } = string.Empty; + } + + class SignNodeInfo + { + public bool IsValid { get; set; } = false; + public string DigestAlgorithm { get; set; } = string.Empty; + public string Version { get; set; } = string.Empty; + public int Index { get; set; } = 0; + public SignCounterSign CounterSign { get; set; } = new(); + public List CertChain { get; set; } = []; + } + } +} diff --git a/src/Files.App/Utils/StatusCenter/StatusCenterHelper.cs b/src/Files.App/Utils/StatusCenter/StatusCenterHelper.cs index 48b818cffb4d..97976df8129e 100644 --- a/src/Files.App/Utils/StatusCenter/StatusCenterHelper.cs +++ b/src/Files.App/Utils/StatusCenter/StatusCenterHelper.cs @@ -640,218 +640,207 @@ public static void UpdateCardStrings(StatusCenterItem card) destinationDirName = destinationPath.Split('\\').Last(); } - string headerString = string.IsNullOrWhiteSpace(card.HeaderStringResource) ? string.Empty : card.HeaderStringResource.GetLocalizedResource(); - string subHeaderString = string.IsNullOrWhiteSpace(card.SubHeaderStringResource) ? string.Empty : card.SubHeaderStringResource.GetLocalizedResource(); - // Update string resources switch (card.Operation) { case FileOperationType.Copy: { - if (headerString is not null) + string headerString = string.IsNullOrWhiteSpace(card.HeaderStringResource) ? string.Empty + : card.HeaderStringResource.GetLocalizedFormatResource(card.TotalItemsCount, destinationDirName); + card.Header = card.FileSystemOperationReturnResult switch { - card.Header = card.FileSystemOperationReturnResult switch - { - ReturnResult.Cancelled => string.Format(headerString, card.TotalItemsCount, destinationDirName), - ReturnResult.Success => string.Format(headerString, card.TotalItemsCount, destinationDirName), - ReturnResult.Failed => string.Format(headerString, card.TotalItemsCount, destinationDirName), - ReturnResult.InProgress => string.Format(headerString, card.TotalItemsCount, destinationDirName), - _ => string.Format(headerString, card.TotalItemsCount, destinationDirName), - }; - } - if (subHeaderString is not null) + ReturnResult.Cancelled => string.Format(headerString, card.TotalItemsCount, destinationDirName), + ReturnResult.Success => string.Format(headerString, card.TotalItemsCount, destinationDirName), + ReturnResult.Failed => string.Format(headerString, card.TotalItemsCount, destinationDirName), + ReturnResult.InProgress => string.Format(headerString, card.TotalItemsCount, destinationDirName), + _ => string.Format(headerString, card.TotalItemsCount, destinationDirName), + }; + + string subHeaderString = string.IsNullOrWhiteSpace(card.SubHeaderStringResource) ? string.Empty + : card.SubHeaderStringResource.GetLocalizedFormatResource(card.TotalItemsCount, sourcePath, destinationPath); + card.SubHeader = card.FileSystemOperationReturnResult switch { - card.SubHeader = card.FileSystemOperationReturnResult switch - { - ReturnResult.Cancelled => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), - ReturnResult.Success => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), - ReturnResult.Failed => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), - ReturnResult.InProgress => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), - _ => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), - }; - } + ReturnResult.Cancelled => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), + ReturnResult.Success => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), + ReturnResult.Failed => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), + ReturnResult.InProgress => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), + _ => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), + }; break; } case FileOperationType.Move: { - if (headerString is not null) + string headerString = string.IsNullOrWhiteSpace(card.HeaderStringResource) ? string.Empty + : card.HeaderStringResource.GetLocalizedFormatResource(card.TotalItemsCount, destinationDirName); + card.Header = card.FileSystemOperationReturnResult switch { - card.Header = card.FileSystemOperationReturnResult switch - { - ReturnResult.Cancelled => string.Format(headerString, card.TotalItemsCount, destinationDirName), - ReturnResult.Success => string.Format(headerString, card.TotalItemsCount, destinationDirName), - ReturnResult.Failed => string.Format(headerString, card.TotalItemsCount, destinationDirName), - ReturnResult.InProgress => string.Format(headerString, card.TotalItemsCount, destinationDirName), - _ => string.Format(headerString, card.TotalItemsCount, destinationDirName), - }; - } - if (subHeaderString is not null) + ReturnResult.Cancelled => string.Format(headerString, card.TotalItemsCount, destinationDirName), + ReturnResult.Success => string.Format(headerString, card.TotalItemsCount, destinationDirName), + ReturnResult.Failed => string.Format(headerString, card.TotalItemsCount, destinationDirName), + ReturnResult.InProgress => string.Format(headerString, card.TotalItemsCount, destinationDirName), + _ => string.Format(headerString, card.TotalItemsCount, destinationDirName), + }; + + string subHeaderString = string.IsNullOrWhiteSpace(card.SubHeaderStringResource) ? string.Empty + : card.SubHeaderStringResource.GetLocalizedFormatResource(card.TotalItemsCount, sourcePath, destinationPath); + card.SubHeader = card.FileSystemOperationReturnResult switch { - card.SubHeader = card.FileSystemOperationReturnResult switch - { - ReturnResult.Cancelled => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), - ReturnResult.Success => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), - ReturnResult.Failed => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), - ReturnResult.InProgress => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), - _ => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), - }; - } + ReturnResult.Cancelled => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), + ReturnResult.Success => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), + ReturnResult.Failed => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), + ReturnResult.InProgress => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), + _ => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), + }; break; } case FileOperationType.Delete: { - if (headerString is not null) + string headerString = string.IsNullOrWhiteSpace(card.HeaderStringResource) ? string.Empty + : card.HeaderStringResource.GetLocalizedFormatResource(card.TotalItemsCount, sourceDirName); + card.Header = card.FileSystemOperationReturnResult switch { - card.Header = card.FileSystemOperationReturnResult switch - { - ReturnResult.Cancelled => string.Format(headerString, card.TotalItemsCount, sourceDirName), - ReturnResult.Success => string.Format(headerString, card.TotalItemsCount, sourceDirName), - ReturnResult.Failed => string.Format(headerString, card.TotalItemsCount, sourceDirName), - ReturnResult.InProgress => string.Format(headerString, card.TotalItemsCount, sourceDirName), - _ => string.Format(headerString, card.TotalItemsCount, sourceDirName), - }; - } - if (subHeaderString is not null) + ReturnResult.Cancelled => string.Format(headerString, card.TotalItemsCount, sourceDirName), + ReturnResult.Success => string.Format(headerString, card.TotalItemsCount, sourceDirName), + ReturnResult.Failed => string.Format(headerString, card.TotalItemsCount, sourceDirName), + ReturnResult.InProgress => string.Format(headerString, card.TotalItemsCount, sourceDirName), + _ => string.Format(headerString, card.TotalItemsCount, sourceDirName), + }; + + string subHeaderString = string.IsNullOrWhiteSpace(card.SubHeaderStringResource) ? string.Empty + : card.SubHeaderStringResource.GetLocalizedFormatResource(card.TotalItemsCount, sourcePath); + card.SubHeader = card.FileSystemOperationReturnResult switch { - card.SubHeader = card.FileSystemOperationReturnResult switch - { - ReturnResult.Cancelled => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), - ReturnResult.Success => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), - ReturnResult.Failed => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), - ReturnResult.InProgress => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), - _ => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), - }; - } + ReturnResult.Cancelled => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), + ReturnResult.Success => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), + ReturnResult.Failed => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), + ReturnResult.InProgress => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), + _ => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), + }; break; } case FileOperationType.Recycle: { - if (headerString is not null) + string headerString = string.IsNullOrWhiteSpace(card.HeaderStringResource) ? string.Empty + : card.HeaderStringResource.GetLocalizedFormatResource(card.TotalItemsCount, sourceDirName); + card.Header = card.FileSystemOperationReturnResult switch { - card.Header = card.FileSystemOperationReturnResult switch - { - ReturnResult.Cancelled => string.Format(headerString, card.TotalItemsCount, sourceDirName), - ReturnResult.Success => string.Format(headerString, card.TotalItemsCount, sourceDirName), - ReturnResult.Failed => string.Format(headerString, card.TotalItemsCount, sourceDirName), - ReturnResult.InProgress => string.Format(headerString, card.TotalItemsCount, sourceDirName), - _ => string.Format(headerString, card.TotalItemsCount, sourceDirName), - }; - } - if (subHeaderString is not null) + ReturnResult.Cancelled => string.Format(headerString, card.TotalItemsCount, sourceDirName), + ReturnResult.Success => string.Format(headerString, card.TotalItemsCount, sourceDirName), + ReturnResult.Failed => string.Format(headerString, card.TotalItemsCount, sourceDirName), + ReturnResult.InProgress => string.Format(headerString, card.TotalItemsCount, sourceDirName), + _ => string.Format(headerString, card.TotalItemsCount, sourceDirName), + }; + + string subHeaderString = string.IsNullOrWhiteSpace(card.SubHeaderStringResource) ? string.Empty + : card.SubHeaderStringResource.GetLocalizedFormatResource(card.TotalItemsCount, sourcePath); + card.SubHeader = card.FileSystemOperationReturnResult switch { - card.SubHeader = card.FileSystemOperationReturnResult switch - { - ReturnResult.Cancelled => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), - ReturnResult.Success => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), - ReturnResult.Failed => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), - ReturnResult.InProgress => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), - _ => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), - }; - } + ReturnResult.Cancelled => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), + ReturnResult.Success => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), + ReturnResult.Failed => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), + ReturnResult.InProgress => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), + _ => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), + }; break; } case FileOperationType.Extract: { - if (headerString is not null) + string headerString = string.IsNullOrWhiteSpace(card.HeaderStringResource) ? string.Empty + : card.HeaderStringResource.GetLocalizedFormatResource(sourceFileName, destinationDirName); + card.Header = card.FileSystemOperationReturnResult switch { - card.Header = card.FileSystemOperationReturnResult switch - { - ReturnResult.Cancelled => string.Format(headerString, sourceFileName, destinationDirName), - ReturnResult.Success => string.Format(headerString, sourceFileName, destinationDirName), - ReturnResult.Failed => string.Format(headerString, sourceFileName, destinationDirName), - ReturnResult.InProgress => string.Format(headerString, sourceFileName, destinationDirName), - _ => string.Format(headerString, sourceFileName, destinationDirName), - }; - } - if (subHeaderString is not null) + ReturnResult.Cancelled => string.Format(headerString, sourceFileName, destinationDirName), + ReturnResult.Success => string.Format(headerString, sourceFileName, destinationDirName), + ReturnResult.Failed => string.Format(headerString, sourceFileName, destinationDirName), + ReturnResult.InProgress => string.Format(headerString, sourceFileName, destinationDirName), + _ => string.Format(headerString, sourceFileName, destinationDirName), + }; + + string subHeaderString = string.IsNullOrWhiteSpace(card.SubHeaderStringResource) ? string.Empty + : card.SubHeaderStringResource.GetLocalizedFormatResource(sourceFileName, sourcePath, destinationPath); + card.SubHeader = card.FileSystemOperationReturnResult switch { - card.SubHeader = card.FileSystemOperationReturnResult switch - { - ReturnResult.Cancelled => string.Format(subHeaderString, sourceFileName, sourcePath, destinationPath), - ReturnResult.Success => string.Format(subHeaderString, sourceFileName, sourcePath, destinationPath), - ReturnResult.Failed => string.Format(subHeaderString, sourceFileName, sourcePath, destinationPath), - ReturnResult.InProgress => string.Format(subHeaderString, sourceFileName, sourcePath, destinationPath), - _ => string.Format(subHeaderString, sourceFileName, sourcePath, destinationPath), - }; - } + ReturnResult.Cancelled => string.Format(subHeaderString, sourceFileName, sourcePath, destinationPath), + ReturnResult.Success => string.Format(subHeaderString, sourceFileName, sourcePath, destinationPath), + ReturnResult.Failed => string.Format(subHeaderString, sourceFileName, sourcePath, destinationPath), + ReturnResult.InProgress => string.Format(subHeaderString, sourceFileName, sourcePath, destinationPath), + _ => string.Format(subHeaderString, sourceFileName, sourcePath, destinationPath), + }; break; } case FileOperationType.Compressed: { - if (headerString is not null) + string headerString = string.IsNullOrWhiteSpace(card.HeaderStringResource) ? string.Empty + : card.HeaderStringResource.GetLocalizedFormatResource(card.TotalItemsCount, destinationDirName); + card.Header = card.FileSystemOperationReturnResult switch { - card.Header = card.FileSystemOperationReturnResult switch - { - ReturnResult.Cancelled => string.Format(headerString, card.TotalItemsCount, destinationDirName), - ReturnResult.Success => string.Format(headerString, card.TotalItemsCount, destinationDirName), - ReturnResult.Failed => string.Format(headerString, card.TotalItemsCount, destinationDirName), - ReturnResult.InProgress => string.Format(headerString, card.TotalItemsCount, destinationDirName), - _ => string.Format(headerString, card.TotalItemsCount, destinationDirName), - }; - } - if (subHeaderString is not null) + ReturnResult.Cancelled => string.Format(headerString, card.TotalItemsCount, destinationDirName), + ReturnResult.Success => string.Format(headerString, card.TotalItemsCount, destinationDirName), + ReturnResult.Failed => string.Format(headerString, card.TotalItemsCount, destinationDirName), + ReturnResult.InProgress => string.Format(headerString, card.TotalItemsCount, destinationDirName), + _ => string.Format(headerString, card.TotalItemsCount, destinationDirName), + }; + + string subHeaderString = string.IsNullOrWhiteSpace(card.SubHeaderStringResource) ? string.Empty + : card.SubHeaderStringResource.GetLocalizedFormatResource(card.TotalItemsCount, sourcePath, destinationPath); + card.SubHeader = card.FileSystemOperationReturnResult switch { - card.SubHeader = card.FileSystemOperationReturnResult switch - { - ReturnResult.Cancelled => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), - ReturnResult.Success => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), - ReturnResult.Failed => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), - ReturnResult.InProgress => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), - _ => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), - }; - } + ReturnResult.Cancelled => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), + ReturnResult.Success => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), + ReturnResult.Failed => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), + ReturnResult.InProgress => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), + _ => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), + }; break; } case FileOperationType.GitClone: { - if (headerString is not null) + string headerString = string.IsNullOrWhiteSpace(card.HeaderStringResource) ? string.Empty + : card.HeaderStringResource.GetLocalizedFormatResource(sourcePath, destinationDirName); + card.Header = card.FileSystemOperationReturnResult switch { - card.Header = card.FileSystemOperationReturnResult switch - { - ReturnResult.Cancelled => string.Format(headerString, sourcePath, destinationDirName), - ReturnResult.Success => string.Format(headerString, sourcePath, destinationDirName), - ReturnResult.Failed => string.Format(headerString, sourcePath, destinationDirName), - ReturnResult.InProgress => string.Format(headerString, sourcePath, destinationDirName), - _ => string.Format(headerString, sourcePath, destinationDirName), - }; - } - if (subHeaderString is not null) + ReturnResult.Cancelled => string.Format(headerString, sourcePath, destinationDirName), + ReturnResult.Success => string.Format(headerString, sourcePath, destinationDirName), + ReturnResult.Failed => string.Format(headerString, sourcePath, destinationDirName), + ReturnResult.InProgress => string.Format(headerString, sourcePath, destinationDirName), + _ => string.Format(headerString, sourcePath, destinationDirName), + }; + + string subHeaderString = string.IsNullOrWhiteSpace(card.SubHeaderStringResource) ? string.Empty + : card.SubHeaderStringResource.GetLocalizedFormatResource(card.TotalItemsCount, sourcePath, destinationPath); + card.SubHeader = card.FileSystemOperationReturnResult switch { - card.SubHeader = card.FileSystemOperationReturnResult switch - { - ReturnResult.Cancelled => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), - ReturnResult.Success => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), - ReturnResult.Failed => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), - ReturnResult.InProgress => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), - _ => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), - }; - } + ReturnResult.Cancelled => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), + ReturnResult.Success => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), + ReturnResult.Failed => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), + ReturnResult.InProgress => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), + _ => string.Format(subHeaderString, card.TotalItemsCount, sourcePath, destinationPath), + }; break; } case FileOperationType.InstallFont: { - if (headerString is not null) + string headerString = string.IsNullOrWhiteSpace(card.HeaderStringResource) ? string.Empty + : card.HeaderStringResource.GetLocalizedFormatResource(card.TotalItemsCount); + card.Header = card.FileSystemOperationReturnResult switch { - card.Header = card.FileSystemOperationReturnResult switch - { - ReturnResult.Cancelled => string.Format(headerString, card.TotalItemsCount), - ReturnResult.Success => string.Format(headerString, card.TotalItemsCount), - ReturnResult.Failed => string.Format(headerString, card.TotalItemsCount), - ReturnResult.InProgress => string.Format(headerString, card.TotalItemsCount), - _ => string.Format(headerString, card.TotalItemsCount), - }; - } - if (subHeaderString is not null) + ReturnResult.Cancelled => string.Format(headerString, card.TotalItemsCount), + ReturnResult.Success => string.Format(headerString, card.TotalItemsCount), + ReturnResult.Failed => string.Format(headerString, card.TotalItemsCount), + ReturnResult.InProgress => string.Format(headerString, card.TotalItemsCount), + _ => string.Format(headerString, card.TotalItemsCount), + }; + + string subHeaderString = string.IsNullOrWhiteSpace(card.SubHeaderStringResource) ? string.Empty + : card.SubHeaderStringResource.GetLocalizedFormatResource(card.TotalItemsCount, sourcePath); + card.SubHeader = card.FileSystemOperationReturnResult switch { - card.SubHeader = card.FileSystemOperationReturnResult switch - { - ReturnResult.Cancelled => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), - ReturnResult.Success => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), - ReturnResult.Failed => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), - ReturnResult.InProgress => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), - _ => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), - }; - } + ReturnResult.Cancelled => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), + ReturnResult.Success => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), + ReturnResult.Failed => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), + ReturnResult.InProgress => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), + _ => string.Format(subHeaderString, card.TotalItemsCount, sourcePath), + }; break; } } diff --git a/src/Files.App/Utils/StatusCenter/StatusCenterItem.cs b/src/Files.App/Utils/StatusCenter/StatusCenterItem.cs index bba1ee1436a3..f715fd7e94a4 100644 --- a/src/Files.App/Utils/StatusCenter/StatusCenterItem.cs +++ b/src/Files.App/Utils/StatusCenter/StatusCenterItem.cs @@ -1,9 +1,9 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System.Windows.Input; using Microsoft.UI.Xaml.Media; using System.Numerics; +using System.Windows.Input; namespace Files.App.Utils.StatusCenter { @@ -301,7 +301,7 @@ private void ReportProgress(StatusCenterItemProgressModel value) { Message = $"{string.Format( - Strings.StatusCenter_ProcessedItems_Header.GetLocalizedFormatResource(value.ProcessedItemsCount), + Strings.StatusCenter_ProcessedItems_Header.GetLocalizedFormatResource(value.ProcessedItemsCount, value.ItemsCount), value.ProcessedItemsCount, value.ItemsCount)}"; } diff --git a/src/Files.App/Utils/Storage/Collection/ConcurrentCollection.cs b/src/Files.App/Utils/Storage/Collection/ConcurrentCollection.cs index 693babf28af9..ba52779a1a66 100644 --- a/src/Files.App/Utils/Storage/Collection/ConcurrentCollection.cs +++ b/src/Files.App/Utils/Storage/Collection/ConcurrentCollection.cs @@ -8,7 +8,7 @@ namespace Files.App.Helpers public sealed class ConcurrentCollection : ICollection, IList, ICollection, IList { private readonly object syncRoot = new object(); - + private readonly List collection = []; public int Count diff --git a/src/Files.App/Utils/Storage/Collection/GroupedCollection.cs b/src/Files.App/Utils/Storage/Collection/GroupedCollection.cs index fb1f88962126..9466d24ced31 100644 --- a/src/Files.App/Utils/Storage/Collection/GroupedCollection.cs +++ b/src/Files.App/Utils/Storage/Collection/GroupedCollection.cs @@ -66,7 +66,7 @@ public void InitializeExtendedGroupHeaderInfoAsync() public override void BeginBulkOperation() { base.BeginBulkOperation(); - + Model.PausePropertyChangedNotifications(); } diff --git a/src/Files.App/Utils/Storage/Enumerators/UniversalStorageEnumerator.cs b/src/Files.App/Utils/Storage/Enumerators/UniversalStorageEnumerator.cs index 8d3600206886..4bbb4592f9c0 100644 --- a/src/Files.App/Utils/Storage/Enumerators/UniversalStorageEnumerator.cs +++ b/src/Files.App/Utils/Storage/Enumerators/UniversalStorageEnumerator.cs @@ -82,7 +82,7 @@ ex is FileNotFoundException || { if (defaultIconPairs?.ContainsKey(string.Empty) ?? false) folder.FileImage = defaultIconPairs[string.Empty]; - + tempList.Add(folder); } } @@ -96,7 +96,7 @@ ex is FileNotFoundException || if (!string.IsNullOrEmpty(fileEntry.FileExtension)) { var lowercaseExtension = fileEntry.FileExtension.ToLowerInvariant(); - + if (defaultIconPairs.ContainsKey(lowercaseExtension)) fileEntry.FileImage = defaultIconPairs[lowercaseExtension]; } diff --git a/src/Files.App/Utils/Storage/Enumerators/Win32StorageEnumerator.cs b/src/Files.App/Utils/Storage/Enumerators/Win32StorageEnumerator.cs index 380eebc9134c..bd86be9c4d3a 100644 --- a/src/Files.App/Utils/Storage/Enumerators/Win32StorageEnumerator.cs +++ b/src/Files.App/Utils/Storage/Enumerators/Win32StorageEnumerator.cs @@ -5,7 +5,6 @@ using Files.Shared.Helpers; using System.IO; using Windows.Storage; -using static Files.App.Helpers.Win32Helper; using FileAttributes = System.IO.FileAttributes; namespace Files.App.Utils.Storage diff --git a/src/Files.App/Utils/Storage/Helpers/DriveHelpers.cs b/src/Files.App/Utils/Storage/Helpers/DriveHelpers.cs index 5729042b3ee2..8fce543bdc55 100644 --- a/src/Files.App/Utils/Storage/Helpers/DriveHelpers.cs +++ b/src/Files.App/Utils/Storage/Helpers/DriveHelpers.cs @@ -93,8 +93,8 @@ public static async Task GetRootFromPathAsync(string devi } // Network share else if ( - ( devicePath.StartsWith(@"\\", StringComparison.Ordinal) || - GetDriveType(new SystemIO.DriveInfo(devicePath)) is DriveType.Network ) && + (devicePath.StartsWith(@"\\", StringComparison.Ordinal) || + GetDriveType(new SystemIO.DriveInfo(devicePath)) is DriveType.Network) && !devicePath.StartsWith(@"\\SHELL\", StringComparison.Ordinal) ) { diff --git a/src/Files.App/Utils/Storage/Helpers/FilePropertiesHelpers.cs b/src/Files.App/Utils/Storage/Helpers/FilePropertiesHelpers.cs index 2d62652bf0b6..70b2d66f3090 100644 --- a/src/Files.App/Utils/Storage/Helpers/FilePropertiesHelpers.cs +++ b/src/Files.App/Utils/Storage/Helpers/FilePropertiesHelpers.cs @@ -7,7 +7,6 @@ using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Media.Animation; -using Microsoft.Windows.ApplicationModel.Resources; using System.Collections.Concurrent; using Windows.Graphics; using Windows.Win32; @@ -21,12 +20,6 @@ public static class FilePropertiesHelpers { private static IAppThemeModeService AppThemeModeService { get; } = Ioc.Default.GetRequiredService(); - /// - /// Whether LayoutDirection (FlowDirection) is set to right-to-left (RTL) - /// - public static readonly bool FlowDirectionSettingIsRightToLeft = - new ResourceManager().CreateResourceContext().QualifierValues["LayoutDirection"] == "RTL"; - /// /// Get window handle (hWnd) of the given properties window instance /// @@ -110,7 +103,7 @@ public static void OpenPropertiesWindow(object item, IShellPage associatedInstan var width = Convert.ToInt32(800 * App.AppModel.AppWindowDPI); var height = Convert.ToInt32(500 * App.AppModel.AppWindowDPI); - propertiesWindow.AppWindow.Resize(new (width, height)); + propertiesWindow.AppWindow.Resize(new(width, height)); propertiesWindow.IsMinimizable = false; propertiesWindow.IsMaximizable = false; propertiesWindow.Content = frame; diff --git a/src/Files.App/Utils/Storage/Helpers/FilesystemResult.cs b/src/Files.App/Utils/Storage/Helpers/FilesystemResult.cs index 96de1a67e538..ccb51f9209c8 100644 --- a/src/Files.App/Utils/Storage/Helpers/FilesystemResult.cs +++ b/src/Files.App/Utils/Storage/Helpers/FilesystemResult.cs @@ -16,8 +16,8 @@ public class FilesystemResult public static implicit operator bool(FilesystemResult res) => res?.ErrorCode is FileSystemStatusCode.Success; public static explicit operator FilesystemResult(bool res) => new(res ? FileSystemStatusCode.Success : FileSystemStatusCode.Generic); - - + + public static implicit operator BOOL(FilesystemResult res) => res?.ErrorCode is FileSystemStatusCode.Success; public static explicit operator FilesystemResult(BOOL res) => new(res ? FileSystemStatusCode.Success : FileSystemStatusCode.Generic); } diff --git a/src/Files.App/Utils/Storage/Helpers/FolderHelpers.cs b/src/Files.App/Utils/Storage/Helpers/FolderHelpers.cs index e70b2bace5eb..74f0a37099f1 100644 --- a/src/Files.App/Utils/Storage/Helpers/FolderHelpers.cs +++ b/src/Files.App/Utils/Storage/Helpers/FolderHelpers.cs @@ -2,7 +2,6 @@ // Licensed under the MIT License. using System.IO; -using static Files.App.Helpers.Win32Helper; namespace Files.App.Utils.Storage { diff --git a/src/Files.App/Utils/Storage/Helpers/StorageFileExtensions.cs b/src/Files.App/Utils/Storage/Helpers/StorageFileExtensions.cs index 4e34d36aebbc..ba9ab3ba408a 100644 --- a/src/Files.App/Utils/Storage/Helpers/StorageFileExtensions.cs +++ b/src/Files.App/Utils/Storage/Helpers/StorageFileExtensions.cs @@ -152,6 +152,8 @@ public static async Task> GetDirectoryPathComponentsWithDispla if (!string.IsNullOrEmpty(folder?.DisplayName)) item.Title = folder.DisplayName; } + + item.ChevronToolTip = string.Format(Strings.BreadcrumbBarChevronButtonToolTip.GetLocalizedResource(), item.Title); } return pathBoxItems; @@ -321,7 +323,8 @@ private static PathBoxItem GetPathItem(string component, string path) return new PathBoxItem() { Title = title, - Path = path + Path = path, + ChevronToolTip = string.Format(Strings.BreadcrumbBarChevronButtonToolTip.GetLocalizedResource(), title), }; } @@ -348,7 +351,7 @@ private static string ResolvePath(string path, bool isFtp) if (path.StartsWith("ReleaseNotes")) return "ReleaseNotes"; - + if (path.StartsWith("Settings")) return "Settings"; diff --git a/src/Files.App/Utils/Storage/Helpers/SyncRootHelpers.cs b/src/Files.App/Utils/Storage/Helpers/SyncRootHelpers.cs index 3bfb6335a568..e49eb08c3f05 100644 --- a/src/Files.App/Utils/Storage/Helpers/SyncRootHelpers.cs +++ b/src/Files.App/Utils/Storage/Helpers/SyncRootHelpers.cs @@ -2,9 +2,7 @@ // Licensed under the MIT License. using Microsoft.Win32; -using System.Runtime.CompilerServices; using Windows.Win32; -using Windows.Win32.Foundation; using Windows.Win32.System.Com; using Windows.Win32.System.WinRT; using WinRT; @@ -62,6 +60,11 @@ private static unsafe (bool Success, ulong Capacity, ulong Used) GetSyncRootQuot return (false, 0, 0); } + if (syncRootInfo is null) + { + return (false, 0, 0); + } + return GetSyncRootQuotaFromSyncRootId(syncRootInfo.Id); } } diff --git a/src/Files.App/Utils/Storage/Operations/FileSizeCalculator.cs b/src/Files.App/Utils/Storage/Operations/FileSizeCalculator.cs index 5c01476bfc5e..3e60af00da9b 100644 --- a/src/Files.App/Utils/Storage/Operations/FileSizeCalculator.cs +++ b/src/Files.App/Utils/Storage/Operations/FileSizeCalculator.cs @@ -3,7 +3,6 @@ using System.Collections.Concurrent; using System.IO; -using System.Runtime.InteropServices; using Windows.Win32; using Windows.Win32.Storage.FileSystem; diff --git a/src/Files.App/Utils/Storage/Operations/FilesystemHelpers.cs b/src/Files.App/Utils/Storage/Operations/FilesystemHelpers.cs index 7234fedb9076..6183a1330b78 100644 --- a/src/Files.App/Utils/Storage/Operations/FilesystemHelpers.cs +++ b/src/Files.App/Utils/Storage/Operations/FilesystemHelpers.cs @@ -1,14 +1,11 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.Core.Storage; -using Files.Core.Storage.Extensions; using Microsoft.Extensions.Logging; using Microsoft.Win32; using System.IO; using System.Runtime.InteropServices; using System.Runtime.InteropServices.ComTypes; -using Vanara.Extensions; using Vanara.PInvoke; using Vanara.Windows.Shell; using Windows.ApplicationModel.DataTransfer; diff --git a/src/Files.App/Utils/Storage/StorageBaseItems/BaseStorageFolder.cs b/src/Files.App/Utils/Storage/StorageBaseItems/BaseStorageFolder.cs index 7c1c0f40e42e..5517798b8727 100644 --- a/src/Files.App/Utils/Storage/StorageBaseItems/BaseStorageFolder.cs +++ b/src/Files.App/Utils/Storage/StorageBaseItems/BaseStorageFolder.cs @@ -108,7 +108,7 @@ IAsyncOperation> IStorageFolderQueryOperations.GetFil public abstract IAsyncOperation GetFolderAsync(string name); IAsyncOperation IStorageFolder.GetFolderAsync(string name) - { + { return AsyncInfo.Run(async (cancellationToken) => await (await GetFolderAsync(name)).ToStorageFolderAsync()); diff --git a/src/Files.App/Utils/Storage/StorageBaseItems/IBaseStorageFolder.cs b/src/Files.App/Utils/Storage/StorageBaseItems/IBaseStorageFolder.cs index 48b8fcf1b913..44827c86732b 100644 --- a/src/Files.App/Utils/Storage/StorageBaseItems/IBaseStorageFolder.cs +++ b/src/Files.App/Utils/Storage/StorageBaseItems/IBaseStorageFolder.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using System.IO; using Windows.Foundation; using Windows.Storage; using Windows.Storage.FileProperties; diff --git a/src/Files.App/Utils/Storage/StorageBaseItems/IPasswordProtectedItem.cs b/src/Files.App/Utils/Storage/StorageBaseItems/IPasswordProtectedItem.cs index 318c41787a16..7278d390cd27 100644 --- a/src/Files.App/Utils/Storage/StorageBaseItems/IPasswordProtectedItem.cs +++ b/src/Files.App/Utils/Storage/StorageBaseItems/IPasswordProtectedItem.cs @@ -1,11 +1,8 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using FluentFTP; using FluentFTP.Exceptions; using SevenZip; -using System; -using Windows.Storage; namespace Files.App.Utils.Storage { diff --git a/src/Files.App/Utils/Storage/StorageItems/FtpStorageFile.cs b/src/Files.App/Utils/Storage/StorageItems/FtpStorageFile.cs index 42cb8309e7c6..ea2b0dc0b711 100644 --- a/src/Files.App/Utils/Storage/StorageItems/FtpStorageFile.cs +++ b/src/Files.App/Utils/Storage/StorageItems/FtpStorageFile.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Storage.Storables; using FluentFTP; using System.IO; using System.Net; diff --git a/src/Files.App/Utils/Storage/StorageItems/FtpStorageFolder.cs b/src/Files.App/Utils/Storage/StorageItems/FtpStorageFolder.cs index 4a3bc2a8b7df..48ddd3d47394 100644 --- a/src/Files.App/Utils/Storage/StorageItems/FtpStorageFolder.cs +++ b/src/Files.App/Utils/Storage/StorageItems/FtpStorageFolder.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Storage.Storables; using FluentFTP; using System.IO; using System.Net; diff --git a/src/Files.App/Utils/Storage/StorageItems/ShellStorageFile.cs b/src/Files.App/Utils/Storage/StorageItems/ShellStorageFile.cs index 395f8ab72b36..1ef3e7343109 100644 --- a/src/Files.App/Utils/Storage/StorageItems/ShellStorageFile.cs +++ b/src/Files.App/Utils/Storage/StorageItems/ShellStorageFile.cs @@ -2,7 +2,6 @@ // Licensed under the MIT License. using System.Runtime.InteropServices.WindowsRuntime; -using Vanara.PInvoke; using Windows.Foundation; using Windows.Storage; using Windows.Storage.FileProperties; diff --git a/src/Files.App/Utils/Storage/StorageItems/VirtualStorageItem.cs b/src/Files.App/Utils/Storage/StorageItems/VirtualStorageItem.cs index 3f0aee8f4fee..4efdfcc6699e 100644 --- a/src/Files.App/Utils/Storage/StorageItems/VirtualStorageItem.cs +++ b/src/Files.App/Utils/Storage/StorageItems/VirtualStorageItem.cs @@ -6,7 +6,6 @@ using Windows.Foundation; using Windows.Storage; using Windows.Storage.FileProperties; -using static Files.App.Helpers.Win32Helper; namespace Files.App.Utils.Storage { diff --git a/src/Files.App/Utils/Storage/StorageItems/ZipStorageFolder.cs b/src/Files.App/Utils/Storage/StorageItems/ZipStorageFolder.cs index 0614a192fdd1..9c0c2d6677ca 100644 --- a/src/Files.App/Utils/Storage/StorageItems/ZipStorageFolder.cs +++ b/src/Files.App/Utils/Storage/StorageItems/ZipStorageFolder.cs @@ -47,10 +47,7 @@ public ZipStorageFolder(string path, string containerPath, ArchiveFileInfo entry => DateCreated = entry.CreationTime == DateTime.MinValue ? DateTimeOffset.MinValue : entry.CreationTime; public ZipStorageFolder(BaseStorageFile backingFile) { - if (string.IsNullOrEmpty(backingFile.Path)) - { - throw new ArgumentException("Backing file Path cannot be null"); - } + ArgumentException.ThrowIfNullOrEmpty(backingFile.Path); Name = IO.Path.GetFileName(backingFile.Path.TrimEnd('\\', '/')); Path = backingFile.Path; this.containerPath = backingFile.Path; diff --git a/src/Files.App/ViewModels/Dialogs/AddItemDialog/AddItemDialogViewModel.cs b/src/Files.App/ViewModels/Dialogs/AddItemDialog/AddItemDialogViewModel.cs index 4665d89c7007..9d5e459a7c06 100644 --- a/src/Files.App/ViewModels/Dialogs/AddItemDialog/AddItemDialogViewModel.cs +++ b/src/Files.App/ViewModels/Dialogs/AddItemDialog/AddItemDialogViewModel.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.Shared; using Files.Shared.Utils; namespace Files.App.ViewModels.Dialogs.AddItemDialog diff --git a/src/Files.App/ViewModels/Dialogs/BulkRenameDialogViewModel.cs b/src/Files.App/ViewModels/Dialogs/BulkRenameDialogViewModel.cs index ca72363a51fb..654cf23b9508 100644 --- a/src/Files.App/ViewModels/Dialogs/BulkRenameDialogViewModel.cs +++ b/src/Files.App/ViewModels/Dialogs/BulkRenameDialogViewModel.cs @@ -55,7 +55,8 @@ await context.ShellPage.FilesystemHelpers.RenameAsync( true, false ); - }; + } + ; } } diff --git a/src/Files.App/ViewModels/Dialogs/CreateItemDialogViewModel.cs b/src/Files.App/ViewModels/Dialogs/CreateItemDialogViewModel.cs index 329a7b3037ed..15ceb3dc223b 100644 --- a/src/Files.App/ViewModels/Dialogs/CreateItemDialogViewModel.cs +++ b/src/Files.App/ViewModels/Dialogs/CreateItemDialogViewModel.cs @@ -4,12 +4,12 @@ namespace Files.App.ViewModels.Dialogs { partial class CreateItemDialogViewModel : ObservableObject - { + { private bool isNameInvalid; public bool IsNameInvalid { get => isNameInvalid; set => SetProperty(ref isNameInvalid, value); } - } + } } diff --git a/src/Files.App/ViewModels/Dialogs/CreateShortcutDialogViewModel.cs b/src/Files.App/ViewModels/Dialogs/CreateShortcutDialogViewModel.cs index 0bec2b9be957..591a2c26529c 100644 --- a/src/Files.App/ViewModels/Dialogs/CreateShortcutDialogViewModel.cs +++ b/src/Files.App/ViewModels/Dialogs/CreateShortcutDialogViewModel.cs @@ -1,11 +1,11 @@ // Copyright (c) Files Community // Licensed under the MIT License. +using Files.Shared.Helpers; using System.IO; using System.Runtime.InteropServices; using System.Text; using System.Windows.Input; -using Files.Shared.Helpers; namespace Files.App.ViewModels.Dialogs { @@ -38,7 +38,7 @@ public sealed partial class CreateShortcutDialogViewModel : ObservableObject private string _shortcutName; public string ShortcutName { - get => _shortcutName; + get => _shortcutName; set { if (SetProperty(ref _shortcutName, value)) @@ -195,7 +195,7 @@ public bool IsLocationValid set { if (SetProperty(ref _isLocationValid, value)) - { + { OnPropertyChanged(nameof(ShowWarningTip)); OnPropertyChanged(nameof(IsShortcutValid)); } diff --git a/src/Files.App/ViewModels/Dialogs/DecompressArchiveDialogViewModel.cs b/src/Files.App/ViewModels/Dialogs/DecompressArchiveDialogViewModel.cs index 63ea6b6ca442..131ae481234e 100644 --- a/src/Files.App/ViewModels/Dialogs/DecompressArchiveDialogViewModel.cs +++ b/src/Files.App/ViewModels/Dialogs/DecompressArchiveDialogViewModel.cs @@ -48,7 +48,8 @@ public bool IsArchiveEncodingUndetermined public Encoding? DetectedEncoding { get => detectedEncoding; - set { + set + { SetProperty(ref detectedEncoding, value); RefreshEncodingOptions(); } @@ -71,7 +72,7 @@ void RefreshEncodingOptions() { EncodingOptions = EncodingItem.Defaults .Prepend(new EncodingItem( - detectedEncoding, + detectedEncoding, string.Format(Strings.EncodingDetected.GetLocalizedResource(), detectedEncoding.EncodingName) )) .ToArray(); @@ -83,7 +84,7 @@ void RefreshEncodingOptions() SelectedEncoding = EncodingOptions.FirstOrDefault(); } - + public IRelayCommand PrimaryButtonClickCommand { get; private set; } diff --git a/src/Files.App/ViewModels/Dialogs/FileSystemDialog/FileSystemDialogConflictItemViewModel.cs b/src/Files.App/ViewModels/Dialogs/FileSystemDialog/FileSystemDialogConflictItemViewModel.cs index 64fc9e6ba313..a73f44352f73 100644 --- a/src/Files.App/ViewModels/Dialogs/FileSystemDialog/FileSystemDialogConflictItemViewModel.cs +++ b/src/Files.App/ViewModels/Dialogs/FileSystemDialog/FileSystemDialogConflictItemViewModel.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Data.Enums; using System.IO; namespace Files.App.ViewModels.Dialogs.FileSystemDialog diff --git a/src/Files.App/ViewModels/Dialogs/FileSystemDialog/FileSystemDialogViewModel.cs b/src/Files.App/ViewModels/Dialogs/FileSystemDialog/FileSystemDialogViewModel.cs index ef4f0f93991f..9de1dbedcf24 100644 --- a/src/Files.App/ViewModels/Dialogs/FileSystemDialog/FileSystemDialogViewModel.cs +++ b/src/Files.App/ViewModels/Dialogs/FileSystemDialog/FileSystemDialogViewModel.cs @@ -1,10 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Data.Enums; -using Files.Shared.Extensions; -using System.Text; - namespace Files.App.ViewModels.Dialogs.FileSystemDialog { public sealed partial class FileSystemDialogViewModel : BaseDialogViewModel, IRecipient diff --git a/src/Files.App/ViewModels/Dialogs/FileSystemDialog/IFileSystemDialogConflictItemViewModel.cs b/src/Files.App/ViewModels/Dialogs/FileSystemDialog/IFileSystemDialogConflictItemViewModel.cs index 07718d27e6bf..a03d3b339105 100644 --- a/src/Files.App/ViewModels/Dialogs/FileSystemDialog/IFileSystemDialogConflictItemViewModel.cs +++ b/src/Files.App/ViewModels/Dialogs/FileSystemDialog/IFileSystemDialogConflictItemViewModel.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Data.Enums; - namespace Files.App.ViewModels.Dialogs.FileSystemDialog { public interface IFileSystemDialogConflictItemViewModel diff --git a/src/Files.App/ViewModels/Dialogs/FileTooLargeDialogViewModel.cs b/src/Files.App/ViewModels/Dialogs/FileTooLargeDialogViewModel.cs index a0ff9419bb9f..5e2ae9669e54 100644 --- a/src/Files.App/ViewModels/Dialogs/FileTooLargeDialogViewModel.cs +++ b/src/Files.App/ViewModels/Dialogs/FileTooLargeDialogViewModel.cs @@ -3,12 +3,12 @@ namespace Files.App.ViewModels.Dialogs { - public sealed partial class FileTooLargeDialogViewModel: ObservableObject + public sealed partial class FileTooLargeDialogViewModel : ObservableObject { public IEnumerable Paths { get; private set; } - public FileTooLargeDialogViewModel(IEnumerable paths) - { + public FileTooLargeDialogViewModel(IEnumerable paths) + { Paths = paths; } } diff --git a/src/Files.App/ViewModels/Dialogs/IDialog.cs b/src/Files.App/ViewModels/Dialogs/IDialog.cs index 999a7d44210d..ffeaafdf6dce 100644 --- a/src/Files.App/ViewModels/Dialogs/IDialog.cs +++ b/src/Files.App/ViewModels/Dialogs/IDialog.cs @@ -1,8 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Files.App.Data.Enums; - namespace Files.App.ViewModels.Dialogs { public interface IDialog diff --git a/src/Files.App/ViewModels/Dialogs/ReorderSidebarItemsDialogViewModel.cs b/src/Files.App/ViewModels/Dialogs/ReorderSidebarItemsDialogViewModel.cs index 37ddb169000d..f4f90ffc4ba1 100644 --- a/src/Files.App/ViewModels/Dialogs/ReorderSidebarItemsDialogViewModel.cs +++ b/src/Files.App/ViewModels/Dialogs/ReorderSidebarItemsDialogViewModel.cs @@ -16,7 +16,7 @@ public sealed partial class ReorderSidebarItemsDialogViewModel : ObservableObjec .Where(x => x is LocationItem loc && loc.Section is SectionType.Pinned && !loc.IsHeader) .Cast()); - public ReorderSidebarItemsDialogViewModel() + public ReorderSidebarItemsDialogViewModel() { //App.Logger.LogWarning(string.Join(", ", SidebarPinnedFolderItems.Select(x => x.Path))); PrimaryButtonCommand = new RelayCommand(SaveChanges); diff --git a/src/Files.App/ViewModels/HomeViewModel.cs b/src/Files.App/ViewModels/HomeViewModel.cs index a511b580154c..7d25ee7b448f 100644 --- a/src/Files.App/ViewModels/HomeViewModel.cs +++ b/src/Files.App/ViewModels/HomeViewModel.cs @@ -1,7 +1,6 @@ // Copyright (c) Files Community // Licensed under the MIT License. -using Microsoft.UI.Xaml; using System.Windows.Input; namespace Files.App.ViewModels diff --git a/src/Files.App/ViewModels/MainPageViewModel.cs b/src/Files.App/ViewModels/MainPageViewModel.cs index 0cc67281514d..666157454b0d 100644 --- a/src/Files.App/ViewModels/MainPageViewModel.cs +++ b/src/Files.App/ViewModels/MainPageViewModel.cs @@ -8,7 +8,9 @@ using Microsoft.UI.Xaml.Media.Imaging; using Microsoft.UI.Xaml.Navigation; using System.Windows.Input; +using Windows.Services.Store; using Windows.System; +using WinRT.Interop; namespace Files.App.ViewModels { @@ -127,16 +129,47 @@ context.PageType is not ContentPageTypes.Home && context.PageType is not ContentPageTypes.ReleaseNotes && context.PageType is not ContentPageTypes.Settings; + public bool ShowReviewPrompt + { + get + { + var isTargetEnvironment = AppLifecycleHelper.AppEnvironment is AppEnvironment.StoreStable or AppEnvironment.StorePreview; + var hasClickedReviewPrompt = UserSettingsService.ApplicationSettingsService.HasClickedReviewPrompt; + var launchCountReached = AppLifecycleHelper.TotalLaunchCount == 30; + + return isTargetEnvironment && !hasClickedReviewPrompt && launchCountReached; + } + } + + public bool ShowSponsorPrompt + { + get + { + var isTargetEnvironment = AppLifecycleHelper.AppEnvironment is AppEnvironment.Dev or AppEnvironment.SideloadStable or AppEnvironment.SideloadPreview; + var hasClickedSponsorPrompt = UserSettingsService.ApplicationSettingsService.HasClickedSponsorPrompt; + var launchCountReached = AppLifecycleHelper.TotalLaunchCount == 30; + + return isTargetEnvironment && !hasClickedSponsorPrompt && launchCountReached; + } + } // Commands public ICommand NavigateToNumberedTabKeyboardAcceleratorCommand { get; } + public ICommand ReviewAppCommand { get; } + public ICommand DismissReviewPromptCommand { get; } + public ICommand SponsorCommand { get; } + public ICommand DismissSponsorPromptCommand { get; } // Constructor public MainPageViewModel() { NavigateToNumberedTabKeyboardAcceleratorCommand = new RelayCommand(ExecuteNavigateToNumberedTabKeyboardAcceleratorCommand); + ReviewAppCommand = new RelayCommand(ExecuteReviewAppCommand); + DismissReviewPromptCommand = new RelayCommand(ExecuteDismissReviewPromptCommand); + SponsorCommand = new RelayCommand(ExecuteSponsorCommand); + DismissSponsorPromptCommand = new RelayCommand(ExecuteDismissSponsorPromptCommand); AppearanceSettingsService.PropertyChanged += (s, e) => { @@ -302,6 +335,37 @@ await Task.WhenAll( // Command methods + private async void ExecuteReviewAppCommand() + { + UserSettingsService.ApplicationSettingsService.HasClickedReviewPrompt = true; + OnPropertyChanged(nameof(ShowReviewPrompt)); + + try + { + var storeContext = StoreContext.GetDefault(); + InitializeWithWindow.Initialize(storeContext, MainWindow.Instance.WindowHandle); + await storeContext.RequestRateAndReviewAppAsync(); + } + catch (Exception) { } + } + + private void ExecuteDismissReviewPromptCommand() + { + UserSettingsService.ApplicationSettingsService.HasClickedReviewPrompt = true; + } + + private async void ExecuteSponsorCommand() + { + UserSettingsService.ApplicationSettingsService.HasClickedSponsorPrompt = true; + OnPropertyChanged(nameof(ShowSponsorPrompt)); + await Launcher.LaunchUriAsync(new Uri(Constants.ExternalUrl.SupportUsUrl)).AsTask(); + } + + private void ExecuteDismissSponsorPromptCommand() + { + UserSettingsService.ApplicationSettingsService.HasClickedSponsorPrompt = true; + } + private async void ExecuteNavigateToNumberedTabKeyboardAcceleratorCommand(KeyboardAcceleratorInvokedEventArgs? e) { var indexToSelect = e!.KeyboardAccelerator.Key switch @@ -326,7 +390,7 @@ private async void ExecuteNavigateToNumberedTabKeyboardAcceleratorCommand(Keyboa // Small delay for the UI to load await Task.Delay(500); - // Refocus on the file list + // Focus the content of the selected tab item (needed for keyboard navigation) (SelectedTabItem?.TabItemContent as Control)?.Focus(FocusState.Programmatic); } diff --git a/src/Files.App/ViewModels/Properties/Items/BaseProperties.cs b/src/Files.App/ViewModels/Properties/Items/BaseProperties.cs index ea436c4f654e..c204b74af287 100644 --- a/src/Files.App/ViewModels/Properties/Items/BaseProperties.cs +++ b/src/Files.App/ViewModels/Properties/Items/BaseProperties.cs @@ -4,7 +4,6 @@ using Microsoft.UI.Dispatching; using System.IO; using Windows.Storage.FileProperties; -using static Files.App.Helpers.Win32Helper; using FileAttributes = System.IO.FileAttributes; namespace Files.App.ViewModels.Properties diff --git a/src/Files.App/ViewModels/Properties/Items/CombinedProperties.cs b/src/Files.App/ViewModels/Properties/Items/CombinedProperties.cs index 5b49a6a626ec..22e2cc40d3eb 100644 --- a/src/Files.App/ViewModels/Properties/Items/CombinedProperties.cs +++ b/src/Files.App/ViewModels/Properties/Items/CombinedProperties.cs @@ -1,14 +1,6 @@ -using Files.App.Extensions; -using Files.App.Utils; -using Files.App.Helpers; using Microsoft.Extensions.Logging; using Microsoft.UI.Dispatching; -using System; -using System.Collections.Generic; using System.IO; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; using Windows.Storage; namespace Files.App.ViewModels.Properties diff --git a/src/Files.App/ViewModels/Properties/Items/DriveProperties.cs b/src/Files.App/ViewModels/Properties/Items/DriveProperties.cs index c07138a6ce33..8489450903e1 100644 --- a/src/Files.App/ViewModels/Properties/Items/DriveProperties.cs +++ b/src/Files.App/ViewModels/Properties/Items/DriveProperties.cs @@ -1,11 +1,4 @@ -using Files.App.Data.Items; -using Files.App.Extensions; -using Files.App.Utils; -using Files.App.Helpers; using Microsoft.Extensions.Logging; -using System; -using System.Threading.Tasks; -using Windows.Storage.FileProperties; namespace Files.App.ViewModels.Properties { diff --git a/src/Files.App/ViewModels/Properties/Items/FilePropertySection.cs b/src/Files.App/ViewModels/Properties/Items/FilePropertySection.cs index a8333dc130cb..058ac2a1e839 100644 --- a/src/Files.App/ViewModels/Properties/Items/FilePropertySection.cs +++ b/src/Files.App/ViewModels/Properties/Items/FilePropertySection.cs @@ -1,6 +1,4 @@ -using Files.App.Extensions; using Microsoft.UI.Xaml; -using System.Collections.Generic; namespace Files.App.ViewModels.Properties { diff --git a/src/Files.App/ViewModels/Properties/Items/FolderProperties.cs b/src/Files.App/ViewModels/Properties/Items/FolderProperties.cs index b09b7462f021..6d85b79e8224 100644 --- a/src/Files.App/ViewModels/Properties/Items/FolderProperties.cs +++ b/src/Files.App/ViewModels/Properties/Items/FolderProperties.cs @@ -83,7 +83,7 @@ public async override Task GetSpecialPropertiesAsync() Constants.ShellIconSizes.ExtraLarge, true, IconOptions.UseCurrentScale); - + if (result is not null) { ViewModel.IconData = result; @@ -120,7 +120,7 @@ public async override Task GetSpecialPropertiesAsync() GetOtherPropertiesAsync(storageFolder.Properties); // Only load the size for items on the device - if (Item.SyncStatusUI.SyncStatus is not CloudDriveSyncStatus.FileOnline and not + if (Item.SyncStatusUI.SyncStatus is not CloudDriveSyncStatus.FileOnline and not CloudDriveSyncStatus.FolderOnline and not CloudDriveSyncStatus.FolderOfflinePartial) GetFolderSizeAsync(storageFolder.Path, TokenSource.Token); diff --git a/src/Files.App/ViewModels/Properties/Items/LibraryProperties.cs b/src/Files.App/ViewModels/Properties/Items/LibraryProperties.cs index d6883f436593..0b02b62c0ba3 100644 --- a/src/Files.App/ViewModels/Properties/Items/LibraryProperties.cs +++ b/src/Files.App/ViewModels/Properties/Items/LibraryProperties.cs @@ -55,7 +55,7 @@ public async override Task GetSpecialPropertiesAsync() Constants.ShellIconSizes.ExtraLarge, true, IconOptions.UseCurrentScale); - + if (result is not null) { ViewModel.IconData = result; diff --git a/src/Files.App/ViewModels/Properties/MainPropertiesViewModel.cs b/src/Files.App/ViewModels/Properties/MainPropertiesViewModel.cs index 14a7922e0115..c08207483881 100644 --- a/src/Files.App/ViewModels/Properties/MainPropertiesViewModel.cs +++ b/src/Files.App/ViewModels/Properties/MainPropertiesViewModel.cs @@ -33,14 +33,15 @@ public NavigationViewItemButtonStyleItem SelectedNavigationViewItem var page = value.ItemType switch { - PropertiesNavigationViewItemType.General => typeof(GeneralPage), - PropertiesNavigationViewItemType.Shortcut => typeof(ShortcutPage), - PropertiesNavigationViewItemType.Library => typeof(LibraryPage), - PropertiesNavigationViewItemType.Details => typeof(DetailsPage), - PropertiesNavigationViewItemType.Security => typeof(SecurityPage), + PropertiesNavigationViewItemType.General => typeof(GeneralPage), + PropertiesNavigationViewItemType.Shortcut => typeof(ShortcutPage), + PropertiesNavigationViewItemType.Library => typeof(LibraryPage), + PropertiesNavigationViewItemType.Details => typeof(DetailsPage), + PropertiesNavigationViewItemType.Security => typeof(SecurityPage), PropertiesNavigationViewItemType.Customization => typeof(CustomizationPage), PropertiesNavigationViewItemType.Compatibility => typeof(CompatibilityPage), PropertiesNavigationViewItemType.Hashes => typeof(HashesPage), + PropertiesNavigationViewItemType.Signatures => typeof(SignaturesPage), _ => typeof(GeneralPage), }; diff --git a/src/Files.App/ViewModels/Properties/SecurityAdvancedViewModel.cs b/src/Files.App/ViewModels/Properties/SecurityAdvancedViewModel.cs index 3201b42c06a7..367e8b4aaee5 100644 --- a/src/Files.App/ViewModels/Properties/SecurityAdvancedViewModel.cs +++ b/src/Files.App/ViewModels/Properties/SecurityAdvancedViewModel.cs @@ -69,7 +69,7 @@ public AccessControlEntry? SelectedAccessControlEntry if (SetProperty(ref _SelectedAccessControlEntry, value)) { - if(value is not null) + if (value is not null) value.IsSelected = true; OnPropertyChanged(nameof(IsDeleteAccessControlEntryButtonEnabled)); @@ -143,7 +143,8 @@ public SecurityAdvancedViewModel(PropertiesPageNavigationParameter parameter) _path = defaultlistedItem.ItemPath; _isFolder = defaultlistedItem.PrimaryItemAttribute == StorageItemTypes.Folder && !defaultlistedItem.IsShortcut; break; - }; + } + ; LoadShieldIconResource(); @@ -179,7 +180,7 @@ private void LoadAccessControlEntry() if (error is WIN32_ERROR.ERROR_ACCESS_DENIED) { - ErrorMessage = + ErrorMessage = Strings.SecurityRequireReadPermissions.GetLocalizedResource() + "\r\n\r\n" + Strings.SecuritySuggestToTakeOwnership.GetLocalizedResource(); diff --git a/src/Files.App/ViewModels/Properties/SecurityViewModel.cs b/src/Files.App/ViewModels/Properties/SecurityViewModel.cs index 388ac13faa5e..30da282c7d7d 100644 --- a/src/Files.App/ViewModels/Properties/SecurityViewModel.cs +++ b/src/Files.App/ViewModels/Properties/SecurityViewModel.cs @@ -89,7 +89,8 @@ public SecurityViewModel(PropertiesPageNavigationParameter parameter) _path = defaultlistedItem.ItemPath; _isFolder = defaultlistedItem.PrimaryItemAttribute == StorageItemTypes.Folder && !defaultlistedItem.IsShortcut; break; - }; + } + ; var error = StorageSecurityService.GetAcl(_path, _isFolder, out _AccessControlList); _SelectedAccessControlEntry = AccessControlList.AccessControlEntries.FirstOrDefault(); diff --git a/src/Files.App/ViewModels/Properties/SignaturesViewModel.cs b/src/Files.App/ViewModels/Properties/SignaturesViewModel.cs new file mode 100644 index 000000000000..4dc1200a76e0 --- /dev/null +++ b/src/Files.App/ViewModels/Properties/SignaturesViewModel.cs @@ -0,0 +1,37 @@ +// Copyright (c) Files Community +// Licensed under the MIT License. + +using Files.App.Utils.Signatures; +using Microsoft.UI.Windowing; +using Windows.Win32.Foundation; + +namespace Files.App.ViewModels.Properties +{ + public sealed partial class SignaturesViewModel : ObservableObject, IDisposable + { + private CancellationTokenSource _cancellationTokenSource; + + public ObservableCollection Signatures { get; set; } + + public bool NoSignatureFound => Signatures.Count == 0; + + public SignaturesViewModel(ListedItem item, AppWindow appWindow) + { + _cancellationTokenSource = new(); + Signatures = new(); + var hWnd = new HWND(Microsoft.UI.Win32Interop.GetWindowFromWindowId(appWindow.Id)); + Signatures.CollectionChanged += (s, e) => OnPropertyChanged(nameof(NoSignatureFound)); + DigitalSignaturesUtil.LoadItemSignatures( + item.ItemPath, + Signatures, + hWnd, + _cancellationTokenSource.Token + ); + } + + public void Dispose() + { + _cancellationTokenSource.Cancel(); + } + } +} diff --git a/src/Files.App/ViewModels/Settings/AboutViewModel.cs b/src/Files.App/ViewModels/Settings/AboutViewModel.cs index fd0021f9ee96..e84cc061182a 100644 --- a/src/Files.App/ViewModels/Settings/AboutViewModel.cs +++ b/src/Files.App/ViewModels/Settings/AboutViewModel.cs @@ -2,7 +2,6 @@ // Licensed under the MIT License. using Microsoft.Win32; -using System.Runtime.InteropServices; using System.Windows.Input; using Windows.ApplicationModel; using Windows.ApplicationModel.DataTransfer; @@ -80,6 +79,7 @@ public AboutViewModel() new ("https://github.com/microsoft/CsWinRT", "CsWinRT"), new ("https://github.com/GihanSoft/NaturalStringComparer", "NaturalStringComparer"), new ("https://github.com/dongle-the-gadget/GuidRVAGen", "Dongle.GuidRVAGen"), + new ("https://github.com/leeqwind/PESignAnalyzer", "PESignAnalyzer"), ]; CopyAppVersionCommand = new RelayCommand(CopyAppVersion); @@ -170,7 +170,7 @@ public void CopyWindowsVersion() Clipboard.SetContent(dataPackage); }); } - + public void CopyUserID() { SafetyExtensions.IgnoreExceptions(() => @@ -194,9 +194,10 @@ public string GetAppVersion() public string GetWindowsVersion() { - return Environment.OSVersion.Version.ToString(); + ulong v = ulong.Parse(Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamilyVersion); + return $"{(v >> 48) & 0xFFFF}.{(v >> 32) & 0xFFFF}.{(v >> 16) & 0xFFFF}.{v & 0xFFFF}"; } - + public string GetUserID() { return GeneralSettingsService.UserId; diff --git a/src/Files.App/ViewModels/Settings/AdvancedViewModel.cs b/src/Files.App/ViewModels/Settings/AdvancedViewModel.cs index 6557d7434351..2d8344bffaf2 100644 --- a/src/Files.App/ViewModels/Settings/AdvancedViewModel.cs +++ b/src/Files.App/ViewModels/Settings/AdvancedViewModel.cs @@ -10,7 +10,6 @@ using Windows.ApplicationModel; using Windows.Storage; using Windows.Storage.Pickers; -using Windows.System; using Windows.Win32.Storage.FileSystem; namespace Files.App.ViewModels.Settings @@ -195,7 +194,7 @@ private async Task ImportSettingsAsync() private async Task ExportSettingsAsync() { - string[] extensions = [Strings.ZipFileCapitalized.GetLocalizedResource(), "*.zip" ]; + string[] extensions = [Strings.ZipFileCapitalized.GetLocalizedResource(), "*.zip"]; bool result = CommonDialogService.Open_FileSaveDialog(MainWindow.Instance.WindowHandle, false, extensions, Environment.SpecialFolder.Desktop, out var filePath); if (!result) return; @@ -327,7 +326,7 @@ public bool LeaveAppRunning } } } - + public bool ShowSystemTrayIcon { get => UserSettingsService.GeneralSettingsService.ShowSystemTrayIcon; @@ -355,21 +354,6 @@ public bool ShowFlattenOptions OnPropertyChanged(); } } - - // TODO remove when feature is marked as stable - public bool EnableOmnibar - { - get => UserSettingsService.GeneralSettingsService.EnableOmnibar; - set - { - if (value == UserSettingsService.GeneralSettingsService.EnableOmnibar) - return; - - UserSettingsService.GeneralSettingsService.EnableOmnibar = value; - OnPropertyChanged(); - } - } - public async Task OpenFilesOnWindowsStartupAsync() { var stateMode = await ReadState(); diff --git a/src/Files.App/ViewModels/Settings/AppearanceViewModel.cs b/src/Files.App/ViewModels/Settings/AppearanceViewModel.cs index ef273de6af22..8131f3be77d6 100644 --- a/src/Files.App/ViewModels/Settings/AppearanceViewModel.cs +++ b/src/Files.App/ViewModels/Settings/AppearanceViewModel.cs @@ -39,7 +39,7 @@ public AppearanceViewModel(IUserSettingsService userSettingsService, IResourcesS Themes = [ - Strings.Default.GetLocalizedResource(), + Strings.UseSystemSetting.GetLocalizedResource(), Strings.LightTheme.GetLocalizedResource(), Strings.DarkTheme.GetLocalizedResource() ]; @@ -309,20 +309,6 @@ public bool ShowTabActions } } - public bool ShowHomeButton - { - get => UserSettingsService.AppearanceSettingsService.ShowHomeButton; - set - { - if (value != UserSettingsService.AppearanceSettingsService.ShowHomeButton) - { - UserSettingsService.AppearanceSettingsService.ShowHomeButton = value; - - OnPropertyChanged(); - } - } - } - public bool ShowShelfPaneToggleButton { get => UserSettingsService.AppearanceSettingsService.ShowShelfPaneToggleButton; diff --git a/src/Files.App/ViewModels/Settings/GeneralViewModel.cs b/src/Files.App/ViewModels/Settings/GeneralViewModel.cs index 14f49ce7d186..dc1766f79e46 100644 --- a/src/Files.App/ViewModels/Settings/GeneralViewModel.cs +++ b/src/Files.App/ViewModels/Settings/GeneralViewModel.cs @@ -107,8 +107,8 @@ public GeneralViewModel() PagesOnStartupList.CollectionChanged += PagesOnStartupList_CollectionChanged; // ShellPaneArrangement - ShellPaneArrangementTypes.Add(ShellPaneArrangement.Horizontal, Strings.Horizontal.GetLocalizedResource()); ShellPaneArrangementTypes.Add(ShellPaneArrangement.Vertical, Strings.Vertical.GetLocalizedResource()); + ShellPaneArrangementTypes.Add(ShellPaneArrangement.Horizontal, Strings.Horizontal.GetLocalizedResource()); SelectedShellPaneArrangementType = ShellPaneArrangementTypes[UserSettingsService.GeneralSettingsService.ShellPaneArrangementOption]; InitStartupSettingsRecentFoldersFlyout(); @@ -521,6 +521,19 @@ public bool ShowOpenInNewWindow } } + public bool ShowOpenTerminal + { + get => UserSettingsService.GeneralSettingsService.ShowOpenTerminal; + set + { + if (value != UserSettingsService.GeneralSettingsService.ShowOpenTerminal) + { + UserSettingsService.GeneralSettingsService.ShowOpenTerminal = value; + OnPropertyChanged(); + } + } + } + private string selectedShellPaneArrangementType; public string SelectedShellPaneArrangementType { diff --git a/src/Files.App/ViewModels/Settings/LayoutViewModel.cs b/src/Files.App/ViewModels/Settings/LayoutViewModel.cs index f6f16bf0665c..f65656655edc 100644 --- a/src/Files.App/ViewModels/Settings/LayoutViewModel.cs +++ b/src/Files.App/ViewModels/Settings/LayoutViewModel.cs @@ -19,7 +19,7 @@ public LayoutViewModel() // Sorting options SelectedDefaultSortingIndex = UserSettingsService.LayoutSettingsService.DefaultSortOption == SortOption.FileTag ? FileTagSortingIndex : (int)UserSettingsService.LayoutSettingsService.DefaultSortOption; SelectedDefaultSortPriorityIndex = UserSettingsService.LayoutSettingsService.DefaultSortDirectoriesAlongsideFiles ? 2 : UserSettingsService.LayoutSettingsService.DefaultSortFilesFirst ? 1 : 0; - + // Grouping options SelectedDefaultGroupingIndex = UserSettingsService.LayoutSettingsService.DefaultGroupOption == GroupOption.FileTag ? FileTagGroupingIndex : (int)UserSettingsService.LayoutSettingsService.DefaultGroupOption; SelectedDefaultGroupByDateUnitIndex = (int)UserSettingsService.LayoutSettingsService.DefaultGroupByDateUnit; @@ -110,7 +110,7 @@ public bool SortInDescendingOrder } } - + private int selectedDefaultSortPriorityIndex; public int SelectedDefaultSortPriorityIndex { diff --git a/src/Files.App/ViewModels/ShellViewModel.cs b/src/Files.App/ViewModels/ShellViewModel.cs index 68472561dc36..970916fa4f50 100644 --- a/src/Files.App/ViewModels/ShellViewModel.cs +++ b/src/Files.App/ViewModels/ShellViewModel.cs @@ -18,11 +18,11 @@ using Windows.Storage; using Windows.Storage.FileProperties; using Windows.Storage.Search; +using Windows.Win32.System.SystemServices; using static Files.App.Helpers.Win32PInvoke; +using ByteSize = ByteSizeLib.ByteSize; using DispatcherQueue = Microsoft.UI.Dispatching.DispatcherQueue; using FileAttributes = System.IO.FileAttributes; -using ByteSize = ByteSizeLib.ByteSize; -using Windows.Win32.System.SystemServices; namespace Files.App.ViewModels { @@ -114,6 +114,27 @@ public HorizontalAlignment FolderBackgroundImageHorizontalAlignment private set => SetProperty(ref _FolderBackgroundImageHorizontalAlignment, value); } + private ImageSource? _FolderThumbnailImageSource; + public ImageSource? FolderThumbnailImageSource + { + get => _FolderThumbnailImageSource; + private set => SetProperty(ref _FolderThumbnailImageSource, value); + } + + private BitmapImage? _SearchIconBitmapImage; + public BitmapImage? SearchIconBitmapImage + { + get => _SearchIconBitmapImage; + private set => SetProperty(ref _SearchIconBitmapImage, value); + } + + + public bool ShowFilterHeader => + UserSettingsService.GeneralSettingsService.ShowFilterHeader && + WorkingDirectory != "Home" && + WorkingDirectory != "ReleaseNotes" && + WorkingDirectory != "Settings"; + private GitProperties _EnabledGitProperties; public GitProperties EnabledGitProperties { @@ -148,6 +169,8 @@ public GitProperties EnabledGitProperties private CancellationTokenSource searchCTS; private CancellationTokenSource updateTagGroupCTS; + public event EventHandler FocusFilterHeader; + public event EventHandler DirectoryInfoUpdated; public event EventHandler GitDirectoryUpdated; @@ -177,6 +200,11 @@ public GitProperties EnabledGitProperties public event ItemLoadStatusChangedEventHandler ItemLoadStatusChanged; + public void InvokeFocusFilterHeader() + { + FocusFilterHeader.Invoke(this, null); + } + public async Task SetWorkingDirectoryAsync(string? value) { if (string.IsNullOrWhiteSpace(value)) @@ -213,7 +241,10 @@ public async Task SetWorkingDirectoryAsync(string? value) GitDirectory = GitHelpers.GetGitRepositoryPath(WorkingDirectory, pathRoot); IsValidGitDirectory = !string.IsNullOrEmpty((await GitHelpers.GetRepositoryHead(GitDirectory))?.Name); + _ = UpdateFolderThumbnailImageSource(); + OnPropertyChanged(nameof(WorkingDirectory)); + OnPropertyChanged(nameof(ShowFilterHeader)); } public async Task> GetFolderFromPathAsync(string value, CancellationToken cancellationToken = default) @@ -275,6 +306,11 @@ public EmptyTextType EmptyTextType set => SetProperty(ref emptyTextType, value); } + public async Task UpdateFolderThumbnailImageSource() + { + FolderThumbnailImageSource = await NavigationHelpers.GetIconForPathAsync(WorkingDirectory); + } + public async Task UpdateSortOptionStatusAsync() { OnPropertyChanged(nameof(IsSortedByName)); @@ -676,6 +712,9 @@ await dispatcherQueue.EnqueueOrInvokeAsync(() => await OrderFilesAndFoldersAsync(); await ApplyFilesAndFoldersChangesAsync(); break; + case nameof(UserSettingsService.GeneralSettingsService.ShowFilterHeader): + OnPropertyChanged(nameof(ShowFilterHeader)); + break; } } @@ -708,14 +747,50 @@ public void CancelExtendedPropertiesLoadingForItem(ListedItem item) itemLoadQueue.TryUpdate(item.ItemPath, true, false); } - private bool IsSearchResults { get; set; } + private bool _isSearchResults; + public bool IsSearchResults + { + get => _isSearchResults; + set + { + if (SetProperty(ref _isSearchResults, value)) + { + if (!value) + SearchHeaderTitle = string.Empty; + } + } + } + + private string? _searchHeaderTitle; + public string? SearchHeaderTitle + { + get => _searchHeaderTitle; + set => SetProperty(ref _searchHeaderTitle, value); + } public void UpdateEmptyTextType() { EmptyTextType = FilesAndFolders.Count == 0 ? (IsSearchResults ? EmptyTextType.NoSearchResultsFound : EmptyTextType.FolderEmpty) : EmptyTextType.None; } - public string? FilesAndFoldersFilter { get; set; } + private string? _filesAndFoldersFilter; + public string? FilesAndFoldersFilter + { + get => _filesAndFoldersFilter; + set + { + if (SetProperty(ref _filesAndFoldersFilter, value)) + { + FilesAndFolderFilterUpdated(); + } + } + } + + private void FilesAndFolderFilterUpdated() + { + _ = ApplyFilesAndFoldersChangesAsync(); + } + // Apply changes immediately after manipulating on filesAndFolders completed public async Task ApplyFilesAndFoldersChangesAsync() @@ -731,7 +806,7 @@ void ClearDisplay() DirectoryInfoUpdated?.Invoke(this, EventArgs.Empty); } - if (Win32Helper.IsHasThreadAccessPropertyPresent && dispatcherQueue.HasThreadAccess) + if (dispatcherQueue.HasThreadAccess) ClearDisplay(); else await dispatcherQueue.EnqueueOrInvokeAsync(ClearDisplay); @@ -819,7 +894,7 @@ void OrderEntries() folderSettings.SortDirectoriesAlongsideFiles, folderSettings.SortFilesFirst)); } - if (Win32Helper.IsHasThreadAccessPropertyPresent && dispatcherQueue.HasThreadAccess) + if (dispatcherQueue.HasThreadAccess) return Task.Run(OrderEntries); OrderEntries(); @@ -1339,7 +1414,7 @@ public Task UpdateItemsTags(Dictionary newTags) return dispatcherQueue.EnqueueOrInvokeAsync(() => { int count = newTags.Count; - foreach(var item in FilesAndFolders) + foreach (var item in FilesAndFolders) { if (newTags.TryGetValue(item.ItemPath, out var tags)) { @@ -1635,7 +1710,7 @@ private async Task EnumerateItemsFromStandardFolderAsync(string path, Cance !isShellFolder && !isWslDistro; bool isNetdisk = false; - + try { // Special handling for network drives @@ -1643,7 +1718,7 @@ private async Task EnumerateItemsFromStandardFolderAsync(string path, Cance isNetdisk = (new DriveInfo(path).DriveType == System.IO.DriveType.Network); } catch { } - + bool isFtp = FtpHelpers.IsFtpPath(path); bool enumFromStorageFolder = isBoxFolder || isFtp; @@ -1830,7 +1905,6 @@ await Task.Run(async () => }); filesAndFolders.AddRange(fileList); - FilesAndFoldersFilter = null; await OrderFilesAndFoldersAsync(); await ApplyFilesAndFoldersChangesAsync(); @@ -1839,6 +1913,7 @@ await dispatcherQueue.EnqueueOrInvokeAsync(() => { GetDesktopIniFileData(); CheckForBackgroundImage(); + FilesAndFoldersFilter = null; }, Microsoft.UI.Dispatching.DispatcherQueuePriority.Low); }); @@ -1909,7 +1984,7 @@ private void GetDesktopIniFileData() public void CheckForBackgroundImage() { - if (WorkingDirectory == "Home" || WorkingDirectory == "ReleaseNotes" || WorkingDirectory != "Settings") + if (WorkingDirectory == "Home" || WorkingDirectory == "ReleaseNotes" || WorkingDirectory == "Settings") { FolderBackgroundImageSource = null; return; @@ -2655,6 +2730,13 @@ public async Task SearchAsync(FolderSearch search) await ApplyFilesAndFoldersChangesAsync(); EmptyTextType = EmptyTextType.None; + SearchHeaderTitle = !string.IsNullOrEmpty(search.Query) + ? string.Format(Strings.SearchResultsFor.GetLocalizedResource(), search.Query) + : string.Empty; + + if (SearchIconBitmapImage is null) + SearchIconBitmapImage ??= await UIHelpers.GetSearchIconResource(); + ItemLoadStatusChanged?.Invoke(this, new ItemLoadStatusChangedEventArgs() { Status = ItemLoadStatusChangedEventArgs.ItemLoadStatus.InProgress }); var results = new List(); diff --git a/src/Files.App/ViewModels/UserControls/NavigationToolbarViewModel.cs b/src/Files.App/ViewModels/UserControls/NavigationToolbarViewModel.cs index b596888f2c54..e45120940a4e 100644 --- a/src/Files.App/ViewModels/UserControls/NavigationToolbarViewModel.cs +++ b/src/Files.App/ViewModels/UserControls/NavigationToolbarViewModel.cs @@ -4,13 +4,15 @@ using CommunityToolkit.WinUI; using Files.App.Controls; using Files.Shared.Helpers; +using Microsoft.Extensions.Logging; using Microsoft.UI.Dispatching; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; -using Microsoft.UI.Xaml.Controls.Primitives; using Microsoft.UI.Xaml.Input; +using Microsoft.UI.Xaml.Media.Imaging; using System.IO; using System.Windows.Input; +using Windows.AI.Actions; using Windows.ApplicationModel.DataTransfer; using Windows.UI.Text; @@ -30,7 +32,6 @@ public sealed partial class NavigationToolbarViewModel : ObservableObject, IAddr private readonly IUserSettingsService UserSettingsService = Ioc.Default.GetRequiredService(); private readonly IAppearanceSettingsService AppearanceSettingsService = Ioc.Default.GetRequiredService(); - private readonly IGeneralSettingsService GeneralSettingsService = Ioc.Default.GetRequiredService(); private readonly DrivesViewModel drivesViewModel = Ioc.Default.GetRequiredService(); private readonly IUpdateService UpdateService = Ioc.Default.GetRequiredService(); private readonly ICommandManager Commands = Ioc.Default.GetRequiredService(); @@ -49,22 +50,18 @@ public sealed partial class NavigationToolbarViewModel : ObservableObject, IAddr // Events public delegate void ToolbarPathItemInvokedEventHandler(object sender, PathNavigationEventArgs e); - public delegate void ToolbarFlyoutOpeningEventHandler(object sender, ToolbarFlyoutOpeningEventArgs e); - public delegate void ToolbarPathItemLoadedEventHandler(object sender, ToolbarPathItemLoadedEventArgs e); - public delegate void AddressBarTextEnteredEventHandler(object sender, AddressBarTextEnteredEventArgs e); public delegate void PathBoxItemDroppedEventHandler(object sender, PathBoxItemDroppedEventArgs e); public event ToolbarPathItemInvokedEventHandler? ToolbarPathItemInvoked; - public event ToolbarFlyoutOpeningEventHandler? ToolbarFlyoutOpening; - public event ToolbarPathItemLoadedEventHandler? ToolbarPathItemLoaded; public event IAddressToolbarViewModel.ItemDraggedOverPathItemEventHandler? ItemDraggedOverPathItem; - public event EventHandler? EditModeEnabled; public event IAddressToolbarViewModel.ToolbarQuerySubmittedEventHandler? PathBoxQuerySubmitted; - public event AddressBarTextEnteredEventHandler? AddressBarTextEntered; + public event PathBoxItemDroppedEventHandler? PathBoxItemDropped; public event EventHandler? RefreshWidgetsRequested; // Properties + internal static ActionRuntime? ActionRuntime { get; private set; } + public ObservableCollection PathComponents { get; } = []; public ObservableCollection NavigationBarSuggestions { get; } = []; @@ -73,12 +70,10 @@ public sealed partial class NavigationToolbarViewModel : ObservableObject, IAddr internal ObservableCollection OmnibarCommandPaletteModeSuggestionItems { get; } = []; - public bool IsSingleItemOverride { get; set; } + internal ObservableCollection OmnibarSearchModeSuggestionItems { get; } = []; - public bool SearchHasFocus { get; private set; } + public bool IsSingleItemOverride { get; set; } - public bool ShowHomeButton => AppearanceSettingsService.ShowHomeButton; - public bool EnableOmnibar => GeneralSettingsService.EnableOmnibar; public bool ShowStatusCenterButton => AppearanceSettingsService.StatusCenterVisibility == StatusCenterVisibility.Always || (AppearanceSettingsService.StatusCenterVisibility == StatusCenterVisibility.DuringOngoingFileOperations && OngoingTasksViewModel.HasAnyItem); @@ -87,8 +82,6 @@ public sealed partial class NavigationToolbarViewModel : ObservableObject, IAddr private NavigationToolbar? AddressToolbar => (MainWindow.Instance.Content as Frame)?.FindDescendant(); - public SearchBoxViewModel SearchBoxViewModel => (SearchBoxViewModel)SearchBox; - public bool HasAdditionalAction => InstanceViewModel.IsPageTypeRecycleBin || Commands.RunWithPowershell.IsExecutable || @@ -149,9 +142,6 @@ public sealed partial class NavigationToolbarViewModel : ObservableObject, IAddr (IsCardsLayout && UserSettingsService.LayoutSettingsService.CardsViewSize == CardsViewSizeKind.ExtraLarge) || (IsGridLayout && UserSettingsService.LayoutSettingsService.GridViewSize == GridViewSizeKind.ExtraLarge); - private bool _IsCommandPaletteOpen; - public bool IsCommandPaletteOpen { get => _IsCommandPaletteOpen; set => SetProperty(ref _IsCommandPaletteOpen, value); } - private bool _IsDynamicOverflowEnabled; public bool IsDynamicOverflowEnabled { get => _IsDynamicOverflowEnabled; set => SetProperty(ref _IsDynamicOverflowEnabled, value); } @@ -179,16 +169,8 @@ public sealed partial class NavigationToolbarViewModel : ObservableObject, IAddr private bool _CanRefresh; public bool CanRefresh { get => _CanRefresh; set => SetProperty(ref _CanRefresh, value); } - private string _SearchButtonGlyph = "\uE721"; - public string SearchButtonGlyph { get => _SearchButtonGlyph; set => SetProperty(ref _SearchButtonGlyph, value); } - - private bool _ManualEntryBoxLoaded; - public bool ManualEntryBoxLoaded { get => _ManualEntryBoxLoaded; set => SetProperty(ref _ManualEntryBoxLoaded, value); } - - private bool _ClickablePathLoaded = true; - public bool ClickablePathLoaded { get => _ClickablePathLoaded; set => SetProperty(ref _ClickablePathLoaded, value); } - private string _PathControlDisplayText; + [Obsolete("Superseded by Omnibar.")] public string PathControlDisplayText { get => _PathControlDisplayText; set => SetProperty(ref _PathControlDisplayText, value); } private bool _HasItem = false; @@ -197,20 +179,6 @@ public sealed partial class NavigationToolbarViewModel : ObservableObject, IAddr private Style _LayoutThemedIcon; public Style LayoutThemedIcon { get => _LayoutThemedIcon; set => SetProperty(ref _LayoutThemedIcon, value); } - private ISearchBoxViewModel _SearchBox = new SearchBoxViewModel(); - public ISearchBoxViewModel SearchBox { get => _SearchBox; set => SetProperty(ref _SearchBox, value); } - - private bool _IsSearchBoxVisible; - public bool IsSearchBoxVisible - { - get => _IsSearchBoxVisible; - set - { - if (SetProperty(ref _IsSearchBoxVisible, value)) - SearchButtonGlyph = value ? "\uE711" : "\uE721"; - } - } - // SetProperty doesn't seem to properly notify the binding in path bar private string? _PathText; public string? PathText @@ -223,47 +191,17 @@ public string? PathText } } + // Workaround to ensure Omnibar is only loaded after the ViewModel is initialized + public bool LoadOmnibar => + true; + private string? _OmnibarCommandPaletteModeText; public string? OmnibarCommandPaletteModeText { get => _OmnibarCommandPaletteModeText; set => SetProperty(ref _OmnibarCommandPaletteModeText, value); } - private bool _IsOmnibarFocused; - public bool IsOmnibarFocused - { - get => _IsOmnibarFocused; - set - { - // NOTE: Don't call ObservableObject.SetProperty() here since we don't want to change focus logic outside of the control. - - _IsOmnibarFocused = value; - - if (value) - { - switch (OmnibarCurrentSelectedMode.Name) - { - case OmnibarPathModeName: - PathText = - string.IsNullOrEmpty(ContentPageContext.ShellPage?.ShellViewModel?.WorkingDirectory) - ? Constants.UserEnvironmentPaths.HomePath - : ContentPageContext.ShellPage.ShellViewModel.WorkingDirectory; - _ = PopulateOmnibarSuggestionsForPathMode(); - break; - case OmnibarPaletteModeName: - if (OmnibarCommandPaletteModeSuggestionItems.Count is 0) - PopulateOmnibarSuggestionsForCommandPaletteMode(); - break; - case OmnibarSearchModeName: - break; - default: - break; - } - } - } - } - - private OmnibarMode _OmnibarCurrentSelectedMode; - public OmnibarMode OmnibarCurrentSelectedMode { get => _OmnibarCurrentSelectedMode; set => SetProperty(ref _OmnibarCurrentSelectedMode, value); } + private string? _OmnibarSearchModeText; + public string? OmnibarSearchModeText { get => _OmnibarSearchModeText; set => SetProperty(ref _OmnibarSearchModeText, value); } - private string _OmnibarCurrentSelectedModeName; + private string _OmnibarCurrentSelectedModeName = OmnibarPathModeName; public string OmnibarCurrentSelectedModeName { get => _OmnibarCurrentSelectedModeName; set => SetProperty(ref _OmnibarCurrentSelectedModeName, value); } private CurrentInstanceViewModel _InstanceViewModel; @@ -283,31 +221,6 @@ public CurrentInstanceViewModel InstanceViewModel } } - [Obsolete("Remove once Omnibar goes out of experimental.")] - public bool IsEditModeEnabled - { - get => ManualEntryBoxLoaded; - set - { - if (value) - { - EditModeEnabled?.Invoke(this, EventArgs.Empty); - - var visiblePath = AddressToolbar?.FindDescendant(x => x.Name == "VisiblePath"); - visiblePath?.Focus(FocusState.Programmatic); - visiblePath?.FindDescendant()?.SelectAll(); - - AddressBarTextEntered?.Invoke(this, new AddressBarTextEnteredEventArgs() { AddressBarTextField = visiblePath }); - } - else - { - IsCommandPaletteOpen = false; - ManualEntryBoxLoaded = false; - ClickablePathLoaded = true; - } - } - } - private List? _SelectedItems; public List? SelectedItems { @@ -340,7 +253,6 @@ public NavigationToolbarViewModel() _dispatcherQueue = DispatcherQueue.GetForCurrentThread(); _dragOverTimer = _dispatcherQueue.CreateTimer(); - SearchBox.Escaped += SearchRegion_Escaped; UserSettingsService.OnSettingChangedEvent += UserSettingsService_OnSettingChangedEvent; UpdateService.PropertyChanged += UpdateService_OnPropertyChanged; @@ -372,9 +284,6 @@ public NavigationToolbarViewModel() { switch (e.PropertyName) { - case nameof(AppearanceSettingsService.ShowHomeButton): - OnPropertyChanged(nameof(ShowHomeButton)); - break; case nameof(AppearanceSettingsService.StatusCenterVisibility): OnPropertyChanged(nameof(ShowStatusCenterButton)); break; @@ -383,15 +292,6 @@ public NavigationToolbarViewModel() break; } }; - GeneralSettingsService.PropertyChanged += (s, e) => - { - switch (e.PropertyName) - { - case nameof(GeneralSettingsService.EnableOmnibar): - OnPropertyChanged(nameof(EnableOmnibar)); - break; - } - }; OngoingTasksViewModel.PropertyChanged += (s, e) => { switch (e.PropertyName) @@ -438,9 +338,10 @@ private void UserSettingsService_OnSettingChangedEvent(object? sender, SettingCh } } + [Obsolete("Superseded by Omnibar.")] public void PathBoxItem_DragLeave(object sender, DragEventArgs e) { - if (((StackPanel)sender).DataContext is not PathBoxItem pathBoxItem || + if (((FrameworkElement)sender).DataContext is not PathBoxItem pathBoxItem || pathBoxItem.Path == "Home" || pathBoxItem.Path == "ReleaseNotes" || pathBoxItem.Path == "Settings") @@ -453,6 +354,7 @@ public void PathBoxItem_DragLeave(object sender, DragEventArgs e) _dragOverPath = null; } + [Obsolete("Superseded by Omnibar.")] public async Task PathBoxItem_Drop(object sender, DragEventArgs e) { if (_lockFlag) @@ -463,7 +365,7 @@ public async Task PathBoxItem_Drop(object sender, DragEventArgs e) // Reset dragged over pathbox item _dragOverPath = null; - if (((StackPanel)sender).DataContext is not PathBoxItem pathBoxItem || + if (((FrameworkElement)sender).DataContext is not PathBoxItem pathBoxItem || pathBoxItem.Path == "Home" || pathBoxItem.Path == "ReleaseNotes" || pathBoxItem.Path == "Settings") @@ -491,10 +393,11 @@ public async Task PathBoxItem_Drop(object sender, DragEventArgs e) _lockFlag = false; } + [Obsolete("Superseded by Omnibar.")] public async Task PathBoxItem_DragOver(object sender, DragEventArgs e) { if (IsSingleItemOverride || - ((StackPanel)sender).DataContext is not PathBoxItem pathBoxItem || + ((FrameworkElement)sender).DataContext is not PathBoxItem pathBoxItem || pathBoxItem.Path == "Home" || pathBoxItem.Path == "ReleaseNotes" || pathBoxItem.Path == "Settings") @@ -567,57 +470,13 @@ x.Item is ZipStorageFile || deferral.Complete(); } - public void PathItemSeparator_DataContextChanged(FrameworkElement sender, DataContextChangedEventArgs args) - { - var pathSeparatorIcon = sender as FontIcon; - if (pathSeparatorIcon is null || pathSeparatorIcon.DataContext is null) - return; - - ToolbarPathItemLoaded?.Invoke(pathSeparatorIcon, new ToolbarPathItemLoadedEventArgs() - { - Item = (PathBoxItem)pathSeparatorIcon.DataContext, - OpenedFlyout = (MenuFlyout)pathSeparatorIcon.ContextFlyout - }); - } - - public void PathboxItemFlyout_Opening(object sender, object e) - { - ToolbarFlyoutOpening?.Invoke(this, new ToolbarFlyoutOpeningEventArgs((MenuFlyout)sender)); - } - - public void PathBoxItemFlyout_Closed(object sender, object e) - { - ((MenuFlyout)sender).Items.Clear(); - } - + [Obsolete("Superseded by Omnibar.")] public void CurrentPathSetTextBox_TextChanged(object sender, TextChangedEventArgs args) { if (sender is TextBox textBox) PathBoxQuerySubmitted?.Invoke(this, new ToolbarQuerySubmittedEventArgs() { QueryText = textBox.Text }); } - public void VisiblePath_TextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args) - { - if (args.Reason == AutoSuggestionBoxTextChangeReason.UserInput) - AddressBarTextEntered?.Invoke(this, new AddressBarTextEnteredEventArgs() { AddressBarTextField = sender }); - } - - public void VisiblePath_QuerySubmitted(AutoSuggestBox sender, AutoSuggestBoxQuerySubmittedEventArgs args) - { - PathBoxQuerySubmitted?.Invoke(this, new ToolbarQuerySubmittedEventArgs() { QueryText = args.QueryText }); - - (this as IAddressToolbarViewModel).IsEditModeEnabled = false; - } - - public void PathBoxItem_PointerPressed(object sender, PointerRoutedEventArgs e) - { - if (e.Pointer.PointerDeviceType != Microsoft.UI.Input.PointerDeviceType.Mouse) - return; - - var ptrPt = e.GetCurrentPoint(AddressToolbar); - _pointerRoutedEventArgs = ptrPt.Properties.IsMiddleButtonPressed ? e : null; - } - public async Task HandleFolderNavigationAsync(string path, bool openNewTab = false) { openNewTab |= _pointerRoutedEventArgs is not null; @@ -640,12 +499,13 @@ await MainWindow.Instance.DispatcherQueue.EnqueueOrInvokeAsync( public async Task HandleItemNavigationAsync(string path) { - if (ContentPageContext.ShellPage is null || PathComponents.LastOrDefault()?.Path is not { } currentPath) + if (ContentPageContext.ShellPage is null) return; + var currentPath = PathComponents.LastOrDefault()?.Path; var isFtp = FtpHelpers.IsFtpPath(path); var normalizedInput = NormalizePathInput(path, isFtp); - if (currentPath.Equals(normalizedInput, StringComparison.OrdinalIgnoreCase) || + if (currentPath is not null && currentPath.Equals(normalizedInput, StringComparison.OrdinalIgnoreCase) || string.IsNullOrWhiteSpace(normalizedInput)) return; @@ -674,7 +534,7 @@ public async Task HandleItemNavigationAsync(string path) else { normalizedInput = StorageFileExtensions.GetResolvedPath(normalizedInput, isFtp); - if (currentPath.Equals(normalizedInput, StringComparison.OrdinalIgnoreCase)) + if (currentPath is not null && currentPath.Equals(normalizedInput, StringComparison.OrdinalIgnoreCase)) return; var item = await FilesystemTasks.Wrap(() => DriveHelpers.GetRootFromPathAsync(normalizedInput)); @@ -735,82 +595,25 @@ await DialogDisplayHelper.ShowDialogAsync(Strings.InvalidItemDialogTitle.GetLoca } PathControlDisplayText = ContentPageContext.ShellPage.ShellViewModel.WorkingDirectory; - IsOmnibarFocused = false; - } - - public void PathBoxItem_PreviewKeyDown(object sender, KeyRoutedEventArgs e) - { - switch (e.Key) - { - case Windows.System.VirtualKey.Down: - { - var item = e.OriginalSource as ListViewItem; - var button = item?.FindDescendant