Commit Graph

1278 Commits

Author SHA1 Message Date
April & May c3501eac2b chore: Use parameter to control lockscreen animation instead of property
Use parameter to control lockscreen animation instead of QML property.
2025-07-31 19:29:34 +08:00
April & May 5f767e541f fix: Check virtual device for QInputEvent
Qt will create virtual device for QInputEvent when no physical device
available (e.g. switched to another VT), which will leads to a failed
assertion and make treeland crash. This commit applies a special guarded
getter for such case.
2025-07-31 19:29:34 +08:00
April & May efa48c3154 fix: Skip lockscreen animation when switching back from TTY
When switching back from TTY the Greeter will be re-created, and somehow
leads to an incorrect lockscreen animation on HiRes screen. This commit
adds skip function to lockscreen animation, and skips the animation when
the first time it adds to an output.
2025-07-31 19:29:34 +08:00
April & May cd0478c044 feat: Support TTY switching
Support TTY switching by calling wlr_session_change_vt(). Currently not
working with ddm because of the VT_BOUND mode.
2025-07-31 19:29:34 +08:00
April & May 5a8e15f1c7 feat: Add qwlroots interface for wl_session object
Add qwlroots interface for wl_session object, which can serve for VT
switching.
2025-07-31 19:29:34 +08:00
JiDe Zhang 60c30ec0db ci: Trigger waylib builds when qwlroots changes
This commit modifies the GitHub Actions workflows for waylib builds to
ensure they are triggered when qwlroots code changes occur, since waylib
depends on qwlroots.

Changes:
1. Added 'qwlroots/**' to the paths trigger for waylib-archlinux-build.yml
2. Added 'qwlroots/**' to the paths trigger for waylib-debian-build.yml
3. Updated README.md to document the CI workflow dependencies
4. Updated README.zh_CN.md to maintain consistency across all language versions

This ensures proper dependency management and prevents build failures
when qwlroots modifications affect waylib compilation.

ci: 当qwlroots代码修改时触发waylib构建

此提交修改了waylib构建的GitHub Actions工作流,确保在qwlroots
代码发生变化时触发waylib构建,因为waylib依赖于qwlroots。

变更内容:
1. 在waylib-archlinux-build.yml的路径触发器中添加'qwlroots/**'
2. 在waylib-debian-build.yml的路径触发器中添加'qwlroots/**'
3. 更新README.md文档记录CI工作流的依赖关系
4. 更新README.zh_CN.md保持所有语言版本文档的一致性

这确保了正确的依赖管理,防止qwlroots修改影响waylib编译时
出现构建失败的情况。
2025-07-30 17:57:57 +08:00
rewine b68ea9f76e fix: remove unused quit full button and add helper activation
1. Remove the unused "quitFullBtn" Loader component that was not visible
2. Add Helper.activateSurface call before maximizing window
3. This ensures proper window activation before state change

fix: 删除未使用的退出全屏按钮并添加窗口激活

1. 移除了未使用的 "quitFullBtn" Loader 组件
2. 在窗口最大化前添加了 Helper.activateSurface 调用
3. 这确保了在状态改变前正确激活窗口
2025-07-30 17:57:37 +08:00
rewine 6c1aab65be fix: prevent title bar and window buttons from stealing focus
1. Added Qt.NoFocus policy to title bar component to prevent keyboard
focus
2. Added focusPolicy to all window control buttons (minimize, close,
maximize)
3. Ensures focus remains with active window content during window
operations
4. Improves accessibility and prevents focus-related UI glitches

fix: 防止标题栏和窗口按钮获取焦点

