1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-08-01 19:18:28 -04:00

Compare commits

...

14 Commits

Author SHA1 Message Date
bbedward e54be7d12d i18n: sync 2026-07-30 17:11:29 -04:00
bbedward 81c886784b lock: add separate text input for IMEs
related #2950
2026-07-30 17:08:59 -04:00
bbedward 6682bb120c matugen: tweak qt6ct colors
related #2951
2026-07-30 17:08:59 -04:00
bbedward 5c02ec4789 lock: avoid lock at startup firing when using dms-greeter
fixes #2952
2026-07-30 17:08:59 -04:00
bbedward de1e1757c3 keybinds: preserve raw lua actions in parser
fixes #2953
2026-07-30 17:08:59 -04:00
bbedward 43d331d6cf desktop plugins: ensure transparent frame is shown when desktop widgets
disabled

related #2955
2026-07-30 17:08:59 -04:00
Grant Mosha 01832856d4 fix(network): authenticate Fortinet VPNs natively (#2959)
* fix(network): authenticate Fortinet VPNs natively

* cleanup and add test

---------

Co-authored-by: Grant Mosha <grant.mosha@nida.go.tz>
Co-authored-by: bbedward <bbedward@gmail.com>
2026-07-30 16:45:53 -04:00
Huỳnh Thiện Lộc 0033e3f0e0 feat: add QR Generator launcher (#2941)
* feat: add QR Generator modal with auto-generate on input debounce

- QRGeneratorModal with dual-buffer sequential fade animation
- Auto-generate QR code on typing stop (200ms debounce)
- Clear text button on input field
- Escape key closes modal
- Register modal in PopoutService and AppSearchService
- Go backend for text QR code generation

* fix: add QR Generator toggle to Launcher DMS settings

* qr: also add qrg built in launcher plugin

---------

Co-authored-by: bbedward <bbedward@gmail.com>
2026-07-30 16:33:36 -04:00
bbedward 2d3706321a frame: fix popout IPCs in some situations
related #2956
2026-07-30 15:30:44 -04:00
bbedward 5bb884db57 keybinds: fix labeling of spawn keybinds
fixes #2957
2026-07-30 15:30:44 -04:00
dms-ci[bot] b42763ccbf nix: update vendorHash for go.mod changes 2026-07-30 19:13:28 +00:00
bbedward f2a6d62d65 matugen: add description for vscode template
fixes #2958
2026-07-30 15:10:54 -04:00
bbedward f66693df6b core: bump dankgo 2026-07-30 14:52:14 -04:00
bbedward a710d6d7cc launcher: fix regex escaping launch args
fixes #2961
port 1.5
2026-07-30 14:33:58 -04:00
58 changed files with 9558 additions and 5463 deletions
+1 -1
View File
@@ -69,7 +69,7 @@ require (
)
require (
github.com/AvengeMedia/dankgo v0.0.0-20260724133713-a4ef23371e05
github.com/AvengeMedia/dankgo v0.0.0-20260730184236-239485829b0b
github.com/atotto/clipboard v0.1.4 // indirect
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
github.com/charmbracelet/colorprofile v0.4.3 // indirect
+2 -2
View File
@@ -1,7 +1,7 @@
filippo.io/edwards25519 v1.2.0 h1:crnVqOiS4jqYleHd9vaKZ+HKtHfllngJIiOpNpoJsjo=
filippo.io/edwards25519 v1.2.0/go.mod h1:xzAOLCNug/yB62zG1bQ8uziwrIqIuxhctzJT18Q77mc=
github.com/AvengeMedia/dankgo v0.0.0-20260724133713-a4ef23371e05 h1:Ij/yzOT8y2HL7V5Rkec1GxJV0rUvhKqfAzyGxVRTk1o=
github.com/AvengeMedia/dankgo v0.0.0-20260724133713-a4ef23371e05/go.mod h1:xt8RldAfti0QCWidwYIzsSSoJWsE61WgEhTu2H9UpD4=
github.com/AvengeMedia/dankgo v0.0.0-20260730184236-239485829b0b h1:UwX1H4BkzazL7ips9ljnHzBXGttYARcIi5Njj9aqIt4=
github.com/AvengeMedia/dankgo v0.0.0-20260730184236-239485829b0b/go.mod h1:xt8RldAfti0QCWidwYIzsSSoJWsE61WgEhTu2H9UpD4=
github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
github.com/ProtonMail/go-crypto v1.4.1 h1:9RfcZHqEQUvP8RzecWEUafnZVtEvrBVL9BiF67IQOfM=
@@ -4,6 +4,7 @@ import (
"fmt"
"os"
"path/filepath"
"regexp"
"sort"
"strconv"
"strings"
@@ -224,6 +225,44 @@ func (h *HyprlandProvider) validateAction(action string) error {
return nil
}
var luaExprActionPattern = regexp.MustCompile(`^(function\s*\(|hl\.)`)
// isRawLuaActionText reports that action is a Lua expression to re-emit
// verbatim rather than freeform dispatcher text to wrap for hyprctl. The
// balance check keeps malformed input from corrupting the generated file.
func isRawLuaActionText(action string) bool {
if !luaExprActionPattern.MatchString(action) {
return false
}
depth := 0
var quote byte
escaped := false
for i := 0; i < len(action); i++ {
c := action[i]
switch {
case escaped:
escaped = false
case quote != 0:
switch c {
case '\\':
escaped = true
case quote:
quote = 0
}
case c == '"' || c == '\'':
quote = c
case c == '(':
depth++
case c == ')':
depth--
if depth < 0 {
return false
}
}
}
return depth == 0 && quote == 0 && !escaped
}
func (h *HyprlandProvider) SetBind(key, action, description string, options map[string]any) error {
if err := h.ensureWritableConfig(); err != nil {
return err
@@ -259,6 +298,7 @@ func (h *HyprlandProvider) SetBind(key, action, description string, options map[
Description: description,
Flags: flags,
Options: options,
RawLuaAction: isRawLuaActionText(action),
}
return h.writeOverrideBinds(existingBinds)
@@ -463,6 +463,56 @@ func TestHyprlandSetBindLeavesConfOnlyInstallReadOnly(t *testing.T) {
}
}
func TestIsRawLuaActionText(t *testing.T) {
cases := []struct {
action string
want bool
}{
{`function() hl.plugin.scrolloverview.overview("toggle") end`, true},
{`hl.dsp.exec_cmd("foo")`, true},
{`hl.dsp.no_op()`, true},
{"workspace 3", false},
{"exec zeditor", false},
{`function() hl.foo( end`, false},
{`function() hl.foo("a) end`, false},
{`hl.foo()) hl.bar((`, false},
}
for _, tc := range cases {
if got := isRawLuaActionText(tc.action); got != tc.want {
t.Errorf("isRawLuaActionText(%q) = %v, want %v", tc.action, got, tc.want)
}
}
}
func TestHyprlandSetBindPreservesRawLuaAction(t *testing.T) {
tmpDir := t.TempDir()
dmsDir := filepath.Join(tmpDir, "dms")
if err := os.MkdirAll(dmsDir, 0o755); err != nil {
t.Fatal(err)
}
if err := os.WriteFile(filepath.Join(dmsDir, "binds-user.lua"), []byte("-- DMS user keybind overrides\n"), 0o644); err != nil {
t.Fatal(err)
}
provider := NewHyprlandProvider(tmpDir)
rawAction := `function() hl.plugin.scrolloverview.overview("toggle") end`
if err := provider.SetBind("SUPER + G", rawAction, "Toggle overview", nil); err != nil {
t.Fatal(err)
}
data, err := os.ReadFile(filepath.Join(dmsDir, "binds-user.lua"))
if err != nil {
t.Fatal(err)
}
got := string(data)
if !strings.Contains(got, `hl.bind("SUPER + G", `+rawAction) {
t.Fatalf("expected raw Lua action to be written verbatim, got:\n%s", got)
}
if strings.Contains(got, "hyprctl dispatch function") {
t.Fatalf("expected raw Lua action to not be wrapped in hyprctl dispatch, got:\n%s", got)
}
}
func TestHyprlandSetBindUpdatesSpacedLuaOverrideWithoutDuplicates(t *testing.T) {
tmpDir := t.TempDir()
dmsDir := filepath.Join(tmpDir, "dms")
+22 -16
View File
@@ -471,12 +471,9 @@ output_path = '%s'
case TemplateKindTerminal:
appendTerminalConfig(opts, cfgFile, tmpDir, tmpl.Commands, tmpl.Flatpaks, tmpl.ConfigFile)
case TemplateKindVSCode:
appendVSCodeConfig(cfgFile, "vscode", filepath.Join(homeDir, ".vscode/extensions"), opts.ShellDir)
appendVSCodeConfig(cfgFile, "codium", filepath.Join(homeDir, ".vscode-oss/extensions"), opts.ShellDir)
appendVSCodeConfig(cfgFile, "codeoss", filepath.Join(homeDir, ".config/Code - OSS/extensions"), opts.ShellDir)
appendVSCodeConfig(cfgFile, "cursor", filepath.Join(homeDir, ".cursor/extensions"), opts.ShellDir)
appendVSCodeConfig(cfgFile, "windsurf", filepath.Join(homeDir, ".windsurf/extensions"), opts.ShellDir)
appendVSCodeConfig(cfgFile, "vscode-insiders", filepath.Join(homeDir, ".vscode-insiders/extensions"), opts.ShellDir)
for _, editor := range vscodeEditors {
appendVSCodeConfig(cfgFile, editor.name, editor.extensionsDir(homeDir), opts.ShellDir)
}
case TemplateKindEmacs:
if utils.EmacsConfigDir() != "" {
appendConfig(opts, cfgFile, tmpl.Commands, tmpl.Flatpaks, tmpl.ConfigDirs, tmpl.ConfigFile)
@@ -633,6 +630,23 @@ func appExists(checker utils.AppChecker, checkCmd []string, checkFlatpaks []stri
return false
}
type vscodeEditor struct {
name string
dataDir string
}
var vscodeEditors = []vscodeEditor{
{"vscode", ".vscode"},
{"codium", ".vscode-oss"},
{"cursor", ".cursor"},
{"windsurf", ".windsurf"},
{"vscode-insiders", ".vscode-insiders"},
}
func (e vscodeEditor) extensionsDir(homeDir string) string {
return filepath.Join(homeDir, e.dataDir, "extensions")
}
func appendVSCodeConfig(cfgFile *os.File, name, extBaseDir, shellDir string) {
pattern := filepath.Join(extBaseDir, "danklinux.dms-theme-*")
matches, err := filepath.Glob(pattern)
@@ -1168,16 +1182,8 @@ func CheckTemplates(checker utils.AppChecker) []TemplateCheck {
}
func checkVSCodeExtension(homeDir string) bool {
extDirs := []string{
filepath.Join(homeDir, ".vscode/extensions"),
filepath.Join(homeDir, ".vscode-oss/extensions"),
filepath.Join(homeDir, ".config/Code - OSS/extensions"),
filepath.Join(homeDir, ".cursor/extensions"),
filepath.Join(homeDir, ".windsurf/extensions"),
}
for _, extDir := range extDirs {
pattern := filepath.Join(extDir, "danklinux.dms-theme-*")
for _, editor := range vscodeEditors {
pattern := filepath.Join(editor.extensionsDir(homeDir), "danklinux.dms-theme-*")
if matches, err := filepath.Glob(pattern); err == nil && len(matches) > 0 {
return true
}
@@ -22,6 +22,16 @@ func TestLockScreenPasswordFieldBypassesTextInputIME(t *testing.T) {
if !strings.Contains(content, "Keys.onPressed") || !strings.Contains(content, "event.text") {
t.Fatalf("passwordField should handle physical key text manually instead of relying on a text input control")
}
// Wayland IMEs commit unconsumed printable keys as text-input text rather
// than forwarding raw keys, so the lock screen needs an IME commit sink
// alongside raw key handling.
if !strings.Contains(content, "id: imeCommitSink") {
t.Fatalf("passwordField must keep the imeCommitSink TextInput so IME-routed keyboards can type (#2950)")
}
if !strings.Contains(content, "Qt.ImhSensitiveData") {
t.Fatalf("imeCommitSink must advertise hidden-text hints so IMEs treat it as a password field")
}
}
func TestLockScreenPamSupportsManagedAndSystemPolicies(t *testing.T) {
@@ -302,17 +302,17 @@ func (a *SecretAgent) GetSecrets(
}
a.backend.cachedVPNCredsMu.Unlock()
a.backend.cachedGPSamlMu.Lock()
cachedGPSaml := a.backend.cachedGPSamlCookie
if cachedGPSaml != nil && cachedGPSaml.ConnectionUUID == connUuid {
a.backend.cachedGPSamlCookie = nil
a.backend.cachedGPSamlMu.Unlock()
a.backend.cachedOpenConnectMu.Lock()
cachedOpenConnect := a.backend.cachedOpenConnectAuth
if cachedOpenConnect != nil && cachedOpenConnect.ConnectionUUID == connUuid {
a.backend.cachedOpenConnectAuth = nil
a.backend.cachedOpenConnectMu.Unlock()
log.Infof("[SecretAgent] Using cached GlobalProtect SAML cookie for %s", connUuid)
log.Infof("[SecretAgent] Using cached OpenConnect authentication for %s", connUuid)
return buildGPSamlSecretsResponse(settingName, cachedGPSaml.Cookie, cachedGPSaml.Host, cachedGPSaml.Fingerprint), nil
return buildOpenConnectSecretsResponse(settingName, cachedOpenConnect.Cookie, cachedOpenConnect.Host, cachedOpenConnect.Fingerprint), nil
}
a.backend.cachedGPSamlMu.Unlock()
a.backend.cachedOpenConnectMu.Unlock()
if len(fields) == 1 && fields[0] == "gp-saml" {
gateway := ""
@@ -347,17 +347,17 @@ func (a *SecretAgent) GetSecrets(
log.Infof("[SecretAgent] GlobalProtect SAML authentication successful, returning cookie to NetworkManager")
a.backend.cachedGPSamlMu.Lock()
a.backend.cachedGPSamlCookie = &cachedGPSamlCookie{
a.backend.cachedOpenConnectMu.Lock()
a.backend.cachedOpenConnectAuth = &cachedOpenConnectAuth{
ConnectionUUID: connUuid,
Cookie: authResult.Cookie,
Host: authResult.Host,
User: authResult.User,
Fingerprint: authResult.Fingerprint,
}
a.backend.cachedGPSamlMu.Unlock()
a.backend.cachedOpenConnectMu.Unlock()
return buildGPSamlSecretsResponse(settingName, authResult.Cookie, authResult.Host, authResult.Fingerprint), nil
return buildOpenConnectSecretsResponse(settingName, authResult.Cookie, authResult.Host, authResult.Fingerprint), nil
}
}
@@ -987,7 +987,7 @@ func buildWiFiSecretsResponse(settingName string, secrets map[string]string) nmS
return out
}
func buildGPSamlSecretsResponse(settingName, cookie, host, fingerprint string) nmSettingMap {
func buildOpenConnectSecretsResponse(settingName, cookie, host, fingerprint string) nmSettingMap {
out := nmSettingMap{}
vpnSec := nmVariantMap{}
@@ -122,7 +122,7 @@ func TestNeedsExternalBrowserAuth(t *testing.T) {
}
}
func TestBuildGPSamlSecretsResponse(t *testing.T) {
func TestBuildOpenConnectSecretsResponse(t *testing.T) {
tests := []struct {
name string
settingName string
@@ -155,7 +155,7 @@ func TestBuildGPSamlSecretsResponse(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
result := buildGPSamlSecretsResponse(tt.settingName, tt.cookie, tt.host, tt.fingerprint)
result := buildOpenConnectSecretsResponse(tt.settingName, tt.cookie, tt.host, tt.fingerprint)
assert.NotNil(t, result)
assert.Contains(t, result, tt.settingName)
@@ -86,8 +86,8 @@ type NetworkManagerBackend struct {
cachedVPNCredsMu sync.Mutex
cachedPKCS11PIN *cachedPKCS11PIN
cachedPKCS11Mu sync.Mutex
cachedGPSamlCookie *cachedGPSamlCookie
cachedGPSamlMu sync.Mutex
cachedOpenConnectAuth *cachedOpenConnectAuth
cachedOpenConnectMu sync.Mutex
cachedWiFiSecret *cachedWiFiSecret
cachedWiFiSecretMu sync.Mutex
@@ -101,6 +101,7 @@ type pendingVPNCredentials struct {
// Secrets holds all VPN secret fields keyed by name (e.g. "cert-pass");
// falls back to Password under the "password" key when empty.
Secrets map[string]string
PersistentSecrets map[string]string
SavePassword bool
}
@@ -124,7 +125,7 @@ type cachedWiFiSecret struct {
Secrets map[string]string
}
type cachedGPSamlCookie struct {
type cachedOpenConnectAuth struct {
ConnectionUUID string
Cookie string
Host string
@@ -3,6 +3,7 @@ package network
import (
"bufio"
"context"
"errors"
"fmt"
"os/exec"
"strings"
@@ -10,16 +11,29 @@ import (
"github.com/AvengeMedia/DankMaterialShell/core/internal/log"
)
type gpSamlAuthResult struct {
type openConnectAuthResult struct {
Cookie string
Host string
User string
Fingerprint string
}
type openConnectAuthError struct {
cause error
serverCert string
}
func (e *openConnectAuthError) Error() string {
return fmt.Sprintf("openconnect --authenticate failed: %v", e.cause)
}
func (e *openConnectAuthError) Unwrap() error {
return e.cause
}
// runGlobalProtectSAMLAuth handles GlobalProtect SAML/SSO authentication using gp-saml-gui.
// Only supports protocol=gp. Other protocols need their own implementations.
func (b *NetworkManagerBackend) runGlobalProtectSAMLAuth(ctx context.Context, gateway, protocol string) (*gpSamlAuthResult, error) {
func (b *NetworkManagerBackend) runGlobalProtectSAMLAuth(ctx context.Context, gateway, protocol string) (*openConnectAuthResult, error) {
if gateway == "" {
return nil, fmt.Errorf("GP SAML auth: gateway is empty")
}
@@ -63,7 +77,7 @@ func (b *NetworkManagerBackend) runGlobalProtectSAMLAuth(ctx context.Context, ga
}
}()
result := &gpSamlAuthResult{Host: gateway}
result := &openConnectAuthResult{Host: gateway}
var allOutput []string
scanner := bufio.NewScanner(stdout)
@@ -117,13 +131,8 @@ func (b *NetworkManagerBackend) runGlobalProtectSAMLAuth(ctx context.Context, ga
return result, nil
}
func convertGPPreloginCookie(ctx context.Context, gateway, preloginCookie, user string) (*gpSamlAuthResult, error) {
ocPath, err := exec.LookPath("openconnect")
if err != nil {
return nil, fmt.Errorf("openconnect not found: %w", err)
}
args := []string{
func convertGPPreloginCookie(ctx context.Context, gateway, preloginCookie, user string) (*openConnectAuthResult, error) {
return runOpenConnectAuthenticate(ctx, []string{
"--protocol=gp",
"--usergroup=gateway:prelogin-cookie",
"--user=" + user,
@@ -131,18 +140,83 @@ func convertGPPreloginCookie(ctx context.Context, gateway, preloginCookie, user
"--allow-insecure-crypto",
"--authenticate",
gateway,
}, preloginCookie)
}
func runOpenConnectPasswordAuth(
ctx context.Context,
data map[string]string,
username, password, serverCert string,
) (*openConnectAuthResult, error) {
if data["protocol"] != "fortinet" {
return nil, fmt.Errorf("only Fortinet password authentication is supported")
}
gateway := data["gateway"]
if gateway == "" {
return nil, fmt.Errorf("OpenConnect gateway is empty")
}
if username == "" || password == "" {
return nil, fmt.Errorf("OpenConnect username and password are required")
}
args := []string{
"--protocol=fortinet",
"--user=" + username,
"--passwd-on-stdin",
"--non-inter",
}
if usergroup := data["usergroup"]; usergroup != "" {
args = append(args, "--usergroup="+usergroup)
}
if serverCert != "" {
args = append(args, "--servercert="+serverCert)
}
args = append(args, "--authenticate", gateway)
result, err := runOpenConnectAuthenticate(ctx, args, password)
if err == nil {
result.Host = gateway
if result.Fingerprint == "" {
result.Fingerprint = serverCert
}
}
return result, err
}
func runOpenConnectAuthenticate(ctx context.Context, args []string, secret string) (*openConnectAuthResult, error) {
ocPath, err := exec.LookPath("openconnect")
if err != nil {
return nil, fmt.Errorf("openconnect not found: %w", err)
}
cmd := exec.CommandContext(ctx, ocPath, args...)
cmd.Stdin = strings.NewReader(preloginCookie)
cmd.Stdin = strings.NewReader(secret + "\n")
output, err := cmd.CombinedOutput()
result := parseOpenConnectAuthenticateOutput(string(output))
serverCert := suggestedOpenConnectServerCert(string(output))
if err != nil {
return nil, fmt.Errorf("openconnect --authenticate failed: %w\noutput: %s", err, string(output))
if ctx.Err() != nil {
return nil, fmt.Errorf("openconnect authentication timed out or was cancelled: %w", ctx.Err())
}
return nil, &openConnectAuthError{cause: err, serverCert: serverCert}
}
if result.Cookie == "" {
return nil, &openConnectAuthError{
cause: errors.New("no COOKIE in command output"),
serverCert: serverCert,
}
}
result := &gpSamlAuthResult{}
for _, line := range strings.Split(string(output), "\n") {
log.Infof("[OpenConnect] Authentication successful: cookie_len=%d, host=%s, has_fingerprint=%v",
len(result.Cookie), result.Host, result.Fingerprint != "")
return result, nil
}
func parseOpenConnectAuthenticateOutput(output string) *openConnectAuthResult {
result := &openConnectAuthResult{}
for _, line := range strings.Split(output, "\n") {
line = strings.TrimSpace(line)
switch {
case strings.HasPrefix(line, "COOKIE="):
@@ -158,15 +232,7 @@ func convertGPPreloginCookie(ctx context.Context, gateway, preloginCookie, user
}
}
}
if result.Cookie == "" {
return nil, fmt.Errorf("no COOKIE in openconnect --authenticate output: %s", string(output))
}
log.Infof("[GP-SAML] openconnect --authenticate: cookie_len=%d, host=%s, fingerprint=%s",
len(result.Cookie), result.Host, result.Fingerprint)
return result, nil
return result
}
func unshellQuote(s string) string {
@@ -179,7 +245,7 @@ func unshellQuote(s string) string {
return s
}
func parseGPSamlFromCommandLine(line string, result *gpSamlAuthResult) {
func parseGPSamlFromCommandLine(line string, result *openConnectAuthResult) {
if !strings.Contains(line, "openconnect") {
return
}
@@ -1,6 +1,10 @@
package network
import (
"context"
"errors"
"os"
"path/filepath"
"testing"
"github.com/stretchr/testify/assert"
@@ -71,7 +75,7 @@ func TestParseGPSamlFromCommandLine(t *testing.T) {
tests := []struct {
name string
line string
initialResult *gpSamlAuthResult
initialResult *openConnectAuthResult
expectedCookie string
expectedUser string
expectedFP string
@@ -79,7 +83,7 @@ func TestParseGPSamlFromCommandLine(t *testing.T) {
{
name: "full openconnect command",
line: "openconnect --protocol=gp --cookie=AUTH123 --servercert=pin-sha256:ABC --user=john",
initialResult: &gpSamlAuthResult{},
initialResult: &openConnectAuthResult{},
expectedCookie: "AUTH123",
expectedUser: "john",
expectedFP: "pin-sha256:ABC",
@@ -87,7 +91,7 @@ func TestParseGPSamlFromCommandLine(t *testing.T) {
{
name: "with equals signs in cookie",
line: "openconnect --cookie=authcookie=xyz123&portal=GATE --user=jane",
initialResult: &gpSamlAuthResult{},
initialResult: &openConnectAuthResult{},
expectedCookie: "authcookie=xyz123&portal=GATE",
expectedUser: "jane",
expectedFP: "",
@@ -95,7 +99,7 @@ func TestParseGPSamlFromCommandLine(t *testing.T) {
{
name: "non-openconnect line",
line: "some other output",
initialResult: &gpSamlAuthResult{},
initialResult: &openConnectAuthResult{},
expectedCookie: "",
expectedUser: "",
expectedFP: "",
@@ -103,7 +107,7 @@ func TestParseGPSamlFromCommandLine(t *testing.T) {
{
name: "preserves existing values",
line: "openconnect --user=newuser",
initialResult: &gpSamlAuthResult{Cookie: "existing", Fingerprint: "existing-fp"},
initialResult: &openConnectAuthResult{Cookie: "existing", Fingerprint: "existing-fp"},
expectedCookie: "existing",
expectedUser: "newuser",
expectedFP: "existing-fp",
@@ -111,7 +115,7 @@ func TestParseGPSamlFromCommandLine(t *testing.T) {
{
name: "only updates empty fields",
line: "openconnect --cookie=NEW --user=NEW",
initialResult: &gpSamlAuthResult{Cookie: "OLD"},
initialResult: &openConnectAuthResult{Cookie: "OLD"},
expectedCookie: "OLD",
expectedUser: "NEW",
expectedFP: "",
@@ -119,7 +123,7 @@ func TestParseGPSamlFromCommandLine(t *testing.T) {
{
name: "real gp-saml-gui output",
line: "openconnect --protocol=gp --user=john.doe@example.com --os=linux-64 --usergroup=gateway:prelogin-cookie --passwd-on-stdin",
initialResult: &gpSamlAuthResult{},
initialResult: &openConnectAuthResult{},
expectedCookie: "",
expectedUser: "john.doe@example.com",
expectedFP: "",
@@ -127,7 +131,7 @@ func TestParseGPSamlFromCommandLine(t *testing.T) {
{
name: "with server cert flag",
line: "openconnect --servercert=pin-sha256:xp3scfzy3rOgQEXnfPiYKrUk7D66a8b8O+gEXaMPleE= vpn.example.com",
initialResult: &gpSamlAuthResult{},
initialResult: &openConnectAuthResult{},
expectedCookie: "",
expectedUser: "",
expectedFP: "pin-sha256:xp3scfzy3rOgQEXnfPiYKrUk7D66a8b8O+gEXaMPleE=",
@@ -158,7 +162,7 @@ func TestParseGPSamlFromCommandLine_MultipleLines(t *testing.T) {
"",
}
result := &gpSamlAuthResult{}
result := &openConnectAuthResult{}
for _, line := range lines {
parseGPSamlFromCommandLine(line, result)
}
@@ -167,3 +171,19 @@ func TestParseGPSamlFromCommandLine_MultipleLines(t *testing.T) {
assert.Empty(t, result.Cookie, "cookie should not be parsed from command line")
assert.Empty(t, result.Fingerprint)
}
func TestRunOpenConnectAuthenticateSanitizesFailure(t *testing.T) {
binDir := t.TempDir()
openConnectPath := filepath.Join(binDir, "openconnect")
script := "#!/bin/sh\nprintf '%s\\n' 'Cookie: should-not-leak' 'Add --servercert pin-sha256:TEST-FINGERPRINT' >&2\nexit 1\n"
assert.NoError(t, os.WriteFile(openConnectPath, []byte(script), 0o755))
t.Setenv("PATH", binDir)
_, err := runOpenConnectAuthenticate(context.Background(), []string{"--authenticate", "vpn.example.test"}, "password")
assert.Error(t, err)
assert.NotContains(t, err.Error(), "should-not-leak")
var authErr *openConnectAuthError
assert.True(t, errors.As(err, &authErr))
assert.Equal(t, "pin-sha256:TEST-FINGERPRINT", authErr.serverCert)
}
@@ -326,6 +326,7 @@ func (b *NetworkManagerBackend) ConnectVPN(uuidOrName string, singleActive bool)
}
authAction := detectVPNAuthAction(vpnServiceType, vpnData)
var openConnectAuth *openConnectAuthResult
switch authAction {
case "openvpn_username":
@@ -335,6 +336,19 @@ func (b *NetworkManagerBackend) ConnectVPN(uuidOrName string, singleActive bool)
if err := b.handleOpenVPNUsernameAuth(targetConn, connName, targetUUID, vpnServiceType); err != nil {
return err
}
case "openconnect_password":
if err := b.ensureOpenConnectAgentFlags(targetConn, vpnData); err != nil {
return fmt.Errorf("failed to prepare OpenConnect connection: %w", err)
}
authCtx, authCancel := context.WithTimeout(context.Background(), 5*time.Minute)
openConnectAuth, err = b.handleOpenConnectPasswordAuth(
authCtx, targetConn, connName, targetUUID, vpnServiceType, vpnData,
)
authCancel()
if err != nil {
return fmt.Errorf("OpenConnect authentication failed: %w", err)
}
case "gp_saml":
gateway := vpnData["gateway"]
protocol := vpnData["protocol"]
@@ -345,7 +359,7 @@ func (b *NetworkManagerBackend) ConnectVPN(uuidOrName string, singleActive bool)
log.Infof("[ConnectVPN] GlobalProtect SAML/SSO authentication required for %s (gateway=%s)", connName, gateway)
samlCtx, samlCancel := context.WithTimeout(context.Background(), 5*time.Minute)
authResult, err := b.runGlobalProtectSAMLAuth(samlCtx, gateway, protocol)
openConnectAuth, err = b.runGlobalProtectSAMLAuth(samlCtx, gateway, protocol)
samlCancel()
if err != nil {
errMsg := err.Error()
@@ -363,16 +377,6 @@ func (b *NetworkManagerBackend) ConnectVPN(uuidOrName string, singleActive bool)
}
}
b.cachedGPSamlMu.Lock()
b.cachedGPSamlCookie = &cachedGPSamlCookie{
ConnectionUUID: targetUUID,
Cookie: authResult.Cookie,
Host: authResult.Host,
User: authResult.User,
Fingerprint: authResult.Fingerprint,
}
b.cachedGPSamlMu.Unlock()
if err := targetConn.ClearSecrets(); err != nil {
log.Warnf("[ConnectVPN] ClearSecrets failed (non-fatal): %v", err)
} else {
@@ -382,6 +386,19 @@ func (b *NetworkManagerBackend) ConnectVPN(uuidOrName string, singleActive bool)
log.Infof("[ConnectVPN] GlobalProtect SAML cookie cached for %s, proceeding with activation", connName)
}
if openConnectAuth != nil {
b.cachedOpenConnectMu.Lock()
b.cachedOpenConnectAuth = &cachedOpenConnectAuth{
ConnectionUUID: targetUUID,
Cookie: openConnectAuth.Cookie,
Host: openConnectAuth.Host,
User: openConnectAuth.User,
Fingerprint: openConnectAuth.Fingerprint,
}
b.cachedOpenConnectMu.Unlock()
log.Infof("[ConnectVPN] OpenConnect authentication cached for %s, proceeding with activation", connName)
}
b.stateMutex.Lock()
b.state.IsConnectingVPN = true
b.state.ConnectingVPNUUID = targetUUID
@@ -394,6 +411,13 @@ func (b *NetworkManagerBackend) ConnectVPN(uuidOrName string, singleActive bool)
nm := b.nmConn.(gonetworkmanager.NetworkManager)
_, err = nm.ActivateConnection(targetConn, nil, nil)
if err != nil {
b.cachedOpenConnectMu.Lock()
b.cachedOpenConnectAuth = nil
b.cachedOpenConnectMu.Unlock()
b.pendingVPNSaveMu.Lock()
b.pendingVPNSave = nil
b.pendingVPNSaveMu.Unlock()
b.stateMutex.Lock()
b.state.IsConnectingVPN = false
b.state.ConnectingVPNUUID = ""
@@ -425,6 +449,9 @@ func detectVPNAuthAction(serviceType string, data map[string]string) string {
log.Infof("[VPN] External browser auth detected for protocol '%s' but only GlobalProtect (gp) is currently supported", protocol)
}
}
if protocol == "fortinet" && data["authtype"] == "password" {
return "openconnect_password"
}
case strings.Contains(serviceType, "openvpn"):
connType := data["connection-type"]
username := data["username"]
@@ -435,6 +462,200 @@ func detectVPNAuthAction(serviceType string, data map[string]string) string {
return ""
}
func setOpenConnectAgentFlags(data map[string]string) bool {
changed := false
for _, field := range []string{"cookie", "gateway", "gwcert"} {
key := field + "-flags"
if data[key] != "2" {
data[key] = "2"
changed = true
}
}
return changed
}
func (b *NetworkManagerBackend) ensureOpenConnectAgentFlags(conn gonetworkmanager.Connection, data map[string]string) error {
if !setOpenConnectAgentFlags(data) {
return nil
}
if b.dbusConn == nil {
return fmt.Errorf("NetworkManager D-Bus connection is unavailable")
}
connObj := b.dbusConn.Object("org.freedesktop.NetworkManager", conn.GetPath())
var existingSettings map[string]map[string]dbus.Variant
if err := connObj.Call("org.freedesktop.NetworkManager.Settings.Connection.GetSettings", 0).Store(&existingSettings); err != nil {
return fmt.Errorf("failed to get connection settings: %w", err)
}
vpn, ok := existingSettings["vpn"]
if !ok {
return fmt.Errorf("VPN settings are missing")
}
vpn["data"] = dbus.MakeVariant(data)
var stored map[string]map[string]dbus.Variant
if err := connObj.Call("org.freedesktop.NetworkManager.Settings.Connection.GetSecrets", 0, "vpn").Store(&stored); err != nil {
return fmt.Errorf("failed to preserve VPN secrets: %w", err)
}
if storedVPN, ok := stored["vpn"]; ok {
if secrets, ok := storedVPN["secrets"]; ok {
vpn["secrets"] = secrets
}
}
settings := map[string]map[string]dbus.Variant{"vpn": vpn}
if connection, ok := existingSettings["connection"]; ok {
settings["connection"] = connection
}
var result map[string]dbus.Variant
if err := connObj.Call("org.freedesktop.NetworkManager.Settings.Connection.Update2", 0,
settings, uint32(0x1), map[string]dbus.Variant{}).Store(&result); err != nil {
return fmt.Errorf("failed to set NetworkManager secret-agent flags: %w", err)
}
return nil
}
func (b *NetworkManagerBackend) handleOpenConnectPasswordAuth(
ctx context.Context,
targetConn gonetworkmanager.Connection,
connName, targetUUID, vpnServiceType string,
data map[string]string,
) (*openConnectAuthResult, error) {
username := data["username"]
secrets := map[string]string{}
if stored, err := targetConn.GetSecrets("vpn"); err == nil {
if vpn, ok := stored["vpn"]; ok {
if saved, ok := vpn["secrets"].(map[string]string); ok {
secrets = saved
}
}
}
password := secrets["password"]
serverCert := secrets["certificate:"+data["gateway"]]
if serverCert == "" {
serverCert = secrets["gwcert"]
}
var reply PromptReply
if username == "" || password == "" {
if b.promptBroker == nil {
return nil, fmt.Errorf("password authentication requires an interactive prompt")
}
fields := []string{}
fieldsInfo := []FieldInfo{}
if username == "" {
fields = append(fields, "username")
fieldsInfo = append(fieldsInfo, FieldInfo{Name: "username", Label: "Username", IsSecret: false})
}
if password == "" {
fields = append(fields, "password")
fieldsInfo = append(fieldsInfo, FieldInfo{Name: "password", Label: "Password", IsSecret: true})
}
token, err := b.promptBroker.Ask(ctx, PromptRequest{
Name: connName,
ConnType: "vpn",
VpnService: vpnServiceType,
SettingName: "vpn",
Fields: fields,
FieldsInfo: fieldsInfo,
Reason: "required",
ConnectionId: connName,
ConnectionUuid: targetUUID,
ConnectionPath: string(targetConn.GetPath()),
})
if err != nil {
return nil, fmt.Errorf("failed to request credentials: %w", err)
}
reply, err = b.promptBroker.Wait(ctx, token)
if err != nil {
return nil, fmt.Errorf("credentials prompt failed: %w", err)
}
if username == "" {
username = reply.Secrets["username"]
}
if password == "" {
password = reply.Secrets["password"]
}
}
auth, err := runOpenConnectPasswordAuth(ctx, data, username, password, serverCert)
persistentSecrets := map[string]string{}
var authErr *openConnectAuthError
if err != nil && errors.As(err, &authErr) && authErr.serverCert != "" && authErr.serverCert != serverCert {
if b.promptBroker == nil {
return nil, fmt.Errorf("VPN server certificate is untrusted: %s", authErr.serverCert)
}
reason := "server-certificate"
if serverCert != "" {
reason = "server-certificate-changed"
}
token, promptErr := b.promptBroker.Ask(ctx, PromptRequest{
Name: connName,
ConnType: "vpn",
VpnService: vpnServiceType,
SettingName: "vpn",
Hints: []string{authErr.serverCert},
Reason: reason,
ConnectionId: connName,
ConnectionUuid: targetUUID,
ConnectionPath: string(targetConn.GetPath()),
})
if promptErr != nil {
return nil, fmt.Errorf("failed to request certificate confirmation: %w", promptErr)
}
if _, promptErr = b.promptBroker.Wait(ctx, token); promptErr != nil {
return nil, fmt.Errorf("certificate confirmation failed: %w", promptErr)
}
auth, err = runOpenConnectPasswordAuth(ctx, data, username, password, authErr.serverCert)
if err == nil {
persistentSecrets["certificate:"+data["gateway"]] = authErr.serverCert
}
}
if err != nil {
return nil, err
}
if len(reply.Secrets) > 0 || len(persistentSecrets) > 0 {
creds := &pendingVPNCredentials{
ConnectionPath: string(targetConn.GetPath()),
PersistentSecrets: persistentSecrets,
}
if _, ok := reply.Secrets["username"]; ok {
creds.Username = username
}
if reply.Save {
creds.Username = username
creds.Password = password
creds.Secrets = map[string]string{"password": password}
creds.SavePassword = true
}
b.pendingVPNSaveMu.Lock()
b.pendingVPNSave = creds
b.pendingVPNSaveMu.Unlock()
}
return auth, nil
}
func suggestedOpenConnectServerCert(output string) string {
for _, field := range strings.Fields(output) {
field = strings.Trim(field, "'\".,")
if strings.HasPrefix(field, "pin-sha256:") {
return field
}
}
return ""
}
func (b *NetworkManagerBackend) handleOpenVPNUsernameAuth(targetConn gonetworkmanager.Connection, connName, targetUUID, vpnServiceType string) error {
log.Infof("[ConnectVPN] OpenVPN requires username in vpn.data - prompting before activation")
@@ -758,13 +979,13 @@ func (b *NetworkManagerBackend) updateVPNConnectionState() {
b.state.VPNErrorUuid = ""
b.stateMutex.Unlock()
// Clear cached PKCS11 PIN and SAML cookie on success
// Clear cached one-shot authentication values on success.
b.cachedPKCS11Mu.Lock()
b.cachedPKCS11PIN = nil
b.cachedPKCS11Mu.Unlock()
b.cachedGPSamlMu.Lock()
b.cachedGPSamlCookie = nil
b.cachedGPSamlMu.Unlock()
b.cachedOpenConnectMu.Lock()
b.cachedOpenConnectAuth = nil
b.cachedOpenConnectMu.Unlock()
b.pendingVPNSaveMu.Lock()
pending := b.pendingVPNSave
@@ -787,13 +1008,16 @@ func (b *NetworkManagerBackend) updateVPNConnectionState() {
b.state.VPNErrorUuid = connectingVPNUUID
b.stateMutex.Unlock()
// Clear cached PKCS11 PIN and SAML cookie on failure
// Clear cached one-shot authentication values on failure.
b.cachedPKCS11Mu.Lock()
b.cachedPKCS11PIN = nil
b.cachedPKCS11Mu.Unlock()
b.cachedGPSamlMu.Lock()
b.cachedGPSamlCookie = nil
b.cachedGPSamlMu.Unlock()
b.cachedOpenConnectMu.Lock()
b.cachedOpenConnectAuth = nil
b.cachedOpenConnectMu.Unlock()
b.pendingVPNSaveMu.Lock()
b.pendingVPNSave = nil
b.pendingVPNSaveMu.Unlock()
return
}
}
@@ -811,13 +1035,16 @@ func (b *NetworkManagerBackend) updateVPNConnectionState() {
b.state.VPNErrorUuid = connectingVPNUUID
b.stateMutex.Unlock()
// Clear cached PKCS11 PIN and SAML cookie
// Clear cached one-shot authentication values.
b.cachedPKCS11Mu.Lock()
b.cachedPKCS11PIN = nil
b.cachedPKCS11Mu.Unlock()
b.cachedGPSamlMu.Lock()
b.cachedGPSamlCookie = nil
b.cachedGPSamlMu.Unlock()
b.cachedOpenConnectMu.Lock()
b.cachedOpenConnectAuth = nil
b.cachedOpenConnectMu.Unlock()
b.pendingVPNSaveMu.Lock()
b.pendingVPNSave = nil
b.pendingVPNSaveMu.Unlock()
}
}
@@ -863,17 +1090,40 @@ func (b *NetworkManagerBackend) saveVPNCredentials(creds *pendingVPNCredentials)
log.Infof("[saveVPNCredentials] Saving username")
}
// Save secrets if requested
if creds.SavePassword {
secs := creds.Secrets
if len(secs) == 0 {
secs = map[string]string{"password": creds.Password}
secs := map[string]string{}
if len(creds.PersistentSecrets) > 0 {
var stored map[string]map[string]dbus.Variant
if err := connObj.Call("org.freedesktop.NetworkManager.Settings.Connection.GetSecrets", 0, "vpn").Store(&stored); err != nil {
log.Warnf("[saveVPNCredentials] GetSecrets failed: %v", err)
return
}
for field := range secs {
if storedVPN, ok := stored["vpn"]; ok {
if storedSecrets, ok := storedVPN["secrets"]; ok {
saved, _ := storedSecrets.Value().(map[string]string)
for field, value := range saved {
secs[field] = value
}
}
}
for field, value := range creds.PersistentSecrets {
secs[field] = value
data[field+"-flags"] = "0"
}
}
if creds.SavePassword {
toSave := creds.Secrets
if len(toSave) == 0 {
toSave = map[string]string{"password": creds.Password}
}
for field, value := range toSave {
secs[field] = value
data[field+"-flags"] = "0"
}
}
if len(secs) > 0 {
vpn["secrets"] = dbus.MakeVariant(secs)
log.Infof("[saveVPNCredentials] Saving %d secret field(s) with flags=0", len(secs))
log.Infof("[saveVPNCredentials] Saving %d secret field(s)", len(secs))
}
vpn["data"] = dbus.MakeVariant(data)
@@ -1,10 +1,14 @@
package network
import (
"context"
"os"
"path/filepath"
"testing"
mock_gonetworkmanager "github.com/AvengeMedia/DankMaterialShell/core/internal/mocks/github.com/Wifx/gonetworkmanager/v2"
"github.com/Wifx/gonetworkmanager/v2"
"github.com/godbus/dbus/v5"
"github.com/stretchr/testify/assert"
)
@@ -136,3 +140,137 @@ func TestNetworkManagerBackend_UpdateVPNConnectionState_EmptyUUID(t *testing.T)
backend.updateVPNConnectionState()
})
}
func TestDetectVPNAuthAction_FortinetPasswordOnly(t *testing.T) {
service := "org.freedesktop.NetworkManager.openconnect"
assert.Equal(t, "openconnect_password", detectVPNAuthAction(service, map[string]string{
"protocol": "fortinet",
"authtype": "password",
}))
assert.Empty(t, detectVPNAuthAction(service, map[string]string{
"protocol": "anyconnect",
"authtype": "password",
}))
assert.Empty(t, detectVPNAuthAction(service, map[string]string{
"protocol": "fortinet",
"authtype": "saml",
}))
}
func TestEnsureOpenConnectAgentFlags(t *testing.T) {
data := map[string]string{"protocol": "fortinet"}
assert.True(t, setOpenConnectAgentFlags(data))
assert.Equal(t, "2", data["cookie-flags"])
assert.Equal(t, "2", data["gateway-flags"])
assert.Equal(t, "2", data["gwcert-flags"])
assert.False(t, setOpenConnectAgentFlags(data))
}
func TestOpenConnectCertificateConfirmation(t *testing.T) {
binDir := t.TempDir()
openConnectPath := filepath.Join(binDir, "openconnect")
script := `#!/bin/sh
case "$*" in
*--servercert=pin-sha256:TEST-FINGERPRINT*)
printf '%s\n' "COOKIE='SVPNCOOKIE=test'" "HOST='vpn.example.test'" "FINGERPRINT='pin-sha256:TEST-FINGERPRINT'"
exit 0
;;
esac
printf '%s\n' 'Add --servercert pin-sha256:TEST-FINGERPRINT' >&2
exit 1
`
assert.NoError(t, os.WriteFile(openConnectPath, []byte(script), 0o755))
t.Setenv("PATH", binDir)
conn := mock_gonetworkmanager.NewMockConnection(t)
connPath := dbus.ObjectPath("/org/freedesktop/NetworkManager/Settings/999")
conn.EXPECT().GetSecrets("vpn").Return(gonetworkmanager.ConnectionSettings{
"vpn": {"secrets": map[string]string{"password": "test-password"}},
}, nil)
conn.EXPECT().GetPath().Return(connPath).Twice()
broker := &fakePromptBroker{
asked: make(chan PromptRequest, 1),
reply: PromptReply{},
}
backend := &NetworkManagerBackend{promptBroker: broker}
data := map[string]string{
"gateway": "vpn.example.test:443",
"protocol": "fortinet",
"authtype": "password",
"username": "test-user",
}
result, err := backend.handleOpenConnectPasswordAuth(
context.Background(), conn, "Test VPN", "test-uuid",
"org.freedesktop.NetworkManager.openconnect", data,
)
assert.NoError(t, err)
assert.Equal(t, "SVPNCOOKIE=test", result.Cookie)
assert.Equal(t, "vpn.example.test:443", result.Host)
prompt := <-broker.asked
assert.Equal(t, "server-certificate", prompt.Reason)
assert.Equal(t, []string{"pin-sha256:TEST-FINGERPRINT"}, prompt.Hints)
assert.Equal(t, map[string]string{
"certificate:vpn.example.test:443": "pin-sha256:TEST-FINGERPRINT",
}, backend.pendingVPNSave.PersistentSecrets)
}
func TestOpenConnectCertificateRotationReprompts(t *testing.T) {
binDir := t.TempDir()
openConnectPath := filepath.Join(binDir, "openconnect")
script := `#!/bin/sh
case "$*" in
*--servercert=pin-sha256:NEW-FINGERPRINT*)
printf '%s\n' "COOKIE='SVPNCOOKIE=test'" "HOST='vpn.example.test'" "FINGERPRINT='pin-sha256:NEW-FINGERPRINT'"
exit 0
;;
esac
printf '%s\n' 'Add --servercert pin-sha256:NEW-FINGERPRINT' >&2
exit 1
`
assert.NoError(t, os.WriteFile(openConnectPath, []byte(script), 0o755))
t.Setenv("PATH", binDir)
conn := mock_gonetworkmanager.NewMockConnection(t)
connPath := dbus.ObjectPath("/org/freedesktop/NetworkManager/Settings/999")
conn.EXPECT().GetSecrets("vpn").Return(gonetworkmanager.ConnectionSettings{
"vpn": {"secrets": map[string]string{
"password": "test-password",
"certificate:vpn.example.test:443": "pin-sha256:OLD-FINGERPRINT",
}},
}, nil)
conn.EXPECT().GetPath().Return(connPath).Twice()
broker := &fakePromptBroker{
asked: make(chan PromptRequest, 1),
reply: PromptReply{},
}
backend := &NetworkManagerBackend{promptBroker: broker}
data := map[string]string{
"gateway": "vpn.example.test:443",
"protocol": "fortinet",
"authtype": "password",
"username": "test-user",
}
result, err := backend.handleOpenConnectPasswordAuth(
context.Background(), conn, "Test VPN", "test-uuid",
"org.freedesktop.NetworkManager.openconnect", data,
)
assert.NoError(t, err)
assert.Equal(t, "SVPNCOOKIE=test", result.Cookie)
prompt := <-broker.asked
assert.Equal(t, "server-certificate-changed", prompt.Reason)
assert.Equal(t, []string{"pin-sha256:NEW-FINGERPRINT"}, prompt.Hints)
assert.Equal(t, map[string]string{
"certificate:vpn.example.test:443": "pin-sha256:NEW-FINGERPRINT",
}, backend.pendingVPNSave.PersistentSecrets)
assert.False(t, backend.pendingVPNSave.SavePassword)
assert.Empty(t, backend.pendingVPNSave.Secrets)
}
+18
View File
@@ -43,6 +43,8 @@ func HandleRequest(conn *models.Conn, req models.Request, manager *Manager) {
handleGetNetworkQRCode(conn, req, manager)
case "network.qrcode-content":
handleGetNetworkQRCodeContent(conn, req, manager)
case "network.generate-qrcode":
handleGenerateQRCode(conn, req)
case "network.delete-qrcode":
handleDeleteQRCode(conn, req, manager)
case "network.ethernet.info":
@@ -365,6 +367,22 @@ func handleGetNetworkQRCodeContent(conn *models.Conn, req models.Request, manage
models.Respond(conn, req.ID, content)
}
func handleGenerateQRCode(conn *models.Conn, req models.Request) {
text, err := params.String(req.Params, "text")
if err != nil {
models.RespondError(conn, req.ID, err.Error())
return
}
paths, err := generateTextQRCode(text)
if err != nil {
models.RespondError(conn, req.ID, err.Error())
return
}
models.Respond(conn, req.ID, paths)
}
func handleDeleteQRCode(conn *models.Conn, req models.Request, _ *Manager) {
path, err := params.String(req.Params, "path")
if err != nil {
@@ -0,0 +1,64 @@
package network
import (
"crypto/sha256"
"fmt"
"os"
"time"
"github.com/yeqown/go-qrcode/v2"
"github.com/yeqown/go-qrcode/writer/standard"
)
const textQRCodeTmpPrefix = "/tmp/dank-text-qrcode-"
func generateTextQRCode(text string) ([2]string, error) {
qrc, err := qrcode.New(text)
if err != nil {
return [2]string{}, fmt.Errorf("failed to create QR code for text: %w", err)
}
pathThemed, pathNormal := textQRCodePaths(text)
if err := saveQRCodePNG(qrc, pathThemed, standard.WithBgTransparent(), standard.WithFgColorRGBHex("#ffffff")); err != nil {
return [2]string{}, err
}
if err := saveQRCodePNG(qrc, pathNormal); err != nil {
return [2]string{}, err
}
return [2]string{pathThemed, pathNormal}, nil
}
// Write to a temp file and rename into place so the shell's Image never
// observes a partially written PNG.
func saveQRCodePNG(qrc *qrcode.QRCode, path string, opts ...standard.ImageOption) error {
tmpPath := path + ".tmp"
opts = append(opts, standard.WithBuiltinImageEncoder(standard.PNG_FORMAT))
w, err := standard.New(tmpPath, opts...)
if err != nil {
return fmt.Errorf("failed to create QR code writer: %w", err)
}
if err := qrc.Save(w); err != nil {
os.Remove(tmpPath)
return fmt.Errorf("failed to save QR code: %w", err)
}
if err := os.Rename(tmpPath, path); err != nil {
os.Remove(tmpPath)
return fmt.Errorf("failed to move QR code into place: %w", err)
}
return nil
}
// Paths are unique per generation, not per text: the library's mask selection
// is non-deterministic, so regenerating the same text produces different
// bytes, and reusing a path lets the shell's URL-keyed pixmap cache serve a
// stale pattern over the new file.
func textQRCodePaths(text string) (themed, normal string) {
hash := fmt.Sprintf("%x", sha256.Sum256([]byte(text)))[:8]
nonce := time.Now().UnixNano()
themed = fmt.Sprintf("%s%s-%d-themed.png", textQRCodeTmpPrefix, hash, nonce)
normal = fmt.Sprintf("%s%s-%d-normal.png", textQRCodeTmpPrefix, hash, nonce)
return
}
+1 -1
View File
@@ -24,7 +24,7 @@ func qrCodePaths(ssid string) (themed, normal string) {
func isValidQRCodePath(path string) bool {
clean := filepath.Clean(path)
return strings.HasPrefix(clean, qrCodeTmpPrefix) && strings.HasSuffix(clean, ".png")
return (strings.HasPrefix(clean, qrCodeTmpPrefix) || strings.HasPrefix(clean, textQRCodeTmpPrefix)) && strings.HasSuffix(clean, ".png")
}
var safePathChar = regexp.MustCompile(`[^a-zA-Z0-9_-]`)
Generated
+3 -3
View File
@@ -3,11 +3,11 @@
"dank-qml-common": {
"flake": false,
"locked": {
"lastModified": 1785121997,
"narHash": "sha256-/MslqFCpjxws8DZqipEKCCTBa0m/SCV3+v1NRT6EuvQ=",
"lastModified": 1785445867,
"narHash": "sha256-l9IRsLIVZ7bV+KMuTdCga89tGt4lpdMXhQR7f/2qoe4=",
"owner": "AvengeMedia",
"repo": "dank-qml-common",
"rev": "7cc4564e5903a2955fe7da76969f20252cacf9bf",
"rev": "3b06bd9372e18bc8086cc3958d4f677d57fbfdd8",
"type": "github"
},
"original": {
+1 -1
View File
@@ -111,7 +111,7 @@
inherit version;
pname = "dms-shell";
src = ./core;
vendorHash = "sha256-ZvaOPC92ZFRPqSyLJa2TA9OUKQ3QnWCIMxrnYLGnC58=";
vendorHash = "sha256-pjaRyB6E2TZvVd5a4xcdGSRVr9Dg9wEG/5e+HdtZJCg=";
subPackages = [ "cmd/dms" ];
+17
View File
@@ -445,6 +445,23 @@ Item {
}
}
LazyLoader {
id: qrGeneratorModalLoader
active: false
Component.onCompleted: {
PopoutService.qrGeneratorModalLoader = qrGeneratorModalLoader;
}
QRGeneratorModal {
id: qrGeneratorModalItem
Component.onCompleted: {
PopoutService.qrGeneratorModal = qrGeneratorModalItem;
}
}
}
LazyLoader {
id: polkitAuthModalLoader
active: false
+9 -11
View File
@@ -25,20 +25,19 @@ Item {
required property var windowRuleModalLoader
function getPreferredBar(refPropertyName) {
if (!root.dankBarRepeater || root.dankBarRepeater.count === 0)
return null;
const focusedScreenName = BarWidgetService.getFocusedScreenName();
const loaders = Array.from({
length: root.dankBarRepeater.count
}, (_, i) => root.dankBarRepeater.itemAt(i));
const bars = [];
if (root.dankBarRepeater) {
for (let i = 0; i < root.dankBarRepeater.count; i++)
bars.push(...(root.dankBarRepeater.itemAt(i)?.item?.barVariants?.instances || []));
}
const frameBars = BarWidgetService.frameHostedBars;
for (const screenName in frameBars)
bars.push(frameBars[screenName]);
let currentBar = null;
for (const loader of loaders) {
const instances = loader?.item?.barVariants?.instances || [];
for (const bar of instances) {
for (const bar of bars) {
if (!bar)
continue;
@@ -52,7 +51,6 @@ Item {
break;
}
}
}
return currentBar;
}
+285
View File
@@ -0,0 +1,285 @@
import QtQuick
import QtQuick.Layouts
import QtQuick.Effects
import Quickshell
import Quickshell.Io
import qs.Modals.Common
import qs.Modals.FileBrowser
import qs.Common
import qs.Services
import qs.Widgets
DankModal {
id: root
visible: false
layerNamespace: "dms:qr-generator"
property bool disablePopupTransparency: true
property bool generating: false
property string themedQrCodePath: ""
property string normalQrCodePath: ""
property string initialText: ""
property string _pendingPayload: ""
property string _generatingPayload: ""
property string _displayedPayload: ""
modalWidth: 420
modalHeight: 440
onBackgroundClicked: hide()
onOpened: {
Qt.callLater(() => {
modalFocusScope.forceActiveFocus();
const item = contentLoader.item;
if (!item)
return;
item.saveBrowserLoader = saveBrowserLoader;
if (item.textInput) {
item.textInput.text = initialText;
item.textInput.forceActiveFocus();
}
if (initialText.length > 0) {
_pendingPayload = initialText;
generateQR(initialText);
}
});
}
function show(text) {
generating = false;
initialText = text || "";
_pendingPayload = "";
_generatingPayload = "";
_displayedPayload = "";
themedQrCodePath = "";
normalQrCodePath = "";
open();
}
function hide() {
deleteQrCodeFiles(themedQrCodePath, normalQrCodePath);
themedQrCodePath = "";
normalQrCodePath = "";
close();
}
function deleteQrCodeFiles(themed, normal) {
if (themed.length > 0)
DMSService.sendRequest("network.delete-qrcode", {
path: themed
});
if (normal.length > 0)
DMSService.sendRequest("network.delete-qrcode", {
path: normal
});
}
Timer {
id: genTimer
interval: 200
repeat: false
onTriggered: root.generateQR(root._pendingPayload)
}
function generateQR(text) {
const trimmed = (text || "").trim();
if (trimmed.length === 0 || trimmed === _displayedPayload || generating)
return;
_generatingPayload = trimmed;
generating = true;
DMSService.sendRequest("network.generate-qrcode", {
text: trimmed
}, response => {
root.generating = false;
if (response.error) {
ToastService.showError(I18n.tr("Failed to generate QR code: %1").arg(JSON.stringify(response.error)));
return;
}
if (!response.result)
return;
if (root._generatingPayload !== root._pendingPayload.trim()) {
root.deleteQrCodeFiles(response.result[0], response.result[1]);
genTimer.restart();
return;
}
const oldThemed = root.themedQrCodePath;
const oldNormal = root.normalQrCodePath;
root._displayedPayload = root._generatingPayload;
root.themedQrCodePath = response.result[0];
root.normalQrCodePath = response.result[1];
root.deleteQrCodeFiles(oldThemed, oldNormal);
});
}
function onTextChanged(text) {
_pendingPayload = text;
const trimmed = text.trim();
if (trimmed.length === 0 || trimmed === _displayedPayload) {
genTimer.stop();
return;
}
genTimer.restart();
}
LazyLoader {
id: saveBrowserLoader
active: false
FileBrowserSurfaceModal {
id: saveBrowser
browserTitle: I18n.tr("Save QR Code")
browserIcon: "qr_code"
browserType: "default"
fileExtensions: ["*.png"]
allowStacking: true
saveMode: true
defaultFileName: "qrcode.png"
onFileSelected: path => {
const cleanPath = decodeURI(path.toString().replace(/^file:\/\//, ''));
copyQrCodeProcess.exec(["cp", "-f", root.normalQrCodePath, cleanPath]);
}
Process {
id: copyQrCodeProcess
stdout: StdioCollector {
onStreamFinished: {
saveBrowser.close();
}
}
}
}
}
content: Component {
Item {
id: contentItem
property alias textInput: textInput
property var saveBrowserLoader: null
anchors.fill: parent
Column {
anchors.fill: parent
anchors.margins: Theme.spacingL
spacing: Theme.spacingL
RowLayout {
id: modalTitle
width: parent.width
StyledText {
text: I18n.tr("QR Generator")
font.pixelSize: Theme.fontSizeLarge
color: Theme.surfaceText
font.weight: Font.Bold
Layout.alignment: Qt.AlignLeft
Layout.fillWidth: true
}
DankActionButton {
iconName: "close"
iconSize: Theme.iconSize - 4
iconColor: Theme.surfaceText
onClicked: root.hide()
Layout.alignment: Qt.AlignRight
}
}
DankTextField {
id: textInput
width: parent.width
placeholderText: I18n.tr("Enter text to encode")
showClearButton: true
focus: true
onTextEdited: root.onTextChanged(text)
Keys.onEscapePressed: event => {
event.accepted = true;
root.hide();
}
}
Item {
id: qrContainer
height: Math.min(parent.height - parent.spacing - modalTitle.height - textInput.height - parent.spacing * 4, 260)
width: height
anchors.horizontalCenter: parent.horizontalCenter
opacity: 1
Behavior on opacity {
NumberAnimation {
duration: 80
easing.type: Easing.OutCubic
}
}
Image {
id: qrCodeImg
anchors.fill: parent
source: root.themedQrCodePath
fillMode: Image.PreserveAspectFit
asynchronous: true
cache: false
visible: false
onSourceChanged: qrContainer.opacity = 0
onStatusChanged: {
if (status === Image.Ready)
qrContainer.opacity = 1;
}
}
MultiEffect {
source: qrCodeImg
anchors.fill: qrCodeImg
colorization: 1.0
colorizationColor: Theme.primary
}
}
RowLayout {
width: parent.width
visible: root.themedQrCodePath.length > 0
Layout.alignment: Qt.AlignHCenter
Item {
Layout.fillWidth: true
}
DankButton {
text: I18n.tr("Save")
iconName: "save"
backgroundColor: Theme.surfaceContainer
textColor: Theme.surfaceText
onClicked: {
contentItem.saveBrowserLoader.active = true;
if (contentItem.saveBrowserLoader.item) {
contentItem.saveBrowserLoader.item.open();
}
}
}
DankButton {
text: I18n.tr("Copy")
iconName: "content_copy"
backgroundColor: Theme.primary
textColor: Theme.onPrimary
onClicked: {
if (root.normalQrCodePath.length > 0)
DMSService.sendRequest("clipboard.copyFile", {
filePath: root.normalQrCodePath
});
}
}
Item {
Layout.fillWidth: true
}
}
}
}
}
}
+83 -3
View File
@@ -31,6 +31,7 @@ DankModal {
property string promptToken: ""
property string promptReason: ""
property var promptFields: []
property var promptHints: []
property string promptSetting: ""
property bool isVpnPrompt: false
@@ -40,17 +41,21 @@ DankModal {
property var fieldsInfo: []
property var secretValues: ({})
readonly property bool isCertificateChangedPrompt: promptReason === "server-certificate-changed"
readonly property bool isCertificatePrompt: promptReason === "server-certificate" || isCertificateChangedPrompt
readonly property string serverCertificateFingerprint: promptHints.length > 0 ? promptHints[0] : ""
readonly property bool showUsernameField: requiresEnterprise && !isVpnPrompt && fieldsInfo.length === 0
readonly property bool showPasswordField: fieldsInfo.length === 0
readonly property bool showPasswordField: fieldsInfo.length === 0 && !isCertificatePrompt
readonly property bool showAnonField: requiresEnterprise && !isVpnPrompt
readonly property bool showDomainField: requiresEnterprise && !isVpnPrompt
readonly property bool showSavePasswordCheckbox: (isVpnPrompt || fieldsInfo.length > 0) && promptReason !== "pkcs11"
readonly property bool showSavePasswordCheckbox: (isVpnPrompt || fieldsInfo.length > 0) && promptReason !== "pkcs11" && !isCertificatePrompt
readonly property int inputFieldHeight: Theme.fontSizeMedium + Theme.spacingL * 2
readonly property int inputFieldWithSpacing: inputFieldHeight + Theme.spacingM
readonly property int checkboxRowHeight: Theme.fontSizeMedium + Theme.spacingS
readonly property int headerHeight: Theme.fontSizeLarge + Theme.fontSizeMedium + Theme.spacingM * 2
readonly property int buttonRowHeight: 36 + Theme.spacingM
readonly property int certificateWarningHeight: certificateWarningColumn.implicitHeight + Theme.spacingM * 2
property int calculatedHeight: {
let h = headerHeight + buttonRowHeight + Theme.spacingL * 2;
@@ -67,10 +72,16 @@ DankModal {
h += inputFieldWithSpacing;
if (showSavePasswordCheckbox)
h += checkboxRowHeight;
if (isCertificatePrompt)
h += certificateWarningHeight + Theme.spacingM;
return h;
}
function focusFirstField() {
if (isCertificatePrompt) {
connectButton.forceActiveFocus();
return;
}
if (fieldsInfo.length > 0) {
if (dynamicFieldsRepeater.count > 0) {
const firstItem = dynamicFieldsRepeater.itemAt(0);
@@ -101,6 +112,7 @@ DankModal {
promptToken = "";
promptReason = "";
promptFields = [];
promptHints = [];
promptSetting = "";
isVpnPrompt = false;
connectionName = "";
@@ -127,6 +139,7 @@ DankModal {
promptToken = "";
promptReason = "";
promptFields = [];
promptHints = [];
promptSetting = "";
isVpnPrompt = false;
connectionName = "";
@@ -145,6 +158,7 @@ DankModal {
promptToken = token;
promptReason = reason;
promptFields = fields || [];
promptHints = hints || [];
promptSetting = setting || "802-11-wireless-security";
connectionType = connType || "802-11-wireless";
connectionName = connName || ssid || "";
@@ -324,6 +338,8 @@ DankModal {
text: {
if (promptReason === "pkcs11")
return I18n.tr("Smartcard Authentication");
if (isCertificatePrompt)
return I18n.tr("Untrusted VPN certificate", "Title for VPN server certificate trust confirmation");
if (isVpnPrompt)
return I18n.tr("Connect to VPN");
if (isHiddenNetwork)
@@ -343,6 +359,8 @@ DankModal {
text: {
if (promptReason === "pkcs11")
return I18n.tr("Enter PIN for ") + wifiPasswordSSID;
if (isCertificatePrompt)
return wifiPasswordSSID;
if (fieldsInfo.length > 0)
return I18n.tr("Enter credentials for ") + wifiPasswordSSID;
if (isVpnPrompt)
@@ -383,6 +401,45 @@ DankModal {
}
}
Rectangle {
id: certificateWarningBox
readonly property color warningTone: isCertificateChangedPrompt ? Theme.error : Theme.warning
width: parent.width
height: certificateWarningHeight
radius: Theme.cornerRadius
color: Theme.withAlpha(warningTone, 0.12)
border.color: Theme.withAlpha(warningTone, 0.5)
border.width: 1
visible: isCertificatePrompt
Column {
id: certificateWarningColumn
anchors.fill: parent
anchors.margins: Theme.spacingM
spacing: Theme.spacingS
StyledText {
width: parent.width
text: isCertificateChangedPrompt ? I18n.tr("The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.", "Warning shown when a trusted VPN server certificate no longer matches") : I18n.tr("Only continue if you recognize this server certificate fingerprint.", "Warning shown before trusting an unverified VPN server certificate")
wrapMode: Text.Wrap
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceText
}
StyledText {
width: parent.width
text: serverCertificateFingerprint
wrapMode: Text.WrapAnywhere
font.family: SettingsData.monoFontFamily
font.pixelSize: Theme.fontSizeSmall
color: certificateWarningBox.warningTone
}
}
}
Rectangle {
width: parent.width
height: inputFieldHeight
@@ -690,10 +747,15 @@ DankModal {
}
Rectangle {
id: connectButton
width: Math.max(80, connectText.contentWidth + Theme.spacingM * 2)
height: 36
radius: Theme.cornerRadius
color: connectArea.containsMouse ? Qt.darker(Theme.primary, 1.1) : Theme.primary
border.color: activeFocus ? Theme.surfaceText : "transparent"
border.width: activeFocus ? 2 : 0
activeFocusOnTab: true
enabled: {
if (fieldsInfo.length > 0) {
for (var i = 0; i < fieldsInfo.length; i++) {
@@ -705,6 +767,8 @@ DankModal {
}
return true;
}
if (isCertificatePrompt)
return serverCertificateFingerprint.length > 0;
if (isVpnPrompt)
return passwordInput.text.length > 0;
if (isHiddenNetwork)
@@ -716,7 +780,7 @@ DankModal {
StyledText {
id: connectText
anchors.centerIn: parent
text: I18n.tr("Connect")
text: isCertificatePrompt ? I18n.tr("Trust", "Button that approves a VPN server certificate fingerprint") : I18n.tr("Connect")
font.pixelSize: Theme.fontSizeMedium
color: Theme.background
font.weight: Font.Medium
@@ -731,6 +795,22 @@ DankModal {
onClicked: submitCredentialsAndClose()
}
Keys.onReturnPressed: event => {
if (enabled)
submitCredentialsAndClose();
event.accepted = true;
}
Keys.onEnterPressed: event => {
if (enabled)
submitCredentialsAndClose();
event.accepted = true;
}
Keys.onSpacePressed: event => {
if (enabled)
submitCredentialsAndClose();
event.accepted = true;
}
Behavior on color {
ColorAnimation {
duration: Theme.shortDuration
+9 -1
View File
@@ -66,9 +66,17 @@ Scope {
IdleService.lockPowerOffRequested = false;
}
// Avoid startup lock when using dms-greeter (#2952)
function freshGreeterLogin() {
const authTime = Number(Quickshell.env("DMS_GREETER_AUTH_TIME") || 0);
if (!authTime)
return false;
return (Date.now() / 1000 - authTime) < 120;
}
Component.onCompleted: {
IdleService.lockComponent = this;
if (SettingsData.lockAtStartup)
if (SettingsData.lockAtStartup && !freshGreeterLogin())
lock();
}
+33 -1
View File
@@ -932,7 +932,9 @@ Item {
pam.passwd.start();
}
}
Keys.onPressed: event => {
Keys.onPressed: event => handleKey(event)
function handleKey(event) {
if (demoMode) {
return;
}
@@ -1042,6 +1044,36 @@ Item {
}
}
// Wayland IMEs commit unconsumed printable keys as text-input text
// (ibus ibuswaylandim.c) instead of forwarding raw keys, so an active
// text input must exist to receive them; the hidden-text hints put
// fcitx5 into plain keyboard passthrough (CapabilityFlag::Password).
// Raw keys stay in handleKey (#2950).
TextInput {
id: imeCommitSink
focus: true
width: 1
height: 1
opacity: 0
echoMode: TextInput.Password
inputMethodHints: Qt.ImhHiddenText | Qt.ImhSensitiveData | Qt.ImhNoPredictiveText | Qt.ImhNoAutoUppercase
Keys.onPressed: event => {
passwordField.handleKey(event);
if (!event.accepted && (event.modifiers & (Qt.ControlModifier | Qt.AltModifier | Qt.MetaModifier)))
event.accepted = true;
}
onTextChanged: {
if (text.length === 0)
return;
const committed = text;
text = "";
if (demoMode || root.unlocking || pam.passwd.active)
return;
passwordField.insertText(committed);
}
}
Component.onCompleted: {
if (!demoMode) {
forceActiveFocus();
@@ -29,6 +29,28 @@ Item {
readonly property bool clickThrough: instanceData?.config?.clickThrough ?? false
readonly property bool syncPositionAcrossScreens: instanceData?.config?.syncPositionAcrossScreens ?? false
// Unmapping with the widget still in the last buffer leaves a stale image in
// Hyprland's blur cache behind transparent tiled windows (#2955), so hide the
// content, present a transparent frame, then unmap.
readonly property bool contentShowing: widgetEnabled && activeComponent !== null && (!showOnOverviewOnly || overviewActive)
property bool surfaceLingering: false
onContentShowingChanged: {
if (contentShowing) {
lingerTimer.stop();
surfaceLingering = false;
return;
}
surfaceLingering = true;
lingerTimer.restart();
}
Timer {
id: lingerTimer
interval: 64
onTriggered: root.surfaceLingering = false
}
Connections {
target: PluginService
enabled: !root.isBuiltin
@@ -273,13 +295,7 @@ Item {
PanelWindow {
id: widgetWindow
screen: root.screen
visible: {
if (!root.widgetEnabled || root.activeComponent === null)
return false;
if (root.showOnOverviewOnly)
return root.overviewActive;
return true;
}
visible: root.contentShowing || root.surfaceLingering
color: "transparent"
Region {
@@ -358,6 +374,7 @@ Item {
id: contentLoader
anchors.fill: parent
active: root.widgetEnabled && root.activeComponent !== null
visible: root.contentShowing
sourceComponent: root.activeComponent
opacity: 0
+1 -1
View File
@@ -869,7 +869,7 @@ Item {
readonly property var tooltipTexts: ({
"dms": I18n.tr("DMS shell actions (launcher, clipboard, etc.)"),
"compositor": I18n.tr("Niri compositor actions (focus, move, etc.)"),
"compositor": I18n.tr("Compositor actions (focus, move, etc.)", "keybind action type tooltip"),
"spawn": I18n.tr("Run a program (e.g., firefox, kitty)"),
"shell": I18n.tr("Run a shell command (e.g., notify-send)")
})
+1 -1
View File
@@ -822,7 +822,7 @@ Item {
spacing: Theme.spacingS
Repeater {
model: ["dms_settings", "dms_notepad", "dms_sysmon", "dms_settings_search", "dms_clipboard_search", "dms_colorpicker"]
model: ["dms_settings", "dms_notepad", "dms_sysmon", "dms_settings_search", "dms_clipboard_search", "dms_colorpicker", "dms_qr_generator"]
delegate: Rectangle {
id: pluginDelegate
@@ -2780,7 +2780,7 @@ Item {
tags: ["matugen", "vscode", "code", "template"]
settingKey: "matugenTemplateVscode"
text: "VS Code"
description: getTemplateDescription("vscode", "")
description: getTemplateDescription("vscode", I18n.tr("Requires the DMS Theme extension from the editor marketplace", "vscode matugen template description"))
descriptionColor: getTemplateDescriptionColor("vscode")
visible: SettingsData.runDmsMatugenTemplates
checked: SettingsData.matugenTemplateVscode
+40 -4
View File
@@ -210,6 +210,19 @@ Singleton {
defaultTrigger: "",
isLauncher: false
},
"dms_qr_generator": {
id: "dms_qr_generator",
name: I18n.tr("QR Generator"),
icon: "svg+corner:" + dmsLogoPath + "|qr_code",
cornerIcon: "qr_code",
comment: "DMS",
action: "ipc:qr-generator",
categories: ["Utility"],
defaultTrigger: "qrg",
isLauncher: true,
viewMode: "list",
viewModeEnforced: true
},
"dms_settings_search": {
id: "dms_settings_search",
name: I18n.tr("Settings Search"),
@@ -244,7 +257,7 @@ Singleton {
if (!SettingsData.getBuiltInPluginSetting(pluginId, "enabled", true))
continue;
const plugin = builtInPlugins[pluginId];
if (plugin.isLauncher)
if (plugin.isLauncher && !plugin.action)
continue;
apps.push({
name: plugin.name,
@@ -309,6 +322,20 @@ Singleton {
}));
}
if (pluginId === "dms_qr_generator") {
const text = (query || "").toString().trim();
return [
{
name: text.length > 0 ? text : I18n.tr("Enter text to encode"),
icon: "material:qr_code",
comment: I18n.tr("QR Generator"),
action: "qr_generate:" + text,
isBuiltInLauncher: true,
builtInPluginId: pluginId
}
];
}
if (pluginId !== "dms_settings_search")
return [];
@@ -340,15 +367,21 @@ Singleton {
return false;
const parts = item.action.split(":");
if (parts[0] !== "settings_nav")
return false;
switch (parts[0]) {
case "settings_nav":
{
const tabIndex = parseInt(parts[1]);
const section = parts.slice(2).join(":");
SettingsSearchService.navigateToSection(section);
PopoutService.openSettingsWithTabIndex(tabIndex);
return true;
}
case "qr_generate":
PopoutService.showQRGeneratorModal(parts.slice(1).join(":"));
return true;
}
return false;
}
function getCoreApps(query) {
if (!query || query.length === 0)
@@ -378,6 +411,9 @@ Singleton {
case "color-picker":
PopoutService.showColorPicker();
return true;
case "qr-generator":
PopoutService.showQRGeneratorModal();
return true;
}
return false;
}
+2
View File
@@ -388,6 +388,8 @@ Singleton {
const binds = bindsData[cat];
for (var i = 0; i < binds.length; i++) {
const bind = binds[i];
if (currentProvider === "hyprland" && bind.action && bind.action.startsWith("exec "))
bind.action = "spawn " + bind.action.slice(5);
const targetCat = Actions.isDmsAction(bind.action) ? "DMS" : cat;
if (!processed[targetCat])
processed[targetCat] = [];
+9
View File
@@ -47,6 +47,8 @@ Singleton {
property var wifiPasswordModalLoader: null
property var wifiQRCodeModal: null
property var wifiQRCodeModalLoader: null
property var qrGeneratorModal: null
property var qrGeneratorModalLoader: null
property var polkitAuthModal: null
property var polkitAuthModalLoader: null
property var bluetoothPairingModal: null
@@ -891,6 +893,13 @@ Singleton {
wifiQRCodeModal.show(ssid);
}
function showQRGeneratorModal(initialText) {
if (qrGeneratorModalLoader)
qrGeneratorModalLoader.active = true;
if (qrGeneratorModal)
qrGeneratorModal.show(initialText || "");
}
function showHiddenNetworkModal() {
if (wifiPasswordModalLoader)
wifiPasswordModalLoader.active = true;
+59 -2
View File
@@ -219,6 +219,64 @@ Singleton {
return envObj;
}
function splitShellArgs(str) {
const args = [];
let current = "";
let hasToken = false;
let quote = "";
let escaped = false;
for (const ch of str) {
if (escaped) {
current += ch;
escaped = false;
continue;
}
switch (quote) {
case "'":
if (ch === "'") {
quote = "";
continue;
}
current += ch;
continue;
case "\"":
switch (ch) {
case "\"":
quote = "";
continue;
case "\\":
escaped = true;
continue;
}
current += ch;
continue;
}
switch (ch) {
case "\\":
escaped = true;
continue;
case "'":
case "\"":
quote = ch;
hasToken = true;
continue;
case " ":
case "\t":
case "\n":
if (!hasToken && current.length === 0)
continue;
args.push(current);
current = "";
hasToken = false;
continue;
}
current += ch;
}
if (current.length > 0 || hasToken)
args.push(current);
return args;
}
function launchDesktopEntry(desktopEntry, useNvidia) {
if (!desktopEntry || !desktopEntry.command)
return;
@@ -232,8 +290,7 @@ Singleton {
cmd = [nvidiaCommand].concat(cmd);
if (override?.extraFlags) {
const extraArgs = override.extraFlags.trim().split(/\s+/).filter(arg => arg.length > 0);
cmd = cmd.concat(extraArgs);
cmd = cmd.concat(splitShellArgs(override.extraFlags));
}
const userPrefix = SettingsData.launchPrefix?.trim() || "";
@@ -1,5 +1,5 @@
[ColorScheme]
active_colors={{colors.on_surface.default.hex}}, {{colors.surface.default.hex}}, {{colors.surface_container.default.hex}}, {{colors.outline.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.outline_variant.default.hex}}, {{colors.on_surface.default.hex}}, {{colors.on_primary.default.hex}}, {{colors.on_surface.default.hex}}, {{colors.background.default.hex}}, {{colors.background.default.hex}}, {{colors.shadow.default.hex}}, {{colors.primary.default.hex}}, {{colors.on_primary.default.hex}}, {{colors.secondary.default.hex}}, {{colors.secondary.default.hex}}, {{colors.surface_container_low.default.hex}}, {{colors.surface.default.hex}}, {{colors.surface.default.hex}}, {{colors.on_surface_variant.default.hex}}, {{colors.on_surface_variant.default.hex}}
active_colors={{colors.on_surface.default.hex}}, {{colors.surface.default.hex}}, {{colors.surface_container.default.hex}}, {{colors.outline.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.outline_variant.default.hex}}, {{colors.on_surface.default.hex}}, {{colors.on_surface.default.hex}}, {{colors.on_surface.default.hex}}, {{colors.background.default.hex}}, {{colors.background.default.hex}}, {{colors.shadow.default.hex}}, {{colors.primary.default.hex}}, {{colors.on_primary.default.hex}}, {{colors.secondary.default.hex}}, {{colors.secondary.default.hex}}, {{colors.surface_container_low.default.hex}}, {{colors.surface.default.hex}}, {{colors.surface.default.hex}}, {{colors.on_surface_variant.default.hex}}, {{colors.on_surface_variant.default.hex}}
disabled_colors={{colors.on_surface_variant.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.surface_container.default.hex}}, {{colors.outline.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.outline_variant.default.hex}}, {{colors.on_surface_variant.default.hex}}, {{colors.on_surface_variant.default.hex}}, {{colors.on_surface_variant.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.shadow.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.on_surface_variant.default.hex}}, {{colors.on_surface_variant.default.hex}}, {{colors.on_surface_variant.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.on_surface_variant.default.hex}}, {{colors.on_surface_variant.default.hex}}
inactive_colors={{colors.on_surface_variant.default.hex}}, {{colors.surface.default.hex}}, {{colors.surface_container.default.hex}}, {{colors.outline.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.outline_variant.default.hex}}, {{colors.on_surface_variant.default.hex}}, {{colors.on_surface_variant.default.hex}}, {{colors.on_surface_variant.default.hex}}, {{colors.surface.default.hex}}, {{colors.surface.default.hex}}, {{colors.shadow.default.hex}}, {{colors.secondary.default.hex}}, {{colors.on_secondary.default.hex}}, {{colors.secondary.default.hex}}, {{colors.secondary.default.hex}}, {{colors.surface_container_low.default.hex}}, {{colors.surface.default.hex}}, {{colors.surface.default.hex}}, {{colors.on_surface_variant.default.hex}}, {{colors.on_surface_variant.default.hex}}
File diff suppressed because it is too large Load Diff
+207 -102
View File
@@ -198,7 +198,7 @@
"2 seconds": "ثانيتان"
},
"2.4 GHz": {
"2.4 GHz": ""
"2.4 GHz": "2.4 GHz"
},
"20 minutes": {
"20 minutes": "20 دقيقة"
@@ -264,7 +264,7 @@
"45 seconds": "45 ثانية"
},
"5 GHz": {
"5 GHz": ""
"5 GHz": "5 GHz"
},
"5 min before": {
"5 min before": "قبل 5 دقائق"
@@ -335,6 +335,9 @@
"About": {
"About": "حول"
},
"Acceleration Profile": {
"Acceleration Profile": ""
},
"Accent Color": {
"Accent Color": "لون التمييز"
},
@@ -378,7 +381,7 @@
"Activate the DMS greeter? A terminal will open for sudo authentication. Run Sync after activation to apply your settings.": "هل تريد تفعيل شاشة ترحيب DMS؟ سيتم فتح نافذة طرفية لمصادقة sudo. قم بتشغيل 'مزامنة' (Sync) بعد التفعيل لتطبيق إعداداتك."
},
"Activates immediately": {
"Activates immediately": ""
"Activates immediately": "يتفعل فوراً"
},
"Activation": {
"Activation": "التنشيط"
@@ -410,6 +413,9 @@
"Adapters": {
"Adapters": "المحولات"
},
"Adaptive": {
"Adaptive": ""
},
"Adaptive Media Width": {
"Adaptive Media Width": "عرض الوسائط التكيفي"
},
@@ -423,7 +429,7 @@
"Add \"%1\" to the %2 group? They must log out and back in, then run dms greeter sync --profile to publish their login-screen theme.": "هل تريد إضافة \"%1\" إلى مجموعة %2؟ يجب عليهم تسجيل الخروج ثم الدخول مرة أخرى، ثم تشغيل dms greeter sync --profile لنشر سمة شاشة تسجيل الدخول الخاصة بهم."
},
"Add \"%1\" to the %2 group? They must log out and back in, then run dms-greeter sync --profile to publish their login-screen theme.": {
"Add \"%1\" to the %2 group? They must log out and back in, then run dms-greeter sync --profile to publish their login-screen theme.": ""
"Add \"%1\" to the %2 group? They must log out and back in, then run dms-greeter sync --profile to publish their login-screen theme.": "هل تريد إضافة \"%1\" إلى مجموعة %2؟ يجب عليهم تسجيل الخروج وإعادة تسجيل الدخول، ثم تشغيل dms-greeter sync --profile لنشر سمة شاشة تسجيل الدخول الخاصة بهم."
},
"Add Bar": {
"Add Bar": "إضافة شريط"
@@ -477,7 +483,7 @@
"Add the new user to the %1 group so they can run dms greeter sync --profile.": "أضف المستخدم الجديد إلى مجموعة %1 حتى يتمكن من تشغيل dms greeter sync --profile."
},
"Add the new user to the %1 group so they can run dms-greeter sync --profile.": {
"Add the new user to the %1 group so they can run dms-greeter sync --profile.": ""
"Add the new user to the %1 group so they can run dms-greeter sync --profile.": "أضف المستخدم الجديد إلى المجموعة %1 ليتمكن من تشغيل dms-greeter sync --profile."
},
"Add the new user to the %1 group so they can use sudo.": {
"Add the new user to the %1 group so they can use sudo.": "أضف المستخدم الجديد إلى مجموعة %1 حتى يتمكن من استخدام sudo."
@@ -485,12 +491,21 @@
"Add to Autostart": {
"Add to Autostart": "إضافة إلى التشغيل التلقائي"
},
"Adjust pointer sensitivity speed": {
"Adjust pointer sensitivity speed": ""
},
"Adjust scrolling sensitivity multiplier": {
"Adjust scrolling sensitivity multiplier": ""
},
"Adjust the bar height via inner padding": {
"Adjust the bar height via inner padding": "ضبط ارتفاع الشريط عبر الحشوة الداخلية"
},
"Adjust the number of columns in grid view mode.": {
"Adjust the number of columns in grid view mode.": "تعديل عدد الأعمدة في وضع العرض الشبكي."
},
"Adjust touchpad pointer speed": {
"Adjust touchpad pointer speed": ""
},
"Adjust volume per scroll indent": {
"Adjust volume per scroll indent": "ضبط مستوى الصوت لكل خطوة تمرير"
},
@@ -575,6 +590,9 @@
"Always show when there's only one connected display": {
"Always show when there's only one connected display": "عرض دائم عند وجود شاشة واحدة متصلة فقط"
},
"Always use the durations above, even if an app requests a shorter or longer one": {
"Always use the durations above, even if an app requests a shorter or longer one": ""
},
"Always use this app for %1": {
"Always use this app for %1": "استخدم هذا التطبيق دائمًا لـ %1"
},
@@ -660,7 +678,7 @@
"Applications and commands to start automatically when you log in": "التطبيقات والأوامر التي تبدأ تلقائياً عند تسجيل الدخول"
},
"Applies on the next greeter sync": {
"Applies on the next greeter sync": ""
"Applies on the next greeter sync": "يُطبق عند مزامنة الgreeter التالية"
},
"Apply Changes": {
"Apply Changes": "تطبيق التغييرات"
@@ -782,9 +800,6 @@
"Authenticated!": {
"Authenticated!": "تم التحقق بنجاح!"
},
"Authenticating...": {
"Authenticating...": "جاري المصادقة..."
},
"Authentication": {
"Authentication": "المصادقة"
},
@@ -803,18 +818,6 @@
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": {
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": "تتطلب تغييرات المصادقة صلاحيات sudo. جاري فتح المحطة الطرفية حتى تتمكن من استخدام كلمة المرور أو بصمة الإصبع."
},
"Authentication error - try again": {
"Authentication error - try again": "خطأ في المصادقة - حاول مرة أخرى"
},
"Authentication failed - attempt %1 of %2": {
"Authentication failed - attempt %1 of %2": "فشل التحقق من الهوية - المحاولة %1 من %2"
},
"Authentication failed - lockout can occur": {
"Authentication failed - lockout can occur": "فشل التحقق - قد يؤدي ذلك إلى قفل حسابك"
},
"Authentication failed - try again": {
"Authentication failed - try again": "فشل التحقق - يرجى المحاولة مرة أخرى"
},
"Authorize": {
"Authorize": "منح الإذن"
},
@@ -878,9 +881,6 @@
"Auto-hide Dock": {
"Auto-hide Dock": "إخفاء شريط التطبيقات تلقائياً"
},
"Auto-login": {
"Auto-login": "تسجيل الدخول التلقائي"
},
"Auto-login change needs a sync": {
"Auto-login change needs a sync": "تغيير تسجيل الدخول التلقائي يحتاج إلى مزامنة"
},
@@ -980,24 +980,12 @@
"Available in Detailed and Forecast view modes": {
"Available in Detailed and Forecast view modes": "متاح في أوضاع العرض التفصيلي والتوقعات"
},
"Awaiting fingerprint authentication": {
"Awaiting fingerprint authentication": "بانتظار التحقق ببصمة الإصبع"
},
"Awaiting fingerprint or security key authentication": {
"Awaiting fingerprint or security key authentication": "بانتظار التحقق ببصمة الإصبع أو مفتاح الأمان"
},
"Awaiting security key authentication": {
"Awaiting security key authentication": "بانتظار التحقق بمفتاح الأمان"
},
"BSSID": {
"BSSID": "BSSID"
},
"Back": {
"Back": "رجوع"
},
"Back to user list": {
"Back to user list": "العودة إلى قائمة المستخدمين"
},
"Backend": {
"Backend": "النظام الخلفي"
},
@@ -1035,7 +1023,7 @@
"Balanced palette with focused accents (default).": "ألوان متوازنة بلمسات محددة (افتراضي)."
},
"Band": {
"Band": ""
"Band": "Band"
},
"Bar": {
"Bar": "شريط المهام"
@@ -1293,7 +1281,7 @@
"Calendar Backend": "الخلفية التقويمية"
},
"Calls / Headset": {
"Calls / Headset": ""
"Calls / Headset": "المكالمات / سماعة الرأس"
},
"Camera": {
"Camera": "الكاميرا"
@@ -1454,6 +1442,9 @@
"Choose wallpaper folder": {
"Choose wallpaper folder": "اختر مجلد خلفية الشاشة"
},
"Choose when to generate scrolling events": {
"Choose when to generate scrolling events": ""
},
"Choose where notification popups appear on screen": {
"Choose where notification popups appear on screen": "اختر مكان ظهور النوافذ المنبثقة للإشعارات على الشاشة"
},
@@ -1581,16 +1572,16 @@
"Close Window": "إغلاق النافذة"
},
"Codec switched successfully": {
"Codec switched successfully": ""
"Codec switched successfully": "تم تبديل الترميز بنجاح"
},
"Codec switching is unavailable because WirePlumber was not found": {
"Codec switching is unavailable because WirePlumber was not found": ""
"Codec switching is unavailable because WirePlumber was not found": "تبديل الترميز غير متاح لأن WirePlumber لم يتم العثور عليه"
},
"Codec switching is unavailable because pactl was not found": {
"Codec switching is unavailable because pactl was not found": "تبديل الترميز غير متاح لأنه لم يتم العثور على pactl"
},
"Codec switching is unavailable. WirePlumber wpexec was not found.": {
"Codec switching is unavailable. WirePlumber wpexec was not found.": ""
"Codec switching is unavailable. WirePlumber wpexec was not found.": "تبديل الترميز غير متاح. لم يتم العثور على WirePlumber wpexec."
},
"Color": {
"Color": "اللون"
@@ -1688,6 +1679,9 @@
"Compositor Settings": {
"Compositor Settings": "إعدادات مدير النوافذ"
},
"Compositor actions (focus, move, etc.)": {
"Compositor actions (focus, move, etc.)": ""
},
"Config Format": {
"Config Format": "تنسيق التكوين"
},
@@ -1805,6 +1799,9 @@
"Contrast": {
"Contrast": "التباين"
},
"Contrast by variant": {
"Contrast by variant": ""
},
"Contributor": {
"Contributor": "مساهم"
},
@@ -1905,7 +1902,7 @@
"Corners & Background": "الزوايا والخلفية"
},
"Couldn't load hotspot password": {
"Couldn't load hotspot password": ""
"Couldn't load hotspot password": "تعذر تحميل كلمة مرور نقطة الاتصال"
},
"Count Only": {
"Count Only": "العد فقط"
@@ -2390,6 +2387,15 @@
"Disable Output": {
"Disable Output": "تعطيل المخرج"
},
"Disable While Typing": {
"Disable While Typing": ""
},
"Disable on External Mouse": {
"Disable on External Mouse": ""
},
"Disable touchpad when an external mouse is connected": {
"Disable touchpad when an external mouse is connected": ""
},
"Disabled": {
"Disabled": "غير نشط"
},
@@ -2549,6 +2555,9 @@
"Door Open": {
"Door Open": "الباب مفتوح"
},
"Drag Lock": {
"Drag Lock": ""
},
"Drag a widget by its handle here to reorder it or drop it into another group": {
"Drag a widget by its handle here to reorder it or drop it into another group": "اسحب أداة من مقبضها إلى هنا لإعادة ترتيبها أو إسقاطها في مجموعة أخرى"
},
@@ -2621,6 +2630,9 @@
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": {
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": "ديناميكي: منحنى زنبركي مع تجاوز - الدخول يتجاوز هدفه لفترة وجيزة ثم يستقر. معبر وحيوي."
},
"Edge": {
"Edge": ""
},
"Edge Hover Reveal": {
"Edge Hover Reveal": "كشف حافة التمرير"
},
@@ -2669,6 +2681,9 @@
"Empty Trash (%1)": {
"Empty Trash (%1)": "إفراغ المهملات (%1)"
},
"Emulate middle click by pressing left and right buttons": {
"Emulate middle click by pressing left and right buttons": ""
},
"Enable 10-bit color depth for wider color gamut and HDR support": {
"Enable 10-bit color depth for wider color gamut and HDR support": "تمكين عمق لون 10 بت للحصول على نطاق ألوان أوسع ودعم HDR"
},
@@ -2706,7 +2721,7 @@
"Enable WiFi": "تمكين الـ Wi-Fi"
},
"Enable WiFi before starting the hotspot.": {
"Enable WiFi before starting the hotspot.": ""
"Enable WiFi before starting the hotspot.": "قم بتمكين الواي فاي قبل بدء نقطة الاتصال."
},
"Enable a custom override below to set per-bar shadow intensity, opacity, and color.": {
"Enable a custom override below to set per-bar shadow intensity, opacity, and color.": "قم بتفعيل تجاوز مخصص أدناه لضبط شدة الظل، والشفافية، واللون لكل شريط."
@@ -2795,6 +2810,9 @@
"Enter password for ": {
"Enter password for ": "ادخال كلمة المرور ل "
},
"Enter text to encode": {
"Enter text to encode": ""
},
"Enter this passkey on ": {
"Enter this passkey on ": "أدخل مفتاح المرور هذا في "
},
@@ -2934,7 +2952,7 @@
"Failed to check pin limit": "فشل التحقق من حد التثبيت"
},
"Failed to configure hotspot": {
"Failed to configure hotspot": ""
"Failed to configure hotspot": "فشل في إعداد نقطة الاتصال"
},
"Failed to connect VPN": {
"Failed to connect VPN": "فشل الاتصال بشبكة VPN"
@@ -2993,6 +3011,9 @@
"Failed to fetch network QR code: %1": {
"Failed to fetch network QR code: %1": "فشل جلب رمز QR للشبكة: %1"
},
"Failed to generate QR code: %1": {
"Failed to generate QR code: %1": ""
},
"Failed to generate systemd override": {
"Failed to generate systemd override": "فشل في إنشاء تجاوز systemd"
},
@@ -3066,7 +3087,7 @@
"Failed to run 'dms greeter status'. Ensure DMS is installed and dms is in PATH.": "فشل تشغيل 'dms greeter status'. تأكد من تثبيت DMS وأن dms موجود في مسار النظام (PATH)."
},
"Failed to run 'dms-greeter status'. Ensure the dms-greeter package is installed.": {
"Failed to run 'dms-greeter status'. Ensure the dms-greeter package is installed.": ""
"Failed to run 'dms-greeter status'. Ensure the dms-greeter package is installed.": "فشل تشغيل 'dms-greeter status'. تأكد من تثبيت حزمة dms-greeter."
},
"Failed to save VPN credentials": {
"Failed to save VPN credentials": "فشل حفظ بيانات اعتماد VPN"
@@ -3123,13 +3144,13 @@
"Failed to start connection to %1": "فشل بدء الاتصال بـ %1"
},
"Failed to start hotspot": {
"Failed to start hotspot": ""
"Failed to start hotspot": "فشل بدء نقطة الاتصال"
},
"Failed to stop hotspot": {
"Failed to stop hotspot": ""
"Failed to stop hotspot": "فشل إيقاف نقطة الاتصال"
},
"Failed to switch codec": {
"Failed to switch codec": ""
"Failed to switch codec": "تعذر تبديل الترميز"
},
"Failed to unpin entry": {
"Failed to unpin entry": "فشل في إلغاء تثبيت الإدخال"
@@ -3263,6 +3284,12 @@
"Flags": {
"Flags": "الأعلام"
},
"Flat": {
"Flat": ""
},
"Flat uses constant speed; Adaptive scales with movement speed": {
"Flat uses constant speed; Adaptive scales with movement speed": ""
},
"Flatpak": {
"Flatpak": "Flatpak"
},
@@ -3621,7 +3648,7 @@
"Greeter group members can sync their login-screen theme with dms greeter sync --profile after logging out and back in.": "يمكن لأعضاء مجموعة الترحيب مزامنة سمة شاشة تسجيل الدخول الخاصة بهم باستخدام dms greeter sync --profile بعد تسجيل الخروج والدخول مرة أخرى."
},
"Greeter group members can sync their login-screen theme with dms-greeter sync --profile after logging out and back in.": {
"Greeter group members can sync their login-screen theme with dms-greeter sync --profile after logging out and back in.": ""
"Greeter group members can sync their login-screen theme with dms-greeter sync --profile after logging out and back in.": "يمكن لأعضاء مجموعة Greeter مزامنة سمة شاشة تسجيل الدخول الخاصة بهم باستخدام الأمر dms-greeter sync --profile بعد تسجيل الخروج والدخول مرة أخرى."
},
"Greeter group:": {
"Greeter group:": "مجموعة الترحيب:"
@@ -3837,22 +3864,22 @@
"Hotkey overlay title (optional)": "عنوان تراكب اختصار لوحة المفاتيح (اختياري)"
},
"Hotspot": {
"Hotspot": ""
"Hotspot": "نقطة اتصال"
},
"Hotspot activation failed.": {
"Hotspot activation failed.": ""
"Hotspot activation failed.": "فشل تنشيط نقطة الاتصال."
},
"Hotspot name": {
"Hotspot name": ""
"Hotspot name": "اسم نقطة الاتصال"
},
"Hotspot saved": {
"Hotspot saved": ""
"Hotspot saved": "تم حفظ نقطة الاتصال"
},
"Hotspot started": {
"Hotspot started": ""
"Hotspot started": "تم تشغيل نقطة الاتصال"
},
"Hotspot stopped": {
"Hotspot stopped": ""
"Hotspot stopped": "تم إيقاف نقطة الاتصال"
},
"Hour": {
"Hour": "الساعة"
@@ -3912,7 +3939,7 @@
"IP address or hostname": "عنوان IP أو اسم المضيف"
},
"IP sharing setup failed. Check that dnsmasq is installed.": {
"IP sharing setup failed. Check that dnsmasq is installed.": ""
"IP sharing setup failed. Check that dnsmasq is installed.": "فشل إعداد مشاركة بروتوكول الإنترنت (IP). تأكد من تثبيت dnsmasq."
},
"ISO Date": {
"ISO Date": "تاريخ ISO"
@@ -3962,6 +3989,9 @@
"If the field is hidden, it will appear as soon as a key is pressed.": {
"If the field is hidden, it will appear as soon as a key is pressed.": "إذا كان الحقل مخفياً، فسيظهر بمجرد الضغط على مفتاح."
},
"Ignore App-Requested Timeout": {
"Ignore App-Requested Timeout": ""
},
"Ignore Completely": {
"Ignore Completely": "تجاهل تمامًا"
},
@@ -4199,6 +4229,9 @@
"Keep My Edits": {
"Keep My Edits": "الاحتفاظ بتعديلاتي"
},
"Keep dragging when finger is briefly lifted": {
"Keep dragging when finger is briefly lifted": ""
},
"Keep in Bar": {
"Keep in Bar": "الاحتفاظ في الشريط"
},
@@ -4334,6 +4367,9 @@
"Left Section": {
"Left Section": "القسم الأيسر"
},
"Left-Handed Mode": {
"Left-Handed Mode": ""
},
"Light": {
"Light": "خفيف"
},
@@ -4439,9 +4475,6 @@
"Locked": {
"Locked": "مقفل"
},
"Logging in...": {
"Logging in...": "جاري تسجيل الدخول..."
},
"Login": {
"Login": "تسجيل الدخول"
},
@@ -4748,6 +4781,9 @@
"Microphone volume control": {
"Microphone volume control": "التحكم في مستوى صوت الميكروفون"
},
"Middle Click Emulation": {
"Middle Click Emulation": ""
},
"Middle Section": {
"Middle Section": "القسم الأوسط"
},
@@ -4823,6 +4859,12 @@
"Mount Points": {
"Mount Points": "نقاط التحميل"
},
"Mouse & Touchpad": {
"Mouse & Touchpad": ""
},
"Mouse Settings": {
"Mouse Settings": ""
},
"Mouse clicks pass through the bar to windows behind it": {
"Mouse clicks pass through the bar to windows behind it": "نقرات الفأرة تمر عبر الشريط إلى النوافذ خلفه"
},
@@ -4886,6 +4928,9 @@
"Native: platform renderer (FreeType).": {
"Native: platform renderer (FreeType).": "أصلي: مصير النظام الأساسي (FreeType)."
},
"Natural Scrolling": {
"Natural Scrolling": ""
},
"Natural Touchpad Scrolling": {
"Natural Touchpad Scrolling": "تمرير لوحة اللمس الطبيعي"
},
@@ -5033,6 +5078,9 @@
"No Rounding": {
"No Rounding": "بدون تقريب الزوايا"
},
"No Scroll": {
"No Scroll": ""
},
"No Shadow": {
"No Shadow": "بدون ظل"
},
@@ -5336,9 +5384,6 @@
"Not detected": {
"Not detected": "لم يتم الكشف عنه"
},
"Not listed?": {
"Not listed?": "غير مدرج؟"
},
"Not paired": {
"Not paired": "غير مقترن"
},
@@ -5432,6 +5477,9 @@
"On": {
"On": "مفعل"
},
"On Button Down": {
"On Button Down": ""
},
"On indefinitely": {
"On indefinitely": "مفعل للأبد"
},
@@ -5450,6 +5498,9 @@
"Only adjust gamma based on time or location rules.": {
"Only adjust gamma based on time or location rules.": "تعديل حرارة الألوان بناءً على قواعد الوقت أو الموقع فقط."
},
"Only continue if you recognize this server certificate fingerprint.": {
"Only continue if you recognize this server certificate fingerprint.": ""
},
"Only on Battery": {
"Only on Battery": "فقط عند استخدام البطارية"
},
@@ -5511,7 +5562,7 @@
"Open in terminal": "فتح في الطرفية"
},
"Open network": {
"Open network": ""
"Open network": "شبكة مفتوحة"
},
"Open search bar to find text": {
"Open search bar to find text": "افتح شريط البحث للعثور على نص"
@@ -5541,7 +5592,7 @@
"Opens the connected launcher in Connected Frame Mode.": "يفتح المشغل المتصل في وضع الإطار المتصل."
},
"Optional": {
"Optional": ""
"Optional": "اختياري"
},
"Optional description": {
"Optional description": "وصف اختياري"
@@ -5553,7 +5604,7 @@
"Optional state-based conditions applied to the first match.": "شروط اختيارية تعتمد على الحالة مطبقة على التطابق الأول."
},
"Optional; leave blank for open hotspot": {
"Optional; leave blank for open hotspot": ""
"Optional; leave blank for open hotspot": "اختياري؛ اتركه فارغاً لنقطة اتصال مفتوحة"
},
"Options": {
"Options": "الخيارات"
@@ -5687,6 +5738,9 @@
"Pairing...": {
"Pairing...": "جاري الاقتران..."
},
"Partial": {
"Partial": ""
},
"Partly Cloudy": {
"Partly Cloudy": "غائم جزئياً"
},
@@ -5708,9 +5762,6 @@
"Password updated": {
"Password updated": "تم تحديث كلمة المرور"
},
"Password...": {
"Password...": "كلمة المرور..."
},
"Passwords do not match.": {
"Passwords do not match.": "كلمات المرور غير متطابقة."
},
@@ -5894,6 +5945,9 @@
"Pointer": {
"Pointer": "المؤشر"
},
"Pointer Speed": {
"Pointer Speed": ""
},
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": {
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": "تم تعطيل تكامل Polkit. تتطلب إدارة المستخدمين Polkit لرفع الامتيازات."
},
@@ -6014,6 +6068,9 @@
"Pressure": {
"Pressure": "الضغط"
},
"Prevent accidental cursor jumps while typing": {
"Prevent accidental cursor jumps while typing": ""
},
"Prevent screen timeout": {
"Prevent screen timeout": "منع إيقاف تشغيل الشاشة"
},
@@ -6131,6 +6188,9 @@
"Protocol": {
"Protocol": "البروتوكول"
},
"QR Generator": {
"QR Generator": ""
},
"Qt": {
"Qt": "Qt"
},
@@ -6189,7 +6249,7 @@
"Re-enter password": "أعد إدخال كلمة المرور"
},
"Re-enter the password before saving.": {
"Re-enter the password before saving.": ""
"Re-enter the password before saving.": "أعد إدخال كلمة المرور قبل الحفظ."
},
"Reach local network devices while using an exit node": {
"Reach local network devices while using an exit node": "الوصول إلى أجهزة الشبكة المحلية أثناء استخدام عقدة الخروج"
@@ -6201,7 +6261,7 @@
"Read:": "قراءة:"
},
"Ready": {
"Ready": ""
"Ready": "مستعد"
},
"Reason": {
"Reason": "السبب"
@@ -6249,7 +6309,7 @@
"Release": "تحرير"
},
"Release to confirm": {
"Release to confirm": ""
"Release to confirm": "أفلِت للتأكيد"
},
"Reload From Disk": {
"Reload From Disk": "إعادة التحميل من القرص"
@@ -6383,6 +6443,9 @@
"Requires remembering the last user and session. Enable those options first.": {
"Requires remembering the last user and session. Enable those options first.": "يتطلب تذكر المستخدم الأخير والجلسة. قم بتمكين تلك الخيارات أولاً."
},
"Requires the DMS Theme extension from the editor marketplace": {
"Requires the DMS Theme extension from the editor marketplace": ""
},
"Reset": {
"Reset": "إعادة تعيين"
},
@@ -6437,6 +6500,12 @@
"Reverse Scrolling Direction": {
"Reverse Scrolling Direction": "عكس اتجاه التمرير"
},
"Reverse mouse wheel scrolling direction": {
"Reverse mouse wheel scrolling direction": ""
},
"Reverse two-finger scrolling direction": {
"Reverse two-finger scrolling direction": ""
},
"Reverse workspace switch direction when scrolling over the bar": {
"Reverse workspace switch direction when scrolling over the bar": "عكس اتجاه تبديل اسطح المكتب عند التمرير فوق الشريط"
},
@@ -6519,7 +6588,7 @@
"Run paru/yay with AUR enabled when 'Update All' is clicked.": "تشغيل paru/yay مع تمكين AUR عند النقر على \"تحديث الكل\"."
},
"Running": {
"Running": ""
"Running": "مشغل"
},
"Running Apps": {
"Running Apps": "التطبيقات المشغلة"
@@ -6546,13 +6615,13 @@
"SMS sent successfully": "تم إرسال الرسالة القصيرة بنجاح"
},
"SSID": {
"SSID": ""
"SSID": "SSID"
},
"Saturation": {
"Saturation": "التشبع"
},
"Save & Start": {
"Save & Start": ""
"Save & Start": "حفظ وابدأ"
},
"Save Notepad File": {
"Save Notepad File": "حفظ ملف الملاحظة"
@@ -6644,6 +6713,9 @@
"Scroll GitHub": {
"Scroll GitHub": "تمرير GitHub"
},
"Scroll Method": {
"Scroll Method": ""
},
"Scroll Wheel": {
"Scroll Wheel": "عجلة التمرير"
},
@@ -6659,6 +6731,9 @@
"Scrolling": {
"Scrolling": "شريطي"
},
"Scrolling Speed": {
"Scrolling Speed": ""
},
"Search App Actions": {
"Search App Actions": "البحث في إجراءات التطبيقات"
},
@@ -6821,9 +6896,6 @@
"Select the palette algorithm used for wallpaper-based colors": {
"Select the palette algorithm used for wallpaper-based colors": "اختر خوارزمية لوحة الألوان المستخدمة لاستخراج الألوان من خلفية الشاشة"
},
"Select user...": {
"Select user...": "اختر مستخدماً..."
},
"Select which keybind providers to include": {
"Select which keybind providers to include": "اختر مزودي اختصارات المفاتيح المراد تضمينهم"
},
@@ -6903,13 +6975,13 @@
"Set the percentage at which the battery is considered low.": "حدد النسبة المئوية التي تعتبر عندها البطارية منخفضة."
},
"Set up a WiFi hotspot for sharing this connection.": {
"Set up a WiFi hotspot for sharing this connection.": ""
"Set up a WiFi hotspot for sharing this connection.": "قم بإعداد نقطة اتصال WiFi لمشاركة هذا الاتصال."
},
"Set up hotspot": {
"Set up hotspot": ""
"Set up hotspot": "إعداد نقطة اتصال"
},
"Set up hotspot in Settings": {
"Set up hotspot in Settings": ""
"Set up hotspot in Settings": "إعداد نقطة اتصال في الإعدادات"
},
"Setting": {
"Setting": "إعداد"
@@ -6992,6 +7064,9 @@
"Show": {
"Show": "إظهار"
},
"Show \"config reloaded\" Toast": {
"Show \"config reloaded\" Toast": ""
},
"Show 3rd Party": {
"Show 3rd Party": "إظهار الطرف الثالث"
},
@@ -7187,6 +7262,9 @@
"Show a notification when battery reaches the charge limit.": {
"Show a notification when battery reaches the charge limit.": "إظهار إشعار عندما تصل البطارية إلى حد الشحن."
},
"Show a toast when the compositor config is reloaded": {
"Show a toast when the compositor config is reloaded": ""
},
"Show a warning popup when battery is running low.": {
"Show a warning popup when battery is running low.": "إظهار نافذة تحذير منبثقة عندما تكون البطارية منخفضة."
},
@@ -7413,7 +7491,7 @@
"Start": "ابدأ"
},
"Start Hotspot?": {
"Start Hotspot?": ""
"Start Hotspot?": "بدء نقطة الاتصال؟"
},
"Start KDE Connect or Valent to use this plugin": {
"Start KDE Connect or Valent to use this plugin": "ابدأ KDE Connect أو Valent لاستخدام هذه الملحق"
@@ -7422,19 +7500,19 @@
"Start typing your notes here...": "ابدأ بكتابة ملاحظاتك هنا..."
},
"Starting hotspot...": {
"Starting hotspot...": ""
"Starting hotspot...": "جاري بدء نقطة الاتصال..."
},
"Starting the hotspot will disconnect WiFi from \"%1\" — the radio can't do both at once. Sharing internet then requires another connection, such as Ethernet.": {
"Starting the hotspot will disconnect WiFi from \"%1\" — the radio can't do both at once. Sharing internet then requires another connection, such as Ethernet.": ""
"Starting the hotspot will disconnect WiFi from \"%1\" — the radio can't do both at once. Sharing internet then requires another connection, such as Ethernet.": "سيؤدي بدء نقطة الاتصال إلى قطع اتصال WiFi بـ \"%1\" — لا يمكن للراديو القيام بالأمرين معاً في وقت واحد. تتطلب مشاركة الإنترنت بعد ذلك اتصالاً آخر، مثل الإيثرنت (Ethernet)."
},
"Starting...": {
"Starting...": ""
"Starting...": "جاري البدء..."
},
"State": {
"State": "الحالة"
},
"Stop": {
"Stop": ""
"Stop": "قف"
},
"Stop ignoring %1": {
"Stop ignoring %1": "إلغاء تجاهل %1"
@@ -7529,6 +7607,9 @@
"Suspend then Hibernate": {
"Suspend then Hibernate": "تعليق ثم إسبات"
},
"Swap primary and secondary mouse buttons": {
"Swap primary and secondary mouse buttons": ""
},
"Sway Website": {
"Sway Website": "موقع Sway"
},
@@ -7560,7 +7641,7 @@
"Sync applies your theme and settings to the login screen. Shared users should run dms greeter sync --profile instead of a primary user sync.": "يقوم المزامنة بتطبيق السمة والإعدادات الخاصة بك على شاشة تسجيل الدخول. يجب على المستخدمين المشتركين تشغيل dms greeter sync --profile بدلاً من المزامنة للمستخدم الأساسي."
},
"Sync applies your theme and settings to the login screen. Shared users should run dms-greeter sync --profile instead of a primary user sync.": {
"Sync applies your theme and settings to the login screen. Shared users should run dms-greeter sync --profile instead of a primary user sync.": ""
"Sync applies your theme and settings to the login screen. Shared users should run dms-greeter sync --profile instead of a primary user sync.": "يطبق Sync السمة والإعدادات الخاصة بك على شاشة تسجيل الدخول. يجب على المستخدمين المشتركين تشغيل dms-greeter sync --profile بدلاً من المزامنة للمستخدم الأساسي."
},
"Sync completed successfully.": {
"Sync completed successfully.": "تمت المزامنة بنجاح."
@@ -7652,6 +7733,18 @@
"Tailscale not available": {
"Tailscale not available": "Tailscale غير متاح"
},
"Tap and Drag": {
"Tap and Drag": ""
},
"Tap and drag on the touchpad to move items": {
"Tap and drag on the touchpad to move items": ""
},
"Tap the touchpad surface to trigger left click clicks": {
"Tap the touchpad surface to trigger left click clicks": ""
},
"Tap to Click": {
"Tap to Click": ""
},
"Terminal": {
"Terminal": "محطة طرفية"
},
@@ -7665,7 +7758,7 @@
"Terminal fallback failed. Install one of the supported terminal emulators or run 'dms greeter sync' manually.": "فشل الاحتياط للطرفية. قم بتثبيت أحد محاكيات الطرفية المدعومة أو قم بتشغيل 'dms greeter sync' يدوياً."
},
"Terminal fallback failed. Install one of the supported terminal emulators or run 'dms-greeter sync' manually.": {
"Terminal fallback failed. Install one of the supported terminal emulators or run 'dms-greeter sync' manually.": ""
"Terminal fallback failed. Install one of the supported terminal emulators or run 'dms-greeter sync' manually.": "فشل الاحتياط للطرفية. قم بتثبيت أحد محاكيات الطرفية المدعومة أو قم بتشغيل 'dms-greeter sync' يدوياً."
},
"Terminal fallback opened. Complete authentication there; it will close automatically when done.": {
"Terminal fallback opened. Complete authentication there; it will close automatically when done.": "تم فتح الاحطياط للطرفية. أكمل المصادقة هناك؛ سيتم إغلاقه تلقائيًا عند الانتهاء."
@@ -7713,7 +7806,7 @@
"The DMS_SOCKET environment variable is not set or the socket is unavailable. Automated plugin management requires the DMS_SOCKET.": "متغير البيئة DMS_SOCKET غير معين أو أن المقبس غير متاح. تتطلب الإدارة التلقائية للملحقات وجود DMS_SOCKET."
},
"The WiFi adapter could not start access point mode.": {
"The WiFi adapter could not start access point mode.": ""
"The WiFi adapter could not start access point mode.": "تعذر على محول WiFi بدء وضع نقطة الوصول."
},
"The below settings will modify your GTK and Qt settings. If you wish to preserve your current configurations, please back them up (qt5ct.conf|qt6ct.conf and ~/.config/gtk-3.0|gtk-4.0).": {
"The below settings will modify your GTK and Qt settings. If you wish to preserve your current configurations, please back them up (qt5ct.conf|qt6ct.conf and ~/.config/gtk-3.0|gtk-4.0).": "الإعدادات أدناه ستعدل إعدادات GTK و Qt الخاصة بك. إذا كنت ترغب في الحفاظ على تكويناتك الحالية، يرجى أخذ نسخة احتياطية منها (qt5ct.conf|qt6ct.conf و ~/.config/gtk-3.0|gtk-4.0)."
@@ -7727,6 +7820,9 @@
"The rule applies to any window matching one of these.": {
"The rule applies to any window matching one of these.": "تنطبق القاعدة على أي نافذة تطابق واحدة من هذه."
},
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": {
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": ""
},
"Theme & Colors": {
"Theme & Colors": "المظهر والألوان"
},
@@ -7788,7 +7884,7 @@
"This will delete all unpinned entries. %1 pinned entries will be kept.": "سيؤدي هذا إلى حذف جميع الإدخالات غير المثبتة. سيتم الاحتفاظ بـ %1 من الإدخالات المثبتة."
},
"This will disconnect WiFi from \"%1\" — the radio can't host a hotspot and stay connected at the same time. Internet sharing will need another connection, such as Ethernet.": {
"This will disconnect WiFi from \"%1\" — the radio can't host a hotspot and stay connected at the same time. Internet sharing will need another connection, such as Ethernet.": ""
"This will disconnect WiFi from \"%1\" — the radio can't host a hotspot and stay connected at the same time. Internet sharing will need another connection, such as Ethernet.": "سيؤدي هذا إلى قطع اتصال WiFi من \"%1\" — لا يمكن للراديو استضافة نقطة اتصال والبقاء متصلاً في الوقت نفسه. ستحتاج مشاركة الإنترنت إلى اتصال آخر، مثل إيثرنت."
},
"This will permanently delete all clipboard history.": {
"This will permanently delete all clipboard history.": "سيؤدي هذا إلى حذف كل سجل الحافظة نهائياً."
@@ -7919,9 +8015,6 @@
"Too many attempts - locked out": {
"Too many attempts - locked out": "الكثير من المحاولات - تم القفل"
},
"Too many failed attempts - account may be locked": {
"Too many failed attempts - account may be locked": "عدد كبير جداً من المحاولات الفاشلة - قد يكون الحساب مقفلاً"
},
"Tools": {
"Tools": "الأدوات"
},
@@ -7958,6 +8051,12 @@
"Touch your security key...": {
"Touch your security key...": "المس مفتاح الأمان الخاص بك..."
},
"Touchpad Settings": {
"Touchpad Settings": ""
},
"Touchpad Speed": {
"Touchpad Speed": ""
},
"Transform": {
"Transform": "تحويل"
},
@@ -8018,6 +8117,9 @@
"Turn off now": {
"Turn off now": "إيقاف التشغيل الآن"
},
"Two Finger": {
"Two Finger": ""
},
"Type at least 2 characters": {
"Type at least 2 characters": "اكتب حرفين على الأقل"
},
@@ -8159,6 +8261,9 @@
"Untrust": {
"Untrust": "إلغاء حفظ"
},
"Untrusted VPN certificate": {
"Untrusted VPN certificate": ""
},
"Up to date": {
"Up to date": "محدث"
},
@@ -8342,9 +8447,6 @@
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": {
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": "يجب أن يبدأ اسم المستخدم بحرف صغير أو شرطة سفلية ويحتوي فقط على أحرف صغيرة، أرقام، شرطات، أو شرطات سفلية."
},
"Username...": {
"Username...": "اسم المستخدم..."
},
"Users": {
"Users": "المستخدمون"
},
@@ -8481,13 +8583,13 @@
"W": "W"
},
"WCAG %1 body": {
"WCAG %1 body": ""
"WCAG %1 body": "WCAG %1 الجسم"
},
"WPA/WPA2": {
"WPA/WPA2": "WPA/WPA2"
},
"WPA2 password": {
"WPA2 password": ""
"WPA2 password": "كلمة مرور WPA2"
},
"Wallpaper": {
"Wallpaper": "خلفية الشاشة"
@@ -8577,10 +8679,10 @@
"WiFi enabled": "الWi-Fi مفعل"
},
"WiFi is disabled": {
"WiFi is disabled": ""
"WiFi is disabled": "WiFi غير مفعل"
},
"WiFi is disabled. You can still edit and save hotspot settings, but starting the hotspot requires WiFi to be enabled.": {
"WiFi is disabled. You can still edit and save hotspot settings, but starting the hotspot requires WiFi to be enabled.": ""
"WiFi is disabled. You can still edit and save hotspot settings, but starting the hotspot requires WiFi to be enabled.": "WiFi غير مفعل. لا يزال بإمكانك تعديل وحفظ إعدادات نقطة الاتصال، ولكن بدء تشغيل نقطة الاتصال يتطلب تمكين WiFi."
},
"WiFi is off": {
"WiFi is off": "WiFi غير مفعل"
@@ -8640,7 +8742,7 @@
"Width of window border and focus ring": "عرض حدود النافذة وحلقة التركيز"
},
"Will disconnect \"%1": {
"Will disconnect \"%1\"": ""
"Will disconnect \"%1\"": "سيتم قطع اتصال \"%1\""
},
"Wind": {
"Wind": "الرياح"
@@ -8751,10 +8853,10 @@
"Your compositor does not support background blur (ext-background-effect-v1)": "مدير النوافذ الخاص بك لا يدعم ميزة تخبيش الخلفية (ext-background-effect-v1)"
},
"Your hotspot is running.": {
"Your hotspot is running.": ""
"Your hotspot is running.": "نقطة الاتصال الخاصة بك قيد التشغيل."
},
"Your hotspot profile is saved and ready to start.": {
"Your hotspot profile is saved and ready to start.": ""
"Your hotspot profile is saved and ready to start.": "تم حفظ ملف تعريف نقطة الاتصال الخاص بك وهو جاهز للبدء."
},
"Your system is up to date!": {
"Your system is up to date!": "نظامك محدث!"
@@ -8765,6 +8867,9 @@
"attached": {
"attached": "متصل"
},
"below AA": {
"below AA": ""
},
"brandon": {
"brandon": "brandon"
},
File diff suppressed because it is too large Load Diff
+153 -48
View File
@@ -335,6 +335,9 @@
"About": {
"About": "Pri"
},
"Acceleration Profile": {
"Acceleration Profile": ""
},
"Accent Color": {
"Accent Color": "Akcenta Koloro"
},
@@ -410,6 +413,9 @@
"Adapters": {
"Adapters": "Adaptiloj"
},
"Adaptive": {
"Adaptive": ""
},
"Adaptive Media Width": {
"Adaptive Media Width": "Adapta aŭdvidaĵa larĝo"
},
@@ -485,12 +491,21 @@
"Add to Autostart": {
"Add to Autostart": "Aldoni al memlanĉo"
},
"Adjust pointer sensitivity speed": {
"Adjust pointer sensitivity speed": ""
},
"Adjust scrolling sensitivity multiplier": {
"Adjust scrolling sensitivity multiplier": ""
},
"Adjust the bar height via inner padding": {
"Adjust the bar height via inner padding": "Alĝustigu la baran altecon per interna remburaĵo"
},
"Adjust the number of columns in grid view mode.": {
"Adjust the number of columns in grid view mode.": "Alĝustigi la nombron de kolumnoj en krada vida reĝimo."
},
"Adjust touchpad pointer speed": {
"Adjust touchpad pointer speed": ""
},
"Adjust volume per scroll indent": {
"Adjust volume per scroll indent": "Alĝustigi la laŭtecon per rula dentaĵo"
},
@@ -575,6 +590,9 @@
"Always show when there's only one connected display": {
"Always show when there's only one connected display": "Ĉiam montri kiam estas nur unu konektita ekrano"
},
"Always use the durations above, even if an app requests a shorter or longer one": {
"Always use the durations above, even if an app requests a shorter or longer one": ""
},
"Always use this app for %1": {
"Always use this app for %1": "Ĉiam uzu ĉi tiun programon por %1"
},
@@ -782,9 +800,6 @@
"Authenticated!": {
"Authenticated!": ""
},
"Authenticating...": {
"Authenticating...": "Aŭtentigante..."
},
"Authentication": {
"Authentication": "Aŭtentigo"
},
@@ -803,18 +818,6 @@
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": {
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": "Aŭtentigaj ŝanĝoj bezonas sudo-on. Malfermas terminalon por ke vi povu uzi pasvorton aŭ fingrospuron."
},
"Authentication error - try again": {
"Authentication error - try again": "Aŭtentiga eraro - provu denove"
},
"Authentication failed - attempt %1 of %2": {
"Authentication failed - attempt %1 of %2": ""
},
"Authentication failed - lockout can occur": {
"Authentication failed - lockout can occur": ""
},
"Authentication failed - try again": {
"Authentication failed - try again": ""
},
"Authorize": {
"Authorize": "Rajtigi"
},
@@ -878,9 +881,6 @@
"Auto-hide Dock": {
"Auto-hide Dock": "Aŭtomata kaŝo de doko"
},
"Auto-login": {
"Auto-login": "Aŭtomata ensaluto"
},
"Auto-login change needs a sync": {
"Auto-login change needs a sync": ""
},
@@ -980,24 +980,12 @@
"Available in Detailed and Forecast view modes": {
"Available in Detailed and Forecast view modes": "Havebla en Detala kaj Prognoza vidreĝimoj"
},
"Awaiting fingerprint authentication": {
"Awaiting fingerprint authentication": ""
},
"Awaiting fingerprint or security key authentication": {
"Awaiting fingerprint or security key authentication": ""
},
"Awaiting security key authentication": {
"Awaiting security key authentication": ""
},
"BSSID": {
"BSSID": "BSSID"
},
"Back": {
"Back": "Reen"
},
"Back to user list": {
"Back to user list": "Reen al listo de uzantoj"
},
"Backend": {
"Backend": "Interna programo"
},
@@ -1454,6 +1442,9 @@
"Choose wallpaper folder": {
"Choose wallpaper folder": ""
},
"Choose when to generate scrolling events": {
"Choose when to generate scrolling events": ""
},
"Choose where notification popups appear on screen": {
"Choose where notification popups appear on screen": "Elekti kie sciigaj ŝprucfenestroj aperas sur la ekrano"
},
@@ -1688,6 +1679,9 @@
"Compositor Settings": {
"Compositor Settings": "Komponilaj agordoj"
},
"Compositor actions (focus, move, etc.)": {
"Compositor actions (focus, move, etc.)": ""
},
"Config Format": {
"Config Format": "Agorda formato"
},
@@ -1805,6 +1799,9 @@
"Contrast": {
"Contrast": "Kontrasto"
},
"Contrast by variant": {
"Contrast by variant": ""
},
"Contributor": {
"Contributor": "kontribuanto"
},
@@ -2390,6 +2387,15 @@
"Disable Output": {
"Disable Output": "Malŝalti eligon"
},
"Disable While Typing": {
"Disable While Typing": ""
},
"Disable on External Mouse": {
"Disable on External Mouse": ""
},
"Disable touchpad when an external mouse is connected": {
"Disable touchpad when an external mouse is connected": ""
},
"Disabled": {
"Disabled": "Malŝaltita"
},
@@ -2549,6 +2555,9 @@
"Door Open": {
"Door Open": "Pordo malfermita"
},
"Drag Lock": {
"Drag Lock": ""
},
"Drag a widget by its handle here to reorder it or drop it into another group": {
"Drag a widget by its handle here to reorder it or drop it into another group": ""
},
@@ -2621,6 +2630,9 @@
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": {
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": "Dinamika: Printempa bezier kun superfluo — eniro nelonge superas sian celon kaj poste ekloĝas. "
},
"Edge": {
"Edge": ""
},
"Edge Hover Reveal": {
"Edge Hover Reveal": ""
},
@@ -2669,6 +2681,9 @@
"Empty Trash (%1)": {
"Empty Trash (%1)": "Malplenigi Rubujon (%1)"
},
"Emulate middle click by pressing left and right buttons": {
"Emulate middle click by pressing left and right buttons": ""
},
"Enable 10-bit color depth for wider color gamut and HDR support": {
"Enable 10-bit color depth for wider color gamut and HDR support": "Ŝalti 10-bitan kolorprofundon por pli larĝa kolorgamo kaj HDR-subteno"
},
@@ -2795,6 +2810,9 @@
"Enter password for ": {
"Enter password for ": "Enigu pasvorton por "
},
"Enter text to encode": {
"Enter text to encode": ""
},
"Enter this passkey on ": {
"Enter this passkey on ": "Enigu ĉi tiun pasŝlosilon sur "
},
@@ -2993,6 +3011,9 @@
"Failed to fetch network QR code: %1": {
"Failed to fetch network QR code: %1": "Malsukcesis alporti retan QR-kodon: %1"
},
"Failed to generate QR code: %1": {
"Failed to generate QR code: %1": ""
},
"Failed to generate systemd override": {
"Failed to generate systemd override": "Malsukcesis generi sisteman anstataŭigon"
},
@@ -3263,6 +3284,12 @@
"Flags": {
"Flags": "Flagoj"
},
"Flat": {
"Flat": ""
},
"Flat uses constant speed; Adaptive scales with movement speed": {
"Flat uses constant speed; Adaptive scales with movement speed": ""
},
"Flatpak": {
"Flatpak": ""
},
@@ -3962,6 +3989,9 @@
"If the field is hidden, it will appear as soon as a key is pressed.": {
"If the field is hidden, it will appear as soon as a key is pressed.": "Se la kampo estas kaŝita, ĝi aperos tuj kiam klavo estas premita."
},
"Ignore App-Requested Timeout": {
"Ignore App-Requested Timeout": ""
},
"Ignore Completely": {
"Ignore Completely": "Tute malatenti"
},
@@ -4199,6 +4229,9 @@
"Keep My Edits": {
"Keep My Edits": "Konservu Miajn Redaktojn"
},
"Keep dragging when finger is briefly lifted": {
"Keep dragging when finger is briefly lifted": ""
},
"Keep in Bar": {
"Keep in Bar": "Konservu en Trinkejo"
},
@@ -4334,6 +4367,9 @@
"Left Section": {
"Left Section": "Maldekstra sekcio"
},
"Left-Handed Mode": {
"Left-Handed Mode": ""
},
"Light": {
"Light": "Hela"
},
@@ -4439,9 +4475,6 @@
"Locked": {
"Locked": "Ŝlosita"
},
"Logging in...": {
"Logging in...": "Salutante..."
},
"Login": {
"Login": "Saluti"
},
@@ -4748,6 +4781,9 @@
"Microphone volume control": {
"Microphone volume control": "Regado de mikrofona laŭteco"
},
"Middle Click Emulation": {
"Middle Click Emulation": ""
},
"Middle Section": {
"Middle Section": "Meza sekcio"
},
@@ -4823,6 +4859,12 @@
"Mount Points": {
"Mount Points": "Munt-punktoj"
},
"Mouse & Touchpad": {
"Mouse & Touchpad": ""
},
"Mouse Settings": {
"Mouse Settings": ""
},
"Mouse clicks pass through the bar to windows behind it": {
"Mouse clicks pass through the bar to windows behind it": "Musklakoj pasas tra la trinkejo al fenestroj malantaŭ ĝi"
},
@@ -4886,6 +4928,9 @@
"Native: platform renderer (FreeType).": {
"Native: platform renderer (FreeType).": "Denaska: platforma bildilo (FreeType)."
},
"Natural Scrolling": {
"Natural Scrolling": ""
},
"Natural Touchpad Scrolling": {
"Natural Touchpad Scrolling": "Natura Tuŝpad Scrolling"
},
@@ -5033,6 +5078,9 @@
"No Rounding": {
"No Rounding": "Sen rondigo"
},
"No Scroll": {
"No Scroll": ""
},
"No Shadow": {
"No Shadow": "Sen ombro"
},
@@ -5336,9 +5384,6 @@
"Not detected": {
"Not detected": "Ne detektita"
},
"Not listed?": {
"Not listed?": "Ĉu ne en listo?"
},
"Not paired": {
"Not paired": "Ne parigita"
},
@@ -5432,6 +5477,9 @@
"On": {
"On": "Ŝaltita"
},
"On Button Down": {
"On Button Down": ""
},
"On indefinitely": {
"On indefinitely": "Sur senfine"
},
@@ -5450,6 +5498,9 @@
"Only adjust gamma based on time or location rules.": {
"Only adjust gamma based on time or location rules.": "Nur alĝustigi gamaon baze de tempo- aŭ lok-reguloj."
},
"Only continue if you recognize this server certificate fingerprint.": {
"Only continue if you recognize this server certificate fingerprint.": ""
},
"Only on Battery": {
"Only on Battery": ""
},
@@ -5687,6 +5738,9 @@
"Pairing...": {
"Pairing...": "Parigante..."
},
"Partial": {
"Partial": ""
},
"Partly Cloudy": {
"Partly Cloudy": "Parte nuba"
},
@@ -5708,9 +5762,6 @@
"Password updated": {
"Password updated": "Pasvorto ĝisdatigita"
},
"Password...": {
"Password...": "Pasvorto..."
},
"Passwords do not match.": {
"Passwords do not match.": "Pasvortoj ne kongruas."
},
@@ -5894,6 +5945,9 @@
"Pointer": {
"Pointer": "Kursoro"
},
"Pointer Speed": {
"Pointer Speed": ""
},
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": {
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": "Polkit-integriĝo estas malŝaltita. "
},
@@ -6014,6 +6068,9 @@
"Pressure": {
"Pressure": "Premo"
},
"Prevent accidental cursor jumps while typing": {
"Prevent accidental cursor jumps while typing": ""
},
"Prevent screen timeout": {
"Prevent screen timeout": "Malhelpi ekranan templimon"
},
@@ -6131,6 +6188,9 @@
"Protocol": {
"Protocol": "Protokolo"
},
"QR Generator": {
"QR Generator": ""
},
"Qt": {
"Qt": "Qt"
},
@@ -6383,6 +6443,9 @@
"Requires remembering the last user and session. Enable those options first.": {
"Requires remembering the last user and session. Enable those options first.": "Necesas memori la lastan uzanton kaj sesion. "
},
"Requires the DMS Theme extension from the editor marketplace": {
"Requires the DMS Theme extension from the editor marketplace": ""
},
"Reset": {
"Reset": "Rekomencigi"
},
@@ -6437,6 +6500,12 @@
"Reverse Scrolling Direction": {
"Reverse Scrolling Direction": "Inversigi rulan direkton"
},
"Reverse mouse wheel scrolling direction": {
"Reverse mouse wheel scrolling direction": ""
},
"Reverse two-finger scrolling direction": {
"Reverse two-finger scrolling direction": ""
},
"Reverse workspace switch direction when scrolling over the bar": {
"Reverse workspace switch direction when scrolling over the bar": "Inversigi direkton de laborspaca ŝanĝo kiam oni rulas super la breto"
},
@@ -6644,6 +6713,9 @@
"Scroll GitHub": {
"Scroll GitHub": "Ruli GitHub-on"
},
"Scroll Method": {
"Scroll Method": ""
},
"Scroll Wheel": {
"Scroll Wheel": "Rul-radeto"
},
@@ -6659,6 +6731,9 @@
"Scrolling": {
"Scrolling": "Rulado"
},
"Scrolling Speed": {
"Scrolling Speed": ""
},
"Search App Actions": {
"Search App Actions": "Serĉi aplikaĵajn agojn"
},
@@ -6821,9 +6896,6 @@
"Select the palette algorithm used for wallpaper-based colors": {
"Select the palette algorithm used for wallpaper-based colors": "Elekti la paletran algoritmon uzatan por fonbild-bazitaj koloroj"
},
"Select user...": {
"Select user...": "Elektu uzanton..."
},
"Select which keybind providers to include": {
"Select which keybind providers to include": "Elektu kiujn provizantojn de klavoligiloj inkluzivi"
},
@@ -6992,6 +7064,9 @@
"Show": {
"Show": "Montri"
},
"Show \"config reloaded\" Toast": {
"Show \"config reloaded\" Toast": ""
},
"Show 3rd Party": {
"Show 3rd Party": "Montri triajn partiojn"
},
@@ -7187,6 +7262,9 @@
"Show a notification when battery reaches the charge limit.": {
"Show a notification when battery reaches the charge limit.": ""
},
"Show a toast when the compositor config is reloaded": {
"Show a toast when the compositor config is reloaded": ""
},
"Show a warning popup when battery is running low.": {
"Show a warning popup when battery is running low.": ""
},
@@ -7529,6 +7607,9 @@
"Suspend then Hibernate": {
"Suspend then Hibernate": "Dormeti poste pasivigi"
},
"Swap primary and secondary mouse buttons": {
"Swap primary and secondary mouse buttons": ""
},
"Sway Website": {
"Sway Website": "Retejo de Sway"
},
@@ -7652,6 +7733,18 @@
"Tailscale not available": {
"Tailscale not available": "Vostoskalo ne havebla"
},
"Tap and Drag": {
"Tap and Drag": ""
},
"Tap and drag on the touchpad to move items": {
"Tap and drag on the touchpad to move items": ""
},
"Tap the touchpad surface to trigger left click clicks": {
"Tap the touchpad surface to trigger left click clicks": ""
},
"Tap to Click": {
"Tap to Click": ""
},
"Terminal": {
"Terminal": "Terminalo"
},
@@ -7727,6 +7820,9 @@
"The rule applies to any window matching one of these.": {
"The rule applies to any window matching one of these.": "La regulo validas por iu ajn fenestro kongrua kun unu el ĉi tiuj."
},
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": {
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": ""
},
"Theme & Colors": {
"Theme & Colors": "Etoso kaj koloroj"
},
@@ -7919,9 +8015,6 @@
"Too many attempts - locked out": {
"Too many attempts - locked out": "Tro da provoj - ŝlosita"
},
"Too many failed attempts - account may be locked": {
"Too many failed attempts - account may be locked": "Tro da malsukcesaj provoj - la konto eble estas ŝlosita"
},
"Tools": {
"Tools": "Iloj"
},
@@ -7958,6 +8051,12 @@
"Touch your security key...": {
"Touch your security key...": "Tuŝu vian sekurecŝlosilon..."
},
"Touchpad Settings": {
"Touchpad Settings": ""
},
"Touchpad Speed": {
"Touchpad Speed": ""
},
"Transform": {
"Transform": "Transformi"
},
@@ -8018,6 +8117,9 @@
"Turn off now": {
"Turn off now": "Malŝaltu nun"
},
"Two Finger": {
"Two Finger": ""
},
"Type at least 2 characters": {
"Type at least 2 characters": "Tajpu almenaŭ 2 signojn"
},
@@ -8159,6 +8261,9 @@
"Untrust": {
"Untrust": "Malestimata"
},
"Untrusted VPN certificate": {
"Untrusted VPN certificate": ""
},
"Up to date": {
"Up to date": "Aktualigita"
},
@@ -8342,9 +8447,6 @@
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": {
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": "Uzantnomo devas komenci per minuskla litero aŭ substreko kaj enhavi nur minusklajn literojn, ciferojn, streketojn aŭ substrekojn."
},
"Username...": {
"Username...": "Uzantnomo..."
},
"Users": {
"Users": "Uzantoj"
},
@@ -8765,6 +8867,9 @@
"attached": {
"attached": "aligita"
},
"below AA": {
"below AA": ""
},
"brandon": {
"brandon": "brandon"
},
File diff suppressed because it is too large Load Diff
+153 -48
View File
@@ -335,6 +335,9 @@
"About": {
"About": "درباره"
},
"Acceleration Profile": {
"Acceleration Profile": ""
},
"Accent Color": {
"Accent Color": "رنگ تأکیدی"
},
@@ -410,6 +413,9 @@
"Adapters": {
"Adapters": "آداپتور‌ها"
},
"Adaptive": {
"Adaptive": ""
},
"Adaptive Media Width": {
"Adaptive Media Width": "پهنای رسانه سازگار"
},
@@ -485,12 +491,21 @@
"Add to Autostart": {
"Add to Autostart": ""
},
"Adjust pointer sensitivity speed": {
"Adjust pointer sensitivity speed": ""
},
"Adjust scrolling sensitivity multiplier": {
"Adjust scrolling sensitivity multiplier": ""
},
"Adjust the bar height via inner padding": {
"Adjust the bar height via inner padding": "ارتفاع نوار را از طریق فاصله درونی تنظیم کن"
},
"Adjust the number of columns in grid view mode.": {
"Adjust the number of columns in grid view mode.": "تعداد ستون‌ها در حالت نمای جدولی را تنظیم کنید."
},
"Adjust touchpad pointer speed": {
"Adjust touchpad pointer speed": ""
},
"Adjust volume per scroll indent": {
"Adjust volume per scroll indent": "تنظیم حجم صدا به‌ازای هر پله اسکرول"
},
@@ -575,6 +590,9 @@
"Always show when there's only one connected display": {
"Always show when there's only one connected display": "همیشه وقتی فقط یک نمایشگر متصل وجود دارد، نشان بده"
},
"Always use the durations above, even if an app requests a shorter or longer one": {
"Always use the durations above, even if an app requests a shorter or longer one": ""
},
"Always use this app for %1": {
"Always use this app for %1": "همیشه از این برنامه برای %1 استفاده کن"
},
@@ -782,9 +800,6 @@
"Authenticated!": {
"Authenticated!": ""
},
"Authenticating...": {
"Authenticating...": "درحال احراز هویت..."
},
"Authentication": {
"Authentication": "احراز هویت"
},
@@ -803,18 +818,6 @@
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": {
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": "تغییرات احراز هویت به sudo نیاز دارد. درحال باز کردن ترمینال تا بتوانید از گذرواژه یا اثرانگشت استفاده کنید."
},
"Authentication error - try again": {
"Authentication error - try again": "خطای احراز هویت - دوباره تلاش کنید"
},
"Authentication failed - attempt %1 of %2": {
"Authentication failed - attempt %1 of %2": ""
},
"Authentication failed - lockout can occur": {
"Authentication failed - lockout can occur": ""
},
"Authentication failed - try again": {
"Authentication failed - try again": ""
},
"Authorize": {
"Authorize": "اجازه دادن"
},
@@ -878,9 +881,6 @@
"Auto-hide Dock": {
"Auto-hide Dock": "پنهان خودکار داک"
},
"Auto-login": {
"Auto-login": ""
},
"Auto-login change needs a sync": {
"Auto-login change needs a sync": ""
},
@@ -980,24 +980,12 @@
"Available in Detailed and Forecast view modes": {
"Available in Detailed and Forecast view modes": "در حالت‌های نمایش با جزئیات و پیش‌بینی در دسترس است"
},
"Awaiting fingerprint authentication": {
"Awaiting fingerprint authentication": ""
},
"Awaiting fingerprint or security key authentication": {
"Awaiting fingerprint or security key authentication": ""
},
"Awaiting security key authentication": {
"Awaiting security key authentication": ""
},
"BSSID": {
"BSSID": "BSSID"
},
"Back": {
"Back": "بازگشت"
},
"Back to user list": {
"Back to user list": ""
},
"Backend": {
"Backend": "بک‌اند"
},
@@ -1454,6 +1442,9 @@
"Choose wallpaper folder": {
"Choose wallpaper folder": ""
},
"Choose when to generate scrolling events": {
"Choose when to generate scrolling events": ""
},
"Choose where notification popups appear on screen": {
"Choose where notification popups appear on screen": "انتخاب کنید پاپ‌آپ اعلان کجای صفحه ظاهر شود"
},
@@ -1688,6 +1679,9 @@
"Compositor Settings": {
"Compositor Settings": "تنظیمات کامپازیتور"
},
"Compositor actions (focus, move, etc.)": {
"Compositor actions (focus, move, etc.)": ""
},
"Config Format": {
"Config Format": "تنظیم قالب"
},
@@ -1805,6 +1799,9 @@
"Contrast": {
"Contrast": "کنتراست"
},
"Contrast by variant": {
"Contrast by variant": ""
},
"Contributor": {
"Contributor": ""
},
@@ -2390,6 +2387,15 @@
"Disable Output": {
"Disable Output": "غیرفعال‌کردن خروجی"
},
"Disable While Typing": {
"Disable While Typing": ""
},
"Disable on External Mouse": {
"Disable on External Mouse": ""
},
"Disable touchpad when an external mouse is connected": {
"Disable touchpad when an external mouse is connected": ""
},
"Disabled": {
"Disabled": "غیرفعال"
},
@@ -2549,6 +2555,9 @@
"Door Open": {
"Door Open": "درب باز"
},
"Drag Lock": {
"Drag Lock": ""
},
"Drag a widget by its handle here to reorder it or drop it into another group": {
"Drag a widget by its handle here to reorder it or drop it into another group": ""
},
@@ -2621,6 +2630,9 @@
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": {
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": ""
},
"Edge": {
"Edge": ""
},
"Edge Hover Reveal": {
"Edge Hover Reveal": ""
},
@@ -2669,6 +2681,9 @@
"Empty Trash (%1)": {
"Empty Trash (%1)": "خالی کردن زباله‌دان (%1)"
},
"Emulate middle click by pressing left and right buttons": {
"Emulate middle click by pressing left and right buttons": ""
},
"Enable 10-bit color depth for wider color gamut and HDR support": {
"Enable 10-bit color depth for wider color gamut and HDR support": "فعال‌کردن عمق رنگ ۱۰ بیت برای طیف رنگ عریض‌تر و پشتیبانی HDR"
},
@@ -2795,6 +2810,9 @@
"Enter password for ": {
"Enter password for ": "ورود گذرواژه برای "
},
"Enter text to encode": {
"Enter text to encode": ""
},
"Enter this passkey on ": {
"Enter this passkey on ": "ورود این کلید عبور در "
},
@@ -2993,6 +3011,9 @@
"Failed to fetch network QR code: %1": {
"Failed to fetch network QR code: %1": "دریافت کد QR شبکه ناموفق بود: %1"
},
"Failed to generate QR code: %1": {
"Failed to generate QR code: %1": ""
},
"Failed to generate systemd override": {
"Failed to generate systemd override": ""
},
@@ -3263,6 +3284,12 @@
"Flags": {
"Flags": "فلگ‌ها"
},
"Flat": {
"Flat": ""
},
"Flat uses constant speed; Adaptive scales with movement speed": {
"Flat uses constant speed; Adaptive scales with movement speed": ""
},
"Flatpak": {
"Flatpak": ""
},
@@ -3962,6 +3989,9 @@
"If the field is hidden, it will appear as soon as a key is pressed.": {
"If the field is hidden, it will appear as soon as a key is pressed.": "اگر فیلد پنهان باشد، به محض فشردن کلید پدیدار می‌شود."
},
"Ignore App-Requested Timeout": {
"Ignore App-Requested Timeout": ""
},
"Ignore Completely": {
"Ignore Completely": "کلاً نادیده بگیر"
},
@@ -4199,6 +4229,9 @@
"Keep My Edits": {
"Keep My Edits": ""
},
"Keep dragging when finger is briefly lifted": {
"Keep dragging when finger is briefly lifted": ""
},
"Keep in Bar": {
"Keep in Bar": ""
},
@@ -4334,6 +4367,9 @@
"Left Section": {
"Left Section": "بخش چپ"
},
"Left-Handed Mode": {
"Left-Handed Mode": ""
},
"Light": {
"Light": "کم‌رنگ"
},
@@ -4439,9 +4475,6 @@
"Locked": {
"Locked": "قفل شده"
},
"Logging in...": {
"Logging in...": "درحال ورود..."
},
"Login": {
"Login": "ورود"
},
@@ -4748,6 +4781,9 @@
"Microphone volume control": {
"Microphone volume control": "کنترل حجم صدای میکروفون"
},
"Middle Click Emulation": {
"Middle Click Emulation": ""
},
"Middle Section": {
"Middle Section": "بخش میانی"
},
@@ -4823,6 +4859,12 @@
"Mount Points": {
"Mount Points": "نقاط اتصال"
},
"Mouse & Touchpad": {
"Mouse & Touchpad": ""
},
"Mouse Settings": {
"Mouse Settings": ""
},
"Mouse clicks pass through the bar to windows behind it": {
"Mouse clicks pass through the bar to windows behind it": "کلیک موس از نوار عبور کند تا به پنجره پشت آن برسد"
},
@@ -4886,6 +4928,9 @@
"Native: platform renderer (FreeType).": {
"Native: platform renderer (FreeType).": "محلی: نماپرداز سکو (FreeType)."
},
"Natural Scrolling": {
"Natural Scrolling": ""
},
"Natural Touchpad Scrolling": {
"Natural Touchpad Scrolling": ""
},
@@ -5033,6 +5078,9 @@
"No Rounding": {
"No Rounding": "بدون گردی"
},
"No Scroll": {
"No Scroll": ""
},
"No Shadow": {
"No Shadow": "بدون سایه"
},
@@ -5336,9 +5384,6 @@
"Not detected": {
"Not detected": "تشخیص داده نشد"
},
"Not listed?": {
"Not listed?": ""
},
"Not paired": {
"Not paired": "جفت نشده"
},
@@ -5432,6 +5477,9 @@
"On": {
"On": "روشن"
},
"On Button Down": {
"On Button Down": ""
},
"On indefinitely": {
"On indefinitely": "روشن بصورت نامحدود"
},
@@ -5450,6 +5498,9 @@
"Only adjust gamma based on time or location rules.": {
"Only adjust gamma based on time or location rules.": "گاما را فقط بر اساس قواعد زمانی یا مکانی تنظیم کن."
},
"Only continue if you recognize this server certificate fingerprint.": {
"Only continue if you recognize this server certificate fingerprint.": ""
},
"Only on Battery": {
"Only on Battery": ""
},
@@ -5687,6 +5738,9 @@
"Pairing...": {
"Pairing...": "درحال جفت شدن..."
},
"Partial": {
"Partial": ""
},
"Partly Cloudy": {
"Partly Cloudy": "نیمه ابری"
},
@@ -5708,9 +5762,6 @@
"Password updated": {
"Password updated": "گذرواژه بروز شد"
},
"Password...": {
"Password...": "گذرواژه..."
},
"Passwords do not match.": {
"Passwords do not match.": "گذرواژه‌ها مطابقت ندارند."
},
@@ -5894,6 +5945,9 @@
"Pointer": {
"Pointer": "اشاره‌گر"
},
"Pointer Speed": {
"Pointer Speed": ""
},
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": {
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": "یکپارچه‌سازی polkit غیرفعال است. مدیریت کاربر برای بالابردن دسترسی‌ها نیاز به polkit دارد."
},
@@ -6014,6 +6068,9 @@
"Pressure": {
"Pressure": "فشار"
},
"Prevent accidental cursor jumps while typing": {
"Prevent accidental cursor jumps while typing": ""
},
"Prevent screen timeout": {
"Prevent screen timeout": "وقفه جلوگیری از خاموش‌شدن صفحه"
},
@@ -6131,6 +6188,9 @@
"Protocol": {
"Protocol": "پروتکل"
},
"QR Generator": {
"QR Generator": ""
},
"Qt": {
"Qt": ""
},
@@ -6383,6 +6443,9 @@
"Requires remembering the last user and session. Enable those options first.": {
"Requires remembering the last user and session. Enable those options first.": ""
},
"Requires the DMS Theme extension from the editor marketplace": {
"Requires the DMS Theme extension from the editor marketplace": ""
},
"Reset": {
"Reset": "تنظیم مجدد"
},
@@ -6437,6 +6500,12 @@
"Reverse Scrolling Direction": {
"Reverse Scrolling Direction": "جهت اسکرول معکوس"
},
"Reverse mouse wheel scrolling direction": {
"Reverse mouse wheel scrolling direction": ""
},
"Reverse two-finger scrolling direction": {
"Reverse two-finger scrolling direction": ""
},
"Reverse workspace switch direction when scrolling over the bar": {
"Reverse workspace switch direction when scrolling over the bar": "جهت تغییر محیط‌کار را هنگام اسکرول‌کردن روی نوار معکوس کن"
},
@@ -6644,6 +6713,9 @@
"Scroll GitHub": {
"Scroll GitHub": "گیتهاب اسکرول"
},
"Scroll Method": {
"Scroll Method": ""
},
"Scroll Wheel": {
"Scroll Wheel": "چرخ اسکرول"
},
@@ -6659,6 +6731,9 @@
"Scrolling": {
"Scrolling": "اسکرولینگ"
},
"Scrolling Speed": {
"Scrolling Speed": ""
},
"Search App Actions": {
"Search App Actions": "جستجوی اقدام برنامه‌ها"
},
@@ -6821,9 +6896,6 @@
"Select the palette algorithm used for wallpaper-based colors": {
"Select the palette algorithm used for wallpaper-based colors": "انتخاب الگوریتم پالت رنگی استفاده شده برای رنگ‌های بر اساس تصویر پس‌زمینه"
},
"Select user...": {
"Select user...": "انتخاب کاربر..."
},
"Select which keybind providers to include": {
"Select which keybind providers to include": "انتخاب کنید که کدام ارائه دهنده نگاشت‌کلید‌ها include شود"
},
@@ -6992,6 +7064,9 @@
"Show": {
"Show": "نمایش"
},
"Show \"config reloaded\" Toast": {
"Show \"config reloaded\" Toast": ""
},
"Show 3rd Party": {
"Show 3rd Party": "نمایش شخص ثالث"
},
@@ -7187,6 +7262,9 @@
"Show a notification when battery reaches the charge limit.": {
"Show a notification when battery reaches the charge limit.": ""
},
"Show a toast when the compositor config is reloaded": {
"Show a toast when the compositor config is reloaded": ""
},
"Show a warning popup when battery is running low.": {
"Show a warning popup when battery is running low.": ""
},
@@ -7529,6 +7607,9 @@
"Suspend then Hibernate": {
"Suspend then Hibernate": "تعلیق سپس هایبرنیت"
},
"Swap primary and secondary mouse buttons": {
"Swap primary and secondary mouse buttons": ""
},
"Sway Website": {
"Sway Website": "وبسایت Sway"
},
@@ -7652,6 +7733,18 @@
"Tailscale not available": {
"Tailscale not available": "Tailcale در دسترس نیست"
},
"Tap and Drag": {
"Tap and Drag": ""
},
"Tap and drag on the touchpad to move items": {
"Tap and drag on the touchpad to move items": ""
},
"Tap the touchpad surface to trigger left click clicks": {
"Tap the touchpad surface to trigger left click clicks": ""
},
"Tap to Click": {
"Tap to Click": ""
},
"Terminal": {
"Terminal": "ترمینال"
},
@@ -7727,6 +7820,9 @@
"The rule applies to any window matching one of these.": {
"The rule applies to any window matching one of these.": ""
},
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": {
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": ""
},
"Theme & Colors": {
"Theme & Colors": "تم و رنگ‌ها"
},
@@ -7919,9 +8015,6 @@
"Too many attempts - locked out": {
"Too many attempts - locked out": "تلاش‌های بیش از حد - حساب بسته شد"
},
"Too many failed attempts - account may be locked": {
"Too many failed attempts - account may be locked": "تعداد تلاش‌های ناموفق زیاد است - حساب ممکن است قفل شده باشد"
},
"Tools": {
"Tools": "ابزارها"
},
@@ -7958,6 +8051,12 @@
"Touch your security key...": {
"Touch your security key...": "کلید امنیتی خود را لمس کنید..."
},
"Touchpad Settings": {
"Touchpad Settings": ""
},
"Touchpad Speed": {
"Touchpad Speed": ""
},
"Transform": {
"Transform": "تبدیل"
},
@@ -8018,6 +8117,9 @@
"Turn off now": {
"Turn off now": "الان خاموش کن"
},
"Two Finger": {
"Two Finger": ""
},
"Type at least 2 characters": {
"Type at least 2 characters": "حداقل ۲ کاراکتر تایپ کنید"
},
@@ -8159,6 +8261,9 @@
"Untrust": {
"Untrust": "لغو اعتماد"
},
"Untrusted VPN certificate": {
"Untrusted VPN certificate": ""
},
"Up to date": {
"Up to date": "بروز"
},
@@ -8342,9 +8447,6 @@
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": {
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": "نام کاربری باید با حرف کوچک یا زیرخط شروع شود و تنها شامل حروف کوچک، اعداد، خط تیره یا زیرخط باشد."
},
"Username...": {
"Username...": "نام کاربری..."
},
"Users": {
"Users": "کاربران"
},
@@ -8765,6 +8867,9 @@
"attached": {
"attached": "پیوست شد"
},
"below AA": {
"below AA": ""
},
"brandon": {
"brandon": "براندون"
},
+153 -48
View File
@@ -335,6 +335,9 @@
"About": {
"About": "À propos"
},
"Acceleration Profile": {
"Acceleration Profile": ""
},
"Accent Color": {
"Accent Color": "Couleur daccentuation"
},
@@ -410,6 +413,9 @@
"Adapters": {
"Adapters": "Adaptateurs"
},
"Adaptive": {
"Adaptive": ""
},
"Adaptive Media Width": {
"Adaptive Media Width": ""
},
@@ -485,12 +491,21 @@
"Add to Autostart": {
"Add to Autostart": ""
},
"Adjust pointer sensitivity speed": {
"Adjust pointer sensitivity speed": ""
},
"Adjust scrolling sensitivity multiplier": {
"Adjust scrolling sensitivity multiplier": ""
},
"Adjust the bar height via inner padding": {
"Adjust the bar height via inner padding": ""
},
"Adjust the number of columns in grid view mode.": {
"Adjust the number of columns in grid view mode.": "Ajuster le nombre de colonnes en mode vue en grille."
},
"Adjust touchpad pointer speed": {
"Adjust touchpad pointer speed": ""
},
"Adjust volume per scroll indent": {
"Adjust volume per scroll indent": "Ajuster le volume à la molette"
},
@@ -575,6 +590,9 @@
"Always show when there's only one connected display": {
"Always show when there's only one connected display": "Toujours afficher lorsquun seul écran est connecté"
},
"Always use the durations above, even if an app requests a shorter or longer one": {
"Always use the durations above, even if an app requests a shorter or longer one": ""
},
"Always use this app for %1": {
"Always use this app for %1": ""
},
@@ -782,9 +800,6 @@
"Authenticated!": {
"Authenticated!": ""
},
"Authenticating...": {
"Authenticating...": "Authentification..."
},
"Authentication": {
"Authentication": "Authentification"
},
@@ -803,18 +818,6 @@
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": {
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": ""
},
"Authentication error - try again": {
"Authentication error - try again": "Erreur d'authentification - essayez à nouveau"
},
"Authentication failed - attempt %1 of %2": {
"Authentication failed - attempt %1 of %2": ""
},
"Authentication failed - lockout can occur": {
"Authentication failed - lockout can occur": ""
},
"Authentication failed - try again": {
"Authentication failed - try again": ""
},
"Authorize": {
"Authorize": "Autoriser"
},
@@ -878,9 +881,6 @@
"Auto-hide Dock": {
"Auto-hide Dock": "Masquer automatiquement le dock"
},
"Auto-login": {
"Auto-login": ""
},
"Auto-login change needs a sync": {
"Auto-login change needs a sync": ""
},
@@ -980,24 +980,12 @@
"Available in Detailed and Forecast view modes": {
"Available in Detailed and Forecast view modes": "Disponible dans les modes Vue détaillée et Prévisions"
},
"Awaiting fingerprint authentication": {
"Awaiting fingerprint authentication": ""
},
"Awaiting fingerprint or security key authentication": {
"Awaiting fingerprint or security key authentication": ""
},
"Awaiting security key authentication": {
"Awaiting security key authentication": ""
},
"BSSID": {
"BSSID": "BSSID"
},
"Back": {
"Back": "Retour"
},
"Back to user list": {
"Back to user list": ""
},
"Backend": {
"Backend": "Backend"
},
@@ -1454,6 +1442,9 @@
"Choose wallpaper folder": {
"Choose wallpaper folder": ""
},
"Choose when to generate scrolling events": {
"Choose when to generate scrolling events": ""
},
"Choose where notification popups appear on screen": {
"Choose where notification popups appear on screen": "Choisir lemplacement daffichage des notifications"
},
@@ -1688,6 +1679,9 @@
"Compositor Settings": {
"Compositor Settings": "Paramètres du compositeur"
},
"Compositor actions (focus, move, etc.)": {
"Compositor actions (focus, move, etc.)": ""
},
"Config Format": {
"Config Format": "Format de configuration"
},
@@ -1805,6 +1799,9 @@
"Contrast": {
"Contrast": "Contraste"
},
"Contrast by variant": {
"Contrast by variant": ""
},
"Contributor": {
"Contributor": ""
},
@@ -2390,6 +2387,15 @@
"Disable Output": {
"Disable Output": "Désactiver la sortie"
},
"Disable While Typing": {
"Disable While Typing": ""
},
"Disable on External Mouse": {
"Disable on External Mouse": ""
},
"Disable touchpad when an external mouse is connected": {
"Disable touchpad when an external mouse is connected": ""
},
"Disabled": {
"Disabled": "Désactivé"
},
@@ -2549,6 +2555,9 @@
"Door Open": {
"Door Open": "Porte ouverte"
},
"Drag Lock": {
"Drag Lock": ""
},
"Drag a widget by its handle here to reorder it or drop it into another group": {
"Drag a widget by its handle here to reorder it or drop it into another group": ""
},
@@ -2621,6 +2630,9 @@
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": {
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": ""
},
"Edge": {
"Edge": ""
},
"Edge Hover Reveal": {
"Edge Hover Reveal": ""
},
@@ -2669,6 +2681,9 @@
"Empty Trash (%1)": {
"Empty Trash (%1)": ""
},
"Emulate middle click by pressing left and right buttons": {
"Emulate middle click by pressing left and right buttons": ""
},
"Enable 10-bit color depth for wider color gamut and HDR support": {
"Enable 10-bit color depth for wider color gamut and HDR support": "Activer la profondeur de couleur 10 bits pour une gamme de couleurs étendue et la prise en charge du HDR"
},
@@ -2795,6 +2810,9 @@
"Enter password for ": {
"Enter password for ": "Saisir le mot de passe pour "
},
"Enter text to encode": {
"Enter text to encode": ""
},
"Enter this passkey on ": {
"Enter this passkey on ": "Saisir cette clé sur "
},
@@ -2993,6 +3011,9 @@
"Failed to fetch network QR code: %1": {
"Failed to fetch network QR code: %1": ""
},
"Failed to generate QR code: %1": {
"Failed to generate QR code: %1": ""
},
"Failed to generate systemd override": {
"Failed to generate systemd override": ""
},
@@ -3263,6 +3284,12 @@
"Flags": {
"Flags": "Indicateurs"
},
"Flat": {
"Flat": ""
},
"Flat uses constant speed; Adaptive scales with movement speed": {
"Flat uses constant speed; Adaptive scales with movement speed": ""
},
"Flatpak": {
"Flatpak": ""
},
@@ -3962,6 +3989,9 @@
"If the field is hidden, it will appear as soon as a key is pressed.": {
"If the field is hidden, it will appear as soon as a key is pressed.": "Si le champ est masqué, il apparaîtra dès qu'une touche est pressée."
},
"Ignore App-Requested Timeout": {
"Ignore App-Requested Timeout": ""
},
"Ignore Completely": {
"Ignore Completely": "Ignorer complètement"
},
@@ -4199,6 +4229,9 @@
"Keep My Edits": {
"Keep My Edits": ""
},
"Keep dragging when finger is briefly lifted": {
"Keep dragging when finger is briefly lifted": ""
},
"Keep in Bar": {
"Keep in Bar": ""
},
@@ -4334,6 +4367,9 @@
"Left Section": {
"Left Section": "Partie gauche"
},
"Left-Handed Mode": {
"Left-Handed Mode": ""
},
"Light": {
"Light": ""
},
@@ -4439,9 +4475,6 @@
"Locked": {
"Locked": "Verrouillé"
},
"Logging in...": {
"Logging in...": "Connexion..."
},
"Login": {
"Login": ""
},
@@ -4748,6 +4781,9 @@
"Microphone volume control": {
"Microphone volume control": "Contrôle du volume du microphone"
},
"Middle Click Emulation": {
"Middle Click Emulation": ""
},
"Middle Section": {
"Middle Section": "Section centrale"
},
@@ -4823,6 +4859,12 @@
"Mount Points": {
"Mount Points": "Points de montage"
},
"Mouse & Touchpad": {
"Mouse & Touchpad": ""
},
"Mouse Settings": {
"Mouse Settings": ""
},
"Mouse clicks pass through the bar to windows behind it": {
"Mouse clicks pass through the bar to windows behind it": ""
},
@@ -4886,6 +4928,9 @@
"Native: platform renderer (FreeType).": {
"Native: platform renderer (FreeType).": ""
},
"Natural Scrolling": {
"Natural Scrolling": ""
},
"Natural Touchpad Scrolling": {
"Natural Touchpad Scrolling": ""
},
@@ -5033,6 +5078,9 @@
"No Rounding": {
"No Rounding": "Pas d'arrondi"
},
"No Scroll": {
"No Scroll": ""
},
"No Shadow": {
"No Shadow": "Pas d'ombre"
},
@@ -5336,9 +5384,6 @@
"Not detected": {
"Not detected": "Non détecté"
},
"Not listed?": {
"Not listed?": ""
},
"Not paired": {
"Not paired": "Non appairé"
},
@@ -5432,6 +5477,9 @@
"On": {
"On": "Activé"
},
"On Button Down": {
"On Button Down": ""
},
"On indefinitely": {
"On indefinitely": ""
},
@@ -5450,6 +5498,9 @@
"Only adjust gamma based on time or location rules.": {
"Only adjust gamma based on time or location rules.": "Ajuster le gamma uniquement en fonction de lheure ou de lemplacement."
},
"Only continue if you recognize this server certificate fingerprint.": {
"Only continue if you recognize this server certificate fingerprint.": ""
},
"Only on Battery": {
"Only on Battery": ""
},
@@ -5687,6 +5738,9 @@
"Pairing...": {
"Pairing...": "Appairage en cours..."
},
"Partial": {
"Partial": ""
},
"Partly Cloudy": {
"Partly Cloudy": "Partiellement nuageux"
},
@@ -5708,9 +5762,6 @@
"Password updated": {
"Password updated": ""
},
"Password...": {
"Password...": "Mot de passe..."
},
"Passwords do not match.": {
"Passwords do not match.": ""
},
@@ -5894,6 +5945,9 @@
"Pointer": {
"Pointer": "Curseur"
},
"Pointer Speed": {
"Pointer Speed": ""
},
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": {
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": ""
},
@@ -6014,6 +6068,9 @@
"Pressure": {
"Pressure": "Pression"
},
"Prevent accidental cursor jumps while typing": {
"Prevent accidental cursor jumps while typing": ""
},
"Prevent screen timeout": {
"Prevent screen timeout": "Empêcher la mise en veille de l’écran"
},
@@ -6131,6 +6188,9 @@
"Protocol": {
"Protocol": "Protocole"
},
"QR Generator": {
"QR Generator": ""
},
"Qt": {
"Qt": ""
},
@@ -6383,6 +6443,9 @@
"Requires remembering the last user and session. Enable those options first.": {
"Requires remembering the last user and session. Enable those options first.": ""
},
"Requires the DMS Theme extension from the editor marketplace": {
"Requires the DMS Theme extension from the editor marketplace": ""
},
"Reset": {
"Reset": "Réinitialiser"
},
@@ -6437,6 +6500,12 @@
"Reverse Scrolling Direction": {
"Reverse Scrolling Direction": "Inverser la direction du défilement"
},
"Reverse mouse wheel scrolling direction": {
"Reverse mouse wheel scrolling direction": ""
},
"Reverse two-finger scrolling direction": {
"Reverse two-finger scrolling direction": ""
},
"Reverse workspace switch direction when scrolling over the bar": {
"Reverse workspace switch direction when scrolling over the bar": "Inverser la direction du changement despace lors du défilement sur la barre"
},
@@ -6644,6 +6713,9 @@
"Scroll GitHub": {
"Scroll GitHub": ""
},
"Scroll Method": {
"Scroll Method": ""
},
"Scroll Wheel": {
"Scroll Wheel": "Molette"
},
@@ -6659,6 +6731,9 @@
"Scrolling": {
"Scrolling": "Défilement"
},
"Scrolling Speed": {
"Scrolling Speed": ""
},
"Search App Actions": {
"Search App Actions": "Chercher des actions d'appli"
},
@@ -6821,9 +6896,6 @@
"Select the palette algorithm used for wallpaper-based colors": {
"Select the palette algorithm used for wallpaper-based colors": "Sélectionner la palette utilisée pour les couleurs basées sur le fond d’écran"
},
"Select user...": {
"Select user...": ""
},
"Select which keybind providers to include": {
"Select which keybind providers to include": "Sélectionner les fournisseurs de raccourcis à inclure"
},
@@ -6992,6 +7064,9 @@
"Show": {
"Show": "Montrer"
},
"Show \"config reloaded\" Toast": {
"Show \"config reloaded\" Toast": ""
},
"Show 3rd Party": {
"Show 3rd Party": "Montrer les tiers"
},
@@ -7187,6 +7262,9 @@
"Show a notification when battery reaches the charge limit.": {
"Show a notification when battery reaches the charge limit.": ""
},
"Show a toast when the compositor config is reloaded": {
"Show a toast when the compositor config is reloaded": ""
},
"Show a warning popup when battery is running low.": {
"Show a warning popup when battery is running low.": ""
},
@@ -7529,6 +7607,9 @@
"Suspend then Hibernate": {
"Suspend then Hibernate": "Suspendre puis mettre en veille prolongée"
},
"Swap primary and secondary mouse buttons": {
"Swap primary and secondary mouse buttons": ""
},
"Sway Website": {
"Sway Website": "Site Sway"
},
@@ -7652,6 +7733,18 @@
"Tailscale not available": {
"Tailscale not available": ""
},
"Tap and Drag": {
"Tap and Drag": ""
},
"Tap and drag on the touchpad to move items": {
"Tap and drag on the touchpad to move items": ""
},
"Tap the touchpad surface to trigger left click clicks": {
"Tap the touchpad surface to trigger left click clicks": ""
},
"Tap to Click": {
"Tap to Click": ""
},
"Terminal": {
"Terminal": "Terminal"
},
@@ -7727,6 +7820,9 @@
"The rule applies to any window matching one of these.": {
"The rule applies to any window matching one of these.": ""
},
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": {
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": ""
},
"Theme & Colors": {
"Theme & Colors": "Thème et couleurs"
},
@@ -7919,9 +8015,6 @@
"Too many attempts - locked out": {
"Too many attempts - locked out": ""
},
"Too many failed attempts - account may be locked": {
"Too many failed attempts - account may be locked": "Trop de tentatives échouées - le compte peut être verrouillé"
},
"Tools": {
"Tools": "Outils"
},
@@ -7958,6 +8051,12 @@
"Touch your security key...": {
"Touch your security key...": ""
},
"Touchpad Settings": {
"Touchpad Settings": ""
},
"Touchpad Speed": {
"Touchpad Speed": ""
},
"Transform": {
"Transform": "Transformer"
},
@@ -8018,6 +8117,9 @@
"Turn off now": {
"Turn off now": ""
},
"Two Finger": {
"Two Finger": ""
},
"Type at least 2 characters": {
"Type at least 2 characters": "Tapez au moins 2 caractères"
},
@@ -8159,6 +8261,9 @@
"Untrust": {
"Untrust": "Révoquer"
},
"Untrusted VPN certificate": {
"Untrusted VPN certificate": ""
},
"Up to date": {
"Up to date": "À jour"
},
@@ -8342,9 +8447,6 @@
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": {
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": ""
},
"Username...": {
"Username...": "Nom d'utilisateur..."
},
"Users": {
"Users": ""
},
@@ -8765,6 +8867,9 @@
"attached": {
"attached": "attaché"
},
"below AA": {
"below AA": ""
},
"brandon": {
"brandon": "brandon"
},
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+212 -107
View File
@@ -198,7 +198,7 @@
"2 seconds": "2 secondi"
},
"2.4 GHz": {
"2.4 GHz": ""
"2.4 GHz": "2.4 GHz"
},
"20 minutes": {
"20 minutes": "20 minuti"
@@ -264,7 +264,7 @@
"45 seconds": "45 secondi"
},
"5 GHz": {
"5 GHz": ""
"5 GHz": "5 GHz"
},
"5 min before": {
"5 min before": "5 min prima"
@@ -335,6 +335,9 @@
"About": {
"About": "Informazioni"
},
"Acceleration Profile": {
"Acceleration Profile": ""
},
"Accent Color": {
"Accent Color": "Colore di Accento"
},
@@ -378,7 +381,7 @@
"Activate the DMS greeter? A terminal will open for sudo authentication. Run Sync after activation to apply your settings.": "Attivare il greeter DMS? Si aprirà un terminale per l'autenticazione sudo. Esegui Sincronizza dopo l'attivazione per applicare le tue impostazioni."
},
"Activates immediately": {
"Activates immediately": ""
"Activates immediately": "Si attiva immediatamente"
},
"Activation": {
"Activation": "Attivazione"
@@ -410,6 +413,9 @@
"Adapters": {
"Adapters": "Adattatori"
},
"Adaptive": {
"Adaptive": ""
},
"Adaptive Media Width": {
"Adaptive Media Width": "Larghezza Adattiva del Widget Media"
},
@@ -423,7 +429,7 @@
"Add \"%1\" to the %2 group? They must log out and back in, then run dms greeter sync --profile to publish their login-screen theme.": "Aggiungere \"%1\" al gruppo %2? Devono disconnettersi e accedere di nuovo, quindi eseguire dms greeter sync --profile per pubblicare il tema della schermata di accesso."
},
"Add \"%1\" to the %2 group? They must log out and back in, then run dms-greeter sync --profile to publish their login-screen theme.": {
"Add \"%1\" to the %2 group? They must log out and back in, then run dms-greeter sync --profile to publish their login-screen theme.": ""
"Add \"%1\" to the %2 group? They must log out and back in, then run dms-greeter sync --profile to publish their login-screen theme.": "Aggiungi \"%1\" al gruppo %2? L'utente deve disconnettersi e accedere di nuovo, dopo deve eseguire dms-greeter sync --profile per pubblicare il tema della schermata di accesso."
},
"Add Bar": {
"Add Bar": "Aggiungi Barra"
@@ -477,7 +483,7 @@
"Add the new user to the %1 group so they can run dms greeter sync --profile.": "Aggiungi il nuovo utente al gruppo %1 in modo che possa eseguire il comando dms greeter sync --profile."
},
"Add the new user to the %1 group so they can run dms-greeter sync --profile.": {
"Add the new user to the %1 group so they can run dms-greeter sync --profile.": ""
"Add the new user to the %1 group so they can run dms-greeter sync --profile.": "Aggiungi il nuovo utente al gruppo %1 in modo che possa eseguire dms-greeter sync --profile."
},
"Add the new user to the %1 group so they can use sudo.": {
"Add the new user to the %1 group so they can use sudo.": "Aggiungi il nuovo utente al gruppo %1 in modo che possa utilizzare sudo."
@@ -485,12 +491,21 @@
"Add to Autostart": {
"Add to Autostart": "Aggiungi all'Avvio Automatico"
},
"Adjust pointer sensitivity speed": {
"Adjust pointer sensitivity speed": ""
},
"Adjust scrolling sensitivity multiplier": {
"Adjust scrolling sensitivity multiplier": ""
},
"Adjust the bar height via inner padding": {
"Adjust the bar height via inner padding": "Regola l'altezza della barra tramite spaziatura interna"
},
"Adjust the number of columns in grid view mode.": {
"Adjust the number of columns in grid view mode.": "Regola il numero di colonne nella modalità di visualizzazione a griglia."
},
"Adjust touchpad pointer speed": {
"Adjust touchpad pointer speed": ""
},
"Adjust volume per scroll indent": {
"Adjust volume per scroll indent": "Regola volume per scatto rotellina"
},
@@ -575,6 +590,9 @@
"Always show when there's only one connected display": {
"Always show when there's only one connected display": "Mostra sempre quando è presente un solo schermo connesso"
},
"Always use the durations above, even if an app requests a shorter or longer one": {
"Always use the durations above, even if an app requests a shorter or longer one": ""
},
"Always use this app for %1": {
"Always use this app for %1": "Usa sempre quest'app per %1"
},
@@ -660,7 +678,7 @@
"Applications and commands to start automatically when you log in": "Applicazioni e Comandi da Avviare Automaticamente all'Accesso"
},
"Applies on the next greeter sync": {
"Applies on the next greeter sync": ""
"Applies on the next greeter sync": "Verrà applicato alla prossima sincronizzazione del greeter"
},
"Apply Changes": {
"Apply Changes": "Applica Modifiche"
@@ -782,9 +800,6 @@
"Authenticated!": {
"Authenticated!": "Autenticato!"
},
"Authenticating...": {
"Authenticating...": "Autenticazione in corso..."
},
"Authentication": {
"Authentication": "Autenticazione"
},
@@ -803,18 +818,6 @@
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": {
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": "Le modifiche di autenticazione richiedono sudo. Apertura del terminale per consentirti l'uso della password o dell'impronta digitale."
},
"Authentication error - try again": {
"Authentication error - try again": "Errore di autenticazione - riprova"
},
"Authentication failed - attempt %1 of %2": {
"Authentication failed - attempt %1 of %2": "Autenticazione non riuscita - tentativo %1 di %2"
},
"Authentication failed - lockout can occur": {
"Authentication failed - lockout can occur": "Autenticazione non riuscita - possibile blocco dell'account"
},
"Authentication failed - try again": {
"Authentication failed - try again": "Autenticazione non riuscita - riprova"
},
"Authorize": {
"Authorize": "Autorizza"
},
@@ -878,9 +881,6 @@
"Auto-hide Dock": {
"Auto-hide Dock": "Nascondi Automaticamente il Dock"
},
"Auto-login": {
"Auto-login": "Accesso Automatico"
},
"Auto-login change needs a sync": {
"Auto-login change needs a sync": "La modifica dell'accesso automatico richiede una sincronizzazione"
},
@@ -980,24 +980,12 @@
"Available in Detailed and Forecast view modes": {
"Available in Detailed and Forecast view modes": "Disponibile nelle modalità Dettagliata e Previsioni"
},
"Awaiting fingerprint authentication": {
"Awaiting fingerprint authentication": "In attesa dell'autenticazione tramite impronta digitale"
},
"Awaiting fingerprint or security key authentication": {
"Awaiting fingerprint or security key authentication": "In attesa dell'autenticazione tramite impronta digitale o chiave di sicurezza"
},
"Awaiting security key authentication": {
"Awaiting security key authentication": "In attesa dell'autenticazione tramite chiave di sicurezza"
},
"BSSID": {
"BSSID": "BSSID"
},
"Back": {
"Back": "Indietro"
},
"Back to user list": {
"Back to user list": "Torna alla Lista Utenti"
},
"Backend": {
"Backend": "Backend"
},
@@ -1035,7 +1023,7 @@
"Balanced palette with focused accents (default).": "Tavolozza bilanciata con accenti focalizzati (predefinito)."
},
"Band": {
"Band": ""
"Band": "Banda"
},
"Bar": {
"Bar": "Barra"
@@ -1293,7 +1281,7 @@
"Calendar Backend": "Backend Calendario"
},
"Calls / Headset": {
"Calls / Headset": ""
"Calls / Headset": "Chiamate / Auricolare"
},
"Camera": {
"Camera": "Fotocamera"
@@ -1454,6 +1442,9 @@
"Choose wallpaper folder": {
"Choose wallpaper folder": "Scegli cartella sfondi"
},
"Choose when to generate scrolling events": {
"Choose when to generate scrolling events": ""
},
"Choose where notification popups appear on screen": {
"Choose where notification popups appear on screen": "Scegli dove i popup delle notifiche appaiono sullo schermo"
},
@@ -1581,16 +1572,16 @@
"Close Window": "Chiudi Finestra"
},
"Codec switched successfully": {
"Codec switched successfully": ""
"Codec switched successfully": "Codec cambiato correttamente"
},
"Codec switching is unavailable because WirePlumber was not found": {
"Codec switching is unavailable because WirePlumber was not found": ""
"Codec switching is unavailable because WirePlumber was not found": "Il cambio codec non è disponibile perché WirePlumber non è stato trovato"
},
"Codec switching is unavailable because pactl was not found": {
"Codec switching is unavailable because pactl was not found": "Il passaggio del codec non è disponibile perché pactl non è stato trovato"
},
"Codec switching is unavailable. WirePlumber wpexec was not found.": {
"Codec switching is unavailable. WirePlumber wpexec was not found.": ""
"Codec switching is unavailable. WirePlumber wpexec was not found.": "Il cambio codec non è disponibile. WirePlumber wpexec non è stato trovato."
},
"Color": {
"Color": "Colore"
@@ -1688,6 +1679,9 @@
"Compositor Settings": {
"Compositor Settings": "Impostazioni del Compositor"
},
"Compositor actions (focus, move, etc.)": {
"Compositor actions (focus, move, etc.)": ""
},
"Config Format": {
"Config Format": "Formato di Configurazione"
},
@@ -1805,6 +1799,9 @@
"Contrast": {
"Contrast": "Contrasto"
},
"Contrast by variant": {
"Contrast by variant": ""
},
"Contributor": {
"Contributor": "Contributore"
},
@@ -1905,7 +1902,7 @@
"Corners & Background": "Angoli e Sfondo"
},
"Couldn't load hotspot password": {
"Couldn't load hotspot password": ""
"Couldn't load hotspot password": "Impossibile caricare la password dell'hotspot"
},
"Count Only": {
"Count Only": "Solo Conteggio"
@@ -2049,7 +2046,7 @@
"Custom Lock Command": "Comando Personalizzato per il Blocco"
},
"Custom Logout Command": {
"Custom Logout Command": "Comando Personalizzato Terminare la Sessione"
"Custom Logout Command": "Comando Personalizzato per Terminare la Sessione"
},
"Custom Name": {
"Custom Name": "Nome Personalizzato"
@@ -2390,6 +2387,15 @@
"Disable Output": {
"Disable Output": "Disabilita Output"
},
"Disable While Typing": {
"Disable While Typing": ""
},
"Disable on External Mouse": {
"Disable on External Mouse": ""
},
"Disable touchpad when an external mouse is connected": {
"Disable touchpad when an external mouse is connected": ""
},
"Disabled": {
"Disabled": "Disattivato"
},
@@ -2549,6 +2555,9 @@
"Door Open": {
"Door Open": "Sportello Aperto"
},
"Drag Lock": {
"Drag Lock": ""
},
"Drag a widget by its handle here to reorder it or drop it into another group": {
"Drag a widget by its handle here to reorder it or drop it into another group": "Trascina un widget dalla sua maniglia qui per riordinarlo o rilascialo in un altro gruppo"
},
@@ -2621,6 +2630,9 @@
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": {
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": "Dinamico: bezier a molla con overshooting — l'entrata supera brevemente il bersaglio poi si stabilizza. Espressivo e vitale."
},
"Edge": {
"Edge": ""
},
"Edge Hover Reveal": {
"Edge Hover Reveal": "Rivelazione al Passaggio sul Bordo"
},
@@ -2669,6 +2681,9 @@
"Empty Trash (%1)": {
"Empty Trash (%1)": "Svuota Cestino (%1)"
},
"Emulate middle click by pressing left and right buttons": {
"Emulate middle click by pressing left and right buttons": ""
},
"Enable 10-bit color depth for wider color gamut and HDR support": {
"Enable 10-bit color depth for wider color gamut and HDR support": "Abilita profondità colore a 10 bit per una gamma cromatica più ampia e supporto HDR"
},
@@ -2706,7 +2721,7 @@
"Enable WiFi": "Abilita WiFi"
},
"Enable WiFi before starting the hotspot.": {
"Enable WiFi before starting the hotspot.": ""
"Enable WiFi before starting the hotspot.": "Abilita WiFi prima di avviare l'hotspot."
},
"Enable a custom override below to set per-bar shadow intensity, opacity, and color.": {
"Enable a custom override below to set per-bar shadow intensity, opacity, and color.": "Abilita una sovrascrittura personalizzata qui sotto per impostare intensità, opacità e colore dell'ombra per ogni barra."
@@ -2795,6 +2810,9 @@
"Enter password for ": {
"Enter password for ": "Inserisci password per "
},
"Enter text to encode": {
"Enter text to encode": ""
},
"Enter this passkey on ": {
"Enter this passkey on ": "Inserisci questa passkey su "
},
@@ -2934,7 +2952,7 @@
"Failed to check pin limit": "Impossibile verificare il limite delle voci fissate"
},
"Failed to configure hotspot": {
"Failed to configure hotspot": ""
"Failed to configure hotspot": "Impossibile configurare l'hotspot"
},
"Failed to connect VPN": {
"Failed to connect VPN": "Impossibile connettersi alla VPN"
@@ -2993,6 +3011,9 @@
"Failed to fetch network QR code: %1": {
"Failed to fetch network QR code: %1": "Impossibile recuperare il codice QR di rete: %1"
},
"Failed to generate QR code: %1": {
"Failed to generate QR code: %1": ""
},
"Failed to generate systemd override": {
"Failed to generate systemd override": "Impossibile generare override systemd"
},
@@ -3066,7 +3087,7 @@
"Failed to run 'dms greeter status'. Ensure DMS is installed and dms is in PATH.": "Impossibile eseguire \"dms greeter status\". Assicurati che DMS sia installato e dms sia nel PATH."
},
"Failed to run 'dms-greeter status'. Ensure the dms-greeter package is installed.": {
"Failed to run 'dms-greeter status'. Ensure the dms-greeter package is installed.": ""
"Failed to run 'dms-greeter status'. Ensure the dms-greeter package is installed.": "Impossibile eseguire \"dms-greeter status\". Assicurati che il pacchetto dms-greeter sia installato."
},
"Failed to save VPN credentials": {
"Failed to save VPN credentials": "Impossibile salvare le credenziali VPN"
@@ -3123,13 +3144,13 @@
"Failed to start connection to %1": "Impossibile avviare la connessione a %1"
},
"Failed to start hotspot": {
"Failed to start hotspot": ""
"Failed to start hotspot": "Impossibile avviare l'hotspot"
},
"Failed to stop hotspot": {
"Failed to stop hotspot": ""
"Failed to stop hotspot": "Impossibile fermare l'hotspot"
},
"Failed to switch codec": {
"Failed to switch codec": ""
"Failed to switch codec": "Impossibile cambiare codec"
},
"Failed to unpin entry": {
"Failed to unpin entry": "Impossibile rimuovere la voce"
@@ -3263,6 +3284,12 @@
"Flags": {
"Flags": "Flag"
},
"Flat": {
"Flat": ""
},
"Flat uses constant speed; Adaptive scales with movement speed": {
"Flat uses constant speed; Adaptive scales with movement speed": ""
},
"Flatpak": {
"Flatpak": "Flatpak"
},
@@ -3558,7 +3585,7 @@
"Generic": "Generico"
},
"Geometric Centering": {
"Geometric Centering": "Centratura Geometrico"
"Geometric Centering": "Centratura Geometrica"
},
"Get Started": {
"Get Started": "Inizia"
@@ -3621,7 +3648,7 @@
"Greeter group members can sync their login-screen theme with dms greeter sync --profile after logging out and back in.": "I membri del gruppo Greeter possono sincronizzare il tema della schermata di accesso con il comando dms greeter sync --profile dopo aver effettuato il logout e aver effettuato nuovamente l'accesso."
},
"Greeter group members can sync their login-screen theme with dms-greeter sync --profile after logging out and back in.": {
"Greeter group members can sync their login-screen theme with dms-greeter sync --profile after logging out and back in.": ""
"Greeter group members can sync their login-screen theme with dms-greeter sync --profile after logging out and back in.": "I membri del gruppo greeter possono sincronizzare il tema della schermata di accesso con dms-greeter sync --profile dopo aver effettuato il logout e l'accesso."
},
"Greeter group:": {
"Greeter group:": "Gruppo greeter:"
@@ -3837,22 +3864,22 @@
"Hotkey overlay title (optional)": "Titolo della sovrapposizione per scorciatoie (opzionale)"
},
"Hotspot": {
"Hotspot": ""
"Hotspot": "Hotspot"
},
"Hotspot activation failed.": {
"Hotspot activation failed.": ""
"Hotspot activation failed.": "Attivazione dell'hotspot non riuscita."
},
"Hotspot name": {
"Hotspot name": ""
"Hotspot name": "Nome hotspot"
},
"Hotspot saved": {
"Hotspot saved": ""
"Hotspot saved": "Hotspot salvato"
},
"Hotspot started": {
"Hotspot started": ""
"Hotspot started": "Hotspot avviato"
},
"Hotspot stopped": {
"Hotspot stopped": ""
"Hotspot stopped": "Hotspot fermato"
},
"Hour": {
"Hour": "Ora"
@@ -3912,7 +3939,7 @@
"IP address or hostname": "Indirizzo IP o nome host"
},
"IP sharing setup failed. Check that dnsmasq is installed.": {
"IP sharing setup failed. Check that dnsmasq is installed.": ""
"IP sharing setup failed. Check that dnsmasq is installed.": "Configurazione della condivisione IP non riuscita. Controlla che dnsmasq sia installato."
},
"ISO Date": {
"ISO Date": "Data ISO"
@@ -3962,6 +3989,9 @@
"If the field is hidden, it will appear as soon as a key is pressed.": {
"If the field is hidden, it will appear as soon as a key is pressed.": "Se il campo è nascosto, apparirà non appena viene premuto un tasto."
},
"Ignore App-Requested Timeout": {
"Ignore App-Requested Timeout": ""
},
"Ignore Completely": {
"Ignore Completely": "Ignora Completamente"
},
@@ -4029,7 +4059,7 @@
"Incorrect password - try again": "Password errata - riprova"
},
"Index Centering": {
"Index Centering": "Centratura indice"
"Index Centering": "Centratura Indice"
},
"Indicator Style": {
"Indicator Style": "Stile Indicatore"
@@ -4199,6 +4229,9 @@
"Keep My Edits": {
"Keep My Edits": "Mantieni le Mie Modifiche"
},
"Keep dragging when finger is briefly lifted": {
"Keep dragging when finger is briefly lifted": ""
},
"Keep in Bar": {
"Keep in Bar": "Mantieni nella Barra"
},
@@ -4334,6 +4367,9 @@
"Left Section": {
"Left Section": "Sezione Sinistra"
},
"Left-Handed Mode": {
"Left-Handed Mode": ""
},
"Light": {
"Light": "Chiaro"
},
@@ -4439,9 +4475,6 @@
"Locked": {
"Locked": "Bloccato"
},
"Logging in...": {
"Logging in...": "Accesso in corso..."
},
"Login": {
"Login": "Accesso"
},
@@ -4748,6 +4781,9 @@
"Microphone volume control": {
"Microphone volume control": "Controllo volume microfono"
},
"Middle Click Emulation": {
"Middle Click Emulation": ""
},
"Middle Section": {
"Middle Section": "Sezione Centrale"
},
@@ -4823,6 +4859,12 @@
"Mount Points": {
"Mount Points": "Punti di Montaggio"
},
"Mouse & Touchpad": {
"Mouse & Touchpad": ""
},
"Mouse Settings": {
"Mouse Settings": ""
},
"Mouse clicks pass through the bar to windows behind it": {
"Mouse clicks pass through the bar to windows behind it": "I clic del mouse attraversano la barra e raggiungono le finestre dietro di essa."
},
@@ -4886,6 +4928,9 @@
"Native: platform renderer (FreeType).": {
"Native: platform renderer (FreeType).": "Native: renderer di piattaforma (FreeType)."
},
"Natural Scrolling": {
"Natural Scrolling": ""
},
"Natural Touchpad Scrolling": {
"Natural Touchpad Scrolling": "Scorrimento Naturale del Touchpad"
},
@@ -5033,6 +5078,9 @@
"No Rounding": {
"No Rounding": "Squadrato"
},
"No Scroll": {
"No Scroll": ""
},
"No Shadow": {
"No Shadow": "Nessuna Ombra"
},
@@ -5336,9 +5384,6 @@
"Not detected": {
"Not detected": "Non rilevato"
},
"Not listed?": {
"Not listed?": "Non elencato?"
},
"Not paired": {
"Not paired": "Non associato"
},
@@ -5432,6 +5477,9 @@
"On": {
"On": "Attivo"
},
"On Button Down": {
"On Button Down": ""
},
"On indefinitely": {
"On indefinitely": "Attivo a tempo indeterminato"
},
@@ -5450,6 +5498,9 @@
"Only adjust gamma based on time or location rules.": {
"Only adjust gamma based on time or location rules.": "Regola la gamma solo in base alle regole di tempo o di posizione."
},
"Only continue if you recognize this server certificate fingerprint.": {
"Only continue if you recognize this server certificate fingerprint.": ""
},
"Only on Battery": {
"Only on Battery": "Solo sulla Batteria"
},
@@ -5511,7 +5562,7 @@
"Open in terminal": "Apri nel terminale"
},
"Open network": {
"Open network": ""
"Open network": "Rete aperta"
},
"Open search bar to find text": {
"Open search bar to find text": "Apri barra di ricerca per cercare testo"
@@ -5541,7 +5592,7 @@
"Opens the connected launcher in Connected Frame Mode.": "Apre il launcher connesso in modalità Connected Frame."
},
"Optional": {
"Optional": ""
"Optional": "Opzionale"
},
"Optional description": {
"Optional description": "Descrizione facoltativa"
@@ -5553,7 +5604,7 @@
"Optional state-based conditions applied to the first match.": "Condizioni opzionali basate sullo stato applicate alla prima corrispondenza."
},
"Optional; leave blank for open hotspot": {
"Optional; leave blank for open hotspot": ""
"Optional; leave blank for open hotspot": "Opzionale; lascia vuoto per un hotspot aperto"
},
"Options": {
"Options": "Opzioni"
@@ -5687,6 +5738,9 @@
"Pairing...": {
"Pairing...": "Associazione in corso..."
},
"Partial": {
"Partial": ""
},
"Partly Cloudy": {
"Partly Cloudy": "Parzialmente Nuvoloso"
},
@@ -5708,9 +5762,6 @@
"Password updated": {
"Password updated": "Password aggiornata"
},
"Password...": {
"Password...": "Password..."
},
"Passwords do not match.": {
"Passwords do not match.": "Le password non corrispondono."
},
@@ -5894,6 +5945,9 @@
"Pointer": {
"Pointer": "Puntatore"
},
"Pointer Speed": {
"Pointer Speed": ""
},
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": {
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": "L'integrazione con Polkit è disabilitata. La gestione degli utenti richiede che Polkit elevi i privilegi."
},
@@ -6014,6 +6068,9 @@
"Pressure": {
"Pressure": "Pressione"
},
"Prevent accidental cursor jumps while typing": {
"Prevent accidental cursor jumps while typing": ""
},
"Prevent screen timeout": {
"Prevent screen timeout": "Disattiva sospensione schermo"
},
@@ -6131,6 +6188,9 @@
"Protocol": {
"Protocol": "Protocollo"
},
"QR Generator": {
"QR Generator": ""
},
"Qt": {
"Qt": "Qt"
},
@@ -6189,7 +6249,7 @@
"Re-enter password": "Reinserisci la password"
},
"Re-enter the password before saving.": {
"Re-enter the password before saving.": ""
"Re-enter the password before saving.": "Reinserisci la password prima di salvare."
},
"Reach local network devices while using an exit node": {
"Reach local network devices while using an exit node": "Raggiungi i dispositivi della rete locale durante l'uso di un nodo di uscita"
@@ -6201,7 +6261,7 @@
"Read:": "Lettura:"
},
"Ready": {
"Ready": ""
"Ready": "Pronto"
},
"Reason": {
"Reason": "Motivo"
@@ -6249,7 +6309,7 @@
"Release": "Rilascio"
},
"Release to confirm": {
"Release to confirm": ""
"Release to confirm": "Rilascia per confermare"
},
"Reload From Disk": {
"Reload From Disk": "Ricarica Dal Disco"
@@ -6383,6 +6443,9 @@
"Requires remembering the last user and session. Enable those options first.": {
"Requires remembering the last user and session. Enable those options first.": "Richiede di ricordare l'ultimo utente e sessione. Abilita prima quelle opzioni."
},
"Requires the DMS Theme extension from the editor marketplace": {
"Requires the DMS Theme extension from the editor marketplace": ""
},
"Reset": {
"Reset": "Reimposta"
},
@@ -6437,6 +6500,12 @@
"Reverse Scrolling Direction": {
"Reverse Scrolling Direction": "Inverti Direzione Scorrimento"
},
"Reverse mouse wheel scrolling direction": {
"Reverse mouse wheel scrolling direction": ""
},
"Reverse two-finger scrolling direction": {
"Reverse two-finger scrolling direction": ""
},
"Reverse workspace switch direction when scrolling over the bar": {
"Reverse workspace switch direction when scrolling over the bar": "Inverti direzione cambio spazio di lavoro quando si scorre sulla barra"
},
@@ -6519,7 +6588,7 @@
"Run paru/yay with AUR enabled when 'Update All' is clicked.": "Esegui paru/yay con AUR abilitato quando si fa clic su \"Aggiorna tutto\"."
},
"Running": {
"Running": ""
"Running": "In esecuzione"
},
"Running Apps": {
"Running Apps": "App in Esecuzione"
@@ -6546,13 +6615,13 @@
"SMS sent successfully": "SMS inviato correttamente"
},
"SSID": {
"SSID": ""
"SSID": "SSID"
},
"Saturation": {
"Saturation": "Saturazione"
},
"Save & Start": {
"Save & Start": ""
"Save & Start": "Salva e Avvia"
},
"Save Notepad File": {
"Save Notepad File": "Salva File Blocco Note"
@@ -6644,6 +6713,9 @@
"Scroll GitHub": {
"Scroll GitHub": "GitHub di Scroll"
},
"Scroll Method": {
"Scroll Method": ""
},
"Scroll Wheel": {
"Scroll Wheel": "Rotella di Scorrimento"
},
@@ -6659,6 +6731,9 @@
"Scrolling": {
"Scrolling": "Scorrimento"
},
"Scrolling Speed": {
"Scrolling Speed": ""
},
"Search App Actions": {
"Search App Actions": "Cerca Azioni App"
},
@@ -6821,9 +6896,6 @@
"Select the palette algorithm used for wallpaper-based colors": {
"Select the palette algorithm used for wallpaper-based colors": "Seleziona l'algoritmo della tavolozza usato per i colori basati sullo sfondo"
},
"Select user...": {
"Select user...": "Seleziona l'utente..."
},
"Select which keybind providers to include": {
"Select which keybind providers to include": "Seleziona quali fornitori di scorciatoie includere"
},
@@ -6903,13 +6975,13 @@
"Set the percentage at which the battery is considered low.": "Imposta la percentuale a cui la batteria è considerata scarica."
},
"Set up a WiFi hotspot for sharing this connection.": {
"Set up a WiFi hotspot for sharing this connection.": ""
"Set up a WiFi hotspot for sharing this connection.": "Configura un hotspot WiFi per condividere questa connessione."
},
"Set up hotspot": {
"Set up hotspot": ""
"Set up hotspot": "Configura hotspot"
},
"Set up hotspot in Settings": {
"Set up hotspot in Settings": ""
"Set up hotspot in Settings": "Configura l'hotspot nelle Impostazioni"
},
"Setting": {
"Setting": "Impostazione"
@@ -6992,6 +7064,9 @@
"Show": {
"Show": "Mostra"
},
"Show \"config reloaded\" Toast": {
"Show \"config reloaded\" Toast": ""
},
"Show 3rd Party": {
"Show 3rd Party": "Mostra Terze Parti"
},
@@ -7187,6 +7262,9 @@
"Show a notification when battery reaches the charge limit.": {
"Show a notification when battery reaches the charge limit.": "Mostra una notifica quando la batteria raggiunge il limite di carica."
},
"Show a toast when the compositor config is reloaded": {
"Show a toast when the compositor config is reloaded": ""
},
"Show a warning popup when battery is running low.": {
"Show a warning popup when battery is running low.": "Mostra un popup di avviso quando la batteria è in esaurimento."
},
@@ -7413,7 +7491,7 @@
"Start": "Avvia"
},
"Start Hotspot?": {
"Start Hotspot?": ""
"Start Hotspot?": "Avvia l'hotspot?"
},
"Start KDE Connect or Valent to use this plugin": {
"Start KDE Connect or Valent to use this plugin": "Avvia KDE Connect o Valent per usare questo plugin"
@@ -7422,19 +7500,19 @@
"Start typing your notes here...": "Inizia a scrivere i tuoi appunti qui..."
},
"Starting hotspot...": {
"Starting hotspot...": ""
"Starting hotspot...": "Avvio dell'hotspot..."
},
"Starting the hotspot will disconnect WiFi from \"%1\" — the radio can't do both at once. Sharing internet then requires another connection, such as Ethernet.": {
"Starting the hotspot will disconnect WiFi from \"%1\" — the radio can't do both at once. Sharing internet then requires another connection, such as Ethernet.": ""
"Starting the hotspot will disconnect WiFi from \"%1\" — the radio can't do both at once. Sharing internet then requires another connection, such as Ethernet.": "L'avvio dell'hotspot disconnetterà il WiFi da \"%1\" — la radio non può fare entrambe le cose contemporaneamente. Per condividere Internet sarà necessaria un'altra connessione, ad esempio Ethernet."
},
"Starting...": {
"Starting...": ""
"Starting...": "Avviando..."
},
"State": {
"State": "Stato"
},
"Stop": {
"Stop": ""
"Stop": "Ferma"
},
"Stop ignoring %1": {
"Stop ignoring %1": "Smetti di ignorare %1"
@@ -7529,6 +7607,9 @@
"Suspend then Hibernate": {
"Suspend then Hibernate": "Sospendi e poi Iberna"
},
"Swap primary and secondary mouse buttons": {
"Swap primary and secondary mouse buttons": ""
},
"Sway Website": {
"Sway Website": "Sito Web di Sway"
},
@@ -7560,7 +7641,7 @@
"Sync applies your theme and settings to the login screen. Shared users should run dms greeter sync --profile instead of a primary user sync.": "La sincronizzazione applica il tuo tema e le tue impostazioni alla schermata di accesso. Gli utenti condivisi dovrebbero eseguire dms greeter sync --profile invece della sincronizzazione dell'utente principale."
},
"Sync applies your theme and settings to the login screen. Shared users should run dms-greeter sync --profile instead of a primary user sync.": {
"Sync applies your theme and settings to the login screen. Shared users should run dms-greeter sync --profile instead of a primary user sync.": ""
"Sync applies your theme and settings to the login screen. Shared users should run dms-greeter sync --profile instead of a primary user sync.": "La sincronizzazione applica il tuo tema e le tue impostazioni alla schermata di accesso. Gli utenti condivisi dovrebbero eseguire dms-greeter sync --profile invece di una sincronizzazione dell'utente principale."
},
"Sync completed successfully.": {
"Sync completed successfully.": "Sincronizzazione completata con successo."
@@ -7652,6 +7733,18 @@
"Tailscale not available": {
"Tailscale not available": "Tailscale non disponibile"
},
"Tap and Drag": {
"Tap and Drag": ""
},
"Tap and drag on the touchpad to move items": {
"Tap and drag on the touchpad to move items": ""
},
"Tap the touchpad surface to trigger left click clicks": {
"Tap the touchpad surface to trigger left click clicks": ""
},
"Tap to Click": {
"Tap to Click": ""
},
"Terminal": {
"Terminal": "Terminale"
},
@@ -7665,7 +7758,7 @@
"Terminal fallback failed. Install one of the supported terminal emulators or run 'dms greeter sync' manually.": "Impossibile utilizzare il terminale di ripiego. Installa uno degli emulatori di terminale supportati oppure esegui manualmente 'dms greeter sync'."
},
"Terminal fallback failed. Install one of the supported terminal emulators or run 'dms-greeter sync' manually.": {
"Terminal fallback failed. Install one of the supported terminal emulators or run 'dms-greeter sync' manually.": ""
"Terminal fallback failed. Install one of the supported terminal emulators or run 'dms-greeter sync' manually.": "Terminale di ripiego non riuscito. Installa uno degli emulatori di terminale supportati o esegui manualmente 'dms-greeter sync'."
},
"Terminal fallback opened. Complete authentication there; it will close automatically when done.": {
"Terminal fallback opened. Complete authentication there; it will close automatically when done.": "Terminale di ripiego aperto. Completa lì l'autenticazione; si chiuderà automaticamente al termine."
@@ -7713,7 +7806,7 @@
"The DMS_SOCKET environment variable is not set or the socket is unavailable. Automated plugin management requires the DMS_SOCKET.": "La variabile d'ambiente DMS_SOCKET non è impostata o il socket non è disponibile. La gestione automatica dei plugin richiede il DMS_SOCKET."
},
"The WiFi adapter could not start access point mode.": {
"The WiFi adapter could not start access point mode.": ""
"The WiFi adapter could not start access point mode.": "L'adattatore WiFi non è riuscito ad avviare la modalità access point."
},
"The below settings will modify your GTK and Qt settings. If you wish to preserve your current configurations, please back them up (qt5ct.conf|qt6ct.conf and ~/.config/gtk-3.0|gtk-4.0).": {
"The below settings will modify your GTK and Qt settings. If you wish to preserve your current configurations, please back them up (qt5ct.conf|qt6ct.conf and ~/.config/gtk-3.0|gtk-4.0).": "Le seguenti impostazioni modificheranno le tue impostazioni GTK e Qt. Se vuoi preservare la tua configurazione attuale, per favore fai il backup (qt5ct.conf|qt6ct.conf e ~/.config/gtk-3.0|gtk-4.0)."
@@ -7727,6 +7820,9 @@
"The rule applies to any window matching one of these.": {
"The rule applies to any window matching one of these.": "La regola si applica a qualsiasi finestra che corrisponda a una di queste."
},
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": {
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": ""
},
"Theme & Colors": {
"Theme & Colors": "Tema e Colori"
},
@@ -7749,7 +7845,7 @@
"Themes": "Temi"
},
"These add entries to the XDG autostart directory (~/.config/autostart/*.desktop)": {
"These add entries to the XDG autostart directory (~/.config/autostart/*.desktop)": "> Queste aggiungono voci alla directory di avvio automatico XDG (~/.config/autostart/*.desktop)"
"These add entries to the XDG autostart directory (~/.config/autostart/*.desktop)": "Queste aggiungono voci alla directory di avvio automatico XDG (~/.config/autostart/*.desktop)"
},
"Thickness": {
"Thickness": "Spessore"
@@ -7788,7 +7884,7 @@
"This will delete all unpinned entries. %1 pinned entries will be kept.": "Questo eliminerà tutte le voci non fissate. %1 voci fissate verranno mantenute."
},
"This will disconnect WiFi from \"%1\" — the radio can't host a hotspot and stay connected at the same time. Internet sharing will need another connection, such as Ethernet.": {
"This will disconnect WiFi from \"%1\" — the radio can't host a hotspot and stay connected at the same time. Internet sharing will need another connection, such as Ethernet.": ""
"This will disconnect WiFi from \"%1\" — the radio can't host a hotspot and stay connected at the same time. Internet sharing will need another connection, such as Ethernet.": "Questa operazione disconnetterà il WiFi da \"%1\" — la radio non può ospitare un hotspot e rimanere connessa contemporaneamente. La condivisione di Internet richiederà un'altra connessione, ad esempio Ethernet."
},
"This will permanently delete all clipboard history.": {
"This will permanently delete all clipboard history.": "La cronologia degli appunti verrà cancellata definitivamente."
@@ -7919,9 +8015,6 @@
"Too many attempts - locked out": {
"Too many attempts - locked out": "Troppi tentativi - accesso bloccato"
},
"Too many failed attempts - account may be locked": {
"Too many failed attempts - account may be locked": "Troppi tentativi falliti - l'account potrebbe essere bloccato"
},
"Tools": {
"Tools": "Strumenti"
},
@@ -7958,6 +8051,12 @@
"Touch your security key...": {
"Touch your security key...": "Tocca la tua chiave di sicurezza..."
},
"Touchpad Settings": {
"Touchpad Settings": ""
},
"Touchpad Speed": {
"Touchpad Speed": ""
},
"Transform": {
"Transform": "Trasforma"
},
@@ -8018,6 +8117,9 @@
"Turn off now": {
"Turn off now": "Spegni ora"
},
"Two Finger": {
"Two Finger": ""
},
"Type at least 2 characters": {
"Type at least 2 characters": "Digita almeno 2 caratteri"
},
@@ -8159,6 +8261,9 @@
"Untrust": {
"Untrust": "Non Fidarti"
},
"Untrusted VPN certificate": {
"Untrusted VPN certificate": ""
},
"Up to date": {
"Up to date": "Aggiornato"
},
@@ -8342,9 +8447,6 @@
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": {
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": "Il nome utente deve iniziare con una lettera minuscola o un trattino basso e deve contenere solo lettere minuscole, cifre, trattini o trattini bassi."
},
"Username...": {
"Username...": "Nome utente..."
},
"Users": {
"Users": "Utenti"
},
@@ -8481,13 +8583,13 @@
"W": "W"
},
"WCAG %1 body": {
"WCAG %1 body": ""
"WCAG %1 body": "WCAG %1 corpo"
},
"WPA/WPA2": {
"WPA/WPA2": "WPA/WPA2"
},
"WPA2 password": {
"WPA2 password": ""
"WPA2 password": "Password WPA2"
},
"Wallpaper": {
"Wallpaper": "Sfondo"
@@ -8577,10 +8679,10 @@
"WiFi enabled": "WiFi attivato"
},
"WiFi is disabled": {
"WiFi is disabled": ""
"WiFi is disabled": "WiFi disattivato"
},
"WiFi is disabled. You can still edit and save hotspot settings, but starting the hotspot requires WiFi to be enabled.": {
"WiFi is disabled. You can still edit and save hotspot settings, but starting the hotspot requires WiFi to be enabled.": ""
"WiFi is disabled. You can still edit and save hotspot settings, but starting the hotspot requires WiFi to be enabled.": "WiFi disattivato. Puoi comunque modificare e salvare le impostazioni dell'hotspot, ma l'avvio dell'hotspot richiede che il WiFi sia abilitato."
},
"WiFi is off": {
"WiFi is off": "WiFi spento"
@@ -8640,7 +8742,7 @@
"Width of window border and focus ring": "Larghezza del bordo e dell'anello di focus"
},
"Will disconnect \"%1": {
"Will disconnect \"%1\"": ""
"Will disconnect \"%1\"": "Disconnetterà \"%1\""
},
"Wind": {
"Wind": "Vento"
@@ -8751,10 +8853,10 @@
"Your compositor does not support background blur (ext-background-effect-v1)": "Il tuo compositor non supporta la sfocatura dello sfondo (ext-background-effect-v1)"
},
"Your hotspot is running.": {
"Your hotspot is running.": ""
"Your hotspot is running.": "Il tuo hotspot è in esecuzione."
},
"Your hotspot profile is saved and ready to start.": {
"Your hotspot profile is saved and ready to start.": ""
"Your hotspot profile is saved and ready to start.": "Il profilo del tuo hotspot è salvato e pronto per l'avvio."
},
"Your system is up to date!": {
"Your system is up to date!": "Il tuo sistema è aggiornato!"
@@ -8765,6 +8867,9 @@
"attached": {
"attached": "agganciato"
},
"below AA": {
"below AA": ""
},
"brandon": {
"brandon": "brandon"
},
@@ -8871,7 +8976,7 @@
"mangowc GitHub": "GitHub di mangowc"
},
"matugen not available or disabled - cannot apply %1 colors": {
"matugen not available or disabled - cannot apply %1 colors": "atugen non è disponibile o disabilitato - impossibile applicare i colori %1"
"matugen not available or disabled - cannot apply %1 colors": "matugen non è disponibile o disabilitato - impossibile applicare i colori %1"
},
"matugen not found - install matugen package for dynamic theming": {
"matugen not found - install matugen package for dynamic theming": "matugen non trovato - installa il pacchetto matugen per il theming dinamico"
+153 -48
View File
@@ -335,6 +335,9 @@
"About": {
"About": "バージョン情報"
},
"Acceleration Profile": {
"Acceleration Profile": ""
},
"Accent Color": {
"Accent Color": "アクセントカラー"
},
@@ -410,6 +413,9 @@
"Adapters": {
"Adapters": "アダプター"
},
"Adaptive": {
"Adaptive": ""
},
"Adaptive Media Width": {
"Adaptive Media Width": "メディア幅の自動調整"
},
@@ -485,12 +491,21 @@
"Add to Autostart": {
"Add to Autostart": "自動起動に追加"
},
"Adjust pointer sensitivity speed": {
"Adjust pointer sensitivity speed": ""
},
"Adjust scrolling sensitivity multiplier": {
"Adjust scrolling sensitivity multiplier": ""
},
"Adjust the bar height via inner padding": {
"Adjust the bar height via inner padding": "内側の余白でバーの高さを調整"
},
"Adjust the number of columns in grid view mode.": {
"Adjust the number of columns in grid view mode.": "グリッド表示モードでの列数を調整します。"
},
"Adjust touchpad pointer speed": {
"Adjust touchpad pointer speed": ""
},
"Adjust volume per scroll indent": {
"Adjust volume per scroll indent": "スクロール1段ごとの音量調整"
},
@@ -575,6 +590,9 @@
"Always show when there's only one connected display": {
"Always show when there's only one connected display": "接続されたディスプレイが1つだけのときは常に表示"
},
"Always use the durations above, even if an app requests a shorter or longer one": {
"Always use the durations above, even if an app requests a shorter or longer one": ""
},
"Always use this app for %1": {
"Always use this app for %1": "%1 は常にこのアプリ使用する"
},
@@ -782,9 +800,6 @@
"Authenticated!": {
"Authenticated!": ""
},
"Authenticating...": {
"Authenticating...": "認証中..."
},
"Authentication": {
"Authentication": "認証"
},
@@ -803,18 +818,6 @@
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": {
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": "認証の変更には sudo が必要です。パスワードまたは指紋を使用できるよう端末を開きます。"
},
"Authentication error - try again": {
"Authentication error - try again": "認証エラー - もう一度試してください"
},
"Authentication failed - attempt %1 of %2": {
"Authentication failed - attempt %1 of %2": ""
},
"Authentication failed - lockout can occur": {
"Authentication failed - lockout can occur": ""
},
"Authentication failed - try again": {
"Authentication failed - try again": ""
},
"Authorize": {
"Authorize": "許可"
},
@@ -878,9 +881,6 @@
"Auto-hide Dock": {
"Auto-hide Dock": "ドックを自動的に隠す"
},
"Auto-login": {
"Auto-login": "自動ログイン"
},
"Auto-login change needs a sync": {
"Auto-login change needs a sync": ""
},
@@ -980,24 +980,12 @@
"Available in Detailed and Forecast view modes": {
"Available in Detailed and Forecast view modes": "詳細表示と予報表示で利用可能"
},
"Awaiting fingerprint authentication": {
"Awaiting fingerprint authentication": ""
},
"Awaiting fingerprint or security key authentication": {
"Awaiting fingerprint or security key authentication": ""
},
"Awaiting security key authentication": {
"Awaiting security key authentication": ""
},
"BSSID": {
"BSSID": "BSSID"
},
"Back": {
"Back": "戻る"
},
"Back to user list": {
"Back to user list": "ユーザー一覧に戻る"
},
"Backend": {
"Backend": "バックエンド"
},
@@ -1454,6 +1442,9 @@
"Choose wallpaper folder": {
"Choose wallpaper folder": ""
},
"Choose when to generate scrolling events": {
"Choose when to generate scrolling events": ""
},
"Choose where notification popups appear on screen": {
"Choose where notification popups appear on screen": "通知ポップアップが画面に表示される場所を選ぶ"
},
@@ -1688,6 +1679,9 @@
"Compositor Settings": {
"Compositor Settings": "コンポジター設定"
},
"Compositor actions (focus, move, etc.)": {
"Compositor actions (focus, move, etc.)": ""
},
"Config Format": {
"Config Format": "設定形式"
},
@@ -1805,6 +1799,9 @@
"Contrast": {
"Contrast": "コントラスト"
},
"Contrast by variant": {
"Contrast by variant": ""
},
"Contributor": {
"Contributor": "貢献者"
},
@@ -2390,6 +2387,15 @@
"Disable Output": {
"Disable Output": "出力を無効化"
},
"Disable While Typing": {
"Disable While Typing": ""
},
"Disable on External Mouse": {
"Disable on External Mouse": ""
},
"Disable touchpad when an external mouse is connected": {
"Disable touchpad when an external mouse is connected": ""
},
"Disabled": {
"Disabled": "無効"
},
@@ -2549,6 +2555,9 @@
"Door Open": {
"Door Open": "ドアオープン"
},
"Drag Lock": {
"Drag Lock": ""
},
"Drag a widget by its handle here to reorder it or drop it into another group": {
"Drag a widget by its handle here to reorder it or drop it into another group": ""
},
@@ -2621,6 +2630,9 @@
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": {
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": "ダイナミック:オーバーシュート付きスプリングベジェ曲線 ― 開始点が目標値を一時的に超えた後、落ち着きます。表現力豊かで生き生きとした曲線です。"
},
"Edge": {
"Edge": ""
},
"Edge Hover Reveal": {
"Edge Hover Reveal": ""
},
@@ -2669,6 +2681,9 @@
"Empty Trash (%1)": {
"Empty Trash (%1)": "ゴミ箱を空にする (%1)"
},
"Emulate middle click by pressing left and right buttons": {
"Emulate middle click by pressing left and right buttons": ""
},
"Enable 10-bit color depth for wider color gamut and HDR support": {
"Enable 10-bit color depth for wider color gamut and HDR support": "より広い色域と HDR サポートのために 10 ビット色深度を有効にします"
},
@@ -2795,6 +2810,9 @@
"Enter password for ": {
"Enter password for ": "パスワードを入力"
},
"Enter text to encode": {
"Enter text to encode": ""
},
"Enter this passkey on ": {
"Enter this passkey on ": "ここでパスキーを入力してください "
},
@@ -2993,6 +3011,9 @@
"Failed to fetch network QR code: %1": {
"Failed to fetch network QR code: %1": "ネットワークQRコードの取得に失敗しました: %1"
},
"Failed to generate QR code: %1": {
"Failed to generate QR code: %1": ""
},
"Failed to generate systemd override": {
"Failed to generate systemd override": "systemd override の生成に失敗しました"
},
@@ -3263,6 +3284,12 @@
"Flags": {
"Flags": "フラグ"
},
"Flat": {
"Flat": ""
},
"Flat uses constant speed; Adaptive scales with movement speed": {
"Flat uses constant speed; Adaptive scales with movement speed": ""
},
"Flatpak": {
"Flatpak": ""
},
@@ -3962,6 +3989,9 @@
"If the field is hidden, it will appear as soon as a key is pressed.": {
"If the field is hidden, it will appear as soon as a key is pressed.": "フィールドが非表示の場合、キーが押されるとすぐに表示されます。"
},
"Ignore App-Requested Timeout": {
"Ignore App-Requested Timeout": ""
},
"Ignore Completely": {
"Ignore Completely": "完全に無視"
},
@@ -4199,6 +4229,9 @@
"Keep My Edits": {
"Keep My Edits": "自分の編集を保持"
},
"Keep dragging when finger is briefly lifted": {
"Keep dragging when finger is briefly lifted": ""
},
"Keep in Bar": {
"Keep in Bar": "バーに残す"
},
@@ -4334,6 +4367,9 @@
"Left Section": {
"Left Section": "左セクション"
},
"Left-Handed Mode": {
"Left-Handed Mode": ""
},
"Light": {
"Light": "ライト"
},
@@ -4439,9 +4475,6 @@
"Locked": {
"Locked": "ロック済み"
},
"Logging in...": {
"Logging in...": "ログイン中..."
},
"Login": {
"Login": "ログイン"
},
@@ -4748,6 +4781,9 @@
"Microphone volume control": {
"Microphone volume control": "マイク音量コントロール"
},
"Middle Click Emulation": {
"Middle Click Emulation": ""
},
"Middle Section": {
"Middle Section": "中間区間"
},
@@ -4823,6 +4859,12 @@
"Mount Points": {
"Mount Points": "マウントポイント"
},
"Mouse & Touchpad": {
"Mouse & Touchpad": ""
},
"Mouse Settings": {
"Mouse Settings": ""
},
"Mouse clicks pass through the bar to windows behind it": {
"Mouse clicks pass through the bar to windows behind it": "マウスクリックをバーの背後のウィンドウへ通す"
},
@@ -4886,6 +4928,9 @@
"Native: platform renderer (FreeType).": {
"Native: platform renderer (FreeType).": "ネイティブ: プラットフォームレンダラー (FreeType)。"
},
"Natural Scrolling": {
"Natural Scrolling": ""
},
"Natural Touchpad Scrolling": {
"Natural Touchpad Scrolling": "タッチパッドのナチュラルスクロール"
},
@@ -5033,6 +5078,9 @@
"No Rounding": {
"No Rounding": "角丸なし"
},
"No Scroll": {
"No Scroll": ""
},
"No Shadow": {
"No Shadow": "影なし"
},
@@ -5336,9 +5384,6 @@
"Not detected": {
"Not detected": "未検出"
},
"Not listed?": {
"Not listed?": "一覧にありませんか?"
},
"Not paired": {
"Not paired": "未ペアリング"
},
@@ -5432,6 +5477,9 @@
"On": {
"On": "オン"
},
"On Button Down": {
"On Button Down": ""
},
"On indefinitely": {
"On indefinitely": "無期限にオン"
},
@@ -5450,6 +5498,9 @@
"Only adjust gamma based on time or location rules.": {
"Only adjust gamma based on time or location rules.": "ガンマは、時間または場所のルールに基づいてのみ調整します。"
},
"Only continue if you recognize this server certificate fingerprint.": {
"Only continue if you recognize this server certificate fingerprint.": ""
},
"Only on Battery": {
"Only on Battery": "バッテリー駆動時のみ"
},
@@ -5687,6 +5738,9 @@
"Pairing...": {
"Pairing...": "ペアリング中..."
},
"Partial": {
"Partial": ""
},
"Partly Cloudy": {
"Partly Cloudy": "晴れ時々曇り"
},
@@ -5708,9 +5762,6 @@
"Password updated": {
"Password updated": "パスワードを更新しました"
},
"Password...": {
"Password...": "パスワード..."
},
"Passwords do not match.": {
"Passwords do not match.": "パスワードが一致しません。"
},
@@ -5894,6 +5945,9 @@
"Pointer": {
"Pointer": "ポインター"
},
"Pointer Speed": {
"Pointer Speed": ""
},
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": {
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": "Polkit 連携が無効です。ユーザー管理には Polkit による権限昇格が必要です。"
},
@@ -6014,6 +6068,9 @@
"Pressure": {
"Pressure": "気圧"
},
"Prevent accidental cursor jumps while typing": {
"Prevent accidental cursor jumps while typing": ""
},
"Prevent screen timeout": {
"Prevent screen timeout": "画面のタイムアウトを防止"
},
@@ -6131,6 +6188,9 @@
"Protocol": {
"Protocol": "プロトコル"
},
"QR Generator": {
"QR Generator": ""
},
"Qt": {
"Qt": "Qt"
},
@@ -6383,6 +6443,9 @@
"Requires remembering the last user and session. Enable those options first.": {
"Requires remembering the last user and session. Enable those options first.": "最後のユーザーとセッションの記憶が必要です。先にそれらのオプションを有効にしてください。"
},
"Requires the DMS Theme extension from the editor marketplace": {
"Requires the DMS Theme extension from the editor marketplace": ""
},
"Reset": {
"Reset": "リセット"
},
@@ -6437,6 +6500,12 @@
"Reverse Scrolling Direction": {
"Reverse Scrolling Direction": "スクロール方向を反転"
},
"Reverse mouse wheel scrolling direction": {
"Reverse mouse wheel scrolling direction": ""
},
"Reverse two-finger scrolling direction": {
"Reverse two-finger scrolling direction": ""
},
"Reverse workspace switch direction when scrolling over the bar": {
"Reverse workspace switch direction when scrolling over the bar": "バー上でスクロールしたときのワークスペース切り替え方向を反転"
},
@@ -6644,6 +6713,9 @@
"Scroll GitHub": {
"Scroll GitHub": "GitHub をスクロール"
},
"Scroll Method": {
"Scroll Method": ""
},
"Scroll Wheel": {
"Scroll Wheel": "スクロールホイール"
},
@@ -6659,6 +6731,9 @@
"Scrolling": {
"Scrolling": "スクロール"
},
"Scrolling Speed": {
"Scrolling Speed": ""
},
"Search App Actions": {
"Search App Actions": "アプリのアクションを検索"
},
@@ -6821,9 +6896,6 @@
"Select the palette algorithm used for wallpaper-based colors": {
"Select the palette algorithm used for wallpaper-based colors": "壁紙ベースの色で、使用するパレットアルゴリズムを選ぶ"
},
"Select user...": {
"Select user...": "ユーザーを選択..."
},
"Select which keybind providers to include": {
"Select which keybind providers to include": "含めるキーバインドプロバイダーを選択"
},
@@ -6992,6 +7064,9 @@
"Show": {
"Show": "表示"
},
"Show \"config reloaded\" Toast": {
"Show \"config reloaded\" Toast": ""
},
"Show 3rd Party": {
"Show 3rd Party": "サードパーティを表示"
},
@@ -7187,6 +7262,9 @@
"Show a notification when battery reaches the charge limit.": {
"Show a notification when battery reaches the charge limit.": "バッテリーが充電上限に達したら通知を表示します。"
},
"Show a toast when the compositor config is reloaded": {
"Show a toast when the compositor config is reloaded": ""
},
"Show a warning popup when battery is running low.": {
"Show a warning popup when battery is running low.": "バッテリー残量が少ないとき警告ポップアップを表示します。"
},
@@ -7529,6 +7607,9 @@
"Suspend then Hibernate": {
"Suspend then Hibernate": "サスペンド後に休止"
},
"Swap primary and secondary mouse buttons": {
"Swap primary and secondary mouse buttons": ""
},
"Sway Website": {
"Sway Website": "Sway ウェブサイト"
},
@@ -7652,6 +7733,18 @@
"Tailscale not available": {
"Tailscale not available": "Tailscaleを利用できません"
},
"Tap and Drag": {
"Tap and Drag": ""
},
"Tap and drag on the touchpad to move items": {
"Tap and drag on the touchpad to move items": ""
},
"Tap the touchpad surface to trigger left click clicks": {
"Tap the touchpad surface to trigger left click clicks": ""
},
"Tap to Click": {
"Tap to Click": ""
},
"Terminal": {
"Terminal": "ターミナル"
},
@@ -7727,6 +7820,9 @@
"The rule applies to any window matching one of these.": {
"The rule applies to any window matching one of these.": "このルールは、これらのいずれかに一致するウィンドウに適用されます。"
},
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": {
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": ""
},
"Theme & Colors": {
"Theme & Colors": "テーマおよびカラー"
},
@@ -7919,9 +8015,6 @@
"Too many attempts - locked out": {
"Too many attempts - locked out": "試行回数が多すぎます - ロックされました"
},
"Too many failed attempts - account may be locked": {
"Too many failed attempts - account may be locked": "失敗回数が多すぎます - アカウントがロックされている可能性があります"
},
"Tools": {
"Tools": "ツール"
},
@@ -7958,6 +8051,12 @@
"Touch your security key...": {
"Touch your security key...": "セキュリティキーに触れてください..."
},
"Touchpad Settings": {
"Touchpad Settings": ""
},
"Touchpad Speed": {
"Touchpad Speed": ""
},
"Transform": {
"Transform": "変形"
},
@@ -8018,6 +8117,9 @@
"Turn off now": {
"Turn off now": "今すぐオフにする"
},
"Two Finger": {
"Two Finger": ""
},
"Type at least 2 characters": {
"Type at least 2 characters": "少なくとも 2 文字入力してください"
},
@@ -8159,6 +8261,9 @@
"Untrust": {
"Untrust": "信頼を解除"
},
"Untrusted VPN certificate": {
"Untrusted VPN certificate": ""
},
"Up to date": {
"Up to date": "最新です"
},
@@ -8342,9 +8447,6 @@
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": {
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": "ユーザー名は小文字またはアンダースコアで始め、小文字、数字、ハイフン、アンダースコアだけを含める必要があります。"
},
"Username...": {
"Username...": "ユーザー名..."
},
"Users": {
"Users": "ユーザー"
},
@@ -8765,6 +8867,9 @@
"attached": {
"attached": "接続済み"
},
"below AA": {
"below AA": ""
},
"brandon": {
"brandon": "brandon"
},
+153 -48
View File
@@ -335,6 +335,9 @@
"About": {
"About": "정보"
},
"Acceleration Profile": {
"Acceleration Profile": ""
},
"Accent Color": {
"Accent Color": "강조 색상"
},
@@ -410,6 +413,9 @@
"Adapters": {
"Adapters": "어댑터"
},
"Adaptive": {
"Adaptive": ""
},
"Adaptive Media Width": {
"Adaptive Media Width": "적응형 미디어 너비"
},
@@ -485,12 +491,21 @@
"Add to Autostart": {
"Add to Autostart": "자동 시작에 추가"
},
"Adjust pointer sensitivity speed": {
"Adjust pointer sensitivity speed": ""
},
"Adjust scrolling sensitivity multiplier": {
"Adjust scrolling sensitivity multiplier": ""
},
"Adjust the bar height via inner padding": {
"Adjust the bar height via inner padding": "내부 패딩을 통해 표시줄 높이 조정"
},
"Adjust the number of columns in grid view mode.": {
"Adjust the number of columns in grid view mode.": "그리드 뷰 모드에서 열 수를 조정합니다."
},
"Adjust touchpad pointer speed": {
"Adjust touchpad pointer speed": ""
},
"Adjust volume per scroll indent": {
"Adjust volume per scroll indent": "스크롤 단계별 볼륨 조정"
},
@@ -575,6 +590,9 @@
"Always show when there's only one connected display": {
"Always show when there's only one connected display": "연결된 디스플레이가 하나만 있을 때 항상 표시"
},
"Always use the durations above, even if an app requests a shorter or longer one": {
"Always use the durations above, even if an app requests a shorter or longer one": ""
},
"Always use this app for %1": {
"Always use this app for %1": "%1에 항상 이 앱 사용"
},
@@ -782,9 +800,6 @@
"Authenticated!": {
"Authenticated!": ""
},
"Authenticating...": {
"Authenticating...": "인증 중..."
},
"Authentication": {
"Authentication": "인증"
},
@@ -803,18 +818,6 @@
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": {
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": "인증 변경 사항에는 sudo가 필요합니다. 비밀번호나 지문을 사용할 수 있도록 터미널을 엽니다."
},
"Authentication error - try again": {
"Authentication error - try again": "인증 오류 - 다시 시도"
},
"Authentication failed - attempt %1 of %2": {
"Authentication failed - attempt %1 of %2": ""
},
"Authentication failed - lockout can occur": {
"Authentication failed - lockout can occur": ""
},
"Authentication failed - try again": {
"Authentication failed - try again": ""
},
"Authorize": {
"Authorize": "권한 부여"
},
@@ -878,9 +881,6 @@
"Auto-hide Dock": {
"Auto-hide Dock": "독 자동 숨기기"
},
"Auto-login": {
"Auto-login": "자동 로그인"
},
"Auto-login change needs a sync": {
"Auto-login change needs a sync": "자동 로그인 변경 시 동기화가 필요합니다"
},
@@ -980,24 +980,12 @@
"Available in Detailed and Forecast view modes": {
"Available in Detailed and Forecast view modes": "상세 및 일기예보 보기 모드에서 사용 가능"
},
"Awaiting fingerprint authentication": {
"Awaiting fingerprint authentication": ""
},
"Awaiting fingerprint or security key authentication": {
"Awaiting fingerprint or security key authentication": ""
},
"Awaiting security key authentication": {
"Awaiting security key authentication": ""
},
"BSSID": {
"BSSID": "BSSID"
},
"Back": {
"Back": "뒤로"
},
"Back to user list": {
"Back to user list": "사용자 목록으로 돌아가기"
},
"Backend": {
"Backend": "백엔드"
},
@@ -1454,6 +1442,9 @@
"Choose wallpaper folder": {
"Choose wallpaper folder": "배경화면 폴더 선택"
},
"Choose when to generate scrolling events": {
"Choose when to generate scrolling events": ""
},
"Choose where notification popups appear on screen": {
"Choose where notification popups appear on screen": "화면에서 알림 팝업이 나타날 위치를 선택하세요"
},
@@ -1688,6 +1679,9 @@
"Compositor Settings": {
"Compositor Settings": "컴포지터 설정"
},
"Compositor actions (focus, move, etc.)": {
"Compositor actions (focus, move, etc.)": ""
},
"Config Format": {
"Config Format": "구성 형식"
},
@@ -1805,6 +1799,9 @@
"Contrast": {
"Contrast": "대비"
},
"Contrast by variant": {
"Contrast by variant": ""
},
"Contributor": {
"Contributor": "기여자"
},
@@ -2390,6 +2387,15 @@
"Disable Output": {
"Disable Output": "출력 비활성화"
},
"Disable While Typing": {
"Disable While Typing": ""
},
"Disable on External Mouse": {
"Disable on External Mouse": ""
},
"Disable touchpad when an external mouse is connected": {
"Disable touchpad when an external mouse is connected": ""
},
"Disabled": {
"Disabled": "비활성화됨"
},
@@ -2549,6 +2555,9 @@
"Door Open": {
"Door Open": "문 열림"
},
"Drag Lock": {
"Drag Lock": ""
},
"Drag a widget by its handle here to reorder it or drop it into another group": {
"Drag a widget by its handle here to reorder it or drop it into another group": "위젯의 핸들을 잡고 드래그하여 순서를 변경하거나 다른 그룹에 놓으세요"
},
@@ -2621,6 +2630,9 @@
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": {
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": "다이내믹: 오버슛이 있는 스프링 베지에 — 항목이 대상 위치를 짧게 넘어갔다가 안착합니다. 생동감 넘치고 표현력이 풍부합니다."
},
"Edge": {
"Edge": ""
},
"Edge Hover Reveal": {
"Edge Hover Reveal": "가장자리 호버 시 드러내기"
},
@@ -2669,6 +2681,9 @@
"Empty Trash (%1)": {
"Empty Trash (%1)": "휴지통 비우기 (%1)"
},
"Emulate middle click by pressing left and right buttons": {
"Emulate middle click by pressing left and right buttons": ""
},
"Enable 10-bit color depth for wider color gamut and HDR support": {
"Enable 10-bit color depth for wider color gamut and HDR support": "더 넓은 색 영역과 HDR 지원을 위해 10비트 색 심도 활성화"
},
@@ -2795,6 +2810,9 @@
"Enter password for ": {
"Enter password for ": "비밀번호 입력:"
},
"Enter text to encode": {
"Enter text to encode": ""
},
"Enter this passkey on ": {
"Enter this passkey on ": "이 패스키를 입력할 곳:"
},
@@ -2993,6 +3011,9 @@
"Failed to fetch network QR code: %1": {
"Failed to fetch network QR code: %1": "네트워크 QR 코드 가져오기 실패: %1"
},
"Failed to generate QR code: %1": {
"Failed to generate QR code: %1": ""
},
"Failed to generate systemd override": {
"Failed to generate systemd override": "systemd 덮어쓰기 생성 실패"
},
@@ -3263,6 +3284,12 @@
"Flags": {
"Flags": "플래그"
},
"Flat": {
"Flat": ""
},
"Flat uses constant speed; Adaptive scales with movement speed": {
"Flat uses constant speed; Adaptive scales with movement speed": ""
},
"Flatpak": {
"Flatpak": ""
},
@@ -3962,6 +3989,9 @@
"If the field is hidden, it will appear as soon as a key is pressed.": {
"If the field is hidden, it will appear as soon as a key is pressed.": "필드가 숨겨져 있어도 키를 누르는 즉시 나타납니다."
},
"Ignore App-Requested Timeout": {
"Ignore App-Requested Timeout": ""
},
"Ignore Completely": {
"Ignore Completely": "완전히 무시"
},
@@ -4199,6 +4229,9 @@
"Keep My Edits": {
"Keep My Edits": "내 편집 내용 유지"
},
"Keep dragging when finger is briefly lifted": {
"Keep dragging when finger is briefly lifted": ""
},
"Keep in Bar": {
"Keep in Bar": "바에 유지"
},
@@ -4334,6 +4367,9 @@
"Left Section": {
"Left Section": "왼쪽 구역"
},
"Left-Handed Mode": {
"Left-Handed Mode": ""
},
"Light": {
"Light": "얇게"
},
@@ -4439,9 +4475,6 @@
"Locked": {
"Locked": "잠김"
},
"Logging in...": {
"Logging in...": "로그인 중..."
},
"Login": {
"Login": "로그인"
},
@@ -4748,6 +4781,9 @@
"Microphone volume control": {
"Microphone volume control": "마이크 볼륨 제어"
},
"Middle Click Emulation": {
"Middle Click Emulation": ""
},
"Middle Section": {
"Middle Section": "가운데 구역"
},
@@ -4823,6 +4859,12 @@
"Mount Points": {
"Mount Points": "마운트 지점"
},
"Mouse & Touchpad": {
"Mouse & Touchpad": ""
},
"Mouse Settings": {
"Mouse Settings": ""
},
"Mouse clicks pass through the bar to windows behind it": {
"Mouse clicks pass through the bar to windows behind it": "마우스 클릭이 바를 통과하여 뒤에 있는 창으로 전달됨"
},
@@ -4886,6 +4928,9 @@
"Native: platform renderer (FreeType).": {
"Native: platform renderer (FreeType).": "네이티브: 플랫폼 렌더러(FreeType)."
},
"Natural Scrolling": {
"Natural Scrolling": ""
},
"Natural Touchpad Scrolling": {
"Natural Touchpad Scrolling": "터치패드 자연스러운 스크롤"
},
@@ -5033,6 +5078,9 @@
"No Rounding": {
"No Rounding": "둥글게 처리 없음"
},
"No Scroll": {
"No Scroll": ""
},
"No Shadow": {
"No Shadow": "그림자 없음"
},
@@ -5336,9 +5384,6 @@
"Not detected": {
"Not detected": "감지되지 않음"
},
"Not listed?": {
"Not listed?": "목록에 없습니까?"
},
"Not paired": {
"Not paired": "페어링되지 않음"
},
@@ -5432,6 +5477,9 @@
"On": {
"On": "켜짐"
},
"On Button Down": {
"On Button Down": ""
},
"On indefinitely": {
"On indefinitely": "무기한 켜짐"
},
@@ -5450,6 +5498,9 @@
"Only adjust gamma based on time or location rules.": {
"Only adjust gamma based on time or location rules.": "시간 또는 위치 규칙에 따라서만 감마를 조정합니다."
},
"Only continue if you recognize this server certificate fingerprint.": {
"Only continue if you recognize this server certificate fingerprint.": ""
},
"Only on Battery": {
"Only on Battery": "배터리 사용 시만"
},
@@ -5687,6 +5738,9 @@
"Pairing...": {
"Pairing...": "페어링 중..."
},
"Partial": {
"Partial": ""
},
"Partly Cloudy": {
"Partly Cloudy": "대체로 흐림"
},
@@ -5708,9 +5762,6 @@
"Password updated": {
"Password updated": "비밀번호 업데이트됨"
},
"Password...": {
"Password...": "비밀번호..."
},
"Passwords do not match.": {
"Passwords do not match.": "비밀번호가 일치하지 않습니다."
},
@@ -5894,6 +5945,9 @@
"Pointer": {
"Pointer": "포인터"
},
"Pointer Speed": {
"Pointer Speed": ""
},
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": {
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": "Polkit 통합이 비활성화되었습니다. 사용자 관리를 위해서는 권한을 높이려면 Polkit이 필요합니다."
},
@@ -6014,6 +6068,9 @@
"Pressure": {
"Pressure": "기압"
},
"Prevent accidental cursor jumps while typing": {
"Prevent accidental cursor jumps while typing": ""
},
"Prevent screen timeout": {
"Prevent screen timeout": "화면 시간 초과 방지"
},
@@ -6131,6 +6188,9 @@
"Protocol": {
"Protocol": "프로토콜"
},
"QR Generator": {
"QR Generator": ""
},
"Qt": {
"Qt": "Qt"
},
@@ -6383,6 +6443,9 @@
"Requires remembering the last user and session. Enable those options first.": {
"Requires remembering the last user and session. Enable those options first.": "마지막 사용자 및 세션을 기억해야 합니다. 먼저 해당 옵션을 활성화하세요."
},
"Requires the DMS Theme extension from the editor marketplace": {
"Requires the DMS Theme extension from the editor marketplace": ""
},
"Reset": {
"Reset": "재설정"
},
@@ -6437,6 +6500,12 @@
"Reverse Scrolling Direction": {
"Reverse Scrolling Direction": "스크롤 방향 반전"
},
"Reverse mouse wheel scrolling direction": {
"Reverse mouse wheel scrolling direction": ""
},
"Reverse two-finger scrolling direction": {
"Reverse two-finger scrolling direction": ""
},
"Reverse workspace switch direction when scrolling over the bar": {
"Reverse workspace switch direction when scrolling over the bar": "바 위에서 스크롤할 때 작업 공간 전환 방향 반전"
},
@@ -6644,6 +6713,9 @@
"Scroll GitHub": {
"Scroll GitHub": "GitHub 스크롤"
},
"Scroll Method": {
"Scroll Method": ""
},
"Scroll Wheel": {
"Scroll Wheel": "스크롤 휠"
},
@@ -6659,6 +6731,9 @@
"Scrolling": {
"Scrolling": "스크롤"
},
"Scrolling Speed": {
"Scrolling Speed": ""
},
"Search App Actions": {
"Search App Actions": "앱 작업 검색"
},
@@ -6821,9 +6896,6 @@
"Select the palette algorithm used for wallpaper-based colors": {
"Select the palette algorithm used for wallpaper-based colors": "배경화면 기반 색상에 사용할 팔레트 알고리즘 선택"
},
"Select user...": {
"Select user...": "사용자 선택..."
},
"Select which keybind providers to include": {
"Select which keybind providers to include": "포함할 단축키 제공자 선택"
},
@@ -6992,6 +7064,9 @@
"Show": {
"Show": "표시"
},
"Show \"config reloaded\" Toast": {
"Show \"config reloaded\" Toast": ""
},
"Show 3rd Party": {
"Show 3rd Party": "타사 표시"
},
@@ -7187,6 +7262,9 @@
"Show a notification when battery reaches the charge limit.": {
"Show a notification when battery reaches the charge limit.": "배터리가 충전 한도에 도달하면 알림을 표시합니다."
},
"Show a toast when the compositor config is reloaded": {
"Show a toast when the compositor config is reloaded": ""
},
"Show a warning popup when battery is running low.": {
"Show a warning popup when battery is running low.": "배터리가 부족할 때 경고 팝업을 표시합니다."
},
@@ -7529,6 +7607,9 @@
"Suspend then Hibernate": {
"Suspend then Hibernate": "절전 후 최대 절전 모드"
},
"Swap primary and secondary mouse buttons": {
"Swap primary and secondary mouse buttons": ""
},
"Sway Website": {
"Sway Website": "Sway 웹사이트"
},
@@ -7652,6 +7733,18 @@
"Tailscale not available": {
"Tailscale not available": "Tailscale을 사용할 수 없음"
},
"Tap and Drag": {
"Tap and Drag": ""
},
"Tap and drag on the touchpad to move items": {
"Tap and drag on the touchpad to move items": ""
},
"Tap the touchpad surface to trigger left click clicks": {
"Tap the touchpad surface to trigger left click clicks": ""
},
"Tap to Click": {
"Tap to Click": ""
},
"Terminal": {
"Terminal": "터미널"
},
@@ -7727,6 +7820,9 @@
"The rule applies to any window matching one of these.": {
"The rule applies to any window matching one of these.": "규칙은 이 중 하나와 일치하는 모든 창에 적용됩니다."
},
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": {
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": ""
},
"Theme & Colors": {
"Theme & Colors": "테마 및 색상"
},
@@ -7919,9 +8015,6 @@
"Too many attempts - locked out": {
"Too many attempts - locked out": "시도 횟수 너무 많음 - 잠김"
},
"Too many failed attempts - account may be locked": {
"Too many failed attempts - account may be locked": "실패한 시도 횟수 너무 많음 - 계정이 잠길 수 있음"
},
"Tools": {
"Tools": "도구"
},
@@ -7958,6 +8051,12 @@
"Touch your security key...": {
"Touch your security key...": "보안 키를 터치하세요..."
},
"Touchpad Settings": {
"Touchpad Settings": ""
},
"Touchpad Speed": {
"Touchpad Speed": ""
},
"Transform": {
"Transform": "변환"
},
@@ -8018,6 +8117,9 @@
"Turn off now": {
"Turn off now": "지금 끄기"
},
"Two Finger": {
"Two Finger": ""
},
"Type at least 2 characters": {
"Type at least 2 characters": "2자 이상 입력"
},
@@ -8159,6 +8261,9 @@
"Untrust": {
"Untrust": "신뢰 해제"
},
"Untrusted VPN certificate": {
"Untrusted VPN certificate": ""
},
"Up to date": {
"Up to date": "최신 상태"
},
@@ -8342,9 +8447,6 @@
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": {
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": "사용자 이름은 소문자나 밑줄로 시작해야 하며 소문자, 숫자, 하이픈 또는 밑줄만 포함해야 합니다."
},
"Username...": {
"Username...": "사용자 이름..."
},
"Users": {
"Users": "사용자"
},
@@ -8765,6 +8867,9 @@
"attached": {
"attached": "연결됨"
},
"below AA": {
"below AA": ""
},
"brandon": {
"brandon": "brandon"
},
+153 -48
View File
@@ -335,6 +335,9 @@
"About": {
"About": "Over"
},
"Acceleration Profile": {
"Acceleration Profile": ""
},
"Accent Color": {
"Accent Color": "Accentkleur"
},
@@ -410,6 +413,9 @@
"Adapters": {
"Adapters": "Adapters"
},
"Adaptive": {
"Adaptive": ""
},
"Adaptive Media Width": {
"Adaptive Media Width": "Adaptieve mediabreedte"
},
@@ -485,12 +491,21 @@
"Add to Autostart": {
"Add to Autostart": "Toevoegen aan automatisch opstarten"
},
"Adjust pointer sensitivity speed": {
"Adjust pointer sensitivity speed": ""
},
"Adjust scrolling sensitivity multiplier": {
"Adjust scrolling sensitivity multiplier": ""
},
"Adjust the bar height via inner padding": {
"Adjust the bar height via inner padding": "De balkhoogte aanpassen via binnenmarge (padding)"
},
"Adjust the number of columns in grid view mode.": {
"Adjust the number of columns in grid view mode.": "Pas het aantal kolommen in rasterweergave aan."
},
"Adjust touchpad pointer speed": {
"Adjust touchpad pointer speed": ""
},
"Adjust volume per scroll indent": {
"Adjust volume per scroll indent": "Volume per scrollstap aanpassen"
},
@@ -575,6 +590,9 @@
"Always show when there's only one connected display": {
"Always show when there's only one connected display": "Altijd tonen wanneer er slechts één beeldscherm is aangesloten"
},
"Always use the durations above, even if an app requests a shorter or longer one": {
"Always use the durations above, even if an app requests a shorter or longer one": ""
},
"Always use this app for %1": {
"Always use this app for %1": "Gebruik deze app altijd voor %1"
},
@@ -782,9 +800,6 @@
"Authenticated!": {
"Authenticated!": "Geauthenticeerd!"
},
"Authenticating...": {
"Authenticating...": "Controleren..."
},
"Authentication": {
"Authentication": "Authenticatie"
},
@@ -803,18 +818,6 @@
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": {
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": "Verificatiewijzigingen vereisen sudo. Terminal wordt geopend zodat u een wachtwoord of vingerafdruk kunt gebruiken."
},
"Authentication error - try again": {
"Authentication error - try again": "Authenticatiefout - probeer het opnieuw"
},
"Authentication failed - attempt %1 of %2": {
"Authentication failed - attempt %1 of %2": "Authenticatie mislukt - poging %1 van %2"
},
"Authentication failed - lockout can occur": {
"Authentication failed - lockout can occur": "Authenticatie mislukt - uitsluiting kan optreden"
},
"Authentication failed - try again": {
"Authentication failed - try again": "Authenticatie mislukt - probeer het opnieuw"
},
"Authorize": {
"Authorize": "Autoriseren"
},
@@ -878,9 +881,6 @@
"Auto-hide Dock": {
"Auto-hide Dock": "Dock automatisch verbergen"
},
"Auto-login": {
"Auto-login": "Automatisch inloggen"
},
"Auto-login change needs a sync": {
"Auto-login change needs a sync": "Wijziging aan automatisch inloggen vereist synchronisatie"
},
@@ -980,24 +980,12 @@
"Available in Detailed and Forecast view modes": {
"Available in Detailed and Forecast view modes": "Beschikbaar in weergavemodi Gedetailleerd en Voorspelling"
},
"Awaiting fingerprint authentication": {
"Awaiting fingerprint authentication": "Wachten op vingerafdrukauthenticatie"
},
"Awaiting fingerprint or security key authentication": {
"Awaiting fingerprint or security key authentication": "Wachten op vingerafdruk- of beveiligingssleutelauthenticatie"
},
"Awaiting security key authentication": {
"Awaiting security key authentication": "Wachten op beveiligingssleutelauthenticatie"
},
"BSSID": {
"BSSID": "BSSID"
},
"Back": {
"Back": "Terug"
},
"Back to user list": {
"Back to user list": "Terug naar gebruikerslijst"
},
"Backend": {
"Backend": "Backend"
},
@@ -1454,6 +1442,9 @@
"Choose wallpaper folder": {
"Choose wallpaper folder": "Achtergrondmap kiezen"
},
"Choose when to generate scrolling events": {
"Choose when to generate scrolling events": ""
},
"Choose where notification popups appear on screen": {
"Choose where notification popups appear on screen": "Kies waar meldingen op het scherm verschijnen"
},
@@ -1688,6 +1679,9 @@
"Compositor Settings": {
"Compositor Settings": "Compositor-instellingen"
},
"Compositor actions (focus, move, etc.)": {
"Compositor actions (focus, move, etc.)": ""
},
"Config Format": {
"Config Format": "Config-formaat"
},
@@ -1805,6 +1799,9 @@
"Contrast": {
"Contrast": "Contrast"
},
"Contrast by variant": {
"Contrast by variant": ""
},
"Contributor": {
"Contributor": "Bijdrager"
},
@@ -2390,6 +2387,15 @@
"Disable Output": {
"Disable Output": "Uitvoer uitschakelen"
},
"Disable While Typing": {
"Disable While Typing": ""
},
"Disable on External Mouse": {
"Disable on External Mouse": ""
},
"Disable touchpad when an external mouse is connected": {
"Disable touchpad when an external mouse is connected": ""
},
"Disabled": {
"Disabled": "Uitgeschakeld"
},
@@ -2549,6 +2555,9 @@
"Door Open": {
"Door Open": "Deur open"
},
"Drag Lock": {
"Drag Lock": ""
},
"Drag a widget by its handle here to reorder it or drop it into another group": {
"Drag a widget by its handle here to reorder it or drop it into another group": "Sleep een widget aan de handgreep hiernaartoe om de volgorde te wijzigen of zet hem in een andere groep"
},
@@ -2621,6 +2630,9 @@
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": {
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": "Dynamisch: Verende bézier met doorschieten — de binnenkomst gaat kort voorbij het doel en komt dan tot rust. Expressief en levendig."
},
"Edge": {
"Edge": ""
},
"Edge Hover Reveal": {
"Edge Hover Reveal": "Weergeven bij rand-hover"
},
@@ -2669,6 +2681,9 @@
"Empty Trash (%1)": {
"Empty Trash (%1)": "Prullenbak legen (%1)"
},
"Emulate middle click by pressing left and right buttons": {
"Emulate middle click by pressing left and right buttons": ""
},
"Enable 10-bit color depth for wider color gamut and HDR support": {
"Enable 10-bit color depth for wider color gamut and HDR support": "Schakel 10-bits kleurdiepte in voor een breder kleurengamma en HDR-ondersteuning"
},
@@ -2795,6 +2810,9 @@
"Enter password for ": {
"Enter password for ": "Voer wachtwoord in voor "
},
"Enter text to encode": {
"Enter text to encode": ""
},
"Enter this passkey on ": {
"Enter this passkey on ": "Voer deze toegangscode in op "
},
@@ -2993,6 +3011,9 @@
"Failed to fetch network QR code: %1": {
"Failed to fetch network QR code: %1": "Ophalen van netwerk-QR-code mislukt: %1"
},
"Failed to generate QR code: %1": {
"Failed to generate QR code: %1": ""
},
"Failed to generate systemd override": {
"Failed to generate systemd override": "Genereren van systemd-override mislukt"
},
@@ -3263,6 +3284,12 @@
"Flags": {
"Flags": "Vlaggen"
},
"Flat": {
"Flat": ""
},
"Flat uses constant speed; Adaptive scales with movement speed": {
"Flat uses constant speed; Adaptive scales with movement speed": ""
},
"Flatpak": {
"Flatpak": "Flatpak"
},
@@ -3962,6 +3989,9 @@
"If the field is hidden, it will appear as soon as a key is pressed.": {
"If the field is hidden, it will appear as soon as a key is pressed.": "Als het veld verborgen is, verschijnt het zodra een toets wordt ingedrukt."
},
"Ignore App-Requested Timeout": {
"Ignore App-Requested Timeout": ""
},
"Ignore Completely": {
"Ignore Completely": "Volledig negeren"
},
@@ -4199,6 +4229,9 @@
"Keep My Edits": {
"Keep My Edits": "Mijn bewerkingen behouden"
},
"Keep dragging when finger is briefly lifted": {
"Keep dragging when finger is briefly lifted": ""
},
"Keep in Bar": {
"Keep in Bar": "In de balk houden"
},
@@ -4334,6 +4367,9 @@
"Left Section": {
"Left Section": "Linkersectie"
},
"Left-Handed Mode": {
"Left-Handed Mode": ""
},
"Light": {
"Light": "Licht"
},
@@ -4439,9 +4475,6 @@
"Locked": {
"Locked": "Vergrendeld"
},
"Logging in...": {
"Logging in...": "Inloggen..."
},
"Login": {
"Login": "Inloggen"
},
@@ -4748,6 +4781,9 @@
"Microphone volume control": {
"Microphone volume control": "Microfoonvolumeregeling"
},
"Middle Click Emulation": {
"Middle Click Emulation": ""
},
"Middle Section": {
"Middle Section": "Middensectie"
},
@@ -4823,6 +4859,12 @@
"Mount Points": {
"Mount Points": "Aankoppelpunten"
},
"Mouse & Touchpad": {
"Mouse & Touchpad": ""
},
"Mouse Settings": {
"Mouse Settings": ""
},
"Mouse clicks pass through the bar to windows behind it": {
"Mouse clicks pass through the bar to windows behind it": "Muisklikken gaan door de balk heen naar vensters erachter"
},
@@ -4886,6 +4928,9 @@
"Native: platform renderer (FreeType).": {
"Native: platform renderer (FreeType).": "Native: platform-renderer (FreeType)."
},
"Natural Scrolling": {
"Natural Scrolling": ""
},
"Natural Touchpad Scrolling": {
"Natural Touchpad Scrolling": "Natuurlijk scrollen via touchpad"
},
@@ -5033,6 +5078,9 @@
"No Rounding": {
"No Rounding": "Geen afronding"
},
"No Scroll": {
"No Scroll": ""
},
"No Shadow": {
"No Shadow": "Geen schaduw"
},
@@ -5336,9 +5384,6 @@
"Not detected": {
"Not detected": "Niet gedetecteerd"
},
"Not listed?": {
"Not listed?": "Niet in de lijst?"
},
"Not paired": {
"Not paired": "Niet gekoppeld"
},
@@ -5432,6 +5477,9 @@
"On": {
"On": "Aan"
},
"On Button Down": {
"On Button Down": ""
},
"On indefinitely": {
"On indefinitely": "Voor onbepaalde tijd ingeschakeld"
},
@@ -5450,6 +5498,9 @@
"Only adjust gamma based on time or location rules.": {
"Only adjust gamma based on time or location rules.": "Gamma alleen aanpassen op basis van tijd- of locatieregels."
},
"Only continue if you recognize this server certificate fingerprint.": {
"Only continue if you recognize this server certificate fingerprint.": ""
},
"Only on Battery": {
"Only on Battery": "Alleen op accustroom"
},
@@ -5687,6 +5738,9 @@
"Pairing...": {
"Pairing...": "Koppelen..."
},
"Partial": {
"Partial": ""
},
"Partly Cloudy": {
"Partly Cloudy": "Half bewolkt"
},
@@ -5708,9 +5762,6 @@
"Password updated": {
"Password updated": "Wachtwoord bijgewerkt"
},
"Password...": {
"Password...": "Wachtwoord..."
},
"Passwords do not match.": {
"Passwords do not match.": "Wachtwoorden komen niet overeen."
},
@@ -5894,6 +5945,9 @@
"Pointer": {
"Pointer": "Aanwijzer"
},
"Pointer Speed": {
"Pointer Speed": ""
},
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": {
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": "Polkit-integratie is uitgeschakeld. Gebruikersbeheer vereist Polkit voor het verhogen van bevoegdheden."
},
@@ -6014,6 +6068,9 @@
"Pressure": {
"Pressure": "Luchtdruk"
},
"Prevent accidental cursor jumps while typing": {
"Prevent accidental cursor jumps while typing": ""
},
"Prevent screen timeout": {
"Prevent screen timeout": "Scherm-time-out voorkomen"
},
@@ -6131,6 +6188,9 @@
"Protocol": {
"Protocol": "Protocol"
},
"QR Generator": {
"QR Generator": ""
},
"Qt": {
"Qt": "Qt"
},
@@ -6383,6 +6443,9 @@
"Requires remembering the last user and session. Enable those options first.": {
"Requires remembering the last user and session. Enable those options first.": "Vereist het onthouden van de laatste gebruiker en sessie. Schakel die opties eerst in."
},
"Requires the DMS Theme extension from the editor marketplace": {
"Requires the DMS Theme extension from the editor marketplace": ""
},
"Reset": {
"Reset": "Herstellen"
},
@@ -6437,6 +6500,12 @@
"Reverse Scrolling Direction": {
"Reverse Scrolling Direction": "Scrollrichting omkeren"
},
"Reverse mouse wheel scrolling direction": {
"Reverse mouse wheel scrolling direction": ""
},
"Reverse two-finger scrolling direction": {
"Reverse two-finger scrolling direction": ""
},
"Reverse workspace switch direction when scrolling over the bar": {
"Reverse workspace switch direction when scrolling over the bar": "Werkbladwisselrichting omkeren bij scrollen over de balk"
},
@@ -6644,6 +6713,9 @@
"Scroll GitHub": {
"Scroll GitHub": "Scroll GitHub"
},
"Scroll Method": {
"Scroll Method": ""
},
"Scroll Wheel": {
"Scroll Wheel": "Scrollwiel"
},
@@ -6659,6 +6731,9 @@
"Scrolling": {
"Scrolling": "Scrollen"
},
"Scrolling Speed": {
"Scrolling Speed": ""
},
"Search App Actions": {
"Search App Actions": "App-acties zoeken"
},
@@ -6821,9 +6896,6 @@
"Select the palette algorithm used for wallpaper-based colors": {
"Select the palette algorithm used for wallpaper-based colors": "Selecteer het paletalgoritme voor op achtergrond gebaseerde kleuren"
},
"Select user...": {
"Select user...": "Gebruiker selecteren..."
},
"Select which keybind providers to include": {
"Select which keybind providers to include": "Selecteer welke sneltoetsproviders moeten worden opgenomen"
},
@@ -6992,6 +7064,9 @@
"Show": {
"Show": "Tonen"
},
"Show \"config reloaded\" Toast": {
"Show \"config reloaded\" Toast": ""
},
"Show 3rd Party": {
"Show 3rd Party": "Derde partijen tonen"
},
@@ -7187,6 +7262,9 @@
"Show a notification when battery reaches the charge limit.": {
"Show a notification when battery reaches the charge limit.": "Toon een melding wanneer de accu de laadlimiet bereikt."
},
"Show a toast when the compositor config is reloaded": {
"Show a toast when the compositor config is reloaded": ""
},
"Show a warning popup when battery is running low.": {
"Show a warning popup when battery is running low.": "Toon een waarschuwingspop-up als de accu bijna leeg is."
},
@@ -7529,6 +7607,9 @@
"Suspend then Hibernate": {
"Suspend then Hibernate": "Onderbreken dan Sluimerstand"
},
"Swap primary and secondary mouse buttons": {
"Swap primary and secondary mouse buttons": ""
},
"Sway Website": {
"Sway Website": "Sway-website"
},
@@ -7652,6 +7733,18 @@
"Tailscale not available": {
"Tailscale not available": "Tailscale niet beschikbaar"
},
"Tap and Drag": {
"Tap and Drag": ""
},
"Tap and drag on the touchpad to move items": {
"Tap and drag on the touchpad to move items": ""
},
"Tap the touchpad surface to trigger left click clicks": {
"Tap the touchpad surface to trigger left click clicks": ""
},
"Tap to Click": {
"Tap to Click": ""
},
"Terminal": {
"Terminal": "Terminal"
},
@@ -7727,6 +7820,9 @@
"The rule applies to any window matching one of these.": {
"The rule applies to any window matching one of these.": "De regel is van toepassing op elk venster dat overeenkomt met een van deze."
},
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": {
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": ""
},
"Theme & Colors": {
"Theme & Colors": "Thema & Kleuren"
},
@@ -7919,9 +8015,6 @@
"Too many attempts - locked out": {
"Too many attempts - locked out": "Te veel pogingen - toegang geblokkeerd"
},
"Too many failed attempts - account may be locked": {
"Too many failed attempts - account may be locked": "Te veel mislukte pogingen - account is mogelijk geblokkeerd"
},
"Tools": {
"Tools": "Hulpmiddelen"
},
@@ -7958,6 +8051,12 @@
"Touch your security key...": {
"Touch your security key...": "Raak uw beveiligingssleutel aan..."
},
"Touchpad Settings": {
"Touchpad Settings": ""
},
"Touchpad Speed": {
"Touchpad Speed": ""
},
"Transform": {
"Transform": "Transformatie"
},
@@ -8018,6 +8117,9 @@
"Turn off now": {
"Turn off now": "Nu uitschakelen"
},
"Two Finger": {
"Two Finger": ""
},
"Type at least 2 characters": {
"Type at least 2 characters": "Typ minstens 2 tekens"
},
@@ -8159,6 +8261,9 @@
"Untrust": {
"Untrust": "Niet vertrouwen"
},
"Untrusted VPN certificate": {
"Untrusted VPN certificate": ""
},
"Up to date": {
"Up to date": "Bijgewerkt"
},
@@ -8342,9 +8447,6 @@
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": {
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": "Gebruikersnaam moet beginnen met een kleine letter of underscore en mag alleen kleine letters, cijfers, koppeltekens of underscores bevatten."
},
"Username...": {
"Username...": "Gebruikersnaam..."
},
"Users": {
"Users": "Gebruikers"
},
@@ -8765,6 +8867,9 @@
"attached": {
"attached": "gekoppeld"
},
"below AA": {
"below AA": ""
},
"brandon": {
"brandon": "brandon"
},
+153 -48
View File
@@ -335,6 +335,9 @@
"About": {
"About": "O programie"
},
"Acceleration Profile": {
"Acceleration Profile": ""
},
"Accent Color": {
"Accent Color": "Kolor akcentu"
},
@@ -410,6 +413,9 @@
"Adapters": {
"Adapters": "Adaptery"
},
"Adaptive": {
"Adaptive": ""
},
"Adaptive Media Width": {
"Adaptive Media Width": ""
},
@@ -485,12 +491,21 @@
"Add to Autostart": {
"Add to Autostart": ""
},
"Adjust pointer sensitivity speed": {
"Adjust pointer sensitivity speed": ""
},
"Adjust scrolling sensitivity multiplier": {
"Adjust scrolling sensitivity multiplier": ""
},
"Adjust the bar height via inner padding": {
"Adjust the bar height via inner padding": ""
},
"Adjust the number of columns in grid view mode.": {
"Adjust the number of columns in grid view mode.": "Dostosuj liczbę kolumn w widoku siatki."
},
"Adjust touchpad pointer speed": {
"Adjust touchpad pointer speed": ""
},
"Adjust volume per scroll indent": {
"Adjust volume per scroll indent": ""
},
@@ -575,6 +590,9 @@
"Always show when there's only one connected display": {
"Always show when there's only one connected display": "Zawsze pokazuj gdy podłączony jest tylko jeden wyświetlacz"
},
"Always use the durations above, even if an app requests a shorter or longer one": {
"Always use the durations above, even if an app requests a shorter or longer one": ""
},
"Always use this app for %1": {
"Always use this app for %1": ""
},
@@ -782,9 +800,6 @@
"Authenticated!": {
"Authenticated!": ""
},
"Authenticating...": {
"Authenticating...": ""
},
"Authentication": {
"Authentication": "Uwierzytelnianie"
},
@@ -803,18 +818,6 @@
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": {
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": ""
},
"Authentication error - try again": {
"Authentication error - try again": ""
},
"Authentication failed - attempt %1 of %2": {
"Authentication failed - attempt %1 of %2": ""
},
"Authentication failed - lockout can occur": {
"Authentication failed - lockout can occur": ""
},
"Authentication failed - try again": {
"Authentication failed - try again": ""
},
"Authorize": {
"Authorize": "Autoryzuj"
},
@@ -878,9 +881,6 @@
"Auto-hide Dock": {
"Auto-hide Dock": "Automatyczne ukrywanie doku"
},
"Auto-login": {
"Auto-login": ""
},
"Auto-login change needs a sync": {
"Auto-login change needs a sync": ""
},
@@ -980,24 +980,12 @@
"Available in Detailed and Forecast view modes": {
"Available in Detailed and Forecast view modes": ""
},
"Awaiting fingerprint authentication": {
"Awaiting fingerprint authentication": ""
},
"Awaiting fingerprint or security key authentication": {
"Awaiting fingerprint or security key authentication": ""
},
"Awaiting security key authentication": {
"Awaiting security key authentication": ""
},
"BSSID": {
"BSSID": "BSSID"
},
"Back": {
"Back": "Wstecz"
},
"Back to user list": {
"Back to user list": ""
},
"Backend": {
"Backend": "Backend"
},
@@ -1454,6 +1442,9 @@
"Choose wallpaper folder": {
"Choose wallpaper folder": ""
},
"Choose when to generate scrolling events": {
"Choose when to generate scrolling events": ""
},
"Choose where notification popups appear on screen": {
"Choose where notification popups appear on screen": "Wybierz, gdzie na ekranie mają pojawiać się powiadomienia"
},
@@ -1688,6 +1679,9 @@
"Compositor Settings": {
"Compositor Settings": "Ustawienia Kompozytora"
},
"Compositor actions (focus, move, etc.)": {
"Compositor actions (focus, move, etc.)": ""
},
"Config Format": {
"Config Format": "Format konfiguracji"
},
@@ -1805,6 +1799,9 @@
"Contrast": {
"Contrast": "Kontrast"
},
"Contrast by variant": {
"Contrast by variant": ""
},
"Contributor": {
"Contributor": ""
},
@@ -2390,6 +2387,15 @@
"Disable Output": {
"Disable Output": "Wyłącz wyjście"
},
"Disable While Typing": {
"Disable While Typing": ""
},
"Disable on External Mouse": {
"Disable on External Mouse": ""
},
"Disable touchpad when an external mouse is connected": {
"Disable touchpad when an external mouse is connected": ""
},
"Disabled": {
"Disabled": "Wyłączony"
},
@@ -2549,6 +2555,9 @@
"Door Open": {
"Door Open": "Drzwi otwarte"
},
"Drag Lock": {
"Drag Lock": ""
},
"Drag a widget by its handle here to reorder it or drop it into another group": {
"Drag a widget by its handle here to reorder it or drop it into another group": ""
},
@@ -2621,6 +2630,9 @@
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": {
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": ""
},
"Edge": {
"Edge": ""
},
"Edge Hover Reveal": {
"Edge Hover Reveal": ""
},
@@ -2669,6 +2681,9 @@
"Empty Trash (%1)": {
"Empty Trash (%1)": ""
},
"Emulate middle click by pressing left and right buttons": {
"Emulate middle click by pressing left and right buttons": ""
},
"Enable 10-bit color depth for wider color gamut and HDR support": {
"Enable 10-bit color depth for wider color gamut and HDR support": "Włącz 10 bitową głębię kolorów dla szerszej gamety kolorów i wsparcia HDR"
},
@@ -2795,6 +2810,9 @@
"Enter password for ": {
"Enter password for ": "Wprowadź hasło dla "
},
"Enter text to encode": {
"Enter text to encode": ""
},
"Enter this passkey on ": {
"Enter this passkey on ": "Wprowadź ten klucz dostępu "
},
@@ -2993,6 +3011,9 @@
"Failed to fetch network QR code: %1": {
"Failed to fetch network QR code: %1": ""
},
"Failed to generate QR code: %1": {
"Failed to generate QR code: %1": ""
},
"Failed to generate systemd override": {
"Failed to generate systemd override": ""
},
@@ -3263,6 +3284,12 @@
"Flags": {
"Flags": "Flagi"
},
"Flat": {
"Flat": ""
},
"Flat uses constant speed; Adaptive scales with movement speed": {
"Flat uses constant speed; Adaptive scales with movement speed": ""
},
"Flatpak": {
"Flatpak": ""
},
@@ -3962,6 +3989,9 @@
"If the field is hidden, it will appear as soon as a key is pressed.": {
"If the field is hidden, it will appear as soon as a key is pressed.": "Jeśli pole jest ukryte pokaże się gdy klawisz zostanie wciśnięty."
},
"Ignore App-Requested Timeout": {
"Ignore App-Requested Timeout": ""
},
"Ignore Completely": {
"Ignore Completely": ""
},
@@ -4199,6 +4229,9 @@
"Keep My Edits": {
"Keep My Edits": ""
},
"Keep dragging when finger is briefly lifted": {
"Keep dragging when finger is briefly lifted": ""
},
"Keep in Bar": {
"Keep in Bar": ""
},
@@ -4334,6 +4367,9 @@
"Left Section": {
"Left Section": "Sekcja lewa"
},
"Left-Handed Mode": {
"Left-Handed Mode": ""
},
"Light": {
"Light": ""
},
@@ -4439,9 +4475,6 @@
"Locked": {
"Locked": "Zablokowane"
},
"Logging in...": {
"Logging in...": ""
},
"Login": {
"Login": ""
},
@@ -4748,6 +4781,9 @@
"Microphone volume control": {
"Microphone volume control": "Kontrola głośności mikrofonu"
},
"Middle Click Emulation": {
"Middle Click Emulation": ""
},
"Middle Section": {
"Middle Section": "Sekcja środkowa"
},
@@ -4823,6 +4859,12 @@
"Mount Points": {
"Mount Points": "Punkty montowania"
},
"Mouse & Touchpad": {
"Mouse & Touchpad": ""
},
"Mouse Settings": {
"Mouse Settings": ""
},
"Mouse clicks pass through the bar to windows behind it": {
"Mouse clicks pass through the bar to windows behind it": ""
},
@@ -4886,6 +4928,9 @@
"Native: platform renderer (FreeType).": {
"Native: platform renderer (FreeType).": ""
},
"Natural Scrolling": {
"Natural Scrolling": ""
},
"Natural Touchpad Scrolling": {
"Natural Touchpad Scrolling": ""
},
@@ -5033,6 +5078,9 @@
"No Rounding": {
"No Rounding": ""
},
"No Scroll": {
"No Scroll": ""
},
"No Shadow": {
"No Shadow": ""
},
@@ -5336,9 +5384,6 @@
"Not detected": {
"Not detected": "Nie wykryto"
},
"Not listed?": {
"Not listed?": ""
},
"Not paired": {
"Not paired": ""
},
@@ -5432,6 +5477,9 @@
"On": {
"On": ""
},
"On Button Down": {
"On Button Down": ""
},
"On indefinitely": {
"On indefinitely": ""
},
@@ -5450,6 +5498,9 @@
"Only adjust gamma based on time or location rules.": {
"Only adjust gamma based on time or location rules.": "Dostosuj gamma tylko na podstawie reguł czasu lub lokalizacji."
},
"Only continue if you recognize this server certificate fingerprint.": {
"Only continue if you recognize this server certificate fingerprint.": ""
},
"Only on Battery": {
"Only on Battery": ""
},
@@ -5687,6 +5738,9 @@
"Pairing...": {
"Pairing...": "Parowanie..."
},
"Partial": {
"Partial": ""
},
"Partly Cloudy": {
"Partly Cloudy": ""
},
@@ -5708,9 +5762,6 @@
"Password updated": {
"Password updated": ""
},
"Password...": {
"Password...": ""
},
"Passwords do not match.": {
"Passwords do not match.": ""
},
@@ -5894,6 +5945,9 @@
"Pointer": {
"Pointer": "Wskaźnik"
},
"Pointer Speed": {
"Pointer Speed": ""
},
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": {
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": ""
},
@@ -6014,6 +6068,9 @@
"Pressure": {
"Pressure": "Ciśnienie"
},
"Prevent accidental cursor jumps while typing": {
"Prevent accidental cursor jumps while typing": ""
},
"Prevent screen timeout": {
"Prevent screen timeout": "Zapobiegaj wygaszaniu ekranu"
},
@@ -6131,6 +6188,9 @@
"Protocol": {
"Protocol": "Protokół"
},
"QR Generator": {
"QR Generator": ""
},
"Qt": {
"Qt": ""
},
@@ -6383,6 +6443,9 @@
"Requires remembering the last user and session. Enable those options first.": {
"Requires remembering the last user and session. Enable those options first.": ""
},
"Requires the DMS Theme extension from the editor marketplace": {
"Requires the DMS Theme extension from the editor marketplace": ""
},
"Reset": {
"Reset": "Resetuj"
},
@@ -6437,6 +6500,12 @@
"Reverse Scrolling Direction": {
"Reverse Scrolling Direction": "Odwróć Kierunek Przewijania"
},
"Reverse mouse wheel scrolling direction": {
"Reverse mouse wheel scrolling direction": ""
},
"Reverse two-finger scrolling direction": {
"Reverse two-finger scrolling direction": ""
},
"Reverse workspace switch direction when scrolling over the bar": {
"Reverse workspace switch direction when scrolling over the bar": "Odwróc kierunek przełączania obszarów roboczych podczas przewijania nad paskiem"
},
@@ -6644,6 +6713,9 @@
"Scroll GitHub": {
"Scroll GitHub": ""
},
"Scroll Method": {
"Scroll Method": ""
},
"Scroll Wheel": {
"Scroll Wheel": "Kółko przewijania"
},
@@ -6659,6 +6731,9 @@
"Scrolling": {
"Scrolling": "Przewijanie"
},
"Scrolling Speed": {
"Scrolling Speed": ""
},
"Search App Actions": {
"Search App Actions": ""
},
@@ -6821,9 +6896,6 @@
"Select the palette algorithm used for wallpaper-based colors": {
"Select the palette algorithm used for wallpaper-based colors": "Wybierz algorytm palety używany dla kolorów tapet."
},
"Select user...": {
"Select user...": ""
},
"Select which keybind providers to include": {
"Select which keybind providers to include": ""
},
@@ -6992,6 +7064,9 @@
"Show": {
"Show": ""
},
"Show \"config reloaded\" Toast": {
"Show \"config reloaded\" Toast": ""
},
"Show 3rd Party": {
"Show 3rd Party": ""
},
@@ -7187,6 +7262,9 @@
"Show a notification when battery reaches the charge limit.": {
"Show a notification when battery reaches the charge limit.": ""
},
"Show a toast when the compositor config is reloaded": {
"Show a toast when the compositor config is reloaded": ""
},
"Show a warning popup when battery is running low.": {
"Show a warning popup when battery is running low.": ""
},
@@ -7529,6 +7607,9 @@
"Suspend then Hibernate": {
"Suspend then Hibernate": ""
},
"Swap primary and secondary mouse buttons": {
"Swap primary and secondary mouse buttons": ""
},
"Sway Website": {
"Sway Website": ""
},
@@ -7652,6 +7733,18 @@
"Tailscale not available": {
"Tailscale not available": ""
},
"Tap and Drag": {
"Tap and Drag": ""
},
"Tap and drag on the touchpad to move items": {
"Tap and drag on the touchpad to move items": ""
},
"Tap the touchpad surface to trigger left click clicks": {
"Tap the touchpad surface to trigger left click clicks": ""
},
"Tap to Click": {
"Tap to Click": ""
},
"Terminal": {
"Terminal": ""
},
@@ -7727,6 +7820,9 @@
"The rule applies to any window matching one of these.": {
"The rule applies to any window matching one of these.": ""
},
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": {
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": ""
},
"Theme & Colors": {
"Theme & Colors": "Motyw i kolory"
},
@@ -7919,9 +8015,6 @@
"Too many attempts - locked out": {
"Too many attempts - locked out": ""
},
"Too many failed attempts - account may be locked": {
"Too many failed attempts - account may be locked": ""
},
"Tools": {
"Tools": "Narzędzia"
},
@@ -7958,6 +8051,12 @@
"Touch your security key...": {
"Touch your security key...": ""
},
"Touchpad Settings": {
"Touchpad Settings": ""
},
"Touchpad Speed": {
"Touchpad Speed": ""
},
"Transform": {
"Transform": "Przekształć"
},
@@ -8018,6 +8117,9 @@
"Turn off now": {
"Turn off now": ""
},
"Two Finger": {
"Two Finger": ""
},
"Type at least 2 characters": {
"Type at least 2 characters": ""
},
@@ -8159,6 +8261,9 @@
"Untrust": {
"Untrust": ""
},
"Untrusted VPN certificate": {
"Untrusted VPN certificate": ""
},
"Up to date": {
"Up to date": ""
},
@@ -8342,9 +8447,6 @@
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": {
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": ""
},
"Username...": {
"Username...": ""
},
"Users": {
"Users": ""
},
@@ -8765,6 +8867,9 @@
"attached": {
"attached": ""
},
"below AA": {
"below AA": ""
},
"brandon": {
"brandon": ""
},
+160 -55
View File
@@ -335,6 +335,9 @@
"About": {
"About": "Sobre"
},
"Acceleration Profile": {
"Acceleration Profile": ""
},
"Accent Color": {
"Accent Color": "Cor de Destaque"
},
@@ -410,6 +413,9 @@
"Adapters": {
"Adapters": "Adaptadores"
},
"Adaptive": {
"Adaptive": ""
},
"Adaptive Media Width": {
"Adaptive Media Width": ""
},
@@ -485,12 +491,21 @@
"Add to Autostart": {
"Add to Autostart": ""
},
"Adjust pointer sensitivity speed": {
"Adjust pointer sensitivity speed": ""
},
"Adjust scrolling sensitivity multiplier": {
"Adjust scrolling sensitivity multiplier": ""
},
"Adjust the bar height via inner padding": {
"Adjust the bar height via inner padding": ""
},
"Adjust the number of columns in grid view mode.": {
"Adjust the number of columns in grid view mode.": "Ajusta o número de colunas no modo de visualização em grade"
},
"Adjust touchpad pointer speed": {
"Adjust touchpad pointer speed": ""
},
"Adjust volume per scroll indent": {
"Adjust volume per scroll indent": "Ajustar volume por rolagem"
},
@@ -575,6 +590,9 @@
"Always show when there's only one connected display": {
"Always show when there's only one connected display": "Sempre mostrar quando houver apenas um monitor conectado"
},
"Always use the durations above, even if an app requests a shorter or longer one": {
"Always use the durations above, even if an app requests a shorter or longer one": ""
},
"Always use this app for %1": {
"Always use this app for %1": ""
},
@@ -782,9 +800,6 @@
"Authenticated!": {
"Authenticated!": ""
},
"Authenticating...": {
"Authenticating...": "Autenticando..."
},
"Authentication": {
"Authentication": "Autenticação"
},
@@ -803,18 +818,6 @@
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": {
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": ""
},
"Authentication error - try again": {
"Authentication error - try again": "Erro de autenticação - tente novamente"
},
"Authentication failed - attempt %1 of %2": {
"Authentication failed - attempt %1 of %2": ""
},
"Authentication failed - lockout can occur": {
"Authentication failed - lockout can occur": ""
},
"Authentication failed - try again": {
"Authentication failed - try again": ""
},
"Authorize": {
"Authorize": "Autorizar"
},
@@ -878,9 +881,6 @@
"Auto-hide Dock": {
"Auto-hide Dock": "Esconder Automaticamente o Dock"
},
"Auto-login": {
"Auto-login": ""
},
"Auto-login change needs a sync": {
"Auto-login change needs a sync": ""
},
@@ -980,24 +980,12 @@
"Available in Detailed and Forecast view modes": {
"Available in Detailed and Forecast view modes": "Disponível em modos de visualização Detalhada e Previsão"
},
"Awaiting fingerprint authentication": {
"Awaiting fingerprint authentication": ""
},
"Awaiting fingerprint or security key authentication": {
"Awaiting fingerprint or security key authentication": ""
},
"Awaiting security key authentication": {
"Awaiting security key authentication": ""
},
"BSSID": {
"BSSID": "BSSID"
},
"Back": {
"Back": "Voltar"
},
"Back to user list": {
"Back to user list": ""
},
"Backend": {
"Backend": "Backend"
},
@@ -1454,6 +1442,9 @@
"Choose wallpaper folder": {
"Choose wallpaper folder": ""
},
"Choose when to generate scrolling events": {
"Choose when to generate scrolling events": ""
},
"Choose where notification popups appear on screen": {
"Choose where notification popups appear on screen": "Escolher onde as notificações irão aparecer na tela"
},
@@ -1688,6 +1679,9 @@
"Compositor Settings": {
"Compositor Settings": "Configurações do Compositor"
},
"Compositor actions (focus, move, etc.)": {
"Compositor actions (focus, move, etc.)": ""
},
"Config Format": {
"Config Format": "Formato de Configuração"
},
@@ -1805,6 +1799,9 @@
"Contrast": {
"Contrast": "Contraste"
},
"Contrast by variant": {
"Contrast by variant": ""
},
"Contributor": {
"Contributor": ""
},
@@ -2390,6 +2387,15 @@
"Disable Output": {
"Disable Output": "Desabilitar Saída"
},
"Disable While Typing": {
"Disable While Typing": ""
},
"Disable on External Mouse": {
"Disable on External Mouse": ""
},
"Disable touchpad when an external mouse is connected": {
"Disable touchpad when an external mouse is connected": ""
},
"Disabled": {
"Disabled": "Desativado"
},
@@ -2549,6 +2555,9 @@
"Door Open": {
"Door Open": "Porta Aberta"
},
"Drag Lock": {
"Drag Lock": ""
},
"Drag a widget by its handle here to reorder it or drop it into another group": {
"Drag a widget by its handle here to reorder it or drop it into another group": ""
},
@@ -2621,6 +2630,9 @@
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": {
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": ""
},
"Edge": {
"Edge": ""
},
"Edge Hover Reveal": {
"Edge Hover Reveal": ""
},
@@ -2669,6 +2681,9 @@
"Empty Trash (%1)": {
"Empty Trash (%1)": "Lixeira Vazia (%1)"
},
"Emulate middle click by pressing left and right buttons": {
"Emulate middle click by pressing left and right buttons": ""
},
"Enable 10-bit color depth for wider color gamut and HDR support": {
"Enable 10-bit color depth for wider color gamut and HDR support": "Ativar a profundidade de cores de 10 bits para uma gama de cores mais ampla e suporte HDR"
},
@@ -2795,6 +2810,9 @@
"Enter password for ": {
"Enter password for ": "Insira senha para "
},
"Enter text to encode": {
"Enter text to encode": ""
},
"Enter this passkey on ": {
"Enter this passkey on ": "Entre esse código em "
},
@@ -2993,6 +3011,9 @@
"Failed to fetch network QR code: %1": {
"Failed to fetch network QR code: %1": ""
},
"Failed to generate QR code: %1": {
"Failed to generate QR code: %1": ""
},
"Failed to generate systemd override": {
"Failed to generate systemd override": ""
},
@@ -3263,6 +3284,12 @@
"Flags": {
"Flags": "Bandeiras"
},
"Flat": {
"Flat": ""
},
"Flat uses constant speed; Adaptive scales with movement speed": {
"Flat uses constant speed; Adaptive scales with movement speed": ""
},
"Flatpak": {
"Flatpak": ""
},
@@ -3962,6 +3989,9 @@
"If the field is hidden, it will appear as soon as a key is pressed.": {
"If the field is hidden, it will appear as soon as a key is pressed.": "Se o campo está escondido, ele aparecerá no momento que uma tecla e pressionada."
},
"Ignore App-Requested Timeout": {
"Ignore App-Requested Timeout": ""
},
"Ignore Completely": {
"Ignore Completely": "Ignorar Completamente"
},
@@ -4199,6 +4229,9 @@
"Keep My Edits": {
"Keep My Edits": ""
},
"Keep dragging when finger is briefly lifted": {
"Keep dragging when finger is briefly lifted": ""
},
"Keep in Bar": {
"Keep in Bar": ""
},
@@ -4334,6 +4367,9 @@
"Left Section": {
"Left Section": "Seção da Esquerda"
},
"Left-Handed Mode": {
"Left-Handed Mode": ""
},
"Light": {
"Light": ""
},
@@ -4439,9 +4475,6 @@
"Locked": {
"Locked": "Bloqueado"
},
"Logging in...": {
"Logging in...": ""
},
"Login": {
"Login": ""
},
@@ -4748,6 +4781,9 @@
"Microphone volume control": {
"Microphone volume control": "Controle de volume de microfone"
},
"Middle Click Emulation": {
"Middle Click Emulation": ""
},
"Middle Section": {
"Middle Section": "Seção do Meio"
},
@@ -4823,6 +4859,12 @@
"Mount Points": {
"Mount Points": "Pontos de Montagem"
},
"Mouse & Touchpad": {
"Mouse & Touchpad": ""
},
"Mouse Settings": {
"Mouse Settings": ""
},
"Mouse clicks pass through the bar to windows behind it": {
"Mouse clicks pass through the bar to windows behind it": ""
},
@@ -4886,6 +4928,9 @@
"Native: platform renderer (FreeType).": {
"Native: platform renderer (FreeType).": ""
},
"Natural Scrolling": {
"Natural Scrolling": ""
},
"Natural Touchpad Scrolling": {
"Natural Touchpad Scrolling": ""
},
@@ -5033,6 +5078,9 @@
"No Rounding": {
"No Rounding": "Sem Arredondamento"
},
"No Scroll": {
"No Scroll": ""
},
"No Shadow": {
"No Shadow": "Sem Sombra"
},
@@ -5336,9 +5384,6 @@
"Not detected": {
"Not detected": "Não detectado"
},
"Not listed?": {
"Not listed?": ""
},
"Not paired": {
"Not paired": "Não pareado"
},
@@ -5432,6 +5477,9 @@
"On": {
"On": "Ligado"
},
"On Button Down": {
"On Button Down": ""
},
"On indefinitely": {
"On indefinitely": ""
},
@@ -5450,6 +5498,9 @@
"Only adjust gamma based on time or location rules.": {
"Only adjust gamma based on time or location rules.": "Apenas ajustar gama baseada em regras de tempo ou localização."
},
"Only continue if you recognize this server certificate fingerprint.": {
"Only continue if you recognize this server certificate fingerprint.": ""
},
"Only on Battery": {
"Only on Battery": ""
},
@@ -5687,6 +5738,9 @@
"Pairing...": {
"Pairing...": "Pareando..."
},
"Partial": {
"Partial": ""
},
"Partly Cloudy": {
"Partly Cloudy": "Parcialmente Nublado"
},
@@ -5708,9 +5762,6 @@
"Password updated": {
"Password updated": "Senha atualizada"
},
"Password...": {
"Password...": "Senha..."
},
"Passwords do not match.": {
"Passwords do not match.": ""
},
@@ -5894,6 +5945,9 @@
"Pointer": {
"Pointer": "Ponteiro"
},
"Pointer Speed": {
"Pointer Speed": ""
},
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": {
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": ""
},
@@ -6014,6 +6068,9 @@
"Pressure": {
"Pressure": "Pressão"
},
"Prevent accidental cursor jumps while typing": {
"Prevent accidental cursor jumps while typing": ""
},
"Prevent screen timeout": {
"Prevent screen timeout": "Impedir suspensão da tela"
},
@@ -6131,6 +6188,9 @@
"Protocol": {
"Protocol": "Protocolo"
},
"QR Generator": {
"QR Generator": ""
},
"Qt": {
"Qt": ""
},
@@ -6383,6 +6443,9 @@
"Requires remembering the last user and session. Enable those options first.": {
"Requires remembering the last user and session. Enable those options first.": ""
},
"Requires the DMS Theme extension from the editor marketplace": {
"Requires the DMS Theme extension from the editor marketplace": ""
},
"Reset": {
"Reset": "Resetar"
},
@@ -6437,6 +6500,12 @@
"Reverse Scrolling Direction": {
"Reverse Scrolling Direction": "Inverter Direção do Scroll"
},
"Reverse mouse wheel scrolling direction": {
"Reverse mouse wheel scrolling direction": ""
},
"Reverse two-finger scrolling direction": {
"Reverse two-finger scrolling direction": ""
},
"Reverse workspace switch direction when scrolling over the bar": {
"Reverse workspace switch direction when scrolling over the bar": "Inverter direção de troca de área de trabalho ao rolar sobre a barra"
},
@@ -6644,6 +6713,9 @@
"Scroll GitHub": {
"Scroll GitHub": ""
},
"Scroll Method": {
"Scroll Method": ""
},
"Scroll Wheel": {
"Scroll Wheel": "Roda de Rolagem"
},
@@ -6659,6 +6731,9 @@
"Scrolling": {
"Scrolling": "Scrolling"
},
"Scrolling Speed": {
"Scrolling Speed": ""
},
"Search App Actions": {
"Search App Actions": "Pesquisar Ações do Aplicativo"
},
@@ -6821,9 +6896,6 @@
"Select the palette algorithm used for wallpaper-based colors": {
"Select the palette algorithm used for wallpaper-based colors": "Selecione o algoritmo usado para cores baseadas no papel de parede"
},
"Select user...": {
"Select user...": ""
},
"Select which keybind providers to include": {
"Select which keybind providers to include": "Selecionar quais provedores de combinações de teclas incluir"
},
@@ -6992,6 +7064,9 @@
"Show": {
"Show": "Mostrar"
},
"Show \"config reloaded\" Toast": {
"Show \"config reloaded\" Toast": ""
},
"Show 3rd Party": {
"Show 3rd Party": "Mostrar Terceiros"
},
@@ -7187,6 +7262,9 @@
"Show a notification when battery reaches the charge limit.": {
"Show a notification when battery reaches the charge limit.": ""
},
"Show a toast when the compositor config is reloaded": {
"Show a toast when the compositor config is reloaded": ""
},
"Show a warning popup when battery is running low.": {
"Show a warning popup when battery is running low.": ""
},
@@ -7529,6 +7607,9 @@
"Suspend then Hibernate": {
"Suspend then Hibernate": "Suspender e Hibernar"
},
"Swap primary and secondary mouse buttons": {
"Swap primary and secondary mouse buttons": ""
},
"Sway Website": {
"Sway Website": ""
},
@@ -7652,6 +7733,18 @@
"Tailscale not available": {
"Tailscale not available": ""
},
"Tap and Drag": {
"Tap and Drag": ""
},
"Tap and drag on the touchpad to move items": {
"Tap and drag on the touchpad to move items": ""
},
"Tap the touchpad surface to trigger left click clicks": {
"Tap the touchpad surface to trigger left click clicks": ""
},
"Tap to Click": {
"Tap to Click": ""
},
"Terminal": {
"Terminal": ""
},
@@ -7727,6 +7820,9 @@
"The rule applies to any window matching one of these.": {
"The rule applies to any window matching one of these.": ""
},
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": {
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": ""
},
"Theme & Colors": {
"Theme & Colors": "Tema & Cores"
},
@@ -7919,9 +8015,6 @@
"Too many attempts - locked out": {
"Too many attempts - locked out": ""
},
"Too many failed attempts - account may be locked": {
"Too many failed attempts - account may be locked": ""
},
"Tools": {
"Tools": "Ferramentas"
},
@@ -7958,6 +8051,12 @@
"Touch your security key...": {
"Touch your security key...": ""
},
"Touchpad Settings": {
"Touchpad Settings": ""
},
"Touchpad Speed": {
"Touchpad Speed": ""
},
"Transform": {
"Transform": "Transformar"
},
@@ -8018,6 +8117,9 @@
"Turn off now": {
"Turn off now": ""
},
"Two Finger": {
"Two Finger": ""
},
"Type at least 2 characters": {
"Type at least 2 characters": "Digite pelo menos 2 caracteres"
},
@@ -8159,6 +8261,9 @@
"Untrust": {
"Untrust": "Deixar de confiar"
},
"Untrusted VPN certificate": {
"Untrusted VPN certificate": ""
},
"Up to date": {
"Up to date": ""
},
@@ -8316,25 +8421,25 @@
"User Window Rules (%1)": ""
},
"User already exists": {
"User already exists": ""
"User already exists": "Usuário já existe"
},
"User created": {
"User created": ""
"User created": "Usuário criado"
},
"User created with administrator and greeter login access": {
"User created with administrator and greeter login access": ""
},
"User created with administrator privileges": {
"User created with administrator privileges": ""
"User created with administrator privileges": "Usuário criado com privilégios de administrador"
},
"User created with greeter login access": {
"User created with greeter login access": ""
"User created with greeter login access": "Usuário criado com login via greeter"
},
"User deleted": {
"User deleted": ""
"User deleted": "Usuário excluído"
},
"User not found": {
"User not found": ""
"User not found": "Usuário não encontrado"
},
"Username": {
"Username": "Nome de usuário"
@@ -8342,11 +8447,8 @@
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": {
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": ""
},
"Username...": {
"Username...": ""
},
"Users": {
"Users": ""
"Users": "Usuários"
},
"Uses sunrise/sunset times based on your location.": {
"Uses sunrise/sunset times based on your location.": "Usa horários de nascer/pôr do sol com base na sua localização."
@@ -8765,6 +8867,9 @@
"attached": {
"attached": ""
},
"below AA": {
"below AA": ""
},
"brandon": {
"brandon": "brandon"
},
File diff suppressed because it is too large Load Diff
+153 -48
View File
@@ -335,6 +335,9 @@
"About": {
"About": "Om"
},
"Acceleration Profile": {
"Acceleration Profile": ""
},
"Accent Color": {
"Accent Color": "Accentfärg"
},
@@ -410,6 +413,9 @@
"Adapters": {
"Adapters": "Adaptrar"
},
"Adaptive": {
"Adaptive": ""
},
"Adaptive Media Width": {
"Adaptive Media Width": ""
},
@@ -485,12 +491,21 @@
"Add to Autostart": {
"Add to Autostart": ""
},
"Adjust pointer sensitivity speed": {
"Adjust pointer sensitivity speed": ""
},
"Adjust scrolling sensitivity multiplier": {
"Adjust scrolling sensitivity multiplier": ""
},
"Adjust the bar height via inner padding": {
"Adjust the bar height via inner padding": ""
},
"Adjust the number of columns in grid view mode.": {
"Adjust the number of columns in grid view mode.": "Justera antalet kolumner i rutnätsvy."
},
"Adjust touchpad pointer speed": {
"Adjust touchpad pointer speed": ""
},
"Adjust volume per scroll indent": {
"Adjust volume per scroll indent": "Justera volym per rullningsindrag"
},
@@ -575,6 +590,9 @@
"Always show when there's only one connected display": {
"Always show when there's only one connected display": "Visa alltid när bara en bildskärm är ansluten"
},
"Always use the durations above, even if an app requests a shorter or longer one": {
"Always use the durations above, even if an app requests a shorter or longer one": ""
},
"Always use this app for %1": {
"Always use this app for %1": ""
},
@@ -782,9 +800,6 @@
"Authenticated!": {
"Authenticated!": ""
},
"Authenticating...": {
"Authenticating...": "Autentiserar..."
},
"Authentication": {
"Authentication": "Autentisering"
},
@@ -803,18 +818,6 @@
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": {
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": ""
},
"Authentication error - try again": {
"Authentication error - try again": "Autentiseringsfel försök igen"
},
"Authentication failed - attempt %1 of %2": {
"Authentication failed - attempt %1 of %2": ""
},
"Authentication failed - lockout can occur": {
"Authentication failed - lockout can occur": ""
},
"Authentication failed - try again": {
"Authentication failed - try again": ""
},
"Authorize": {
"Authorize": "Auktorisera"
},
@@ -878,9 +881,6 @@
"Auto-hide Dock": {
"Auto-hide Dock": "Göm Dock automatiskt"
},
"Auto-login": {
"Auto-login": ""
},
"Auto-login change needs a sync": {
"Auto-login change needs a sync": ""
},
@@ -980,24 +980,12 @@
"Available in Detailed and Forecast view modes": {
"Available in Detailed and Forecast view modes": "Tillgänglig i detaljerade och prognosvyer"
},
"Awaiting fingerprint authentication": {
"Awaiting fingerprint authentication": ""
},
"Awaiting fingerprint or security key authentication": {
"Awaiting fingerprint or security key authentication": ""
},
"Awaiting security key authentication": {
"Awaiting security key authentication": ""
},
"BSSID": {
"BSSID": "BSSID"
},
"Back": {
"Back": "Tillbaka"
},
"Back to user list": {
"Back to user list": ""
},
"Backend": {
"Backend": "Bakgrundstjänst"
},
@@ -1454,6 +1442,9 @@
"Choose wallpaper folder": {
"Choose wallpaper folder": ""
},
"Choose when to generate scrolling events": {
"Choose when to generate scrolling events": ""
},
"Choose where notification popups appear on screen": {
"Choose where notification popups appear on screen": "Välj var notisbanderoller visas på skärmen"
},
@@ -1688,6 +1679,9 @@
"Compositor Settings": {
"Compositor Settings": "Kompositoriminställningar"
},
"Compositor actions (focus, move, etc.)": {
"Compositor actions (focus, move, etc.)": ""
},
"Config Format": {
"Config Format": "Konfigurationsformat"
},
@@ -1805,6 +1799,9 @@
"Contrast": {
"Contrast": "Kontrast"
},
"Contrast by variant": {
"Contrast by variant": ""
},
"Contributor": {
"Contributor": ""
},
@@ -2390,6 +2387,15 @@
"Disable Output": {
"Disable Output": "Avaktivera utgång"
},
"Disable While Typing": {
"Disable While Typing": ""
},
"Disable on External Mouse": {
"Disable on External Mouse": ""
},
"Disable touchpad when an external mouse is connected": {
"Disable touchpad when an external mouse is connected": ""
},
"Disabled": {
"Disabled": "Avaktiverat"
},
@@ -2549,6 +2555,9 @@
"Door Open": {
"Door Open": "Dörr öppen"
},
"Drag Lock": {
"Drag Lock": ""
},
"Drag a widget by its handle here to reorder it or drop it into another group": {
"Drag a widget by its handle here to reorder it or drop it into another group": ""
},
@@ -2621,6 +2630,9 @@
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": {
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": ""
},
"Edge": {
"Edge": ""
},
"Edge Hover Reveal": {
"Edge Hover Reveal": ""
},
@@ -2669,6 +2681,9 @@
"Empty Trash (%1)": {
"Empty Trash (%1)": ""
},
"Emulate middle click by pressing left and right buttons": {
"Emulate middle click by pressing left and right buttons": ""
},
"Enable 10-bit color depth for wider color gamut and HDR support": {
"Enable 10-bit color depth for wider color gamut and HDR support": "Aktivera 10-bitars färgdjup för bredare färgomfång och HDR-stöd"
},
@@ -2795,6 +2810,9 @@
"Enter password for ": {
"Enter password for ": "Ange lösenord för "
},
"Enter text to encode": {
"Enter text to encode": ""
},
"Enter this passkey on ": {
"Enter this passkey on ": "Ange denna lösenkod på "
},
@@ -2993,6 +3011,9 @@
"Failed to fetch network QR code: %1": {
"Failed to fetch network QR code: %1": ""
},
"Failed to generate QR code: %1": {
"Failed to generate QR code: %1": ""
},
"Failed to generate systemd override": {
"Failed to generate systemd override": ""
},
@@ -3263,6 +3284,12 @@
"Flags": {
"Flags": "Flaggor"
},
"Flat": {
"Flat": ""
},
"Flat uses constant speed; Adaptive scales with movement speed": {
"Flat uses constant speed; Adaptive scales with movement speed": ""
},
"Flatpak": {
"Flatpak": ""
},
@@ -3962,6 +3989,9 @@
"If the field is hidden, it will appear as soon as a key is pressed.": {
"If the field is hidden, it will appear as soon as a key is pressed.": "Om fältet är dolt visas det så snart en tangent trycks ned."
},
"Ignore App-Requested Timeout": {
"Ignore App-Requested Timeout": ""
},
"Ignore Completely": {
"Ignore Completely": "Ignorera helt"
},
@@ -4199,6 +4229,9 @@
"Keep My Edits": {
"Keep My Edits": ""
},
"Keep dragging when finger is briefly lifted": {
"Keep dragging when finger is briefly lifted": ""
},
"Keep in Bar": {
"Keep in Bar": ""
},
@@ -4334,6 +4367,9 @@
"Left Section": {
"Left Section": "Vänster avdelning"
},
"Left-Handed Mode": {
"Left-Handed Mode": ""
},
"Light": {
"Light": ""
},
@@ -4439,9 +4475,6 @@
"Locked": {
"Locked": "Låst"
},
"Logging in...": {
"Logging in...": "Loggar in..."
},
"Login": {
"Login": ""
},
@@ -4748,6 +4781,9 @@
"Microphone volume control": {
"Microphone volume control": "Mikrofonvolymkontroll"
},
"Middle Click Emulation": {
"Middle Click Emulation": ""
},
"Middle Section": {
"Middle Section": "Mittenavdelning"
},
@@ -4823,6 +4859,12 @@
"Mount Points": {
"Mount Points": "Monteringspunkter"
},
"Mouse & Touchpad": {
"Mouse & Touchpad": ""
},
"Mouse Settings": {
"Mouse Settings": ""
},
"Mouse clicks pass through the bar to windows behind it": {
"Mouse clicks pass through the bar to windows behind it": ""
},
@@ -4886,6 +4928,9 @@
"Native: platform renderer (FreeType).": {
"Native: platform renderer (FreeType).": ""
},
"Natural Scrolling": {
"Natural Scrolling": ""
},
"Natural Touchpad Scrolling": {
"Natural Touchpad Scrolling": ""
},
@@ -5033,6 +5078,9 @@
"No Rounding": {
"No Rounding": "Ingen avrundning"
},
"No Scroll": {
"No Scroll": ""
},
"No Shadow": {
"No Shadow": "Ingen skugga"
},
@@ -5336,9 +5384,6 @@
"Not detected": {
"Not detected": "Inte detekterat"
},
"Not listed?": {
"Not listed?": ""
},
"Not paired": {
"Not paired": "Inte parkopplad"
},
@@ -5432,6 +5477,9 @@
"On": {
"On": "På"
},
"On Button Down": {
"On Button Down": ""
},
"On indefinitely": {
"On indefinitely": ""
},
@@ -5450,6 +5498,9 @@
"Only adjust gamma based on time or location rules.": {
"Only adjust gamma based on time or location rules.": "Justera bara gamma baserat på tids- eller platsregler."
},
"Only continue if you recognize this server certificate fingerprint.": {
"Only continue if you recognize this server certificate fingerprint.": ""
},
"Only on Battery": {
"Only on Battery": ""
},
@@ -5687,6 +5738,9 @@
"Pairing...": {
"Pairing...": "Parkopplar..."
},
"Partial": {
"Partial": ""
},
"Partly Cloudy": {
"Partly Cloudy": "Delvis molnigt"
},
@@ -5708,9 +5762,6 @@
"Password updated": {
"Password updated": ""
},
"Password...": {
"Password...": "Lösenord..."
},
"Passwords do not match.": {
"Passwords do not match.": ""
},
@@ -5894,6 +5945,9 @@
"Pointer": {
"Pointer": "Pekare"
},
"Pointer Speed": {
"Pointer Speed": ""
},
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": {
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": ""
},
@@ -6014,6 +6068,9 @@
"Pressure": {
"Pressure": "Lufttryck"
},
"Prevent accidental cursor jumps while typing": {
"Prevent accidental cursor jumps while typing": ""
},
"Prevent screen timeout": {
"Prevent screen timeout": "Förhindra att skärmen stängs av"
},
@@ -6131,6 +6188,9 @@
"Protocol": {
"Protocol": "Protokoll"
},
"QR Generator": {
"QR Generator": ""
},
"Qt": {
"Qt": ""
},
@@ -6383,6 +6443,9 @@
"Requires remembering the last user and session. Enable those options first.": {
"Requires remembering the last user and session. Enable those options first.": ""
},
"Requires the DMS Theme extension from the editor marketplace": {
"Requires the DMS Theme extension from the editor marketplace": ""
},
"Reset": {
"Reset": "Återställ"
},
@@ -6437,6 +6500,12 @@
"Reverse Scrolling Direction": {
"Reverse Scrolling Direction": "Omvänd rullningsriktning"
},
"Reverse mouse wheel scrolling direction": {
"Reverse mouse wheel scrolling direction": ""
},
"Reverse two-finger scrolling direction": {
"Reverse two-finger scrolling direction": ""
},
"Reverse workspace switch direction when scrolling over the bar": {
"Reverse workspace switch direction when scrolling over the bar": "Omvänd växlingsriktning på arbetsytor vid rullning över menyraden"
},
@@ -6644,6 +6713,9 @@
"Scroll GitHub": {
"Scroll GitHub": "Scroll GitHub"
},
"Scroll Method": {
"Scroll Method": ""
},
"Scroll Wheel": {
"Scroll Wheel": "Scrollhjul"
},
@@ -6659,6 +6731,9 @@
"Scrolling": {
"Scrolling": "Rullning"
},
"Scrolling Speed": {
"Scrolling Speed": ""
},
"Search App Actions": {
"Search App Actions": "Sök appåtgärder"
},
@@ -6821,9 +6896,6 @@
"Select the palette algorithm used for wallpaper-based colors": {
"Select the palette algorithm used for wallpaper-based colors": "Välj palettalgoritm för färger baserade på bakgrundsbilden"
},
"Select user...": {
"Select user...": ""
},
"Select which keybind providers to include": {
"Select which keybind providers to include": "Välj vilka kortkommandoleverantörer som ska inkluderas"
},
@@ -6992,6 +7064,9 @@
"Show": {
"Show": "Visa"
},
"Show \"config reloaded\" Toast": {
"Show \"config reloaded\" Toast": ""
},
"Show 3rd Party": {
"Show 3rd Party": "Visa tredjepartsappar"
},
@@ -7187,6 +7262,9 @@
"Show a notification when battery reaches the charge limit.": {
"Show a notification when battery reaches the charge limit.": ""
},
"Show a toast when the compositor config is reloaded": {
"Show a toast when the compositor config is reloaded": ""
},
"Show a warning popup when battery is running low.": {
"Show a warning popup when battery is running low.": ""
},
@@ -7529,6 +7607,9 @@
"Suspend then Hibernate": {
"Suspend then Hibernate": "Sätt i strömsparläge och sedan viloläge"
},
"Swap primary and secondary mouse buttons": {
"Swap primary and secondary mouse buttons": ""
},
"Sway Website": {
"Sway Website": "Sways webbplats"
},
@@ -7652,6 +7733,18 @@
"Tailscale not available": {
"Tailscale not available": ""
},
"Tap and Drag": {
"Tap and Drag": ""
},
"Tap and drag on the touchpad to move items": {
"Tap and drag on the touchpad to move items": ""
},
"Tap the touchpad surface to trigger left click clicks": {
"Tap the touchpad surface to trigger left click clicks": ""
},
"Tap to Click": {
"Tap to Click": ""
},
"Terminal": {
"Terminal": "Terminal"
},
@@ -7727,6 +7820,9 @@
"The rule applies to any window matching one of these.": {
"The rule applies to any window matching one of these.": ""
},
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": {
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": ""
},
"Theme & Colors": {
"Theme & Colors": "Teman och färger"
},
@@ -7919,9 +8015,6 @@
"Too many attempts - locked out": {
"Too many attempts - locked out": ""
},
"Too many failed attempts - account may be locked": {
"Too many failed attempts - account may be locked": "För många misslyckade försök kontot kan vara låst"
},
"Tools": {
"Tools": "Verktyg"
},
@@ -7958,6 +8051,12 @@
"Touch your security key...": {
"Touch your security key...": ""
},
"Touchpad Settings": {
"Touchpad Settings": ""
},
"Touchpad Speed": {
"Touchpad Speed": ""
},
"Transform": {
"Transform": "Transformera"
},
@@ -8018,6 +8117,9 @@
"Turn off now": {
"Turn off now": ""
},
"Two Finger": {
"Two Finger": ""
},
"Type at least 2 characters": {
"Type at least 2 characters": "Skriv minst 2 tecken"
},
@@ -8159,6 +8261,9 @@
"Untrust": {
"Untrust": "Lita inte på"
},
"Untrusted VPN certificate": {
"Untrusted VPN certificate": ""
},
"Up to date": {
"Up to date": "Uppdaterat"
},
@@ -8342,9 +8447,6 @@
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": {
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": ""
},
"Username...": {
"Username...": "Användarnamn..."
},
"Users": {
"Users": ""
},
@@ -8765,6 +8867,9 @@
"attached": {
"attached": "ansluten"
},
"below AA": {
"below AA": ""
},
"brandon": {
"brandon": "brandon"
},
+153 -48
View File
@@ -335,6 +335,9 @@
"About": {
"About": "Hakkında"
},
"Acceleration Profile": {
"Acceleration Profile": ""
},
"Accent Color": {
"Accent Color": ""
},
@@ -410,6 +413,9 @@
"Adapters": {
"Adapters": "Bağdaştırıcılar"
},
"Adaptive": {
"Adaptive": ""
},
"Adaptive Media Width": {
"Adaptive Media Width": ""
},
@@ -485,12 +491,21 @@
"Add to Autostart": {
"Add to Autostart": ""
},
"Adjust pointer sensitivity speed": {
"Adjust pointer sensitivity speed": ""
},
"Adjust scrolling sensitivity multiplier": {
"Adjust scrolling sensitivity multiplier": ""
},
"Adjust the bar height via inner padding": {
"Adjust the bar height via inner padding": ""
},
"Adjust the number of columns in grid view mode.": {
"Adjust the number of columns in grid view mode.": "Izgara görünümü modunda sütun sayısını ayarla"
},
"Adjust touchpad pointer speed": {
"Adjust touchpad pointer speed": ""
},
"Adjust volume per scroll indent": {
"Adjust volume per scroll indent": ""
},
@@ -575,6 +590,9 @@
"Always show when there's only one connected display": {
"Always show when there's only one connected display": "Yalnızca bir ekran bağlı olduğunda her zaman göster"
},
"Always use the durations above, even if an app requests a shorter or longer one": {
"Always use the durations above, even if an app requests a shorter or longer one": ""
},
"Always use this app for %1": {
"Always use this app for %1": ""
},
@@ -782,9 +800,6 @@
"Authenticated!": {
"Authenticated!": ""
},
"Authenticating...": {
"Authenticating...": ""
},
"Authentication": {
"Authentication": "Kimlik Doğrulama"
},
@@ -803,18 +818,6 @@
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": {
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": ""
},
"Authentication error - try again": {
"Authentication error - try again": ""
},
"Authentication failed - attempt %1 of %2": {
"Authentication failed - attempt %1 of %2": ""
},
"Authentication failed - lockout can occur": {
"Authentication failed - lockout can occur": ""
},
"Authentication failed - try again": {
"Authentication failed - try again": ""
},
"Authorize": {
"Authorize": "Yetkilendir"
},
@@ -878,9 +881,6 @@
"Auto-hide Dock": {
"Auto-hide Dock": "Dock'u Otomatik Gizle"
},
"Auto-login": {
"Auto-login": ""
},
"Auto-login change needs a sync": {
"Auto-login change needs a sync": ""
},
@@ -980,24 +980,12 @@
"Available in Detailed and Forecast view modes": {
"Available in Detailed and Forecast view modes": ""
},
"Awaiting fingerprint authentication": {
"Awaiting fingerprint authentication": ""
},
"Awaiting fingerprint or security key authentication": {
"Awaiting fingerprint or security key authentication": ""
},
"Awaiting security key authentication": {
"Awaiting security key authentication": ""
},
"BSSID": {
"BSSID": "BSSID"
},
"Back": {
"Back": "Geri"
},
"Back to user list": {
"Back to user list": ""
},
"Backend": {
"Backend": "Arka Uç"
},
@@ -1454,6 +1442,9 @@
"Choose wallpaper folder": {
"Choose wallpaper folder": ""
},
"Choose when to generate scrolling events": {
"Choose when to generate scrolling events": ""
},
"Choose where notification popups appear on screen": {
"Choose where notification popups appear on screen": "Bildirim açılır pencerelerinin ekranda nerede görüneceğini seçin"
},
@@ -1688,6 +1679,9 @@
"Compositor Settings": {
"Compositor Settings": "Kompozitör Ayarları"
},
"Compositor actions (focus, move, etc.)": {
"Compositor actions (focus, move, etc.)": ""
},
"Config Format": {
"Config Format": "Yapılandırma Biçimi"
},
@@ -1805,6 +1799,9 @@
"Contrast": {
"Contrast": "Kontrast"
},
"Contrast by variant": {
"Contrast by variant": ""
},
"Contributor": {
"Contributor": ""
},
@@ -2390,6 +2387,15 @@
"Disable Output": {
"Disable Output": "Çıkışı Devre Dışı Bırak"
},
"Disable While Typing": {
"Disable While Typing": ""
},
"Disable on External Mouse": {
"Disable on External Mouse": ""
},
"Disable touchpad when an external mouse is connected": {
"Disable touchpad when an external mouse is connected": ""
},
"Disabled": {
"Disabled": "Devre Dışı"
},
@@ -2549,6 +2555,9 @@
"Door Open": {
"Door Open": "Kapı Açık"
},
"Drag Lock": {
"Drag Lock": ""
},
"Drag a widget by its handle here to reorder it or drop it into another group": {
"Drag a widget by its handle here to reorder it or drop it into another group": ""
},
@@ -2621,6 +2630,9 @@
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": {
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": ""
},
"Edge": {
"Edge": ""
},
"Edge Hover Reveal": {
"Edge Hover Reveal": ""
},
@@ -2669,6 +2681,9 @@
"Empty Trash (%1)": {
"Empty Trash (%1)": ""
},
"Emulate middle click by pressing left and right buttons": {
"Emulate middle click by pressing left and right buttons": ""
},
"Enable 10-bit color depth for wider color gamut and HDR support": {
"Enable 10-bit color depth for wider color gamut and HDR support": "Daha geniş renk gamı ve HDR desteği için 10 bit renk derinliğini etkinleştirin"
},
@@ -2795,6 +2810,9 @@
"Enter password for ": {
"Enter password for ": "Parolayı girin "
},
"Enter text to encode": {
"Enter text to encode": ""
},
"Enter this passkey on ": {
"Enter this passkey on ": "Bu şifreyi şuraya gir: "
},
@@ -2993,6 +3011,9 @@
"Failed to fetch network QR code: %1": {
"Failed to fetch network QR code: %1": ""
},
"Failed to generate QR code: %1": {
"Failed to generate QR code: %1": ""
},
"Failed to generate systemd override": {
"Failed to generate systemd override": ""
},
@@ -3263,6 +3284,12 @@
"Flags": {
"Flags": ""
},
"Flat": {
"Flat": ""
},
"Flat uses constant speed; Adaptive scales with movement speed": {
"Flat uses constant speed; Adaptive scales with movement speed": ""
},
"Flatpak": {
"Flatpak": ""
},
@@ -3962,6 +3989,9 @@
"If the field is hidden, it will appear as soon as a key is pressed.": {
"If the field is hidden, it will appear as soon as a key is pressed.": "Alan gizliyse, bir tuşa basıldığında görünür."
},
"Ignore App-Requested Timeout": {
"Ignore App-Requested Timeout": ""
},
"Ignore Completely": {
"Ignore Completely": ""
},
@@ -4199,6 +4229,9 @@
"Keep My Edits": {
"Keep My Edits": ""
},
"Keep dragging when finger is briefly lifted": {
"Keep dragging when finger is briefly lifted": ""
},
"Keep in Bar": {
"Keep in Bar": ""
},
@@ -4334,6 +4367,9 @@
"Left Section": {
"Left Section": "Sol Bölüm"
},
"Left-Handed Mode": {
"Left-Handed Mode": ""
},
"Light": {
"Light": ""
},
@@ -4439,9 +4475,6 @@
"Locked": {
"Locked": ""
},
"Logging in...": {
"Logging in...": ""
},
"Login": {
"Login": ""
},
@@ -4748,6 +4781,9 @@
"Microphone volume control": {
"Microphone volume control": "Mikrofon ses seviyesi kontrolü"
},
"Middle Click Emulation": {
"Middle Click Emulation": ""
},
"Middle Section": {
"Middle Section": "Orta Bölüm"
},
@@ -4823,6 +4859,12 @@
"Mount Points": {
"Mount Points": ""
},
"Mouse & Touchpad": {
"Mouse & Touchpad": ""
},
"Mouse Settings": {
"Mouse Settings": ""
},
"Mouse clicks pass through the bar to windows behind it": {
"Mouse clicks pass through the bar to windows behind it": ""
},
@@ -4886,6 +4928,9 @@
"Native: platform renderer (FreeType).": {
"Native: platform renderer (FreeType).": ""
},
"Natural Scrolling": {
"Natural Scrolling": ""
},
"Natural Touchpad Scrolling": {
"Natural Touchpad Scrolling": ""
},
@@ -5033,6 +5078,9 @@
"No Rounding": {
"No Rounding": ""
},
"No Scroll": {
"No Scroll": ""
},
"No Shadow": {
"No Shadow": ""
},
@@ -5336,9 +5384,6 @@
"Not detected": {
"Not detected": "Algılanmadı"
},
"Not listed?": {
"Not listed?": ""
},
"Not paired": {
"Not paired": ""
},
@@ -5432,6 +5477,9 @@
"On": {
"On": ""
},
"On Button Down": {
"On Button Down": ""
},
"On indefinitely": {
"On indefinitely": ""
},
@@ -5450,6 +5498,9 @@
"Only adjust gamma based on time or location rules.": {
"Only adjust gamma based on time or location rules.": "Gamayı yalnızca zaman veya konum kurallarına göre ayarlayın."
},
"Only continue if you recognize this server certificate fingerprint.": {
"Only continue if you recognize this server certificate fingerprint.": ""
},
"Only on Battery": {
"Only on Battery": ""
},
@@ -5687,6 +5738,9 @@
"Pairing...": {
"Pairing...": "Eşleşiyor..."
},
"Partial": {
"Partial": ""
},
"Partly Cloudy": {
"Partly Cloudy": ""
},
@@ -5708,9 +5762,6 @@
"Password updated": {
"Password updated": ""
},
"Password...": {
"Password...": ""
},
"Passwords do not match.": {
"Passwords do not match.": ""
},
@@ -5894,6 +5945,9 @@
"Pointer": {
"Pointer": "İşaretçi"
},
"Pointer Speed": {
"Pointer Speed": ""
},
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": {
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": ""
},
@@ -6014,6 +6068,9 @@
"Pressure": {
"Pressure": "Basınç"
},
"Prevent accidental cursor jumps while typing": {
"Prevent accidental cursor jumps while typing": ""
},
"Prevent screen timeout": {
"Prevent screen timeout": "Ekran zaman aşımını önle"
},
@@ -6131,6 +6188,9 @@
"Protocol": {
"Protocol": "Protokol"
},
"QR Generator": {
"QR Generator": ""
},
"Qt": {
"Qt": ""
},
@@ -6383,6 +6443,9 @@
"Requires remembering the last user and session. Enable those options first.": {
"Requires remembering the last user and session. Enable those options first.": ""
},
"Requires the DMS Theme extension from the editor marketplace": {
"Requires the DMS Theme extension from the editor marketplace": ""
},
"Reset": {
"Reset": "Sıfırla"
},
@@ -6437,6 +6500,12 @@
"Reverse Scrolling Direction": {
"Reverse Scrolling Direction": "Ters Kaydırma Yönü"
},
"Reverse mouse wheel scrolling direction": {
"Reverse mouse wheel scrolling direction": ""
},
"Reverse two-finger scrolling direction": {
"Reverse two-finger scrolling direction": ""
},
"Reverse workspace switch direction when scrolling over the bar": {
"Reverse workspace switch direction when scrolling over the bar": "Bar üzerinde kaydırırken çalışma alanı geçiş yönünü tersine çevir"
},
@@ -6644,6 +6713,9 @@
"Scroll GitHub": {
"Scroll GitHub": ""
},
"Scroll Method": {
"Scroll Method": ""
},
"Scroll Wheel": {
"Scroll Wheel": "Kaydırma Tekerleği"
},
@@ -6659,6 +6731,9 @@
"Scrolling": {
"Scrolling": "Kaydırma"
},
"Scrolling Speed": {
"Scrolling Speed": ""
},
"Search App Actions": {
"Search App Actions": ""
},
@@ -6821,9 +6896,6 @@
"Select the palette algorithm used for wallpaper-based colors": {
"Select the palette algorithm used for wallpaper-based colors": "Duvar kağıdı tabanlı renkler için kullanılan palet algoritmasını seçin"
},
"Select user...": {
"Select user...": ""
},
"Select which keybind providers to include": {
"Select which keybind providers to include": ""
},
@@ -6992,6 +7064,9 @@
"Show": {
"Show": ""
},
"Show \"config reloaded\" Toast": {
"Show \"config reloaded\" Toast": ""
},
"Show 3rd Party": {
"Show 3rd Party": ""
},
@@ -7187,6 +7262,9 @@
"Show a notification when battery reaches the charge limit.": {
"Show a notification when battery reaches the charge limit.": ""
},
"Show a toast when the compositor config is reloaded": {
"Show a toast when the compositor config is reloaded": ""
},
"Show a warning popup when battery is running low.": {
"Show a warning popup when battery is running low.": ""
},
@@ -7529,6 +7607,9 @@
"Suspend then Hibernate": {
"Suspend then Hibernate": ""
},
"Swap primary and secondary mouse buttons": {
"Swap primary and secondary mouse buttons": ""
},
"Sway Website": {
"Sway Website": ""
},
@@ -7652,6 +7733,18 @@
"Tailscale not available": {
"Tailscale not available": ""
},
"Tap and Drag": {
"Tap and Drag": ""
},
"Tap and drag on the touchpad to move items": {
"Tap and drag on the touchpad to move items": ""
},
"Tap the touchpad surface to trigger left click clicks": {
"Tap the touchpad surface to trigger left click clicks": ""
},
"Tap to Click": {
"Tap to Click": ""
},
"Terminal": {
"Terminal": ""
},
@@ -7727,6 +7820,9 @@
"The rule applies to any window matching one of these.": {
"The rule applies to any window matching one of these.": ""
},
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": {
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": ""
},
"Theme & Colors": {
"Theme & Colors": "Tema & Renkler"
},
@@ -7919,9 +8015,6 @@
"Too many attempts - locked out": {
"Too many attempts - locked out": ""
},
"Too many failed attempts - account may be locked": {
"Too many failed attempts - account may be locked": ""
},
"Tools": {
"Tools": ""
},
@@ -7958,6 +8051,12 @@
"Touch your security key...": {
"Touch your security key...": ""
},
"Touchpad Settings": {
"Touchpad Settings": ""
},
"Touchpad Speed": {
"Touchpad Speed": ""
},
"Transform": {
"Transform": "Dönüştür"
},
@@ -8018,6 +8117,9 @@
"Turn off now": {
"Turn off now": ""
},
"Two Finger": {
"Two Finger": ""
},
"Type at least 2 characters": {
"Type at least 2 characters": ""
},
@@ -8159,6 +8261,9 @@
"Untrust": {
"Untrust": ""
},
"Untrusted VPN certificate": {
"Untrusted VPN certificate": ""
},
"Up to date": {
"Up to date": ""
},
@@ -8342,9 +8447,6 @@
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": {
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": ""
},
"Username...": {
"Username...": ""
},
"Users": {
"Users": ""
},
@@ -8765,6 +8867,9 @@
"attached": {
"attached": ""
},
"below AA": {
"below AA": ""
},
"brandon": {
"brandon": ""
},
File diff suppressed because it is too large Load Diff
+153 -48
View File
@@ -335,6 +335,9 @@
"About": {
"About": "Giới thiệu"
},
"Acceleration Profile": {
"Acceleration Profile": ""
},
"Accent Color": {
"Accent Color": "Màu nhấn"
},
@@ -410,6 +413,9 @@
"Adapters": {
"Adapters": "Bộ chuyển đổi"
},
"Adaptive": {
"Adaptive": ""
},
"Adaptive Media Width": {
"Adaptive Media Width": "Chiều rộng phương tiện thích ứng"
},
@@ -485,12 +491,21 @@
"Add to Autostart": {
"Add to Autostart": "Thêm vào Tự động khởi động"
},
"Adjust pointer sensitivity speed": {
"Adjust pointer sensitivity speed": ""
},
"Adjust scrolling sensitivity multiplier": {
"Adjust scrolling sensitivity multiplier": ""
},
"Adjust the bar height via inner padding": {
"Adjust the bar height via inner padding": "Điều chỉnh chiều cao của thanh thông qua khoảng đệm bên trong"
},
"Adjust the number of columns in grid view mode.": {
"Adjust the number of columns in grid view mode.": "Điều chỉnh số cột trong chế độ xem lưới."
},
"Adjust touchpad pointer speed": {
"Adjust touchpad pointer speed": ""
},
"Adjust volume per scroll indent": {
"Adjust volume per scroll indent": "Điều chỉnh âm lượng theo từng nấc cuộn"
},
@@ -575,6 +590,9 @@
"Always show when there's only one connected display": {
"Always show when there's only one connected display": "Luôn hiển thị khi chỉ có một màn hình được kết nối"
},
"Always use the durations above, even if an app requests a shorter or longer one": {
"Always use the durations above, even if an app requests a shorter or longer one": ""
},
"Always use this app for %1": {
"Always use this app for %1": "Luôn sử dụng ứng dụng này cho %1"
},
@@ -782,9 +800,6 @@
"Authenticated!": {
"Authenticated!": ""
},
"Authenticating...": {
"Authenticating...": "Đang xác thực..."
},
"Authentication": {
"Authentication": "Xác thực"
},
@@ -803,18 +818,6 @@
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": {
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": "Các thay đổi xác thực cần sudo. Đang mở cửa sổ dòng lệnh để bạn có thể sử dụng mật khẩu hoặc vân tay."
},
"Authentication error - try again": {
"Authentication error - try again": "Lỗi xác thực - hãy thử lại"
},
"Authentication failed - attempt %1 of %2": {
"Authentication failed - attempt %1 of %2": ""
},
"Authentication failed - lockout can occur": {
"Authentication failed - lockout can occur": ""
},
"Authentication failed - try again": {
"Authentication failed - try again": ""
},
"Authorize": {
"Authorize": "Ủy quyền"
},
@@ -878,9 +881,6 @@
"Auto-hide Dock": {
"Auto-hide Dock": "Tự động ẩn thanh dock"
},
"Auto-login": {
"Auto-login": "Tự động đăng nhập"
},
"Auto-login change needs a sync": {
"Auto-login change needs a sync": "Thay đổi tự động đăng nhập cần đồng bộ hóa"
},
@@ -980,24 +980,12 @@
"Available in Detailed and Forecast view modes": {
"Available in Detailed and Forecast view modes": "Có sẵn trong chế độ xem Chi tiết và Dự báo"
},
"Awaiting fingerprint authentication": {
"Awaiting fingerprint authentication": ""
},
"Awaiting fingerprint or security key authentication": {
"Awaiting fingerprint or security key authentication": ""
},
"Awaiting security key authentication": {
"Awaiting security key authentication": ""
},
"BSSID": {
"BSSID": "BSSID"
},
"Back": {
"Back": "Quay lại"
},
"Back to user list": {
"Back to user list": "Quay lại danh sách người dùng"
},
"Backend": {
"Backend": "Backend"
},
@@ -1454,6 +1442,9 @@
"Choose wallpaper folder": {
"Choose wallpaper folder": "Chọn thư mục hình nền"
},
"Choose when to generate scrolling events": {
"Choose when to generate scrolling events": ""
},
"Choose where notification popups appear on screen": {
"Choose where notification popups appear on screen": "Chọn nơi hộp thông báo nổi được hiển thị"
},
@@ -1688,6 +1679,9 @@
"Compositor Settings": {
"Compositor Settings": "Cài đặt Compositor"
},
"Compositor actions (focus, move, etc.)": {
"Compositor actions (focus, move, etc.)": ""
},
"Config Format": {
"Config Format": "Định dạng cấu hình"
},
@@ -1805,6 +1799,9 @@
"Contrast": {
"Contrast": "Độ tương phản"
},
"Contrast by variant": {
"Contrast by variant": ""
},
"Contributor": {
"Contributor": "Người đóng góp"
},
@@ -2390,6 +2387,15 @@
"Disable Output": {
"Disable Output": "Tắt đầu ra"
},
"Disable While Typing": {
"Disable While Typing": ""
},
"Disable on External Mouse": {
"Disable on External Mouse": ""
},
"Disable touchpad when an external mouse is connected": {
"Disable touchpad when an external mouse is connected": ""
},
"Disabled": {
"Disabled": "Đã tắt"
},
@@ -2549,6 +2555,9 @@
"Door Open": {
"Door Open": "Cửa mở"
},
"Drag Lock": {
"Drag Lock": ""
},
"Drag a widget by its handle here to reorder it or drop it into another group": {
"Drag a widget by its handle here to reorder it or drop it into another group": "Kéo một widget bằng tay cầm của nó tại đây để sắp xếp lại hoặc thả nó vào một nhóm khác"
},
@@ -2621,6 +2630,9 @@
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": {
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": "Động: Đường cong bezier lò xo với độ vọt lố — phần nhập vượt quá mục tiêu một thời gian ngắn rồi ổn định. Sống động và đầy biểu cảm."
},
"Edge": {
"Edge": ""
},
"Edge Hover Reveal": {
"Edge Hover Reveal": "Tiết lộ Khi Di chuột Qua Cạnh"
},
@@ -2669,6 +2681,9 @@
"Empty Trash (%1)": {
"Empty Trash (%1)": "Dọn sạch thùng rác (%1)"
},
"Emulate middle click by pressing left and right buttons": {
"Emulate middle click by pressing left and right buttons": ""
},
"Enable 10-bit color depth for wider color gamut and HDR support": {
"Enable 10-bit color depth for wider color gamut and HDR support": "Bật độ sâu màu 10-bit cho gam màu rộng hơn và hỗ trợ HDR"
},
@@ -2795,6 +2810,9 @@
"Enter password for ": {
"Enter password for ": "Nhập mật khẩu cho "
},
"Enter text to encode": {
"Enter text to encode": ""
},
"Enter this passkey on ": {
"Enter this passkey on ": "Nhập mã xác nhận này trên "
},
@@ -2993,6 +3011,9 @@
"Failed to fetch network QR code: %1": {
"Failed to fetch network QR code: %1": "Lấy mã QR mạng thất bại: %1"
},
"Failed to generate QR code: %1": {
"Failed to generate QR code: %1": ""
},
"Failed to generate systemd override": {
"Failed to generate systemd override": "Không thể tạo ghi đè systemd"
},
@@ -3263,6 +3284,12 @@
"Flags": {
"Flags": "Cờ"
},
"Flat": {
"Flat": ""
},
"Flat uses constant speed; Adaptive scales with movement speed": {
"Flat uses constant speed; Adaptive scales with movement speed": ""
},
"Flatpak": {
"Flatpak": ""
},
@@ -3962,6 +3989,9 @@
"If the field is hidden, it will appear as soon as a key is pressed.": {
"If the field is hidden, it will appear as soon as a key is pressed.": "Nếu trường bị ẩn, nó sẽ xuất hiện ngay khi một phím được nhấn."
},
"Ignore App-Requested Timeout": {
"Ignore App-Requested Timeout": ""
},
"Ignore Completely": {
"Ignore Completely": "Bỏ qua hoàn toàn"
},
@@ -4199,6 +4229,9 @@
"Keep My Edits": {
"Keep My Edits": "Giữ các chỉnh sửa của tôi"
},
"Keep dragging when finger is briefly lifted": {
"Keep dragging when finger is briefly lifted": ""
},
"Keep in Bar": {
"Keep in Bar": "Giữ trong thanh"
},
@@ -4334,6 +4367,9 @@
"Left Section": {
"Left Section": "Phần bên trái"
},
"Left-Handed Mode": {
"Left-Handed Mode": ""
},
"Light": {
"Light": "Nhẹ / Sáng"
},
@@ -4439,9 +4475,6 @@
"Locked": {
"Locked": "Đã khóa"
},
"Logging in...": {
"Logging in...": "Đang đăng nhập..."
},
"Login": {
"Login": "Đăng nhập"
},
@@ -4748,6 +4781,9 @@
"Microphone volume control": {
"Microphone volume control": "Điều khiển âm lượng micro"
},
"Middle Click Emulation": {
"Middle Click Emulation": ""
},
"Middle Section": {
"Middle Section": "Mục giữa"
},
@@ -4823,6 +4859,12 @@
"Mount Points": {
"Mount Points": "Điểm gắn (Mount points)"
},
"Mouse & Touchpad": {
"Mouse & Touchpad": ""
},
"Mouse Settings": {
"Mouse Settings": ""
},
"Mouse clicks pass through the bar to windows behind it": {
"Mouse clicks pass through the bar to windows behind it": "Các cú nhấp chuột đi xuyên qua thanh tới các cửa sổ phía sau"
},
@@ -4886,6 +4928,9 @@
"Native: platform renderer (FreeType).": {
"Native: platform renderer (FreeType).": "Gốc: trình kết xuất nền tảng (FreeType)."
},
"Natural Scrolling": {
"Natural Scrolling": ""
},
"Natural Touchpad Scrolling": {
"Natural Touchpad Scrolling": "Cuộn tự nhiên trên bàn di chuột"
},
@@ -5033,6 +5078,9 @@
"No Rounding": {
"No Rounding": "Không bo góc"
},
"No Scroll": {
"No Scroll": ""
},
"No Shadow": {
"No Shadow": "Không có bóng"
},
@@ -5336,9 +5384,6 @@
"Not detected": {
"Not detected": "Không phát hiện được"
},
"Not listed?": {
"Not listed?": "Không có trong danh sách?"
},
"Not paired": {
"Not paired": "Chưa ghép đôi"
},
@@ -5432,6 +5477,9 @@
"On": {
"On": "Bật"
},
"On Button Down": {
"On Button Down": ""
},
"On indefinitely": {
"On indefinitely": "Bật vô thời hạn"
},
@@ -5450,6 +5498,9 @@
"Only adjust gamma based on time or location rules.": {
"Only adjust gamma based on time or location rules.": "Chỉ điều chỉnh gamma dựa trên quy tắc thời gian hoặc địa điểm."
},
"Only continue if you recognize this server certificate fingerprint.": {
"Only continue if you recognize this server certificate fingerprint.": ""
},
"Only on Battery": {
"Only on Battery": "Chỉ Trên Pin"
},
@@ -5687,6 +5738,9 @@
"Pairing...": {
"Pairing...": "Đang ghép đôi..."
},
"Partial": {
"Partial": ""
},
"Partly Cloudy": {
"Partly Cloudy": "Có mây rải rác"
},
@@ -5708,9 +5762,6 @@
"Password updated": {
"Password updated": "Đã cập nhật mật khẩu"
},
"Password...": {
"Password...": "Mật khẩu..."
},
"Passwords do not match.": {
"Passwords do not match.": "Mật khẩu không khớp."
},
@@ -5894,6 +5945,9 @@
"Pointer": {
"Pointer": "Con trỏ"
},
"Pointer Speed": {
"Pointer Speed": ""
},
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": {
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": "Tích hợp Polkit đã bị tắt. Quản lý người dùng yêu cầu Polkit để nâng cao đặc quyền."
},
@@ -6014,6 +6068,9 @@
"Pressure": {
"Pressure": "Áp suất"
},
"Prevent accidental cursor jumps while typing": {
"Prevent accidental cursor jumps while typing": ""
},
"Prevent screen timeout": {
"Prevent screen timeout": "Ngăn tắt màn hình"
},
@@ -6131,6 +6188,9 @@
"Protocol": {
"Protocol": "Giao thức"
},
"QR Generator": {
"QR Generator": ""
},
"Qt": {
"Qt": "Qt"
},
@@ -6383,6 +6443,9 @@
"Requires remembering the last user and session. Enable those options first.": {
"Requires remembering the last user and session. Enable those options first.": "Yêu cầu ghi nhớ người dùng và phiên làm việc cuối. Hãy bật các tùy chọn đó trước."
},
"Requires the DMS Theme extension from the editor marketplace": {
"Requires the DMS Theme extension from the editor marketplace": ""
},
"Reset": {
"Reset": "Đặt lại"
},
@@ -6437,6 +6500,12 @@
"Reverse Scrolling Direction": {
"Reverse Scrolling Direction": "Đảo ngược hướng cuộn"
},
"Reverse mouse wheel scrolling direction": {
"Reverse mouse wheel scrolling direction": ""
},
"Reverse two-finger scrolling direction": {
"Reverse two-finger scrolling direction": ""
},
"Reverse workspace switch direction when scrolling over the bar": {
"Reverse workspace switch direction when scrolling over the bar": "Đảo ngược hướng chuyển đổi không gian làm việc khi cuộn trên thanh"
},
@@ -6644,6 +6713,9 @@
"Scroll GitHub": {
"Scroll GitHub": "Cuộn GitHub"
},
"Scroll Method": {
"Scroll Method": ""
},
"Scroll Wheel": {
"Scroll Wheel": "Bánh xe chuột"
},
@@ -6659,6 +6731,9 @@
"Scrolling": {
"Scrolling": "Cuộn"
},
"Scrolling Speed": {
"Scrolling Speed": ""
},
"Search App Actions": {
"Search App Actions": "Tìm kiếm hành động ứng dụng"
},
@@ -6821,9 +6896,6 @@
"Select the palette algorithm used for wallpaper-based colors": {
"Select the palette algorithm used for wallpaper-based colors": "Chọn thuật toán bảng màu được sử dụng cho màu dựa trên hình nền"
},
"Select user...": {
"Select user...": "Chọn người dùng..."
},
"Select which keybind providers to include": {
"Select which keybind providers to include": "Chọn các nhà cung cấp phím tắt nào để bao gồm"
},
@@ -6992,6 +7064,9 @@
"Show": {
"Show": "Hiển thị"
},
"Show \"config reloaded\" Toast": {
"Show \"config reloaded\" Toast": ""
},
"Show 3rd Party": {
"Show 3rd Party": "Hiển thị ứng dụng Bên thứ ba"
},
@@ -7187,6 +7262,9 @@
"Show a notification when battery reaches the charge limit.": {
"Show a notification when battery reaches the charge limit.": "Hiển thị thông báo khi pin đạt giới hạn sạc."
},
"Show a toast when the compositor config is reloaded": {
"Show a toast when the compositor config is reloaded": ""
},
"Show a warning popup when battery is running low.": {
"Show a warning popup when battery is running low.": "Hiển thị cửa sổ cảnh báo khi pin sắp hết."
},
@@ -7529,6 +7607,9 @@
"Suspend then Hibernate": {
"Suspend then Hibernate": "Ngủ rồi Ngủ đông"
},
"Swap primary and secondary mouse buttons": {
"Swap primary and secondary mouse buttons": ""
},
"Sway Website": {
"Sway Website": "Trang web Sway"
},
@@ -7652,6 +7733,18 @@
"Tailscale not available": {
"Tailscale not available": "Tailscale không khả dụng"
},
"Tap and Drag": {
"Tap and Drag": ""
},
"Tap and drag on the touchpad to move items": {
"Tap and drag on the touchpad to move items": ""
},
"Tap the touchpad surface to trigger left click clicks": {
"Tap the touchpad surface to trigger left click clicks": ""
},
"Tap to Click": {
"Tap to Click": ""
},
"Terminal": {
"Terminal": "Cửa sổ dòng lệnh"
},
@@ -7727,6 +7820,9 @@
"The rule applies to any window matching one of these.": {
"The rule applies to any window matching one of these.": "Quy tắc áp dụng cho bất kỳ cửa sổ nào khớp với một trong các điều kiện này."
},
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": {
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": ""
},
"Theme & Colors": {
"Theme & Colors": "Chủ đề & Màu"
},
@@ -7919,9 +8015,6 @@
"Too many attempts - locked out": {
"Too many attempts - locked out": "Quá nhiều lần thử - đã bị khóa"
},
"Too many failed attempts - account may be locked": {
"Too many failed attempts - account may be locked": "Quá nhiều lần thử thất bại - tài khoản có thể đã bị khóa"
},
"Tools": {
"Tools": "Công cụ"
},
@@ -7958,6 +8051,12 @@
"Touch your security key...": {
"Touch your security key...": "Chạm vào khóa bảo mật của bạn..."
},
"Touchpad Settings": {
"Touchpad Settings": ""
},
"Touchpad Speed": {
"Touchpad Speed": ""
},
"Transform": {
"Transform": "Biến đổi"
},
@@ -8018,6 +8117,9 @@
"Turn off now": {
"Turn off now": "Tắt ngay"
},
"Two Finger": {
"Two Finger": ""
},
"Type at least 2 characters": {
"Type at least 2 characters": "Nhập ít nhất 2 ký tự"
},
@@ -8159,6 +8261,9 @@
"Untrust": {
"Untrust": "Ngừng tin cậy"
},
"Untrusted VPN certificate": {
"Untrusted VPN certificate": ""
},
"Up to date": {
"Up to date": "Đã cập nhật"
},
@@ -8342,9 +8447,6 @@
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": {
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": "Tên người dùng phải bắt đầu bằng chữ thường hoặc dấu gạch dưới và chỉ chứa các chữ cái thường, chữ số, dấu gạch nối hoặc dấu gạch dưới."
},
"Username...": {
"Username...": "Tên người dùng..."
},
"Users": {
"Users": "Người dùng"
},
@@ -8765,6 +8867,9 @@
"attached": {
"attached": "đã đính kèm"
},
"below AA": {
"below AA": ""
},
"brandon": {
"brandon": "brandon (Kiểu)"
},
File diff suppressed because it is too large Load Diff
+153 -48
View File
@@ -335,6 +335,9 @@
"About": {
"About": "關於"
},
"Acceleration Profile": {
"Acceleration Profile": ""
},
"Accent Color": {
"Accent Color": "強調色"
},
@@ -410,6 +413,9 @@
"Adapters": {
"Adapters": "轉接器"
},
"Adaptive": {
"Adaptive": ""
},
"Adaptive Media Width": {
"Adaptive Media Width": "自適應媒體寬度"
},
@@ -485,12 +491,21 @@
"Add to Autostart": {
"Add to Autostart": "加入自動啟動"
},
"Adjust pointer sensitivity speed": {
"Adjust pointer sensitivity speed": ""
},
"Adjust scrolling sensitivity multiplier": {
"Adjust scrolling sensitivity multiplier": ""
},
"Adjust the bar height via inner padding": {
"Adjust the bar height via inner padding": "透過內部邊距調整工具列高度"
},
"Adjust the number of columns in grid view mode.": {
"Adjust the number of columns in grid view mode.": "調整網格檢視模式中的欄數。"
},
"Adjust touchpad pointer speed": {
"Adjust touchpad pointer speed": ""
},
"Adjust volume per scroll indent": {
"Adjust volume per scroll indent": "調整每滾動縮排的音量"
},
@@ -575,6 +590,9 @@
"Always show when there's only one connected display": {
"Always show when there's only one connected display": "僅連接一個顯示器時一律顯示"
},
"Always use the durations above, even if an app requests a shorter or longer one": {
"Always use the durations above, even if an app requests a shorter or longer one": ""
},
"Always use this app for %1": {
"Always use this app for %1": "始終使用此應用程式開啟 %1"
},
@@ -782,9 +800,6 @@
"Authenticated!": {
"Authenticated!": ""
},
"Authenticating...": {
"Authenticating...": "正在驗證..."
},
"Authentication": {
"Authentication": "驗證"
},
@@ -803,18 +818,6 @@
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": {
"Authentication changes need sudo. Opening terminal so you can use password or fingerprint.": "身份驗證變更需要 sudo。正在開啟終端機,以便您使用密碼或指紋。"
},
"Authentication error - try again": {
"Authentication error - try again": "驗證錯誤 - 請再試一次"
},
"Authentication failed - attempt %1 of %2": {
"Authentication failed - attempt %1 of %2": ""
},
"Authentication failed - lockout can occur": {
"Authentication failed - lockout can occur": ""
},
"Authentication failed - try again": {
"Authentication failed - try again": ""
},
"Authorize": {
"Authorize": "授權"
},
@@ -878,9 +881,6 @@
"Auto-hide Dock": {
"Auto-hide Dock": "自動隱藏 Dock"
},
"Auto-login": {
"Auto-login": "自動登入"
},
"Auto-login change needs a sync": {
"Auto-login change needs a sync": ""
},
@@ -980,24 +980,12 @@
"Available in Detailed and Forecast view modes": {
"Available in Detailed and Forecast view modes": "可於詳細和預報檢視模式中顯示"
},
"Awaiting fingerprint authentication": {
"Awaiting fingerprint authentication": ""
},
"Awaiting fingerprint or security key authentication": {
"Awaiting fingerprint or security key authentication": ""
},
"Awaiting security key authentication": {
"Awaiting security key authentication": ""
},
"BSSID": {
"BSSID": "BSSID"
},
"Back": {
"Back": "返回"
},
"Back to user list": {
"Back to user list": "返回使用者列表"
},
"Backend": {
"Backend": "後端"
},
@@ -1454,6 +1442,9 @@
"Choose wallpaper folder": {
"Choose wallpaper folder": ""
},
"Choose when to generate scrolling events": {
"Choose when to generate scrolling events": ""
},
"Choose where notification popups appear on screen": {
"Choose where notification popups appear on screen": "選擇通知彈出視窗在螢幕上出現的位置"
},
@@ -1688,6 +1679,9 @@
"Compositor Settings": {
"Compositor Settings": "合成器設定"
},
"Compositor actions (focus, move, etc.)": {
"Compositor actions (focus, move, etc.)": ""
},
"Config Format": {
"Config Format": "配置格式"
},
@@ -1805,6 +1799,9 @@
"Contrast": {
"Contrast": "對比"
},
"Contrast by variant": {
"Contrast by variant": ""
},
"Contributor": {
"Contributor": "貢獻者"
},
@@ -2390,6 +2387,15 @@
"Disable Output": {
"Disable Output": "停用輸出"
},
"Disable While Typing": {
"Disable While Typing": ""
},
"Disable on External Mouse": {
"Disable on External Mouse": ""
},
"Disable touchpad when an external mouse is connected": {
"Disable touchpad when an external mouse is connected": ""
},
"Disabled": {
"Disabled": "已停用"
},
@@ -2549,6 +2555,9 @@
"Door Open": {
"Door Open": "門開啟"
},
"Drag Lock": {
"Drag Lock": ""
},
"Drag a widget by its handle here to reorder it or drop it into another group": {
"Drag a widget by its handle here to reorder it or drop it into another group": ""
},
@@ -2621,6 +2630,9 @@
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": {
"Dynamic: Spring bezier with overshoot — entry briefly exceeds its target then settles. Expressive and alive.": "動態:帶有過衝的彈簧貝茲曲線 — 進入時會短暫超出目標然後穩定下來。富有表現力且生動。"
},
"Edge": {
"Edge": ""
},
"Edge Hover Reveal": {
"Edge Hover Reveal": ""
},
@@ -2669,6 +2681,9 @@
"Empty Trash (%1)": {
"Empty Trash (%1)": "清空垃圾桶 (%1)"
},
"Emulate middle click by pressing left and right buttons": {
"Emulate middle click by pressing left and right buttons": ""
},
"Enable 10-bit color depth for wider color gamut and HDR support": {
"Enable 10-bit color depth for wider color gamut and HDR support": "啟用 10 位元色彩深度以獲得更寬廣的色域和 HDR 支援"
},
@@ -2795,6 +2810,9 @@
"Enter password for ": {
"Enter password for ": "輸入密碼 "
},
"Enter text to encode": {
"Enter text to encode": ""
},
"Enter this passkey on ": {
"Enter this passkey on ": "輸入此密碼 "
},
@@ -2993,6 +3011,9 @@
"Failed to fetch network QR code: %1": {
"Failed to fetch network QR code: %1": "擷取網路 QR 碼失敗:%1"
},
"Failed to generate QR code: %1": {
"Failed to generate QR code: %1": ""
},
"Failed to generate systemd override": {
"Failed to generate systemd override": "產生 systemd 覆蓋檔失敗"
},
@@ -3263,6 +3284,12 @@
"Flags": {
"Flags": "標幟"
},
"Flat": {
"Flat": ""
},
"Flat uses constant speed; Adaptive scales with movement speed": {
"Flat uses constant speed; Adaptive scales with movement speed": ""
},
"Flatpak": {
"Flatpak": ""
},
@@ -3962,6 +3989,9 @@
"If the field is hidden, it will appear as soon as a key is pressed.": {
"If the field is hidden, it will appear as soon as a key is pressed.": "如果此欄位已隱藏,只要按下按鍵便會顯示。"
},
"Ignore App-Requested Timeout": {
"Ignore App-Requested Timeout": ""
},
"Ignore Completely": {
"Ignore Completely": "完全忽略"
},
@@ -4199,6 +4229,9 @@
"Keep My Edits": {
"Keep My Edits": ""
},
"Keep dragging when finger is briefly lifted": {
"Keep dragging when finger is briefly lifted": ""
},
"Keep in Bar": {
"Keep in Bar": ""
},
@@ -4334,6 +4367,9 @@
"Left Section": {
"Left Section": "左方區塊"
},
"Left-Handed Mode": {
"Left-Handed Mode": ""
},
"Light": {
"Light": "細"
},
@@ -4439,9 +4475,6 @@
"Locked": {
"Locked": "已鎖定"
},
"Logging in...": {
"Logging in...": "正在登入..."
},
"Login": {
"Login": "登入"
},
@@ -4748,6 +4781,9 @@
"Microphone volume control": {
"Microphone volume control": "麥克風音量控制"
},
"Middle Click Emulation": {
"Middle Click Emulation": ""
},
"Middle Section": {
"Middle Section": "中間部分"
},
@@ -4823,6 +4859,12 @@
"Mount Points": {
"Mount Points": "掛載點"
},
"Mouse & Touchpad": {
"Mouse & Touchpad": ""
},
"Mouse Settings": {
"Mouse Settings": ""
},
"Mouse clicks pass through the bar to windows behind it": {
"Mouse clicks pass through the bar to windows behind it": "滑鼠點擊可穿透工具列並作用於後方的視窗"
},
@@ -4886,6 +4928,9 @@
"Native: platform renderer (FreeType).": {
"Native: platform renderer (FreeType).": "原生:平台渲染器 (FreeType)。"
},
"Natural Scrolling": {
"Natural Scrolling": ""
},
"Natural Touchpad Scrolling": {
"Natural Touchpad Scrolling": ""
},
@@ -5033,6 +5078,9 @@
"No Rounding": {
"No Rounding": "無圓角"
},
"No Scroll": {
"No Scroll": ""
},
"No Shadow": {
"No Shadow": "無陰影"
},
@@ -5336,9 +5384,6 @@
"Not detected": {
"Not detected": "未偵測到"
},
"Not listed?": {
"Not listed?": "未列出?"
},
"Not paired": {
"Not paired": "未配對"
},
@@ -5432,6 +5477,9 @@
"On": {
"On": "開啟"
},
"On Button Down": {
"On Button Down": ""
},
"On indefinitely": {
"On indefinitely": "無限期"
},
@@ -5450,6 +5498,9 @@
"Only adjust gamma based on time or location rules.": {
"Only adjust gamma based on time or location rules.": "僅根據時間或位置規則調整 gamma。"
},
"Only continue if you recognize this server certificate fingerprint.": {
"Only continue if you recognize this server certificate fingerprint.": ""
},
"Only on Battery": {
"Only on Battery": ""
},
@@ -5687,6 +5738,9 @@
"Pairing...": {
"Pairing...": "正在配對..."
},
"Partial": {
"Partial": ""
},
"Partly Cloudy": {
"Partly Cloudy": "多雲"
},
@@ -5708,9 +5762,6 @@
"Password updated": {
"Password updated": "密碼已更新"
},
"Password...": {
"Password...": "密碼..."
},
"Passwords do not match.": {
"Passwords do not match.": "密碼不符。"
},
@@ -5894,6 +5945,9 @@
"Pointer": {
"Pointer": "指標"
},
"Pointer Speed": {
"Pointer Speed": ""
},
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": {
"Polkit integration is disabled. User management requires Polkit to elevate privileges.": "Polkit 整合已停用。使用者管理需要 Polkit 來提升權限。"
},
@@ -6014,6 +6068,9 @@
"Pressure": {
"Pressure": "氣壓"
},
"Prevent accidental cursor jumps while typing": {
"Prevent accidental cursor jumps while typing": ""
},
"Prevent screen timeout": {
"Prevent screen timeout": "防止螢幕超時"
},
@@ -6131,6 +6188,9 @@
"Protocol": {
"Protocol": "協定"
},
"QR Generator": {
"QR Generator": ""
},
"Qt": {
"Qt": "Qt"
},
@@ -6383,6 +6443,9 @@
"Requires remembering the last user and session. Enable those options first.": {
"Requires remembering the last user and session. Enable those options first.": "需要記憶最後使用的使用者與工作階段。請先啟用這些選項。"
},
"Requires the DMS Theme extension from the editor marketplace": {
"Requires the DMS Theme extension from the editor marketplace": ""
},
"Reset": {
"Reset": "重設"
},
@@ -6437,6 +6500,12 @@
"Reverse Scrolling Direction": {
"Reverse Scrolling Direction": "反轉捲動方向"
},
"Reverse mouse wheel scrolling direction": {
"Reverse mouse wheel scrolling direction": ""
},
"Reverse two-finger scrolling direction": {
"Reverse two-finger scrolling direction": ""
},
"Reverse workspace switch direction when scrolling over the bar": {
"Reverse workspace switch direction when scrolling over the bar": "在工具列上捲動時反轉工作區切換方向"
},
@@ -6644,6 +6713,9 @@
"Scroll GitHub": {
"Scroll GitHub": "捲動 GitHub"
},
"Scroll Method": {
"Scroll Method": ""
},
"Scroll Wheel": {
"Scroll Wheel": "滾輪"
},
@@ -6659,6 +6731,9 @@
"Scrolling": {
"Scrolling": "滾動"
},
"Scrolling Speed": {
"Scrolling Speed": ""
},
"Search App Actions": {
"Search App Actions": "搜尋應用程式動作"
},
@@ -6821,9 +6896,6 @@
"Select the palette algorithm used for wallpaper-based colors": {
"Select the palette algorithm used for wallpaper-based colors": "請選擇調色板演算法,以桌布的顏色為基底。"
},
"Select user...": {
"Select user...": "選擇使用者..."
},
"Select which keybind providers to include": {
"Select which keybind providers to include": "選擇要包含哪些快捷鍵提供者"
},
@@ -6992,6 +7064,9 @@
"Show": {
"Show": "顯示"
},
"Show \"config reloaded\" Toast": {
"Show \"config reloaded\" Toast": ""
},
"Show 3rd Party": {
"Show 3rd Party": "顯示第三方"
},
@@ -7187,6 +7262,9 @@
"Show a notification when battery reaches the charge limit.": {
"Show a notification when battery reaches the charge limit.": ""
},
"Show a toast when the compositor config is reloaded": {
"Show a toast when the compositor config is reloaded": ""
},
"Show a warning popup when battery is running low.": {
"Show a warning popup when battery is running low.": ""
},
@@ -7529,6 +7607,9 @@
"Suspend then Hibernate": {
"Suspend then Hibernate": "掛起後休眠"
},
"Swap primary and secondary mouse buttons": {
"Swap primary and secondary mouse buttons": ""
},
"Sway Website": {
"Sway Website": "Sway 網站"
},
@@ -7652,6 +7733,18 @@
"Tailscale not available": {
"Tailscale not available": "Tailscale 不可用"
},
"Tap and Drag": {
"Tap and Drag": ""
},
"Tap and drag on the touchpad to move items": {
"Tap and drag on the touchpad to move items": ""
},
"Tap the touchpad surface to trigger left click clicks": {
"Tap the touchpad surface to trigger left click clicks": ""
},
"Tap to Click": {
"Tap to Click": ""
},
"Terminal": {
"Terminal": "終端機"
},
@@ -7727,6 +7820,9 @@
"The rule applies to any window matching one of these.": {
"The rule applies to any window matching one of these.": "該規則適用於任何符合其中一項條件的視窗。"
},
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": {
"The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.": ""
},
"Theme & Colors": {
"Theme & Colors": "主題和顏色"
},
@@ -7919,9 +8015,6 @@
"Too many attempts - locked out": {
"Too many attempts - locked out": "嘗試次數過多 - 已鎖定"
},
"Too many failed attempts - account may be locked": {
"Too many failed attempts - account may be locked": "嘗試失敗次數過多 - 帳戶可能已鎖定"
},
"Tools": {
"Tools": "工具"
},
@@ -7958,6 +8051,12 @@
"Touch your security key...": {
"Touch your security key...": "輕觸您的安全金鑰..."
},
"Touchpad Settings": {
"Touchpad Settings": ""
},
"Touchpad Speed": {
"Touchpad Speed": ""
},
"Transform": {
"Transform": "變形"
},
@@ -8018,6 +8117,9 @@
"Turn off now": {
"Turn off now": "立即關閉"
},
"Two Finger": {
"Two Finger": ""
},
"Type at least 2 characters": {
"Type at least 2 characters": "請輸入至少 2 個字元"
},
@@ -8159,6 +8261,9 @@
"Untrust": {
"Untrust": "不信任"
},
"Untrusted VPN certificate": {
"Untrusted VPN certificate": ""
},
"Up to date": {
"Up to date": "最新"
},
@@ -8342,9 +8447,6 @@
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": {
"Username must start with a lowercase letter or underscore and contain only lowercase letters, digits, hyphens, or underscores.": "使用者名稱必須以小寫字母或底線開頭,且只能包含小寫字母、數字、連字號或底線。"
},
"Username...": {
"Username...": "使用者名稱..."
},
"Users": {
"Users": "使用者"
},
@@ -8765,6 +8867,9 @@
"attached": {
"attached": "已附加"
},
"below AA": {
"below AA": ""
},
"brandon": {
"brandon": "布蘭登"
},
@@ -4692,14 +4692,20 @@
"appearance",
"code",
"colors",
"colour",
"editor",
"extension",
"look",
"marketplace",
"matugen",
"requires",
"scheme",
"style",
"template",
"theme",
"vscode"
]
],
"description": "Requires the DMS Theme extension from the editor marketplace"
},
{
"section": "matugenTemplateWezterm",
+358 -57
View File
@@ -783,6 +783,13 @@
"reference": "",
"comment": ""
},
{
"term": "Acceleration Profile",
"translation": "",
"context": "Acceleration Profile",
"reference": "",
"comment": ""
},
{
"term": "Accent Color",
"translation": "",
@@ -965,6 +972,13 @@
"reference": "",
"comment": ""
},
{
"term": "Adaptive",
"translation": "",
"context": "Adaptive",
"reference": "",
"comment": ""
},
{
"term": "Adaptive Media Width",
"translation": "",
@@ -1126,6 +1140,20 @@
"reference": "",
"comment": ""
},
{
"term": "Adjust pointer sensitivity speed",
"translation": "",
"context": "Adjust pointer sensitivity speed",
"reference": "",
"comment": ""
},
{
"term": "Adjust scrolling sensitivity multiplier",
"translation": "",
"context": "Adjust scrolling sensitivity multiplier",
"reference": "",
"comment": ""
},
{
"term": "Adjust the bar height via inner padding",
"translation": "",
@@ -1140,6 +1168,13 @@
"reference": "",
"comment": ""
},
{
"term": "Adjust touchpad pointer speed",
"translation": "",
"context": "Adjust touchpad pointer speed",
"reference": "",
"comment": ""
},
{
"term": "Adjust volume per scroll indent",
"translation": "",
@@ -1336,6 +1371,13 @@
"reference": "",
"comment": ""
},
{
"term": "Always use the durations above, even if an app requests a shorter or longer one",
"translation": "",
"context": "Always use the durations above, even if an app requests a shorter or longer one",
"reference": "",
"comment": ""
},
{
"term": "Always use this app for %1",
"translation": "",
@@ -3331,6 +3373,13 @@
"reference": "",
"comment": ""
},
{
"term": "Choose when to generate scrolling events",
"translation": "",
"context": "Choose when to generate scrolling events",
"reference": "",
"comment": ""
},
{
"term": "Choose where notification popups appear on screen",
"translation": "",
@@ -3870,6 +3919,13 @@
"reference": "",
"comment": ""
},
{
"term": "Compositor actions (focus, move, etc.)",
"translation": "",
"context": "Compositor actions (focus, move, etc.)",
"reference": "",
"comment": "keybind action type tooltip"
},
{
"term": "Config Format",
"translation": "",
@@ -4143,6 +4199,13 @@
"reference": "",
"comment": ""
},
{
"term": "Contrast by variant",
"translation": "",
"context": "Contrast by variant",
"reference": "",
"comment": "WCAG breakdown popup heading"
},
{
"term": "Contributor",
"translation": "",
@@ -5522,6 +5585,27 @@
"reference": "",
"comment": ""
},
{
"term": "Disable While Typing",
"translation": "",
"context": "Disable While Typing",
"reference": "",
"comment": ""
},
{
"term": "Disable on External Mouse",
"translation": "",
"context": "Disable on External Mouse",
"reference": "",
"comment": ""
},
{
"term": "Disable touchpad when an external mouse is connected",
"translation": "",
"context": "Disable touchpad when an external mouse is connected",
"reference": "",
"comment": ""
},
{
"term": "Disabled",
"translation": "",
@@ -5900,6 +5984,13 @@
"reference": "",
"comment": ""
},
{
"term": "Drag Lock",
"translation": "",
"context": "Drag Lock",
"reference": "",
"comment": ""
},
{
"term": "Drag a widget by its handle here to reorder it or drop it into another group",
"translation": "",
@@ -6068,6 +6159,13 @@
"reference": "",
"comment": ""
},
{
"term": "Edge",
"translation": "",
"context": "Edge",
"reference": "",
"comment": ""
},
{
"term": "Edge Hover Reveal",
"translation": "",
@@ -6180,6 +6278,13 @@
"reference": "",
"comment": ""
},
{
"term": "Emulate middle click by pressing left and right buttons",
"translation": "",
"context": "Emulate middle click by pressing left and right buttons",
"reference": "",
"comment": ""
},
{
"term": "Enable 10-bit color depth for wider color gamut and HDR support",
"translation": "",
@@ -6474,6 +6579,13 @@
"reference": "",
"comment": ""
},
{
"term": "Enter text to encode",
"translation": "",
"context": "Enter text to encode",
"reference": "",
"comment": ""
},
{
"term": "Enter this passkey on ",
"translation": "",
@@ -6740,13 +6852,6 @@
"reference": "",
"comment": ""
},
{
"term": "Failed to add printer to class",
"translation": "",
"context": "Failed to add printer to class",
"reference": "",
"comment": ""
},
{
"term": "Failed to apply %1 colors",
"translation": "",
@@ -6936,6 +7041,13 @@
"reference": "",
"comment": ""
},
{
"term": "Failed to generate QR code: %1",
"translation": "",
"context": "Failed to generate QR code: %1",
"reference": "",
"comment": ""
},
{
"term": "Failed to generate systemd override",
"translation": "",
@@ -6978,13 +7090,6 @@
"reference": "",
"comment": ""
},
{
"term": "Failed to move job",
"translation": "",
"context": "Failed to move job",
"reference": "",
"comment": ""
},
{
"term": "Failed to move to trash",
"translation": "",
@@ -7062,13 +7167,6 @@
"reference": "",
"comment": ""
},
{
"term": "Failed to remove printer from class",
"translation": "",
"context": "Failed to remove printer from class",
"reference": "",
"comment": ""
},
{
"term": "Failed to restart audio system",
"translation": "",
@@ -7286,27 +7384,6 @@
"reference": "",
"comment": ""
},
{
"term": "Failed to update description",
"translation": "",
"context": "Failed to update description",
"reference": "",
"comment": ""
},
{
"term": "Failed to update location",
"translation": "",
"context": "Failed to update location",
"reference": "",
"comment": ""
},
{
"term": "Failed to update sharing",
"translation": "",
"context": "Failed to update sharing",
"reference": "",
"comment": ""
},
{
"term": "Failed to write autostart entry",
"translation": "",
@@ -7559,6 +7636,20 @@
"reference": "",
"comment": ""
},
{
"term": "Flat",
"translation": "",
"context": "Flat",
"reference": "",
"comment": ""
},
{
"term": "Flat uses constant speed; Adaptive scales with movement speed",
"translation": "",
"context": "Flat uses constant speed; Adaptive scales with movement speed",
"reference": "",
"comment": ""
},
{
"term": "Flatpak",
"translation": "",
@@ -9211,6 +9302,13 @@
"reference": "",
"comment": ""
},
{
"term": "Ignore App-Requested Timeout",
"translation": "",
"context": "Ignore App-Requested Timeout",
"reference": "",
"comment": ""
},
{
"term": "Ignore Completely",
"translation": "",
@@ -9757,6 +9855,13 @@
"reference": "",
"comment": ""
},
{
"term": "Keep dragging when finger is briefly lifted",
"translation": "",
"context": "Keep dragging when finger is briefly lifted",
"reference": "",
"comment": ""
},
{
"term": "Keep in Bar",
"translation": "",
@@ -10072,6 +10177,13 @@
"reference": "",
"comment": ""
},
{
"term": "Left-Handed Mode",
"translation": "",
"context": "Left-Handed Mode",
"reference": "",
"comment": ""
},
{
"term": "Light",
"translation": "",
@@ -11038,6 +11150,13 @@
"reference": "",
"comment": ""
},
{
"term": "Middle Click Emulation",
"translation": "",
"context": "Middle Click Emulation",
"reference": "",
"comment": ""
},
{
"term": "Middle Section",
"translation": "",
@@ -11220,6 +11339,20 @@
"reference": "",
"comment": "mount points header in system monitor"
},
{
"term": "Mouse & Touchpad",
"translation": "",
"context": "Mouse & Touchpad",
"reference": "",
"comment": ""
},
{
"term": "Mouse Settings",
"translation": "",
"context": "Mouse Settings",
"reference": "",
"comment": ""
},
{
"term": "Mouse clicks pass through the bar to windows behind it",
"translation": "",
@@ -11374,6 +11507,13 @@
"reference": "",
"comment": ""
},
{
"term": "Natural Scrolling",
"translation": "",
"context": "Natural Scrolling",
"reference": "",
"comment": ""
},
{
"term": "Natural Touchpad Scrolling",
"translation": "",
@@ -11591,13 +11731,6 @@
"reference": "",
"comment": ""
},
{
"term": "Niri compositor actions (focus, move, etc.)",
"translation": "",
"context": "Niri compositor actions (focus, move, etc.)",
"reference": "",
"comment": ""
},
{
"term": "No",
"translation": "",
@@ -11710,6 +11843,13 @@
"reference": "",
"comment": ""
},
{
"term": "No Scroll",
"translation": "",
"context": "No Scroll",
"reference": "",
"comment": ""
},
{
"term": "No Shadow",
"translation": "",
@@ -12641,6 +12781,13 @@
"reference": "",
"comment": ""
},
{
"term": "On Button Down",
"translation": "",
"context": "On Button Down",
"reference": "",
"comment": ""
},
{
"term": "On indefinitely",
"translation": "",
@@ -12683,6 +12830,13 @@
"reference": "",
"comment": ""
},
{
"term": "Only continue if you recognize this server certificate fingerprint.",
"translation": "",
"context": "Only continue if you recognize this server certificate fingerprint.",
"reference": "",
"comment": "Warning shown before trusting an unverified VPN server certificate"
},
{
"term": "Only on Battery",
"translation": "",
@@ -13243,6 +13397,13 @@
"reference": "",
"comment": "KDE Connect pairing in progress status"
},
{
"term": "Partial",
"translation": "",
"context": "Partial",
"reference": "",
"comment": "contrast badge suffix: only some variants pass"
},
{
"term": "Partly Cloudy",
"translation": "",
@@ -13719,6 +13880,13 @@
"reference": "",
"comment": ""
},
{
"term": "Pointer Speed",
"translation": "",
"context": "Pointer Speed",
"reference": "",
"comment": ""
},
{
"term": "Polkit integration is disabled. User management requires Polkit to elevate privileges.",
"translation": "",
@@ -14006,6 +14174,13 @@
"reference": "",
"comment": ""
},
{
"term": "Prevent accidental cursor jumps while typing",
"translation": "",
"context": "Prevent accidental cursor jumps while typing",
"reference": "",
"comment": ""
},
{
"term": "Prevent screen timeout",
"translation": "",
@@ -14286,6 +14461,13 @@
"reference": "",
"comment": "Label for printer protocol selector, e.g. ipp, ipps, lpd, socket"
},
{
"term": "QR Generator",
"translation": "",
"context": "QR Generator",
"reference": "",
"comment": ""
},
{
"term": "Qt",
"translation": "",
@@ -14881,6 +15063,13 @@
"reference": "",
"comment": ""
},
{
"term": "Requires the DMS Theme extension from the editor marketplace",
"translation": "",
"context": "Requires the DMS Theme extension from the editor marketplace",
"reference": "",
"comment": "vscode matugen template description"
},
{
"term": "Reset",
"translation": "",
@@ -15007,6 +15196,20 @@
"reference": "",
"comment": ""
},
{
"term": "Reverse mouse wheel scrolling direction",
"translation": "",
"context": "Reverse mouse wheel scrolling direction",
"reference": "",
"comment": ""
},
{
"term": "Reverse two-finger scrolling direction",
"translation": "",
"context": "Reverse two-finger scrolling direction",
"reference": "",
"comment": ""
},
{
"term": "Reverse workspace switch direction when scrolling over the bar",
"translation": "",
@@ -15497,6 +15700,13 @@
"reference": "",
"comment": ""
},
{
"term": "Scroll Method",
"translation": "",
"context": "Scroll Method",
"reference": "",
"comment": ""
},
{
"term": "Scroll Wheel",
"translation": "",
@@ -15532,6 +15742,13 @@
"reference": "",
"comment": ""
},
{
"term": "Scrolling Speed",
"translation": "",
"context": "Scrolling Speed",
"reference": "",
"comment": ""
},
{
"term": "Search App Actions",
"translation": "",
@@ -16309,6 +16526,13 @@
"reference": "",
"comment": ""
},
{
"term": "Show \"config reloaded\" Toast",
"translation": "",
"context": "Show \"config reloaded\" Toast",
"reference": "",
"comment": ""
},
{
"term": "Show 3rd Party",
"translation": "",
@@ -16764,6 +16988,13 @@
"reference": "",
"comment": ""
},
{
"term": "Show a toast when the compositor config is reloaded",
"translation": "",
"context": "Show a toast when the compositor config is reloaded",
"reference": "",
"comment": ""
},
{
"term": "Show a warning popup when battery is running low.",
"translation": "",
@@ -17590,6 +17821,13 @@
"reference": "",
"comment": ""
},
{
"term": "Swap primary and secondary mouse buttons",
"translation": "",
"context": "Swap primary and secondary mouse buttons",
"reference": "",
"comment": ""
},
{
"term": "Sway Website",
"translation": "",
@@ -17884,6 +18122,34 @@
"reference": "",
"comment": "Warning when Tailscale service is not running"
},
{
"term": "Tap and Drag",
"translation": "",
"context": "Tap and Drag",
"reference": "",
"comment": ""
},
{
"term": "Tap and drag on the touchpad to move items",
"translation": "",
"context": "Tap and drag on the touchpad to move items",
"reference": "",
"comment": ""
},
{
"term": "Tap the touchpad surface to trigger left click clicks",
"translation": "",
"context": "Tap the touchpad surface to trigger left click clicks",
"reference": "",
"comment": ""
},
{
"term": "Tap to Click",
"translation": "",
"context": "Tap to Click",
"reference": "",
"comment": ""
},
{
"term": "Terminal",
"translation": "",
@@ -18052,6 +18318,13 @@
"reference": "",
"comment": ""
},
{
"term": "The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.",
"translation": "",
"context": "The server certificate has changed since it was last trusted. Only continue if you recognize the new fingerprint.",
"reference": "",
"comment": "Warning shown when a trusted VPN server certificate no longer matches"
},
{
"term": "Theme & Colors",
"translation": "",
@@ -18584,6 +18857,20 @@
"reference": "",
"comment": ""
},
{
"term": "Touchpad Settings",
"translation": "",
"context": "Touchpad Settings",
"reference": "",
"comment": ""
},
{
"term": "Touchpad Speed",
"translation": "",
"context": "Touchpad Speed",
"reference": "",
"comment": ""
},
{
"term": "Transform",
"translation": "",
@@ -18666,7 +18953,7 @@
"translation": "",
"context": "Trust",
"reference": "",
"comment": ""
"comment": "Button that approves a VPN server certificate fingerprint"
},
{
"term": "Try a different search",
@@ -18724,6 +19011,13 @@
"reference": "",
"comment": ""
},
{
"term": "Two Finger",
"translation": "",
"context": "Two Finger",
"reference": "",
"comment": ""
},
{
"term": "Type",
"translation": "",
@@ -19039,6 +19333,13 @@
"reference": "",
"comment": ""
},
{
"term": "Untrusted VPN certificate",
"translation": "",
"context": "Untrusted VPN certificate",
"reference": "",
"comment": "Title for VPN server certificate trust confirmation"
},
{
"term": "Up to date",
"translation": "",
@@ -19781,13 +20082,6 @@
"reference": "",
"comment": ""
},
{
"term": "WCAG %1 body",
"translation": "",
"context": "WCAG %1 body",
"reference": "",
"comment": "contrast badge when only body text passes"
},
{
"term": "WPA/WPA2",
"translation": "",
@@ -20453,6 +20747,13 @@
"reference": "",
"comment": ""
},
{
"term": "below AA",
"translation": "",
"context": "below AA",
"reference": "",
"comment": "contrast level below the AA threshold"
},
{
"term": "brandon",
"translation": "",