├── .editorconfig ├── .github ├── ISSUE_TEMPLATE │ ├── bug-report.md │ ├── config.yml │ └── feature-request.md └── workflows │ └── main.yml ├── .gitignore ├── LICENSE ├── README.md ├── data ├── icons │ ├── hicolor │ │ ├── scalable │ │ │ └── apps │ │ │ │ ├── io.github.Foldex.AdwSteamGtk.Devel.svg │ │ │ │ └── io.github.Foldex.AdwSteamGtk.svg │ │ └── symbolic │ │ │ └── apps │ │ │ └── io.github.Foldex.AdwSteamGtk-symbolic.svg │ ├── io.github.Foldex.AdwSteamGtk.Source.svg │ └── meson.build ├── io.github.Foldex.AdwSteamGtk.appdata.xml.in ├── io.github.Foldex.AdwSteamGtk.desktop.in ├── io.github.Foldex.AdwSteamGtk.gschema.xml └── meson.build ├── img ├── screen.png └── update.png ├── io.github.Foldex.AdwSteamGtk.json ├── meson.build ├── po ├── AdwSteamGtk.pot ├── LINGUAS ├── POTFILES ├── README.md ├── ar.po ├── be.po ├── ca.po ├── ckb.po ├── cs.po ├── de.po ├── es.po ├── fi.po ├── fr.po ├── hi.po ├── hu.po ├── it.po ├── meson.build ├── nl.po ├── pt.po ├── pt_BR.po ├── ru.po ├── sr.po ├── sv.po ├── ta.po ├── tr.po ├── uk.po ├── update_pot.sh └── zh_Hans.po └── src ├── __init__.py ├── adwaita-steam-gtk.in ├── adwaita_steam_gtk.gresource.xml ├── cli.py ├── custom_css.py ├── dl.py ├── info.py.in ├── install.py ├── main.py ├── meson.build ├── pages ├── prefs.py └── window.py ├── paths.py ├── style.py ├── ui ├── prefs.blp └── window.blp ├── update.py └── zip.py /.editorconfig: -------------------------------------------------------------------------------- 1 | # 4 space 2 | [*.{json,py}] 3 | indent_style = space 4 | indent_size = 4 5 | 6 | # 2 space 7 | [*.{blp,build,xml,xml.in}] 8 | indent_style = space 9 | indent_size = 2 10 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug-report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug Report 3 | about: Report an issue with functionality (e.g. The installer crashes) 4 | title: 'Bug Report: ' 5 | labels: 'bug' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **This is not an issue with [Adwaita for Steam](https://github.com/tkashkin/Adwaita-for-Steam) itself (Not a visual glitch, Colortheme Request, etc):** 11 | 12 | - [ ] Yes 13 | 14 | **I have tried using the [Adwaita for Steam CLI Install Script](https://github.com/tkashkin/Adwaita-for-Steam) and this issue only occurs with AdwSteamGtk** 15 | 16 | - [ ] Yes 17 | 18 | **I have checked the [Troubleshooting](https://github.com/Foldex/AdwSteamGtk/wiki/Troubleshooting) page** 19 | 20 | - [ ] Yes 21 | 22 | **Description of Issue:** 23 | 24 | X does not work. 25 | 26 | **Steps to Reproduce:** 27 | 1. X 28 | 2. Y 29 | 3. Z 30 | 31 | **[CLI Output](https://github.com/Foldex/AdwSteamGtk/wiki/Troubleshooting#running-in-cli):** 32 | ``` 33 | flatpak run io.github.Foldex.AdwSteamGtk 34 | → Copying to the stage directory /tmp/tmpybwucd5k/Adwaita 35 | 36 | → Applying web_extra login/hide_qr... 37 | → Applying web_extra library/hide_whats_new... 38 | 39 | → Installing skin Adwaita into /home/foldex/.var/app/com.valvesoftware.Steam/.local/share/Steam/skins... 40 | ✦ Directory /home/foldex/.steam/steam does not exist 41 | ``` 42 | 43 | **Other Info (Screenshots, etc):** 44 | - X 45 | - Y 46 | - Z 47 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Adwaita for Steam 4 | url: https://github.com/tkashkin/Adwaita-for-Steam/issues 5 | about: Please report issues with the theme here. (e.g. The theme is visually broken somehow) 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature Request 3 | about: Suggest an idea for this project 4 | title: 'Feature Request: ' 5 | labels: 'enhancement' 6 | assignees: '' 7 | 8 | --- 9 | 10 | 11 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: Tagged Release 2 | on: 3 | push: 4 | tags: 5 | - "v*" 6 | jobs: 7 | tagged-release: 8 | runs-on: ubuntu-latest 9 | container: 10 | image: bilelmoussaoui/flatpak-github-actions:gnome-47 11 | options: --privileged 12 | steps: 13 | - uses: actions/checkout@v4 14 | - uses: flatpak/flatpak-github-actions/flatpak-builder@v6 15 | with: 16 | bundle: io.github.Foldex.AdwSteamGtk.flatpak 17 | manifest-path: io.github.Foldex.AdwSteamGtk.json 18 | cache-key: flatpak-builder-${{ github.sha }} 19 | - uses: "marvinpinto/action-automatic-releases@latest" 20 | with: 21 | repo_token: "${{ secrets.GITHUB_TOKEN }}" 22 | prerelease: false 23 | files: | 24 | *.flatpak 25 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | build-dir 2 | .flatpak-builder 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # AdwSteamGtk 2 | 3 | A simple GTK wrapper that installs and updates the [Adwaita for Steam](https://github.com/tkashkin/Adwaita-for-Steam) skin. 4 | 5 |

6 | 7 | ## Installation 8 | 9 | Available on Flathub 10 | 11 | 12 | Download on Flathub 13 | 14 | 15 |
16 | 17 | Arch AUR Build (Unofficial) 18 | 19 | 20 | Unofficial AUR build 21 | 22 | 23 | ## Skin Install 24 | 25 | 1. Install via app 26 | 2. Restart Steam if running 27 | 28 | ## Skin Updates 29 | 30 | On Startup new releases will automatically be downloaded and display a notification: 31 | 32 |

33 | 34 | Simply reinstall the skin afterwards to update. 35 | 36 | ## Command Line Usage 37 | 38 | `flatpak run io.github.Foldex.AdwSteamGtk` 39 | 40 | | Arg | Short | Description | 41 | | -------------- | ------ | -------------------------------------------------------- | 42 | | --check | -c | Checks for updates and displays a notification | 43 | | --install | -i | Checks for updates and installs them, always installs | 44 | | --options | -o | Overrides Install Options, see below | 45 | | --update | -u | Checks for updates and installs them | 46 | 47 | ### Install Options 48 | 49 | By default installs with `-i/-u` will use your last selected settings within the app. 50 | 51 | You may override this by using `-o` option. 52 | 53 | Please note that these options are one time overrides, they will not save themselves. 54 | 55 | Options should be passed as a single string like so: 56 | 57 | `flatpak run io.github.Foldex.AdwSteamGtk -i -o 'option_name:option_value;option_name:option_value'` 58 | 59 | | Key | Description | Accepted Values | 60 | | ------------------- | ----------------------------------------------------------- | -------------------------------------------------------- | 61 | | color_theme | Colortheme for skin | Any valid theme name | 62 | | library_sidebar | Display Options for Library Sidebar | show, hover_only | 63 | | library_whats_new | Show the Library What's New Section | true, false, yes, no, on, off, t, f, y, n | 64 | | login_qr | Display Options for the QR Code Login | show, hover_only, hide | 65 | | rounded_corners | Show Rounded Corners on Elements | true, false, yes, no, on, off, t, f, y, n | 66 | | win_controls | Window Controls Themes | adwaita, macos, windows | 67 | | win_controls_layout | Window Controls Layout of Buttons | auto, adwaita, elementary, macos, windows | 68 | 69 | ## Troubleshooting 70 | 71 | See [Troubleshooting](https://github.com/Foldex/AdwSteamGtk/wiki/Troubleshooting) 72 | 73 | ## Translations 74 | 75 | 76 | Translation status 77 | 78 | 79 | The [Weblate](https://hosted.weblate.org/projects/adwsteamgtk/adwsteamgtk/) platform is the preferred method of contributing translations. 80 | 81 | [Manual Instructions](/po) do exist for an alternative method of contributing as well. 82 | 83 | ## Building 84 | 85 | It is recommended to use [Gnome Builder](https://wiki.gnome.org/Apps/Builder) or `flatpak-builder` to build the project. 86 | 87 | ``` 88 | flatpak install org.gnome.Platform//47 org.gnome.Sdk//47 89 | flatpak-builder --install --force-clean --user build-dir io.github.Foldex.AdwSteamGtk.json 90 | ``` 91 | 92 | See the below requirements otherwise. 93 | 94 | ### Requirements 95 | 96 | - Blueprint Compiler >= `0.8.0` 97 | - GTK4 98 | - Libadwaita 99 | - Libportal 100 | - Meson 101 | - Ninja 102 | - PyGObject 103 | - Python >= `3.10` 104 | - Python python-packaging 105 | 106 | -------------------------------------------------------------------------------- /data/icons/hicolor/scalable/apps/io.github.Foldex.AdwSteamGtk.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | -------------------------------------------------------------------------------- /data/icons/hicolor/symbolic/apps/io.github.Foldex.AdwSteamGtk-symbolic.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /data/icons/meson.build: -------------------------------------------------------------------------------- 1 | application_id = 'io.github.Foldex.AdwSteamGtk' 2 | 3 | scalable_dir = join_paths('hicolor', 'scalable', 'apps') 4 | install_data( 5 | join_paths(scalable_dir, ('@0@.svg').format(application_id)), 6 | install_dir: join_paths(get_option('datadir'), 'icons', scalable_dir) 7 | ) 8 | 9 | symbolic_dir = join_paths('hicolor', 'symbolic', 'apps') 10 | install_data( 11 | join_paths(symbolic_dir, ('@0@-symbolic.svg').format(application_id)), 12 | install_dir: join_paths(get_option('datadir'), 'icons', symbolic_dir) 13 | ) 14 | -------------------------------------------------------------------------------- /data/io.github.Foldex.AdwSteamGtk.appdata.xml.in: -------------------------------------------------------------------------------- 1 | 2 | 3 | CC0-1.0 4 | GPL-3.0-or-later 5 | foldex_at_pm.dot.me 6 | 7 | 8 | 9 | io.github.Foldex.AdwSteamGtk 10 | io.github.Foldex.AdwSteamGtk.desktop 11 | 12 | AdwSteamGtk 13 | Give Steam the Adwaita treatment 14 | Foldex 15 | 16 | Foldex 17 | 18 | 19 | https://github.com/Foldex/AdwSteamGtk 20 | https://github.com/Foldex/AdwSteamGtk/issues 21 | https://github.com/Foldex/AdwSteamGtk 22 | https://hosted.weblate.org/projects/adwsteamgtk/ 23 | 24 | 25 |

26 | Make Steam look like it belongs on your computer. This app installs and updates the 27 | Adwaita-for-Steam skin for you. It's as simple as this: 28 |

29 |
    30 |
  1. Configure the skin to your liking
  2. 31 |
  3. Click the “Apply” button
  4. 32 |
  5. Restart Steam
  6. 33 |
34 |

35 | On startup, the app will automatically download any updates to the skin and display a notification. 36 | Apply the skin again and restart Steam to take the changes into use. 37 |

38 |

In order to get rounded corners on Steam, you will need to use the “Rounded Window Corners” GNOME extension.

39 |
40 | 41 | 42 | Game 43 | GTK 44 | Utility 45 | 46 | 47 | 48 | 49 | 50 |
    51 |
  • Fixed theme previews
  • 52 |
  • Allow previewing themes that are partial
  • 53 |
  • Window Controls can now be disabled entirely
  • 54 |
  • Updated Translations
  • 55 |
56 |
57 |
58 | 59 | 60 |
    61 |
  • Improved error handling when retrieving window control settings through portal
  • 62 |
63 |
64 |
65 | 66 | 67 |
    68 |
  • Fixed an issue when installing colorthemes through the CLI
  • 69 |
70 |
71 |
72 | 73 | 74 |
    75 |
  • Updated to use new window control options
  • 76 |
77 |
78 |
79 | 80 | 81 |
    82 |
  • Fixed Crash on Launch due to upstream changes
  • 83 |
  • Updated Hindi and Turkish Translations
  • 84 |
  • Added Italian Translation
  • 85 |
86 |
87 |
88 | 89 | 90 |
    91 |
  • Added Belarusian, Chinese, Dutch, Finnish, Hindi, Portuguese, Swedish, and Turkish Translations
  • 92 |
  • Updated German Translation
  • 93 |
  • Updated Blueprint, pyparsing, packaging dependencies
  • 94 |
  • Updated to Gnome Runtime 46
  • 95 |
96 |
97 |
98 | 99 | 100 |
    101 |
  • Added Czech Translation
  • 102 |
  • Added Spanish Translation
  • 103 |
  • Updated French Translation
  • 104 |
  • New Application Icon
  • 105 |
  • Updated Libportal
  • 106 |
107 |
108 |
109 | 110 | 111 |
    112 |
  • Fixed issue with Uninstall
  • 113 |
114 |
115 |
116 | 117 | 118 |
    119 |
  • Removed Deprecated Font Install Preference
  • 120 |
121 |
122 |
123 | 124 | 125 |
    126 |
  • Fixed Appdata
  • 127 |
  • Removed some options that no longer exist upstream
  • 128 |
129 |
130 |
131 | 132 | 133 |
    134 |
  • Updated Russian Translation
  • 135 |
  • Updated to new upstream install method
  • 136 |
137 |
138 |
139 | 140 | 141 |
    142 |
  • Updated German and Ukrainian Translations
  • 143 |
  • Added Portuguese Translation
  • 144 |
145 |
146 |
147 | 148 | 149 |
    150 |
  • Fixed Appdata
  • 151 |
152 |
153 |
154 | 155 | 156 |
    157 |
  • Beta Toggle removed as new UI support landed upstream
  • 158 |
  • Added option to use Steam's Original Top Bar instead of our Adwaita styled one
  • 159 |
  • Initial German Translation
  • 160 |
  • Added hover tooltips to installer options
  • 161 |
162 |
163 |
164 | 165 | 166 |
    167 |
  • Added French, Ukrainian, and Russian Translations
  • 168 |
169 |
170 |
171 | 172 | 173 |
    174 |
  • New UI
  • 175 |
  • Added Experimental Beta Client Support (with new options)
  • 176 |
  • Added Custom CSS Option
  • 177 |
178 |
179 |
180 | 181 | 182 |
    183 |
  • Added Autostart Update Check preference toggle
  • 184 |
  • Added Font Install preference toggle
  • 185 |
186 |
187 |
188 | 189 | 190 |
    191 |
  • Fixed issue with theme preview on light mode
  • 192 |
  • Added preferences toggle for theme preview
  • 193 |
194 |
195 |
196 | 197 | 198 |
    199 |
  • Colortheme is now previewed in app
  • 200 |
  • Added -u/-i arguments to install skin via commandline
  • 201 |
  • Added -o argument to override install options for -i/-u
  • 202 |
203 |
204 |
205 | 206 | 207 |
    208 |
  • Added Library Sidebar Options
  • 209 |
210 |
211 |
212 | 213 | 214 |
    215 |
  • Updated to Gnome 44 Runtime
  • 216 |
  • Changed Default Web Theme to Full Variant
  • 217 |
218 |
219 |
220 | 221 | 222 |
    223 |
  • Fixed Installer CLI Output
  • 224 |
225 |
226 |
227 | 228 | 229 |
    230 |
  • Added Color Theme Support
  • 231 |
  • Added -c argument to notify about updates
  • 232 |
233 |
234 |
235 | 236 | 237 |
    238 |
  • Last chosen settings are now loaded at startup
  • 239 |
  • Changed display of install button if the theme is already installed
  • 240 |
241 |
242 |
243 | 244 | 245 |
    246 |
  • Added None to Window Control Options
  • 247 |
248 |
249 |
250 | 251 | 252 |
    253 |
  • Added QR Login Options
  • 254 |
  • Improved Missing Dir Messages
  • 255 |
256 |
257 |
258 | 259 | 260 |
    261 |
  • Updated to Gnome 43 SDK
  • 262 |
  • Implemented AdwAboutWindow
  • 263 |
  • Updated Filesystem Permissions
  • 264 |
  • Fixed Quit Shortcut
  • 265 |
  • Fixed Current Check
  • 266 |