1. 为标题栏组件添加 Qt.NoFocus 策略以阻止键盘焦点
2. 为所有窗口控制按钮(最小化、关闭、最大化)添加 focusPolicy
3. 确保窗口操作期间焦点保留在活动窗口内容上
4. 提升可访问性并防止焦点相关的界面故障
2025-07-30 16:45:53 +08:00
YaoBing Xiao 837d349e96 feat: add wl_drm support
Add wl_drm protocol
2025-07-30 15:32:25 +08:00
immortalrover a6134c2e40 feat: create ext-data-control manager
support ext-data-control-v1 protocol
2025-07-29 20:33:01 +08:00
zccrs 26b95540cd
fix: Handle VT switching keys (#469)
* fix: Handle VT switching keys

This commit addresses an issue where the XF86Switch_VT_1 to
XF86Switch_VT_12 keys were not properly handled by Qt. Qt does not
directly support these keys. The fix involves converting these keys to
Ctrl+Alt+F1 through Ctrl+Alt+F12 when the Ctrl and Alt modifiers are
already pressed. This enables users to switch virtual terminals within
the Wayland environment using these key combinations, matching the
expected behavior on traditional Linux systems. This conversion only
happens when Ctrl+Alt are already pressed, preventing accidental mapping
of other keys.

fix: 处理 VT 切换键

此提交解决了一个 Qt 无法正确处理 XF86Switch_VT_1 到 XF86Switch_VT_12
键的问题。Qt 不直接支持这些键。此修复包括将这些键转换为 Ctrl+Alt+F1
到 Ctrl+Alt+F12(如果 Ctrl 和 Alt 修改键已被按下)。这使得用户能够在
Wayland 环境中使用这些组合键切换虚拟终端,从而匹配传统 Linux 系统上的预
期行为。此转换仅在 Ctrl+Alt 已被按下时发生,防止意外映射其他键。
2025-07-25 11:00:58 +08:00
rewine 7039d9ede6 feat: add Nix flake support for project configuration
1. Introduce `default.nix` at the root to define Nix packages and
dependencies
2. Migrate CMakeLists.txt to use `option()` and `add_feature_info()` for
better feature management
3. Update `flake.nix` to import and organize Nix modules and packages
4. Modify `nix/default.nix` to use `nix-filter.lib` and add new
dependencies like `qwlroots` and `waylib`
5. Update `waylib/flake.nix` and `waylib/nix/default.nix` to improve
test support and source filtering

feat: 添加 Nix flake 支持以优化项目配置

1. 在项目根目录引入 `default.nix` 来定义 Nix 包及其依赖
2. 将 CMakeLists.txt 中的配置改为使用 `option()` 和 `add_feature_info()`
以更好地管理功能选项
3. 更新 `flake.nix` 以导入并组织 Nix 模块和包
4. 修改 `nix/default.nix` 使用 `nix-filter.lib` 并添加 `qwlroots` 和
`waylib` 等包
2025-07-24 20:07:56 +08:00
rewine 531c316379 fix: prevent workspace moveSurfaceTo crash on null wrapper
1. Add null check for wrapper in WindowSelectionGrid.qml before calling
moveSurfaceTo
2. Add conditional checks in WorkspaceSelectionList.qml to verify both
wrapper and model exist before workspace move
3. Use optional chaining operator (dragManager.item?.wrapper) for safer
null handling
4. Prevent potential crashes when moving surfaces between workspaces
during drag operations

fix: 防止工作区 moveSurfaceTo 在空包装器时崩溃

1. 在 WindowSelectionGrid.qml 中调用 moveSurfaceTo 前添加对 wrapper 的空
值检查
2. 在 WorkspaceSelectionList.qml 中添加条件检查以验证包装器和模型存在后
再进行工作区移动
3. 使用可选链操作符 (dragManager.item?.wrapper) 以更安全地处理空值
4. 防止在拖放操作期间跨工作区移动时出现潜在崩溃
2025-07-24 15:02:29 +08:00
rewine 41aac0ddea fix: remove redundant submodule options and configs
1. Remove duplicate CMake option for WITH_SUBMODULE_WAYLIB that was both
defined and set to ON
2. Eliminate redundant build presets (submodule & submodule-with-clang)
that only differed by compiler settings
3. Simplify CMakePresets.json by keeping only essential configurations
4. Maintain single source of truth for binary directory configuration

fix: 删除冗余的子模块选项和配置

1. 移除重复定义的 WITH_SUBMODULE_WAYLIB 选项,该选项已被设置为 ON
2. 删除冗余的构建预设(submodule 和 submodule-with-clang),这些配置仅编
译器设置不同
3. 简化 CMakePresets.json 文件,保留必要配置
4. 维护单一可信的二进制目录配置来源
2025-07-24 14:46:01 +08:00
rewine 826fe21051 chore: update nix dependencies and clean up configurations
1. Remove redundant seatd service configuration in flake.nix that was
previously used for testing
2. Clean up development shell packages by removing unnecessary Wayland-
related dependencies
3. Update wlroots dependency to wlroots_0_19 in both flake.nix and
default.nix
4. Update project version from 0.2.2 to 0.5-unstable to reflect recent
development progress
5. Add depsBuildBuild input for pkg-config to ensure proper build
environment setup
6. Remove outdated wlroots reference from nativeBuildInputs

chore: 更新 nix 依赖并清理配置

1. 移除 flake.nix 中冗余的 seatd 服务配置(之前用于测试)
2. 清理开发环境中的 shell 包,移除不必要的 Wayland 相关依赖
3. 在 flake.nix 和 default.nix 中将 wlroots 依赖更新为 wlroots_0_19
4. 将项目版本从 0.2.2 更新为 0.5-unstable 以反映最新开发进展
5. 添加 pkg-config 的 depsBuildBuild 输入以确保正确的构建环境
2025-07-23 17:09:40 +08:00
renovate[bot] ffa43d0167 chore(deps): update actions/checkout action to v4 2025-07-23 15:36:31 +08:00
renovate[bot] c4aba6382e chore(deps): update fsfe/reuse-action action to v5 2025-07-23 15:35:30 +08:00
transifex-integration[bot] e321eed150 [skip CI] Translate lockscreen.en_US.ts in uk
100% translated source file: 'lockscreen.en_US.ts'
on 'uk'.
2025-07-23 15:34:37 +08:00
transifex-integration[bot] 9adc345b56 [skip CI] Translate multitaskview.en_US.ts in fr
100% translated source file: 'multitaskview.en_US.ts'
on 'fr'.
2025-07-23 15:34:37 +08:00
transifex-integration[bot] e71660c914 [skip CI] Translate lockscreen.en_US.ts in pl
100% translated source file: 'lockscreen.en_US.ts'
on 'pl'.
2025-07-23 15:34:37 +08:00
transifex-integration[bot] 3a471672c6 [skip CI] Translate wallpaper.en_US.ts in pl
100% translated source file: 'wallpaper.en_US.ts'
on 'pl'.
2025-07-23 15:34:37 +08:00
transifex-integration[bot] 7d4aec0795 [skip CI] Translate multitaskview.en_US.ts in pl
100% translated source file: 'multitaskview.en_US.ts'
on 'pl'.
2025-07-23 15:34:37 +08:00
transifex-integration[bot] 3c6c4c01e9 [skip CI] Translate treeland.en_US.ts in pl
100% translated source file: 'treeland.en_US.ts'
on 'pl'.
2025-07-23 15:34:37 +08:00
April & May 6a7b46ad64 fix: Scaling animation not shown while return from shutdown page
Signed-off-by: April & May <apr3vau@outlook.com>
2025-07-23 15:28:21 +08:00
JiDe Zhang 54e8ed840b chore: Force Ninja build during deb packaging
This commit enforces the use of Ninja as the build system during the
debian package creation process for treeland, qwlroots, and waylib.
This change was made to significantly improve build times, as Ninja
generally offers faster and more efficient builds compared to the
default make system. The changes involve adding `ninja-build` as a
build dependency in the `debian/control` files and adding `-GNinja` to
the `dh_auto_configure` commands in the `debian/rules` files for all
three packages. This ensures that CMake uses Ninja to generate the build
files.

chore: 在 deb 打包过程中强制使用 Ninja 构建

此提交强制在 treeland、qwlroots 和 waylib 的 debian 包创建过程中使用
Ninja 作为构建系统。 此更改旨在显着缩短构建时间,因为与默认的 make 系统
相比,Ninja 通常提供更快、更高效的构建。 更改包括在 `debian/control` 文
件中添加 `ninja-build` 作为构建依赖项,并在所有三个包的 `debian/rules`
文件中的 `dh_auto_configure` 命令中添加 `-GNinja`。 这确保 CMake 使用
Ninja 来生成构建文件。
2025-07-23 15:27:52 +08:00
JiDe Zhang 7c74bf1e17 fix: add timeout to protocol tests
This commit adds a timeout of 3 seconds to several protocol unit tests
in their respective CMakeLists.txt files. These tests were observed
to block indefinitely in certain build environments, specifically
when building deb packages. Adding a timeout ensures that these tests
will not hang the build process, improving overall build reliability
and preventing potential deadlocks. The timeout value of 3 seconds
was chosen to allow sufficient time for the tests to complete under
normal conditions while still providing a reasonable safeguard against
indefinite blocking.

fix: 为协议测试添加超时

此提交在其各自的 CMakeLists.txt 文件中为多个协议单元测试添加了 3 秒的超
时。据观察,这些测试在某些构建环境中(尤其是在构建 deb 软件包时)会无限
期地阻塞。添加超时可确保这些测试不会使构建过程挂起,从而提高整体构建可靠
性并防止潜在的死锁。选择 3 秒的超时值是为了在正常情况下为测试完成留出足
够的时间,同时仍提供合理的保护以防止无限期阻塞。
2025-07-23 15:27:52 +08:00
JiDe Zhang 2427b2025a feat: Upload build artifacts as zip archives
The ArchLinux build workflows for qwlroots, treeland and waylib now
create a zip archive of the installed files in a staging directory
and upload it as an artifact. This allows for easy inspection of the
built files and verification of the build process's correctness. The
zip includes a `PACKAGE_INFO.txt` containing package metadata, build
configuration details, and a list of installed files. Pacman is used to
install the zip tool if it isn't already available.

feat: 上传构建产物为 zip 压缩包

qwlroots、treeland 和 waylib 的 ArchLinux 构建工作流程现在会在暂存目录中
创建已安装文件的 zip 压缩包,并将其作为工件上传。这样可以方便地检查构建
的文件并验证构建过程的正确性。该 zip 包含一个 `PACKAGE_INFO.txt`,其中包
含包元数据、构建配置详细信息和已安装文件列表。 如果 zip 工具尚不可用,则
使用 Pacman 安装它。
2025-07-23 15:27:52 +08:00
JiDe Zhang 644b7315d3 chore: fix CI and enable independent builds
1.  Fixes and updates CI configurations for treeland.
2.  Merges `reuse` files for comprehensive license information.
3.  Updates dependencies in `debian/control` to align with the combined
codebase.
4.  Introduces separate build workflows for `waylib` and `qwlroots` to
ensure they can be built independently.
5.  This ensures modularity and prevents accidental breakages during
future development, maintaining the option to separate these components
again.

chore: 修复 CI 并启用独立构建

1. 修复并更新了 treeland 的 CI 配置。
2. 合并 `reuse` 文件以提供全面的许可证信息。
3. 更新了 `debian/control` 中的依赖项,以与合并的代码库保持一致。
4. 引入了 `waylib` 和 `qwlroots` 的独立构建工作流程,以确保它们可以独立
构建。
5. 确保模块化,防止未来开发过程中意外损坏,保持再次分离这些组件的选项。
2025-07-23 15:27:52 +08:00
JiDe Zhang 2a0093ad46 refactor: merge qwlroots and waylib source code into treeland
Removed qwlroots and waylib from git submodules, and merged their
source code directly into the treeland repository. This change
reduces development overhead during the rapid iteration phase of
treeland, as frequent coordinated changes are required across
treeland, qwlroots, and waylib. By merging them now, we simplify
development and maintenance. In the future, when the project
stabilizes, we may consider splitting them back into independent
repositories.

To prepare for this possible future split, the original directory
structures and all files from qwlroots and waylib are preserved and
placed under separate subdirectories in treeland.

Original project commits at the time of merge:
- qwlroots: https://github.com/vioken/qwlroots(00b09f9047ac0eaf26757e8af3d31f35d22bbce3)
- waylib: https://github.com/vioken/waylib(9564027cc6c89dc5262c03d183f743b71a0e621e)

重构:将 qwlroots 和 waylib 项目代码合并到 treeland

将 qwlroots 和 waylib 从 git 子模块中移除,直接把它们的代码合并
到 treeland 项目中。这样做是为了在 treeland 快速迭代期间减少开发
成本,因为经常需要同时修改 treeland、waylib 和 qwlroots,合并后
开发会更方便,待项目稳定后再考虑重新拆分为独立项目。

为方便将来拆分,保留了原项目的目录结构和全部文件,并使用独立子
目录维护代码。

合并时原项目的提交信息如下:
- qwlroots: https://github.com/vioken/qwlroots(00b09f9047ac0eaf26757e8af3d31f35d22bbce3)
- waylib: https://github.com/vioken/waylib(9564027cc6c89dc5262c03d183f743b71a0e621e)
2025-07-23 15:27:52 +08:00
JiDe Zhang aee46508f7 chore: Use treeland-specific seatd service
This commit modifies the treeland systemd service file to use the
`seatd-dde.service` instead of the generic `seatd.service`. This change
is necessary because treeland now utilizes a dedicated seatd instance,
`seatd-dde`, specifically configured for its requirements.  By switching
to the dedicated service, treeland avoids potential conflicts or
misconfigurations that could arise from sharing a common seatd instance
with other applications or services.

chore: 使用 treeland 专用的 seatd 服务

此提交修改了 treeland systemd 服务文件,以使用 `seatd-dde.service` 而不
是通用的 `seatd.service`。 这一更改是必要的,因为 treeland 现在使用专门
为其需求配置的专用 seatd 实例 `seatd-dde`。 通过切换到专用服务,treeland
可以避免因与其他应用程序或服务共享通用 seatd 实例而可能引起的潜在冲突或
错误配置。
2025-07-21 10:58:17 +08:00
rewine ede2f8230d feat: implement ext-foreign-toplevel-list
Log: need https://github.com/vioken/waylib/pull/640
2025-07-16 10:04:01 +08:00
renovate[bot] df2a7442b2 chore(deps): lock file maintenance 2025-07-15 13:52:09 +08:00
transifex-integration[bot] 2f48f6d110 [skip CI] Translate lockscreen.en_US.ts in es
81% of minimum 10% translated source file: 'lockscreen.en_US.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format
2025-07-15 13:50:00 +08:00
renovate[bot] 1cf99b5540 chore(deps): update waylib digest to 9564027 2025-07-15 13:47:10 +08:00
transifex-integration[bot] 9d4c3cb5cd
i18n: Updates for project TreeLand (#440)
* [skip CI] Translate lockscreen.en_US.ts in pl

27% of minimum 10% translated source file: 'lockscreen.en_US.ts'
on 'pl'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in pt_BR

100% translated source file: 'treeland.en_US.ts'
on 'pt_BR'.

---------

Log:
2025-07-10 19:30:10 +08:00
JiDe Zhang 1713074802 chore: remove polkit rules for login1
The polkit rules for `org.freedesktop.login1.manage` are no longer
required because the DDE user no longer logs in via the `login1`
interface. This change removes the `misc/polkit-1` directory,
the `debian/treeland.install` reference to polkit rules, and the
corresponding `CMakeLists.txt` entry. This simplifies the codebase and
removes unnecessary configuration files.

chore: 移除 login1 的 polkit 规则

由于 DDE 用户不再通过 `login1` 接口登录,因此不再需要
`org.freedesktop.login1.manage` 的 polkit 规则。此更改移除了 `misc/
polkit-1` 目录、`debian/treeland.install` 中对 polkit 规则的引用以及相应
的 `CMakeLists.txt` 条目。这简化了代码库并删除了不必要的配置文件。
2025-07-09 14:58:24 +08:00
YaoBing Xiao 34c158934e feat: add support for alpha modifier protocol
It allows clients to explicitly communicate their use of
alpha transparency.

Log: add support for alpha modifier protocol
2025-07-02 14:23:43 +08:00
Zhang Dingyuan 6afd8348fa fix: cannot export dbus services
I can't explain this phenomenon. As long as the DLog registration
function is before QApplication, it is impossible to obtain all the
contents registered by dbus.

DTK Team reported that other projects encountered the same problem and
suspected that it was a Qt problem.

Log:
2025-07-02 13:55:32 +08:00
rewine 77d2cd1936 Revert "fix: should not maximize when client set maxsize"
This reverts commit 0d21c93100. which
broken maximize of firefox
2025-07-01 17:39:12 +08:00
transifex-integration[bot] dd7148ee5d
Updates for project TreeLand (#431)
* [skip CI] Translate treeland.en_US.ts in fi

100% translated source file: 'treeland.en_US.ts'
on 'fi'.

* [skip CI] Translate wallpaper.en_US.ts in fr

100% translated source file: 'wallpaper.en_US.ts'
on 'fr'.

* [skip CI] Translate treeland.en_US.ts in fr

100% translated source file: 'treeland.en_US.ts'
on 'fr'.

* [skip CI] Translate lockscreen.en_US.ts in fr

100% translated source file: 'lockscreen.en_US.ts'
on 'fr'.

* [skip CI] Translate multitaskview.en_US.ts in fi

100% translated source file: 'multitaskview.en_US.ts'
on 'fi'.

* [skip CI] Translate lockscreen.en_US.ts in pt_BR

100% translated source file: 'lockscreen.en_US.ts'
on 'pt_BR'.

---------

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-07-01 13:17:25 +08:00
Zhang Dingyuan da8cf4ad11 fix: Treeland does not exit when logging out of session
only treeland-session-shutdown.service can be clean TREELAND_RUN_MODE.

treeland-session-shutdown.service need TREELAND_RUN_MODE env, but
environment unset before treeland service stop.

Log:
2025-07-01 13:07:37 +08:00
Zhang Dingyuan b9d8d7a756 fix: cannot use treeland user session mode
LightDM will not store the desktop file name used for startup in DESKTOP_SESSION,
so we need a wrapper to provide new environment for treeland user mode.

Log:
2025-07-01 11:14:48 +08:00
rewine 327ab03444 fix: add [[maybe_unused]] attribute to unused parameters
1. Added [[maybe_unused]] attribute to multiple function parameters
across various modules
2. This resolves compiler warnings about unused variables in Wayland
interface implementations
3. The changes affect DDE shell interfaces, foreign toplevel handling,
personalization manager, output management, and other components
4. Modern C++ compilers can now properly ignore these parameters without
generating unnecessary warnings

fix: 为未使用的参数添加 [[maybe_unused]] 属性

1. 在多个模块的函数参数中添加了 [[maybe_unused]] 属性
2. 这解决了Wayland接口实现中关于未使用变量的编译器警告问题
3. 修改涉及DDE shell接口、外部顶层窗口处理、个性化管理器、输出管理以及其
他组件
4. 现代C++编译器现在可以正确忽略这些参数,而不会生成不必要的警告
2025-06-30 13:42:23 +08:00
rewine fb35b0c890 chore: improvement fixes the translation configuration
This improvement fixes the translation configuration to automatically support multiple languages instead of being limited to Chinese and English only.

Created `cmake/TranslationUtils.cmake` file with two main functions:

- `setup_translations(TARGET_NAME TRANSLATION_PREFIX)`: For plugin and example translation configuration
- `setup_main_translations(TARGET_NAME)`: For main program translation configuration

Uses `file(GLOB ...)` command to automatically discover all available translation files, supporting languages including:

- Afrikaans (af)
- Amharic (am_ET)
- Arabic (ar)
- Asturian (ast)
- Azerbaijani (az)
- Bulgarian (bg)
- Bengali (bn)
- Tibetan (bo)
- Bakhtiari (bqi)
- Breton (br)
- Catalan (ca)
- Kurdish (ckb)
- Czech (cs)
- Danish (da)
- German (de)
- Greek (el)
- English (en_US)
- Spanish (es)
- Persian (fa)
- Finnish (fi)
- French (fr)
- Galician (gl_ES)
- Hebrew (he)
- Hindi (hi_IN)
- Croatian (hr)
- Hungarian (hu)
- Indonesian (id)
- Italian (it)
- Japanese (ja)
- Georgian (ka)
- Kabyle (kab)
- Khmer (km_KH)
- Korean (ko)
- Kurdish (ku)
- Lithuanian (lt)
- Malay (ms)
- Norwegian (nb)
- Nepali (ne)
- Dutch (nl)
- Polish (pl)
- Portuguese (pt)
- Brazilian Portuguese (pt_BR)
- Romanian (ro)
- Russian (ru)
- Sinhala (si)
- Slovak (sk)
- Slovenian (sl)
- Albanian (sq)
- Serbian (sr)
- Swedish (sv)
- Tamil (ta)
- Telugu (te)
- Thai (th)
- Turkish (tr)
- Tamazight (tzm)
- Uyghur (ug)
- Ukrainian (uk)
- Vietnamese (vi)
- Simplified Chinese (zh_CN)
- Traditional Chinese (zh_HK, zh_TW)

- `src/CMakeLists.txt`: Main program translation configuration
- `src/plugins/lockscreen/CMakeLists.txt`: Lock screen plugin translation configuration
- `src/plugins/multitaskview/CMakeLists.txt`: Multitask view plugin translation configuration
- `examples/test_set_treeland_wallpaper/CMakeLists.txt`: Wallpaper setting example translation configuration
- `cmake/TranslationUtils.cmake`: New translation utilities file
2025-06-30 13:40:51 +08:00
rewine 71aa66bff3 feat: add popup surface container for handling popup windows
1. Added ninja build tool to nativeBuildInputs in nix/default.nix to
support faster builds
2. Added popupsurfacecontainer files to CMakeLists.txt for proper
compilation
3. Created new PopupSurfaceContainer class to handle popup surfaces with
mouse event detection
4. Modified WindowMenu.qml to set modal property ensuring proper popup
behavior
5. Updated ShellHandler to use PopupSurfaceContainer instead of generic
SurfaceContainer

The changes implement a specialized container for handling
popup surfaces with proper event handling and closure logic. The
PopupSurfaceContainer class provides specific functionality for managing
popup windows, including detecting mouse press events outside popup
areas and closing popups accordingly. This improves the user experience
by ensuring popups are properly dismissed when users interact outside
their boundaries.
2025-06-26 17:55:08 +08:00
transifex-integration[bot] 267bb639ad
Updates for project TreeLand (#427)
* [skip CI] Translate treeland.en_US.ts in af

10% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'af'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in th

20% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'th'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in te

20% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'te'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in ku

20% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'ku'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in nb

10% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'nb'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in uk [Manual Sync]

100% translated source file: 'treeland.en_US.ts'
on 'uk'.

* [skip CI] Translate wallpaper.en_US.ts in uk [Manual Sync]

66% of minimum 1% translated source file: 'wallpaper.en_US.ts'
on 'uk'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in uk [Manual Sync]

100% translated source file: 'multitaskview.en_US.ts'
on 'uk'.

* [skip CI] Translate multitaskview.en_US.ts in ja

100% translated source file: 'multitaskview.en_US.ts'
on 'ja'.

* [skip CI] Translate treeland.en_US.ts in ja

100% translated source file: 'treeland.en_US.ts'
on 'ja'.

* [skip CI] Translate wallpaper.en_US.ts in ja

100% translated source file: 'wallpaper.en_US.ts'
on 'ja'.

* [skip CI] Translate lockscreen.en_US.ts in ja

100% translated source file: 'lockscreen.en_US.ts'
on 'ja'.

* [skip CI] Translate multitaskview.en_US.ts in ca

100% translated source file: 'multitaskview.en_US.ts'
on 'ca'.

* [skip CI] Translate wallpaper.en_US.ts in ca

100% translated source file: 'wallpaper.en_US.ts'
on 'ca'.

* [skip CI] Translate wallpaper.en_US.ts in uk

100% translated source file: 'wallpaper.en_US.ts'
on 'uk'.

* [skip CI] Translate lockscreen.en_US.ts in uk

59% of minimum 10% translated source file: 'lockscreen.en_US.ts'
on 'uk'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate wallpaper.en_US.ts in pt_BR

100% translated source file: 'wallpaper.en_US.ts'
on 'pt_BR'.

* [skip CI] Translate wallpaper.en_US.ts in es

100% translated source file: 'wallpaper.en_US.ts'
on 'es'.

* [skip CI] Translate treeland.en_US.ts in es

100% translated source file: 'treeland.en_US.ts'
on 'es'.

* [skip CI] Translate multitaskview.en_US.ts in es

100% translated source file: 'multitaskview.en_US.ts'
on 'es'.

* [skip CI] Translate lockscreen.en_US.ts in pt_BR

95% of minimum 10% translated source file: 'lockscreen.en_US.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in ca

100% translated source file: 'treeland.en_US.ts'
on 'ca'.

* [skip CI] Translate multitaskview.en_US.ts in pt_BR

100% translated source file: 'multitaskview.en_US.ts'
on 'pt_BR'.

* [skip CI] Translate lockscreen.en_US.ts in ca

100% translated source file: 'lockscreen.en_US.ts'
on 'ca'.

---------

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2025-06-26 16:32:01 +08:00
transifex-integration[bot] ad74f7ad57
[skip CI] Updates for project TreeLand (#425)
* [skip CI] Translate treeland.en_US.ts in ja

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'ja'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in ko

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'ko'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in cs

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'cs'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in it

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'it'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in sr

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'sr'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in hu

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'hu'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in zh_TW

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'zh_TW'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in ro

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'ro'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in fi

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'fi'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate wallpaper.en_US.ts in zh_CN

83% of minimum 10% translated source file: 'wallpaper.en_US.ts'
on 'zh_CN'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in ms

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'ms'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in uk

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'uk'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in sv

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'sv'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in ar

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'ar'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in fr

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'fr'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in es

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in he

60% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'he'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in hi_IN

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'hi_IN'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in pl

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'pl'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in az

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'az'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in ka

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'ka'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in gl_ES

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'gl_ES'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in am_ET

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'am_ET'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in bg

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'bg'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in zh_CN

100% translated source file: 'multitaskview.en_US.ts'
on 'zh_CN'.

* [skip CI] Translate multitaskview.en_US.ts in ms

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'ms'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in bg

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'bg'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in ta

40% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'ta'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in de

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in zh_HK

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'zh_HK'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in am_ET

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'am_ET'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in ne

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'ne'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in cs

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'cs'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in si

10% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'si'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in sk

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'sk'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in km_KH

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'km_KH'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in sq

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'sq'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in ru

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'ru'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in fi

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'fi'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in tr

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'tr'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in lt

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'lt'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in id

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'id'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in de

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'de'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate lockscreen.en_US.ts in zh_CN

27% of minimum 10% translated source file: 'lockscreen.en_US.ts'
on 'zh_CN'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in tzm

30% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'tzm'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in el

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'el'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in ka

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'ka'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in nl

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'nl'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in zh_TW

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'zh_TW'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in ast

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'ast'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in br

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'br'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in el

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'el'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in ca

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'ca'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in sq

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'sq'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in hi_IN

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'hi_IN'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in kab

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'kab'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in bo

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'bo'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in sl

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'sl'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in pt_BR

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in it

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'it'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in bqi

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'bqi'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in ro

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'ro'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in zh_HK

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'zh_HK'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in hr

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'hr'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in uk

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'uk'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in sk

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'sk'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in fa

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'fa'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in vi

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'vi'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in da

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'da'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in id

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'id'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in ja

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'ja'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in ca

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'ca'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in zh_CN

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'zh_CN'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in gl_ES

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'gl_ES'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in ug

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'ug'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in sl

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'sl'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in bo

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'bo'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in sr

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'sr'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in hr

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'hr'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in ar

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'ar'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in da

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'da'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in bqi

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'bqi'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in fr

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'fr'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in pt

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'pt'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in pt

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'pt'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in hu

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'hu'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in pl

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'pl'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in az

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'az'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in ast

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'ast'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in ckb

20% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'ckb'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in tr

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'tr'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in bn

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'bn'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in nl

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'nl'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in ug

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'ug'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in pt_BR

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'pt_BR'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in ru

50% of minimum 10% translated source file: 'multitaskview.en_US.ts'
on 'ru'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in es

80% of minimum 10% translated source file: 'treeland.en_US.ts'
on 'es'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate treeland.en_US.ts in zh_CN

100% translated source file: 'treeland.en_US.ts'
on 'zh_CN'.

* [skip CI] Translate multitaskview.en_US.ts in zh_HK

100% translated source file: 'multitaskview.en_US.ts'
on 'zh_HK'.

* [skip CI] Translate treeland.en_US.ts in zh_TW

100% translated source file: 'treeland.en_US.ts'
on 'zh_TW'.

* [skip CI] Translate lockscreen.en_US.ts in zh_TW

27% of minimum 10% translated source file: 'lockscreen.en_US.ts'
on 'zh_TW'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate multitaskview.en_US.ts in zh_TW

100% translated source file: 'multitaskview.en_US.ts'
on 'zh_TW'.

* [skip CI] Translate treeland.en_US.ts in zh_HK

100% translated source file: 'treeland.en_US.ts'
on 'zh_HK'.

* [skip CI] Translate lockscreen.en_US.ts in zh_HK

27% of minimum 10% translated source file: 'lockscreen.en_US.ts'
on 'zh_HK'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate wallpaper.en_US.ts in zh_CN

100% translated source file: 'wallpaper.en_US.ts'
on 'zh_CN'.

* [skip CI] Translate lockscreen.en_US.ts in zh_TW

63% of minimum 10% translated source file: 'lockscreen.en_US.ts'
on 'zh_TW'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate lockscreen.en_US.ts in zh_HK

63% of minimum 10% translated source file: 'lockscreen.en_US.ts'
on 'zh_HK'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

* [skip CI] Translate lockscreen.en_US.ts in zh_CN

63% of minimum 10% translated source file: 'lockscreen.en_US.ts'
on 'zh_CN'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

---------

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Co-authored-by: rewine <luhongxu@deepin.org>
2025-06-24 15:12:46 +08:00
rewine 1570936d55 chore: configure translation files and update Chinese translations
1. Add .tx/config file to set up Transifex translation management with
multiple resource configurations for different components
2. Update Simplified Chinese translations in wallpaper plugin by
removing 'type="unfinished"' from several entries
3. Update Simplified Chinese translations in lockscreen plugin by
removing 'type="unfinished"' from multiple translation tags

These changes improve translation management workflow through proper
Transifex configuration and ensure the Chinese translations are marked
as completed rather than unfinished.

chore: 配置翻译文件并更新中文翻译

1. 添加 .tx/config 文件,配置多个组件的 Transifex 翻译资源管理
2. 在壁纸插件中更新简体中文翻译,移除多个条目中的 'type="unfinished"'
3. 在锁屏插件中更新简体中文翻译,移除多个标签中的 'type="unfinished"'

这些更改通过正确的 Transifex 配置改进了翻译管理工作流程,并确保中文翻译
标记为已完成状态而非未完成状态。
2025-06-24 14:43:20 +08:00
rewine 7a12c9ad62 chore: configure transifex translation files
1. Create configuration for Transifex localization workflow
2. Add four translation file filters for different modules:
   - Main treeland translations
   - Lockscreen plugin translations
   - Multitaskview plugin translations
   - Wallpaper example translations
3. Set up QT file format with proper source and target paths
4. Configure PR branch naming pattern for automated updates

chore: 配置 Transifex 翻译文件

1. 创建 Transifex 本地化工作流配置
2. 添加四个翻译文件过滤器,分别对应不同模块:
   - 主程序 treeland 的翻译
   - 锁屏插件 lockscreen 的翻译
   - 多任务视图插件 multitaskview 的翻译
   - 壁纸示例 wallpaper 的翻译
3. 设置 QT 文件格式及对应的源文件和目标路径
4. 配置用于自动化更新的 PR 分支命名规则
2025-06-24 13:36:37 +08:00
YaoBing Xiao 7acf621712 feat: adapt to wlroots-0.19
update waylib submodule
2025-06-23 14:28:13 +08:00