Compare commits

...

38 Commits

Author SHA1 Message Date
Florian Müllner eee341e907 Tag release 40.alpha
Update NEWS.
2020-12-02 20:33:56 +01:00
Florian Müllner aad96bb1c4 Update sass submodule 2020-12-02 20:33:56 +01:00
Florian Müllner 50d3ee5703 workspace-indicator: Use overlap to determine preview visibility
In order to better reflect the actual workspace, show any preview
that is at least partially located on the monitor, not only those
that have the major part on that monitor.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/142>
2020-12-02 19:27:44 +01:00
Florian Müllner 08dfb78815 window-list: Use overlap to determine preview visibility
In order to better reflect the actual workspace, show any preview
that is at least partially located on the monitor, not only those
that have the major part on that monitor.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/142>
2020-12-02 19:22:51 +01:00
Florian Müllner 6949a5d075 workspace-indicator: Account for monitor offset in window previews
Windows' frame rects are in screen coordinates, while the workspace
thumbnails are based on the monitor work area. Unless we account
for the difference, previews end up mispositioned in multi-monitor
setups.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/142>
2020-12-02 19:22:12 +01:00
Florian Müllner 893d3b0473 window-list: Account for monitor offset in window previews
Windows' frame rects are in screen coordinates, while the workspace
thumbnails are based on the monitor work area. Unless we account
for the difference, previews end up mispositioned in multi-monitor
setups.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/142>
2020-12-02 19:20:08 +01:00
Florian Müllner f5128e13f2 workspace-indicator: Round calculated preview sizes
While not strictly necessary, there's no reason to differ from the
copy in the window-list extension ...

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/142>
2020-12-02 19:17:36 +01:00
Ray Strode 8318ea919f window-list: Stop monitoring drag operation if window list is destroyed
If a user is in the middle of a drag in the window list and the
window list associated with the drag gets destroyed, the drag
monitor gets leaked.

Later when the drag motion is processed, spew goes to the log:

clutter_actor_contains: assertion 'CLUTTER_IS_ACTOR (self)' failed

Examples of triggers for this bug:

- The monitor topology changes
- The screen gets locked during the drag

This commit fixes the spew and the leak by ensuring any pending
drag monitoring is disabled when the window lists are destroyed.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/145>
2020-11-25 17:48:21 +00:00
Florian Müllner bde20e78f0 ci: Bump ci-fairy template include
This fixes the check-merge-request job when MR branch and target branch are
on the same repo.

See
https://gitlab.freedesktop.org/freedesktop/ci-templates/-/merge_requests/66

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/146>
2020-11-24 16:28:40 +01:00
Jordan Petridis 02db9525e7 ci: Replace only/except with rules
only/except keywords where deperecated in favor of rules.

Since we started using GNOME/gnome-shell!1492 it introduced
a second pipeline being run for each commit.

Detached pipelines are the only way to access CI_MERGE_REQUEST_*
variables, and if we disable normal pipelines you will need to
create wip/spam MRs in order to run the tests.

This reworked rules makes it so, the normal pipeline needs manual
interaction to be started, and the detached/MR pipleines is always
run.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/144>
2020-11-21 01:14:39 +01:00
Jordan Petridis 8d4586bd57 ci: Set some sensible defaults
* Allow for all jobs to be cancelled if a newer commit is pushed
* Automatically retry jobs if they fail due to some infrastructure issue

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/144>
2020-11-21 01:14:39 +01:00
Jonas Ådahl 8872659621 ci: Check that merge requests have the right settings
This will catch the missing "allow write access for maintainers" check
box being checked.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/144>
2020-11-21 01:14:39 +01:00
Florian Müllner 46c7677643 ci: Use ci-fairy image for commit log check
This is in line with what mutter/gnome-shell are using, and should
be smaller (read: faster) than the gjs image.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/144>
2020-11-21 01:14:39 +01:00
Jonas Ådahl 4b9f4b1b63 doap: Make marge-bot a maintainer
This is so that the merge button can be restricted to maintainers, thus
decreasing the risk of merging using the merge button.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/141>
2020-11-19 01:32:23 +01:00
Jonas Ådahl b64c93897b ci: Wait for 'check-commit-log' before continuing
The check-commit-log is quick, and to get a result early is helpful as
one can then more quickly check for failures via the report provided via
the JUnit report.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/141>
2020-11-19 01:32:23 +01:00
Jonas Ådahl a7939f18d1 ci/check-commit-log: Generate JUnit report
This means the merge request will see the commit log review issues
causing the pipeline to fail without having to dig through CI log files.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/141>
2020-11-19 01:13:11 +01:00
Jonas Ådahl 15efbc29be ci/check-commit-log: Reverse the merge request URL check
Instead of making sure there is a reference to a bug or merge request,
make sure there isn't. The reason for this is that marge-bot will always
append a merge request URL in the end of the commit message.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/141>
2020-11-19 01:13:11 +01:00
Florian Müllner 6e5466a4ec ci: Explicitly specify job dependencies
We can speed up CI a bit by allowing build jobs to run in parallel
with review jobs.

See https://gitlab.gnome.org/help/ci/yaml/README.md#needs for details.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/141>
2020-11-19 01:12:29 +01:00
Thun Pin 737c897624 window-navigator: Adjust to 3.38 overview changes
gnome-shell's overview code changed significantly in 3.38,
adjust the extension to work without the separate overlay.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/259
2020-11-18 23:54:18 +00:00
Florian Müllner c317a876dd ci: Switch to updated gnome-shell image
gnome-shell now produces a CI image as part of its pipeline. Use that
instead of the old, manually-updated image.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/140
2020-11-19 00:22:01 +01:00
Florian Müllner 72c67aacc4 lint: Sync configuration with gjs
gjs updated its eslint configuration, so sync our copy.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/137
2020-11-14 00:58:52 +01:00
Florian Müllner ba7e3fc0b5 cleanup: Remove empty leading/trailing lines in blocks
gjs added a new rule to its eslint ruleset that forbids "block padding",
so make sure we conform to that rule before syncing up the configuration.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/137
2020-11-14 00:58:52 +01:00
Florian Müllner 61cf679b8c auto-move-windows: Exclude sticky windows from empty-check
We modify gnome-shell's workspace tracker to only remove empty
workspaces from the end. However we currently don't take into
account that sticky windows appear on all workspaces, so those
are preventing any workspace from getting removed at the moment.

Exclude them when determining whether a workspace is empty to
get the expected behavior.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/135
2020-11-13 23:53:49 +00:00
Florian Müllner ba55bacab4 ci: Use junit output format
Gitlab has built-in support for junit reports, so switch eslint's
output to that format.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/136
2020-11-07 01:55:02 +01:00
Jordi Mas 9445bd2205 Update Catalan translation 2020-10-23 21:10:23 +02:00
Florian Müllner 6ed1f45ffd window-list: Use custom layout manager for thumbnails
The current code positions window previews explicitly using a fixed
layout manager. For that it relies on a valid parent allocation,
which is error-prone and frequently results in warnings.

Address this by moving the positioning code into a custom layout
manager, and only update the visibility from the window preview.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/260
2020-10-21 03:09:45 +02:00
Florian Müllner 81be1d2e2f workspace-indicator: Use custom layout manager for thumbnails
The current code positions window previews explicitly using a fixed
layout manager. For that it relies on a valid parent allocation,
which is error-prone and frequently results in warnings.

Address this by moving the positioning code into a custom layout
manager, and only update the visibility from the window preview.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/260
2020-10-21 03:09:40 +02:00
Florian Müllner 52abf74088 window-list: Adjust to overview changes
Window DND in the overview is now based on the metaWindow,
not the window actor (misnamed as "real window").

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/133
2020-10-21 01:05:07 +00:00
Florian Müllner 623bc6dbf3 workspace-indicator: Adjust to overview changes
Window DND in the overview is now based on the metaWindow,
not the window actor (misnamed as "real window").

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/133
2020-10-21 01:05:07 +00:00
Fabio Tomat 04b23ec68f Update Friulian translation 2020-10-17 20:14:41 +00:00
Sergio Costas b65f362f0d window-list: Honor changes in skip-taskbar property
Although window-list checks the 'skip-taskbar' property when a
window is added to the desktop to decide wether it should be
shown in the bar or not, it doesn't honor that when the property
is changed after a window has already been added. Since the new
WaylandClient API allows to change this property for already
mapped windows, supporting this is a good idea.

This patch fixes this.

Fix https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/130
2020-10-08 23:42:21 +02:00
Florian Müllner 7c30f35b12 Bump version to 40.alpha
The GNOME project has adopted a new versioning scheme[0], and
GNOME 3.38 will be followed by GNOME 40.

Open the new development cycle by switching to the new scheme, as
well as to post-release bumps as recommended.