267 |
268 |
269 | 270 | 271 |
272 | 273 | 274 | 275 | Main Window 276 | https://raw.githubusercontent.com/Foldex/AdwSteamGtk/main/img/screen.png 277 | 278 | 279 | Library Preview 280 | https://raw.githubusercontent.com/tkashkin/Adwaita-for-Steam/refs/heads/master/screenshots/library.png 281 | 282 | 283 | Login Preview 284 | https://raw.githubusercontent.com/tkashkin/Adwaita-for-Steam/master/adwaita/colorthemes/adwaita/preview.png 285 | 286 | 287 | 288 |
289 | -------------------------------------------------------------------------------- /data/io.github.Foldex.AdwSteamGtk.desktop.in: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=AdwSteamGtk 3 | Comment=A simple wrapper that installs Adwaita for Steam 4 | Exec=adwaita-steam-gtk 5 | Icon=io.github.Foldex.AdwSteamGtk 6 | Terminal=false 7 | Type=Application 8 | Categories=GTK;Utility 9 | Keywords=Steam;Adwaita;Skin; 10 | StartupNotify=true 11 | -------------------------------------------------------------------------------- /data/io.github.Foldex.AdwSteamGtk.gschema.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | "Adwaita" 8 | 9 | 10 | 11 | false 12 | 13 | 14 | 15 | 16 | "Adwaita" 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | "Auto" 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | "Show" 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | false 47 | 48 | 49 | 50 | 51 | "Show" 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | false 62 | 63 | 64 | 65 | true 66 | 67 | 68 | 69 | false 70 | 71 | 72 | 73 | false 74 | 75 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /data/meson.build: -------------------------------------------------------------------------------- 1 | desktop_file = i18n.merge_file( 2 | input: 'io.github.Foldex.AdwSteamGtk.desktop.in', 3 | output: 'io.github.Foldex.AdwSteamGtk.desktop', 4 | type: 'desktop', 5 | po_dir: '../po', 6 | install: true, 7 | install_dir: join_paths(get_option('datadir'), 'applications') 8 | ) 9 | 10 | desktop_utils = find_program('desktop-file-validate', required: false) 11 | if desktop_utils.found() 12 | test('Validate desktop file', desktop_utils, 13 | args: [desktop_file] 14 | ) 15 | endif 16 | 17 | appstream_file = i18n.merge_file( 18 | input: 'io.github.Foldex.AdwSteamGtk.appdata.xml.in', 19 | output: 'io.github.Foldex.AdwSteamGtk.appdata.xml', 20 | po_dir: '../po', 21 | install: true, 22 | install_dir: join_paths(get_option('datadir'), 'appdata') 23 | ) 24 | 25 | appstream_util = find_program('appstream-util', required: false) 26 | if appstream_util.found() 27 | test('Validate appstream file', appstream_util, 28 | args: ['validate', appstream_file] 29 | ) 30 | endif 31 | 32 | install_data('io.github.Foldex.AdwSteamGtk.gschema.xml', 33 | install_dir: join_paths(get_option('datadir'), 'glib-2.0/schemas') 34 | ) 35 | 36 | compile_schemas = find_program('glib-compile-schemas', required: false) 37 | if compile_schemas.found() 38 | test('Validate schema file', compile_schemas, 39 | args: ['--strict', '--dry-run', meson.current_source_dir()] 40 | ) 41 | endif 42 | 43 | subdir('icons') 44 | -------------------------------------------------------------------------------- /img/screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Foldex/AdwSteamGtk/b3c5ebe02f2a489357312f08d5a3bb45c8d13f4d/img/screen.png -------------------------------------------------------------------------------- /img/update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Foldex/AdwSteamGtk/b3c5ebe02f2a489357312f08d5a3bb45c8d13f4d/img/update.png -------------------------------------------------------------------------------- /io.github.Foldex.AdwSteamGtk.json: -------------------------------------------------------------------------------- 1 | { 2 | "app-id": "io.github.Foldex.AdwSteamGtk", 3 | "runtime": "org.gnome.Platform", 4 | "runtime-version": "48", 5 | "sdk": "org.gnome.Sdk", 6 | "command": "adwaita-steam-gtk", 7 | "finish-args": [ 8 | "--share=network", 9 | "--share=ipc", 10 | "--socket=fallback-x11", 11 | "--device=dri", 12 | "--socket=wayland", 13 | "--filesystem=~/.var/app/com.valvesoftware.Steam/.steam/steam", 14 | "--filesystem=~/.steam/steam" 15 | ], 16 | "cleanup": [ 17 | "/include", 18 | "/lib/pkgconfig", 19 | "/man", 20 | "/share/doc", 21 | "/share/gtk-doc", 22 | "/share/man", 23 | "/share/pkgconfig", 24 | "*.la", 25 | "*.a" 26 | ], 27 | "modules": [ 28 | { 29 | "name": "blueprint-compiler", 30 | "buildsystem": "meson", 31 | "sources": [ 32 | { 33 | "type": "archive", 34 | "url": "https://gitlab.gnome.org/jwestman/blueprint-compiler/-/archive/v0.16.0/blueprint-compiler-v0.16.0.tar.bz2", 35 | "sha256": "77a5d593f433c8ca70a05390532cd186c60944cfa6bcd39296c1c2597a7a50fc", 36 | "x-checker-data": { 37 | "type": "anitya", 38 | "project-id": 279929, 39 | "url-template": "https://gitlab.gnome.org/jwestman/blueprint-compiler/-/archive/v$version/blueprint-compiler-v$version.tar.bz2" 40 | } 41 | } 42 | ], 43 | "cleanup": [ 44 | "*" 45 | ] 46 | }, 47 | { 48 | "name": "libportal", 49 | "buildsystem": "meson", 50 | "config-opts": [ 51 | "-Ddocs=false", 52 | "-Dbackend-gtk4=enabled" 53 | ], 54 | "sources": [ 55 | { 56 | "type": "archive", 57 | "url": "https://github.com/flatpak/libportal/archive/refs/tags/0.9.1.tar.gz", 58 | "sha256": "ea422b789ae487e04194d387bea031fd7485bf88a18aef8c767f7d1c29496a4e", 59 | "x-checker-data": { 60 | "type": "anitya", 61 | "project-id": 230124, 62 | "url-template": "https://github.com/flatpak/libportal/archive/refs/tags/$version.tar.gz" 63 | } 64 | } 65 | ] 66 | }, 67 | { 68 | "name": "python3-packaging", 69 | "buildsystem": "simple", 70 | "build-commands": [ 71 | "pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"packaging\" --no-build-isolation" 72 | ], 73 | "sources": [ 74 | { 75 | "type": "file", 76 | "url": "https://files.pythonhosted.org/packages/05/e7/df2285f3d08fee213f2d041540fa4fc9ca6c2d44cf36d3a035bf2a8d2bcc/pyparsing-3.2.3-py3-none-any.whl", 77 | "sha256": "a749938e02d6fd0b59b356ca504a24982314bb090c383e3cf201c95ef7e2bfcf", 78 | "x-checker-data": { 79 | "type": "pypi", 80 | "name": "pyparsing", 81 | "packagetype": "bdist_wheel" 82 | } 83 | }, 84 | { 85 | "type": "file", 86 | "url": "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", 87 | "sha256": "09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", 88 | "x-checker-data": { 89 | "type": "pypi", 90 | "name": "packaging", 91 | "packagetype": "bdist_wheel" 92 | } 93 | } 94 | ] 95 | }, 96 | { 97 | "name": "adwaita-steam-gtk", 98 | "builddir": true, 99 | "buildsystem": "meson", 100 | "sources": [ 101 | { 102 | "type": "dir", 103 | "path": "." 104 | } 105 | ] 106 | } 107 | ] 108 | } 109 | -------------------------------------------------------------------------------- /meson.build: -------------------------------------------------------------------------------- 1 | project('adwaita-steam-gtk', 2 | version: '0.8.0', 3 | meson_version: '>= 0.59.0', 4 | default_options: [ 'warning_level=2', 5 | 'werror=false', 6 | ], 7 | ) 8 | 9 | i18n = import('i18n') 10 | 11 | gnome = import('gnome') 12 | 13 | 14 | 15 | subdir('data') 16 | subdir('src') 17 | subdir('po') 18 | 19 | gnome.post_install( 20 | glib_compile_schemas: true, 21 | gtk_update_icon_cache: true, 22 | update_desktop_database: true, 23 | ) 24 | -------------------------------------------------------------------------------- /po/AdwSteamGtk.pot: -------------------------------------------------------------------------------- 1 | # AdwSteamGtk Pot 2 | # Copyright (C) 2024 Foldex 3 | # This file is distributed under the GNU GPLv3 license. 4 | # Foldex, 2024. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: AdwSteamGtk 0.6.11\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2024-11-09 19:43-0500\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: EDIT_LANG_HERE\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:12 21 | #: data/io.github.Foldex.AdwSteamGtk.desktop.in:3 22 | msgid "AdwSteamGtk" 23 | msgstr "" 24 | 25 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:13 26 | msgid "Give Steam the Adwaita treatment" 27 | msgstr "" 28 | 29 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:14 30 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:16 31 | msgid "Foldex" 32 | msgstr "" 33 | 34 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:25 35 | msgid "" 36 | "Make Steam look like it belongs on your computer. This app installs and " 37 | "updates the Adwaita-for-Steam skin for you. It's as simple as this:" 38 | msgstr "" 39 | 40 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:30 41 | msgid "Configure the skin to your liking" 42 | msgstr "" 43 | 44 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:31 45 | msgid "Click the “Apply” button" 46 | msgstr "" 47 | 48 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:32 49 | msgid "Restart Steam" 50 | msgstr "" 51 | 52 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:34 53 | msgid "" 54 | "On startup, the app will automatically download any updates to the skin and " 55 | "display a notification. Apply the skin again and restart Steam to take the " 56 | "changes into use." 57 | msgstr "" 58 | 59 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:38 60 | msgid "" 61 | "In order to get rounded corners on Steam, you will need to use the “Rounded " 62 | "Window Corners” GNOME extension." 63 | msgstr "" 64 | 65 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:244 66 | msgid "Main Window" 67 | msgstr "" 68 | 69 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:248 70 | msgid "Theme Preview" 71 | msgstr "" 72 | 73 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:252 74 | msgid "Login Preview" 75 | msgstr "" 76 | 77 | #: data/io.github.Foldex.AdwSteamGtk.desktop.in:4 78 | msgid "A simple wrapper that installs Adwaita for Steam" 79 | msgstr "" 80 | 81 | #: data/io.github.Foldex.AdwSteamGtk.desktop.in:10 82 | msgid "Steam;Adwaita;Skin;" 83 | msgstr "" 84 | 85 | #: src/cli.py:47 src/cli.py:138 86 | msgid "Up to Date." 87 | msgstr "" 88 | 89 | #: src/cli.py:105 90 | #, python-brace-format 91 | msgid "{key}: {cur_val} invalid value" 92 | msgstr "" 93 | 94 | #: src/cli.py:111 95 | msgid "Could not get theme list. Falling back to last selected theme." 96 | msgstr "" 97 | 98 | #: src/cli.py:117 99 | #, python-brace-format 100 | msgid "" 101 | "Could not find theme {colortheme} in theme list. Falling back to last " 102 | "selected theme." 103 | msgstr "" 104 | 105 | #: src/cli.py:132 106 | msgid "New Release Available: " 107 | msgstr "" 108 | 109 | #: src/cli.py:135 110 | msgid "Update Check Failed: " 111 | msgstr "" 112 | 113 | #: src/dl.py:30 114 | msgid "API: HTTP Error Code " 115 | msgstr "" 116 | 117 | #: src/dl.py:32 118 | msgid "API: Error Parsing JSON" 119 | msgstr "" 120 | 121 | #: src/dl.py:34 122 | msgid "API: Error retrieving release info" 123 | msgstr "" 124 | 125 | #: src/dl.py:42 126 | msgid "API: JSON is missing required keys" 127 | msgstr "" 128 | 129 | #: src/dl.py:48 130 | msgid "Release: HTTP Error Code " 131 | msgstr "" 132 | 133 | #: src/dl.py:50 134 | msgid "Release: Connection Reset" 135 | msgstr "" 136 | 137 | #: src/dl.py:52 138 | msgid "Release: Permission Error" 139 | msgstr "" 140 | 141 | #: src/dl.py:54 142 | msgid "Release: Connection Timeout" 143 | msgstr "" 144 | 145 | #: src/dl.py:56 146 | msgid "Release: Error Retrieving Zip" 147 | msgstr "" 148 | 149 | #: src/install.py:132 150 | msgid "Install: Found no Valid Install Targets" 151 | msgstr "" 152 | 153 | #: src/install.py:135 154 | msgid "Install: Installer Process Failed" 155 | msgstr "" 156 | 157 | #: src/install.py:169 158 | msgid "Install: Failed to Find Valid '~/.steam/steam' Symlink" 159 | msgstr "" 160 | 161 | #: src/main.py:138 162 | msgid "Upstream" 163 | msgstr "" 164 | 165 | #: src/main.py:139 166 | msgid "Translators" 167 | msgstr "" 168 | 169 | #: src/main.py:148 170 | msgid "Uninstall Theme" 171 | msgstr "" 172 | 173 | #: src/main.py:149 174 | msgid "This will reset all customizations made to the Steam client." 175 | msgstr "" 176 | 177 | #: src/main.py:151 178 | msgid "Cancel" 179 | msgstr "" 180 | 181 | #: src/main.py:152 182 | msgid "Uninstall" 183 | msgstr "" 184 | 185 | #: src/pages/window.py:193 186 | msgid "New Release Downloaded: " 187 | msgstr "" 188 | 189 | #: src/pages/window.py:195 190 | msgid "Retry" 191 | msgstr "" 192 | 193 | #: src/pages/window.py:228 194 | msgid "Theme Installed" 195 | msgstr "" 196 | 197 | #: src/style.py:40 198 | msgid "Get Themes: Failed to get themes" 199 | msgstr "" 200 | 201 | #: src/style.py:71 202 | #, python-brace-format 203 | msgid "Style: Could not find theme {theme_name}" 204 | msgstr "" 205 | 206 | #: src/style.py:122 207 | #, python-brace-format 208 | msgid "Style: Theme {theme_name} seems to be invalid" 209 | msgstr "" 210 | 211 | #: src/ui/prefs.blp:5 212 | msgid "Preferences" 213 | msgstr "" 214 | 215 | #: src/ui/prefs.blp:12 216 | msgid "Autostart" 217 | msgstr "" 218 | 219 | #: src/ui/prefs.blp:15 220 | msgid "Auto Update Check" 221 | msgstr "" 222 | 223 | #: src/ui/prefs.blp:16 224 | msgid "Checks and notifies for theme updates on user login." 225 | msgstr "" 226 | 227 | #: src/ui/prefs.blp:25 228 | msgid "Beta" 229 | msgstr "" 230 | 231 | #: src/ui/prefs.blp:29 232 | msgid "Experimental Beta Support" 233 | msgstr "" 234 | 235 | #: src/ui/prefs.blp:30 236 | msgid "Enables Beta Support (requires restart)" 237 | msgstr "" 238 | 239 | #: src/ui/prefs.blp:39 240 | msgid "Installer" 241 | msgstr "" 242 | 243 | #: src/ui/prefs.blp:42 244 | msgid "Custom CSS" 245 | msgstr "" 246 | 247 | #: src/ui/prefs.blp:43 248 | msgid "Include Custom CSS into Steam" 249 | msgstr "" 250 | 251 | #: src/ui/prefs.blp:48 252 | msgid "Custom CSS Info" 253 | msgstr "" 254 | 255 | #: src/ui/prefs.blp:53 256 | msgid "Edit Custom CSS File" 257 | msgstr "" 258 | 259 | #: src/ui/prefs.blp:63 260 | msgid "Interface" 261 | msgstr "" 262 | 263 | #: src/ui/prefs.blp:66 264 | msgid "Preview Themes" 265 | msgstr "" 266 | 267 | #: src/ui/prefs.blp:67 268 | msgid "Styles the interface to match the currently selected theme." 269 | msgstr "" 270 | 271 | #: src/ui/window.blp:7 272 | msgid "Adwaita Steam Installer" 273 | msgstr "" 274 | 275 | #: src/ui/window.blp:14 276 | msgid "Apply" 277 | msgstr "" 278 | 279 | #: src/ui/window.blp:40 280 | msgid "Theme Options" 281 | msgstr "" 282 | 283 | #: src/ui/window.blp:42 284 | msgid "Color Theme" 285 | msgstr "" 286 | 287 | #: src/ui/window.blp:43 288 | msgid "Changes the color theme of Steam's interface." 289 | msgstr "" 290 | 291 | #: src/ui/window.blp:46 292 | msgid "No Rounded Corners" 293 | msgstr "" 294 | 295 | #: src/ui/window.blp:47 296 | msgid "Removes smooth rounded corners from the interface." 297 | msgstr "" 298 | 299 | #: src/ui/window.blp:57 300 | msgid "Window Controls Options" 301 | msgstr "" 302 | 303 | #: src/ui/window.blp:59 304 | msgid "Controls Style" 305 | msgstr "" 306 | 307 | #: src/ui/window.blp:60 308 | msgid "Changes Minimize/Maximize/Close Button Theme" 309 | msgstr "" 310 | 311 | #: src/ui/window.blp:61 src/ui/window.blp:66 312 | msgid "Adwaita" 313 | msgstr "" 314 | 315 | #: src/ui/window.blp:61 src/ui/window.blp:66 316 | msgid "MacOS" 317 | msgstr "" 318 | 319 | #: src/ui/window.blp:61 src/ui/window.blp:66 320 | msgid "Windows" 321 | msgstr "" 322 | 323 | #: src/ui/window.blp:64 324 | msgid "Controls Button Layout" 325 | msgstr "" 326 | 327 | #: src/ui/window.blp:65 328 | msgid "Changes Minimize/Maximize/Close Button Layout and Position" 329 | msgstr "" 330 | 331 | #: src/ui/window.blp:66 332 | msgid "Auto" 333 | msgstr "" 334 | 335 | #: src/ui/window.blp:66 336 | msgid "Elementary" 337 | msgstr "" 338 | 339 | #: src/ui/window.blp:71 340 | msgid "Library Options" 341 | msgstr "" 342 | 343 | #: src/ui/window.blp:74 344 | msgid "Library Sidebar" 345 | msgstr "" 346 | 347 | #: src/ui/window.blp:75 348 | msgid "Changes display options for the Library's left sidebar." 349 | msgstr "" 350 | 351 | #: src/ui/window.blp:76 src/ui/window.blp:96 352 | msgid "Show" 353 | msgstr "" 354 | 355 | #: src/ui/window.blp:76 src/ui/window.blp:96 356 | msgid "Hover Only" 357 | msgstr "" 358 | 359 | #: src/ui/window.blp:80 360 | msgid "Hide Library What's New Shelf" 361 | msgstr "" 362 | 363 | #: src/ui/window.blp:81 364 | msgid "Disables display of the new updates section on top of the Library." 365 | msgstr "" 366 | 367 | #: src/ui/window.blp:91 368 | msgid "Login Options" 369 | msgstr "" 370 | 371 | #: src/ui/window.blp:94 372 | msgid "QR Code Login" 373 | msgstr "" 374 | 375 | #: src/ui/window.blp:95 376 | msgid "Changes display options for the mobile QR code in the Login dialog." 377 | msgstr "" 378 | 379 | #: src/ui/window.blp:96 380 | msgid "Hide" 381 | msgstr "" 382 | 383 | #: src/ui/window.blp:108 384 | msgid "_Preferences" 385 | msgstr "" 386 | 387 | #: src/ui/window.blp:112 388 | msgid "_Uninstall" 389 | msgstr "" 390 | 391 | #: src/ui/window.blp:116 392 | msgid "_About AdwSteamGtk" 393 | msgstr "" 394 | 395 | #: src/zip.py:28 396 | msgid "Extract: Failed to read ZIP archive" 397 | msgstr "" 398 | 399 | #: src/zip.py:30 400 | msgid "Extract: Bad ZIP File" 401 | msgstr "" 402 | 403 | #: src/zip.py:32 404 | msgid "Extract: Failed to Extract ZIP File" 405 | msgstr "" 406 | -------------------------------------------------------------------------------- /po/LINGUAS: -------------------------------------------------------------------------------- 1 | de 2 | fr 3 | ru 4 | uk 5 | pt_BR 6 | es 7 | cs 8 | fi 9 | ckb 10 | sv 11 | tr 12 | be 13 | nl 14 | pt 15 | hi 16 | zh_Hans 17 | it 18 | ta 19 | ca 20 | sr 21 | ar 22 | hu 23 | -------------------------------------------------------------------------------- /po/POTFILES: -------------------------------------------------------------------------------- 1 | data/io.github.Foldex.AdwSteamGtk.appdata.xml.in 2 | data/io.github.Foldex.AdwSteamGtk.desktop.in 3 | data/io.github.Foldex.AdwSteamGtk.gschema.xml 4 | src/cli.py 5 | src/dl.py 6 | src/install.py 7 | src/main.py 8 | src/pages/window.py 9 | src/style.py 10 | src/ui/prefs.blp 11 | src/ui/window.blp 12 | src/zip.py 13 | -------------------------------------------------------------------------------- /po/README.md: -------------------------------------------------------------------------------- 1 | # Localization 2 | 3 | ## Language Codes 4 | 5 | Languages are typically given a two-letter designation. 6 | 7 | e.g. `fr` for French, `de` for German. 8 | 9 | For languages where regional differences exist, a hyphen followed by a region code is added to distinguish it. 10 | 11 | e.g. `en-GB` is English from Great Britain 12 | 13 | [Usual Language Codes](https://www.gnu.org/software/gettext/manual/html_node/Usual-Language-Codes.html) 14 | 15 | [Regional Language Codes](https://lingohub.com/developers/supported-locales/language-designators-with-regions) 16 | 17 | ## Adding Support for a New Language 18 | 19 | Assume `xx` is your Language Code: 20 | - [Fork](https://docs.github.com/en/get-started/quickstart/contributing-to-projects#forking-a-repository) and [Clone](https://docs.github.com/en/get-started/quickstart/contributing-to-projects#cloning-a-fork) this repo 21 | - Ensure you have [gettext](#gettext) installed 22 | - Run `./update_pot.sh` and copy `AdwSteamGtk.pot` to `xx.po` 23 | - [Edit](#editing-po-files) `xx.po` 24 | - Add `xx` to [LINGUAS](/po/LINGUAS) on a new line. Keep this list sorted alphabetically 25 | - [Test](#testing) your changes (Optional, but appreciated) 26 | - Add yourself to the [Translators credits](/src/info.py.in) section 27 | - [Commit](https://docs.github.com/en/get-started/quickstart/contributing-to-projects#making-and-pushing-changes) your changes 28 | - [Open a Pull Request](https://docs.github.com/en/get-started/quickstart/contributing-to-projects#making-a-pull-request) 29 | 30 | ## Gettext 31 | 32 | `update_pot.sh` requires the xgettext utility from the gettext package. 33 | 34 | | Distro | Package Name | Install Command | 35 | |--------|---------------------------------------------------------------------|------------------------------| 36 | | Arch | [gettext](https://archlinux.org/packages/core/x86_64/gettext/) | sudo pacman -S gettext | 37 | | Debian | [gettext](https://packages.debian.org/stable/gettext) | sudo apt-get install gettext | 38 | | Fedora | [gettext](https://packages.fedoraproject.org/pkgs/gettext/gettext/) | sudo dnf install gettext | 39 | | Ubuntu | [gettext](https://packages.ubuntu.com/lunar/gettext) | sudo apt-get install gettext | 40 | 41 | ## Editing PO Files 42 | 43 | You'll likely want to use a PO File Editor: 44 | 45 | - [Gtranslator](https://flathub.org/apps/org.gnome.Gtranslator) 46 | - [Lokalize](https://flathub.org/apps/org.kde.lokalize) 47 | - [Poedit](https://flathub.org/apps/net.poedit.Poedit) 48 | 49 | ## Testing 50 | 51 | Follow the flatpak-builder [Instructions](https://github.com/Foldex/AdwSteamGtk#building) for building the project. 52 | 53 | Run those commands from the top level directory of the project. 54 | 55 | You should now be able to run the app via: 56 | 57 | `flatpak run io.github.Foldex.AdwSteamGtk` 58 | 59 | To test out your localization changes you will need to force the locale. 60 | 61 | ### Generating Locale 62 | 63 | If you already have the locale for the language you are translating installed, you may skip this step. 64 | 65 | In order to run the program with a new locale, you must first generate it on your system. 66 | 67 | See: [Generating Locale](https://wiki.archlinux.org/title/Locale#Generating_locales) 68 | 69 | ### Flatpak Locale 70 | 71 | For freshly generated locales, flatpak will also need to fetch the new locale information. 72 | 73 | Switch to the new locale and run: 74 | 75 | `flatpak update` 76 | 77 | ### Running with Locale 78 | 79 | For example, to run the Ukrainian locale: 80 | 81 | `LANG=uk_UA.UTF-8 flatpak run io.github.Foldex.AdwSteamGtk` 82 | 83 | #### Locale not Supported Error 84 | 85 | If you get this error: 86 | 87 | `Locale not supported by C library. Using the fallback 'C' locale.` 88 | 89 | Ensure that: 90 | - The locale has been [Generated](#generating-locale) on your system 91 | - You have typed the locale name correctly when passing `LANG=` 92 | - Flatpak has downloaded the [Runtime Locale](#flatpak-locale) 93 | - The Language Code is present in the [LINGUAS](/po/LINGUAS) file 94 | -------------------------------------------------------------------------------- /po/ar.po: -------------------------------------------------------------------------------- 1 | # AdwSteamGtk Pot 2 | # Copyright (C) 2024 Foldex 3 | # This file is distributed under the GNU GPLv3 license. 4 | # Foldex, 2024. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: AdwSteamGtk 0.6.11\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2024-11-09 19:43-0500\n" 11 | "PO-Revision-Date: 2025-03-08 17:23+0000\n" 12 | "Last-Translator: 5wi_5wi \n" 13 | "Language-Team: Arabic \n" 15 | "Language: ar\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " 20 | "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" 21 | "X-Generator: Weblate 5.10.3-dev\n" 22 | 23 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:12 24 | #: data/io.github.Foldex.AdwSteamGtk.desktop.in:3 25 | msgid "AdwSteamGtk" 26 | msgstr ".AdwSteamGtk" 27 | 28 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:13 29 | msgid "Give Steam the Adwaita treatment" 30 | msgstr "امنح ستيم طابع Adwaita" 31 | 32 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:14 33 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:16 34 | msgid "Foldex" 35 | msgstr ".Foldex" 36 | 37 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:25 38 | msgid "" 39 | "Make Steam look like it belongs on your computer. This app installs and " 40 | "updates the Adwaita-for-Steam skin for you. It's as simple as this:" 41 | msgstr "" 42 | "اجعل ستيم يبدو وكأنه جزء من نظامك. يقوم هذا التطبيق بتثبيت وتحديث مظهر " 43 | "\"Adwaita for steam\" من أجلك. إنه بهذه البساطة:" 44 | 45 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:30 46 | msgid "Configure the skin to your liking" 47 | msgstr "قم بتكوين المظهر حسب رغبتك" 48 | 49 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:31 50 | msgid "Click the “Apply” button" 51 | msgstr "انقر على زر \"تطبيق\"" 52 | 53 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:32 54 | msgid "Restart Steam" 55 | msgstr "أعد تشغيل ستيم" 56 | 57 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:34 58 | msgid "" 59 | "On startup, the app will automatically download any updates to the skin and " 60 | "display a notification. Apply the skin again and restart Steam to take the " 61 | "changes into use." 62 | msgstr "" 63 | "عند بدء التشغيل، سيقوم التطبيق بتنزيل أي تحديثات للمظهر تلقائيًا وسيعرض إشعارً" 64 | "ا. قم بتطبيق المظهر مرة أخرى وأعد تشغيل ستيم لتفعيل التغييرات." 65 | 66 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:38 67 | msgid "" 68 | "In order to get rounded corners on Steam, you will need to use the “Rounded " 69 | "Window Corners” GNOME extension." 70 | msgstr "" 71 | "للحصول على زوايا مستديرة في ستيم، ستحتاج إلى استخدام إضافة GNOME " 72 | "\"زوايا النوافذ المستديرة\"." 73 | 74 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:244 75 | msgid "Main Window" 76 | msgstr "النافذة الرئيسية" 77 | 78 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:248 79 | msgid "Theme Preview" 80 | msgstr "معاينة السمة" 81 | 82 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:252 83 | msgid "Login Preview" 84 | msgstr "معاينة تسجيل الدخول" 85 | 86 | #: data/io.github.Foldex.AdwSteamGtk.desktop.in:4 87 | msgid "A simple wrapper that installs Adwaita for Steam" 88 | msgstr "أداة بسيطة تقوم بتثبيت Adwaita لـ Steam" 89 | 90 | #: data/io.github.Foldex.AdwSteamGtk.desktop.in:10 91 | msgid "Steam;Adwaita;Skin;" 92 | msgstr "Steam;Adwaita;مظهر;" 93 | 94 | #: src/cli.py:47 src/cli.py:138 95 | msgid "Up to Date." 96 | msgstr "محدث." 97 | 98 | #: src/cli.py:105 99 | #, python-brace-format 100 | msgid "{key}: {cur_val} invalid value" 101 | msgstr "{key}: {cur_val} قيمة غير صالحة" 102 | 103 | #: src/cli.py:111 104 | msgid "Could not get theme list. Falling back to last selected theme." 105 | msgstr "" 106 | "لم يتمكن من الحصول على قائمة السمات. الرجوع إلى السمة التي تم اختيارها آخر " 107 | "مرة." 108 | 109 | #: src/cli.py:117 110 | #, python-brace-format 111 | msgid "" 112 | "Could not find theme {colortheme} in theme list. Falling back to last " 113 | "selected theme." 114 | msgstr "" 115 | "لم يتمكن من العثور على السمة {colortheme} في قائمة السمات. الرجوع إلى السمة " 116 | "التي تم اختيارها آخر مرة." 117 | 118 | #: src/cli.py:132 119 | msgid "New Release Available: " 120 | msgstr "إصدار جديد متاح: " 121 | 122 | #: src/cli.py:135 123 | msgid "Update Check Failed: " 124 | msgstr "فشل التحقق من التحديث: " 125 | 126 | #: src/dl.py:30 127 | msgid "API: HTTP Error Code " 128 | msgstr "API: رمز HTTP خطأ " 129 | 130 | #: src/dl.py:32 131 | msgid "API: Error Parsing JSON" 132 | msgstr "API: خطأ في تحليل JSON" 133 | 134 | #: src/dl.py:34 135 | msgid "API: Error retrieving release info" 136 | msgstr "API: خطأ في استرداد معلومات الإصدار" 137 | 138 | #: src/dl.py:42 139 | msgid "API: JSON is missing required keys" 140 | msgstr "API: JSON يفتقد المفاتيح المطلوبة" 141 | 142 | #: src/dl.py:48 143 | msgid "Release: HTTP Error Code " 144 | msgstr "الإصدار: رمز HTTP خطأ " 145 | 146 | #: src/dl.py:50 147 | msgid "Release: Connection Reset" 148 | msgstr "الإصدار: إعادة تعيين الاتصال" 149 | 150 | #: src/dl.py:52 151 | msgid "Release: Permission Error" 152 | msgstr "الإصدار: خطأ في الإذن" 153 | 154 | #: src/dl.py:54 155 | msgid "Release: Connection Timeout" 156 | msgstr "الإصدار: انتهاء مهلة الاتصال" 157 | 158 | #: src/dl.py:56 159 | msgid "Release: Error Retrieving Zip" 160 | msgstr "الإصدار: خطأ في استرداد الملف المضغوط (Zip)" 161 | 162 | #: src/install.py:132 163 | msgid "Install: Found no Valid Install Targets" 164 | msgstr "التثبيت: لم يتم العثور على أهداف تثبيت صالحة" 165 | 166 | #: src/install.py:135 167 | msgid "Install: Installer Process Failed" 168 | msgstr "التثبيت: فشل عملية المثبت" 169 | 170 | #: src/install.py:169 171 | msgid "Install: Failed to Find Valid '~/.steam/steam' Symlink" 172 | msgstr "التثبيت: فشل في العثور على رابط رمزي صالح '~/.steam/steam'" 173 | 174 | #: src/main.py:138 175 | msgid "Upstream" 176 | msgstr "المصدر الأصلي" 177 | 178 | #: src/main.py:139 179 | msgid "Translators" 180 | msgstr "المترجمون" 181 | 182 | #: src/main.py:148 183 | msgid "Uninstall Theme" 184 | msgstr "إلغاء تثبيت السمة" 185 | 186 | #: src/main.py:149 187 | msgid "This will reset all customizations made to the Steam client." 188 | msgstr "سيؤدي هذا إلى إعادة تعيين جميع التخصيصات التي تم إجراؤها على ستيم." 189 | 190 | #: src/main.py:151 191 | msgid "Cancel" 192 | msgstr "إلغاء" 193 | 194 | #: src/main.py:152 195 | msgid "Uninstall" 196 | msgstr "إلغاء التثبيت" 197 | 198 | #: src/pages/window.py:193 199 | msgid "New Release Downloaded: " 200 | msgstr "تنزيل إصدار جديد: " 201 | 202 | #: src/pages/window.py:195 203 | msgid "Retry" 204 | msgstr "إعادة المحاولة" 205 | 206 | #: src/pages/window.py:228 207 | msgid "Theme Installed" 208 | msgstr "تم تثبيت السمة" 209 | 210 | #: src/style.py:40 211 | msgid "Get Themes: Failed to get themes" 212 | msgstr "الحصول على السمات: فشل في الحصول على السمات" 213 | 214 | #: src/style.py:71 215 | #, python-brace-format 216 | msgid "Style: Could not find theme {theme_name}" 217 | msgstr "الأسلوب: تعذر العثور على السمة {theme_name}" 218 | 219 | #: src/style.py:122 220 | #, python-brace-format 221 | msgid "Style: Theme {theme_name} seems to be invalid" 222 | msgstr "النمط: يبدو أن السمة {theme_name} غير صالحة" 223 | 224 | #: src/ui/prefs.blp:5 225 | msgid "Preferences" 226 | msgstr "التفضيلات" 227 | 228 | #: src/ui/prefs.blp:12 229 | msgid "Autostart" 230 | msgstr "التشغيل التلقائي" 231 | 232 | #: src/ui/prefs.blp:15 233 | msgid "Auto Update Check" 234 | msgstr "التحقق التلقائي من التحديثات" 235 | 236 | #: src/ui/prefs.blp:16 237 | msgid "Checks and notifies for theme updates on user login." 238 | msgstr "يتحقق ويُعلم بتحديثات السمة عند تسجيل دخول المستخدم." 239 | 240 | #: src/ui/prefs.blp:25 241 | msgid "Beta" 242 | msgstr "نسخة تجريبية" 243 | 244 | #: src/ui/prefs.blp:29 245 | msgid "Experimental Beta Support" 246 | msgstr "دعم تجريبي للنسخة التجريبية" 247 | 248 | #: src/ui/prefs.blp:30 249 | msgid "Enables Beta Support (requires restart)" 250 | msgstr "يُمكّن دعم النسخة التجريبية (يتطلب إعادة تشغيل)" 251 | 252 | #: src/ui/prefs.blp:39 253 | msgid "Installer" 254 | msgstr "المثبت" 255 | 256 | #: src/ui/prefs.blp:42 257 | msgid "Custom CSS" 258 | msgstr "CSS خاص" 259 | 260 | #: src/ui/prefs.blp:43 261 | msgid "Include Custom CSS into Steam" 262 | msgstr "تضمين CSS مخصص في ستيم" 263 | 264 | #: src/ui/prefs.blp:48 265 | msgid "Custom CSS Info" 266 | msgstr "معلومات CSS المخصص" 267 | 268 | #: src/ui/prefs.blp:53 269 | msgid "Edit Custom CSS File" 270 | msgstr "تعديل ملف CSS المخصص" 271 | 272 | #: src/ui/prefs.blp:63 273 | msgid "Interface" 274 | msgstr "الواجهة" 275 | 276 | #: src/ui/prefs.blp:66 277 | msgid "Preview Themes" 278 | msgstr "معاينة السمات" 279 | 280 | #: src/ui/prefs.blp:67 281 | msgid "Styles the interface to match the currently selected theme." 282 | msgstr "يُصمم الواجهة لتتناسب مع السمة المختارة حاليًا." 283 | 284 | #: src/ui/window.blp:7 285 | msgid "Adwaita Steam Installer" 286 | msgstr "مثبت Adwaita ستيم" 287 | 288 | #: src/ui/window.blp:14 289 | msgid "Apply" 290 | msgstr "تطبيق" 291 | 292 | #: src/ui/window.blp:40 293 | msgid "Theme Options" 294 | msgstr "خيارات السمة" 295 | 296 | #: src/ui/window.blp:42 297 | msgid "Color Theme" 298 | msgstr "لون السمة" 299 | 300 | #: src/ui/window.blp:43 301 | msgid "Changes the color theme of Steam's interface." 302 | msgstr "يغير سمة اللون لواجهة ستيم." 303 | 304 | #: src/ui/window.blp:46 305 | msgid "No Rounded Corners" 306 | msgstr "بدون زوايا مدورة" 307 | 308 | #: src/ui/window.blp:47 309 | msgid "Removes smooth rounded corners from the interface." 310 | msgstr "يزيل الزوايا المدورة الناعمة من الواجهة." 311 | 312 | #: src/ui/window.blp:57 313 | msgid "Window Controls Options" 314 | msgstr "خيارات التحكم في النافذة" 315 | 316 | #: src/ui/window.blp:59 317 | msgid "Controls Style" 318 | msgstr "أسلوب التحكم" 319 | 320 | #: src/ui/window.blp:60 321 | msgid "Changes Minimize/Maximize/Close Button Theme" 322 | msgstr "يغيّر سمة أزرار التصغير/التكبير/الإغلاق" 323 | 324 | #: src/ui/window.blp:61 src/ui/window.blp:66 325 | msgid "Adwaita" 326 | msgstr ".Adwaita" 327 | 328 | #: src/ui/window.blp:61 src/ui/window.blp:66 329 | msgid "MacOS" 330 | msgstr "نظام ماك" 331 | 332 | #: src/ui/window.blp:61 src/ui/window.blp:66 333 | msgid "Windows" 334 | msgstr "ويندوز" 335 | 336 | #: src/ui/window.blp:64 337 | msgid "Controls Button Layout" 338 | msgstr "يتحكم في تخطيط أزرار التحكم" 339 | 340 | #: src/ui/window.blp:65 341 | msgid "Changes Minimize/Maximize/Close Button Layout and Position" 342 | msgstr "يغيّر تخطيط وموقع أزرار التصغير/التكبير/الإغلاق" 343 | 344 | #: src/ui/window.blp:66 345 | msgid "Auto" 346 | msgstr "تلقائي" 347 | 348 | #: src/ui/window.blp:66 349 | msgid "Elementary" 350 | msgstr "إليمينتري" 351 | 352 | #: src/ui/window.blp:71 353 | msgid "Library Options" 354 | msgstr "خيارات المكتبة" 355 | 356 | #: src/ui/window.blp:74 357 | msgid "Library Sidebar" 358 | msgstr "الشريط الجانبي للمكتبة" 359 | 360 | #: src/ui/window.blp:75 361 | msgid "Changes display options for the Library's left sidebar." 362 | msgstr "يغير خيارات العرض للشريط الجانبي الأيسر للمكتبة." 363 | 364 | #: src/ui/window.blp:76 src/ui/window.blp:96 365 | msgid "Show" 366 | msgstr "عرض" 367 | 368 | #: src/ui/window.blp:76 src/ui/window.blp:96 369 | msgid "Hover Only" 370 | msgstr "عند التمرير فقط" 371 | 372 | #: src/ui/window.blp:80 373 | msgid "Hide Library What's New Shelf" 374 | msgstr "إخفاء رف \"ما الجديد (What's new) \" في المكتبة" 375 | 376 | #: src/ui/window.blp:81 377 | msgid "Disables display of the new updates section on top of the Library." 378 | msgstr "يعطل عرض قسم التحديثات الجديدة أعلى المكتبة." 379 | 380 | #: src/ui/window.blp:91 381 | msgid "Login Options" 382 | msgstr "خيارات تسجيل الدخول" 383 | 384 | #: src/ui/window.blp:94 385 | msgid "QR Code Login" 386 | msgstr "تسجيل الدخول باستخدام رمز الاستجابة السريعة" 387 | 388 | #: src/ui/window.blp:95 389 | msgid "Changes display options for the mobile QR code in the Login dialog." 390 | msgstr "يغير خيارات العرض لرمز الاستجابة السريعة للجوال في نافذة تسجيل الدخول." 391 | 392 | #: src/ui/window.blp:96 393 | msgid "Hide" 394 | msgstr "اخفاء" 395 | 396 | #: src/ui/window.blp:108 397 | msgid "_Preferences" 398 | msgstr "_التفضيلات" 399 | 400 | #: src/ui/window.blp:112 401 | msgid "_Uninstall" 402 | msgstr "_إلغاء التثبيت" 403 | 404 | #: src/ui/window.blp:116 405 | msgid "_About AdwSteamGtk" 406 | msgstr "_عن AdwSteamGtk" 407 | 408 | #: src/zip.py:28 409 | msgid "Extract: Failed to read ZIP archive" 410 | msgstr "الاستخراج: فشل في قراءة أرشيف ZIP" 411 | 412 | #: src/zip.py:30 413 | msgid "Extract: Bad ZIP File" 414 | msgstr "الاستخراج: ملف ZIP تالف" 415 | 416 | #: src/zip.py:32 417 | msgid "Extract: Failed to Extract ZIP File" 418 | msgstr "الاستخراج: فشل في استخراج ملف ZIP" 419 | -------------------------------------------------------------------------------- /po/ca.po: -------------------------------------------------------------------------------- 1 | # AdwSteamGtk Pot 2 | # Copyright (C) 2024 Foldex 3 | # This file is distributed under the GNU GPLv3 license. 4 | # Foldex, 2024. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: AdwSteamGtk 0.6.11\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2024-11-09 19:43-0500\n" 11 | "PO-Revision-Date: 2025-02-22 19:14+0000\n" 12 | "Last-Translator: Adolfo Jayme Barrientos \n" 13 | "Language-Team: Catalan \n" 15 | "Language: ca\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 20 | "X-Generator: Weblate 5.10.1-dev\n" 21 | 22 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:12 23 | #: data/io.github.Foldex.AdwSteamGtk.desktop.in:3 24 | msgid "AdwSteamGtk" 25 | msgstr "AdwSteamGtk" 26 | 27 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:13 28 | msgid "Give Steam the Adwaita treatment" 29 | msgstr "" 30 | 31 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:14 32 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:16 33 | msgid "Foldex" 34 | msgstr "Foldex" 35 | 36 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:25 37 | msgid "" 38 | "Make Steam look like it belongs on your computer. This app installs and " 39 | "updates the Adwaita-for-Steam skin for you. It's as simple as this:" 40 | msgstr "" 41 | 42 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:30 43 | msgid "Configure the skin to your liking" 44 | msgstr "" 45 | 46 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:31 47 | msgid "Click the “Apply” button" 48 | msgstr "Feu clic al botó «Aplica»" 49 | 50 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:32 51 | msgid "Restart Steam" 52 | msgstr "Reinicieu l’Steam" 53 | 54 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:34 55 | msgid "" 56 | "On startup, the app will automatically download any updates to the skin and " 57 | "display a notification. Apply the skin again and restart Steam to take the " 58 | "changes into use." 59 | msgstr "" 60 | 61 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:38 62 | msgid "" 63 | "In order to get rounded corners on Steam, you will need to use the “Rounded " 64 | "Window Corners” GNOME extension." 65 | msgstr "" 66 | 67 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:244 68 | msgid "Main Window" 69 | msgstr "Finestra principal" 70 | 71 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:248 72 | msgid "Theme Preview" 73 | msgstr "Previsualització del tema" 74 | 75 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:252 76 | msgid "Login Preview" 77 | msgstr "Previsualització de l’inici de sessió" 78 | 79 | #: data/io.github.Foldex.AdwSteamGtk.desktop.in:4 80 | msgid "A simple wrapper that installs Adwaita for Steam" 81 | msgstr "Una interfície simple per a instal·lar l’Adwaita per a l’Steam" 82 | 83 | #: data/io.github.Foldex.AdwSteamGtk.desktop.in:10 84 | msgid "Steam;Adwaita;Skin;" 85 | msgstr "Steam;Adwaita;Aparença;" 86 | 87 | #: src/cli.py:47 src/cli.py:138 88 | msgid "Up to Date." 89 | msgstr "Actualitzat." 90 | 91 | #: src/cli.py:105 92 | #, python-brace-format 93 | msgid "{key}: {cur_val} invalid value" 94 | msgstr "{key}: valor no vàlid de «{cur_val}»" 95 | 96 | #: src/cli.py:111 97 | msgid "Could not get theme list. Falling back to last selected theme." 98 | msgstr "" 99 | "No s’ha pogut recuperar la llista de temes. S’usarà l’últim tema seleccionat." 100 | 101 | #: src/cli.py:117 102 | #, python-brace-format 103 | msgid "" 104 | "Could not find theme {colortheme} in theme list. Falling back to last " 105 | "selected theme." 106 | msgstr "" 107 | "No s’ha pogut trobar el tema «{colortheme}» a la llista. S’usarà l’últim " 108 | "tema seleccionat." 109 | 110 | #: src/cli.py:132 111 | msgid "New Release Available: " 112 | msgstr "Versió nova disponible: " 113 | 114 | #: src/cli.py:135 115 | msgid "Update Check Failed: " 116 | msgstr "Ha fallat la comprovació d’actualitzacions: " 117 | 118 | #: src/dl.py:30 119 | msgid "API: HTTP Error Code " 120 | msgstr "API: codi d’error HTTP " 121 | 122 | #: src/dl.py:32 123 | msgid "API: Error Parsing JSON" 124 | msgstr "API: error en processar el JSON" 125 | 126 | #: src/dl.py:34 127 | msgid "API: Error retrieving release info" 128 | msgstr "API: error en recuperar la informació de versions" 129 | 130 | #: src/dl.py:42 131 | msgid "API: JSON is missing required keys" 132 | msgstr "API: el JSON manca claus requerides" 133 | 134 | #: src/dl.py:48 135 | msgid "Release: HTTP Error Code " 136 | msgstr "Versió: codi d’error HTTP " 137 | 138 | #: src/dl.py:50 139 | msgid "Release: Connection Reset" 140 | msgstr "Versió: connexió reinicialitzada" 141 | 142 | #: src/dl.py:52 143 | msgid "Release: Permission Error" 144 | msgstr "Versió: error de permisos" 145 | 146 | #: src/dl.py:54 147 | msgid "Release: Connection Timeout" 148 | msgstr "Versió: s’ha esgotat el temps d’espera de la connexió" 149 | 150 | #: src/dl.py:56 151 | msgid "Release: Error Retrieving Zip" 152 | msgstr "Versió: error en recuperar el ZIP" 153 | 154 | #: src/install.py:132 155 | msgid "Install: Found no Valid Install Targets" 156 | msgstr "Instal·lació: no s’ha trobat cap destinació d’instal·lació" 157 | 158 | #: src/install.py:135 159 | msgid "Install: Installer Process Failed" 160 | msgstr "Instal·lació: ha fallat el procés de l’instal·lador" 161 | 162 | #: src/install.py:169 163 | msgid "Install: Failed to Find Valid '~/.steam/steam' Symlink" 164 | msgstr "" 165 | "Instal·lació: no s’ha pogut trobar un enllaç simbòlic vàlid a «~/.steam/" 166 | "steam»" 167 | 168 | #: src/main.py:138 169 | msgid "Upstream" 170 | msgstr "Originari" 171 | 172 | #: src/main.py:139 173 | msgid "Translators" 174 | msgstr "Traductors" 175 | 176 | #: src/main.py:148 177 | msgid "Uninstall Theme" 178 | msgstr "Desinstal·la el tema" 179 | 180 | #: src/main.py:149 181 | msgid "This will reset all customizations made to the Steam client." 182 | msgstr "" 183 | "Això reinicialitzarà totes les personalitzacions fetes al client de l’Steam." 184 | 185 | #: src/main.py:151 186 | msgid "Cancel" 187 | msgstr "Cancel·la" 188 | 189 | #: src/main.py:152 190 | msgid "Uninstall" 191 | msgstr "Desinstal·la" 192 | 193 | #: src/pages/window.py:193 194 | msgid "New Release Downloaded: " 195 | msgstr "Versió nova baixada: " 196 | 197 | #: src/pages/window.py:195 198 | msgid "Retry" 199 | msgstr "Torna a provar" 200 | 201 | #: src/pages/window.py:228 202 | msgid "Theme Installed" 203 | msgstr "S’ha instal·lat el tema" 204 | 205 | #: src/style.py:40 206 | msgid "Get Themes: Failed to get themes" 207 | msgstr "Obtenció de temes: no s’han pogut recuperar els temes" 208 | 209 | #: src/style.py:71 210 | #, python-brace-format 211 | msgid "Style: Could not find theme {theme_name}" 212 | msgstr "Estil: no s’ha pogut trobar el tema {theme_name}" 213 | 214 | #: src/style.py:122 215 | #, python-brace-format 216 | msgid "Style: Theme {theme_name} seems to be invalid" 217 | msgstr "" 218 | 219 | #: src/ui/prefs.blp:5 220 | msgid "Preferences" 221 | msgstr "Preferències" 222 | 223 | #: src/ui/prefs.blp:12 224 | msgid "Autostart" 225 | msgstr "Inici automàtic" 226 | 227 | #: src/ui/prefs.blp:15 228 | msgid "Auto Update Check" 229 | msgstr "Comprovació d’actualitzacions automàtica" 230 | 231 | #: src/ui/prefs.blp:16 232 | msgid "Checks and notifies for theme updates on user login." 233 | msgstr "" 234 | "Revisa i notifica si hi ha actualitzacions dels temes en iniciar la sessió " 235 | "l’usuari." 236 | 237 | #: src/ui/prefs.blp:25 238 | msgid "Beta" 239 | msgstr "Beta" 240 | 241 | #: src/ui/prefs.blp:29 242 | msgid "Experimental Beta Support" 243 | msgstr "Compatibilitat beta experimental" 244 | 245 | #: src/ui/prefs.blp:30 246 | msgid "Enables Beta Support (requires restart)" 247 | msgstr "Activa la compatibilitat beta (cal reiniciar)" 248 | 249 | #: src/ui/prefs.blp:39 250 | msgid "Installer" 251 | msgstr "Instal·lador" 252 | 253 | #: src/ui/prefs.blp:42 254 | msgid "Custom CSS" 255 | msgstr "CSS personalitzat" 256 | 257 | #: src/ui/prefs.blp:43 258 | msgid "Include Custom CSS into Steam" 259 | msgstr "Inclou CSS personalitzat a l’Steam" 260 | 261 | #: src/ui/prefs.blp:48 262 | msgid "Custom CSS Info" 263 | msgstr "Informació del CSS personalitzat" 264 | 265 | #: src/ui/prefs.blp:53 266 | msgid "Edit Custom CSS File" 267 | msgstr "Edita el fitxer de CSS personalitzat" 268 | 269 | #: src/ui/prefs.blp:63 270 | msgid "Interface" 271 | msgstr "Interfície" 272 | 273 | #: src/ui/prefs.blp:66 274 | msgid "Preview Themes" 275 | msgstr "Previsualitza els temes" 276 | 277 | #: src/ui/prefs.blp:67 278 | msgid "Styles the interface to match the currently selected theme." 279 | msgstr "" 280 | "Dóna estil a la interfície perquè coincideixi amb el tema seleccionat " 281 | "actualment." 282 | 283 | #: src/ui/window.blp:7 284 | msgid "Adwaita Steam Installer" 285 | msgstr "Instal·lador Adwaita de l’Steam" 286 | 287 | #: src/ui/window.blp:14 288 | msgid "Apply" 289 | msgstr "Aplica" 290 | 291 | #: src/ui/window.blp:40 292 | msgid "Theme Options" 293 | msgstr "Opcions del tema" 294 | 295 | #: src/ui/window.blp:42 296 | msgid "Color Theme" 297 | msgstr "Tema de colors" 298 | 299 | #: src/ui/window.blp:43 300 | msgid "Changes the color theme of Steam's interface." 301 | msgstr "Canvia el tema de colors de la interfície de l’Steam." 302 | 303 | #: src/ui/window.blp:46 304 | msgid "No Rounded Corners" 305 | msgstr "Sense cantonades arrodonides" 306 | 307 | #: src/ui/window.blp:47 308 | msgid "Removes smooth rounded corners from the interface." 309 | msgstr "Treu les cantonades suaus de la interfície." 310 | 311 | #: src/ui/window.blp:57 312 | msgid "Window Controls Options" 313 | msgstr "Opcions dels controls de la finestra" 314 | 315 | #: src/ui/window.blp:59 316 | msgid "Controls Style" 317 | msgstr "Estil dels controls" 318 | 319 | #: src/ui/window.blp:60 320 | msgid "Changes Minimize/Maximize/Close Button Theme" 321 | msgstr "Canvia el tema dels botons Minimitza/Maximitza/Tanca" 322 | 323 | #: src/ui/window.blp:61 src/ui/window.blp:66 324 | msgid "Adwaita" 325 | msgstr "Adwaita" 326 | 327 | #: src/ui/window.blp:61 src/ui/window.blp:66 328 | msgid "MacOS" 329 | msgstr "macOS" 330 | 331 | #: src/ui/window.blp:61 src/ui/window.blp:66 332 | msgid "Windows" 333 | msgstr "Windows" 334 | 335 | #: src/ui/window.blp:64 336 | msgid "Controls Button Layout" 337 | msgstr "Disposició dels botons dels controls" 338 | 339 | #: src/ui/window.blp:65 340 | msgid "Changes Minimize/Maximize/Close Button Layout and Position" 341 | msgstr "Canvia la disposició i la posició dels botons Minimitza/Maximitza/Tanca" 342 | 343 | #: src/ui/window.blp:66 344 | msgid "Auto" 345 | msgstr "Automàtic" 346 | 347 | #: src/ui/window.blp:66 348 | msgid "Elementary" 349 | msgstr "Elementary" 350 | 351 | #: src/ui/window.blp:71 352 | msgid "Library Options" 353 | msgstr "Opcions de la ludoteca" 354 | 355 | #: src/ui/window.blp:74 356 | msgid "Library Sidebar" 357 | msgstr "Barra lateral de la ludoteca" 358 | 359 | #: src/ui/window.blp:75 360 | msgid "Changes display options for the Library's left sidebar." 361 | msgstr "" 362 | "Canvia les opcions de visualització de la barra lateral esquerra de la " 363 | "ludoteca." 364 | 365 | #: src/ui/window.blp:76 src/ui/window.blp:96 366 | msgid "Show" 367 | msgstr "Mostra" 368 | 369 | #: src/ui/window.blp:76 src/ui/window.blp:96 370 | msgid "Hover Only" 371 | msgstr "Només en posar-hi el punter" 372 | 373 | #: src/ui/window.blp:80 374 | msgid "Hide Library What's New Shelf" 375 | msgstr "Amaga el prestatge «Novetats» de la ludoteca" 376 | 377 | #: src/ui/window.blp:81 378 | msgid "Disables display of the new updates section on top of the Library." 379 | msgstr "" 380 | "Desactiva la visualització de la secció d’actualitzacions a la part superior " 381 | "de la biblioteca." 382 | 383 | #: src/ui/window.blp:91 384 | msgid "Login Options" 385 | msgstr "Opcions d’inici de sessió" 386 | 387 | #: src/ui/window.blp:94 388 | msgid "QR Code Login" 389 | msgstr "Inici de sessió mitjançant codi QR" 390 | 391 | #: src/ui/window.blp:95 392 | msgid "Changes display options for the mobile QR code in the Login dialog." 393 | msgstr "" 394 | "Canvia les opcions de visualització del codi QR mòbil al diàleg d’inici de " 395 | "sessió." 396 | 397 | #: src/ui/window.blp:96 398 | msgid "Hide" 399 | msgstr "Amaga" 400 | 401 | #: src/ui/window.blp:108 402 | msgid "_Preferences" 403 | msgstr "_Preferències" 404 | 405 | #: src/ui/window.blp:112 406 | msgid "_Uninstall" 407 | msgstr "_Desinstal·la" 408 | 409 | #: src/ui/window.blp:116 410 | msgid "_About AdwSteamGtk" 411 | msgstr "_Quant a l’AdwSteamGtk" 412 | 413 | #: src/zip.py:28 414 | msgid "Extract: Failed to read ZIP archive" 415 | msgstr "Extracció: no s’ha pogut llegir l’arxiu ZIP" 416 | 417 | #: src/zip.py:30 418 | msgid "Extract: Bad ZIP File" 419 | msgstr "Extracció: fitxer ZIP malmès" 420 | 421 | #: src/zip.py:32 422 | msgid "Extract: Failed to Extract ZIP File" 423 | msgstr "Extracció: no s’ha pogut extreure el fitxer ZIP" 424 | -------------------------------------------------------------------------------- /po/ckb.po: -------------------------------------------------------------------------------- 1 | # AdwSteamGtk Pot 2 | # Copyright (C) 2023 Foldex 3 | # This file is distributed under the GNU GPLv3 license. 4 | # Foldex, 2023. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: AdwSteamGtk 0.6.9\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2023-09-16 13:37-0400\n" 11 | "PO-Revision-Date: 2023-10-16 04:17+0000\n" 12 | "Last-Translator: \"Hoshmand M. Qadir\" \n" 13 | "Language-Team: Kurdish (Central) \n" 15 | "Language: ckb\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 20 | "X-Generator: Weblate 5.1-dev\n" 21 | 22 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:12 23 | #: data/io.github.Foldex.AdwSteamGtk.desktop.in:3 24 | msgid "AdwSteamGtk" 25 | msgstr "" 26 | 27 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:13 28 | msgid "Give Steam the Adwaita treatment" 29 | msgstr "" 30 | 31 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:14 32 | msgid "Foldex" 33 | msgstr "" 34 | 35 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:20 36 | msgid "" 37 | "Make Steam look like it belongs on your computer. This app installs and " 38 | "updates the Adwaita-for-Steam skin for you. It's as simple as this:" 39 | msgstr "" 40 | 41 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:25 42 | msgid "Configure the skin to your liking" 43 | msgstr "" 44 | 45 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:26 46 | msgid "Click the “Apply” button" 47 | msgstr "" 48 | 49 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:27 50 | msgid "Restart Steam" 51 | msgstr "" 52 | 53 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:29 54 | msgid "" 55 | "On startup, the app will automatically download any updates to the skin and " 56 | "display a notification. Apply the skin again and restart Steam to take the " 57 | "changes into use." 58 | msgstr "" 59 | 60 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:33 61 | msgid "" 62 | "In order to get rounded corners on Steam, you will need to use the “Rounded " 63 | "Window Corners” GNOME extension." 64 | msgstr "" 65 | 66 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:46 67 | msgid "Added Czech Translation" 68 | msgstr "" 69 | 70 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:47 71 | msgid "Added Spanish Translation" 72 | msgstr "" 73 | 74 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:48 75 | msgid "Updated French Translation" 76 | msgstr "" 77 | 78 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:49 79 | msgid "New Application Icon" 80 | msgstr "" 81 | 82 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:50 83 | msgid "Updated Libportal" 84 | msgstr "" 85 | 86 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:57 87 | msgid "Fixed issue with Uninstall" 88 | msgstr "" 89 | 90 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:64 91 | msgid "Removed Deprecated Font Install Preference" 92 | msgstr "" 93 | 94 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:71 95 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:95 96 | msgid "Fixed Appdata" 97 | msgstr "" 98 | 99 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:72 100 | msgid "Removed some options that no longer exist upstream" 101 | msgstr "" 102 | 103 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:79 104 | msgid "Updated Russian Translation" 105 | msgstr "" 106 | 107 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:80 108 | msgid "Updated to new upstream install method" 109 | msgstr "" 110 | 111 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:87 112 | msgid "Updated German and Ukrainian Translations" 113 | msgstr "" 114 | 115 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:88 116 | msgid "Added Portuguese Translation" 117 | msgstr "" 118 | 119 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:102 120 | msgid "Beta Toggle removed as new UI support landed upstream" 121 | msgstr "" 122 | 123 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:103 124 | msgid "" 125 | "Added option to use Steam's Original Top Bar instead of our Adwaita styled " 126 | "one" 127 | msgstr "" 128 | 129 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:104 130 | msgid "Initial German Translation" 131 | msgstr "" 132 | 133 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:105 134 | msgid "Added hover tooltips to installer options" 135 | msgstr "" 136 | 137 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:112 138 | msgid "Added French, Ukrainian, and Russian Translations" 139 | msgstr "" 140 | 141 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:119 142 | msgid "New UI" 143 | msgstr "" 144 | 145 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:120 146 | msgid "Added Experimental Beta Client Support (with new options)" 147 | msgstr "" 148 | 149 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:121 150 | msgid "Added Custom CSS Option" 151 | msgstr "" 152 | 153 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:128 154 | msgid "Added Autostart Update Check preference toggle" 155 | msgstr "" 156 | 157 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:129 158 | msgid "Added Font Install preference toggle" 159 | msgstr "" 160 | 161 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:136 162 | msgid "Fixed issue with theme preview on light mode" 163 | msgstr "" 164 | 165 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:137 166 | msgid "Added preferences toggle for theme preview" 167 | msgstr "" 168 | 169 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:144 170 | msgid "Colortheme is now previewed in app" 171 | msgstr "" 172 | 173 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:145 174 | msgid "Added -u/-i arguments to install skin via commandline" 175 | msgstr "" 176 | 177 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:146 178 | msgid "Added -o argument to override install options for -i/-u" 179 | msgstr "" 180 | 181 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:153 182 | msgid "Added Library Sidebar Options" 183 | msgstr "" 184 | 185 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:160 186 | msgid "Updated to Gnome 44 Runtime" 187 | msgstr "" 188 | 189 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:161 190 | msgid "Changed Default Web Theme to Full Variant" 191 | msgstr "" 192 | 193 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:168 194 | msgid "Fixed Installer CLI Output" 195 | msgstr "" 196 | 197 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:175 198 | msgid "Added Color Theme Support" 199 | msgstr "" 200 | 201 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:176 202 | msgid "Added -c argument to notify about updates" 203 | msgstr "" 204 | 205 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:183 206 | msgid "Last chosen settings are now loaded at startup" 207 | msgstr "" 208 | 209 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:184 210 | msgid "Changed display of install button if the theme is already installed" 211 | msgstr "" 212 | 213 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:191 214 | msgid "Added None to Window Control Options" 215 | msgstr "" 216 | 217 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:198 218 | msgid "Added QR Login Options" 219 | msgstr "" 220 | 221 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:199 222 | msgid "Improved Missing Dir Messages" 223 | msgstr "" 224 | 225 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:206 226 | msgid "Updated to Gnome 43 SDK" 227 | msgstr "" 228 | 229 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:207 230 | msgid "Implemented AdwAboutWindow" 231 | msgstr "" 232 | 233 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:208 234 | msgid "Updated Filesystem Permissions" 235 | msgstr "" 236 | 237 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:209 238 | msgid "Fixed Quit Shortcut" 239 | msgstr "" 240 | 241 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:210 242 | msgid "Fixed Current Check" 243 | msgstr "" 244 | 245 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:220 246 | msgid "Main Window" 247 | msgstr "" 248 | 249 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:224 250 | msgid "Theme Preview" 251 | msgstr "" 252 | 253 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:228 254 | msgid "Login Preview" 255 | msgstr "" 256 | 257 | #: data/io.github.Foldex.AdwSteamGtk.desktop.in:4 258 | msgid "A simple wrapper that installs Adwaita for Steam" 259 | msgstr "" 260 | 261 | #: data/io.github.Foldex.AdwSteamGtk.desktop.in:10 262 | msgid "Steam;Adwaita;Skin;" 263 | msgstr "" 264 | 265 | #: src/cli.py:47 src/cli.py:138 266 | msgid "Up to Date." 267 | msgstr "" 268 | 269 | #: src/cli.py:105 270 | #, python-brace-format 271 | msgid "{key}: {cur_val} invalid value" 272 | msgstr "" 273 | 274 | #: src/cli.py:111 275 | msgid "Could not get theme list. Falling back to last selected theme." 276 | msgstr "" 277 | 278 | #: src/cli.py:117 279 | #, python-brace-format 280 | msgid "" 281 | "Could not find theme {colortheme} in theme list. Falling back to last " 282 | "selected theme." 283 | msgstr "" 284 | 285 | #: src/cli.py:132 286 | msgid "New Release Available: " 287 | msgstr "" 288 | 289 | #: src/cli.py:135 290 | msgid "Update Check Failed: " 291 | msgstr "" 292 | 293 | #: src/dl.py:30 294 | msgid "API: HTTP Error Code " 295 | msgstr "" 296 | 297 | #: src/dl.py:32 298 | msgid "API: Error Parsing JSON" 299 | msgstr "" 300 | 301 | #: src/dl.py:34 302 | msgid "API: Error retrieving release info" 303 | msgstr "" 304 | 305 | #: src/dl.py:42 306 | msgid "API: JSON is missing required keys" 307 | msgstr "" 308 | 309 | #: src/dl.py:48 310 | msgid "Release: HTTP Error Code " 311 | msgstr "" 312 | 313 | #: src/dl.py:50 314 | msgid "Release: Connection Reset" 315 | msgstr "" 316 | 317 | #: src/dl.py:52 318 | msgid "Release: Permission Error" 319 | msgstr "" 320 | 321 | #: src/dl.py:54 322 | msgid "Release: Connection Timeout" 323 | msgstr "" 324 | 325 | #: src/dl.py:56 326 | msgid "Release: Error Retrieving Zip" 327 | msgstr "" 328 | 329 | #: src/install.py:117 330 | msgid "Install: Found no Valid Install Targets" 331 | msgstr "" 332 | 333 | #: src/install.py:120 334 | msgid "Install: Installer Process Failed" 335 | msgstr "" 336 | 337 | #: src/install.py:135 338 | msgid "Install: Failed to Find Valid '~/.steam/steam' Symlink" 339 | msgstr "" 340 | 341 | #: src/main.py:138 342 | msgid "Upstream" 343 | msgstr "" 344 | 345 | #: src/main.py:139 346 | msgid "Translators" 347 | msgstr "" 348 | 349 | #: src/main.py:148 350 | msgid "Uninstall Theme" 351 | msgstr "" 352 | 353 | #: src/main.py:149 354 | msgid "This will reset all customizations made to the Steam client." 355 | msgstr "" 356 | 357 | #: src/main.py:151 358 | msgid "Cancel" 359 | msgstr "" 360 | 361 | #: src/main.py:152 362 | msgid "Uninstall" 363 | msgstr "" 364 | 365 | #: src/pages/window.py:193 366 | msgid "New Release Downloaded: " 367 | msgstr "" 368 | 369 | #: src/pages/window.py:195 370 | msgid "Retry" 371 | msgstr "" 372 | 373 | #: src/pages/window.py:228 374 | msgid "Theme Installed" 375 | msgstr "" 376 | 377 | #: src/style.py:40 378 | msgid "Get Themes: Failed to get themes" 379 | msgstr "" 380 | 381 | #: src/style.py:71 382 | #, python-brace-format 383 | msgid "Style: Could not find theme {theme_name}" 384 | msgstr "" 385 | 386 | #: src/ui/prefs.blp:5 387 | msgid "Preferences" 388 | msgstr "" 389 | 390 | #: src/ui/prefs.blp:12 391 | msgid "Autostart" 392 | msgstr "" 393 | 394 | #: src/ui/prefs.blp:15 395 | msgid "Auto Update Check" 396 | msgstr "" 397 | 398 | #: src/ui/prefs.blp:16 399 | msgid "Checks and notifies for theme updates on user login." 400 | msgstr "" 401 | 402 | #: src/ui/prefs.blp:25 403 | msgid "Beta" 404 | msgstr "" 405 | 406 | #: src/ui/prefs.blp:29 407 | msgid "Experimental Beta Support" 408 | msgstr "" 409 | 410 | #: src/ui/prefs.blp:30 411 | msgid "Enables Beta Support (requires restart)" 412 | msgstr "" 413 | 414 | #: src/ui/prefs.blp:39 415 | msgid "Installer" 416 | msgstr "" 417 | 418 | #: src/ui/prefs.blp:42 419 | msgid "Custom CSS" 420 | msgstr "" 421 | 422 | #: src/ui/prefs.blp:43 423 | msgid "Include Custom CSS into Steam" 424 | msgstr "" 425 | 426 | #: src/ui/prefs.blp:48 427 | msgid "Custom CSS Info" 428 | msgstr "" 429 | 430 | #: src/ui/prefs.blp:53 431 | msgid "Edit Custom CSS File" 432 | msgstr "" 433 | 434 | #: src/ui/prefs.blp:63 435 | msgid "Interface" 436 | msgstr "" 437 | 438 | #: src/ui/prefs.blp:66 439 | msgid "Preview Themes" 440 | msgstr "" 441 | 442 | #: src/ui/prefs.blp:67 443 | msgid "Styles the interface to match the currently selected theme." 444 | msgstr "" 445 | 446 | #: src/ui/window.blp:7 447 | msgid "Adwaita Steam Installer" 448 | msgstr "دامەزرێنەری ئادوایتا ستریم" 449 | 450 | #: src/ui/window.blp:14 451 | msgid "Apply" 452 | msgstr "جێبەجێکردن" 453 | 454 | #: src/ui/window.blp:40 455 | msgid "Theme Options" 456 | msgstr "هەڵبژاردەکانی روکار" 457 | 458 | #: src/ui/window.blp:42 459 | msgid "Color Theme" 460 | msgstr "ڕەنگی روکار" 461 | 462 | #: src/ui/window.blp:43 463 | msgid "Changes the color theme of Steam's interface." 464 | msgstr "" 465 | 466 | #: src/ui/window.blp:46 467 | msgid "No Rounded Corners" 468 | msgstr "" 469 | 470 | #: src/ui/window.blp:47 471 | msgid "Removes smooth rounded corners from the interface." 472 | msgstr "" 473 | 474 | #: src/ui/window.blp:57 475 | msgid "Window Controls Options" 476 | msgstr "" 477 | 478 | #: src/ui/window.blp:59 479 | msgid "Window Controls" 480 | msgstr "" 481 | 482 | #: src/ui/window.blp:60 483 | msgid "" 484 | "Changes Window Control position and type. Minimize and Maximize buttons are " 485 | "hidden by default. Use All to show them." 486 | msgstr "" 487 | 488 | #: src/ui/window.blp:61 src/ui/window.blp:66 489 | msgid "Default" 490 | msgstr "" 491 | 492 | #: src/ui/window.blp:61 493 | msgid "Right-All" 494 | msgstr "" 495 | 496 | #: src/ui/window.blp:61 497 | msgid "Left" 498 | msgstr "" 499 | 500 | #: src/ui/window.blp:61 501 | msgid "Left-All" 502 | msgstr "" 503 | 504 | #: src/ui/window.blp:61 505 | msgid "None" 506 | msgstr "" 507 | 508 | #: src/ui/window.blp:64 509 | msgid "Controls Style" 510 | msgstr "" 511 | 512 | #: src/ui/window.blp:65 513 | msgid "" 514 | "Changes Window Control visual style. Default is the traditional style, while " 515 | "Dots are Mac OS style colored circles." 516 | msgstr "" 517 | 518 | #: src/ui/window.blp:66 519 | msgid "Dots" 520 | msgstr "" 521 | 522 | #: src/ui/window.blp:71 523 | msgid "Library Options" 524 | msgstr "" 525 | 526 | #: src/ui/window.blp:74 527 | msgid "Library Sidebar" 528 | msgstr "" 529 | 530 | #: src/ui/window.blp:75 531 | msgid "Changes display options for the Library's left sidebar." 532 | msgstr "" 533 | 534 | #: src/ui/window.blp:76 src/ui/window.blp:96 535 | msgid "Show" 536 | msgstr "" 537 | 538 | #: src/ui/window.blp:76 src/ui/window.blp:96 539 | msgid "Hover Only" 540 | msgstr "" 541 | 542 | #: src/ui/window.blp:80 543 | msgid "Hide Library What's New Shelf" 544 | msgstr "" 545 | 546 | #: src/ui/window.blp:81 547 | msgid "Disables display of the new updates section on top of the Library." 548 | msgstr "" 549 | 550 | #: src/ui/window.blp:91 551 | msgid "Login Options" 552 | msgstr "" 553 | 554 | #: src/ui/window.blp:94 555 | msgid "QR Code Login" 556 | msgstr "" 557 | 558 | #: src/ui/window.blp:95 559 | msgid "Changes display options for the mobile QR code in the Login dialog." 560 | msgstr "" 561 | 562 | #: src/ui/window.blp:96 563 | msgid "Hide" 564 | msgstr "" 565 | 566 | #: src/ui/window.blp:108 567 | msgid "_Preferences" 568 | msgstr "" 569 | 570 | #: src/ui/window.blp:112 571 | msgid "_Uninstall" 572 | msgstr "" 573 | 574 | #: src/ui/window.blp:116 575 | msgid "_About AdwSteamGtk" 576 | msgstr "" 577 | 578 | #: src/zip.py:28 579 | msgid "Extract: Failed to read ZIP archive" 580 | msgstr "" 581 | 582 | #: src/zip.py:30 583 | msgid "Extract: Bad ZIP File" 584 | msgstr "" 585 | 586 | #: src/zip.py:32 587 | msgid "Extract: Failed to Extract ZIP File" 588 | msgstr "" 589 | -------------------------------------------------------------------------------- /po/hu.po: -------------------------------------------------------------------------------- 1 | # AdwSteamGtk Pot 2 | # Copyright (C) 2024 Foldex 3 | # This file is distributed under the GNU GPLv3 license. 4 | # Foldex, 2024. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: AdwSteamGtk 0.6.11\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2024-11-09 19:43-0500\n" 11 | "PO-Revision-Date: 2025-03-22 21:47+0000\n" 12 | "Last-Translator: Raihwy \n" 13 | "Language-Team: Hungarian \n" 15 | "Language: hu\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 20 | "X-Generator: Weblate 5.11-dev\n" 21 | 22 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:12 23 | #: data/io.github.Foldex.AdwSteamGtk.desktop.in:3 24 | msgid "AdwSteamGtk" 25 | msgstr "AdwSteamGtk" 26 | 27 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:13 28 | msgid "Give Steam the Adwaita treatment" 29 | msgstr "Adj a Steamnek Adwaita stílust" 30 | 31 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:14 32 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:16 33 | msgid "Foldex" 34 | msgstr "Foldex" 35 | 36 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:25 37 | msgid "" 38 | "Make Steam look like it belongs on your computer. This app installs and " 39 | "updates the Adwaita-for-Steam skin for you. It's as simple as this:" 40 | msgstr "" 41 | "Alakítsd át a Steam témáját, hogy illeszkedjen a számítógépedhez. Ez az " 42 | "alkalmazás telepíti és frissíti az Adwaita-for-Steam témát. Könnyen és " 43 | "egyszerűen:" 44 | 45 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:30 46 | msgid "Configure the skin to your liking" 47 | msgstr "Állítsd be a témát ízlésed szerint" 48 | 49 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:31 50 | msgid "Click the “Apply” button" 51 | msgstr "Kattints az 'Alkalmaz' gombra" 52 | 53 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:32 54 | msgid "Restart Steam" 55 | msgstr "Indítsd újra a Steamet" 56 | 57 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:34 58 | msgid "" 59 | "On startup, the app will automatically download any updates to the skin and " 60 | "display a notification. Apply the skin again and restart Steam to take the " 61 | "changes into use." 62 | msgstr "" 63 | "Induláskor az alkalmazás automatikusan letölti a téma frissítéseit, és " 64 | "értesítést jelenít meg. Alkalmazd újra a témát, és indítsd újra a Steamet, " 65 | "hogy érvénybe lépjenek a változások." 66 | 67 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:38 68 | msgid "" 69 | "In order to get rounded corners on Steam, you will need to use the “Rounded " 70 | "Window Corners” GNOME extension." 71 | msgstr "" 72 | "A lekerekített sarkok eléréséhez a Steam-en használnod kell a „Rounded " 73 | "Window Corners” GNOME bővítményt." 74 | 75 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:244 76 | msgid "Main Window" 77 | msgstr "Főablak" 78 | 79 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:248 80 | msgid "Theme Preview" 81 | msgstr "Téma Előnézet" 82 | 83 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:252 84 | msgid "Login Preview" 85 | msgstr "Bejelentkezési Előnézet" 86 | 87 | #: data/io.github.Foldex.AdwSteamGtk.desktop.in:4 88 | msgid "A simple wrapper that installs Adwaita for Steam" 89 | msgstr "Egy egyszerű wrapper, amely telepíti az Adwaita-t a Steamhez" 90 | 91 | #: data/io.github.Foldex.AdwSteamGtk.desktop.in:10 92 | msgid "Steam;Adwaita;Skin;" 93 | msgstr "Steam;Adwaita;Téma;" 94 | 95 | #: src/cli.py:47 src/cli.py:138 96 | msgid "Up to Date." 97 | msgstr "Frissítve." 98 | 99 | #: src/cli.py:105 100 | #, python-brace-format 101 | msgid "{key}: {cur_val} invalid value" 102 | msgstr "{key}: {cur_val} érvénytelen érték" 103 | 104 | #: src/cli.py:111 105 | msgid "Could not get theme list. Falling back to last selected theme." 106 | msgstr "" 107 | "Nem sikerült lekérni a téma listát. Visszatérünk az utoljára kiválasztott " 108 | "témához." 109 | 110 | #: src/cli.py:117 111 | #, python-brace-format 112 | msgid "" 113 | "Could not find theme {colortheme} in theme list. Falling back to last " 114 | "selected theme." 115 | msgstr "" 116 | "Nem található a(z) {colortheme} témát a téma listában. Visszatérünk az " 117 | "utoljára kiválasztott témához." 118 | 119 | #: src/cli.py:132 120 | msgid "New Release Available: " 121 | msgstr "Új Kiadás Elérhető: " 122 | 123 | #: src/cli.py:135 124 | msgid "Update Check Failed: " 125 | msgstr "Frissítés Ellenőrzés Hiba: " 126 | 127 | #: src/dl.py:30 128 | msgid "API: HTTP Error Code " 129 | msgstr "API: HTTP hibakód " 130 | 131 | #: src/dl.py:32 132 | msgid "API: Error Parsing JSON" 133 | msgstr "API: Hiba a JSON feldolgozásában" 134 | 135 | #: src/dl.py:34 136 | msgid "API: Error retrieving release info" 137 | msgstr "API: Hiba a kiadási információk lekérésekor" 138 | 139 | #: src/dl.py:42 140 | msgid "API: JSON is missing required keys" 141 | msgstr "API: A JSON-ból hiányoznak a szükséges kulcsok" 142 | 143 | #: src/dl.py:48 144 | msgid "Release: HTTP Error Code " 145 | msgstr "Kiadás: HTTP hibakód " 146 | 147 | #: src/dl.py:50 148 | msgid "Release: Connection Reset" 149 | msgstr "Kiadás: Kapcsolat Visszaállítva" 150 | 151 | #: src/dl.py:52 152 | msgid "Release: Permission Error" 153 | msgstr "Kiadás: Jogosultsági Hiba" 154 | 155 | #: src/dl.py:54 156 | msgid "Release: Connection Timeout" 157 | msgstr "Kiadás: Kapcsolati Időtúllépés" 158 | 159 | #: src/dl.py:56 160 | msgid "Release: Error Retrieving Zip" 161 | msgstr "Kiadás: Hiba a ZIP fájl Lekérésekor" 162 | 163 | #: src/install.py:132 164 | msgid "Install: Found no Valid Install Targets" 165 | msgstr "Telepítés: Nem Található Érvényes Telepítési Célpont" 166 | 167 | #: src/install.py:135 168 | msgid "Install: Installer Process Failed" 169 | msgstr "Telepítés: A Telepítő Folyamat nem Sikerült" 170 | 171 | #: src/install.py:169 172 | msgid "Install: Failed to Find Valid '~/.steam/steam' Symlink" 173 | msgstr "" 174 | "Telepítés: Nem sikerült érvényes '~/.steam/steam' szimbolikus linket " 175 | "(Symlink) találni" 176 | 177 | #: src/main.py:138 178 | msgid "Upstream" 179 | msgstr "Forrás" 180 | 181 | #: src/main.py:139 182 | msgid "Translators" 183 | msgstr "Fordítók" 184 | 185 | #: src/main.py:148 186 | msgid "Uninstall Theme" 187 | msgstr "Téma Eltávolítása" 188 | 189 | #: src/main.py:149 190 | msgid "This will reset all customizations made to the Steam client." 191 | msgstr "Ez visszaállítja az összes változtatást a Steam kliensen." 192 | 193 | #: src/main.py:151 194 | msgid "Cancel" 195 | msgstr "Mégse" 196 | 197 | #: src/main.py:152 198 | msgid "Uninstall" 199 | msgstr "Eltávolítás" 200 | 201 | #: src/pages/window.py:193 202 | msgid "New Release Downloaded: " 203 | msgstr "Új Kiadás Letöltve: " 204 | 205 | #: src/pages/window.py:195 206 | msgid "Retry" 207 | msgstr "Újrapróbálkozás" 208 | 209 | #: src/pages/window.py:228 210 | msgid "Theme Installed" 211 | msgstr "Téma Telepítve" 212 | 213 | #: src/style.py:40 214 | msgid "Get Themes: Failed to get themes" 215 | msgstr "Témák Beszerzése: Nem Sikerült Letölteni a Témákat" 216 | 217 | #: src/style.py:71 218 | #, python-brace-format 219 | msgid "Style: Could not find theme {theme_name}" 220 | msgstr "Style: Nem található a(z) {theme_name} téma" 221 | 222 | #: src/style.py:122 223 | #, python-brace-format 224 | msgid "Style: Theme {theme_name} seems to be invalid" 225 | msgstr "Stílus: A {theme_name} Téma érvénytelennek tűnik" 226 | 227 | #: src/ui/prefs.blp:5 228 | msgid "Preferences" 229 | msgstr "Beállítások" 230 | 231 | #: src/ui/prefs.blp:12 232 | msgid "Autostart" 233 | msgstr "Automatikus Indítás" 234 | 235 | #: src/ui/prefs.blp:15 236 | msgid "Auto Update Check" 237 | msgstr "Frissítések Ellenőrzése" 238 | 239 | #: src/ui/prefs.blp:16 240 | msgid "Checks and notifies for theme updates on user login." 241 | msgstr "" 242 | "Ellenőrzi és értesít a témafrissítésekről a felhasználói bejelentkezéskor." 243 | 244 | #: src/ui/prefs.blp:25 245 | msgid "Beta" 246 | msgstr "Béta" 247 | 248 | #: src/ui/prefs.blp:29 249 | msgid "Experimental Beta Support" 250 | msgstr "Kísérleti Béta Hozzáférés" 251 | 252 | #: src/ui/prefs.blp:30 253 | msgid "Enables Beta Support (requires restart)" 254 | msgstr "Engedélyezi a Bétaverziót (újraindítás szükséges)" 255 | 256 | #: src/ui/prefs.blp:39 257 | msgid "Installer" 258 | msgstr "Telepítő" 259 | 260 | #: src/ui/prefs.blp:42 261 | msgid "Custom CSS" 262 | msgstr "Egyéni CSS" 263 | 264 | #: src/ui/prefs.blp:43 265 | msgid "Include Custom CSS into Steam" 266 | msgstr "Egyéni CSS Hozzáadása a Steamhez" 267 | 268 | #: src/ui/prefs.blp:48 269 | msgid "Custom CSS Info" 270 | msgstr "Egyéni CSS Információ" 271 | 272 | #: src/ui/prefs.blp:53 273 | msgid "Edit Custom CSS File" 274 | msgstr "Egyéni CSS fájl Szerkesztése" 275 | 276 | #: src/ui/prefs.blp:63 277 | msgid "Interface" 278 | msgstr "Kezelőfelület" 279 | 280 | #: src/ui/prefs.blp:66 281 | msgid "Preview Themes" 282 | msgstr "Témák Előnézete" 283 | 284 | #: src/ui/prefs.blp:67 285 | msgid "Styles the interface to match the currently selected theme." 286 | msgstr "" 287 | "A kezelőfelület stílusát megváltoztatja, hogy illeszkedjen a jelenleg " 288 | "kiválasztott stílushoz." 289 | 290 | #: src/ui/window.blp:7 291 | msgid "Adwaita Steam Installer" 292 | msgstr "Adwaita Steam Telepítő" 293 | 294 | #: src/ui/window.blp:14 295 | msgid "Apply" 296 | msgstr "Alkalmaz" 297 | 298 | #: src/ui/window.blp:40 299 | msgid "Theme Options" 300 | msgstr "Téma Opciók" 301 | 302 | #: src/ui/window.blp:42 303 | msgid "Color Theme" 304 | msgstr "Színtéma" 305 | 306 | #: src/ui/window.blp:43 307 | msgid "Changes the color theme of Steam's interface." 308 | msgstr "Módosítja a Steam felületének színtémáját." 309 | 310 | #: src/ui/window.blp:46 311 | msgid "No Rounded Corners" 312 | msgstr "Nem lekerekített sarkok" 313 | 314 | #: src/ui/window.blp:47 315 | msgid "Removes smooth rounded corners from the interface." 316 | msgstr "Eltávolítja a sima, lekerekített sarkokat a felületről." 317 | 318 | #: src/ui/window.blp:57 319 | msgid "Window Controls Options" 320 | msgstr "Ablakkezelő beállításai" 321 | 322 | #: src/ui/window.blp:59 323 | msgid "Controls Style" 324 | msgstr "Ablak stílusa" 325 | 326 | #: src/ui/window.blp:60 327 | msgid "Changes Minimize/Maximize/Close Button Theme" 328 | msgstr "A Kicsinyítés/Nagyítás/Bezárás gomb témáját módosítja" 329 | 330 | #: src/ui/window.blp:61 src/ui/window.blp:66 331 | msgid "Adwaita" 332 | msgstr "Adwaita" 333 | 334 | #: src/ui/window.blp:61 src/ui/window.blp:66 335 | msgid "MacOS" 336 | msgstr "MacOS" 337 | 338 | #: src/ui/window.blp:61 src/ui/window.blp:66 339 | msgid "Windows" 340 | msgstr "Windows" 341 | 342 | #: src/ui/window.blp:64 343 | msgid "Controls Button Layout" 344 | msgstr "Vezérlő Gombok Elrendezése" 345 | 346 | #: src/ui/window.blp:65 347 | msgid "Changes Minimize/Maximize/Close Button Layout and Position" 348 | msgstr "" 349 | "A Kicsinyítés/Nagyítás/Bezárás gombok elrendezésének és pozíciójának " 350 | "módosítása" 351 | 352 | #: src/ui/window.blp:66 353 | msgid "Auto" 354 | msgstr "Automata" 355 | 356 | #: src/ui/window.blp:66 357 | msgid "Elementary" 358 | msgstr "Elementary" 359 | 360 | #: src/ui/window.blp:71 361 | msgid "Library Options" 362 | msgstr "Könyvtár beállításai" 363 | 364 | #: src/ui/window.blp:74 365 | msgid "Library Sidebar" 366 | msgstr "Könyvtár Oldalsáv" 367 | 368 | #: src/ui/window.blp:75 369 | msgid "Changes display options for the Library's left sidebar." 370 | msgstr "Módosítja a könyvtár bal oldalsávjának megjelenítési beállításait." 371 | 372 | #: src/ui/window.blp:76 src/ui/window.blp:96 373 | msgid "Show" 374 | msgstr "Megjelenítés" 375 | 376 | #: src/ui/window.blp:76 src/ui/window.blp:96 377 | msgid "Hover Only" 378 | msgstr "Csak Egérmutatóra" 379 | 380 | #: src/ui/window.blp:80 381 | msgid "Hide Library What's New Shelf" 382 | msgstr "Újdonságok elrejtése" 383 | 384 | #: src/ui/window.blp:81 385 | msgid "Disables display of the new updates section on top of the Library." 386 | msgstr "" 387 | "Letiltja az új frissítések szekciójának megjelenítését a könyvtár tetején." 388 | 389 | #: src/ui/window.blp:91 390 | msgid "Login Options" 391 | msgstr "Bejelentkezési Beállítások" 392 | 393 | #: src/ui/window.blp:94 394 | msgid "QR Code Login" 395 | msgstr "QR Kódos Bejelentkezés" 396 | 397 | #: src/ui/window.blp:95 398 | msgid "Changes display options for the mobile QR code in the Login dialog." 399 | msgstr "Módosítja a QR kód megjelenítését a bejelentkezési ablakban." 400 | 401 | #: src/ui/window.blp:96 402 | msgid "Hide" 403 | msgstr "Elrejtés" 404 | 405 | #: src/ui/window.blp:108 406 | msgid "_Preferences" 407 | msgstr "_Beállítások" 408 | 409 | #: src/ui/window.blp:112 410 | msgid "_Uninstall" 411 | msgstr "_Eltávolítás" 412 | 413 | #: src/ui/window.blp:116 414 | msgid "_About AdwSteamGtk" 415 | msgstr "_Az AdwSteamGtk-ról" 416 | 417 | #: src/zip.py:28 418 | msgid "Extract: Failed to read ZIP archive" 419 | msgstr "Kibontás: Nem Sikerült Olvasni a ZIP fájlt" 420 | 421 | #: src/zip.py:30 422 | msgid "Extract: Bad ZIP File" 423 | msgstr "Kibontás: Hibás ZIP fájl" 424 | 425 | #: src/zip.py:32 426 | msgid "Extract: Failed to Extract ZIP File" 427 | msgstr "Kibontás: Nem sikerült Kibontani a ZIP fájlt" 428 | -------------------------------------------------------------------------------- /po/meson.build: -------------------------------------------------------------------------------- 1 | i18n.gettext('adwaita-steam-gtk', preset: 'glib') 2 | -------------------------------------------------------------------------------- /po/sr.po: -------------------------------------------------------------------------------- 1 | # AdwSteamGtk Pot 2 | # Copyright (C) 2024 Foldex 3 | # This file is distributed under the GNU GPLv3 license. 4 | # Foldex, 2024. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: AdwSteamGtk 0.6.11\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2024-11-09 19:43-0500\n" 11 | "PO-Revision-Date: 2025-02-15 08:01+0000\n" 12 | "Last-Translator: Enenra \n" 13 | "Language-Team: Serbian \n" 15 | "Language: sr\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " 20 | "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" 21 | "X-Generator: Weblate 5.10\n" 22 | 23 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:12 24 | #: data/io.github.Foldex.AdwSteamGtk.desktop.in:3 25 | msgid "AdwSteamGtk" 26 | msgstr "AdwSteamGtk" 27 | 28 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:13 29 | msgid "Give Steam the Adwaita treatment" 30 | msgstr "Dajte Steamu Adwaita tretman" 31 | 32 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:14 33 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:16 34 | msgid "Foldex" 35 | msgstr "Foldex" 36 | 37 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:25 38 | msgid "" 39 | "Make Steam look like it belongs on your computer. This app installs and " 40 | "updates the Adwaita-for-Steam skin for you. It's as simple as this:" 41 | msgstr "" 42 | "Napravi Steam da izgleda kao da pripada tvom kompjuteru. Ova aplikacija " 43 | "instalira i ažurira Adwaita-for-Steam skin za tebe. Ovoliko je jednostavno:" 44 | 45 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:30 46 | msgid "Configure the skin to your liking" 47 | msgstr "Konfiguriši skin po svom ukusu" 48 | 49 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:31 50 | msgid "Click the “Apply” button" 51 | msgstr "Klikni \"Primeni\" dugme" 52 | 53 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:32 54 | msgid "Restart Steam" 55 | msgstr "Restartuj Steam" 56 | 57 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:34 58 | msgid "" 59 | "On startup, the app will automatically download any updates to the skin and " 60 | "display a notification. Apply the skin again and restart Steam to take the " 61 | "changes into use." 62 | msgstr "" 63 | "Pri paljenju, ova aplikacija će automatski preuzeti sva ažuriranja za skin i " 64 | "prikazati notifikaciju. Ponovo primeni temu i restartuj Steam da bi primenio " 65 | "promene." 66 | 67 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:38 68 | msgid "" 69 | "In order to get rounded corners on Steam, you will need to use the “Rounded " 70 | "Window Corners” GNOME extension." 71 | msgstr "" 72 | "Kako bi dobio zaobljene uglove na Steam-u, moraš koristiti " 73 | "\"Rounded Window Corners\" GNOME ekstenziju." 74 | 75 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:244 76 | msgid "Main Window" 77 | msgstr "Glavni Prozor" 78 | 79 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:248 80 | msgid "Theme Preview" 81 | msgstr "Pregled Teme" 82 | 83 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:252 84 | msgid "Login Preview" 85 | msgstr "Pregled Prijavljivanja" 86 | 87 | #: data/io.github.Foldex.AdwSteamGtk.desktop.in:4 88 | msgid "A simple wrapper that installs Adwaita for Steam" 89 | msgstr "Jednostavan alat koji instalira Adwaitu za Steam" 90 | 91 | #: data/io.github.Foldex.AdwSteamGtk.desktop.in:10 92 | msgid "Steam;Adwaita;Skin;" 93 | msgstr "Steam;Adwaita;Skin;Koža;Tema;" 94 | 95 | #: src/cli.py:47 src/cli.py:138 96 | msgid "Up to Date." 97 | msgstr "Ažurirano." 98 | 99 | #: src/cli.py:105 100 | #, python-brace-format 101 | msgid "{key}: {cur_val} invalid value" 102 | msgstr "{key}: {cur_val} nevažeća vrednost" 103 | 104 | #: src/cli.py:111 105 | msgid "Could not get theme list. Falling back to last selected theme." 106 | msgstr "Nije moguće preuzeti listu tema. Vraćeno na poslednju odabranu temu." 107 | 108 | #: src/cli.py:117 109 | #, python-brace-format 110 | msgid "" 111 | "Could not find theme {colortheme} in theme list. Falling back to last " 112 | "selected theme." 113 | msgstr "" 114 | "Nije moguće pronaći temu {colortheme} u listi tema. Vraćeno na poslednju " 115 | "odabranu temu." 116 | 117 | #: src/cli.py:132 118 | msgid "New Release Available: " 119 | msgstr "Novo Izdanje Dostupno: " 120 | 121 | #: src/cli.py:135 122 | msgid "Update Check Failed: " 123 | msgstr "Provera Ažuriranja Neuspešna: " 124 | 125 | #: src/dl.py:30 126 | msgid "API: HTTP Error Code " 127 | msgstr "API: HTTP Greška " 128 | 129 | #: src/dl.py:32 130 | msgid "API: Error Parsing JSON" 131 | msgstr "API: Greška prilikom parsiranja JSON-a" 132 | 133 | #: src/dl.py:34 134 | msgid "API: Error retrieving release info" 135 | msgstr "API: Greška prilikom preuzimanja informacija o izdanju" 136 | 137 | #: src/dl.py:42 138 | msgid "API: JSON is missing required keys" 139 | msgstr "API: JSON nema potrebne ključeve" 140 | 141 | #: src/dl.py:48 142 | msgid "Release: HTTP Error Code " 143 | msgstr "Izdanje: HTTP greška " 144 | 145 | #: src/dl.py:50 146 | msgid "Release: Connection Reset" 147 | msgstr "Izdanje: Konekcija resetovana" 148 | 149 | #: src/dl.py:52 150 | msgid "Release: Permission Error" 151 | msgstr "Izdanje: Greška u dozvolama" 152 | 153 | #: src/dl.py:54 154 | msgid "Release: Connection Timeout" 155 | msgstr "Izdanje: Konekcija istekla" 156 | 157 | #: src/dl.py:56 158 | msgid "Release: Error Retrieving Zip" 159 | msgstr "Izdanje: Greška pri preuzimanju ZIP-a" 160 | 161 | #: src/install.py:132 162 | msgid "Install: Found no Valid Install Targets" 163 | msgstr "Instalacija: Nije pronadjen validan direktorijum za instalaciju" 164 | 165 | #: src/install.py:135 166 | msgid "Install: Installer Process Failed" 167 | msgstr "Instalacija: Proces instalacije nije uspeo" 168 | 169 | #: src/install.py:169 170 | msgid "Install: Failed to Find Valid '~/.steam/steam' Symlink" 171 | msgstr "Instalacija: Nije Pronađen Validan '~/.steam/steam' Symlink" 172 | 173 | #: src/main.py:138 174 | msgid "Upstream" 175 | msgstr "Autor" 176 | 177 | #: src/main.py:139 178 | msgid "Translators" 179 | msgstr "Prevodioci" 180 | 181 | #: src/main.py:148 182 | msgid "Uninstall Theme" 183 | msgstr "Deinstaliraj Temu" 184 | 185 | #: src/main.py:149 186 | msgid "This will reset all customizations made to the Steam client." 187 | msgstr "Ovo će resetovati sve promene primenjene Steam klijentu." 188 | 189 | #: src/main.py:151 190 | msgid "Cancel" 191 | msgstr "Odustani" 192 | 193 | #: src/main.py:152 194 | msgid "Uninstall" 195 | msgstr "Deinstaliraj" 196 | 197 | #: src/pages/window.py:193 198 | msgid "New Release Downloaded: " 199 | msgstr "Novo Izdanje Preuzeto: " 200 | 201 | #: src/pages/window.py:195 202 | msgid "Retry" 203 | msgstr "Pokušaj Ponovo" 204 | 205 | #: src/pages/window.py:228 206 | msgid "Theme Installed" 207 | msgstr "Tema Instalirana" 208 | 209 | #: src/style.py:40 210 | msgid "Get Themes: Failed to get themes" 211 | msgstr "Preuzimanje Tema: Preuzimanje tema nije uspelo" 212 | 213 | #: src/style.py:71 214 | #, python-brace-format 215 | msgid "Style: Could not find theme {theme_name}" 216 | msgstr "Stil: Tema nije pronađena {theme_name}" 217 | 218 | #: src/style.py:122 219 | #, python-brace-format 220 | msgid "Style: Theme {theme_name} seems to be invalid" 221 | msgstr "Stil: Tema {theme_name} nije validna" 222 | 223 | #: src/ui/prefs.blp:5 224 | msgid "Preferences" 225 | msgstr "Preference" 226 | 227 | #: src/ui/prefs.blp:12 228 | msgid "Autostart" 229 | msgstr "Automatsko Pokretanje" 230 | 231 | #: src/ui/prefs.blp:15 232 | msgid "Auto Update Check" 233 | msgstr "Automatska Provera Ažuriranja" 234 | 235 | #: src/ui/prefs.blp:16 236 | msgid "Checks and notifies for theme updates on user login." 237 | msgstr "Proverava i obaveštava o ažuriranju teme prilikom prijavljivanja." 238 | 239 | #: src/ui/prefs.blp:25 240 | msgid "Beta" 241 | msgstr "Beta" 242 | 243 | #: src/ui/prefs.blp:29 244 | msgid "Experimental Beta Support" 245 | msgstr "Eksperimentalna Beta Podrška" 246 | 247 | #: src/ui/prefs.blp:30 248 | msgid "Enables Beta Support (requires restart)" 249 | msgstr "Uključuje Beta Podršku (zahteva restart)" 250 | 251 | #: src/ui/prefs.blp:39 252 | msgid "Installer" 253 | msgstr "Instaler" 254 | 255 | #: src/ui/prefs.blp:42 256 | msgid "Custom CSS" 257 | msgstr "Prilagođeni CSS" 258 | 259 | #: src/ui/prefs.blp:43 260 | msgid "Include Custom CSS into Steam" 261 | msgstr "Dodaje Prilagođeni CSS u Steam" 262 | 263 | #: src/ui/prefs.blp:48 264 | msgid "Custom CSS Info" 265 | msgstr "Informacije o Prilagođenom CSS-u" 266 | 267 | #: src/ui/prefs.blp:53 268 | msgid "Edit Custom CSS File" 269 | msgstr "Izmeni Datoteku Prilagođenog CSS-a" 270 | 271 | #: src/ui/prefs.blp:63 272 | msgid "Interface" 273 | msgstr "Interfejs" 274 | 275 | #: src/ui/prefs.blp:66 276 | msgid "Preview Themes" 277 | msgstr "Pregled Tema" 278 | 279 | #: src/ui/prefs.blp:67 280 | msgid "Styles the interface to match the currently selected theme." 281 | msgstr "Stilizuje interfejs da odgovara trenutno odabranoj temi." 282 | 283 | #: src/ui/window.blp:7 284 | msgid "Adwaita Steam Installer" 285 | msgstr "Adwaita Steam Instaler" 286 | 287 | #: src/ui/window.blp:14 288 | msgid "Apply" 289 | msgstr "Primeni" 290 | 291 | #: src/ui/window.blp:40 292 | msgid "Theme Options" 293 | msgstr "Opcije Teme" 294 | 295 | #: src/ui/window.blp:42 296 | msgid "Color Theme" 297 | msgstr "Boja Teme" 298 | 299 | #: src/ui/window.blp:43 300 | msgid "Changes the color theme of Steam's interface." 301 | msgstr "Menja boju teme Steam interfejsa." 302 | 303 | #: src/ui/window.blp:46 304 | msgid "No Rounded Corners" 305 | msgstr "Bez Zaobljenih Uglova" 306 | 307 | #: src/ui/window.blp:47 308 | msgid "Removes smooth rounded corners from the interface." 309 | msgstr "Uklanja zaobljene uglove iz interfejsa." 310 | 311 | #: src/ui/window.blp:57 312 | msgid "Window Controls Options" 313 | msgstr "Opcije Kontrola Prozora" 314 | 315 | #: src/ui/window.blp:59 316 | msgid "Controls Style" 317 | msgstr "Stil Kontrola" 318 | 319 | #: src/ui/window.blp:60 320 | msgid "Changes Minimize/Maximize/Close Button Theme" 321 | msgstr "Menja Temu Minimizuj/Povećaj/Zatvori Dugmadi" 322 | 323 | #: src/ui/window.blp:61 src/ui/window.blp:66 324 | msgid "Adwaita" 325 | msgstr "Adwaita" 326 | 327 | #: src/ui/window.blp:61 src/ui/window.blp:66 328 | msgid "MacOS" 329 | msgstr "MacOS" 330 | 331 | #: src/ui/window.blp:61 src/ui/window.blp:66 332 | msgid "Windows" 333 | msgstr "Windows" 334 | 335 | #: src/ui/window.blp:64 336 | msgid "Controls Button Layout" 337 | msgstr "Kontroliše Raspored Dugmadi" 338 | 339 | #: src/ui/window.blp:65 340 | msgid "Changes Minimize/Maximize/Close Button Layout and Position" 341 | msgstr "Menja Raspored i Poziciju Minimizuj/Povećaj/Zatvori Dugmadi" 342 | 343 | #: src/ui/window.blp:66 344 | msgid "Auto" 345 | msgstr "Automatski" 346 | 347 | #: src/ui/window.blp:66 348 | msgid "Elementary" 349 | msgstr "Osnovno" 350 | 351 | #: src/ui/window.blp:71 352 | msgid "Library Options" 353 | msgstr "Opcije Biblioteke" 354 | 355 | #: src/ui/window.blp:74 356 | msgid "Library Sidebar" 357 | msgstr "Bočna Traka Biblioteke" 358 | 359 | #: src/ui/window.blp:75 360 | msgid "Changes display options for the Library's left sidebar." 361 | msgstr "Menja opcije prikaza za levu bočnu traku Biblioteke." 362 | 363 | #: src/ui/window.blp:76 src/ui/window.blp:96 364 | msgid "Show" 365 | msgstr "Prikaži" 366 | 367 | #: src/ui/window.blp:76 src/ui/window.blp:96 368 | msgid "Hover Only" 369 | msgstr "Samo pri prelazu kursora" 370 | 371 | #: src/ui/window.blp:80 372 | msgid "Hide Library What's New Shelf" 373 | msgstr "Sakrij \"šta je novo\" u Biblioteci" 374 | 375 | #: src/ui/window.blp:81 376 | msgid "Disables display of the new updates section on top of the Library." 377 | msgstr "Isključuje prikaz novih promena u Biblioteci." 378 | 379 | #: src/ui/window.blp:91 380 | msgid "Login Options" 381 | msgstr "Opcije Prijavljivanja" 382 | 383 | #: src/ui/window.blp:94 384 | msgid "QR Code Login" 385 | msgstr "Prijavljivanje QR Kodom" 386 | 387 | #: src/ui/window.blp:95 388 | msgid "Changes display options for the mobile QR code in the Login dialog." 389 | msgstr "Menja opcije prikaza mobilnog QR koda u dijalogu za prijavljivanje." 390 | 391 | #: src/ui/window.blp:96 392 | msgid "Hide" 393 | msgstr "Sakrij" 394 | 395 | #: src/ui/window.blp:108 396 | msgid "_Preferences" 397 | msgstr "_Preference" 398 | 399 | #: src/ui/window.blp:112 400 | msgid "_Uninstall" 401 | msgstr "_Izbriši" 402 | 403 | #: src/ui/window.blp:116 404 | msgid "_About AdwSteamGtk" 405 | msgstr "_O AdwSteamGtk" 406 | 407 | #: src/zip.py:28 408 | msgid "Extract: Failed to read ZIP archive" 409 | msgstr "Ekstraktovanje: Nije uspelo čitanje ZIP arhive" 410 | 411 | #: src/zip.py:30 412 | msgid "Extract: Bad ZIP File" 413 | msgstr "Ekstraktovanje: Loš ZIP Fajl" 414 | 415 | #: src/zip.py:32 416 | msgid "Extract: Failed to Extract ZIP File" 417 | msgstr "Ekstraktovanje: Ekstraktovanje ZIP File-a neuspešno" 418 | -------------------------------------------------------------------------------- /po/ta.po: -------------------------------------------------------------------------------- 1 | # AdwSteamGtk Pot 2 | # Copyright (C) 2024 Foldex 3 | # This file is distributed under the GNU GPLv3 license. 4 | # Foldex, 2024. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: AdwSteamGtk 0.6.11\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2024-11-09 19:43-0500\n" 11 | "PO-Revision-Date: 2024-11-29 23:00+0000\n" 12 | "Last-Translator: தமிழ்நேரம் \n" 13 | "Language-Team: Tamil \n" 15 | "Language: ta\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 20 | "X-Generator: Weblate 5.9-dev\n" 21 | 22 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:12 23 | #: data/io.github.Foldex.AdwSteamGtk.desktop.in:3 24 | msgid "AdwSteamGtk" 25 | msgstr "Adwsteamgtk" 26 | 27 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:13 28 | msgid "Give Steam the Adwaita treatment" 29 | msgstr "அட்வைதா சிகிச்சையை நீராவி கொடுங்கள்" 30 | 31 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:14 32 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:16 33 | msgid "Foldex" 34 | msgstr "மடிப்பு" 35 | 36 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:25 37 | msgid "" 38 | "Make Steam look like it belongs on your computer. This app installs and " 39 | "updates the Adwaita-for-Steam skin for you. It's as simple as this:" 40 | msgstr "" 41 | "நீராவி உங்கள் கணினியில் சொந்தமானது போல் தோற்றமளிக்கவும். இந்த பயன்பாடு உங்களுக்கான அட்வைட்டா-க்கு-நீராவி தோலை நிறுவி " 42 | "புதுப்பிக்கிறது. இது போன்ற எளிது:" 43 | 44 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:30 45 | msgid "Configure the skin to your liking" 46 | msgstr "உங்கள் விருப்பப்படி தோலை உள்ளமைக்கவும்" 47 | 48 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:31 49 | msgid "Click the “Apply” button" 50 | msgstr "“விண்ணப்பிக்கவும்” பொத்தானைக் சொடுக்கு செய்க" 51 | 52 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:32 53 | msgid "Restart Steam" 54 | msgstr "நீராவியை மறுதொடக்கம் செய்யுங்கள்" 55 | 56 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:34 57 | msgid "" 58 | "On startup, the app will automatically download any updates to the skin and " 59 | "display a notification. Apply the skin again and restart Steam to take the " 60 | "changes into use." 61 | msgstr "" 62 | "தொடக்கத்தில், பயன்பாடு தானாகவே சருமத்தில் எந்த புதுப்பிப்புகளையும் பதிவிறக்கம் செய்து அறிவிப்பைக் காண்பிக்கும். சருமத்தை " 63 | "மீண்டும் தடவி, மாற்றங்களை பயன்பாட்டுக்கு கொண்டு செல்ல நீராவியை மறுதொடக்கம் செய்யுங்கள்." 64 | 65 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:38 66 | msgid "" 67 | "In order to get rounded corners on Steam, you will need to use the “Rounded " 68 | "Window Corners” GNOME extension." 69 | msgstr "" 70 | "நீராவியில் வட்டமான மூலைகளைப் பெறுவதற்கு, நீங்கள் “வட்டமான சாளர மூலைகள்” க்னோம் நீட்டிப்பைப் பயன்படுத்த வேண்டும்." 71 | 72 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:244 73 | msgid "Main Window" 74 | msgstr "முதன்மை சாளரம்" 75 | 76 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:248 77 | msgid "Theme Preview" 78 | msgstr "கருப்பொருள் முன்னோட்டம்" 79 | 80 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:252 81 | msgid "Login Preview" 82 | msgstr "உள்நுழைவு முன்னோட்டம்" 83 | 84 | #: data/io.github.Foldex.AdwSteamGtk.desktop.in:4 85 | msgid "A simple wrapper that installs Adwaita for Steam" 86 | msgstr "நீராவிக்கு அட்வைதாவை நிறுவும் எளிய ரேப்பர்" 87 | 88 | #: data/io.github.Foldex.AdwSteamGtk.desktop.in:10 89 | msgid "Steam;Adwaita;Skin;" 90 | msgstr "நீராவி; ஆத்வைதா; தோல்;" 91 | 92 | #: src/cli.py:47 src/cli.py:138 93 | msgid "Up to Date." 94 | msgstr "புதுப்பித்த நிலையில்." 95 | 96 | #: src/cli.py:105 97 | #, python-brace-format 98 | msgid "{key}: {cur_val} invalid value" 99 | msgstr "{key}: {cur_val} தவறான மதிப்பு" 100 | 101 | #: src/cli.py:111 102 | msgid "Could not get theme list. Falling back to last selected theme." 103 | msgstr "" 104 | "கருப்பொருள் பட்டியலைப் பெற முடியவில்லை. கடைசியாக தேர்ந்தெடுக்கப்பட்ட கருப்பொருளுக்கு மீண்டும் விழுகிறது." 105 | 106 | #: src/cli.py:117 107 | #, python-brace-format 108 | msgid "" 109 | "Could not find theme {colortheme} in theme list. Falling back to last " 110 | "selected theme." 111 | msgstr "" 112 | "கருப்பொருள் பட்டியலில் கருப்பொருள் {colortheme} ஐ கண்டுபிடிக்க முடியவில்லை. கடைசியாகத் தேர்ந்தெடுக்கப்பட்ட " 113 | "கருப்பொருளுக்கு மீண்டும் விழுகிறது." 114 | 115 | #: src/cli.py:132 116 | msgid "New Release Available: " 117 | msgstr "புதிய வெளியீடு கிடைக்கிறது: " 118 | 119 | #: src/cli.py:135 120 | msgid "Update Check Failed: " 121 | msgstr "புதுப்பிப்பு சோதனை தோல்வியடைந்தது: " 122 | 123 | #: src/dl.py:30 124 | msgid "API: HTTP Error Code " 125 | msgstr "API: HTTP பிழைக் குறியீடு " 126 | 127 | #: src/dl.py:32 128 | msgid "API: Error Parsing JSON" 129 | msgstr "ஏபிஐ: பிழை பாகுபடுத்தும் சாதொபொகு" 130 | 131 | #: src/dl.py:34 132 | msgid "API: Error retrieving release info" 133 | msgstr "ஏபிஐ: வெளியீட்டு தகவலை மீட்டெடுப்பதில் பிழை" 134 | 135 | #: src/dl.py:42 136 | msgid "API: JSON is missing required keys" 137 | msgstr "ஏபிஐ: சாதொபொகு தேவையான விசைகளைக் காணவில்லை" 138 | 139 | #: src/dl.py:48 140 | msgid "Release: HTTP Error Code " 141 | msgstr "வெளியீடு: HTTP பிழைக் குறியீடு " 142 | 143 | #: src/dl.py:50 144 | msgid "Release: Connection Reset" 145 | msgstr "வெளியீடு: இணைப்பு மீட்டமைப்பு" 146 | 147 | #: src/dl.py:52 148 | msgid "Release: Permission Error" 149 | msgstr "வெளியீடு: இசைவு பிழை" 150 | 151 | #: src/dl.py:54 152 | msgid "Release: Connection Timeout" 153 | msgstr "வெளியீடு: இணைப்பு நேரம் முடிந்தது" 154 | 155 | #: src/dl.py:56 156 | msgid "Release: Error Retrieving Zip" 157 | msgstr "வெளியீடு: ZIP ஐ மீட்டெடுப்பதில் பிழை" 158 | 159 | #: src/install.py:132 160 | msgid "Install: Found no Valid Install Targets" 161 | msgstr "நிறுவு: சரியான நிறுவல் இலக்குகள் இல்லை" 162 | 163 | #: src/install.py:135 164 | msgid "Install: Installer Process Failed" 165 | msgstr "நிறுவு: நிறுவி செயல்முறை தோல்வியடைந்தது" 166 | 167 | #: src/install.py:169 168 | msgid "Install: Failed to Find Valid '~/.steam/steam' Symlink" 169 | msgstr "" 170 | "நிறுவு: செல்லுபடியாகும் '~/.ச்டீம்/நீராவி' சிம்லிங்கைக் கண்டுபிடிக்கத் தவறிவிட்டது" 171 | 172 | #: src/main.py:138 173 | msgid "Upstream" 174 | msgstr "மேலோடை" 175 | 176 | #: src/main.py:139 177 | msgid "Translators" 178 | msgstr "மொழிபெயர்ப்பாளர்கள்" 179 | 180 | #: src/main.py:148 181 | msgid "Uninstall Theme" 182 | msgstr "கருப்பொருள் நிறுவல் நீக்குதல்" 183 | 184 | #: src/main.py:149 185 | msgid "This will reset all customizations made to the Steam client." 186 | msgstr "" 187 | "இது நீராவி கிளையண்டிற்கு செய்யப்பட்ட அனைத்து தனிப்பயனாக்கங்களையும் மீட்டமைக்கும்." 188 | 189 | #: src/main.py:151 190 | msgid "Cancel" 191 | msgstr "ரத்துசெய்" 192 | 193 | #: src/main.py:152 194 | msgid "Uninstall" 195 | msgstr "நிறுவல் நீக்க" 196 | 197 | #: src/pages/window.py:193 198 | msgid "New Release Downloaded: " 199 | msgstr "புதிய வெளியீட்டு பதிவிறக்க: " 200 | 201 | #: src/pages/window.py:195 202 | msgid "Retry" 203 | msgstr "மீண்டும் முயற்சிக்கவும்" 204 | 205 | #: src/pages/window.py:228 206 | msgid "Theme Installed" 207 | msgstr "கருப்பொருள் நிறுவப்பட்டது" 208 | 209 | #: src/style.py:40 210 | msgid "Get Themes: Failed to get themes" 211 | msgstr "கருப்பொருள்களைப் பெறுங்கள்: கருப்பொருள்களைப் பெறுவதில் தோல்வி" 212 | 213 | #: src/style.py:71 214 | #, python-brace-format 215 | msgid "Style: Could not find theme {theme_name}" 216 | msgstr "நடை: கருப்பொருள் {theme_name} கண்டுபிடிக்க முடியவில்லை" 217 | 218 | #: src/style.py:122 219 | #, python-brace-format 220 | msgid "Style: Theme {theme_name} seems to be invalid" 221 | msgstr "நடை: கருப்பொருள் {theme_name} தவறானது என்று தெரிகிறது" 222 | 223 | #: src/ui/prefs.blp:5 224 | msgid "Preferences" 225 | msgstr "விருப்பத்தேர்வுகள்" 226 | 227 | #: src/ui/prefs.blp:12 228 | msgid "Autostart" 229 | msgstr "ஆட்டோச்டார்ட்" 230 | 231 | #: src/ui/prefs.blp:15 232 | msgid "Auto Update Check" 233 | msgstr "ஆட்டோ புதுப்பிப்பு சோதனை" 234 | 235 | #: src/ui/prefs.blp:16 236 | msgid "Checks and notifies for theme updates on user login." 237 | msgstr "" 238 | "பயனர் உள்நுழைவு குறித்த கருப்பொருள் புதுப்பிப்புகளை சரிபார்த்து அறிவிக்கிறது." 239 | 240 | #: src/ui/prefs.blp:25 241 | msgid "Beta" 242 | msgstr "பீட்டா" 243 | 244 | #: src/ui/prefs.blp:29 245 | msgid "Experimental Beta Support" 246 | msgstr "சோதனை பீட்டா உதவி" 247 | 248 | #: src/ui/prefs.blp:30 249 | msgid "Enables Beta Support (requires restart)" 250 | msgstr "பீட்டா ஆதரவை இயக்குகிறது (மறுதொடக்கம் தேவை)" 251 | 252 | #: src/ui/prefs.blp:39 253 | msgid "Installer" 254 | msgstr "நிறுவி" 255 | 256 | #: src/ui/prefs.blp:42 257 | msgid "Custom CSS" 258 | msgstr "தனிப்பயன் சிஎச்எச்" 259 | 260 | #: src/ui/prefs.blp:43 261 | msgid "Include Custom CSS into Steam" 262 | msgstr "தனிப்பயன் சிஎச்எச் ஐ நீராவியில் சேர்க்கவும்" 263 | 264 | #: src/ui/prefs.blp:48 265 | msgid "Custom CSS Info" 266 | msgstr "தனிப்பயன் சிஎச்எச் செய்தி" 267 | 268 | #: src/ui/prefs.blp:53 269 | msgid "Edit Custom CSS File" 270 | msgstr "தனிப்பயன் சிஎச்எச் கோப்பைத் திருத்தவும்" 271 | 272 | #: src/ui/prefs.blp:63 273 | msgid "Interface" 274 | msgstr "இடைமுகம்" 275 | 276 | #: src/ui/prefs.blp:66 277 | msgid "Preview Themes" 278 | msgstr "கருப்பொருள்கள் முன்னோட்டம்" 279 | 280 | #: src/ui/prefs.blp:67 281 | msgid "Styles the interface to match the currently selected theme." 282 | msgstr "" 283 | "தற்போது தேர்ந்தெடுக்கப்பட்ட கருப்பொருளுடன் பொருந்தக்கூடிய இடைமுகத்தை ச்டைல்கள்." 284 | 285 | #: src/ui/window.blp:7 286 | msgid "Adwaita Steam Installer" 287 | msgstr "அட்வைதா நீராவி நிறுவி" 288 | 289 | #: src/ui/window.blp:14 290 | msgid "Apply" 291 | msgstr "இடு" 292 | 293 | #: src/ui/window.blp:40 294 | msgid "Theme Options" 295 | msgstr "கருப்பொருள் விருப்பங்கள்" 296 | 297 | #: src/ui/window.blp:42 298 | msgid "Color Theme" 299 | msgstr "வண்ண கருப்பொருள்" 300 | 301 | #: src/ui/window.blp:43 302 | msgid "Changes the color theme of Steam's interface." 303 | msgstr "நீராவி இடைமுகத்தின் வண்ண கருப்பொருளை மாற்றவும்." 304 | 305 | #: src/ui/window.blp:46 306 | msgid "No Rounded Corners" 307 | msgstr "வட்டமான மூலைகள் இல்லை" 308 | 309 | #: src/ui/window.blp:47 310 | msgid "Removes smooth rounded corners from the interface." 311 | msgstr "இடைமுகத்திலிருந்து மென்மையான வட்டமான மூலைகளை நீக்குகிறது." 312 | 313 | #: src/ui/window.blp:57 314 | msgid "Window Controls Options" 315 | msgstr "சாளரம் விருப்பங்களை கட்டுப்படுத்துகிறது" 316 | 317 | #: src/ui/window.blp:59 318 | msgid "Controls Style" 319 | msgstr "பாணியைக் கட்டுப்படுத்துகிறது" 320 | 321 | #: src/ui/window.blp:60 322 | msgid "Changes Minimize/Maximize/Close Button Theme" 323 | msgstr "மாற்றங்கள் பொத்தான் கருப்பொருளை குறைக்க/அதிகரிக்க/மூடு" 324 | 325 | #: src/ui/window.blp:61 src/ui/window.blp:66 326 | msgid "Adwaita" 327 | msgstr "மீண்டும் கைப்பற்றுதல்" 328 | 329 | #: src/ui/window.blp:61 src/ui/window.blp:66 330 | msgid "MacOS" 331 | msgstr "மேகோச்" 332 | 333 | #: src/ui/window.blp:61 src/ui/window.blp:66 334 | msgid "Windows" 335 | msgstr "சாளரங்கள்" 336 | 337 | #: src/ui/window.blp:64 338 | msgid "Controls Button Layout" 339 | msgstr "பொத்தான் தளவமைப்பைக் கட்டுப்படுத்துகிறது" 340 | 341 | #: src/ui/window.blp:65 342 | msgid "Changes Minimize/Maximize/Close Button Layout and Position" 343 | msgstr "மாற்றங்கள் பொத்தான் தளவமைப்பு மற்றும் நிலையை குறைக்க/அதிகரிக்க/மூடு" 344 | 345 | #: src/ui/window.blp:66 346 | msgid "Auto" 347 | msgstr "தானி" 348 | 349 | #: src/ui/window.blp:66 350 | msgid "Elementary" 351 | msgstr "அடிப்படை" 352 | 353 | #: src/ui/window.blp:71 354 | msgid "Library Options" 355 | msgstr "நூலக விருப்பங்கள்" 356 | 357 | #: src/ui/window.blp:74 358 | msgid "Library Sidebar" 359 | msgstr "நூலக பக்கப்பட்டி" 360 | 361 | #: src/ui/window.blp:75 362 | msgid "Changes display options for the Library's left sidebar." 363 | msgstr "நூலகத்தின் இடது பக்கப்பட்டிக்கான காட்சி விருப்பங்களை மாற்றுகிறது." 364 | 365 | #: src/ui/window.blp:76 src/ui/window.blp:96 366 | msgid "Show" 367 | msgstr "காட்டு" 368 | 369 | #: src/ui/window.blp:76 src/ui/window.blp:96 370 | msgid "Hover Only" 371 | msgstr "வட்டமிட மட்டுமே" 372 | 373 | #: src/ui/window.blp:80 374 | msgid "Hide Library What's New Shelf" 375 | msgstr "புதிய அலமாரியை நூலகத்தை மறைக்கவும்" 376 | 377 | #: src/ui/window.blp:81 378 | msgid "Disables display of the new updates section on top of the Library." 379 | msgstr "நூலகத்தின் மேல் புதிய புதுப்பிப்புகள் பிரிவின் காட்சியை முடக்குகிறது." 380 | 381 | #: src/ui/window.blp:91 382 | msgid "Login Options" 383 | msgstr "உள்நுழைவு விருப்பங்கள்" 384 | 385 | #: src/ui/window.blp:94 386 | msgid "QR Code Login" 387 | msgstr "QR குறியீடு உள்நுழைவு" 388 | 389 | #: src/ui/window.blp:95 390 | msgid "Changes display options for the mobile QR code in the Login dialog." 391 | msgstr "" 392 | "உள்நுழைவு உரையாடலில் மொபைல் QR குறியீட்டிற்கான காட்சி விருப்பங்களை மாற்றுகிறது." 393 | 394 | #: src/ui/window.blp:96 395 | msgid "Hide" 396 | msgstr "மறை" 397 | 398 | #: src/ui/window.blp:108 399 | msgid "_Preferences" 400 | msgstr "_ முனைகள்" 401 | 402 | #: src/ui/window.blp:112 403 | msgid "_Uninstall" 404 | msgstr "நிறுவல்நீக்கு(_U)" 405 | 406 | #: src/ui/window.blp:116 407 | msgid "_About AdwSteamGtk" 408 | msgstr "_About adwsteamgtk" 409 | 410 | #: src/zip.py:28 411 | msgid "Extract: Failed to read ZIP archive" 412 | msgstr "பிரித்தெடுத்தல்: சிப் காப்பகத்தைப் படிக்கத் தவறிவிட்டது" 413 | 414 | #: src/zip.py:30 415 | msgid "Extract: Bad ZIP File" 416 | msgstr "பிரித்தெடுத்தல்: மோசமான சிப் கோப்பு" 417 | 418 | #: src/zip.py:32 419 | msgid "Extract: Failed to Extract ZIP File" 420 | msgstr "பிரித்தெடுத்தல்: சிப் கோப்பைப் பிரித்தெடுப்பதில் தோல்வி" 421 | -------------------------------------------------------------------------------- /po/update_pot.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | PO_DIR=$(dirname "$(realpath "$0")") 3 | PROJ_DIR="$PO_DIR/.." 4 | OUT_FILE="$PO_DIR/AdwSteamGtk.pot" 5 | MESON_FILE="$PROJ_DIR/meson.build" 6 | 7 | PKG_VER=$(grep -oP "(?<=version: \')[0-9]+\.[0-9]+\.[0-9]+" "$MESON_FILE") 8 | 9 | if [[ ! $PKG_VER =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then 10 | echo "Invalid PKG VERSION: $PKG_VER" 11 | exit 1 12 | else 13 | echo "PKG VERSION: $PKG_VER" 14 | fi 15 | 16 | cd "$PROJ_DIR" || exit 17 | 18 | xgettext \ 19 | -f "$PO_DIR"/POTFILES \ 20 | -o "$OUT_FILE" \ 21 | --add-comments=Translators \ 22 | --from-code=UTF-8 \ 23 | --keyword=C_:1c,2 \ 24 | --keyword=_ \ 25 | --package-name="AdwSteamGtk" \ 26 | --package-version="$PKG_VER" 27 | 28 | sed -i \ 29 | -e "s/FIRST AUTHOR , YEAR./Foldex, $(date +%Y)./" \ 30 | -e "s/Language: /Language: EDIT_LANG_HERE/" \ 31 | -e "s/SOME DESCRIPTIVE TITLE./AdwSteamGtk Pot/" \ 32 | -e "s/YEAR THE PACKAGE'S COPYRIGHT HOLDER/$(date +%Y) Foldex/" \ 33 | -e "s/charset=CHARSET/charset=UTF-8/" \ 34 | -e "s/same license as the AdwSteamGtk package./GNU GPLv3 license./" \ 35 | "$OUT_FILE" 36 | -------------------------------------------------------------------------------- /po/zh_Hans.po: -------------------------------------------------------------------------------- 1 | # AdwSteamGtk Pot 2 | # Copyright (C) 2023 Foldex 3 | # This file is distributed under the GNU GPLv3 license. 4 | # Foldex, 2023. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: AdwSteamGtk 0.6.9\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2023-09-16 13:37-0400\n" 11 | "PO-Revision-Date: 2024-03-19 11:01+0000\n" 12 | "Last-Translator: 复予 \n" 13 | "Language-Team: Chinese (Simplified) \n" 15 | "Language: zh_Hans\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=1; plural=0;\n" 20 | "X-Generator: Weblate 5.5-dev\n" 21 | 22 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:12 23 | #: data/io.github.Foldex.AdwSteamGtk.desktop.in:3 24 | msgid "AdwSteamGtk" 25 | msgstr "AdwSteamGtk" 26 | 27 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:13 28 | msgid "Give Steam the Adwaita treatment" 29 | msgstr "给予 Steam 以 Adwaita 级待遇" 30 | 31 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:14 32 | msgid "Foldex" 33 | msgstr "Foldex" 34 | 35 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:20 36 | msgid "" 37 | "Make Steam look like it belongs on your computer. This app installs and " 38 | "updates the Adwaita-for-Steam skin for you. It's as simple as this:" 39 | msgstr "让 Steam 看起来属于您的电脑。这款应用会为您安装并更新 Adwaita-for-Steam " 40 | "皮肤。就像这样一般简单:" 41 | 42 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:25 43 | msgid "Configure the skin to your liking" 44 | msgstr "按您的喜好配置皮肤" 45 | 46 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:26 47 | msgid "Click the “Apply” button" 48 | msgstr "点击“确定”按钮" 49 | 50 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:27 51 | msgid "Restart Steam" 52 | msgstr "重启 Steam" 53 | 54 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:29 55 | msgid "" 56 | "On startup, the app will automatically download any updates to the skin and " 57 | "display a notification. Apply the skin again and restart Steam to take the " 58 | "changes into use." 59 | msgstr "此应用在启动时会自动下载皮肤的所有更新并显示通知。再次应用皮肤并重启 Steam " 60 | "以使更改生效。" 61 | 62 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:33 63 | msgid "" 64 | "In order to get rounded corners on Steam, you will need to use the “Rounded " 65 | "Window Corners” GNOME extension." 66 | msgstr "如果要让 Steam 显示圆角,您需要使用“窗口圆角” GNOME 扩展。" 67 | 68 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:46 69 | msgid "Added Czech Translation" 70 | msgstr "添加捷克语翻译" 71 | 72 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:47 73 | msgid "Added Spanish Translation" 74 | msgstr "添加西班牙语翻译" 75 | 76 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:48 77 | msgid "Updated French Translation" 78 | msgstr "更新法语翻译" 79 | 80 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:49 81 | msgid "New Application Icon" 82 | msgstr "新的应用图标" 83 | 84 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:50 85 | msgid "Updated Libportal" 86 | msgstr "更新 Libportal" 87 | 88 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:57 89 | msgid "Fixed issue with Uninstall" 90 | msgstr "修复卸载问题" 91 | 92 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:64 93 | msgid "Removed Deprecated Font Install Preference" 94 | msgstr "移除已启用的字体安装设置" 95 | 96 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:71 97 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:95 98 | msgid "Fixed Appdata" 99 | msgstr "修复 Appdata" 100 | 101 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:72 102 | msgid "Removed some options that no longer exist upstream" 103 | msgstr "移除上游版本不再存在的选项" 104 | 105 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:79 106 | msgid "Updated Russian Translation" 107 | msgstr "更新俄语翻译" 108 | 109 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:80 110 | msgid "Updated to new upstream install method" 111 | msgstr "更新到上游版本的新安装方法" 112 | 113 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:87 114 | msgid "Updated German and Ukrainian Translations" 115 | msgstr "更新德语与乌克兰语翻译" 116 | 117 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:88 118 | msgid "Added Portuguese Translation" 119 | msgstr "添加葡萄牙语翻译" 120 | 121 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:102 122 | msgid "Beta Toggle removed as new UI support landed upstream" 123 | msgstr "由于新界面支持上游版本,移除测试版开关" 124 | 125 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:103 126 | msgid "" 127 | "Added option to use Steam's Original Top Bar instead of our Adwaita styled " 128 | "one" 129 | msgstr "添加设置,使用 Steam 原有顶栏而非使用我们的 Adwaita 样式顶栏" 130 | 131 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:104 132 | msgid "Initial German Translation" 133 | msgstr "初始化德语翻译" 134 | 135 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:105 136 | msgid "Added hover tooltips to installer options" 137 | msgstr "向安装程序设置添加悬停提示" 138 | 139 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:112 140 | msgid "Added French, Ukrainian, and Russian Translations" 141 | msgstr "添加法语、乌克兰语与俄语翻译" 142 | 143 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:119 144 | msgid "New UI" 145 | msgstr "新用户界面" 146 | 147 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:120 148 | msgid "Added Experimental Beta Client Support (with new options)" 149 | msgstr "添加实验性测试客户端支持(带新设置)" 150 | 151 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:121 152 | msgid "Added Custom CSS Option" 153 | msgstr "添加自定义 CSS 设置" 154 | 155 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:128 156 | msgid "Added Autostart Update Check preference toggle" 157 | msgstr "添加自启动时检查更新的首选项开关" 158 | 159 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:129 160 | msgid "Added Font Install preference toggle" 161 | msgstr "添加字体安装首选项开关" 162 | 163 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:136 164 | msgid "Fixed issue with theme preview on light mode" 165 | msgstr "修复浅色模式下的主题预览问题" 166 | 167 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:137 168 | msgid "Added preferences toggle for theme preview" 169 | msgstr "添加主题预览首选项开关" 170 | 171 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:144 172 | msgid "Colortheme is now previewed in app" 173 | msgstr "颜色主题现在在应用内预览" 174 | 175 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:145 176 | msgid "Added -u/-i arguments to install skin via commandline" 177 | msgstr "添加 -u/-i 参数以通过命令行安装皮肤" 178 | 179 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:146 180 | msgid "Added -o argument to override install options for -i/-u" 181 | msgstr "添加 -o 参数以覆盖 -i/-u 安装设置" 182 | 183 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:153 184 | msgid "Added Library Sidebar Options" 185 | msgstr "添加游戏库侧边栏设置" 186 | 187 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:160 188 | msgid "Updated to Gnome 44 Runtime" 189 | msgstr "更新到 Gnome 44 运行时" 190 | 191 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:161 192 | msgid "Changed Default Web Theme to Full Variant" 193 | msgstr "将默认网页主题更改为 Full Varient" 194 | 195 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:168 196 | msgid "Fixed Installer CLI Output" 197 | msgstr "修复安装程序命令行输出" 198 | 199 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:175 200 | msgid "Added Color Theme Support" 201 | msgstr "添加颜色主题支持" 202 | 203 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:176 204 | msgid "Added -c argument to notify about updates" 205 | msgstr "添加 -c 参数以通知更新" 206 | 207 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:183 208 | msgid "Last chosen settings are now loaded at startup" 209 | msgstr "上次选择的设置现在在启动时加载" 210 | 211 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:184 212 | msgid "Changed display of install button if the theme is already installed" 213 | msgstr "如果主题已安装,则改变安装按钮显示" 214 | 215 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:191 216 | msgid "Added None to Window Control Options" 217 | msgstr "向窗口控制器设置中添加“无”" 218 | 219 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:198 220 | msgid "Added QR Login Options" 221 | msgstr "添加二维码登录设置" 222 | 223 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:199 224 | msgid "Improved Missing Dir Messages" 225 | msgstr "改善缺失目录消息" 226 | 227 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:206 228 | msgid "Updated to Gnome 43 SDK" 229 | msgstr "更新到 Gnome 43 SDK" 230 | 231 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:207 232 | msgid "Implemented AdwAboutWindow" 233 | msgstr "实现 AdwAboutWindow" 234 | 235 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:208 236 | msgid "Updated Filesystem Permissions" 237 | msgstr "更新文件系统权限" 238 | 239 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:209 240 | msgid "Fixed Quit Shortcut" 241 | msgstr "修复退出快捷键" 242 | 243 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:210 244 | msgid "Fixed Current Check" 245 | msgstr "修复当前版本检查" 246 | 247 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:220 248 | msgid "Main Window" 249 | msgstr "主窗口" 250 | 251 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:224 252 | msgid "Theme Preview" 253 | msgstr "主题预览" 254 | 255 | #: data/io.github.Foldex.AdwSteamGtk.appdata.xml.in:228 256 | msgid "Login Preview" 257 | msgstr "登录预览" 258 | 259 | #: data/io.github.Foldex.AdwSteamGtk.desktop.in:4 260 | msgid "A simple wrapper that installs Adwaita for Steam" 261 | msgstr "一款安装 Adwaita for Steam 的简单包装应用" 262 | 263 | #: data/io.github.Foldex.AdwSteamGtk.desktop.in:10 264 | msgid "Steam;Adwaita;Skin;" 265 | msgstr "Steam;Adwaita;皮肤;" 266 | 267 | #: src/cli.py:47 src/cli.py:138 268 | msgid "Up to Date." 269 | msgstr "已是最新。" 270 | 271 | #: src/cli.py:105 272 | #, python-brace-format 273 | msgid "{key}: {cur_val} invalid value" 274 | msgstr "{key}: {cur_val} 数值无效" 275 | 276 | #: src/cli.py:111 277 | msgid "Could not get theme list. Falling back to last selected theme." 278 | msgstr "无法获取主题列表。正回退到上次选择的主题。" 279 | 280 | #: src/cli.py:117 281 | #, python-brace-format 282 | msgid "" 283 | "Could not find theme {colortheme} in theme list. Falling back to last " 284 | "selected theme." 285 | msgstr "无法在主题列表中找到主题 {colortheme}。正回退到上次选择的主题。" 286 | 287 | #: src/cli.py:132 288 | msgid "New Release Available: " 289 | msgstr "新版本可用: " 290 | 291 | #: src/cli.py:135 292 | msgid "Update Check Failed: " 293 | msgstr "更新检查失败: " 294 | 295 | #: src/dl.py:30 296 | msgid "API: HTTP Error Code " 297 | msgstr "API: HTTP 错误代码 " 298 | 299 | #: src/dl.py:32 300 | msgid "API: Error Parsing JSON" 301 | msgstr "API: 解析 JSON 时出错" 302 | 303 | #: src/dl.py:34 304 | msgid "API: Error retrieving release info" 305 | msgstr "API: 获取版本信息时出错" 306 | 307 | #: src/dl.py:42 308 | msgid "API: JSON is missing required keys" 309 | msgstr "API: JSON 缺失必需的键" 310 | 311 | #: src/dl.py:48 312 | msgid "Release: HTTP Error Code " 313 | msgstr "发行: HTTP 错误代码 " 314 | 315 | #: src/dl.py:50 316 | msgid "Release: Connection Reset" 317 | msgstr "发行: 连接被重置" 318 | 319 | #: src/dl.py:52 320 | msgid "Release: Permission Error" 321 | msgstr "发行: 权限错误" 322 | 323 | #: src/dl.py:54 324 | msgid "Release: Connection Timeout" 325 | msgstr "发行: 连接超时" 326 | 327 | #: src/dl.py:56 328 | msgid "Release: Error Retrieving Zip" 329 | msgstr "发行: 接收 ZIP 时出错" 330 | 331 | #: src/install.py:117 332 | msgid "Install: Found no Valid Install Targets" 333 | msgstr "安装: 找不到有效安装目标" 334 | 335 | #: src/install.py:120 336 | msgid "Install: Installer Process Failed" 337 | msgstr "安装: 安装进程失败" 338 | 339 | #: src/install.py:135 340 | msgid "Install: Failed to Find Valid '~/.steam/steam' Symlink" 341 | msgstr "安装: 未能找到有效的 '~/.steam/steam' 符号链接" 342 | 343 | #: src/main.py:138 344 | msgid "Upstream" 345 | msgstr "上游" 346 | 347 | #: src/main.py:139 348 | msgid "Translators" 349 | msgstr "翻译人员" 350 | 351 | #: src/main.py:148 352 | msgid "Uninstall Theme" 353 | msgstr "卸载主题" 354 | 355 | #: src/main.py:149 356 | msgid "This will reset all customizations made to the Steam client." 357 | msgstr "这将重置对 Steam 客户端做出的更改。" 358 | 359 | #: src/main.py:151 360 | msgid "Cancel" 361 | msgstr "取消" 362 | 363 | #: src/main.py:152 364 | msgid "Uninstall" 365 | msgstr "卸载" 366 | 367 | #: src/pages/window.py:193 368 | msgid "New Release Downloaded: " 369 | msgstr "已下载新版本: " 370 | 371 | #: src/pages/window.py:195 372 | msgid "Retry" 373 | msgstr "重试" 374 | 375 | #: src/pages/window.py:228 376 | msgid "Theme Installed" 377 | msgstr "主题已安装" 378 | 379 | #: src/style.py:40 380 | msgid "Get Themes: Failed to get themes" 381 | msgstr "获取主题: 无法获取主题" 382 | 383 | #: src/style.py:71 384 | #, python-brace-format 385 | msgid "Style: Could not find theme {theme_name}" 386 | msgstr "样式: 无法找到主题 {theme_name}" 387 | 388 | #: src/ui/prefs.blp:5 389 | msgid "Preferences" 390 | msgstr "首选项" 391 | 392 | #: src/ui/prefs.blp:12 393 | msgid "Autostart" 394 | msgstr "自启动" 395 | 396 | #: src/ui/prefs.blp:15 397 | msgid "Auto Update Check" 398 | msgstr "自动检查更新" 399 | 400 | #: src/ui/prefs.blp:16 401 | msgid "Checks and notifies for theme updates on user login." 402 | msgstr "在用户登录时检查并通知主题更新。" 403 | 404 | #: src/ui/prefs.blp:25 405 | msgid "Beta" 406 | msgstr "测试版" 407 | 408 | #: src/ui/prefs.blp:29 409 | msgid "Experimental Beta Support" 410 | msgstr "实验性测试功能支持" 411 | 412 | #: src/ui/prefs.blp:30 413 | msgid "Enables Beta Support (requires restart)" 414 | msgstr "启用测试版支持(需要重新启动)" 415 | 416 | #: src/ui/prefs.blp:39 417 | msgid "Installer" 418 | msgstr "安装程序" 419 | 420 | #: src/ui/prefs.blp:42 421 | msgid "Custom CSS" 422 | msgstr "自定义 CSS" 423 | 424 | #: src/ui/prefs.blp:43 425 | msgid "Include Custom CSS into Steam" 426 | msgstr "在 Steam 中包括自定义 CSS" 427 | 428 | #: src/ui/prefs.blp:48 429 | msgid "Custom CSS Info" 430 | msgstr "自定义 CSS 信息" 431 | 432 | #: src/ui/prefs.blp:53 433 | msgid "Edit Custom CSS File" 434 | msgstr "编辑自定义 CSS 文件" 435 | 436 | #: src/ui/prefs.blp:63 437 | msgid "Interface" 438 | msgstr "界面" 439 | 440 | #: src/ui/prefs.blp:66 441 | msgid "Preview Themes" 442 | msgstr "预览主题" 443 | 444 | #: src/ui/prefs.blp:67 445 | msgid "Styles the interface to match the currently selected theme." 446 | msgstr "使界面样式与当前所选主题匹配。" 447 | 448 | #: src/ui/window.blp:7 449 | msgid "Adwaita Steam Installer" 450 | msgstr "Adwaita Steam 安装程序" 451 | 452 | #: src/ui/window.blp:14 453 | msgid "Apply" 454 | msgstr "应用" 455 | 456 | #: src/ui/window.blp:40 457 | msgid "Theme Options" 458 | msgstr "主题设置" 459 | 460 | #: src/ui/window.blp:42 461 | msgid "Color Theme" 462 | msgstr "颜色主题" 463 | 464 | #: src/ui/window.blp:43 465 | msgid "Changes the color theme of Steam's interface." 466 | msgstr "改变 Steam 界面的颜色主题。" 467 | 468 | #: src/ui/window.blp:46 469 | msgid "No Rounded Corners" 470 | msgstr "去除圆角" 471 | 472 | #: src/ui/window.blp:47 473 | msgid "Removes smooth rounded corners from the interface." 474 | msgstr "移除界面中的光滑圆角。" 475 | 476 | #: src/ui/window.blp:57 477 | msgid "Window Controls Options" 478 | msgstr "窗口控制器设置" 479 | 480 | #: src/ui/window.blp:59 481 | msgid "Window Controls" 482 | msgstr "窗口控制器" 483 | 484 | #: src/ui/window.blp:60 485 | msgid "" 486 | "Changes Window Control position and type. Minimize and Maximize buttons are " 487 | "hidden by default. Use All to show them." 488 | msgstr "改变窗口控制器的位置与类型。最小化、最大化按钮默认隐藏。选择“全部”以显示它们" 489 | "。" 490 | 491 | #: src/ui/window.blp:61 src/ui/window.blp:66 492 | msgid "Default" 493 | msgstr "默认" 494 | 495 | #: src/ui/window.blp:61 496 | msgid "Right-All" 497 | msgstr "右侧,全部" 498 | 499 | #: src/ui/window.blp:61 500 | msgid "Left" 501 | msgstr "左侧" 502 | 503 | #: src/ui/window.blp:61 504 | msgid "Left-All" 505 | msgstr "左侧,全部" 506 | 507 | #: src/ui/window.blp:61 508 | msgid "None" 509 | msgstr "无" 510 | 511 | #: src/ui/window.blp:64 512 | msgid "Controls Style" 513 | msgstr "控制器样式" 514 | 515 | #: src/ui/window.blp:65 516 | msgid "" 517 | "Changes Window Control visual style. Default is the traditional style, while " 518 | "Dots are Mac OS style colored circles." 519 | msgstr "改变窗口控制器的视觉样式。默认是传统样式,而“点”样式是 Mac OS " 520 | "风格的彩色圆圈。" 521 | 522 | #: src/ui/window.blp:66 523 | msgid "Dots" 524 | msgstr "点" 525 | 526 | #: src/ui/window.blp:71 527 | msgid "Library Options" 528 | msgstr "游戏库选项" 529 | 530 | #: src/ui/window.blp:74 531 | msgid "Library Sidebar" 532 | msgstr "游戏库侧栏" 533 | 534 | #: src/ui/window.blp:75 535 | msgid "Changes display options for the Library's left sidebar." 536 | msgstr "改变游戏库左侧栏的显示设置。" 537 | 538 | #: src/ui/window.blp:76 src/ui/window.blp:96 539 | msgid "Show" 540 | msgstr "显示" 541 | 542 | #: src/ui/window.blp:76 src/ui/window.blp:96 543 | msgid "Hover Only" 544 | msgstr "仅悬停时" 545 | 546 | #: src/ui/window.blp:80 547 | msgid "Hide Library What's New Shelf" 548 | msgstr "隐藏游戏库的“新游戏”托架" 549 | 550 | #: src/ui/window.blp:81 551 | msgid "Disables display of the new updates section on top of the Library." 552 | msgstr "禁用游戏库顶部新更新游戏的显示。" 553 | 554 | #: src/ui/window.blp:91 555 | msgid "Login Options" 556 | msgstr "登录设置" 557 | 558 | #: src/ui/window.blp:94 559 | msgid "QR Code Login" 560 | msgstr "二维码登录" 561 | 562 | #: src/ui/window.blp:95 563 | msgid "Changes display options for the mobile QR code in the Login dialog." 564 | msgstr "改变“登录”对话框中移动二维码的显示设置。" 565 | 566 | #: src/ui/window.blp:96 567 | msgid "Hide" 568 | msgstr "隐藏" 569 | 570 | #: src/ui/window.blp:108 571 | msgid "_Preferences" 572 | msgstr "首选项 (_P)" 573 | 574 | #: src/ui/window.blp:112 575 | msgid "_Uninstall" 576 | msgstr "卸载 (_U)" 577 | 578 | #: src/ui/window.blp:116 579 | msgid "_About AdwSteamGtk" 580 | msgstr "关于 _AdwSteamGtk" 581 | 582 | #: src/zip.py:28 583 | msgid "Extract: Failed to read ZIP archive" 584 | msgstr "解压: 无法读取 ZIP 压缩文件" 585 | 586 | #: src/zip.py:30 587 | msgid "Extract: Bad ZIP File" 588 | msgstr "解压: ZIP 文件损坏" 589 | 590 | #: src/zip.py:32 591 | msgid "Extract: Failed to Extract ZIP File" 592 | msgstr "解压: ZIP 文件解压失败" 593 | -------------------------------------------------------------------------------- /src/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Foldex/AdwSteamGtk/b3c5ebe02f2a489357312f08d5a3bb45c8d13f4d/src/__init__.py -------------------------------------------------------------------------------- /src/adwaita-steam-gtk.in: -------------------------------------------------------------------------------- 1 | #!@PYTHON@ 2 | 3 | # adwaita-steam-gtk.in 4 | # 5 | # Copyright 2022 Foldex 6 | # 7 | # This program is free software: you can redistribute it and/or modify 8 | # it under the terms of the GNU General Public License as published by 9 | # the Free Software Foundation, either version 3 of the License, or 10 | # (at your option) any later version. 11 | # 12 | # This program is distributed in the hope that it will be useful, 13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | # GNU General Public License for more details. 16 | # 17 | # You should have received a copy of the GNU General Public License 18 | # along with this program. If not, see . 19 | 20 | import os 21 | import sys 22 | import signal 23 | import locale 24 | import gettext 25 | 26 | VERSION = '@VERSION@' 27 | pkgdatadir = '@pkgdatadir@' 28 | localedir = '@localedir@' 29 | 30 | sys.path.insert(1, pkgdatadir) 31 | signal.signal(signal.SIGINT, signal.SIG_DFL) 32 | locale.bindtextdomain('adwaita-steam-gtk', localedir) 33 | locale.textdomain('adwaita-steam-gtk') 34 | gettext.install('adwaita-steam-gtk', localedir) 35 | 36 | if __name__ == '__main__': 37 | import gi 38 | 39 | from gi.repository import Gio 40 | resource = Gio.Resource.load(os.path.join(pkgdatadir, 'adwaita-steam-gtk.gresource')) 41 | resource._register() 42 | 43 | from adwaita_steam_gtk import main 44 | sys.exit(main.main(VERSION)) 45 | -------------------------------------------------------------------------------- /src/adwaita_steam_gtk.gresource.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ui/window.ui 5 | 6 | 7 | ui/prefs.ui 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/cli.py: -------------------------------------------------------------------------------- 1 | # dl.py 2 | # 3 | # Copyright 2022 Foldex 4 | # 5 | # This program is free software: you can redistribute it and/or modify 6 | # it under the terms of the GNU General Public License as published by 7 | # the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # This program is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU General Public License 16 | # along with this program. If not, see . 17 | 18 | from gi.repository import Gio 19 | from enum import Enum 20 | 21 | from . import info 22 | from . import install 23 | from . import style 24 | from . import update 25 | 26 | class result(Enum): 27 | CONTINUE = 0 28 | EXIT = 1 29 | NOTIFY_AND_EXIT = 2 30 | PRINT_AND_EXIT = 3 31 | FAIL = 4 32 | 33 | def update_install(cli_args, beta_support=False): 34 | (code, msg) = update.check(False, beta_support) 35 | force_install = cli_args.get("install", False) 36 | option_string = cli_args.get("options") 37 | 38 | if code == update.ExitCode.FAIL: 39 | code = result.PRINT_AND_EXIT 40 | t = msg 41 | elif code == update.ExitCode.SUCCESS or force_install: 42 | options = get_options(option_string) 43 | (code, msg) = install.run(options, beta_support) 44 | t = msg 45 | elif code == update.ExitCode.CURRENT: 46 | code = result.PRINT_AND_EXIT 47 | t = _("Up to Date.") 48 | else: 49 | code = result.EXIT 50 | t = None 51 | return (code, t) 52 | 53 | def get_options(option_string): 54 | settings = Gio.Settings.new(info.APP_ID) 55 | options = { 56 | "custom_css": settings.get_boolean('prefs-install-custom-css'), 57 | 58 | "color_theme": settings.get_string('color-theme-options'), 59 | "rounded_corners": not settings.get_boolean('no-rounded-corners-switch'), 60 | 61 | "win_controls": settings.get_string('window-controls-options'), 62 | "win_controls_layout": settings.get_string('window-controls-layout-options'), 63 | 64 | "library_sidebar": settings.get_string('library-sidebar-options'), 65 | "library_whats_new": not settings.get_boolean('hide-whats-new-switch'), 66 | 67 | "login_qr": settings.get_string('login-qr-options'), 68 | } 69 | 70 | if option_string is None: 71 | return options 72 | 73 | valid_options = { 74 | "custom_css": (True, False), 75 | 76 | "rounded_corners": (True, False), 77 | 78 | "win_controls": ("Adwaita", "MacOS", "Windows"), 79 | "win_controls_layout": ("Auto", "Adwaita", "Elementary", "MacOS", "Windows", "None"), 80 | 81 | "library_sidebar": ("Show", "Hover Only"), 82 | "library_whats_new": (True, False), 83 | 84 | "login_qr": ("Show", "Hover Only", "Hide"), 85 | } 86 | 87 | if ":" not in option_string: 88 | return options 89 | 90 | user_options = option_string_dict(option_string) 91 | 92 | # override defaults/last selected options 93 | for key,val in user_options.items(): 94 | cur_val = val.title().replace("_", " ") 95 | 96 | # map boolean values 97 | if cur_val in ("True", "Yes", "On", "T", "Y"): 98 | cur_val = True 99 | elif cur_val in ("False", "No", "Off", "F", "N"): 100 | cur_val = False 101 | 102 | if cur_val in valid_options.get(key, ()): 103 | options[key] = cur_val 104 | elif key != "color_theme": 105 | print(_("{key}: {cur_val} invalid value").format(key=key, cur_val=cur_val)) 106 | 107 | 108 | themes_list, msg = style.get_color_themes() 109 | 110 | if themes_list == ["Adwaita"]: 111 | print(_("Could not get theme list. Falling back to last selected theme.")) 112 | return options 113 | 114 | if user_options.get("color_theme", "").title() in themes_list: 115 | options["color_theme"] = user_options["color_theme"] 116 | elif user_options.get("color_theme") is not None: 117 | print(_("Could not find theme {colortheme} in theme list. Falling back to last selected theme.").format(colortheme=user_options['color_theme'])) 118 | 119 | return options 120 | 121 | def option_string_dict(option_string): 122 | if option_string[-1] == ";": 123 | option_string = option_string[:-1] 124 | 125 | return dict(x.split(":") for x in option_string.split(";")) 126 | 127 | def update_notify(): 128 | (code, msg) = update.check(check_only := True, False) 129 | 130 | if code == update.ExitCode.SUCCESS: 131 | code = result.NOTIFY_AND_EXIT 132 | t = _("New Release Available: ") + msg 133 | elif code == update.ExitCode.FAIL: 134 | code = result.NOTIFY_AND_EXIT 135 | t = _("Update Check Failed: ") + msg 136 | elif code == update.ExitCode.CURRENT: 137 | code = result.PRINT_AND_EXIT 138 | t = _("Up to Date.") 139 | else: 140 | code = result.EXIT 141 | t = None 142 | 143 | return (code, t) 144 | -------------------------------------------------------------------------------- /src/custom_css.py: -------------------------------------------------------------------------------- 1 | # custom_css.py 2 | # 3 | # Copyright 2022 Foldex 4 | # 5 | # This program is free software: you can redistribute it and/or modify 6 | # it under the terms of the GNU General Public License as published by 7 | # the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # This program is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU General Public License 16 | # along with this program. If not, see . 17 | 18 | import os 19 | import shutil 20 | 21 | from . import paths 22 | 23 | TEMPLATE = """/* ------------------ */ 24 | /* --- Custom CSS --- */ 25 | /* ------------------ */ 26 | 27 | /* --- EXAMPLE: Override Theme Colors --- */ 28 | /* -- DELETE BOTH LINES TO ENABLE 29 | :root 30 | { 31 | --adw-accent-bg-rgb: 53, 132, 228; 32 | --adw-accent-fg-rgb: 255, 255, 255; 33 | --adw-accent-rgb: 120, 174, 237; 34 | } 35 | -- DELETE BOTH LINES TO ENABLE */ 36 | """ 37 | 38 | def check(): 39 | if not os.path.exists(paths.CONFIG_DIR): 40 | os.makedirs(paths.CONFIG_DIR) 41 | 42 | if not os.path.exists(paths.CUSTOM_CSS_FILE): 43 | create() 44 | 45 | def create(): 46 | with open(paths.CUSTOM_CSS_FILE, "w") as f: 47 | f.write(TEMPLATE) 48 | 49 | def install(): 50 | shutil.copy(paths.CUSTOM_CSS_FILE, paths.CUSTOM_CSS_FILE_DEST) 51 | -------------------------------------------------------------------------------- /src/dl.py: -------------------------------------------------------------------------------- 1 | # dl.py 2 | # 3 | # Copyright 2022 Foldex 4 | # 5 | # This program is free software: you can redistribute it and/or modify 6 | # it under the terms of the GNU General Public License as published by 7 | # the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # This program is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU General Public License 16 | # along with this program. If not, see . 17 | 18 | import json 19 | import urllib.request 20 | 21 | API_URL="https://api.github.com/repos/tkashkin/Adwaita-for-Steam/releases/latest" 22 | BETA_ZIP="https://github.com/Foldex/Adwaita-for-Steam/archive/refs/heads/beta.zip" 23 | 24 | def get_release_info(beta_support=False): 25 | if not beta_support: 26 | try: 27 | data = urllib.request.urlopen(API_URL).read() 28 | out = json.loads(data) 29 | except urllib.error.HTTPError as e: 30 | return (False, _("API: HTTP Error Code ") + str(e.code)) 31 | except ValueError: 32 | return (False, _("API: Error Parsing JSON")) 33 | except: 34 | return (False, _("API: Error retrieving release info")) 35 | 36 | if all(key in out for key in ("tag_name", "zipball_url")): 37 | return (out, None) 38 | else: 39 | out = { "tag_name": "Beta", "zipball_url": BETA_ZIP } 40 | return (out, None) 41 | 42 | return (False, _("API: JSON is missing required keys")) 43 | 44 | def download_release(url, path): 45 | try: 46 | urllib.request.urlretrieve(url, path) 47 | except urllib.error.HTTPError as e: 48 | return (False, _("Release: HTTP Error Code ") + str(e.code)) 49 | except ConnectionResetError: 50 | return (False, _("Release: Connection Reset")) 51 | except PermissionError: 52 | return (False, _("Release: Permission Error")) 53 | except TimeoutError: 54 | return (False, _("Release: Connection Timeout")) 55 | except: 56 | return (False, _("Release: Error Retrieving Zip")) 57 | 58 | return (True, None) 59 | 60 | -------------------------------------------------------------------------------- /src/info.py.in: -------------------------------------------------------------------------------- 1 | # info.py 2 | # 3 | # Copyright 2022 Foldex 4 | # 5 | # This program is free software: you can redistribute it and/or modify 6 | # it under the terms of the GNU General Public License as published by 7 | # the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # This program is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU General Public License 16 | # along with this program. If not, see . 17 | 18 | APP_ID="@APP_ID@" 19 | APP_NAME="@APP_NAME@" 20 | VERSION="@VERSION@" 21 | 22 | PROJECT_URL="@PROJECT_URL@" 23 | BUG_TRACKER_URL="@BUG_TRACKER_URL@" 24 | 25 | LICENSE="@LICENSE@" 26 | COPYRIGHT="@COPYRIGHT@" 27 | 28 | AUTHOR='Foldex' 29 | 30 | DEVELOPERS=[ 31 | 'Foldex https://github.com/Foldex', 32 | 'Christoph Kohnen https://github.com/ChaosMelone9' 33 | ] 34 | 35 | ARTISTS=[ 36 | 'Brage Fuglseth https://bragefuglseth.dev' 37 | ] 38 | 39 | TRANSLATORS=[ 40 | 'volkov ', 41 | 'RobOT05442309 https://github.com/RobOT05442309', 42 | 'Christoph Kohnen https://github.com/cmkohnen', 43 | 'AnaxMorden https://github.com/AnaxMorden', 44 | 'Fernando Lopes https://github.com/plasmus777', 45 | 'Percy De La Rosa https://github.com/PercyDLR', 46 | 'Kryštof Černý https://github.com/cewbdex', 47 | 'Jiri Grönroos ', 48 | 'Hoshmand M. Qadir ', 49 | 'P.O ', 50 | 'dumbelekci ', 51 | 'Kuzey Kuzey ', 52 | 'Yahor ', 53 | 'arctize ', 54 | 'CouldBeMathijs ', 55 | 'muggs ', 56 | 'Bo Gustavsson ', 57 | 'ssantos ', 58 | 'Sabri Ünal ', 59 | 'Talha Kumru ', 60 | 'Scrambled777 ', 61 | '刘韬 ', 62 | '复予 ' 63 | ] 64 | 65 | UPSTREAM=['Anatoliy Kashkin https://github.com/tkashkin'] 66 | -------------------------------------------------------------------------------- /src/install.py: -------------------------------------------------------------------------------- 1 | # install.py 2 | # 3 | # Copyright 2022 Foldex 4 | # 5 | # This program is free software: you can redistribute it and/or modify 6 | # it under the terms of the GNU General Public License as published by 7 | # the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # This program is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU General Public License 16 | # along with this program. If not, see . 17 | 18 | import os 19 | import shlex 20 | import subprocess 21 | import gi 22 | 23 | from gi.repository import Gio, GLib 24 | 25 | from . import custom_css 26 | from . import paths 27 | from . import update 28 | 29 | def gen_cmd_line(options, beta_support): 30 | installer = "python install.py " 31 | 32 | if options.get("uninstall"): 33 | return f"{installer} -u" 34 | 35 | match options["custom_css"]: 36 | case True: 37 | custom_css = "--custom-css " 38 | case _: 39 | custom_css = "" 40 | 41 | 42 | match options["color_theme"].lower(): 43 | case "adwaita": 44 | color_theme = "" 45 | case _: 46 | color_theme = f"-c {options['color_theme'].lower()} " 47 | 48 | match options["rounded_corners"]: 49 | case False: 50 | rounded_corners = "-e general/no_rounded_corners " 51 | case _: 52 | rounded_corners = "" 53 | 54 | match options["win_controls"].lower(): 55 | case "auto": 56 | win_controls = "--windowcontrols-theme auto " 57 | case "adwaita": 58 | win_controls = "--windowcontrols-theme adwaita " 59 | case "windows": 60 | win_controls = "--windowcontrols-theme windows " 61 | case "macos": 62 | win_controls = "--windowcontrols-theme macos " 63 | case _: 64 | win_controls = "" 65 | 66 | match options["win_controls_layout"].lower(): 67 | case "auto": 68 | button_layout = get_button_layout() 69 | if button_layout: 70 | win_controls_layout = f"--windowcontrols-layout {button_layout} " 71 | else: 72 | win_controls_layout = "" 73 | case "adwaita": 74 | win_controls_layout = "--windowcontrols-layout adwaita " 75 | case "elementary": 76 | win_controls_layout = "--windowcontrols-layout elementary " 77 | case "windows": 78 | win_controls_layout = "--windowcontrols-layout windows " 79 | case "macos": 80 | win_controls_layout = "--windowcontrols-layout macos " 81 | case "none": 82 | win_controls_layout = "--windowcontrols-layout ':' " 83 | case _: 84 | win_controls_layout = "" 85 | 86 | 87 | match options["library_sidebar"].lower(): 88 | case "hover only": 89 | library_sidebar = "-e library/sidebar_hover " 90 | case _: 91 | library_sidebar = "" 92 | 93 | match options["library_whats_new"]: 94 | case False: 95 | library_whats_new = "-e library/hide_whats_new " 96 | case _: 97 | library_whats_new = "" 98 | 99 | 100 | match options["login_qr"].lower(): 101 | case "hide": 102 | login_qr = "-e login/hide_qr " 103 | case "hover only": 104 | login_qr = "-e login/hover_qr " 105 | case _: 106 | login_qr = "" 107 | 108 | cmd = ( 109 | f"{installer}" 110 | 111 | f"{color_theme}" 112 | f"{rounded_corners}" 113 | 114 | f"{win_controls}" 115 | f"{win_controls_layout}" 116 | 117 | f"{library_sidebar}" 118 | f"{library_whats_new}" 119 | 120 | f"{login_qr}" 121 | 122 | f"{custom_css}" 123 | ) 124 | 125 | return cmd 126 | 127 | 128 | def install(cmd): 129 | try: 130 | ret = subprocess.run(shlex.split(cmd), cwd=paths.EXTRACTED_DIR, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, check=True) 131 | out = ret.stdout.decode() 132 | print(out) 133 | if not out.find("Installing skin"): 134 | return (False, _("Install: Found no Valid Install Targets")) 135 | except subprocess.CalledProcessError as e: 136 | print(e.output.decode()) 137 | return (False, _("Install: Installer Process Failed")) 138 | 139 | return (True, None) 140 | 141 | def steam_dir_missing(): 142 | return not os.path.exists(paths.STEAM_DIR) and not os.path.exists(paths.STEAM_FLATPAK_DIR) 143 | 144 | def release_missing(): 145 | return not os.path.exists(paths.LAST_RELEASE_FILE) and not os.path.exists(paths.EXTRACTED_DIR) 146 | 147 | def zip_not_extracted(): 148 | return os.path.exists(paths.LAST_RELEASE_FILE) and not os.path.exists(paths.EXTRACTED_DIR) 149 | 150 | def get_button_layout(): 151 | portal = Gio.DBusProxy.new_for_bus_sync( 152 | Gio.BusType.SESSION, 153 | Gio.DBusProxyFlags.NONE, 154 | None, 155 | "org.freedesktop.portal.Desktop", 156 | "/org/freedesktop/portal/desktop", 157 | "org.freedesktop.portal.desktop", 158 | None 159 | ) 160 | 161 | args = GLib.Variant('(ss)', ('org.gnome.desktop.wm.preferences', 'button-layout')) 162 | 163 | try: 164 | button_layout = portal.call_sync('org.freedesktop.portal.Settings.ReadOne', args, Gio.DBusCallFlags.NONE, -1, None) 165 | except GLib.GError: 166 | print(_("Could not grab window control settings from desktop portal, falling back to default")) 167 | button_layout = None 168 | 169 | if button_layout: 170 | return button_layout[0] 171 | else: 172 | return None 173 | 174 | def run(options, beta_support=False): 175 | if steam_dir_missing(): 176 | return(False, _("Install: Failed to Find Valid '~/.steam/steam' Symlink")) 177 | 178 | if release_missing(): 179 | (ret, msg) = update.check(False, beta_support) 180 | if not ret: 181 | return (ret, msg) 182 | 183 | if zip_not_extracted(): 184 | (ret, msg) = update.post_download() 185 | if not ret: 186 | return (ret, msg) 187 | 188 | if options.get("custom_css"): 189 | custom_css.install() 190 | 191 | cmd = gen_cmd_line(options, beta_support) 192 | (ret, msg) = install(cmd) 193 | 194 | return (ret, msg) 195 | -------------------------------------------------------------------------------- /src/main.py: -------------------------------------------------------------------------------- 1 | # main.py 2 | # 3 | # Copyright 2022 Foldex 4 | # 5 | # This program is free software: you can redistribute it and/or modify 6 | # it under the terms of the GNU General Public License as published by 7 | # the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # This program is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU General Public License 16 | # along with this program. If not, see . 17 | 18 | import gi 19 | import sys 20 | 21 | gi.require_version('Gtk', '4.0') 22 | gi.require_version('Adw', '1') 23 | 24 | from gi.repository import Gtk, Gio, GLib, Adw 25 | 26 | from . import cli 27 | from . import info 28 | from . import update 29 | from . import install 30 | 31 | from .window import AdwaitaSteamGtkWindow 32 | from .prefs import AdwaitaSteamGtkPrefs 33 | 34 | 35 | class Adwaita_steam_gtkApplication(Adw.Application): 36 | """The main application singleton class.""" 37 | 38 | def __init__(self): 39 | super().__init__(application_id=info.APP_ID, 40 | flags=Gio.ApplicationFlags.HANDLES_COMMAND_LINE) 41 | 42 | # Beta Support 43 | # Used for when a Steam Client Beta diverges far enough from stable 44 | # that we want to install from separate branches 45 | # Probably not seeing much use since the new UI merged into stable 46 | 47 | # self.settings = Gio.Settings.new(info.APP_ID) 48 | # self.beta_support = self.settings.get_boolean("prefs-beta-support") 49 | self.beta_support = False 50 | 51 | self.create_action('quit', self.on_quit_action, ['q']) 52 | self.create_action('about', self.on_about_action) 53 | self.create_action('prefs', self.on_prefs_action) 54 | self.create_action('uninstall', self.on_uninstall_action) 55 | 56 | self.add_main_option( 57 | "check", 58 | ord("c"), 59 | GLib.OptionFlags.NONE, 60 | GLib.OptionArg.NONE, 61 | "Check for Updates and Display a Notification", 62 | None, 63 | ) 64 | 65 | self.add_main_option( 66 | "update", 67 | ord("u"), 68 | GLib.OptionFlags.NONE, 69 | GLib.OptionArg.NONE, 70 | "Check and Install Updates", 71 | None, 72 | ) 73 | 74 | self.add_main_option( 75 | "install", 76 | ord("i"), 77 | GLib.OptionFlags.NONE, 78 | GLib.OptionArg.NONE, 79 | "Check Updates and Force Install", 80 | None, 81 | ) 82 | 83 | self.add_main_option( 84 | "options", 85 | ord("o"), 86 | GLib.OptionFlags.NONE, 87 | GLib.OptionArg.STRING, 88 | "Override Install Options", 89 | None, 90 | ) 91 | 92 | def do_command_line(self, command_line): 93 | options = command_line.get_options_dict() 94 | options = options.end().unpack() 95 | 96 | if "update" in options or "install" in options: 97 | (code, msg) = cli.update_install(options, self.beta_support) 98 | if code == cli.result.PRINT_AND_EXIT: 99 | print(msg) 100 | self.quit() 101 | return 0 102 | elif "check" in options: 103 | (code, msg) = cli.update_notify() 104 | if code == cli.result.NOTIFY_AND_EXIT: 105 | self.send_notif(info.APP_NAME, msg, "update-check") 106 | elif code == cli.result.PRINT_AND_EXIT: 107 | print(msg) 108 | self.quit() 109 | return 0 110 | 111 | self.activate() 112 | return 0 113 | 114 | def do_activate(self): 115 | """Called when the application is activated. 116 | 117 | We raise the application's main window, creating it if 118 | necessary. 119 | """ 120 | win = self.props.active_window 121 | if not win: 122 | win = AdwaitaSteamGtkWindow(application=self) 123 | win.present() 124 | 125 | def on_about_action(self, *args): 126 | """Callback for the app.about action.""" 127 | about = Adw.AboutWindow(transient_for=self.props.active_window, 128 | application_name=info.APP_NAME, 129 | application_icon=info.APP_ID, 130 | developer_name=info.AUTHOR, 131 | website=info.PROJECT_URL, 132 | issue_url=info.BUG_TRACKER_URL, 133 | version=info.VERSION, 134 | developers=info.DEVELOPERS, 135 | artists=info.ARTISTS, 136 | license_type=info.LICENSE, 137 | copyright=info.COPYRIGHT) 138 | about.add_credit_section(_("Upstream"), info.UPSTREAM) 139 | about.add_credit_section(_("Translators"), info.TRANSLATORS) 140 | about.present() 141 | 142 | def on_prefs_action(self, *args): 143 | prefs = AdwaitaSteamGtkPrefs(self.props.active_window) 144 | prefs.present() 145 | 146 | def on_uninstall_action(self, *args): 147 | dialog = Adw.MessageDialog(transient_for=self.props.active_window, 148 | heading=_("Uninstall Theme"), 149 | body=_("This will reset all customizations made to the Steam client.")) 150 | 151 | dialog.add_response("cancel", _("Cancel")) 152 | dialog.add_response("uninstall", _("Uninstall")) 153 | dialog.set_response_appearance("uninstall", Adw.ResponseAppearance.DESTRUCTIVE) 154 | dialog.set_default_response("cancel") 155 | 156 | dialog.connect("response", self.on_uninstall_response) 157 | 158 | dialog.present() 159 | 160 | def on_uninstall_response (self, dialog, response): 161 | if response == "uninstall": 162 | options = { "uninstall": True } 163 | install.run(options, self.beta_support) 164 | 165 | def on_quit_action(self, *args): 166 | self.quit() 167 | 168 | def create_action(self, name, callback, shortcuts=None): 169 | """Add an application action. 170 | 171 | Args: 172 | name: the name of the action 173 | callback: the function to be called when the action is 174 | activated 175 | shortcuts: an optional list of accelerators 176 | """ 177 | action = Gio.SimpleAction.new(name, None) 178 | action.connect("activate", callback) 179 | self.add_action(action) 180 | if shortcuts: 181 | self.set_accels_for_action(f"app.{name}", shortcuts) 182 | 183 | def send_notif(self, title, body, notif_id): 184 | n = Gio.Notification() 185 | n.set_title(title) 186 | n.set_body(body) 187 | 188 | self.send_notification(notif_id, n) 189 | 190 | def main(version): 191 | """The application's entry point.""" 192 | app = Adwaita_steam_gtkApplication() 193 | return app.run(sys.argv) 194 | -------------------------------------------------------------------------------- /src/meson.build: -------------------------------------------------------------------------------- 1 | pkgdatadir = join_paths(get_option('prefix'), get_option('datadir'), meson.project_name()) 2 | moduledir = join_paths(pkgdatadir, 'adwaita_steam_gtk') 3 | gnome = import('gnome') 4 | 5 | blueprints = custom_target('blueprints', 6 | input: files( 7 | 'ui/window.blp', 8 | 'ui/prefs.blp', 9 | ), 10 | output: '.', 11 | command: [find_program('blueprint-compiler'), 'batch-compile', '@OUTPUT@', '@CURRENT_SOURCE_DIR@', '@INPUT@'], 12 | ) 13 | 14 | gnome.compile_resources('adwaita-steam-gtk', 15 | 'adwaita_steam_gtk.gresource.xml', 16 | dependencies: blueprints, 17 | gresource_bundle: true, 18 | install: true, 19 | install_dir: pkgdatadir, 20 | ) 21 | 22 | python = import('python') 23 | 24 | conf = configuration_data() 25 | conf.set('PYTHON', python.find_installation('python3').full_path()) 26 | 27 | conf.set('APP_ID', 'io.github.Foldex.AdwSteamGtk') 28 | conf.set('APP_NAME', 'AdwSteamGtk') 29 | conf.set('VERSION', meson.project_version()) 30 | 31 | conf.set('BUG_TRACKER_URL', 'https://github.com/Foldex/AdwSteamGtk/issues') 32 | conf.set('PROJECT_URL', 'https://github.com/Foldex/AdwSteamGtk') 33 | 34 | conf.set('COPYRIGHT', '© 2022 Foldex') 35 | conf.set('LICENSE', 'GTK_LICENSE_GPL_3_0') 36 | 37 | conf.set('localedir', join_paths(get_option('prefix'), get_option('localedir'))) 38 | conf.set('pkgdatadir', pkgdatadir) 39 | 40 | configure_file( 41 | input: 'adwaita-steam-gtk.in', 42 | output: 'adwaita-steam-gtk', 43 | configuration: conf, 44 | install: true, 45 | install_dir: get_option('bindir') 46 | ) 47 | 48 | configure_file( 49 | input: 'info.py.in', 50 | output: '@BASENAME@', 51 | configuration: conf, 52 | install: true, 53 | install_dir: moduledir 54 | ) 55 | 56 | adwaita_steam_gtk_sources = [ 57 | '__init__.py', 58 | 'main.py', 59 | 'cli.py', 60 | 'custom_css.py', 61 | 'dl.py', 62 | 'install.py', 63 | 'paths.py', 64 | 'style.py', 65 | 'update.py', 66 | 'zip.py', 67 | 'pages/window.py', 68 | 'pages/prefs.py', 69 | ] 70 | 71 | install_data(adwaita_steam_gtk_sources, install_dir: moduledir) 72 | -------------------------------------------------------------------------------- /src/pages/prefs.py: -------------------------------------------------------------------------------- 1 | # prefs.py 2 | # 3 | # Copyright 2022 Foldex 4 | # 5 | # This program is free software: you can redistribute it and/or modify 6 | # it under the terms of the GNU General Public License as published by 7 | # the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # This program is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU General Public License 16 | # along with this program. If not, see . 17 | 18 | import gi 19 | import os 20 | 21 | gi.require_version('Xdp', '1.0') 22 | gi.require_version('XdpGtk4', '1.0') 23 | from gi.repository import Adw, Gtk, Xdp, XdpGtk4 24 | 25 | from . import paths 26 | from . import update 27 | 28 | @Gtk.Template(resource_path='/io/github/Foldex/AdwSteamGtk/ui/prefs.ui') 29 | class AdwaitaSteamGtkPrefs(Adw.PreferencesWindow): 30 | __gtype_name__ = 'AdwaitaSteamGtkPrefs' 31 | 32 | custom_css_switch = Gtk.Template.Child() 33 | preview_theme_switch = Gtk.Template.Child() 34 | update_check_switch = Gtk.Template.Child() 35 | beta_support_switch = Gtk.Template.Child() 36 | 37 | custom_css_edit_button = Gtk.Template.Child() 38 | custom_css_info_button = Gtk.Template.Child() 39 | 40 | def __init__(self, parent, **kwargs): 41 | super().__init__(**kwargs) 42 | self.parent = parent 43 | self.settings = parent.settings 44 | self.app = self.parent.get_application() 45 | self.win = self.app.get_active_window() 46 | self.set_transient_for(self.win) 47 | self.portal = Xdp.Portal() 48 | self.portal_parent = XdpGtk4.parent_new_gtk(self) 49 | 50 | self.setup_widgets() 51 | 52 | def setup_switch(self, switch, config, callback): 53 | switch.set_active(self.settings.get_boolean(config)) 54 | switch.connect("state-set", callback) 55 | 56 | def setup_widgets(self): 57 | self.setup_switch(self.preview_theme_switch, "prefs-ui-preview-theme", self.on_preview_theme_switch_toggle) 58 | self.setup_switch(self.update_check_switch, "prefs-autostart-update-check", self.on_update_check_switch_toggle) 59 | self.setup_switch(self.custom_css_switch, "prefs-install-custom-css", self.on_custom_css_switch_toggle) 60 | 61 | # self.setup_switch(self.beta_support_switch, "prefs-beta-support", self.on_beta_support_switch_toggle) 62 | 63 | self.custom_css_edit_button.connect("clicked", self.on_custom_css_edit_button_clicked) 64 | self.custom_css_info_button.connect("clicked", self.on_custom_css_info_button_clicked) 65 | 66 | def on_preview_theme_switch_toggle(self, *args): 67 | state = not self.preview_theme_switch.props.state 68 | self.settings.set_boolean("prefs-ui-preview-theme", state) 69 | self.parent.load_app_style(self.parent.color_theme_options, None) 70 | 71 | def on_beta_support_switch_toggle(self, *args): 72 | state = not self.beta_support_switch.props.state 73 | self.settings.set_boolean("prefs-beta-support", state) 74 | 75 | dialog = Adw.MessageDialog(transient_for=self.parent, 76 | heading=_("Shutting Down"), 77 | body=_("Relaunch AdwSteamGtk to apply this change.")) 78 | 79 | dialog.add_response("confirm", _("Okay")) 80 | dialog.set_default_response("confirm") 81 | 82 | dialog.connect("response", self.on_beta_support_response) 83 | dialog.present() 84 | 85 | def on_beta_support_response(self, dialog, response): 86 | update.reset_files() 87 | self.app.quit() 88 | 89 | def on_update_check_switch_toggle(self, *args): 90 | state = not self.update_check_switch.props.state 91 | self.settings.set_boolean("prefs-autostart-update-check", state) 92 | 93 | if state: 94 | flag = Xdp.BackgroundFlags.AUTOSTART 95 | else: 96 | flag = Xdp.BackgroundFlags.NONE 97 | 98 | self.portal.request_background( 99 | None, 100 | "Update Check", 101 | ["adwaita-steam-gtk", "--check"], 102 | flag, 103 | None, 104 | None, 105 | None 106 | ) 107 | 108 | def on_custom_css_switch_toggle(self, *args): 109 | state = not self.custom_css_switch.props.state 110 | self.settings.set_boolean("prefs-install-custom-css", state) 111 | 112 | def on_custom_css_edit_button_clicked(self, *args): 113 | self.portal.open_uri(self.portal_parent, paths.CUSTOM_CSS_URI, Xdp.OpenUriFlags.WRITABLE, None, None); 114 | 115 | def on_custom_css_info_button_clicked(self, *args): 116 | self.portal.open_uri(self.portal_parent, paths.CUSTOM_CSS_INFO_URL, Xdp.OpenUriFlags.NONE, None, None); 117 | -------------------------------------------------------------------------------- /src/pages/window.py: -------------------------------------------------------------------------------- 1 | # window.py 2 | # 3 | # Copyright 2022 Foldex 4 | # 5 | # This program is free software: you can redistribute it and/or modify 6 | # it under the terms of the GNU General Public License as published by 7 | # the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # This program is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU General Public License 16 | # along with this program. If not, see . 17 | 18 | from gi.repository import Adw, Gio, Gtk, Gdk 19 | 20 | from . import custom_css 21 | from . import info 22 | from . import install 23 | from . import style 24 | from . import update 25 | from . import zip 26 | 27 | @Gtk.Template(resource_path='/io/github/Foldex/AdwSteamGtk/ui/window.ui') 28 | class AdwaitaSteamGtkWindow(Gtk.ApplicationWindow): 29 | __gtype_name__ = 'AdwaitaSteamGtkWindow' 30 | 31 | settings = Gio.Settings.new(info.APP_ID) 32 | install_button = Gtk.Template.Child() 33 | toast_overlay = Gtk.Template.Child() 34 | 35 | theme_group = Gtk.Template.Child() 36 | color_theme_options = Gtk.Template.Child() 37 | no_rounded_corners = Gtk.Template.Child() 38 | no_rounded_corners_switch = Gtk.Template.Child() 39 | 40 | window_controls_group = Gtk.Template.Child() 41 | window_controls_options = Gtk.Template.Child() 42 | window_controls_layout_options = Gtk.Template.Child() 43 | 44 | library_group = Gtk.Template.Child() 45 | library_sidebar_options = Gtk.Template.Child() 46 | hide_whats_new_switch = Gtk.Template.Child() 47 | 48 | login_group = Gtk.Template.Child() 49 | login_qr_options = Gtk.Template.Child() 50 | 51 | def __init__(self, **kwargs): 52 | super().__init__(**kwargs) 53 | 54 | # Disable Beta Support 55 | self.settings.set_boolean("prefs-beta-support", False) 56 | self.beta_support = self.settings.get_boolean("prefs-beta-support") 57 | 58 | self.opt_array = { 59 | "color_theme": ["Adwaita"], 60 | 61 | "win_controls": ["Adwaita", "MacOS", "Windows"], 62 | "win_controls_layout": ["Auto", "Adwaita", "Elementary", "MacOS", "Windows", "None"], 63 | 64 | "library_sidebar": ["Show", "Hover Only"], 65 | 66 | "login_qr": ["Show", "Hover Only", "Hide"] 67 | } 68 | 69 | self.make_action("install", self.install_theme) 70 | self.make_action("retry_dl", self.retry_check) 71 | self.check_latest_release() 72 | self.check_custom_css() 73 | self.load_color_themes() 74 | self.load_config() 75 | self.style_provider = None 76 | self.load_app_style() 77 | self.color_theme_options.connect("notify::selected", self.load_app_style) 78 | 79 | def make_action(self, action, func): 80 | install_action = Gio.SimpleAction(name=action) 81 | install_action.connect("activate", func) 82 | self.add_action(install_action) 83 | 84 | def pop_toast(self, toast): 85 | self.toast_overlay.add_toast(toast) 86 | 87 | def load_app_style(self, *args): 88 | if self.style_provider is None: 89 | self.style_provider = Gtk.CssProvider() 90 | Gtk.StyleContext.add_provider_for_display(Gdk.Display.get_default(), self.style_provider, Gtk.STYLE_PROVIDER_PRIORITY_USER + 1) 91 | 92 | preview_theme = self.settings.get_boolean("prefs-ui-preview-theme") 93 | 94 | if not preview_theme: 95 | self.style_provider.load_from_data("", -1) 96 | return 97 | 98 | selected_theme = self.get_selected_pref(self.color_theme_options, self.opt_array["color_theme"]).lower() 99 | ret, msg = style.generate_style(selected_theme) 100 | 101 | if not ret: 102 | t = Adw.Toast(title=msg, priority="high") 103 | self.pop_toast(t) 104 | 105 | self.style_provider.load_from_data(msg, -1) 106 | 107 | def load_color_themes(self): 108 | (themes, msg) = style.get_color_themes() 109 | 110 | if msg: 111 | t = Adw.Toast(title=msg, priority="high") 112 | self.pop_toast(t) 113 | 114 | self.opt_array["color_theme"] = themes 115 | self.color_theme_options.set_model(Gtk.StringList.new(themes)) 116 | 117 | def load_config(self): 118 | self.select_from_config('color-theme-options', self.color_theme_options, self.opt_array["color_theme"]) 119 | self.select_from_config('no-rounded-corners-switch', self.no_rounded_corners_switch) 120 | 121 | self.select_from_config('window-controls-options', self.window_controls_options, self.opt_array["win_controls"]) 122 | self.select_from_config('window-controls-layout-options', self.window_controls_layout_options, self.opt_array["win_controls_layout"]) 123 | 124 | self.select_from_config('library-sidebar-options', self.library_sidebar_options, self.opt_array["library_sidebar"]) 125 | self.select_from_config('hide-whats-new-switch', self.hide_whats_new_switch) 126 | 127 | self.select_from_config('login-qr-options', self.login_qr_options, self.opt_array["login_qr"]) 128 | 129 | def save_config(self): 130 | self.config_from_select('color-theme-options', self.color_theme_options, self.opt_array["color_theme"]) 131 | self.config_from_select('no-rounded-corners-switch', self.no_rounded_corners_switch) 132 | 133 | self.config_from_select('window-controls-options', self.window_controls_options, self.opt_array["win_controls"]) 134 | self.config_from_select('window-controls-layout-options', self.window_controls_layout_options, self.opt_array["win_controls_layout"]) 135 | 136 | self.config_from_select('library-sidebar-options', self.library_sidebar_options, self.opt_array["library_sidebar"]) 137 | self.config_from_select('hide-whats-new-switch', self.hide_whats_new_switch) 138 | 139 | self.config_from_select('login-qr-options', self.login_qr_options, self.opt_array["login_qr"]) 140 | 141 | 142 | def get_selected_pref(self, widget, array=None): 143 | match type := widget.get_name(): 144 | case "AdwComboRow": 145 | if not array: 146 | print("get_selected_pref: AdwComboRows need array passed") 147 | selected = None 148 | else: 149 | selected = array[widget.get_selected()] 150 | case "GtkSwitch": 151 | selected = widget.get_active() 152 | case _: 153 | print(f"get_selected_pref: unsupported type {type}") 154 | selected = None 155 | return selected 156 | 157 | def config_to_pos(self, config, array): 158 | string = self.settings.get_string(config) 159 | for pos,s in enumerate(array): 160 | if string == s: 161 | return pos 162 | return 0 163 | 164 | def select_from_config(self, config, widget, array=None): 165 | match type := widget.get_name(): 166 | case "AdwComboRow": 167 | if not array: 168 | print("select_from_config: AdwComboRows need array passed") 169 | else: 170 | widget.set_selected(self.config_to_pos(config, array)) 171 | case "GtkSwitch": 172 | widget.set_active(self.settings.get_boolean(config)) 173 | case _: 174 | print(f"set_from_config: unsupported type {type}") 175 | 176 | def config_from_select(self, config, widget, array=None): 177 | match type := widget.get_name(): 178 | case "AdwComboRow": 179 | if not array: 180 | print("config_from_select: AdwComboRows need array passed") 181 | else: 182 | self.settings.set_string(config, array[widget.get_selected()]) 183 | case "GtkSwitch": 184 | self.settings.set_boolean(config, widget.get_active()) 185 | case _: 186 | print(f"config_from_select: unsupported type {type}") 187 | 188 | def check_latest_release(self): 189 | (code, msg) = update.check(False, self.beta_support) 190 | t = None 191 | 192 | if code == update.ExitCode.SUCCESS: 193 | t = Adw.Toast(title=_("New Release Downloaded: ") + msg, timeout=2) 194 | elif code == update.ExitCode.FAIL: 195 | t = Adw.Toast(title=msg, button_label=_("Retry"), action_name="win.retry_dl", timeout=30) 196 | # elif code == update.ExitCode.CURRENT: 197 | # t = Adw.Toast(title=_("Up to Date")) 198 | 199 | if t: 200 | self.pop_toast(t) 201 | 202 | def retry_check(self, *args): 203 | self.check_latest_release() 204 | 205 | def check_custom_css(self): 206 | custom_css.check() 207 | 208 | def install_theme(self, *args): 209 | options = { 210 | # switches that hide/disable get inverted 211 | "custom_css": self.settings.get_boolean('prefs-install-custom-css'), 212 | 213 | "color_theme": self.get_selected_pref(self.color_theme_options, self.opt_array["color_theme"]), 214 | "rounded_corners": not self.get_selected_pref(self.no_rounded_corners_switch), 215 | 216 | "win_controls": self.get_selected_pref(self.window_controls_options, self.opt_array["win_controls"]), 217 | "win_controls_layout": self.get_selected_pref(self.window_controls_layout_options, self.opt_array["win_controls_layout"]), 218 | 219 | "library_sidebar": self.get_selected_pref(self.library_sidebar_options, self.opt_array["library_sidebar"]), 220 | "library_whats_new": not self.get_selected_pref(self.hide_whats_new_switch), 221 | 222 | "login_qr": self.get_selected_pref(self.login_qr_options, self.opt_array["login_qr"]), 223 | } 224 | 225 | (ret, msg) = install.run(options, self.beta_support) 226 | 227 | if ret: 228 | t = Adw.Toast(title=_("Theme Installed"), priority="high", timeout=2) 229 | self.save_config() 230 | else: 231 | t = Adw.Toast(title=msg, priority="high") 232 | 233 | self.pop_toast(t) 234 | -------------------------------------------------------------------------------- /src/paths.py: -------------------------------------------------------------------------------- 1 | # paths.py 2 | # 3 | # Copyright 2022 Foldex 4 | # 5 | # This program is free software: you can redistribute it and/or modify 6 | # it under the terms of the GNU General Public License as published by 7 | # the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # This program is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU General Public License 16 | # along with this program. If not, see . 17 | 18 | import os.path 19 | import pathlib 20 | 21 | STEAM_DIR=os.path.expanduser("~/.steam/steam") 22 | STEAM_FLATPAK_DIR=os.path.expanduser("~/.var/app/com.valvesoftware.Steam/.steam/steam") 23 | 24 | XDG_CACHE_DIR=os.path.expanduser(os.environ.get("XDG_CACHE_HOME", "~/.cache")) 25 | XDG_CONFIG_DIR=os.path.expanduser(os.environ.get("XDG_CONFIG_HOME", "~/.config")) 26 | 27 | CACHE_DIR=os.path.join(XDG_CACHE_DIR, "AdwSteamInstaller") 28 | CONFIG_DIR=os.path.join(XDG_CONFIG_DIR, "AdwSteamGtk") 29 | 30 | TMP_DIR=os.path.join(CACHE_DIR, "tmp") 31 | EXTRACTED_DIR=os.path.join(CACHE_DIR, "extracted") 32 | ADWAITA_DIR=os.path.join(EXTRACTED_DIR, "adwaita") 33 | THEMES_DIR=os.path.join(ADWAITA_DIR, "colorthemes") 34 | 35 | LAST_CHECK_FILE=os.path.join(CACHE_DIR, "last_check") 36 | LAST_VERSION_FILE=os.path.join(CACHE_DIR, "last_ver") 37 | LAST_RELEASE_FILE=os.path.join(CACHE_DIR, "latest.zip") 38 | 39 | CUSTOM_CSS_FILE=os.path.join(CONFIG_DIR, "custom.css") 40 | CUSTOM_CSS_FILE_DEST=os.path.join(EXTRACTED_DIR, "custom/custom.css") 41 | CUSTOM_CSS_INFO_URL="https://github.com/Foldex/AdwSteamGtk/wiki/Custom-CSS" 42 | CUSTOM_CSS_URI=pathlib.Path(CUSTOM_CSS_FILE).as_uri() 43 | -------------------------------------------------------------------------------- /src/style.py: -------------------------------------------------------------------------------- 1 | # style.py 2 | # 3 | # Copyright 2022 Foldex 4 | # 5 | # This program is free software: you can redistribute it and/or modify 6 | # it under the terms of the GNU General Public License as published by 7 | # the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # This program is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU General Public License 16 | # along with this program. If not, see . 17 | 18 | import os.path 19 | import re 20 | from pathlib import Path 21 | 22 | from . import install 23 | from . import paths 24 | from . import update 25 | 26 | def get_color_themes(): 27 | themes = [] 28 | fallback = ["Adwaita"] 29 | 30 | if install.zip_not_extracted(): 31 | (ret, msg) = update.post_download() 32 | if not ret: 33 | return (ret, msg) 34 | 35 | theme_dir = Path(paths.THEMES_DIR) 36 | theme_ext = "css" 37 | themes = [ x.stem.title() for x in theme_dir.glob(f"*/*.{theme_ext}")] 38 | 39 | if not themes: 40 | return (fallback, _("Get Themes: Failed to get themes")) 41 | 42 | return (themes, None) 43 | 44 | def parse_css(file): 45 | with open (file, 'r' ) as f: 46 | content = f.read() 47 | 48 | pattern = r'--([\w-]+)\s*:\s*(.*?)(?:\s*!important)?;' 49 | matches = re.findall(pattern, content) 50 | 51 | vars = {} 52 | 53 | for match in matches: 54 | key = match[0] 55 | value = match[1] 56 | 57 | vars[key] = value 58 | 59 | return vars 60 | 61 | def generate_style(theme_name): 62 | theme_dir = paths.THEMES_DIR 63 | theme_path = f"{theme_dir}/{theme_name}/{theme_name}.css" 64 | 65 | if install.zip_not_extracted(): 66 | (ret, msg) = update.post_download() 67 | if not ret: 68 | return (ret, msg) 69 | 70 | if not os.path.exists(theme_path): 71 | return (False, _("Style: Could not find theme {theme_name}").format(theme_name=theme_name)) 72 | 73 | theme_vars = parse_css(theme_path) 74 | 75 | # Generated Styles 76 | style_vars = { 77 | "accent_color": theme_vars.get("adw-accent-rgb"), 78 | "accent_bg_color": theme_vars.get("adw-accent-bg-rgb"), 79 | "accent_fg_color": theme_vars.get("adw-accent-fg-rgb"), 80 | 81 | "destructive": theme_vars.get("adw-destructive-rgb"), 82 | "destructive_fg_color": theme_vars.get("adw-destructive-fg-rgb"), 83 | "destructive_bg_color": theme_vars.get("adw-destructive-bg-rgb"), 84 | 85 | "success_color": theme_vars.get("adw-success-rgb"), 86 | "success_bg_color": theme_vars.get("adw-success-bg-rgb"), 87 | "success_fg_color": theme_vars.get("adw-success-fg-rgb"), 88 | 89 | "warning_color": theme_vars.get("adw-warning-rgb"), 90 | "warning_bg_color": theme_vars.get("adw-warning-bg-rgb"), 91 | "warning_fg_color": (theme_vars.get("adw-warning-fg-rgb"), theme_vars.get("adw-warning-fg-a")), 92 | 93 | "error_color": theme_vars.get("adw-error-rgb"), 94 | "error_bg_color": theme_vars.get("adw-error-bg-rgb"), 95 | "error_fg_color": theme_vars.get("adw-error-fg-rgb"), 96 | 97 | "headerbar_bg_color": theme_vars.get("adw-headerbar-bg-rgb"), 98 | "headerbar_fg_color": theme_vars.get("adw-headerbar-fg-rgb"), 99 | "headerbar_backdrop_color": theme_vars.get("adw-headerbar-backdrop-rgb"), 100 | "headerbar_shade_color": theme_vars.get("adw-headerbar-shade-rgb"), 101 | 102 | "window_bg_color": theme_vars.get("adw-window-bg-rgb"), 103 | "window_fg_color": theme_vars.get("adw-window-fg-rgb"), 104 | 105 | "view_bg_color": theme_vars.get("adw-view-bg-rgb"), 106 | "view_fg_color": theme_vars.get("adw-view-fg-rgb"), 107 | 108 | "popover_bg_color": theme_vars.get("adw-popover-bg-rgb"), 109 | "popover_fg_color": theme_vars.get("adw-popover-fg-rgb"), 110 | 111 | "dialog_bg_color": theme_vars.get("adw-popover-bg-rgb"), 112 | "dialog_fg_color": theme_vars.get("adw-popover-fg-rgb"), 113 | 114 | "card_fg_color": theme_vars.get("adw-card-fg-rgb"), 115 | "card_bg_color": (theme_vars.get("adw-card-bg-rgb"), theme_vars.get("adw-card-bg-a")), 116 | } 117 | 118 | style_vars = lookup_css(style_vars, theme_vars) 119 | style = format_css(style_vars) 120 | 121 | if all(x is None for x in style_vars.values()): 122 | return (False, _("Style: Theme {theme_name} seems to be invalid").format(theme_name=theme_name)) 123 | 124 | # Hardcoded Styles 125 | style += "tooltip.background { background-color: rgba(0, 0, 0, 0.8); color: @card_fg_color; }\n" 126 | style += "list.boxed-list > row:not(:last-child) { border-bottom: 1px solid rgba(0, 0, 0, 0.36); }\n" 127 | 128 | 129 | return (True, style) 130 | 131 | def lookup_css(style_vars, theme_vars): 132 | # non-recursive, meh 133 | for adw_color, theme_color in style_vars.items(): 134 | 135 | if not theme_color: 136 | continue 137 | 138 | if isinstance(theme_color, tuple): 139 | continue 140 | 141 | var_result = None 142 | 143 | var_pattern = r'var\(\s*--([\w-]+)\s*\)' 144 | var_result = re.search(var_pattern, theme_color) 145 | 146 | if var_result: 147 | resolved = theme_vars.get(var_result.group(1)) 148 | else: 149 | resolved = None 150 | 151 | if resolved: 152 | style_vars[adw_color] = resolved 153 | 154 | return style_vars 155 | 156 | def format_css(style_vars): 157 | 158 | css = "" 159 | 160 | for adw_color, theme_color in style_vars.items(): 161 | if theme_color: 162 | 163 | # tuples are rgba 164 | if isinstance(theme_color, tuple) and theme_color[0] and theme_color[1]: 165 | final_color = f"rgba({theme_color[0]}, {theme_color[1]})" 166 | # rgb 167 | else: 168 | final_color = f"rgb({theme_color})" 169 | 170 | css += f"@define-color {adw_color} {final_color};\n" 171 | 172 | return css 173 | -------------------------------------------------------------------------------- /src/ui/prefs.blp: -------------------------------------------------------------------------------- 1 | using Gtk 4.0; 2 | using Adw 1; 3 | 4 | template $AdwaitaSteamGtkPrefs : Adw.PreferencesWindow { 5 | title: _("Preferences"); 6 | default-height: 550; 7 | default-width: 450; 8 | modal: true; 9 | 10 | Adw.PreferencesPage general_page { 11 | Adw.PreferencesGroup autostart_group { 12 | title: _("Autostart"); 13 | 14 | Adw.ActionRow { 15 | title: _("Auto Update Check"); 16 | subtitle: _("Checks and notifies for theme updates on user login."); 17 | activatable-widget: update_check_switch; 18 | Gtk.Switch update_check_switch { 19 | valign: center; 20 | } 21 | } 22 | } 23 | 24 | Adw.PreferencesGroup beta_group { 25 | title: _("Beta"); 26 | visible: false; 27 | 28 | Adw.ActionRow { 29 | title: _("Experimental Beta Support"); 30 | subtitle: _("Enables Beta Support (requires restart)"); 31 | activatable-widget: beta_support_switch; 32 | Gtk.Switch beta_support_switch { 33 | valign: center; 34 | } 35 | } 36 | } 37 | 38 | Adw.PreferencesGroup installer_group { 39 | title: _("Installer"); 40 | 41 | Adw.ActionRow { 42 | title: _("Custom CSS"); 43 | subtitle: _("Include Custom CSS into Steam"); 44 | activatable-widget: custom_css_switch; 45 | Gtk.Button custom_css_info_button { 46 | icon-name: "help-about-symbolic"; 47 | valign: center; 48 | tooltip-text: _("Custom CSS Info"); 49 | } 50 | Gtk.Button custom_css_edit_button { 51 | icon-name: "document-edit-symbolic"; 52 | valign: center; 53 | tooltip-text: _("Edit Custom CSS File"); 54 | } 55 | Gtk.Switch custom_css_switch { 56 | valign: center; 57 | } 58 | } 59 | } 60 | 61 | 62 | Adw.PreferencesGroup ui_group { 63 | title: _("Interface"); 64 | 65 | Adw.ActionRow { 66 | title: _("Preview Themes"); 67 | subtitle: _("Styles the interface to match the currently selected theme."); 68 | activatable-widget: preview_theme_switch; 69 | Gtk.Switch preview_theme_switch { 70 | valign: center; 71 | } 72 | } 73 | } 74 | 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /src/ui/window.blp: -------------------------------------------------------------------------------- 1 | using Gtk 4.0; 2 | using Adw 1; 3 | 4 | template $AdwaitaSteamGtkWindow : ApplicationWindow { 5 | default-width: 500; 6 | default-height: 700; 7 | title: _("Adwaita Steam Installer"); 8 | resizable: false; 9 | 10 | [titlebar] 11 | HeaderBar header_bar { 12 | [start] 13 | Button install_button { 14 | label: _("Apply"); 15 | action-name: "win.install"; 16 | styles ["suggested-action"] 17 | } 18 | 19 | [end] 20 | MenuButton { 21 | icon-name: "open-menu-symbolic"; 22 | menu-model: primary_menu; 23 | } 24 | } 25 | 26 | Adw.ToastOverlay toast_overlay { 27 | child: Gtk.ScrolledWindow { 28 | child: Gtk.Box { 29 | orientation: vertical; 30 | valign: center; 31 | vexpand: false; 32 | margin-start: 40; 33 | margin-end: 40; 34 | margin-top: 20; 35 | margin-bottom: 20; 36 | spacing: 20; 37 | styles ["main-box"] 38 | 39 | Adw.PreferencesGroup theme_group { 40 | title: _("Theme Options"); 41 | Adw.ComboRow color_theme_options { 42 | title: _("Color Theme"); 43 | tooltip-text: _("Changes the color theme of Steam's interface."); 44 | } 45 | Adw.ActionRow no_rounded_corners { 46 | title: _("No Rounded Corners"); 47 | tooltip-text: _("Removes smooth rounded corners from the interface."); 48 | activatable-widget: no_rounded_corners_switch; 49 | 50 | Switch no_rounded_corners_switch { 51 | valign: center; 52 | } 53 | } 54 | } 55 | 56 | Adw.PreferencesGroup window_controls_group { 57 | title: _("Window Controls Options"); 58 | Adw.ComboRow window_controls_options { 59 | title: _("Controls Style"); 60 | tooltip-text: _("Changes Minimize/Maximize/Close Button Theme"); 61 | model: StringList { strings [_("Adwaita"), _("MacOS"), _("Windows")] }; 62 | } 63 | Adw.ComboRow window_controls_layout_options { 64 | title: _("Controls Button Layout"); 65 | tooltip-text: _("Changes Minimize/Maximize/Close Button Layout and Position"); 66 | model: StringList { strings [_("Auto"), _("Adwaita"), _("Elementary"), _("MacOS"), _("Windows"), _("None")] }; 67 | } 68 | } 69 | 70 | Adw.PreferencesGroup library_group { 71 | title: _("Library Options"); 72 | 73 | Adw.ComboRow library_sidebar_options { 74 | title: _("Library Sidebar"); 75 | tooltip-text: _("Changes display options for the Library's left sidebar."); 76 | model: StringList { strings [_("Show"), _("Hover Only")] }; 77 | } 78 | 79 | Adw.ActionRow { 80 | title: _("Hide Library What's New Shelf"); 81 | tooltip-text: _("Disables display of the new updates section on top of the Library."); 82 | activatable-widget: hide_whats_new_switch; 83 | 84 | Switch hide_whats_new_switch { 85 | valign: center; 86 | } 87 | } 88 | } 89 | 90 | Adw.PreferencesGroup login_group { 91 | title: _("Login Options"); 92 | 93 | Adw.ComboRow login_qr_options { 94 | title: _("QR Code Login"); 95 | tooltip-text: _("Changes display options for the mobile QR code in the Login dialog."); 96 | model: StringList { strings [_("Show"), _("Hover Only"), _("Hide")] }; 97 | } 98 | } 99 | 100 | }; 101 | }; 102 | } 103 | } 104 | 105 | menu primary_menu { 106 | section { 107 | item { 108 | label: _("_Preferences"); 109 | action: "app.prefs"; 110 | } 111 | item { 112 | label: _("_Uninstall"); 113 | action: "app.uninstall"; 114 | } 115 | item { 116 | label: _("_About AdwSteamGtk"); 117 | action: "app.about"; 118 | } 119 | } 120 | } 121 | -------------------------------------------------------------------------------- /src/update.py: -------------------------------------------------------------------------------- 1 | # update.ey 2 | # 3 | # Copyright 2022 Foldex 4 | # 5 | # This program is free software: you can redistribute it and/or modify 6 | # it under the terms of the GNU General Public License as published by 7 | # the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # This program is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU General Public License 16 | # along with this program. If not, see . 17 | 18 | import glob 19 | import os 20 | import shutil 21 | import time 22 | from packaging import version 23 | from enum import Enum 24 | 25 | from . import dl 26 | from . import paths 27 | from . import zip 28 | 29 | UPDATE_INTERVAL=3600 # 1 hour 30 | 31 | class ExitCode(Enum): 32 | SUCCESS = 0 33 | FAIL = 1 34 | CURRENT = 2 35 | 36 | def read_check_file(path): 37 | if not os.path.exists(path): 38 | return 0 39 | 40 | with open(path, "r") as f: 41 | line = f.readline() 42 | 43 | if line == "": 44 | line = 0 45 | 46 | return line 47 | 48 | def write_file(string, path): 49 | with open(path, 'w') as f: 50 | f.write(string) 51 | 52 | def need_update(check_only): 53 | new_stamp = int(time.time()) 54 | old_stamp = int(read_check_file(paths.LAST_CHECK_FILE)) 55 | 56 | if old_stamp == 0: 57 | if not check_only: 58 | write_file(str(new_stamp), paths.LAST_CHECK_FILE) 59 | return True 60 | 61 | if new_stamp - old_stamp > UPDATE_INTERVAL: 62 | if not check_only: 63 | write_file(str(new_stamp), paths.LAST_CHECK_FILE) 64 | return True 65 | else: 66 | return False 67 | 68 | def release_is_newer(server_version, cached_version): 69 | return version.parse(server_version) > version.parse(cached_version) 70 | 71 | def check(check_only=False, beta_support=False): 72 | if not os.path.exists(paths.CACHE_DIR): 73 | os.makedirs(paths.CACHE_DIR) 74 | 75 | if not need_update(check_only) and os.path.exists(paths.LAST_RELEASE_FILE): 76 | return (ExitCode.CURRENT, None) 77 | 78 | (dict, api_msg) = dl.get_release_info(beta_support) 79 | 80 | if dict: 81 | last_ver=read_check_file(paths.LAST_VERSION_FILE) 82 | version = dict["tag_name"] 83 | url = dict["zipball_url"] 84 | 85 | # Force Newer if we're downloading the beta 86 | if beta_support: 87 | is_newer = True 88 | # Or if we're not on the beta but there's a stale beta entry 89 | elif not beta_support and last_ver == "Beta": 90 | is_newer = True 91 | else: 92 | is_newer = release_is_newer(version, str(last_ver)) 93 | 94 | if os.path.exists(paths.LAST_RELEASE_FILE) and not is_newer: 95 | return (ExitCode.CURRENT, None) 96 | 97 | if check_only == True and is_newer: 98 | return (ExitCode.SUCCESS, version) 99 | 100 | (ret, dl_msg) = dl.download_release(url, paths.LAST_RELEASE_FILE) 101 | (ret2, pdl_msg) = post_download() 102 | 103 | if ret and ret2: 104 | write_file(version, paths.LAST_VERSION_FILE) 105 | return (ExitCode.SUCCESS, version) 106 | elif not ret: 107 | return (ExitCode.FAIL, dl_msg) 108 | elif not ret2: 109 | return (ExitCode.FAIL, pdl_msg) 110 | else: 111 | return (ExitCode.FAIL, api_msg) 112 | 113 | def clean_dir(path): 114 | if os.path.exists(path): 115 | shutil.rmtree(path) 116 | 117 | def reset_files(): 118 | clean_dir(paths.EXTRACTED_DIR) 119 | os.remove(paths.LAST_CHECK_FILE) 120 | os.remove(paths.LAST_RELEASE_FILE) 121 | os.remove(paths.LAST_VERSION_FILE) 122 | 123 | def move_extract_dir(path, rename): 124 | # Non-Beta 125 | for dir in glob.glob(path + "/tkashkin-Adwaita-for-Steam-*"): 126 | shutil.move(dir, rename) 127 | 128 | # Beta 129 | for dir in glob.glob(path + "/Adwaita-for-Steam-*"): 130 | shutil.move(dir, rename) 131 | 132 | def post_download(): 133 | (ret, msg) = zip.extract(paths.LAST_RELEASE_FILE, paths.TMP_DIR) 134 | 135 | if not ret: 136 | clean_dir(paths.TMP_DIR) 137 | return (ret, msg) 138 | 139 | clean_dir(paths.EXTRACTED_DIR) 140 | move_extract_dir(paths.TMP_DIR, paths.EXTRACTED_DIR) 141 | clean_dir(paths.TMP_DIR) 142 | 143 | return (True, None) 144 | -------------------------------------------------------------------------------- /src/zip.py: -------------------------------------------------------------------------------- 1 | # zip.py 2 | # 3 | # Copyright 2022 Foldex 4 | # 5 | # This program is free software: you can redistribute it and/or modify 6 | # it under the terms of the GNU General Public License as published by 7 | # the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # This program is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU General Public License 16 | # along with this program. If not, see . 17 | 18 | import zipfile 19 | 20 | COLOR_THEMES_PREFIX="/colorthemes" 21 | COLOR_THEMES_EXT=".theme" 22 | 23 | def extract(path, out_dir): 24 | try: 25 | with zipfile.ZipFile(path) as f: 26 | f.extractall(out_dir) 27 | except IOError: 28 | return (False, _("Extract: Failed to read ZIP archive")) 29 | except zipfile.BadZipFile: 30 | return (False, _("Extract: Bad ZIP File")) 31 | except: 32 | return (False, _("Extract: Failed to Extract ZIP File")) 33 | 34 | return (True, None) 35 | --------------------------------------------------------------------------------