[0] https://discourse.gnome.org/t/new-gnome-versioning-scheme/4235

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/131
2020-10-06 15:07:54 +02:00
Florian Müllner 9e976f06b4 Bump version to 3.38.1
Update NEWS.
2020-10-05 20:43:21 +02:00
Florian Müllner 369801dbeb Update sass submodule 2020-10-05 20:42:16 +02:00
Yosef Or Boczko 2c3c7e8a73 Update Hebrew translation 2020-09-28 19:05:19 +00:00
Stas Solovey bb8f34de83 Update Russian translation 2020-09-22 19:52:00 +00:00
Cheng-Chia Tseng 6c98658fe1 Update Chinese (Taiwan) translation 2020-09-22 15:07:44 +00:00
Yacine Bouklif 3f06c2bc04 Add Kabyle translation 2020-09-19 11:51:36 +00:00
21 changed files with 845 additions and 490 deletions
+65 -17
View File
@@ -1,33 +1,81 @@
image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v2 include:
- remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/8445ff7af2a68795afb98f486251f2ef8f90621c/templates/ci-fairy.yml"
image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/33:2020-11-17.0
stages: stages:
- pre_review
- review - review
- build - build
default:
# Cancel jobs if newer commits are pushed to the branch
interruptible: true
# Auto-retry jobs in case of infra failures
retry:
max: 1
when:
- 'runner_system_failure'
- 'stuck_or_timeout_failure'
- 'scheduler_failure'
- 'api_failure'
variables: variables:
LINT_LOG: "eslint-report.txt" LINT_LOG: "eslint-report.xml"
JS_LOG: "js-report.txt" JS_LOG: "js-report.txt"
.only_default: &only_default workflow:
only: rules:
- branches - if: '$CI_MERGE_REQUEST_IID'
- tags - if: '$CI_COMMIT_TAG'
- merge_requests - if: '$CI_COMMIT_BRANCH'
.pipeline_guard: &pipeline_guard
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- if: '$CI_COMMIT_TAG'
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
- if: '$CI_COMMIT_BRANCH =~ /^gnome-[0-9-]+$/'
- when: 'manual'
check_commit_log: check_commit_log:
image: registry.gitlab.gnome.org/gnome/gjs:fedora.static-analysis extends:
stage: review - .fdo.ci-fairy
stage: pre_review
script: script:
- ./.gitlab-ci/check-commit-log.sh - ./.gitlab-ci/check-commit-log.sh
only: <<: *pipeline_guard
- merge_requests artifacts:
expire_in: 1 week
paths:
- commit-message-junit-report.xml
reports:
junit: commit-message-junit-report.xml
check-merge-request:
extends:
- .fdo.ci-fairy
stage: pre_review
script:
- if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ;
then
ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-merge-request-report.xml ;
else
echo "Not a merge request" ;
fi
<<: *pipeline_guard
artifacts:
expire_in: 1 week
paths:
- check-merge-request-report.xml
reports:
junit: check-merge-request-report.xml
js_check: js_check:
stage: review stage: review
script: script:
- find extensions -name '*.js' -exec js68 -c -s '{}' ';' 2>&1 | tee $JS_LOG - find extensions -name '*.js' -exec js78 -c '{}' ';' 2>&1 | tee $JS_LOG
- (! grep -q . $JS_LOG) - (! grep -q . $JS_LOG)
<<: *only_default
artifacts: artifacts:
paths: paths:
- ${JS_LOG} - ${JS_LOG}
@@ -36,18 +84,18 @@ js_check:
eslint: eslint:
stage: review stage: review
script: script:
- eslint -o $LINT_LOG extensions --no-color || { cat $LINT_LOG; false; } - eslint -o $LINT_LOG -f junit extensions
<<: *only_default
artifacts: artifacts:
paths: paths:
- ${LINT_LOG} - ${LINT_LOG}
when: on_failure reports:
junit: ${LINT_LOG}
build-bundles: build-bundles:
stage: build stage: build
needs: ["check_commit_log"]
script: script:
- ./export-zips.sh - ./export-zips.sh
<<: *only_default
artifacts: artifacts:
name: 'Extension bundles' name: 'Extension bundles'
expose_as: 'Get Extension bundles here' expose_as: 'Get Extension bundles here'
+50 -7
View File
@@ -1,8 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
if [ -z "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then if [ -z "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then
echo Cannot review non-merge request echo This is not a merge request, skipping
exit 1 exit 0
fi fi
git fetch $CI_MERGE_REQUEST_PROJECT_URL.git $CI_MERGE_REQUEST_TARGET_BRANCH_NAME git fetch $CI_MERGE_REQUEST_PROJECT_URL.git $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
@@ -16,16 +16,59 @@ if [ -z "$commits" ]; then
exit 1 exit 1
fi fi
function commit_message_has_url() { JUNIT_REPORT_TESTS_FILE=$(mktemp)
function append_failed_test_case() {
test_name="$1"
commit="$2"
test_message="$3"
commit_short=${commit:0:8}
echo "<testcase name=\"$test_name: $commit_short\"><failure message=\"$commit_short: $test_message\"/></testcase>" >> $JUNIT_REPORT_TESTS_FILE
echo &>2 "Commit check failed: $commit_short: $test_message"
}
function append_passed_test_case() {
test_name="$1"
commit="$2"
commit_short=${commit:0:8}
echo "<testcase name=\"$test_name: $commit_short\"></testcase>" >> $JUNIT_REPORT_TESTS_FILE
}
function generate_junit_report() {
junit_report_file="$1"
num_tests=$(cat "$JUNIT_REPORT_TESTS_FILE" | wc -l)
num_failures=$(grep '<failure />' "$JUNIT_REPORT_TESTS_FILE" | wc -l )
echo Generating JUnit report \"$(pwd)/$junit_report_file\" with $num_tests tests and $num_failures failures.
cat > $junit_report_file << __EOF__
<?xml version="1.0" encoding="utf-8"?>
<testsuites tests="$num_tests" errors="0" failures="$num_failures">
<testsuite name="commit-review" tests="$num_tests" errors="0" failures="$num_failures" skipped="0">
$(< $JUNIT_REPORT_TESTS_FILE)
</testsuite>
</testsuites>
__EOF__
}
function commit_message_has_mr_url() {
commit=$1 commit=$1
commit_message=$(git show -s --format='format:%b' $commit) commit_message=$(git show -s --format='format:%b' $commit)
echo "$commit_message" | grep -qe "\($CI_MERGE_REQUEST_PROJECT_URL/\(-/\)\?\(issues\|merge_requests\)/[0-9]\+\|https://bugzilla.gnome.org/show_bug.cgi?id=[0-9]\+\)" echo "$commit_message" | grep -qe "^$CI_MERGE_REQUEST_PROJECT_URL\/\(-\/\)\?merge_requests\/$CI_MERGE_REQUEST_IID$"
return $? return $?
} }
for commit in $commits; do for commit in $commits; do
if ! commit_message_has_url $commit; then if commit_message_has_mr_url $commit; then
echo "Missing merge request or issue URL on commit $(echo $commit | cut -c -8)" append_failed_test_case superfluous_url $commit \
exit 1 "Commit message must not contain a link to its own merge request"
else
append_passed_test_case superfluous_url $commit
fi fi
done done
generate_junit_report commit-message-junit-report.xml
! grep -q '<failure' commit-message-junit-report.xml
exit $?
+28
View File
@@ -1,3 +1,31 @@
40.alpha
========
* window-list: Honor changes in skip-taskbar property [Sergio; !130]
* window-list, workspace-indicator: Adjust to 3.38 changes [Florian; !133]
* window-list, workspace-indicator: Improve previews in workspace thumbs
[Florian; #260, !142]
* auto-move: Improve behavior on multi-monitor setups [Florian; !135]
* windowNavigator: Adjust to 3.38 changes [Thun; #259]
* Misc. bug fixes and cleanups [Florian, Jonas Å, Jordan, Ray; !131, !136,
!137, !140, !141, !144, !146, !145]
Contributors:
Sergio Costas, Florian Müllner, Jordan Petridis, Thun Pin, Ray Strode,
Jonas Ådahl
Translators:
Fabio Tomat [fur], Jordi Mas [ca]
3.38.1
======
Contributors:
Yacine Bouklif, Florian Müllner
Translators:
Yacine Bouklif [kab], Cheng-Chia Tseng [zh_TW], Stas Solovey [ru],
Yosef Or Boczko [he]
3.38.0 3.38.0
====== ======
+5 -3
View File
@@ -116,10 +116,12 @@ function myCheckWorkspaces() {
let keepAliveWorkspaces = []; let keepAliveWorkspaces = [];
let foundNonEmpty = false; let foundNonEmpty = false;
for (let i = this._workspaces.length - 1; i >= 0; i--) { for (let i = this._workspaces.length - 1; i >= 0; i--) {
if (!foundNonEmpty) if (!foundNonEmpty) {
foundNonEmpty = this._workspaces[i].list_windows().length > 0; foundNonEmpty = this._workspaces[i].list_windows().some(
else if (!this._workspaces[i]._keepAliveId) w => !w.is_on_all_workspaces());
} else if (!this._workspaces[i]._keepAliveId) {
keepAliveWorkspaces.push(this._workspaces[i]); keepAliveWorkspaces.push(this._workspaces[i]);
}
} }
// make sure the original method only removes empty workspaces at the end // make sure the original method only removes empty workspaces at the end
@@ -103,7 +103,6 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
direction++; direction++;
if (direction === 4) if (direction === 4)
direction = 0; direction = 0;
} }
let loopCounter = 0; let loopCounter = 0;
-1
View File
@@ -486,7 +486,6 @@ var PlacesManager = class {
} }
_reloadBookmarks() { _reloadBookmarks() {
this._bookmarks = []; this._bookmarks = [];
let content = Shell.get_file_contents_utf8_sync(this._bookmarksFile.get_path()); let content = Shell.get_file_contents_utf8_sync(this._bookmarksFile.get_path());
+9 -8
View File
@@ -352,6 +352,9 @@ class WindowButton extends BaseButton {
super._init(perMonitor, monitorIndex); super._init(perMonitor, monitorIndex);
this.metaWindow = metaWindow; this.metaWindow = metaWindow;
this._skipTaskbarId = metaWindow.connect('notify::skip-taskbar', () => {
this._updateVisibility();
});
this._updateVisibility(); this._updateVisibility();
this._windowTitle = new WindowTitle(this.metaWindow); this._windowTitle = new WindowTitle(this.metaWindow);
@@ -412,6 +415,7 @@ class WindowButton extends BaseButton {
_onDestroy() { _onDestroy() {
super._onDestroy(); super._onDestroy();
this.metaWindow.disconnect(this._skipTaskbarId);
this.metaWindow.disconnect(this._workspaceChangedId); this.metaWindow.disconnect(this._workspaceChangedId);
global.display.disconnect(this._notifyFocusId); global.display.disconnect(this._notifyFocusId);
this._contextMenu.destroy(); this._contextMenu.destroy();
@@ -608,7 +612,6 @@ class AppButton extends BaseButton {
this._contextMenuManager.addMenu(this._appContextMenu); this._contextMenuManager.addMenu(this._appContextMenu);
this.label_actor = this._multiWindowTitle.label_actor; this.label_actor = this._multiWindowTitle.label_actor;
} }
} }
_onClicked(actor, button) { _onClicked(actor, button) {
@@ -783,9 +786,9 @@ class WindowList extends St.Widget {
}); });
this._dragBeginId = Main.xdndHandler.connect('drag-begin', this._dragBeginId = Main.xdndHandler.connect('drag-begin',
this._onDragBegin.bind(this)); this._monitorDrag.bind(this));
this._dragEndId = Main.xdndHandler.connect('drag-end', this._dragEndId = Main.xdndHandler.connect('drag-end',
this._onDragEnd.bind(this)); this._stopMonitoringDrag.bind(this));
this._dragMonitor = { this._dragMonitor = {
dragMotion: this._onDragMotion.bind(this), dragMotion: this._onDragMotion.bind(this),
}; };
@@ -948,9 +951,6 @@ class WindowList extends St.Widget {
} }
_onWindowAdded(ws, win) { _onWindowAdded(ws, win) {
if (win.skip_taskbar)
return;
if (!this._grouped) if (!this._grouped)
this._checkGrouping(); this._checkGrouping();
@@ -1016,11 +1016,11 @@ class WindowList extends St.Widget {
} }
} }
_onDragBegin() { _monitorDrag() {
DND.addDragMonitor(this._dragMonitor); DND.addDragMonitor(this._dragMonitor);
} }
_onDragEnd() { _stopMonitoringDrag() {
DND.removeDragMonitor(this._dragMonitor); DND.removeDragMonitor(this._dragMonitor);
this._removeActivateTimeout(); this._removeActivateTimeout();
} }
@@ -1094,6 +1094,7 @@ class WindowList extends St.Widget {
global.display.disconnect(this._fullscreenChangedId); global.display.disconnect(this._fullscreenChangedId);
this._stopMonitoringDrag();
Main.xdndHandler.disconnect(this._dragBeginId); Main.xdndHandler.disconnect(this._dragBeginId);
Main.xdndHandler.disconnect(this._dragEndId); Main.xdndHandler.disconnect(this._dragEndId);
+43 -45
View File
@@ -24,27 +24,14 @@ class WindowPreview extends St.Button {
this.connect('destroy', this._onDestroy.bind(this)); this.connect('destroy', this._onDestroy.bind(this));
this._sizeChangedId = this._window.connect('size-changed', this._sizeChangedId = this._window.connect('size-changed',
this._relayout.bind(this)); () => this.queue_relayout());
this._positionChangedId = this._window.connect('position-changed', this._positionChangedId = this._window.connect('position-changed',
this._relayout.bind(this)); () => {
this._minimizedChangedId = this._window.connect('notify::minimized', this._updateVisible();
this._relayout.bind(this)); this.queue_relayout();
this._monitorEnteredId = global.display.connect('window-entered-monitor',
this._relayout.bind(this));
this._monitorLeftId = global.display.connect('window-left-monitor',
this._relayout.bind(this));
// Do initial layout when we get a parent
let id = this.connect('parent-set', () => {
this.disconnect(id);
if (!this.get_parent())
return;
this._laterId = Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => {
this._laterId = 0;
this._relayout();
return false;
}); });
}); this._minimizedChangedId = this._window.connect('notify::minimized',
this._updateVisible.bind(this));
this._focusChangedId = global.display.connect('notify::focus-window', this._focusChangedId = global.display.connect('notify::focus-window',
this._onFocusChanged.bind(this)); this._onFocusChanged.bind(this));
@@ -52,19 +39,15 @@ class WindowPreview extends St.Button {
} }
// needed for DND // needed for DND
get realWindow() { get metaWindow() {
return this._window.get_compositor_private(); return this._window;
} }
_onDestroy() { _onDestroy() {
this._window.disconnect(this._sizeChangedId); this._window.disconnect(this._sizeChangedId);
this._window.disconnect(this._positionChangedId); this._window.disconnect(this._positionChangedId);
this._window.disconnect(this._minimizedChangedId); this._window.disconnect(this._minimizedChangedId);
global.display.disconnect(this._monitorEnteredId);
global.display.disconnect(this._monitorLeftId);
global.display.disconnect(this._focusChangedId); global.display.disconnect(this._focusChangedId);
if (this._laterId)
Meta.later_remove(this._laterId);
} }
_onFocusChanged() { _onFocusChanged() {
@@ -74,26 +57,42 @@ class WindowPreview extends St.Button {
this.remove_style_class_name('active'); this.remove_style_class_name('active');
} }
_relayout() { _updateVisible() {
let monitor = Main.layoutManager.findIndexForActor(this); const monitor = Main.layoutManager.findIndexForActor(this);
this.visible = monitor === this._window.get_monitor() && const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
this.visible = this._window.get_frame_rect().overlap(workArea) &&
this._window.window_type !== Meta.WindowType.DESKTOP && this._window.window_type !== Meta.WindowType.DESKTOP &&
this._window.showing_on_its_workspace(); this._window.showing_on_its_workspace();
}
});
if (!this.visible) let WorkspaceLayout = GObject.registerClass(
return; class WorkspaceLayout extends Clutter.LayoutManager {
vfunc_get_preferred_width() {
return [0, 0];
}
let workArea = Main.layoutManager.getWorkAreaForMonitor(monitor); vfunc_get_preferred_height() {
let hscale = this.get_parent().allocation.get_width() / workArea.width; return [0, 0];
let vscale = this.get_parent().allocation.get_height() / workArea.height; }
let frameRect = this._window.get_frame_rect(); vfunc_allocate(container, box) {
this.set_size( const monitor = Main.layoutManager.findIndexForActor(container);
Math.round(Math.min(frameRect.width, workArea.width) * hscale), const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
Math.round(Math.min(frameRect.height, workArea.height) * vscale)); const hscale = box.get_width() / workArea.width;
this.set_position( const vscale = box.get_height() / workArea.height;
Math.round(frameRect.x * hscale),
Math.round(frameRect.y * vscale)); for (const child of container) {
const childBox = new Clutter.ActorBox();
const frameRect = child.metaWindow.get_frame_rect();
childBox.set_size(
Math.round(Math.min(frameRect.width, workArea.width) * hscale),
Math.round(Math.min(frameRect.height, workArea.height) * vscale));
childBox.set_origin(
Math.round((frameRect.x - workArea.x) * hscale),
Math.round((frameRect.y - workArea.y) * vscale));
child.allocate(childBox);
}
} }
}); });
@@ -103,7 +102,7 @@ class WorkspaceThumbnail extends St.Button {
super._init({ super._init({
style_class: 'workspace', style_class: 'workspace',
child: new Clutter.Actor({ child: new Clutter.Actor({
layout_manager: new Clutter.BinLayout(), layout_manager: new WorkspaceLayout(),
clip_to_allocation: true, clip_to_allocation: true,
}), }),
}); });
@@ -134,16 +133,15 @@ class WorkspaceThumbnail extends St.Button {
} }
acceptDrop(source) { acceptDrop(source) {
if (!source.realWindow) if (!source.metaWindow)
return false; return false;
let window = source.realWindow.get_meta_window(); this._moveWindow(source.metaWindow);
this._moveWindow(window);
return true; return true;
} }
handleDragOver(source) { handleDragOver(source) {
if (source.realWindow) if (source.metaWindow)
return DND.DragMotionResult.MOVE_DROP; return DND.DragMotionResult.MOVE_DROP;
else else
return DND.DragMotionResult.CONTINUE; return DND.DragMotionResult.CONTINUE;
+65 -69
View File
@@ -1,45 +1,12 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */ /* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
/* exported init */ /* exported init */
const { Clutter, GObject, St } = imports.gi; const { Clutter, Graphene, GObject, St } = imports.gi;
const Main = imports.ui.main; const Main = imports.ui.main;
const Workspace = imports.ui.workspace; const Workspace = imports.ui.workspace;
const WorkspacesView = imports.ui.workspacesView; const WorkspacesView = imports.ui.workspacesView;
class MyWindowOverlay extends Workspace.WindowOverlay { const WINDOW_SLOT = 4;
constructor(windowClone, parentActor) {
super(windowClone, parentActor);
this._id = null;
this._text = new St.Label({
style_class: 'extension-windowsNavigator-window-tooltip',
visible: false,
});
parentActor.add_actor(this._text);
}
showTooltip() {
this._parentActor.set_child_below_sibling(this._text, null);
this._text.show();
this._text.text = (this._windowClone.slotId + 1).toString();
}
hideTooltip() {
if (this._text && this._text.visible)
this._text.hide();
}
relayout(animate) {
super.relayout(animate);
let [cloneX, cloneY, cloneWidth_, cloneHeight_] = this._windowClone.slot;
let textX = cloneX - 2;
let textY = cloneY - 2;
this._text.set_position(Math.floor(textX) + 5, Math.floor(textY) + 5);
this._parentActor.set_child_below_sibling(this._text, null);
}
}
var MyWorkspace = GObject.registerClass( var MyWorkspace = GObject.registerClass(
class MyWorkspace extends Workspace.Workspace { class MyWorkspace extends Workspace.Workspace {
@@ -61,57 +28,89 @@ class MyWorkspace extends Workspace.Workspace {
} }
} }
vfunc_allocate(box) {
super.vfunc_allocate(box);
if (this._tip)
this._tip.allocate_preferred_size(0, 0);
}
showTooltip() { showTooltip() {
if (!this._tip || !this._actualGeometry) if (!this._tip)
return; return;
this._tip.text = (this.metaWorkspace.index() + 1).toString(); this._tip.text = (this.metaWorkspace.index() + 1).toString();
// Hand code this instead of using _getSpacingAndPadding
// because that fails on empty workspaces
let node = this.get_theme_node();
let padding = {
left: node.get_padding(St.Side.LEFT),
top: node.get_padding(St.Side.TOP),
bottom: node.get_padding(St.Side.BOTTOM),
right: node.get_padding(St.Side.RIGHT),
};
let area = Workspace.padArea(this._actualGeometry, padding);
this._tip.x = area.x;
this._tip.y = area.y;
this._tip.show(); this._tip.show();
this.set_child_below_sibling(this._tip, null); this.set_child_below_sibling(this._tip, null);
} }
hideTooltip() { hideTooltip() {
if (!this._tip) if (this._tip)
return; this._tip.hide();
if (!this._tip.get_parent())
return;
this._tip.hide();
} }
getWindowWithTooltip(id) { getWindowWithTooltip(id) {
for (let i = 0; i < this._windows.length; i++) { const slot = this.layout_manager._windowSlots[id - 1];
if (this._windows[i].slotId + 1 === id) return slot ? slot[WINDOW_SLOT].metaWindow : null;
return this._windows[i].metaWindow;
}
return null;
} }
showWindowsTooltips() { showWindowsTooltips() {
for (let i in this._windowOverlays) { for (let i = 0; i < this.layout_manager._windowSlots.length; i++) {
if (this._windowOverlays[i]) if (this.layout_manager._windowSlots[i])
this._windowOverlays[i].showTooltip(); this.layout_manager._windowSlots[i][WINDOW_SLOT].showTooltip(`${i + 1}`);
} }
} }
hideWindowsTooltips() { hideWindowsTooltips() {
for (let i in this._windowOverlays) { for (let i in this.layout_manager._windowSlots) {
if (this._windowOverlays[i]) if (this.layout_manager._windowSlots[i])
this._windowOverlays[i].hideTooltip(); this.layout_manager._windowSlots[i][WINDOW_SLOT].hideTooltip();
} }
} }
// overriding _addWindowClone to apply the tooltip patch on the cloned
// windowPreview
_addWindowClone(metaWindow) {
const clone = super._addWindowClone(metaWindow);
// appling the tooltip patch
(function patchPreview() {
this._text = new St.Label({
style_class: 'extension-windowsNavigator-window-tooltip',
visible: false,
});
this._text.add_constraint(new Clutter.BindConstraint({
source: this._borderCenter,
coordinate: Clutter.BindCoordinate.POSITION,
}));
this._text.add_constraint(new Clutter.AlignConstraint({
source: this._borderCenter,
align_axis: Clutter.AlignAxis.X_AXIS,
pivot_point: new Graphene.Point({ x: 0.5, y: -1 }),
factor: this._closeButtonSide === St.Side.LEFT ? 1 : 0,
}));
this._text.add_constraint(new Clutter.AlignConstraint({
source: this._borderCenter,
align_axis: Clutter.AlignAxis.Y_AXIS,
pivot_point: new Graphene.Point({ x: -1, y: 0.5 }),
factor: 0,
}));
this.add_child(this._text);
}).call(clone);
clone.showTooltip = function (text) {
this._text.set({ text });
this._text.show();
};
clone.hideTooltip = function () {
if (this._text && this._text.visible)
this._text.hide();
};
return clone;
}
}); });
var MyWorkspacesView = GObject.registerClass( var MyWorkspacesView = GObject.registerClass(
@@ -244,19 +243,16 @@ class MyWorkspacesView extends WorkspacesView.WorkspacesView {
class Extension { class Extension {
constructor() { constructor() {
this._origWindowOverlay = Workspace.WindowOverlay;
this._origWorkspace = Workspace.Workspace; this._origWorkspace = Workspace.Workspace;
this._origWorkspacesView = WorkspacesView.WorkspacesView; this._origWorkspacesView = WorkspacesView.WorkspacesView;
} }
enable() { enable() {
Workspace.WindowOverlay = MyWindowOverlay;
Workspace.Workspace = MyWorkspace; Workspace.Workspace = MyWorkspace;
WorkspacesView.WorkspacesView = MyWorkspacesView; WorkspacesView.WorkspacesView = MyWorkspacesView;
} }
disable() { disable() {
Workspace.WindowOverlay = this._origWindowOverlay;
Workspace.Workspace = this._origWorkspace; Workspace.Workspace = this._origWorkspace;
WorkspacesView.WorkspacesView = this._origWorkspacesView; WorkspacesView.WorkspacesView = this._origWorkspacesView;
} }
+43 -45
View File
@@ -30,27 +30,14 @@ class WindowPreview extends St.Button {
this.connect('destroy', this._onDestroy.bind(this)); this.connect('destroy', this._onDestroy.bind(this));
this._sizeChangedId = this._window.connect('size-changed', this._sizeChangedId = this._window.connect('size-changed',
this._relayout.bind(this)); () => this.queue_relayout());
this._positionChangedId = this._window.connect('position-changed', this._positionChangedId = this._window.connect('position-changed',
this._relayout.bind(this)); () => {
this._minimizedChangedId = this._window.connect('notify::minimized', this._updateVisible();
this._relayout.bind(this)); this.queue_relayout();
this._monitorEnteredId = global.display.connect('window-entered-monitor',
this._relayout.bind(this));
this._monitorLeftId = global.display.connect('window-left-monitor',
this._relayout.bind(this));
// Do initial layout when we get a parent
let id = this.connect('parent-set', () => {
this.disconnect(id);
if (!this.get_parent())
return;
this._laterId = Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => {
this._laterId = 0;
this._relayout();
return false;
}); });
}); this._minimizedChangedId = this._window.connect('notify::minimized',
this._updateVisible.bind(this));
this._focusChangedId = global.display.connect('notify::focus-window', this._focusChangedId = global.display.connect('notify::focus-window',
this._onFocusChanged.bind(this)); this._onFocusChanged.bind(this));
@@ -58,19 +45,15 @@ class WindowPreview extends St.Button {
} }
// needed for DND // needed for DND
get realWindow() { get metaWindow() {
return this._window.get_compositor_private(); return this._window;
} }
_onDestroy() { _onDestroy() {
this._window.disconnect(this._sizeChangedId); this._window.disconnect(this._sizeChangedId);
this._window.disconnect(this._positionChangedId); this._window.disconnect(this._positionChangedId);
this._window.disconnect(this._minimizedChangedId); this._window.disconnect(this._minimizedChangedId);
global.display.disconnect(this._monitorEnteredId);
global.display.disconnect(this._monitorLeftId);
global.display.disconnect(this._focusChangedId); global.display.disconnect(this._focusChangedId);
if (this._laterId)
Meta.later_remove(this._laterId);
} }
_onFocusChanged() { _onFocusChanged() {
@@ -80,26 +63,42 @@ class WindowPreview extends St.Button {
this.remove_style_class_name('active'); this.remove_style_class_name('active');
} }
_relayout() { _updateVisible() {
let monitor = Main.layoutManager.findIndexForActor(this); const monitor = Main.layoutManager.findIndexForActor(this);
this.visible = monitor === this._window.get_monitor() && const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
this.visible = this._window.get_frame_rect().overlap(workArea) &&
this._window.window_type !== Meta.WindowType.DESKTOP && this._window.window_type !== Meta.WindowType.DESKTOP &&
this._window.showing_on_its_workspace(); this._window.showing_on_its_workspace();
}
});
if (!this.visible) let WorkspaceLayout = GObject.registerClass(
return; class WorkspaceLayout extends Clutter.LayoutManager {
vfunc_get_preferred_width() {
return [0, 0];
}
let workArea = Main.layoutManager.getWorkAreaForMonitor(monitor); vfunc_get_preferred_height() {
let hscale = this.get_parent().allocation.get_width() / workArea.width; return [0, 0];
let vscale = this.get_parent().allocation.get_height() / workArea.height; }
let frameRect = this._window.get_frame_rect(); vfunc_allocate(container, box) {
this.set_size( const monitor = Main.layoutManager.findIndexForActor(container);
Math.round(Math.min(frameRect.width, workArea.width) * hscale), const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
Math.round(Math.min(frameRect.height, workArea.height) * vscale)); const hscale = box.get_width() / workArea.width;
this.set_position( const vscale = box.get_height() / workArea.height;
Math.round(frameRect.x * hscale),
Math.round(frameRect.y * vscale)); for (const child of container) {
const childBox = new Clutter.ActorBox();
const frameRect = child.metaWindow.get_frame_rect();
childBox.set_size(
Math.round(Math.min(frameRect.width, workArea.width) * hscale),
Math.round(Math.min(frameRect.height, workArea.height) * vscale));
childBox.set_origin(
Math.round((frameRect.x - workArea.x) * hscale),
Math.round((frameRect.y - workArea.y) * vscale));
child.allocate(childBox);
}
} }
}); });
@@ -109,7 +108,7 @@ class WorkspaceThumbnail extends St.Button {
super._init({ super._init({
style_class: 'workspace', style_class: 'workspace',
child: new Clutter.Actor({ child: new Clutter.Actor({
layout_manager: new Clutter.BinLayout(), layout_manager: new WorkspaceLayout(),
clip_to_allocation: true, clip_to_allocation: true,
}), }),
}); });
@@ -140,16 +139,15 @@ class WorkspaceThumbnail extends St.Button {
} }
acceptDrop(source) { acceptDrop(source) {
if (!source.realWindow) if (!source.metaWindow)
return false; return false;
let window = source.realWindow.get_meta_window(); this._moveWindow(source.metaWindow);
this._moveWindow(window);
return true; return true;
} }
handleDragOver(source) { handleDragOver(source) {
if (source.realWindow) if (source.metaWindow)
return DND.DragMotionResult.MOVE_DROP; return DND.DragMotionResult.MOVE_DROP;
else else
return DND.DragMotionResult.CONTINUE; return DND.DragMotionResult.CONTINUE;
+6
View File
@@ -34,4 +34,10 @@ and will be picked automatically at next login.
<gnome:userid>fmuellner</gnome:userid> <gnome:userid>fmuellner</gnome:userid>
</foaf:Person> </foaf:Person>
</maintainer> </maintainer>
<maintainer>
<foaf:Person>
<foaf:name>Marge Bot</foaf:name>
<gnome:userid>marge-bot</gnome:userid>
</foaf:Person>
</maintainer>
</Project> </Project>
+15 -6
View File
@@ -1,4 +1,5 @@
--- ---
# SPDX-License-Identifier: MIT OR LGPL-2.0-or-later
env: env:
es6: true es6: true
extends: 'eslint:recommended' extends: 'eslint:recommended'
@@ -24,7 +25,9 @@ rules:
# allow: [^vfunc_, ^on_, _instance_init] # allow: [^vfunc_, ^on_, _instance_init]
comma-dangle: comma-dangle:
- error - error
- always-multiline - arrays: always-multiline
objects: always-multiline
functions: never
comma-spacing: comma-spacing:
- error - error
- before: false - before: false
@@ -87,6 +90,7 @@ rules:
- error - error
- all - all
- conditionalAssign: false - conditionalAssign: false
nestedBinaryExpressions: false
returnAssign: false returnAssign: false
no-implicit-coercion: no-implicit-coercion:
- error - error
@@ -105,15 +109,15 @@ rules:
no-prototype-builtins: 'off' no-prototype-builtins: 'off'
no-restricted-properties: no-restricted-properties:
- error - error
- object: Lang
property: copyProperties
message: Use Object.assign()
- object: Lang - object: Lang
property: bind property: bind
message: Use arrow notation or Function.prototype.bind() message: Use arrow notation or Function.prototype.bind()
- object: Lang - object: Lang
property: Class property: Class
message: Use ES6 classes message: Use ES6 classes
- object: imports
property: mainloop
message: Use GLib main loops and timeouts
no-restricted-syntax: no-restricted-syntax:
- error - error
- selector: >- - selector: >-
@@ -129,6 +133,8 @@ rules:
BlockStatement[body.length=1] BlockStatement[body.length=1]
CallExpression[arguments.length=0][callee.object.type="Super"][callee.property.name="_init"] CallExpression[arguments.length=0][callee.object.type="Super"][callee.property.name="_init"]
message: _init() that only calls super._init() is unnecessary message: _init() that only calls super._init() is unnecessary
- selector: BinaryExpression[operator="instanceof"][right.name="Array"]
message: Use Array.isArray()
no-return-assign: error no-return-assign: error
no-return-await: error no-return-await: error
no-self-compare: error no-self-compare: error
@@ -165,6 +171,9 @@ rules:
object-shorthand: error object-shorthand: error
operator-assignment: error operator-assignment: error
operator-linebreak: error operator-linebreak: error
padded-blocks:
- error
- never
# These may be a bit controversial, we can try them out and enable them later # These may be a bit controversial, we can try them out and enable them later
# prefer-const: error # prefer-const: error
# prefer-destructuring: error # prefer-destructuring: error
@@ -217,12 +226,12 @@ globals:
ARGV: readonly ARGV: readonly
Debugger: readonly Debugger: readonly
GIRepositoryGType: readonly GIRepositoryGType: readonly
globalThis: readonly
imports: readonly imports: readonly
Intl: readonly Intl: readonly
log: readonly log: readonly
logError: readonly logError: readonly
print: readonly print: readonly
printerr: readonly printerr: readonly
window: readonly
parserOptions: parserOptions:
ecmaVersion: 2017 ecmaVersion: 2020
+4 -4
View File
@@ -1,5 +1,5 @@
project('gnome-shell-extensions', project('gnome-shell-extensions',
version: '3.38.0', version: '40.alpha',
meson_version: '>= 0.44.0', meson_version: '>= 0.44.0',
license: 'GPL2+' license: 'GPL2+'
) )
@@ -21,9 +21,9 @@ sessiondir = join_paths(datadir, 'gnome-session', 'sessions')
xsessiondir = join_paths(datadir, 'xsessions') xsessiondir = join_paths(datadir, 'xsessions')
ver_arr = meson.project_version().split('.') ver_arr = meson.project_version().split('.')
if ver_arr[1].to_int().is_even() if ver_arr[1].version_compare('>=0')
shell_version = '@0@.@1@'.format(ver_arr[0], ver_arr[1]) shell_version = ver_arr[0]
else else # pre-release (alpha, beta, rc)
shell_version = '.'.join(ver_arr) shell_version = '.'.join(ver_arr)
endif endif
+1
View File
@@ -32,6 +32,7 @@ id
is is
it it
ja ja
kab
kk kk
km km
kn kn
+1 -1
View File
@@ -83,7 +83,7 @@ msgid ""
msgstr "" msgstr ""
"Intenta utilitzar més espai de la pantalla per a posicionar les miniatures de " "Intenta utilitzar més espai de la pantalla per a posicionar les miniatures de "
"les finestres adaptant-les a la ràtio d'aspecte de la pantalla, consolidant-" "les finestres adaptant-les a la ràtio d'aspecte de la pantalla, consolidant-"
"les més per a reduir la capsa que les envolta. Aquest paràmetre de " "les més per a reduir la caixa que les envolta. Aquest paràmetre de "
"configuració només s'aplica a l'estratègia de posicionament de finestres " "configuració només s'aplica a l'estratègia de posicionament de finestres "
"natural." "natural."
+30 -30
View File
@@ -8,23 +8,23 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n" "POT-Creation-Date: 2020-10-08 21:24+0000\n"
"PO-Revision-Date: 2020-07-12 18:10+0200\n" "PO-Revision-Date: 2020-10-17 22:14+0200\n"
"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n" "Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
"Language-Team: Friulian <fur@li.org>\n" "Language-Team: Friulian <fur@li.org>\n"
"Language: fur\n" "Language: fur\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.3.1\n" "X-Generator: Poedit 2.4.1\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3 #: data/gnome-classic.desktop.in:3
msgid "GNOME Classic" msgid "GNOME Classic"
msgstr "GNOME Classic" msgstr "GNOME Classic"
#: data/gnome-classic.desktop.in:4 #: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Cheste session a si invie cun GNOME classic" msgstr "Cheste session ti fâs jentrâ in GNOME Classic"
#: extensions/apps-menu/extension.js:113 #: extensions/apps-menu/extension.js:113
msgid "Favorites" msgid "Favorites"
@@ -43,8 +43,8 @@ msgid ""
"A list of strings, each containing an application id (desktop file name), " "A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number" "followed by a colon and the workspace number"
msgstr "" msgstr ""
"Une liste di stringhis, ogniune a ten il ID di une aplicazion (non dal file ." "Une liste di stringhis, ogniune e ten il ID di une aplicazion (non dal file ."
"desktop), seguît di doi ponts e il numar dal spazi di lavôr" "desktop), cun daûr doi ponts e il numar dal spazi di lavôr"
#: extensions/auto-move-windows/prefs.js:35 #: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules" msgid "Workspace Rules"
@@ -63,15 +63,15 @@ msgstr "No si è rivâts a parâ fûr la unitât “%s”»:"
#: extensions/drive-menu/extension.js:128 #: extensions/drive-menu/extension.js:128
msgid "Removable devices" msgid "Removable devices"
msgstr "Argagn rimovibil" msgstr "Dispositîfs estraibii"
#: extensions/drive-menu/extension.js:155 #: extensions/drive-menu/extension.js:155
msgid "Open Files" msgid "Open Files"
msgstr "Vierç i file" msgstr "Vierç i files"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows" msgid "Use more screen for windows"
msgstr "Dopre plui spazi par i balcons" msgstr "Dopre plui schermi pai barcons"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
msgid "" msgid ""
@@ -79,14 +79,14 @@ msgid ""
"aspect ratio, and consolidating them further to reduce the bounding box. " "aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy." "This setting applies only with the natural placement strategy."
msgstr "" msgstr ""
"Cîr di doprâ plui puest par plaçâ lis miniaturis dai balcons, adatânsi al " "Cîr di doprâ plui schermi par plaçâ lis miniaturis dai barcons, adatant il "
"rapuart di aspiet dal visôr e consolidanlis ancjemo di plui par ridusi il " "rapuart di aspiet dal visôr e consolidant ancjemo di plui lis miniaturis par "
"spazi complessîf. Cheste impostazion a si apliche dome se l'algoritmo di " "ridusi il spazi complessîf. Cheste impostazion si apliche dome se "
"posizionament al è \"natural\"." "l'algoritmi di plaçament al è naturâl."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top" msgid "Place window captions on top"
msgstr "Met il titul dal balcon insomp" msgstr "Met il titul dal barcon parsore"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
msgid "" msgid ""
@@ -94,9 +94,9 @@ msgid ""
"shell default of placing it at the bottom. Changing this setting requires " "shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect." "restarting the shell to have any effect."
msgstr "" msgstr ""
"Se VÊR, al place i titui dai balcons insomp as relativis miniaturis, lant in " "Se VÊR, al place i titui dai barcons denant des relativis miniaturis, "
"volte al compuartament normâl de shell, che lis place in bas.Cambiant cheste " "sorpassant il compuartament predefinît de shell, che lis place in bas. "
"impostazion a si scugne tornâ a inviâ la shell." "Cambiant cheste impostazion si scugne tornâ a inviâ la shell."
#: extensions/places-menu/extension.js:89 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93 #: extensions/places-menu/extension.js:93
@@ -120,7 +120,7 @@ msgstr "Computer"
#: extensions/places-menu/placeDisplay.js:359 #: extensions/places-menu/placeDisplay.js:359
msgid "Home" msgid "Home"
msgstr "Cjase" msgstr "Home"
#: extensions/places-menu/placeDisplay.js:404 #: extensions/places-menu/placeDisplay.js:404
msgid "Browse Network" msgid "Browse Network"
@@ -128,11 +128,11 @@ msgstr "Esplore rêt"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7 #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
msgid "Cycle Screenshot Sizes" msgid "Cycle Screenshot Sizes"
msgstr "Dimensions caturis di schermi ciclichis" msgstr "Dimensions videadis catuardis ciclichis"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11 #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
msgid "Cycle Screenshot Sizes Backward" msgid "Cycle Screenshot Sizes Backward"
msgstr "Dimensions caturis di schermi ciclichis indaûr" msgstr "Dimensions videadis caturadis ciclichis indaûr"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5 #: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
msgid "Theme name" msgid "Theme name"
@@ -184,19 +184,19 @@ msgstr "Siere ducj"
#: extensions/window-list/extension.js:734 #: extensions/window-list/extension.js:734
msgid "Window List" msgid "Window List"
msgstr "Liste balcons" msgstr "Liste barcons"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
msgid "When to group windows" msgid "When to group windows"
msgstr "Quant ingru i balcons" msgstr "Cuant meti in grup i barcons"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
msgid "" msgid ""
"Decides when to group windows from the same application on the window list. " "Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”." "Possible values are “never”, “auto” and “always”."
msgstr "" msgstr ""
"Al decît cuant intropâ i balcons de stesse aplicazion su le liste dai " "Al decît cuant meti dongje i barcons de stesse aplicazion su la liste dai "
"balcons. I pussibii valôrs a son “never”, “auto” e “always”." "barcons. I valôrs pussibii a son “never”, “auto” e “always”."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100 #: extensions/window-list/prefs.js:100
@@ -218,23 +218,23 @@ msgid ""
"primary one." "primary one."
msgstr "" msgstr ""
"Indiche se mostrâ la liste dai barcons su ducj i visôrs tacâts o nome sul " "Indiche se mostrâ la liste dai barcons su ducj i visôrs tacâts o nome sul "
"principâl." "chel principâl."
#: extensions/window-list/prefs.js:29 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Ingrumament balcons" msgstr "Intropament di barcons"
#: extensions/window-list/prefs.js:58 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "No ingru i balcons" msgstr "No sta meti mai in grup i barcons"
#: extensions/window-list/prefs.js:59 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Ingrume i balcons quanche al'è pôc puest" msgstr "Met dongje i barcons cuant che il spazi al è limitât"
#: extensions/window-list/prefs.js:60 #: extensions/window-list/prefs.js:60
msgid "Always group windows" msgid "Always group windows"
msgstr "Ingrume simpri i balcons" msgstr "Met simpri in grup i barcons"
#: extensions/window-list/prefs.js:94 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
+45 -55
View File
@@ -9,8 +9,8 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions\n" "Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2020-03-31 07:16+0000\n" "POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-04-01 18:20+0300\n" "PO-Revision-Date: 2020-09-28 22:04+0300\n"
"Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n" "Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n"
"Language-Team: Hebrew <yoseforb@gmail.com>\n" "Language-Team: Hebrew <yoseforb@gmail.com>\n"
"Language: he\n" "Language: he\n"
@@ -49,41 +49,27 @@ msgstr ""
"A list of strings, each containing an application id (desktop file name), " "A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number" "followed by a colon and the workspace number"
#: extensions/auto-move-windows/prefs.js:59 #: extensions/auto-move-windows/prefs.js:35
msgid "Application" #| msgid "Workspace Names"
msgstr "יישום" msgid "Workspace Rules"
msgstr "כללי מרחב העבודה"
#: extensions/auto-move-windows/prefs.js:70 #: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:133
msgid "Workspace"
msgstr "מרחב עבודה"
#: extensions/auto-move-windows/prefs.js:88
msgid "Add Rule" msgid "Add Rule"
msgstr "הוספת כלל" msgstr "הוספת כלל"
#: extensions/auto-move-windows/prefs.js:110
msgid "Create new matching rule"
msgstr "יצירת כלל חדש תואם"
#: extensions/auto-move-windows/prefs.js:116
msgid "Add"
msgstr "הוספה"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:103 #: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
#| msgid "Ejecting drive '%s' failed:"
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "שליפת הכונן „%s” נכשלה:" msgstr "שליפת הכונן „%s” נכשלה:"
#: extensions/drive-menu/extension.js:119 #: extensions/drive-menu/extension.js:128
msgid "Removable devices" msgid "Removable devices"
msgstr "התקנים נתיקים" msgstr "התקנים נתיקים"
#: extensions/drive-menu/extension.js:146 #: extensions/drive-menu/extension.js:155
#| msgid "Open File"
msgid "Open Files" msgid "Open Files"
msgstr "פתיחת קבצים" msgstr "פתיחת קבצים"
@@ -115,14 +101,13 @@ msgstr ""
"shell default of placing it at the bottom. Changing this setting requires " "shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect." "restarting the shell to have any effect."
#: extensions/places-menu/extension.js:80 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:84 #: extensions/places-menu/extension.js:93
msgid "Places" msgid "Places"
msgstr "מיקומים" msgstr "מיקומים"
#: extensions/places-menu/placeDisplay.js:46 #: extensions/places-menu/placeDisplay.js:46
#, javascript-format #, javascript-format
#| msgid "Failed to launch \"%s\""
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "שיגור „%s” נכשל" msgstr "שיגור „%s” נכשל"
@@ -149,7 +134,6 @@ msgid "Cycle Screenshot Sizes"
msgstr "Cycle Screenshot Sizes" msgstr "Cycle Screenshot Sizes"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11 #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
#| msgid "Cycle Screenshot Sizes"
msgid "Cycle Screenshot Sizes Backward" msgid "Cycle Screenshot Sizes Backward"
msgstr "Cycle Screenshot Sizes Backward" msgstr "Cycle Screenshot Sizes Backward"
@@ -181,27 +165,27 @@ msgstr "ביטול ההגדלה"
msgid "Maximize" msgid "Maximize"
msgstr "הגדלה" msgstr "הגדלה"
#: extensions/window-list/extension.js:429 #: extensions/window-list/extension.js:428
msgid "Minimize all" msgid "Minimize all"
msgstr "מזעור הכל" msgstr "מזעור הכל"
#: extensions/window-list/extension.js:435 #: extensions/window-list/extension.js:434
msgid "Unminimize all" msgid "Unminimize all"
msgstr "ביטול מזעור הכל" msgstr "ביטול מזעור הכל"
#: extensions/window-list/extension.js:441 #: extensions/window-list/extension.js:440
msgid "Maximize all" msgid "Maximize all"
msgstr "הגדלת הכל" msgstr "הגדלת הכל"
#: extensions/window-list/extension.js:449 #: extensions/window-list/extension.js:448
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "ביטול הגדלת הכל" msgstr "ביטול הגדלת הכל"
#: extensions/window-list/extension.js:457 #: extensions/window-list/extension.js:456
msgid "Close all" msgid "Close all"
msgstr "סגירת הכל" msgstr "סגירת הכל"
#: extensions/window-list/extension.js:737 #: extensions/window-list/extension.js:734
msgid "Window List" msgid "Window List"
msgstr "רשימת חלונות" msgstr "רשימת חלונות"
@@ -210,9 +194,6 @@ msgid "When to group windows"
msgstr "מתי לקבץ חלונות" msgstr "מתי לקבץ חלונות"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
#| msgid ""
#| "Decides when to group windows from the same application on the window "
#| "list. Possible values are \"never\", \"auto\" and \"always\"."
msgid "" msgid ""
"Decides when to group windows from the same application on the window list. " "Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”." "Possible values are “never”, “auto” and “always”."
@@ -221,15 +202,11 @@ msgstr ""
"Possible values are “never”, “auto” and “always”." "Possible values are “never”, “auto” and “always”."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:82 #: extensions/window-list/prefs.js:100
#| msgid "Show only windows in the current workspace"
msgid "Show windows from all workspaces" msgid "Show windows from all workspaces"
msgstr "הצגת חלונות מכל מרחבי העבודה" msgstr "הצגת חלונות מכל מרחבי העבודה"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
#| msgid ""
#| "Whether to show the window list on all connected monitors or only on the "
#| "primary one."
msgid "Whether to show windows from all workspaces or only the current one." msgid "Whether to show windows from all workspaces or only the current one."
msgstr "Whether to show windows from all workspaces or only the current one." msgstr "Whether to show windows from all workspaces or only the current one."
@@ -245,44 +222,57 @@ msgstr ""
"Whether to show the window list on all connected monitors or only on the " "Whether to show the window list on all connected monitors or only on the "
"primary one." "primary one."
#: extensions/window-list/prefs.js:25 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "קיבוץ חלונות" msgstr "קיבוץ חלונות"
#: extensions/window-list/prefs.js:47 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "לעולם לא לקבץ חלונות" msgstr "לעולם לא לקבץ חלונות"
#: extensions/window-list/prefs.js:48 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "קיבוץ חלונות כאשר המקום מוגבל" msgstr "קיבוץ חלונות כאשר המקום מוגבל"
#: extensions/window-list/prefs.js:49 #: extensions/window-list/prefs.js:60
msgid "Always group windows" msgid "Always group windows"
msgstr "תמיד לקבץ חלונות" msgstr "תמיד לקבץ חלונות"
#: extensions/window-list/prefs.js:75 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "הצגה בכל הצגים" msgstr "הצגה בכל הצגים"
#: extensions/window-list/workspaceIndicator.js:209 #: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:215 #: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "מחוון מרחבי עבודה" msgstr "מחוון מרחבי עבודה"
#: extensions/workspace-indicator/prefs.js:129 #: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "שם מרחב העבודה" msgstr "שם מרחב העבודה"
#: extensions/workspace-indicator/prefs.js:149 #: extensions/workspace-indicator/prefs.js:67
msgid "Name"
msgstr "שם"
#: extensions/workspace-indicator/prefs.js:189
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "מרחב עבודה %d" msgstr "מרחב עבודה %d"
#: extensions/workspace-indicator/prefs.js:218
#| msgid "Workspace"
msgid "Add Workspace"
msgstr "הוספת מרחב עבודה"
#~ msgid "Application"
#~ msgstr "יישום"
#~ msgid "Create new matching rule"
#~ msgstr "יצירת כלל חדש תואם"
#~ msgid "Add"
#~ msgstr "הוספה"
#~ msgid "Name"
#~ msgstr "שם"
#~ msgid "Attach modal dialog to the parent window" #~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Attach modal dialog to the parent window" #~ msgstr "Attach modal dialog to the parent window"
+254
View File
@@ -0,0 +1,254 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-09-14 20:54+0000\n"
"PO-Revision-Date: 2020-09-19 12:50+0100\n"
"Language: kab_DZ\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Last-Translator: Yacine Bouklif <yacinebouklif@gmail.com>\n"
"Language-Team: \n"
"X-Generator: Poedit 2.4.1\n"
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME aklasiki"
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Tiɣimit-agi ak-teqqen ɣer GNOME aklasiki"
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Inurifen"
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Isnasen"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
msgid "Application and workspace list"
msgstr "Tabdart n yisnasen akked tallunt n umahil"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"Tabdart n yiɣewwaren, yal yiwet tesɛa id n usnas (isem n ufaylu n desktop), "
"ad ḍefrent snat n tenqiḍin akked wuḍḍun n tallunt n umahil"
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "Ilugan n tallunt n umahil"
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "Rnu alugen"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Aḍeqqer n uḍebsi “%s” ur yeddi ara:"
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Ibenkan izirazen"
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Ldi ifuyla"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows"
msgstr "Seqdec ugar n yigdilen i yisfuyla"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
msgid ""
"Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy."
msgstr ""
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top"
msgstr "Sers tawaṭṭfa n usfaylu uksawen"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
msgid ""
"If true, place window captions on top the respective thumbnail, overriding "
"shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect."
msgstr ""
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Imeḍqan"
#: extensions/places-menu/placeDisplay.js:46
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "Asekker n “%s” ur yeddi ara"
#: extensions/places-menu/placeDisplay.js:61
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Aserkeb n ubleɣ “%s” ur yeddi ara"
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer"
msgstr "Aselkim"
#: extensions/places-menu/placeDisplay.js:359
msgid "Home"
msgstr "Asebter agejdan"
#: extensions/places-menu/placeDisplay.js:404
msgid "Browse Network"
msgstr "Snirem azeḍḍa"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
msgid "Cycle Screenshot Sizes"
msgstr ""
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
msgid "Cycle Screenshot Sizes Backward"
msgstr ""
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
msgid "Theme name"
msgstr "Isem n usentel"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Isem n usentel ara yettusidren si ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Mdel"
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr ""
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Semẓi"
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr ""
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr ""
#: extensions/window-list/extension.js:428
msgid "Minimize all"
msgstr "Semẓi akk"
#: extensions/window-list/extension.js:434
msgid "Unminimize all"
msgstr ""
#: extensions/window-list/extension.js:440
msgid "Maximize all"
msgstr "Semɣer akk"
#: extensions/window-list/extension.js:448
msgid "Unmaximize all"
msgstr ""
#: extensions/window-list/extension.js:456
msgid "Close all"
msgstr "Mdel akk"
#: extensions/window-list/extension.js:734
msgid "Window List"
msgstr "Tabdart n yisfuyla"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
msgid "When to group windows"
msgstr "Melmi ara ttusgerwen yisfuyla"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
msgid ""
"Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”."
msgstr ""
"Ad iwali ma ad isegrew isfuyla seg yiwen n usnas di tebdart n yisfuyla. "
"Azalen yellan: “never”, “auto” akked “always”."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Sken isfuyla si meṛṛa tallunin n umahil"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
msgid "Whether to show windows from all workspaces or only the current one."
msgstr ""
"Ma yella ad ttwaseknen yisfuyla si meṛṛa tallunin n umahil neɣ ala seg win "
"iremden."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
msgid "Show the window list on all monitors"
msgstr "Sken tabdart n yisfuyla ɣef yigdilen meṛṛa"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
msgstr ""
"Ma yella ad ttwaseknen yisfuyla si meṛṛa tallunin n umahil neɣ ala ɣef "
"uzwaran."
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Asegrew n yisfuyla"
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Werǧin ad tesgerweḍ isfuyla"
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Segrew isfuyla ticki tallunt txuṣ"
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Yalas ssegraw isfuyla"
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Sken ɣef yigdilen meṛṛa"
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr ""
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Ismawen n tallunin n umahil"
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Tallunt n umahil %d"
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Rnu tallunt n umahil"
+146 -162
View File
@@ -7,11 +7,11 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extensions gnome-3-0\n" "Project-Id-Version: gnome-shell-extensions gnome-3-0\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"shell&keywords=I18N+L10N&component=extensions\n" "issues\n"
"POT-Creation-Date: 2017-08-11 01:33+0000\n" "POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2017-09-20 11:37+0300\n" "PO-Revision-Date: 2020-09-21 16:55+0300\n"
"Last-Translator: Stas Solovey <whats_up@tut.by>\n" "Last-Translator: Alexey Rubtsov <rushills@gmail.com>\n"
"Language-Team: Русский <gnome-cyr@gnome.org>\n" "Language-Team: Русский <gnome-cyr@gnome.org>\n"
"Language: ru\n" "Language: ru\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -19,7 +19,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 2.0.3\n" "X-Generator: Poedit 2.4.1\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3 #: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic" msgid "GNOME Classic"
@@ -29,73 +29,11 @@ msgstr "Классический GNOME"
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Данный сеанс использует классический рабочий стол GNOME" msgstr "Данный сеанс использует классический рабочий стол GNOME"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7 #: extensions/apps-menu/extension.js:113
msgid "Attach modal dialog to the parent window"
msgstr "Прикреплять модальное диалоговое окно к родительскому окну"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:8
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:25
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:33
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:41
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"Этот ключ переопределяет ключ в org.gnome.mutter при запуске GNOME Shell."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:16
msgid "Arrangement of buttons on the titlebar"
msgstr "Расположение кнопок в заголовке"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:17
msgid ""
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
"GNOME Shell."
msgstr ""
"Этот ключ переопределяет ключ в org.gnome.desktop.wm.preferences при запуске "
"GNOME Shell."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:24
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
"Автоматически изменять размеры окна при перемещении окна к краям экрана"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:32
msgid "Workspaces only on primary monitor"
msgstr "Рабочие места только на основном мониторе"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:40
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Задержка изменения фокуса в режиме мыши после остановки указателя"
#: extensions/alternate-tab/prefs.js:20
msgid "Thumbnail only"
msgstr "Только миниатюры"
#: extensions/alternate-tab/prefs.js:21
msgid "Application icon only"
msgstr "Только значок приложения"
#: extensions/alternate-tab/prefs.js:22
msgid "Thumbnail and application icon"
msgstr "Миниатюра и значок приложения"
#: extensions/alternate-tab/prefs.js:38
msgid "Present windows as"
msgstr "Отображать окна как"
#: extensions/alternate-tab/prefs.js:69
msgid "Show only windows in the current workspace"
msgstr "Отображать окна только текущей рабочей области"
#: extensions/apps-menu/extension.js:41
msgid "Activities Overview"
msgstr "Обзор"
#: extensions/apps-menu/extension.js:141
msgid "Favorites" msgid "Favorites"
msgstr "Избранное" msgstr "Избранное"
#: extensions/apps-menu/extension.js:436 #: extensions/apps-menu/extension.js:369
msgid "Applications" msgid "Applications"
msgstr "Приложения" msgstr "Приложения"
@@ -111,73 +49,29 @@ msgstr ""
"Список строк, содержащих идентификатор приложения (имя desktop-файла), за " "Список строк, содержащих идентификатор приложения (имя desktop-файла), за "
"которым следует двоеточие и номер рабочего места" "которым следует двоеточие и номер рабочего места"
#: extensions/auto-move-windows/prefs.js:60 #: extensions/auto-move-windows/prefs.js:35
msgid "Application" msgid "Workspace Rules"
msgstr "Приложение" msgstr "Правила для рабочей области"
#: extensions/auto-move-windows/prefs.js:69 #: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:127
msgid "Workspace"
msgstr "Рабочая область"
#: extensions/auto-move-windows/prefs.js:85
msgid "Add Rule" msgid "Add Rule"
msgstr "Добавить правило" msgstr "Добавить правило"
#: extensions/auto-move-windows/prefs.js:106
msgid "Create new matching rule"
msgstr "Создать новое правило соответствия"
#: extensions/auto-move-windows/prefs.js:111
msgid "Add"
msgstr "Добавить"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:107 #: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Не удалось извлечь диск «%s»:" msgstr "Не удалось извлечь диск «%s»:"
#: extensions/drive-menu/extension.js:125 #: extensions/drive-menu/extension.js:128
msgid "Removable devices" msgid "Removable devices"
msgstr "Съёмные устройства" msgstr "Съёмные устройства"
#: extensions/drive-menu/extension.js:150 #: extensions/drive-menu/extension.js:155
msgid "Open Files" msgid "Open Files"
msgstr "Открыть файлы" msgstr "Открыть файлы"
#: extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "Привет, мир!"
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:5
msgid "Alternative greeting text."
msgstr "Альтернативный текст приветствия."
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:6
msgid ""
"If not empty, it contains the text that will be shown when clicking on the "
"panel."
msgstr ""
"Если строка не пуста, то содержащийся в ней текст будет показан при нажатии "
"на панель."
#: extensions/example/prefs.js:30
msgid "Message"
msgstr "Сообщение"
#. TRANSLATORS: Example is the name of the extension, should not be
#. translated
#: extensions/example/prefs.js:43
msgid ""
"Example aims to show how to build well behaved extensions for the Shell and "
"as such it has little functionality on its own.\n"
"Nevertheless its possible to customize the greeting message."
msgstr ""
"Цель расширения Example — показать, как создавать расширения для Shell, само "
"по себе оно имеет малую функциональность.\n"
"Тем не менее, можно настроить приветственное сообщение."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows" msgid "Use more screen for windows"
msgstr "Использовать дополнительную область экрана для окон" msgstr "Использовать дополнительную область экрана для окон"
@@ -207,31 +101,31 @@ msgstr ""
"умолчанию заголовки располагаются снизу). При изменении этого параметра, " "умолчанию заголовки располагаются снизу). При изменении этого параметра, "
"чтобы оно вступило в силу, необходимо перезапустить Shell." "чтобы оно вступило в силу, необходимо перезапустить Shell."
#: extensions/places-menu/extension.js:78 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:81 #: extensions/places-menu/extension.js:93
msgid "Places" msgid "Places"
msgstr "Места" msgstr "Места"
#: extensions/places-menu/placeDisplay.js:65 #: extensions/places-menu/placeDisplay.js:46
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Не удалось смонтировать том для «%s»"
#: extensions/places-menu/placeDisplay.js:78
#, javascript-format #, javascript-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "Не удалось запустить «%s»" msgstr "Не удалось запустить «%s»"
#: extensions/places-menu/placeDisplay.js:137 #: extensions/places-menu/placeDisplay.js:61
#: extensions/places-menu/placeDisplay.js:160 #, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Не удалось смонтировать том для «%s»"
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer" msgid "Computer"
msgstr "Компьютер" msgstr "Компьютер"
#: extensions/places-menu/placeDisplay.js:303 #: extensions/places-menu/placeDisplay.js:359
msgid "Home" msgid "Home"
msgstr "Домашняя папка" msgstr "Домашняя папка"
#: extensions/places-menu/placeDisplay.js:347 #: extensions/places-menu/placeDisplay.js:404
msgid "Browse Network" msgid "Browse Network"
msgstr "Обзор сети" msgstr "Обзор сети"
@@ -251,54 +145,49 @@ msgstr "Название темы"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Название темы, загружаемой из ~/.themes/name/gnome-shell" msgstr "Название темы, загружаемой из ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:110 #: extensions/window-list/extension.js:98
msgid "Close" msgid "Close"
msgstr "Закрыть" msgstr "Закрыть"
# ну или "восстановить", правда тогда появляется неоднозначный повтор (unmaximize) # ну или "восстановить", правда тогда появляется неоднозначный повтор (unmaximize)
#: extensions/window-list/extension.js:129 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "Вернуть" msgstr "Вернуть"
#: extensions/window-list/extension.js:130 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "Свернуть" msgstr "Свернуть"
#: extensions/window-list/extension.js:136 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Восстановить" msgstr "Восстановить"
#: extensions/window-list/extension.js:137 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "Развернуть" msgstr "Развернуть"
#: extensions/window-list/extension.js:420 #: extensions/window-list/extension.js:428
msgid "Minimize all" msgid "Minimize all"
msgstr "Свернуть все" msgstr "Свернуть все"
# ну или "восстановить", правда тогда появляется неоднозначный повтор (unmaximize) # ну или "восстановить", правда тогда появляется неоднозначный повтор (unmaximize)
#: extensions/window-list/extension.js:428 #: extensions/window-list/extension.js:434
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Вернуть все" msgstr "Вернуть все"
#: extensions/window-list/extension.js:436 #: extensions/window-list/extension.js:440
msgid "Maximize all" msgid "Maximize all"
msgstr "Развернуть все" msgstr "Развернуть все"
#: extensions/window-list/extension.js:445 #: extensions/window-list/extension.js:448
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Восстановить все" msgstr "Восстановить все"
#: extensions/window-list/extension.js:454 #: extensions/window-list/extension.js:456
msgid "Close all" msgid "Close all"
msgstr "Закрыть все" msgstr "Закрыть все"
#: extensions/window-list/extension.js:678 #: extensions/window-list/extension.js:734
#: extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Индикатор рабочей области"
#: extensions/window-list/extension.js:842
msgid "Window List" msgid "Window List"
msgstr "Список окон" msgstr "Список окон"
@@ -316,10 +205,20 @@ msgstr ""
"«always» — всегда." "«always» — всегда."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Отображать окна со всех рабочих областей"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
msgid "Whether to show windows from all workspaces or only the current one."
msgstr ""
"Показывать ли список окон со всех рабочих областей или только с текущей."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
msgid "Show the window list on all monitors" msgid "Show the window list on all monitors"
msgstr "Показывать список окон на всех мониторах" msgstr "Показывать список окон на всех мониторах"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
msgid "" msgid ""
"Whether to show the window list on all connected monitors or only on the " "Whether to show the window list on all connected monitors or only on the "
"primary one." "primary one."
@@ -327,39 +226,124 @@ msgstr ""
"Показывать ли список окон на всех подключенных мониторах или только на " "Показывать ли список окон на всех подключенных мониторах или только на "
"основном." "основном."
#: extensions/window-list/prefs.js:32 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Группировка окон" msgstr "Группировка окон"
#: extensions/window-list/prefs.js:50 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "Никогда не группировать окна" msgstr "Никогда не группировать окна"
#: extensions/window-list/prefs.js:51 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Группировать окна, если место ограничено" msgstr "Группировать окна, если место ограничено"
#: extensions/window-list/prefs.js:52 #: extensions/window-list/prefs.js:60
msgid "Always group windows" msgid "Always group windows"
msgstr "Всегда группировать окна" msgstr "Всегда группировать окна"
#: extensions/window-list/prefs.js:75 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Показывать на всех мониторах" msgstr "Показывать на всех мониторах"
#: extensions/workspace-indicator/prefs.js:141 #: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Индикатор рабочей области"
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Названия рабочих областей" msgstr "Названия рабочих областей"
#: extensions/workspace-indicator/prefs.js:157 #: extensions/workspace-indicator/prefs.js:67
msgid "Name"
msgstr "Название"
#: extensions/workspace-indicator/prefs.js:198
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Рабочая область %d" msgstr "Рабочая область %d"
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Добавить рабочую область"
#~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Прикреплять модальное диалоговое окно к родительскому окну"
#~ msgid ""
#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
#~ msgstr ""
#~ "Этот ключ переопределяет ключ в org.gnome.mutter при запуске GNOME Shell."
#~ msgid "Arrangement of buttons on the titlebar"
#~ msgstr "Расположение кнопок в заголовке"
#~ msgid ""
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
#~ "running GNOME Shell."
#~ msgstr ""
#~ "Этот ключ переопределяет ключ в org.gnome.desktop.wm.preferences при "
#~ "запуске GNOME Shell."
#~ msgid "Enable edge tiling when dropping windows on screen edges"
#~ msgstr ""
#~ "Автоматически изменять размеры окна при перемещении окна к краям экрана"
#~ msgid "Workspaces only on primary monitor"
#~ msgstr "Рабочие места только на основном мониторе"
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
#~ msgstr "Задержка изменения фокуса в режиме мыши после остановки указателя"
#~ msgid "Thumbnail only"
#~ msgstr "Только миниатюры"
#~ msgid "Application icon only"
#~ msgstr "Только значок приложения"
#~ msgid "Thumbnail and application icon"
#~ msgstr "Миниатюра и значок приложения"
#~ msgid "Present windows as"
#~ msgstr "Отображать окна как"
#~ msgid "Activities Overview"
#~ msgstr "Обзор"
#~ msgid "Application"
#~ msgstr "Приложение"
#~ msgid "Create new matching rule"
#~ msgstr "Создать новое правило соответствия"
#~ msgid "Add"
#~ msgstr "Добавить"
#~ msgid "Hello, world!"
#~ msgstr "Привет, мир!"
#~ msgid "Alternative greeting text."
#~ msgstr "Альтернативный текст приветствия."
#~ msgid ""
#~ "If not empty, it contains the text that will be shown when clicking on "
#~ "the panel."
#~ msgstr ""
#~ "Если строка не пуста, то содержащийся в ней текст будет показан при "
#~ "нажатии на панель."
#~ msgid "Message"
#~ msgstr "Сообщение"
#~ msgid ""
#~ "Example aims to show how to build well behaved extensions for the Shell "
#~ "and as such it has little functionality on its own.\n"
#~ "Nevertheless its possible to customize the greeting message."
#~ msgstr ""
#~ "Цель расширения Example — показать, как создавать расширения для Shell, "
#~ "само по себе оно имеет малую функциональность.\n"
#~ "Тем не менее, можно настроить приветственное сообщение."
#~ msgid "Name"
#~ msgstr "Название"
#~ msgid "CPU" #~ msgid "CPU"
#~ msgstr "ЦП" #~ msgstr "ЦП"
+34 -35
View File
@@ -9,18 +9,18 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions gnome-3-0\n" "Project-Id-Version: gnome-shell-extensions gnome-3-0\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2020-04-17 16:03+0000\n" "POT-Creation-Date: 2020-08-12 23:03+0000\n"
"PO-Revision-Date: 2020-05-02 16:06+0800\n" "PO-Revision-Date: 2020-09-22 23:06+0800\n"
"Last-Translator: Cheng-Chia Tseng <pswo10680@gmail.com>\n" "Last-Translator: Cheng-Chia Tseng <pswo10680@gmail.com>\n"
"Language-Team: Chinese <zh-l10n@linux.org.tw>\n" "Language-Team: Chinese <zh-l10n@linux.org.tw>\n"
"Language: zh_TW\n" "Language: zh_TW\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.3\n" "X-Generator: Poedit 2.4.1\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3 #: data/gnome-classic.desktop.in:3
msgid "GNOME Classic" msgid "GNOME Classic"
msgstr "GNOME Classic" msgstr "GNOME Classic"
@@ -48,27 +48,14 @@ msgstr ""
"字串的列表,每個都包含一個應用程式 id (桌面檔名稱),後面接著半形分號 \";\" 與" "字串的列表,每個都包含一個應用程式 id (桌面檔名稱),後面接著半形分號 \";\" 與"
"工作區號碼" "工作區號碼"
#: extensions/auto-move-windows/prefs.js:59 #: extensions/auto-move-windows/prefs.js:35
msgid "Application" msgid "Workspace Rules"
msgstr "應用程式" msgstr "工作區規則"
#: extensions/auto-move-windows/prefs.js:70 #: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:133
msgid "Workspace"
msgstr "工作區"
#: extensions/auto-move-windows/prefs.js:88
msgid "Add Rule" msgid "Add Rule"
msgstr "加入規則" msgstr "加入規則"
#: extensions/auto-move-windows/prefs.js:110
msgid "Create new matching rule"
msgstr "建立新的比對規則"
#: extensions/auto-move-windows/prefs.js:116
msgid "Add"
msgstr "加入"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112 #: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:233
@@ -174,27 +161,27 @@ msgstr "取消最大化"
msgid "Maximize" msgid "Maximize"
msgstr "最大化" msgstr "最大化"
#: extensions/window-list/extension.js:429 #: extensions/window-list/extension.js:428
msgid "Minimize all" msgid "Minimize all"
msgstr "全部最小化" msgstr "全部最小化"
#: extensions/window-list/extension.js:435 #: extensions/window-list/extension.js:434
msgid "Unminimize all" msgid "Unminimize all"
msgstr "全部取消最小化" msgstr "全部取消最小化"
#: extensions/window-list/extension.js:441 #: extensions/window-list/extension.js:440
msgid "Maximize all" msgid "Maximize all"
msgstr "全部最大化" msgstr "全部最大化"
#: extensions/window-list/extension.js:449 #: extensions/window-list/extension.js:448
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "全部取消最大化" msgstr "全部取消最大化"
#: extensions/window-list/extension.js:457 #: extensions/window-list/extension.js:456
msgid "Close all" msgid "Close all"
msgstr "全部關閉" msgstr "全部關閉"
#: extensions/window-list/extension.js:737 #: extensions/window-list/extension.js:734
msgid "Window List" msgid "Window List"
msgstr "視窗列表" msgstr "視窗列表"
@@ -210,7 +197,7 @@ msgstr ""
"決定在視窗列表中何時群組視窗。可能的數值有「never」、「auto」、「always」。" "決定在視窗列表中何時群組視窗。可能的數值有「never」、「auto」、「always」。"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:89 #: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces" msgid "Show windows from all workspaces"
msgstr "顯示所有工作區的視窗" msgstr "顯示所有工作區的視窗"
@@ -228,28 +215,28 @@ msgid ""
"primary one." "primary one."
msgstr "是否在所有連接的螢幕顯示視窗列表或是只出現在主要螢幕上。" msgstr "是否在所有連接的螢幕顯示視窗列表或是只出現在主要螢幕上。"
#: extensions/window-list/prefs.js:25 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "視窗群組" msgstr "視窗群組"
#: extensions/window-list/prefs.js:47 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "永不群組視窗" msgstr "永不群組視窗"
#: extensions/window-list/prefs.js:48 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "當空間受限時群組視窗" msgstr "當空間受限時群組視窗"
#: extensions/window-list/prefs.js:49 #: extensions/window-list/prefs.js:60
msgid "Always group windows" msgid "Always group windows"
msgstr "永遠群組視窗" msgstr "永遠群組視窗"
#: extensions/window-list/prefs.js:82 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "顯示於所有螢幕" msgstr "顯示於所有螢幕"
#: extensions/window-list/workspaceIndicator.js:209 #: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:215 #: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "工作區指示器" msgstr "工作區指示器"
@@ -266,6 +253,18 @@ msgstr "工作區 %d"
msgid "Add Workspace" msgid "Add Workspace"
msgstr "新增工作區" msgstr "新增工作區"
#~ msgid "Application"
#~ msgstr "應用程式"
#~ msgid "Workspace"
#~ msgstr "工作區"
#~ msgid "Create new matching rule"
#~ msgstr "建立新的比對規則"
#~ msgid "Add"
#~ msgstr "加入"
#~ msgid "Name" #~ msgid "Name"
#~ msgstr "名稱" #~ msgstr "名稱"