├── LICENSE ├── README.md ├── contents ├── code │ └── tools.js ├── config │ ├── config.qml │ └── main.xml └── ui │ ├── ActionMenu.qml │ ├── CompactRepresentation.qml │ ├── ConfigGeneral.qml │ ├── Footer.qml │ ├── ItemGridDelegate.qml │ ├── ItemGridDelegate2.qml │ ├── ItemGridView.qml │ ├── ItemMultiGridView.qml │ ├── MainColumnItem.qml │ ├── MenuRepresentation.qml │ ├── icons │ ├── explorer.svg │ └── explorer_dark.svg │ └── main.qml ├── metadata.desktop └── translate ├── README.md ├── build ├── de.po ├── es_ES.po ├── fr.po ├── he.po ├── hi_IN.po ├── it.po ├── ko.po ├── nl.po ├── pl.po ├── pt_BR.po ├── ru.po ├── template.pot └── tr.po /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 2, June 1991 3 | 4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc., 5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | Preamble 10 | 11 | The licenses for most software are designed to take away your 12 | freedom to share and change it. By contrast, the GNU General Public 13 | License is intended to guarantee your freedom to share and change free 14 | software--to make sure the software is free for all its users. This 15 | General Public License applies to most of the Free Software 16 | Foundation's software and to any other program whose authors commit to 17 | using it. (Some other Free Software Foundation software is covered by 18 | the GNU Lesser General Public License instead.) You can apply it to 19 | your programs, too. 20 | 21 | When we speak of free software, we are referring to freedom, not 22 | price. Our General Public Licenses are designed to make sure that you 23 | have the freedom to distribute copies of free software (and charge for 24 | this service if you wish), that you receive source code or can get it 25 | if you want it, that you can change the software or use pieces of it 26 | in new free programs; and that you know you can do these things. 27 | 28 | To protect your rights, we need to make restrictions that forbid 29 | anyone to deny you these rights or to ask you to surrender the rights. 30 | These restrictions translate to certain responsibilities for you if you 31 | distribute copies of the software, or if you modify it. 32 | 33 | For example, if you distribute copies of such a program, whether 34 | gratis or for a fee, you must give the recipients all the rights that 35 | you have. You must make sure that they, too, receive or can get the 36 | source code. And you must show them these terms so they know their 37 | rights. 38 | 39 | We protect your rights with two steps: (1) copyright the software, and 40 | (2) offer you this license which gives you legal permission to copy, 41 | distribute and/or modify the software. 42 | 43 | Also, for each author's protection and ours, we want to make certain 44 | that everyone understands that there is no warranty for this free 45 | software. If the software is modified by someone else and passed on, we 46 | want its recipients to know that what they have is not the original, so 47 | that any problems introduced by others will not reflect on the original 48 | authors' reputations. 49 | 50 | Finally, any free program is threatened constantly by software 51 | patents. We wish to avoid the danger that redistributors of a free 52 | program will individually obtain patent licenses, in effect making the 53 | program proprietary. To prevent this, we have made it clear that any 54 | patent must be licensed for everyone's free use or not licensed at all. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | GNU GENERAL PUBLIC LICENSE 60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 61 | 62 | 0. This License applies to any program or other work which contains 63 | a notice placed by the copyright holder saying it may be distributed 64 | under the terms of this General Public License. The "Program", below, 65 | refers to any such program or work, and a "work based on the Program" 66 | means either the Program or any derivative work under copyright law: 67 | that is to say, a work containing the Program or a portion of it, 68 | either verbatim or with modifications and/or translated into another 69 | language. (Hereinafter, translation is included without limitation in 70 | the term "modification".) Each licensee is addressed as "you". 71 | 72 | Activities other than copying, distribution and modification are not 73 | covered by this License; they are outside its scope. The act of 74 | running the Program is not restricted, and the output from the Program 75 | is covered only if its contents constitute a work based on the 76 | Program (independent of having been made by running the Program). 77 | Whether that is true depends on what the Program does. 78 | 79 | 1. You may copy and distribute verbatim copies of the Program's 80 | source code as you receive it, in any medium, provided that you 81 | conspicuously and appropriately publish on each copy an appropriate 82 | copyright notice and disclaimer of warranty; keep intact all the 83 | notices that refer to this License and to the absence of any warranty; 84 | and give any other recipients of the Program a copy of this License 85 | along with the Program. 86 | 87 | You may charge a fee for the physical act of transferring a copy, and 88 | you may at your option offer warranty protection in exchange for a fee. 89 | 90 | 2. You may modify your copy or copies of the Program or any portion 91 | of it, thus forming a work based on the Program, and copy and 92 | distribute such modifications or work under the terms of Section 1 93 | above, provided that you also meet all of these conditions: 94 | 95 | a) You must cause the modified files to carry prominent notices 96 | stating that you changed the files and the date of any change. 97 | 98 | b) You must cause any work that you distribute or publish, that in 99 | whole or in part contains or is derived from the Program or any 100 | part thereof, to be licensed as a whole at no charge to all third 101 | parties under the terms of this License. 102 | 103 | c) If the modified program normally reads commands interactively 104 | when run, you must cause it, when started running for such 105 | interactive use in the most ordinary way, to print or display an 106 | announcement including an appropriate copyright notice and a 107 | notice that there is no warranty (or else, saying that you provide 108 | a warranty) and that users may redistribute the program under 109 | these conditions, and telling the user how to view a copy of this 110 | License. (Exception: if the Program itself is interactive but 111 | does not normally print such an announcement, your work based on 112 | the Program is not required to print an announcement.) 113 | 114 | These requirements apply to the modified work as a whole. If 115 | identifiable sections of that work are not derived from the Program, 116 | and can be reasonably considered independent and separate works in 117 | themselves, then this License, and its terms, do not apply to those 118 | sections when you distribute them as separate works. But when you 119 | distribute the same sections as part of a whole which is a work based 120 | on the Program, the distribution of the whole must be on the terms of 121 | this License, whose permissions for other licensees extend to the 122 | entire whole, and thus to each and every part regardless of who wrote it. 123 | 124 | Thus, it is not the intent of this section to claim rights or contest 125 | your rights to work written entirely by you; rather, the intent is to 126 | exercise the right to control the distribution of derivative or 127 | collective works based on the Program. 128 | 129 | In addition, mere aggregation of another work not based on the Program 130 | with the Program (or with a work based on the Program) on a volume of 131 | a storage or distribution medium does not bring the other work under 132 | the scope of this License. 133 | 134 | 3. You may copy and distribute the Program (or a work based on it, 135 | under Section 2) in object code or executable form under the terms of 136 | Sections 1 and 2 above provided that you also do one of the following: 137 | 138 | a) Accompany it with the complete corresponding machine-readable 139 | source code, which must be distributed under the terms of Sections 140 | 1 and 2 above on a medium customarily used for software interchange; or, 141 | 142 | b) Accompany it with a written offer, valid for at least three 143 | years, to give any third party, for a charge no more than your 144 | cost of physically performing source distribution, a complete 145 | machine-readable copy of the corresponding source code, to be 146 | distributed under the terms of Sections 1 and 2 above on a medium 147 | customarily used for software interchange; or, 148 | 149 | c) Accompany it with the information you received as to the offer 150 | to distribute corresponding source code. (This alternative is 151 | allowed only for noncommercial distribution and only if you 152 | received the program in object code or executable form with such 153 | an offer, in accord with Subsection b above.) 154 | 155 | The source code for a work means the preferred form of the work for 156 | making modifications to it. For an executable work, complete source 157 | code means all the source code for all modules it contains, plus any 158 | associated interface definition files, plus the scripts used to 159 | control compilation and installation of the executable. However, as a 160 | special exception, the source code distributed need not include 161 | anything that is normally distributed (in either source or binary 162 | form) with the major components (compiler, kernel, and so on) of the 163 | operating system on which the executable runs, unless that component 164 | itself accompanies the executable. 165 | 166 | If distribution of executable or object code is made by offering 167 | access to copy from a designated place, then offering equivalent 168 | access to copy the source code from the same place counts as 169 | distribution of the source code, even though third parties are not 170 | compelled to copy the source along with the object code. 171 | 172 | 4. You may not copy, modify, sublicense, or distribute the Program 173 | except as expressly provided under this License. Any attempt 174 | otherwise to copy, modify, sublicense or distribute the Program is 175 | void, and will automatically terminate your rights under this License. 176 | However, parties who have received copies, or rights, from you under 177 | this License will not have their licenses terminated so long as such 178 | parties remain in full compliance. 179 | 180 | 5. You are not required to accept this License, since you have not 181 | signed it. However, nothing else grants you permission to modify or 182 | distribute the Program or its derivative works. These actions are 183 | prohibited by law if you do not accept this License. Therefore, by 184 | modifying or distributing the Program (or any work based on the 185 | Program), you indicate your acceptance of this License to do so, and 186 | all its terms and conditions for copying, distributing or modifying 187 | the Program or works based on it. 188 | 189 | 6. Each time you redistribute the Program (or any work based on the 190 | Program), the recipient automatically receives a license from the 191 | original licensor to copy, distribute or modify the Program subject to 192 | these terms and conditions. You may not impose any further 193 | restrictions on the recipients' exercise of the rights granted herein. 194 | You are not responsible for enforcing compliance by third parties to 195 | this License. 196 | 197 | 7. If, as a consequence of a court judgment or allegation of patent 198 | infringement or for any other reason (not limited to patent issues), 199 | conditions are imposed on you (whether by court order, agreement or 200 | otherwise) that contradict the conditions of this License, they do not 201 | excuse you from the conditions of this License. If you cannot 202 | distribute so as to satisfy simultaneously your obligations under this 203 | License and any other pertinent obligations, then as a consequence you 204 | may not distribute the Program at all. For example, if a patent 205 | license would not permit royalty-free redistribution of the Program by 206 | all those who receive copies directly or indirectly through you, then 207 | the only way you could satisfy both it and this License would be to 208 | refrain entirely from distribution of the Program. 209 | 210 | If any portion of this section is held invalid or unenforceable under 211 | any particular circumstance, the balance of the section is intended to 212 | apply and the section as a whole is intended to apply in other 213 | circumstances. 214 | 215 | It is not the purpose of this section to induce you to infringe any 216 | patents or other property right claims or to contest validity of any 217 | such claims; this section has the sole purpose of protecting the 218 | integrity of the free software distribution system, which is 219 | implemented by public license practices. Many people have made 220 | generous contributions to the wide range of software distributed 221 | through that system in reliance on consistent application of that 222 | system; it is up to the author/donor to decide if he or she is willing 223 | to distribute software through any other system and a licensee cannot 224 | impose that choice. 225 | 226 | This section is intended to make thoroughly clear what is believed to 227 | be a consequence of the rest of this License. 228 | 229 | 8. If the distribution and/or use of the Program is restricted in 230 | certain countries either by patents or by copyrighted interfaces, the 231 | original copyright holder who places the Program under this License 232 | may add an explicit geographical distribution limitation excluding 233 | those countries, so that distribution is permitted only in or among 234 | countries not thus excluded. In such case, this License incorporates 235 | the limitation as if written in the body of this License. 236 | 237 | 9. The Free Software Foundation may publish revised and/or new versions 238 | of the General Public License from time to time. Such new versions will 239 | be similar in spirit to the present version, but may differ in detail to 240 | address new problems or concerns. 241 | 242 | Each version is given a distinguishing version number. If the Program 243 | specifies a version number of this License which applies to it and "any 244 | later version", you have the option of following the terms and conditions 245 | either of that version or of any later version published by the Free 246 | Software Foundation. If the Program does not specify a version number of 247 | this License, you may choose any version ever published by the Free Software 248 | Foundation. 249 | 250 | 10. If you wish to incorporate parts of the Program into other free 251 | programs whose distribution conditions are different, write to the author 252 | to ask for permission. For software which is copyrighted by the Free 253 | Software Foundation, write to the Free Software Foundation; we sometimes 254 | make exceptions for this. Our decision will be guided by the two goals 255 | of preserving the free status of all derivatives of our free software and 256 | of promoting the sharing and reuse of software generally. 257 | 258 | NO WARRANTY 259 | 260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 268 | REPAIR OR CORRECTION. 269 | 270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 278 | POSSIBILITY OF SUCH DAMAGES. 279 | 280 | END OF TERMS AND CONDITIONS 281 | 282 | How to Apply These Terms to Your New Programs 283 | 284 | If you develop a new program, and you want it to be of the greatest 285 | possible use to the public, the best way to achieve this is to make it 286 | free software which everyone can redistribute and change under these terms. 287 | 288 | To do so, attach the following notices to the program. It is safest 289 | to attach them to the start of each source file to most effectively 290 | convey the exclusion of warranty; and each file should have at least 291 | the "copyright" line and a pointer to where the full notice is found. 292 | 293 | 294 | Copyright (C) 295 | 296 | This program is free software; you can redistribute it and/or modify 297 | it under the terms of the GNU General Public License as published by 298 | the Free Software Foundation; either version 2 of the License, or 299 | (at your option) any later version. 300 | 301 | This program is distributed in the hope that it will be useful, 302 | but WITHOUT ANY WARRANTY; without even the implied warranty of 303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 304 | GNU General Public License for more details. 305 | 306 | You should have received a copy of the GNU General Public License along 307 | with this program; if not, write to the Free Software Foundation, Inc., 308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 309 | 310 | Also add information on how to contact you by electronic and paper mail. 311 | 312 | If the program is interactive, make it output a short notice like this 313 | when it starts in an interactive mode: 314 | 315 | Gnomovision version 69, Copyright (C) year name of author 316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 317 | This is free software, and you are welcome to redistribute it 318 | under certain conditions; type `show c' for details. 319 | 320 | The hypothetical commands `show w' and `show c' should show the appropriate 321 | parts of the General Public License. Of course, the commands you use may 322 | be called something other than `show w' and `show c'; they could even be 323 | mouse-clicks or menu items--whatever suits your program. 324 | 325 | You should also get your employer (if you work as a programmer) or your 326 | school, if any, to sign a "copyright disclaimer" for the program, if 327 | necessary. Here is a sample; alter the names: 328 | 329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 330 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 331 | 332 | , 1 April 1989 333 | Ty Coon, President of Vice 334 | 335 | This General Public License does not permit incorporating your program into 336 | proprietary programs. If your program is a subroutine library, you may 337 | consider it more useful to permit linking proprietary applications with the 338 | library. If this is what you want to do, use the GNU Lesser General 339 | Public License instead of this License. 340 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

Menu11

2 |

A highly customizable launcher inspired from windows 11 menu. Fork of MenuZ.

3 |

4 | GitHub release License Install Manually 5 |

6 |

7 | 8 |

9 | 10 | Deprecated: 11 | - It is not maintainable and has many errors and bugs, unfortunately I am not on KDE right now so I cannot help with those 12 | Suggested replacement: https://github.com/adhec/OnzeMenuKDE 13 | 14 | OnzeMenu is not that customizable but I hope it will continue to improve. 15 | 16 | 17 | #### *Special Thanks to* 18 | - [Prateek SU](https://github.com/prateekmedia) / Me for creating [Menu 11](https://github.com/prateekmedia/) by forking [Menu Z](https://store.kde.org/p/1367167/) and for continuously adding and improving features. 19 | - [Nayam Amarshe](https://github.com/NayamAmarshe) for improving the design. 20 | - [John Vincent](https://github.com/TenSeventy7) for improving grid view of recommended section. 21 | - [Lupert Everett](https://github.com/LupertEverett) for adding multiple footer icons. 22 | Know More 23 | 24 | ### Frequently asked questions(FAQ) 25 | #### How do I fix "Sorry! There was an error loading Menu 11." 26 | This is most likely due to missing `plasma-widgets-addons` package on your system. 27 | 28 | You can install this using `sudo apt install plasma-widgets-addons` on Ubuntu / Debian Distros or `sudo pacman -S kdeplasma-addons` on Arch based distro. 29 | 30 | If you have any other distro then please search for the package name for your distro. 31 | 32 | #### The elements look messed up, What's wrong with this applet? 33 | This can be due to various reasons: 34 | - KDE version you are using is too old, we recommend at least **KDE 5.21** if you are using this applet. 35 | - Another applet or program is causing this issue. 36 | 37 | You can [create an issue](https://github.com/prateekmedia/Menu11/issues/new) if you think it's due to a KDE update or it's not mentioned above. 38 | 39 |

Installing Manually

40 | 41 | ### Using git 42 | ```bash 43 | git clone https://github.com/prateekmedia/Menu11.git ~/.local/share/plasma/plasmoids/menu11; 44 | kquitapp5 plasmashell || killall plasmashell && kstart5 plasmashell; 45 | ``` 46 | -------------------------------------------------------------------------------- /contents/code/tools.js: -------------------------------------------------------------------------------- 1 | /*************************************************************************** 2 | * Copyright (C) 2013 by Aurélien Gâteau * 3 | * Copyright (C) 2013-2015 by Eike Hein * 4 | * Copyright (C) 2017 by Ivan Cukic * 5 | * * 6 | * This program is free software; you can redistribute it and/or modify * 7 | * it under the terms of the GNU General Public License as published by * 8 | * the Free Software Foundation; either version 2 of the License, or * 9 | * (at your option) any later version. * 10 | * * 11 | * This program is distributed in the hope that it will be useful, * 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 14 | * GNU General Public License for more details. * 15 | * * 16 | * You should have received a copy of the GNU General Public License * 17 | * along with this program; if not, write to the * 18 | * Free Software Foundation, Inc., * 19 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * 20 | ***************************************************************************/ 21 | 22 | .pragma library 23 | 24 | function fillActionMenu(i18n, actionMenu, actionList, favoriteModel, favoriteId) { 25 | // Accessing actionList can be a costly operation, so we don't 26 | // access it until we need the menu. 27 | 28 | var actions = createFavoriteActions(i18n, favoriteModel, favoriteId); 29 | 30 | if (actions) { 31 | if (actionList && actionList.length > 0) { 32 | var separator = { "type": "separator" }; 33 | actionList.push(separator); 34 | // actionList = actions.concat(actionList); // this crashes Qt O.o 35 | actionList.push.apply(actionList, actions); 36 | } else { 37 | actionList = actions; 38 | } 39 | } 40 | 41 | actionMenu.actionList = actionList; 42 | } 43 | 44 | function createFavoriteActions(i18n, favoriteModel, favoriteId) { 45 | if (favoriteModel === null || !favoriteModel.enabled || favoriteId == null) { 46 | return null; 47 | } 48 | 49 | 50 | if (favoriteModel.activities === undefined || 51 | favoriteModel.activities.runningActivities.length <= 1) { 52 | var action = {}; 53 | 54 | if (favoriteModel.isFavorite(favoriteId)) { 55 | action.text = i18n("Remove from Favorites"); 56 | action.icon = "bookmark-remove"; 57 | action.actionId = "_kicker_favorite_remove"; 58 | } else if (favoriteModel.maxFavorites == -1 || favoriteModel.count < favoriteModel.maxFavorites) { 59 | action.text = i18n("Add to Favorites"); 60 | action.icon = "bookmark-new"; 61 | action.actionId = "_kicker_favorite_add"; 62 | } else { 63 | return null; 64 | } 65 | 66 | action.actionArgument = { favoriteModel: favoriteModel, favoriteId: favoriteId }; 67 | 68 | return [action]; 69 | 70 | } else { 71 | var actions = []; 72 | 73 | var linkedActivities = favoriteModel.linkedActivitiesFor(favoriteId); 74 | 75 | var activities = favoriteModel.activities.runningActivities; 76 | 77 | // Adding the item to link/unlink to all activities 78 | 79 | var linkedToAllActivities = 80 | !(linkedActivities.indexOf(":global") === -1); 81 | 82 | actions.push({ 83 | text : i18n("On All Activities"), 84 | checkable : true, 85 | 86 | actionId : linkedToAllActivities ? 87 | "_kicker_favorite_remove_from_activity" : 88 | "_kicker_favorite_set_to_activity", 89 | checked : linkedToAllActivities, 90 | 91 | actionArgument : { 92 | favoriteModel: favoriteModel, 93 | favoriteId: favoriteId, 94 | favoriteActivity: "" 95 | } 96 | }); 97 | 98 | 99 | // Adding items for each activity separately 100 | 101 | var addActivityItem = function(activityId, activityName) { 102 | var linkedToThisActivity = 103 | !(linkedActivities.indexOf(activityId) === -1); 104 | 105 | actions.push({ 106 | text : activityName, 107 | checkable : true, 108 | checked : linkedToThisActivity && !linkedToAllActivities, 109 | 110 | actionId : 111 | // If we are on all activities, and the user clicks just one 112 | // specific activity, unlink from everything else 113 | linkedToAllActivities ? "_kicker_favorite_set_to_activity" : 114 | 115 | // If we are linked to the current activity, just unlink from 116 | // that single one 117 | linkedToThisActivity ? "_kicker_favorite_remove_from_activity" : 118 | 119 | // Otherwise, link to this activity, but do not unlink from 120 | // other ones 121 | "_kicker_favorite_add_to_activity", 122 | 123 | actionArgument : { 124 | favoriteModel : favoriteModel, 125 | favoriteId : favoriteId, 126 | favoriteActivity : activityId 127 | } 128 | }); 129 | }; 130 | 131 | // Adding the item to link/unlink to the current activity 132 | 133 | addActivityItem(favoriteModel.activities.currentActivity, i18n("On the Current Activity")); 134 | 135 | actions.push({ 136 | type: "separator", 137 | actionId: "_kicker_favorite_separator" 138 | }); 139 | 140 | // Adding the items for each activity 141 | 142 | activities.forEach(function(activityId) { 143 | addActivityItem(activityId, favoriteModel.activityNameForId(activityId)); 144 | }); 145 | 146 | return [{ 147 | text : i18n("Show in Favorites"), 148 | icon : "favorite", 149 | subActions : actions 150 | }]; 151 | } 152 | } 153 | 154 | function triggerAction(model, index, actionId, actionArgument) { 155 | function startsWith(txt, needle) { 156 | return txt.substr(0, needle.length) === needle; 157 | } 158 | 159 | if (startsWith(actionId, "_kicker_favorite_")) { 160 | handleFavoriteAction(actionId, actionArgument); 161 | return; 162 | } 163 | 164 | var closeRequested = model.trigger(index, actionId, actionArgument); 165 | 166 | if (closeRequested) { 167 | return true; 168 | } 169 | 170 | return false; 171 | } 172 | 173 | function handleFavoriteAction(actionId, actionArgument) { 174 | var favoriteId = actionArgument.favoriteId; 175 | var favoriteModel = actionArgument.favoriteModel; 176 | 177 | console.log(actionId); 178 | 179 | if (favoriteModel === null || favoriteId == null) { 180 | return null; 181 | } 182 | 183 | if (actionId == "_kicker_favorite_remove") { 184 | console.log("Removing from all activities"); 185 | favoriteModel.removeFavorite(favoriteId); 186 | } else if (actionId == "_kicker_favorite_add") { 187 | console.log("Adding to global activity"); 188 | favoriteModel.addFavorite(favoriteId); 189 | } else if (actionId == "_kicker_favorite_remove_from_activity") { 190 | console.log("Removing from a specific activity"); 191 | favoriteModel.removeFavoriteFrom(favoriteId, actionArgument.favoriteActivity); 192 | 193 | } else if (actionId == "_kicker_favorite_add_to_activity") { 194 | console.log("Adding to another activity"); 195 | favoriteModel.addFavoriteTo(favoriteId, actionArgument.favoriteActivity); 196 | 197 | } else if (actionId == "_kicker_favorite_set_to_activity") { 198 | console.log("Removing the item from the favourites, and re-adding it just to be on a specific activity"); 199 | favoriteModel.setFavoriteOn(favoriteId, actionArgument.favoriteActivity); 200 | 201 | } 202 | } 203 | -------------------------------------------------------------------------------- /contents/config/config.qml: -------------------------------------------------------------------------------- 1 | /*************************************************************************** 2 | * Copyright (C) 2014 by Eike Hein * 3 | * * 4 | * This program is free software; you can redistribute it and/or modify * 5 | * it under the terms of the GNU General Public License as published by * 6 | * the Free Software Foundation; either version 2 of the License, or * 7 | * (at your option) any later version. * 8 | * * 9 | * This program is distributed in the hope that it will be useful, * 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 12 | * GNU General Public License for more details. * 13 | * * 14 | * You should have received a copy of the GNU General Public License * 15 | * along with this program; if not, write to the * 16 | * Free Software Foundation, Inc., * 17 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * 18 | ***************************************************************************/ 19 | 20 | import QtQuick 2.0 21 | 22 | import org.kde.plasma.configuration 2.0 23 | 24 | ConfigModel { 25 | ConfigCategory { 26 | name: i18n("General") 27 | icon: "preferences-desktop-plasma" 28 | source: "ConfigGeneral.qml" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /contents/config/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | start-here-kde 12 | 13 | 14 | 15 | false 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 0 25 | 26 | 27 | 28 | 29 | 0 30 | 31 | 32 | 33 | preferred://browser,kontact.desktop,systemsettings.desktop,org.kde.dolphin.desktop,ktp-contactlist.desktop,org.kde.kate.desktop,org.kde.discover 34 | 35 | 36 | 37 | logout,reboot,shutdown 38 | 39 | 40 | 41 | false 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | true 51 | 52 | 53 | 54 | true 55 | 56 | 57 | 58 | true 59 | 60 | 61 | 62 | false 63 | 64 | 65 | false 66 | 67 | 68 | 69 | 70 | true 71 | 72 | 73 | 74 | shell,bookmarks,baloosearch,locations 75 | 76 | 77 | 78 | 0 79 | 80 | 81 | 82 | 0 83 | 84 | 85 | 6 86 | 87 | 88 | 3 89 | 90 | 91 | 92 | 0 93 | 94 | 95 | 96 | false 97 | 98 | 99 | 100 | true 101 | 102 | 103 | 104 | true 105 | 106 | 107 | 108 | false 109 | 110 | 111 | 112 | false 113 | 114 | 115 | 116 | false 117 | 118 | 119 | 120 | false 121 | 122 | 123 | 124 | false 125 | 126 | 127 | 128 | true 129 | 130 | 131 | 132 | true 133 | 134 | 135 | 136 | false 137 | 138 | 139 | 140 | true 141 | 142 | 143 | 144 | false 145 | 146 | 147 | true 148 | 149 | 150 | 151 | false 152 | 153 | 154 | true 155 | 156 | 157 | 158 | -------------------------------------------------------------------------------- /contents/ui/ActionMenu.qml: -------------------------------------------------------------------------------- 1 | /*************************************************************************** 2 | * Copyright (C) 2013 by Aurélien Gâteau * 3 | * Copyright (C) 2014-2015 by Eike Hein * 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 2 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, write to the * 17 | * Free Software Foundation, Inc., * 18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * 19 | ***************************************************************************/ 20 | 21 | import QtQuick 2.0 22 | 23 | import org.kde.plasma.components 2.0 as PlasmaComponents 24 | 25 | Item { 26 | id: root 27 | 28 | property QtObject menu 29 | property Item visualParent 30 | property variant actionList 31 | property bool opened: menu ? (menu.status != PlasmaComponents.DialogStatus.Closed) : false 32 | 33 | signal actionClicked(string actionId, variant actionArgument) 34 | signal closed 35 | 36 | onActionListChanged: refreshMenu(); 37 | 38 | onOpenedChanged: { 39 | if (!opened) { 40 | closed(); 41 | } 42 | } 43 | 44 | function open(x, y) { 45 | if (!actionList) { 46 | return; 47 | } 48 | 49 | if (x && y) { 50 | menu.open(x, y); 51 | } else { 52 | menu.open(); 53 | } 54 | } 55 | 56 | function refreshMenu() { 57 | if (menu) { 58 | menu.destroy(); 59 | } 60 | 61 | if (!actionList) { 62 | return; 63 | } 64 | 65 | menu = contextMenuComponent.createObject(root); 66 | 67 | fillMenu(menu, actionList); 68 | } 69 | 70 | function fillMenu(menu, items) { 71 | items.forEach(function (actionItem) { 72 | if (actionItem.subActions) { 73 | // This is a menu 74 | var submenuItem = contextSubmenuItemComponent.createObject( 75 | menu, { "actionItem": actionItem }); 76 | 77 | fillMenu(submenuItem.submenu, actionItem.subActions); 78 | 79 | } else { 80 | var item = contextMenuItemComponent.createObject( 81 | menu, 82 | { 83 | "actionItem": actionItem, 84 | } 85 | ); 86 | } 87 | }); 88 | 89 | } 90 | 91 | Component { 92 | id: contextMenuComponent 93 | 94 | PlasmaComponents.ContextMenu { 95 | visualParent: root.visualParent 96 | } 97 | } 98 | 99 | Component { 100 | id: contextSubmenuItemComponent 101 | 102 | PlasmaComponents.MenuItem { 103 | id: submenuItem 104 | 105 | property variant actionItem 106 | 107 | text: actionItem.text ? actionItem.text : "" 108 | icon: actionItem.icon ? actionItem.icon : null 109 | 110 | property variant submenu: submenu_ 111 | 112 | PlasmaComponents.ContextMenu { 113 | id: submenu_ 114 | visualParent: submenuItem.action 115 | } 116 | } 117 | } 118 | 119 | Component { 120 | id: contextMenuItemComponent 121 | 122 | PlasmaComponents.MenuItem { 123 | property variant actionItem 124 | 125 | text: actionItem.text ? actionItem.text : "" 126 | enabled: actionItem.type != "title" && ("enabled" in actionItem ? actionItem.enabled : true) 127 | separator: actionItem.type == "separator" 128 | section: actionItem.type == "title" 129 | icon: actionItem.icon ? actionItem.icon : null 130 | checkable: actionItem.checkable ? actionItem.checkable : false 131 | checked: actionItem.checked ? actionItem.checked : false 132 | 133 | onClicked: { 134 | actionClicked(actionItem.actionId, actionItem.actionArgument); 135 | } 136 | } 137 | } 138 | } 139 | -------------------------------------------------------------------------------- /contents/ui/CompactRepresentation.qml: -------------------------------------------------------------------------------- 1 | /*************************************************************************** 2 | * Copyright (C) 2013-2014 by Eike Hein * 3 | * Copyright (C) 2021 by Prateek SU * 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 2 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, write to the * 17 | * Free Software Foundation, Inc., * 18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * 19 | ***************************************************************************/ 20 | 21 | import QtQuick 2.12 22 | import QtQuick.Layouts 1.12 23 | 24 | import org.kde.plasma.plasmoid 2.0 25 | import org.kde.plasma.core 2.0 as PlasmaCore 26 | 27 | Item { 28 | id: root 29 | 30 | readonly property var screenGeometry: plasmoid.screenGeometry 31 | readonly property bool inPanel: (plasmoid.location == PlasmaCore.Types.TopEdge 32 | || plasmoid.location == PlasmaCore.Types.RightEdge 33 | || plasmoid.location == PlasmaCore.Types.BottomEdge 34 | || plasmoid.location == PlasmaCore.Types.LeftEdge) 35 | readonly property bool vertical: (plasmoid.formFactor == PlasmaCore.Types.Vertical) 36 | readonly property bool useCustomButtonImage: (plasmoid.configuration.useCustomButtonImage 37 | && plasmoid.configuration.customButtonImage.length != 0) 38 | property QtObject dashWindow: null 39 | 40 | Plasmoid.status: dashWindow && dashWindow.visible ? PlasmaCore.Types.RequiresAttentionStatus : PlasmaCore.Types.PassiveStatus 41 | 42 | onWidthChanged: updateSizeHints() 43 | onHeightChanged: updateSizeHints() 44 | 45 | function updateSizeHints() { 46 | if (useCustomButtonImage) { 47 | if (vertical) { 48 | var scaledHeight = Math.floor(parent.width * (buttonIcon.implicitHeight / buttonIcon.implicitWidth)); 49 | root.Layout.minimumHeight = scaledHeight; 50 | root.Layout.maximumHeight = scaledHeight; 51 | root.Layout.minimumWidth = units.iconSizes.small; 52 | root.Layout.maximumWidth = inPanel ? units.iconSizeHints.panel : -1; 53 | } else { 54 | var scaledWidth = Math.floor(parent.height * (buttonIcon.implicitWidth / buttonIcon.implicitHeight)); 55 | root.Layout.minimumWidth = scaledWidth; 56 | root.Layout.maximumWidth = scaledWidth; 57 | root.Layout.minimumHeight = units.iconSizes.small; 58 | root.Layout.maximumHeight = inPanel ? units.iconSizeHints.panel : -1; 59 | } 60 | } else { 61 | root.Layout.minimumWidth = units.iconSizes.small; 62 | root.Layout.maximumWidth = inPanel ? units.iconSizeHints.panel : -1; 63 | root.Layout.minimumHeight = units.iconSizes.small 64 | root.Layout.maximumHeight = inPanel ? units.iconSizeHints.panel : -1; 65 | } 66 | } 67 | 68 | Connections { 69 | target: units.iconSizeHints 70 | 71 | onPanelChanged: updateSizeHints() 72 | } 73 | 74 | PlasmaCore.IconItem { 75 | id: buttonIcon 76 | 77 | anchors.fill: parent 78 | 79 | readonly property double aspectRatio: (vertical ? implicitHeight / implicitWidth 80 | : implicitWidth / implicitHeight) 81 | 82 | source: useCustomButtonImage ? plasmoid.configuration.customButtonImage : plasmoid.configuration.icon 83 | 84 | active: mouseArea.containsMouse 85 | 86 | smooth: true 87 | 88 | // A custom icon could also be rectangular. However, if a square, custom, icon is given, assume it 89 | // to be an icon and round it to the nearest icon size again to avoid scaling artefacts. 90 | roundToIconSize: !useCustomButtonImage || aspectRatio === 1 91 | 92 | onSourceChanged: updateSizeHints() 93 | } 94 | 95 | MouseArea 96 | { 97 | id: mouseArea 98 | 99 | anchors.fill: parent 100 | 101 | hoverEnabled: true 102 | 103 | onClicked: { 104 | dashWindow.visible = !dashWindow.visible; 105 | } 106 | } 107 | 108 | Component.onCompleted: { 109 | dashWindow = Qt.createQmlObject("MenuRepresentation {}", root); 110 | plasmoid.activated.connect(function() { 111 | dashWindow.visible = !dashWindow.visible; 112 | }); 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /contents/ui/ConfigGeneral.qml: -------------------------------------------------------------------------------- 1 | /*************************************************************************** 2 | * Copyright (C) 2014 by Eike Hein * 3 | * Copyright (C) 2021 by Prateek SU * 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 2 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, write to the * 17 | * Free Software Foundation, Inc., * 18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * 19 | ***************************************************************************/ 20 | 21 | import QtQuick 2.12 22 | import QtQuick.Controls 2.5 23 | 24 | import org.kde.plasma.core 2.0 as PlasmaCore 25 | import org.kde.kquickcontrolsaddons 2.0 as KQuickAddons 26 | import org.kde.draganddrop 2.0 as DragDrop 27 | import org.kde.kirigami 2.3 as Kirigami 28 | 29 | import org.kde.plasma.private.kicker 0.1 as Kicker 30 | 31 | Kirigami.FormLayout { 32 | id: configGeneral 33 | 34 | anchors.left: parent.left 35 | anchors.right: parent.right 36 | 37 | property bool isDash: (plasmoid.pluginName === "org.kde.plasma.kickerdash") 38 | 39 | property string cfg_icon: plasmoid.configuration.icon 40 | property bool cfg_useCustomButtonImage: plasmoid.configuration.useCustomButtonImage 41 | property string cfg_customButtonImage: plasmoid.configuration.customButtonImage 42 | 43 | property alias cfg_appNameFormat: appNameFormat.currentIndex 44 | 45 | property alias cfg_menuPosition: menuPosition.currentIndex 46 | property alias cfg_favGridModel: favGridModel.currentIndex 47 | property alias cfg_recentGridModel: recentGridModel.currentIndex 48 | 49 | property alias cfg_useExtraRunners: useExtraRunners.checked 50 | property alias cfg_reduceIconSizeFooter: reduceIconSizeFooter.checked 51 | property alias cfg_reduceIconSizeUserProfile: reduceIconSizeUserProfile.checked 52 | property alias cfg_reducePinnedSize: reducePinnedSize.checked 53 | property alias cfg_gridAllowTwoLines: gridAllowTwoLines.checked 54 | property alias cfg_defaultAllApps: defaultAllApps.checked 55 | property alias cfg_showDescription: showDescription.checked 56 | property alias cfg_alwaysShowSearchBar: alwaysShowSearchBar.checked 57 | property alias cfg_preferFullName: preferFullName.checked 58 | property alias cfg_replaceExplorerIcon: replaceExplorerIcon.checked 59 | 60 | property alias cfg_numberColumns: numberColumns.value 61 | property alias cfg_numberRows: numberRows.value 62 | 63 | property alias cfg_downIconsDocuments: downIconsDocuments.checked 64 | property alias cfg_downIconsDownloads: downIconsDownloads.checked 65 | property alias cfg_downIconsPictures: downIconsPictures.checked 66 | property alias cfg_downIconsMusic: downIconsMusic.checked 67 | property alias cfg_downIconsVideos: downIconsVideos.checked 68 | property alias cfg_downIconsFileManager: downIconsFileManager.checked 69 | property alias cfg_downIconsSystemSettings: downIconsSystemSettings.checked 70 | property alias cfg_downIconsLock: downIconsLock.checked 71 | property alias cfg_downIconsPowerOptions: downIconsPowerOptions.checked 72 | 73 | Button { 74 | id: iconButton 75 | 76 | Kirigami.FormData.label: i18n("Icon:") 77 | 78 | implicitWidth: previewFrame.width + units.smallSpacing * 2 79 | implicitHeight: previewFrame.height + units.smallSpacing * 2 80 | 81 | // Just to provide some visual feedback when dragging; 82 | // cannot have checked without checkable enabled 83 | checkable: true 84 | checked: dropArea.containsAcceptableDrag 85 | 86 | onPressed: iconMenu.opened ? iconMenu.close() : iconMenu.open() 87 | 88 | DragDrop.DropArea { 89 | id: dropArea 90 | 91 | property bool containsAcceptableDrag: false 92 | 93 | anchors.fill: parent 94 | 95 | onDragEnter: { 96 | // Cannot use string operations (e.g. indexOf()) on "url" basic type. 97 | var urlString = event.mimeData.url.toString(); 98 | 99 | // This list is also hardcoded in KIconDialog. 100 | var extensions = [".png", ".xpm", ".svg", ".svgz"]; 101 | containsAcceptableDrag = urlString.indexOf("file:///") === 0 && extensions.some(function (extension) { 102 | return urlString.indexOf(extension) === urlString.length - extension.length; // "endsWith" 103 | }); 104 | 105 | if (!containsAcceptableDrag) { 106 | event.ignore(); 107 | } 108 | } 109 | onDragLeave: containsAcceptableDrag = false 110 | 111 | onDrop: { 112 | if (containsAcceptableDrag) { 113 | // Strip file:// prefix, we already verified in onDragEnter that we have only local URLs. 114 | iconDialog.setCustomButtonImage(event.mimeData.url.toString().substr("file://".length)); 115 | } 116 | containsAcceptableDrag = false; 117 | } 118 | } 119 | 120 | KQuickAddons.IconDialog { 121 | id: iconDialog 122 | 123 | function setCustomButtonImage(image) { 124 | cfg_customButtonImage = image || cfg_icon || "start-here-kde" 125 | cfg_useCustomButtonImage = true; 126 | } 127 | 128 | onIconNameChanged: setCustomButtonImage(iconName); 129 | } 130 | 131 | PlasmaCore.FrameSvgItem { 132 | id: previewFrame 133 | anchors.centerIn: parent 134 | imagePath: plasmoid.location === PlasmaCore.Types.Vertical || plasmoid.location === PlasmaCore.Types.Horizontal 135 | ? "widgets/panel-background" : "widgets/background" 136 | width: units.iconSizes.large + fixedMargins.left + fixedMargins.right 137 | height: units.iconSizes.large + fixedMargins.top + fixedMargins.bottom 138 | 139 | PlasmaCore.IconItem { 140 | anchors.centerIn: parent 141 | width: units.iconSizes.large 142 | height: width 143 | source: cfg_useCustomButtonImage ? cfg_customButtonImage : cfg_icon 144 | } 145 | } 146 | 147 | Menu { 148 | id: iconMenu 149 | 150 | // Appear below the button 151 | y: +parent.height 152 | 153 | onClosed: iconButton.checked = false; 154 | 155 | MenuItem { 156 | text: i18nc("@item:inmenu Open icon chooser dialog", "Choose...") 157 | icon.name: "document-open-folder" 158 | onClicked: iconDialog.open() 159 | } 160 | MenuItem { 161 | text: i18nc("@item:inmenu Reset icon to default", "Clear Icon") 162 | icon.name: "edit-clear" 163 | onClicked: { 164 | cfg_icon = "start-here-kde" 165 | cfg_useCustomButtonImage = false 166 | } 167 | } 168 | } 169 | } 170 | 171 | 172 | Item { 173 | Kirigami.FormData.isSection: true 174 | } 175 | 176 | ComboBox { 177 | id: menuPosition 178 | 179 | Kirigami.FormData.label: i18n("Menu Position:") 180 | 181 | model: [i18n("Center"), i18n("On Edge"), i18n("Auto")] 182 | } 183 | 184 | Item { 185 | Kirigami.FormData.isSection: true 186 | } 187 | 188 | ComboBox { 189 | id: favGridModel 190 | 191 | Kirigami.FormData.label: i18n("Pinned item:") 192 | 193 | model: [i18n("Favourite apps"), i18n("Recent apps"), i18n("Recent documents")] 194 | } 195 | 196 | Item { 197 | Kirigami.FormData.isSection: true 198 | } 199 | 200 | ComboBox { 201 | id: recentGridModel 202 | 203 | Kirigami.FormData.label: i18n("Recommended item:") 204 | 205 | model: [i18n("Recent documents"), i18n("Recent apps"), i18n("Favourite apps"), i18n("None")] 206 | } 207 | 208 | Item { 209 | Kirigami.FormData.isSection: true 210 | } 211 | 212 | SpinBox{ 213 | id: numberColumns 214 | 215 | Kirigami.FormData.label: i18n("Number of columns in grid:") 216 | 217 | from: 4 218 | to: 10 219 | } 220 | 221 | SpinBox{ 222 | id: numberRows 223 | 224 | Kirigami.FormData.label: i18n("Number of rows in grid:") 225 | 226 | from: 1 227 | to: 10 228 | } 229 | 230 | Item { 231 | Kirigami.FormData.isSection: true 232 | } 233 | 234 | CheckBox { 235 | id: defaultAllApps 236 | Kirigami.FormData.label: i18n("Panel Properties:") 237 | text: i18n("Show All apps by default") 238 | } 239 | 240 | CheckBox { 241 | id: gridAllowTwoLines 242 | text: i18n("Allow label to have two lines (Pinned)") 243 | } 244 | 245 | CheckBox { 246 | id: showDescription 247 | text: i18n("Show Description for all apps and search item") 248 | } 249 | 250 | CheckBox { 251 | id: alwaysShowSearchBar 252 | text: i18n("Always Show Search Bar") 253 | } 254 | 255 | CheckBox { 256 | id: preferFullName 257 | text: i18n("Prefer showing full name, instead of login name") 258 | } 259 | 260 | Item { 261 | Kirigami.FormData.isSection: true 262 | } 263 | 264 | CheckBox { 265 | id: replaceExplorerIcon 266 | Kirigami.FormData.label: i18n("Icon Properties:") 267 | text: i18n("Replace Explorer icon in footer") 268 | } 269 | 270 | CheckBox { 271 | id: reduceIconSizeUserProfile 272 | text: i18n("Reduce Icon Size for User Profile") 273 | } 274 | 275 | CheckBox { 276 | id: reduceIconSizeFooter 277 | text: i18n("Reduce Icon Size for Footer") 278 | } 279 | 280 | CheckBox { 281 | id: reducePinnedSize 282 | text: i18n("Reduce Icon Size for Pinned item") 283 | } 284 | 285 | Item { 286 | Kirigami.FormData.isSection: true 287 | } 288 | 289 | ComboBox { 290 | id: appNameFormat 291 | 292 | Kirigami.FormData.label: i18n("Show applications as:") 293 | 294 | model: [i18n("Name only"), i18n("Description only"), i18n("Name (Description)"), i18n("Description (Name)")] 295 | } 296 | 297 | Item { 298 | Kirigami.FormData.isSection: true 299 | } 300 | 301 | CheckBox { 302 | id: downIconsDocuments 303 | Kirigami.FormData.label: i18n("Icons on Bottom bar:") 304 | text: i18n("Documents") 305 | } 306 | 307 | CheckBox { 308 | id: downIconsPictures 309 | text: i18n("Pictures") 310 | } 311 | 312 | CheckBox { 313 | id: downIconsMusic 314 | text: i18n("Music") 315 | } 316 | 317 | CheckBox { 318 | id: downIconsDownloads 319 | text: i18n("Downloads") 320 | } 321 | 322 | CheckBox { 323 | id: downIconsVideos 324 | text: i18n("Videos") 325 | } 326 | 327 | CheckBox { 328 | id: downIconsFileManager 329 | text: i18n("File manager") 330 | } 331 | 332 | CheckBox { 333 | id: downIconsSystemSettings 334 | text: i18n("System settings") 335 | } 336 | 337 | CheckBox { 338 | id: downIconsLock 339 | text: i18n("Lock screen") 340 | } 341 | 342 | CheckBox { 343 | id: downIconsPowerOptions 344 | text: i18n("Power options") 345 | } 346 | 347 | Item { 348 | Kirigami.FormData.isSection: true 349 | } 350 | 351 | CheckBox { 352 | id: useExtraRunners 353 | 354 | Kirigami.FormData.label: i18n("Search:") 355 | 356 | text: i18n("Expand search to bookmarks, files and emails") 357 | } 358 | } 359 | -------------------------------------------------------------------------------- /contents/ui/Footer.qml: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Sebastian Kügler 3 | * SPDX-FileCopyrightText: (C) 2020 Carl Schwan 4 | * Copyright (C) 2021 by Mikel Johnson 5 | * Copyright (C) 2021 by Prateek SU 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 2 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 along 18 | * with this program; if not, write to the Free Software Foundation, Inc., 19 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 20 | */ 21 | 22 | import QtQuick 2.12 23 | import QtQuick.Controls 2.12 24 | import QtGraphicalEffects 1.0 25 | import QtQuick.Layouts 1.12 26 | import org.kde.plasma.core 2.0 as PlasmaCore 27 | import org.kde.plasma.components 3.0 as PlasmaComponents 28 | import org.kde.plasma.extras 2.0 as PlasmaExtras 29 | import org.kde.kcoreaddons 1.0 as KCoreAddons 30 | import org.kde.kquickcontrolsaddons 2.0 as KQuickAddons 31 | import org.kde.plasma.private.quicklaunch 1.0 32 | 33 | Control { 34 | id: footer 35 | rightPadding: rightInset 36 | leftPadding: rightPadding 37 | property Item configureButton: configureButton 38 | property Item avatar: avatarButton 39 | property int iconSize: units.iconSizes.smallMedium 40 | property var footerNames: ["Documents", "Pictures", "Music", "Downloads", "Videos", "File manager", "System settings", "Lock screen", "Power options"] 41 | property var footerIcons: ["folder-documents-symbolic", "folder-pictures-symbolic", "folder-music-symbolic", "folder-download-symbolic", "folder-videos-symbolic", plasmoid.configuration.replaceExplorerIcon ? Qt.resolvedUrl((theme.textColor.r * 0.299 + theme.textColor.g * 0.587 + theme.textColor.b * 0.114) > 0.7265625 ? "icons/explorer.svg" : "icons/explorer_dark.svg") : "folder-symbolic", "configure", "system-lock-screen", "system-shutdown"] 42 | 43 | background: Rectangle { 44 | color: Qt.darker(theme.backgroundColor) 45 | opacity: .115 46 | border.width: 1 47 | border.color: "#cacbd0" 48 | radius: 5 49 | } 50 | 51 | 52 | KCoreAddons.KUser { 53 | id: kuser 54 | } 55 | Logic { id: logic } 56 | anchors.bottomMargin: units.largeSpacing * 2 57 | anchors.topMargin: anchors.bottomMargin 58 | anchors.leftMargin: -12 59 | anchors.rightMargin: anchors.leftMargin 60 | height: units.iconSizes.medium * 2.4 61 | 62 | PlasmaCore.DataSource { 63 | id: pmEngine 64 | engine: "powermanagement" 65 | connectedSources: ["PowerDevil", "Sleep States"] 66 | function performOperation(what) { 67 | var service = serviceForSource("PowerDevil") 68 | var operation = service.operationDescription(what) 69 | service.startOperationCall(operation) 70 | } 71 | } 72 | 73 | PlasmaCore.DataSource { 74 | id: executable 75 | engine: "executable" 76 | connectedSources: [] 77 | onNewData: { 78 | var exitCode = data["exit code"] 79 | var exitStatus = data["exit status"] 80 | var stdout = data["stdout"] 81 | var stderr = data["stderr"] 82 | exited(sourceName, exitCode, exitStatus, stdout, stderr) 83 | disconnectSource(sourceName) 84 | } 85 | function exec(cmd) { 86 | if (cmd) { 87 | connectSource(cmd) 88 | } 89 | } 90 | signal exited(string cmd, int exitCode, int exitStatus, string stdout, string stderr) 91 | } 92 | 93 | RowLayout { 94 | id: nameAndIcon 95 | anchors.leftMargin: units.largeSpacing * 3 - footer.rightPadding - footer.anchors.leftMargin 96 | anchors.left: parent.left 97 | x: units.smallSpacing 98 | anchors.right: parent.right 99 | anchors.verticalCenter: parent.verticalCenter 100 | PlasmaComponents.RoundButton { 101 | id: avatarButton 102 | visible: KQuickAddons.KCMShell.authorize("kcm_users.desktop").length > 0 103 | 104 | flat: true 105 | 106 | Layout.preferredWidth: plasmoid.configuration.reduceIconSizeUserProfile ? units.iconSizes.smallMedium * 1.8 : units.iconSizes.large * 1.2 107 | Layout.preferredHeight: Layout.preferredWidth 108 | 109 | Accessible.name: nameLabel.text 110 | Accessible.description: i18n("Go to user settings") 111 | 112 | Image { 113 | id: iconUser 114 | source: kuser.faceIconUrl.toString() || "user-identity" 115 | cache: false 116 | visible: source !== "" 117 | fillMode: Image.PreserveAspectFit 118 | anchors { 119 | fill: parent 120 | margins: PlasmaCore.Units.smallSpacing 121 | } 122 | 123 | layer.enabled: true 124 | layer.effect: OpacityMask { 125 | maskSource: Rectangle { 126 | width: iconUser.width 127 | height: iconUser.height 128 | radius: height / 2 129 | visible: false 130 | } 131 | } 132 | } 133 | 134 | onClicked: { 135 | KQuickAddons.KCMShell.openSystemSettings("kcm_users") 136 | } 137 | 138 | Keys.onPressed: { 139 | // In search on backtab focus on search pane 140 | if (event.key == Qt.Key_Backtab && (root.state == "Search" || mainTabGroup.state == "top")) { 141 | navigationMethod.state = "keyboard" 142 | keyboardNavigation.state = "RightColumn" 143 | root.currentContentView.forceActiveFocus() 144 | event.accepted = true; 145 | return; 146 | } 147 | } 148 | } 149 | 150 | Item { 151 | Layout.fillWidth: true 152 | Layout.preferredHeight: PlasmaCore.Units.gridUnit 153 | Layout.alignment: Layout.AlignVCenter | Qt.AlignLeft 154 | 155 | PlasmaExtras.Heading { 156 | id: nameLabel 157 | anchors.fill: parent 158 | 159 | level: 4 160 | // font.weight: Font.Bold 161 | Text { 162 | font.capitalization: Font.Capitalize 163 | } 164 | text: plasmoid.configuration.preferFullName ? kuser.fullName : kuser.loginName 165 | elide: Text.ElideRight 166 | horizontalAlignment: Text.AlignLeft 167 | verticalAlignment: Text.AlignVCenter 168 | } 169 | } 170 | } 171 | 172 | RowLayout { 173 | anchors.rightMargin: units.largeSpacing * 3 - footer.rightPadding - footer.anchors.leftMargin 174 | anchors.right: parent.right 175 | x: -units.smallSpacing 176 | anchors.verticalCenter: parent.verticalCenter 177 | 178 | // looks visually balanced that way 179 | spacing: Math.round(PlasmaCore.Units.smallSpacing * 2.5) 180 | 181 | Repeater { 182 | model: 9 183 | PlasmaComponents.TabButton { 184 | id: newTabButton 185 | visible: [ 186 | plasmoid.configuration.downIconsDocuments, 187 | plasmoid.configuration.downIconsPictures, 188 | plasmoid.configuration.downIconsMusic, 189 | plasmoid.configuration.downIconsDownloads, 190 | plasmoid.configuration.downIconsVideos, 191 | plasmoid.configuration.downIconsFileManager, 192 | plasmoid.configuration.downIconsSystemSettings, 193 | plasmoid.configuration.downIconsLock, 194 | plasmoid.configuration.downIconsPowerOptions 195 | ][index] 196 | // flat: true 197 | NumberAnimation { 198 | id: animateOpacity 199 | target: newTabButton 200 | properties: "opacity" 201 | from: 1 202 | to: 0.5 203 | duration: PlasmaCore.Units.longDuration 204 | easing.type: Easing.InOutQuad 205 | } 206 | NumberAnimation { 207 | id: animateOpacityReverse 208 | target: newTabButton 209 | properties: "opacity" 210 | from: 0.5 211 | to: 1 212 | duration: PlasmaCore.Units.longDuration 213 | easing.type: Easing.InOutQuad 214 | } 215 | 216 | icon { 217 | name: footerIcons[index] 218 | width: iconSize * (plasmoid.configuration.reduceIconSizeFooter ? 0.97 : 1) 219 | } 220 | onHoveredChanged: hovered ? animateOpacity.start() : animateOpacityReverse.start(); 221 | PlasmaComponents.ToolTip { 222 | text: i18n(footerNames[index]) 223 | } 224 | MouseArea { 225 | onClicked: index < 6 ? executable.exec("xdg-open $(xdg-user-dir" + (index < 5 ? (" " + footerNames[index].toUpperCase()) : "") + ")") : index == 6 ? logic.openUrl("file:///usr/share/applications/systemsettings.desktop") : pmEngine.performOperation(index == 8 ? "requestShutDown" : "lockScreen") 226 | anchors.fill: parent 227 | hoverEnabled: true 228 | cursorShape: containsMouse ? Qt.PointingHandCursor : Qt.ArrowCursor 229 | } 230 | } 231 | } 232 | } 233 | } 234 | -------------------------------------------------------------------------------- /contents/ui/ItemGridDelegate.qml: -------------------------------------------------------------------------------- 1 | /*************************************************************************** 2 | * Copyright (C) 2015 by Eike Hein * 3 | * Copyright (C) 2021 by Prateek SU * 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 2 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, write to the * 17 | * Free Software Foundation, Inc., * 18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * 19 | ***************************************************************************/ 20 | 21 | import QtQuick 2.12 22 | import QtQuick.Layouts 1.12 23 | 24 | import org.kde.plasma.core 2.0 as PlasmaCore 25 | import org.kde.plasma.components 3.0 as PlasmaComponents 26 | 27 | import "../code/tools.js" as Tools 28 | 29 | Item { 30 | id: item 31 | width: GridView.view.cellWidth 32 | height: GridView.view.cellHeight 33 | property bool showLabel: true 34 | property bool showDescription: false 35 | property bool increaseLeftSpacing: false 36 | property int itemIndex: model.index 37 | property string favoriteId: model.favoriteId !== undefined ? model.favoriteId : "" 38 | property url url: model.url !== undefined ? model.url : "" 39 | property variant icon: model.decoration !== undefined ? model.decoration : "" 40 | property var m: model 41 | property bool hasActionList: ((model.favoriteId !== null) 42 | || (("hasActionList" in model) && (model.hasActionList === true))) 43 | 44 | Accessible.role: Accessible.MenuItem 45 | Accessible.name: model.display 46 | function openActionMenu(x, y) { 47 | var actionList = hasActionList ? model.actionList : []; 48 | Tools.fillActionMenu(i18n, actionMenu, actionList, GridView.view.model.favoritesModel, model.favoriteId); 49 | actionMenu.visualParent = item; 50 | actionMenu.open(x, y); 51 | } 52 | 53 | function actionTriggered(actionId, actionArgument) { 54 | var close = (Tools.triggerAction(GridView.view.model, model.index, actionId, actionArgument) === true); 55 | 56 | if (close) { 57 | root.toggle(); 58 | } 59 | } 60 | PlasmaCore.IconItem { 61 | id: icon 62 | x: increaseLeftSpacing ? units.smallSpacing : 0 63 | anchors.verticalCenter: parent.verticalCenter 64 | width: iconSize 65 | height: width 66 | colorGroup: PlasmaCore.Theme.ComplementaryColorGroup 67 | animated: false 68 | usesPlasmaTheme: item.GridView.view.usesPlasmaTheme 69 | source: model.decoration 70 | } 71 | 72 | 73 | ColumnLayout { 74 | width: parent.width * 0.75 75 | visible: showLabel 76 | anchors { 77 | left: icon.right 78 | leftMargin: PlasmaCore.Units.smallSpacing * 4 79 | rightMargin: anchors.leftMargin / 2 80 | verticalCenter: parent.verticalCenter 81 | } 82 | spacing: 0 83 | 84 | PlasmaComponents.Label { 85 | id: label 86 | Layout.maximumWidth: parent.width 87 | maximumLineCount: 1 88 | elide: Text.ElideRight 89 | wrapMode: Text.Wrap 90 | font.pointSize: 9 91 | color: theme.textColor 92 | text: ("name" in model ? model.name : model.display) 93 | } 94 | PlasmaComponents.Label { 95 | Layout.maximumWidth: parent.width 96 | maximumLineCount: 1 97 | elide: Text.ElideRight 98 | wrapMode: Text.Wrap 99 | color: theme.textColor 100 | text: model.description 101 | font.pointSize: 8 102 | visible: showDescription 103 | opacity: 0.7 104 | } 105 | } 106 | 107 | PlasmaCore.ToolTipArea { 108 | id: toolTip 109 | property string text: model.display 110 | anchors.fill: parent 111 | active: label.truncated 112 | mainItem: toolTipDelegate 113 | 114 | onContainsMouseChanged: item.GridView.view.itemContainsMouseChanged(containsMouse) 115 | } 116 | 117 | Keys.onPressed: { 118 | if (event.key === Qt.Key_Menu && hasActionList) { 119 | event.accepted = true; 120 | openActionMenu(item); 121 | } else if ((event.key === Qt.Key_Enter || event.key === Qt.Key_Return)) { 122 | event.accepted = true; 123 | 124 | if ("trigger" in GridView.view.model) { 125 | GridView.view.model.trigger(index, "", null); 126 | root.toggle(); 127 | } 128 | 129 | itemGrid.itemActivated(index, "", null); 130 | } 131 | } 132 | } 133 | -------------------------------------------------------------------------------- /contents/ui/ItemGridDelegate2.qml: -------------------------------------------------------------------------------- 1 | /*************************************************************************** 2 | * Copyright (C) 2015 by Eike Hein * 3 | * * 4 | * This program is free software; you can redistribute it and/or modify * 5 | * it under the terms of the GNU General Public License as published by * 6 | * the Free Software Foundation; either version 2 of the License, or * 7 | * (at your option) any later version. * 8 | * * 9 | * This program is distributed in the hope that it will be useful, * 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 12 | * GNU General Public License for more details. * 13 | * * 14 | * You should have received a copy of the GNU General Public License * 15 | * along with this program; if not, write to the * 16 | * Free Software Foundation, Inc., * 17 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * 18 | ***************************************************************************/ 19 | 20 | import QtQuick 2.12 21 | 22 | import org.kde.plasma.core 2.0 as PlasmaCore 23 | import org.kde.plasma.components 3.0 as PlasmaComponents 24 | 25 | import "../code/tools.js" as Tools 26 | 27 | Item { 28 | id: item 29 | 30 | width: GridView.view.cellWidth 31 | height: GridView.view.cellHeight 32 | property int iconSize: units.iconSizes.large * (plasmoid.configuration.reducePinnedSize ? 0.95 : 1) 33 | 34 | property bool showLabel: true 35 | 36 | property int itemIndex: model.index 37 | property string favoriteId: model.favoriteId !== undefined ? model.favoriteId : "" 38 | property url url: model.url !== undefined ? model.url : "" 39 | property variant icon: model.decoration !== undefined ? model.decoration : "" 40 | property var m: model 41 | property bool hasActionList: ((model.favoriteId !== null) 42 | || (("hasActionList" in model) && (model.hasActionList === true))) 43 | 44 | Accessible.role: Accessible.MenuItem 45 | Accessible.name: model.display 46 | 47 | function openActionMenu(x, y) { 48 | var actionList = hasActionList ? model.actionList : []; 49 | Tools.fillActionMenu(i18n, actionMenu, actionList, GridView.view.model.favoritesModel, model.favoriteId); 50 | actionMenu.visualParent = item; 51 | actionMenu.open(x, y); 52 | } 53 | 54 | function actionTriggered(actionId, actionArgument) { 55 | var close = (Tools.triggerAction(GridView.view.model, model.index, actionId, actionArgument) === true); 56 | if (close) root.toggle(); 57 | } 58 | 59 | PlasmaCore.IconItem { 60 | id: icon 61 | anchors{ 62 | top: parent.top 63 | topMargin: units.smallSpacing * 2 64 | horizontalCenter: parent.horizontalCenter 65 | } 66 | width: iconSize 67 | height: width 68 | colorGroup: PlasmaCore.Theme.ComplementaryColorGroup 69 | animated: false 70 | usesPlasmaTheme: item.GridView.view.usesPlasmaTheme 71 | source: model.decoration 72 | } 73 | 74 | PlasmaComponents.Label { 75 | id: label 76 | visible: showLabel 77 | anchors { 78 | top: icon.bottom 79 | topMargin: units.smallSpacing * (plasmoid.configuration.gridAllowTwoLines ? 0.8 : 1.4) 80 | horizontalCenter: parent.horizontalCenter 81 | } 82 | maximumLineCount: plasmoid.configuration.gridAllowTwoLines ? 2 : 1 83 | horizontalAlignment: Text.AlignHCenter 84 | width: parent.width - units.largeSpacing 85 | elide: Text.ElideRight 86 | wrapMode: Text.Wrap 87 | color: theme.textColor 88 | text: ("name" in model ? model.name : model.display) 89 | } 90 | 91 | PlasmaCore.ToolTipArea { 92 | id: toolTip 93 | property string text: model.display 94 | anchors.fill: parent 95 | active: root.visible && label.truncated 96 | mainItem: toolTipDelegate 97 | onContainsMouseChanged: item.GridView.view.itemContainsMouseChanged(containsMouse) 98 | } 99 | 100 | Keys.onPressed: { 101 | if (event.key === Qt.Key_Menu && hasActionList) { 102 | event.accepted = true; 103 | openActionMenu(item); 104 | } else if ((event.key === Qt.Key_Enter || event.key === Qt.Key_Return)) { 105 | event.accepted = true; 106 | if ("trigger" in GridView.view.model) { 107 | GridView.view.model.trigger(index, "", null); 108 | root.toggle(); 109 | } 110 | 111 | itemGrid.itemActivated(index, "", null); 112 | } 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /contents/ui/ItemGridView.qml: -------------------------------------------------------------------------------- 1 | /*************************************************************************** 2 | * Copyright (C) 2015 by Eike Hein * 3 | * Copyright (C) 2021 by Prateek SU * 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 2 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, write to the * 17 | * Free Software Foundation, Inc., * 18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * 19 | ***************************************************************************/ 20 | 21 | import QtQuick 2.12 22 | 23 | import org.kde.plasma.core 2.0 as PlasmaCore 24 | import org.kde.plasma.components 2.0 as PlasmaComponents 25 | import org.kde.plasma.extras 2.0 as PlasmaExtras 26 | import org.kde.kquickcontrolsaddons 2.0 27 | import org.kde.draganddrop 2.0 28 | 29 | FocusScope { 30 | id: itemGrid 31 | 32 | signal keyNavLeft 33 | signal keyNavRight 34 | signal keyNavUp 35 | signal keyNavDown 36 | 37 | signal itemActivated(int index, string actionId, string argument) 38 | 39 | property bool dragEnabled: true 40 | property bool dropEnabled: false 41 | property bool showLabels: true 42 | property bool increaseLeftSpacings: false 43 | property alias usesPlasmaTheme: gridView.usesPlasmaTheme 44 | 45 | property alias currentIndex: gridView.currentIndex 46 | property alias currentItem: gridView.currentItem 47 | property alias contentItem: gridView.contentItem 48 | property alias count: gridView.count 49 | property alias model: gridView.model 50 | property alias square: gridView.square 51 | property alias showDescriptions: gridView.showDescriptions 52 | 53 | property alias cellWidth: gridView.cellWidth 54 | property alias cellHeight: gridView.cellHeight 55 | property alias iconSize: gridView.iconSize 56 | 57 | property alias horizontalScrollBarPolicy: scrollArea.horizontalScrollBarPolicy 58 | property alias verticalScrollBarPolicy: scrollArea.verticalScrollBarPolicy 59 | 60 | onDropEnabledChanged: { 61 | if (!dropEnabled && "dropPlaceHolderIndex" in model) { 62 | model.dropPlaceHolderIndex = -1; 63 | } 64 | } 65 | 66 | onFocusChanged: { 67 | if (!focus) { 68 | currentIndex = -1; 69 | } 70 | } 71 | 72 | function currentRow() { 73 | if (currentIndex == -1) { 74 | return -1; 75 | } 76 | 77 | return Math.floor(currentIndex / Math.floor(width / cellWidth)); 78 | } 79 | 80 | function currentCol() { 81 | if (currentIndex == -1) { 82 | return -1; 83 | } 84 | 85 | return currentIndex - (currentRow() * Math.floor(width / cellWidth)); 86 | } 87 | 88 | function lastRow() { 89 | var columns = Math.floor(width / cellWidth); 90 | return Math.ceil(count / columns) - 1; 91 | } 92 | 93 | function tryActivate(row, col) { 94 | if (count) { 95 | var columns = Math.floor(width / cellWidth); 96 | var rows = Math.ceil(count / columns); 97 | row = Math.min(row, rows - 1); 98 | col = Math.min(col, columns - 1); 99 | currentIndex = Math.min(row ? ((Math.max(1, row) * columns) + col) 100 | : col, 101 | count - 1); 102 | 103 | focus = true; 104 | } 105 | } 106 | 107 | function forceLayout() { 108 | gridView.forceLayout(); 109 | } 110 | 111 | ActionMenu { 112 | id: actionMenu 113 | 114 | onActionClicked: { 115 | visualParent.actionTriggered(actionId, actionArgument); 116 | } 117 | } 118 | 119 | DropArea { 120 | id: dropArea 121 | 122 | anchors.fill: parent 123 | 124 | onDragMove: { 125 | if (!dropEnabled || gridView.animating || !kicker.dragSource) { 126 | return; 127 | } 128 | 129 | var x = Math.max(0, event.x - (width % cellWidth)); 130 | var cPos = mapToItem(gridView.contentItem, x, event.y); 131 | var item = gridView.itemAt(cPos.x, cPos.y); 132 | 133 | if (item) { 134 | if (kicker.dragSource.parent === gridView.contentItem) { 135 | if (item !== kicker.dragSource) { 136 | item.GridView.view.model.moveRow(dragSource.itemIndex, item.itemIndex); 137 | } 138 | } else if (kicker.dragSource.GridView.view.model.favoritesModel === model 139 | && !model.isFavorite(kicker.dragSource.favoriteId)) { 140 | var hasPlaceholder = (model.dropPlaceholderIndex !== -1); 141 | 142 | model.dropPlaceholderIndex = item.itemIndex; 143 | 144 | if (!hasPlaceholder) { 145 | gridView.currentIndex = (item.itemIndex - 1); 146 | } 147 | } 148 | } else if (kicker.dragSource.parent !== gridView.contentItem 149 | && kicker.dragSource.GridView.view.model.favoritesModel === model 150 | && !model.isFavorite(kicker.dragSource.favoriteId)) { 151 | var hasPlaceholder = (model.dropPlaceholderIndex !== -1); 152 | 153 | model.dropPlaceholderIndex = hasPlaceholder ? model.count - 1 : model.count; 154 | 155 | if (!hasPlaceholder) { 156 | gridView.currentIndex = (model.count - 1); 157 | } 158 | } else { 159 | model.dropPlaceholderIndex = -1; 160 | gridView.currentIndex = -1; 161 | } 162 | } 163 | 164 | onDragLeave: { 165 | if ("dropPlaceholderIndex" in model) { 166 | model.dropPlaceholderIndex = -1; 167 | gridView.currentIndex = -1; 168 | } 169 | } 170 | 171 | onDrop: { 172 | if (kicker.dragSource && kicker.dragSource.parent !== gridView.contentItem && kicker.dragSource.GridView.view.model.favoritesModel === model) { 173 | model.addFavorite(kicker.dragSource.favoriteId, model.dropPlaceholderIndex); 174 | gridView.currentIndex = -1; 175 | } 176 | } 177 | 178 | Timer { 179 | id: resetAnimationDurationTimer 180 | 181 | interval: 120 182 | repeat: false 183 | 184 | onTriggered: { 185 | gridView.animationDuration = interval - 20; 186 | } 187 | } 188 | 189 | Component{ 190 | id: aItemGridDelegate2 191 | ItemGridDelegate2 { 192 | showLabel: showLabels 193 | } 194 | } 195 | Component{ 196 | id: aItemGridDelegate 197 | ItemGridDelegate { 198 | showLabel: showLabels 199 | showDescription: showDescriptions 200 | increaseLeftSpacing: increaseLeftSpacings 201 | } 202 | } 203 | 204 | PlasmaExtras.ScrollArea { 205 | id: scrollArea 206 | 207 | anchors.fill: parent 208 | 209 | focus: true 210 | 211 | horizontalScrollBarPolicy: Qt.ScrollBarAlwaysOff 212 | verticalScrollBarPolicy: Qt.ScrollBarAsNeeded 213 | 214 | GridView { 215 | id: gridView 216 | 217 | signal itemContainsMouseChanged(bool containsMouse) 218 | 219 | property bool usesPlasmaTheme: false 220 | 221 | property int iconSize: units.iconSizes.huge 222 | property bool animating: false 223 | property int animationDuration: dropEnabled ? resetAnimationDurationTimer.interval : 0 224 | property bool square: false 225 | property bool showDescriptions: false 226 | 227 | focus: true 228 | currentIndex: -1 229 | 230 | move: Transition { 231 | enabled: itemGrid.dropEnabled 232 | 233 | SequentialAnimation { 234 | PropertyAction { target: gridView; property: "animating"; value: true } 235 | 236 | NumberAnimation { 237 | duration: gridView.animationDuration 238 | properties: "x, y" 239 | easing.type: Easing.OutQuad 240 | } 241 | 242 | PropertyAction { target: gridView; property: "animating"; value: false } 243 | } 244 | } 245 | 246 | moveDisplaced: Transition { 247 | enabled: itemGrid.dropEnabled 248 | 249 | SequentialAnimation { 250 | PropertyAction { target: gridView; property: "animating"; value: true } 251 | 252 | NumberAnimation { 253 | duration: gridView.animationDuration 254 | properties: "x, y" 255 | easing.type: Easing.OutQuad 256 | } 257 | 258 | PropertyAction { target: gridView; property: "animating"; value: false } 259 | } 260 | } 261 | 262 | keyNavigationWraps: false 263 | boundsBehavior: Flickable.StopAtBounds 264 | 265 | delegate: square ? aItemGridDelegate2 : aItemGridDelegate 266 | 267 | highlight: Item { 268 | property bool isDropPlaceHolder: "dropPlaceholderIndex" in model && currentIndex === model.dropPlaceholderIndex 269 | 270 | PlasmaComponents.Highlight { 271 | visible: gridView.currentItem && !isDropPlaceHolder 272 | anchors.fill: parent 273 | } 274 | 275 | PlasmaCore.FrameSvgItem { 276 | visible: gridView.currentItem && isDropPlaceHolder 277 | anchors.fill: parent 278 | imagePath: "widgets/viewitem" 279 | prefix: "selected" 280 | opacity: 0.5 281 | 282 | PlasmaCore.IconItem { 283 | anchors { 284 | right: parent.right 285 | rightMargin: parent.margins.right 286 | bottom: parent.bottom 287 | bottomMargin: parent.margins.bottom 288 | } 289 | 290 | width: units.iconSizes.smallMedium 291 | height: width 292 | source: "list-add" 293 | active: false 294 | } 295 | } 296 | } 297 | 298 | highlightFollowsCurrentItem: true 299 | highlightMoveDuration: 0 300 | 301 | onCurrentIndexChanged: { 302 | if (currentIndex != -1) { 303 | hoverArea.hoverEnabled = false 304 | focus = true; 305 | } 306 | } 307 | 308 | onCountChanged: { 309 | animationDuration = 0; 310 | resetAnimationDurationTimer.start(); 311 | } 312 | 313 | onModelChanged: { 314 | currentIndex = -1; 315 | } 316 | 317 | Keys.onLeftPressed: { 318 | if (currentCol() !== 0) { 319 | event.accepted = true; 320 | moveCurrentIndexLeft(); 321 | } else { 322 | itemGrid.keyNavLeft(); 323 | } 324 | } 325 | 326 | Keys.onRightPressed: { 327 | var columns = Math.floor(width / cellWidth); 328 | 329 | if (currentCol() !== columns - 1 && currentIndex != count - 1) { 330 | event.accepted = true; 331 | moveCurrentIndexRight(); 332 | } else { 333 | itemGrid.keyNavRight(); 334 | } 335 | } 336 | 337 | Keys.onUpPressed: { 338 | if (currentRow() !== 0) { 339 | event.accepted = true; 340 | moveCurrentIndexUp(); 341 | positionViewAtIndex(currentIndex, GridView.Contain); 342 | } else { 343 | itemGrid.keyNavUp(); 344 | } 345 | } 346 | 347 | Keys.onDownPressed: { 348 | if (currentRow() < itemGrid.lastRow()) { 349 | // Fix moveCurrentIndexDown()'s lack of proper spatial nav down 350 | // into partial columns. 351 | event.accepted = true; 352 | var columns = Math.floor(width / cellWidth); 353 | var newIndex = currentIndex + columns; 354 | currentIndex = Math.min(newIndex, count - 1); 355 | positionViewAtIndex(currentIndex, GridView.Contain); 356 | } else { 357 | itemGrid.keyNavDown(); 358 | } 359 | } 360 | 361 | onItemContainsMouseChanged: { 362 | if (!containsMouse) { 363 | if (!actionMenu.opened) { 364 | gridView.currentIndex = -1; 365 | } 366 | 367 | hoverArea.pressX = -1; 368 | hoverArea.pressY = -1; 369 | hoverArea.lastX = -1; 370 | hoverArea.lastY = -1; 371 | hoverArea.pressedItem = null; 372 | hoverArea.hoverEnabled = true; 373 | } 374 | } 375 | } 376 | } 377 | 378 | MouseArea { 379 | id: hoverArea 380 | 381 | anchors.fill: parent 382 | 383 | property int pressX: -1 384 | property int pressY: -1 385 | property int lastX: -1 386 | property int lastY: -1 387 | property Item pressedItem: null 388 | 389 | acceptedButtons: Qt.LeftButton | Qt.RightButton 390 | 391 | hoverEnabled: true 392 | 393 | function updatePositionProperties(x, y) { 394 | // Prevent hover event synthesis in QQuickWindow interfering 395 | // with keyboard navigation by ignoring repeated events with 396 | // identical coordinates. As the work done here would be re- 397 | // dundant in any case, these are safe to ignore. 398 | if (lastX === x && lastY === y) { 399 | return; 400 | } 401 | 402 | lastX = x; 403 | lastY = y; 404 | 405 | var cPos = mapToItem(gridView.contentItem, x, y); 406 | var item = gridView.itemAt(cPos.x, cPos.y); 407 | 408 | if (!item) { 409 | gridView.currentIndex = -1; 410 | pressedItem = null; 411 | } else { 412 | gridView.currentIndex = item.itemIndex; 413 | itemGrid.focus = (currentIndex != -1) 414 | } 415 | 416 | return item; 417 | } 418 | 419 | onPressed: { 420 | mouse.accepted = true; 421 | 422 | updatePositionProperties(mouse.x, mouse.y); 423 | 424 | pressX = mouse.x; 425 | pressY = mouse.y; 426 | 427 | if (mouse.button == Qt.RightButton) { 428 | if (gridView.currentItem) { 429 | if (gridView.currentItem.hasActionList) { 430 | var mapped = mapToItem(gridView.currentItem, mouse.x, mouse.y); 431 | gridView.currentItem.openActionMenu(mapped.x, mapped.y); 432 | } 433 | } 434 | } else { 435 | pressedItem = gridView.currentItem; 436 | } 437 | } 438 | 439 | onReleased: { 440 | mouse.accepted = true; 441 | updatePositionProperties(mouse.x, mouse.y); 442 | 443 | if (gridView.currentItem && gridView.currentItem == pressedItem) { 444 | if ("trigger" in gridView.model) { 445 | gridView.model.trigger(pressedItem.itemIndex, "", null); 446 | root.toggle(); 447 | } 448 | 449 | itemGrid.itemActivated(pressedItem.itemIndex, "", null); 450 | } else if (!dragHelper.dragging && !pressedItem && mouse.button == Qt.LeftButton) { 451 | root.toggle(); 452 | } 453 | 454 | pressX = -1; 455 | pressY = -1; 456 | pressedItem = null; 457 | } 458 | 459 | onPositionChanged: { 460 | var item = pressedItem ? pressedItem : updatePositionProperties(mouse.x, mouse.y); 461 | 462 | if (gridView.currentIndex != -1) { 463 | if (dragEnabled && pressX != -1 && dragHelper.isDrag(pressX, pressY, mouse.x, mouse.y)) { 464 | if ("pluginName" in item.m) { 465 | dragHelper.startDrag(kicker, item.url, item.icon, 466 | "text/x-plasmoidservicename", item.m.pluginName); 467 | } else { 468 | dragHelper.startDrag(kicker, item.url, item.icon); 469 | } 470 | 471 | kicker.dragSource = item; 472 | 473 | pressX = -1; 474 | pressY = -1; 475 | } 476 | } 477 | } 478 | } 479 | } 480 | } 481 | -------------------------------------------------------------------------------- /contents/ui/ItemMultiGridView.qml: -------------------------------------------------------------------------------- 1 | /*************************************************************************** 2 | * Copyright (C) 2015 by Eike Hein * 3 | * Copyright (C) 2021 by Prateek SU * 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 2 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, write to the * 17 | * Free Software Foundation, Inc., * 18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * 19 | ***************************************************************************/ 20 | 21 | import QtQuick 2.12 22 | 23 | import org.kde.plasma.core 2.0 as PlasmaCore 24 | import org.kde.plasma.extras 2.0 as PlasmaExtras 25 | 26 | import org.kde.plasma.private.kicker 0.1 as Kicker 27 | import QtQuick.Controls 2.1 28 | PlasmaExtras.ScrollArea { 29 | // 30 | id: itemMultiGrid 31 | 32 | anchors { 33 | top: parent.top 34 | } 35 | width: parent.width 36 | implicitHeight: itemColumn.implicitHeight + units.largeSpacing 37 | 38 | signal keyNavLeft(int subGridIndex) 39 | signal keyNavRight(int subGridIndex) 40 | signal keyNavUp() 41 | signal keyNavDown() 42 | 43 | property bool grabFocus: false 44 | property bool showDescriptions: false 45 | property int iconSize: units.iconSizes.medium 46 | 47 | property alias model: repeater.model 48 | property alias count: repeater.count 49 | 50 | //clip: true 51 | verticalScrollBarPolicy: Qt.ScrollBarAsNeeded 52 | 53 | flickableItem.flickableDirection: Flickable.VerticalFlick 54 | 55 | onFocusChanged: { 56 | if (!focus) { 57 | for (var i = 0; i < repeater.count; i++) { 58 | subGridAt(i).focus = false; 59 | } 60 | } 61 | } 62 | 63 | function subGridAt(index) { 64 | return repeater.itemAt(index).itemGrid; 65 | } 66 | 67 | function tryActivate(row, col) { // FIXME TODO: Cleanup messy algo. 68 | if (flickableItem.contentY > 0) { 69 | row = 0; 70 | } 71 | 72 | var target = null; 73 | var rows = 0; 74 | 75 | for (var i = 0; i < repeater.count; i++) { 76 | var grid = subGridAt(i); 77 | 78 | if (rows <= row) { 79 | target = grid; 80 | rows += grid.lastRow() + 2; // Header counts as one. 81 | } else { 82 | break; 83 | } 84 | } 85 | 86 | if (target) { 87 | rows -= (target.lastRow() + 2); 88 | target.tryActivate(row - rows, col); 89 | } 90 | } 91 | 92 | Column { 93 | id: itemColumn 94 | 95 | width: itemMultiGrid.width - units.gridUnit 96 | 97 | Repeater { 98 | id: repeater 99 | 100 | delegate: Item { 101 | width: itemColumn.width 102 | height: headerHeight + gridView.height + (index == repeater.count - 1 ? 0 : footerHeight) 103 | 104 | property int headerHeight: gridViewLabel.height 105 | property int footerHeight: units.smallSpacing * 3 106 | visible: gridView.count > 0 107 | property Item itemGrid: gridView 108 | 109 | PlasmaExtras.Heading { 110 | id: gridViewLabel 111 | anchors.top: parent.top 112 | //anchors.topMargin: 8 113 | x: units.smallSpacing 114 | width: parent.width - x 115 | height: dummyHeading.height 116 | elide: Text.ElideRight 117 | wrapMode: Text.NoWrap 118 | opacity: 1.0 119 | color: theme.textColor 120 | level: 5 121 | font.weight: Font.Bold 122 | text: repeater.model.modelForRow(index).description 123 | } 124 | 125 | MouseArea { 126 | width: parent.width 127 | height: parent.height 128 | onClicked: root.toggle() 129 | } 130 | 131 | ItemGridView { 132 | id: gridView 133 | 134 | anchors { 135 | top: gridViewLabel.bottom 136 | topMargin: units.smallSpacing 137 | } 138 | 139 | //TODO > 140 | dragEnabled: false 141 | dropEnabled: false 142 | showDescriptions: itemMultiGrid.showDescriptions 143 | // < 144 | 145 | width: parent.width 146 | height: Math.ceil(count * cellHeight) 147 | cellWidth: parent.width 148 | cellHeight: root.iconSize + (2 * highlightItemSvg.margins.top)//<>cellSize 149 | iconSize: root.iconSize 150 | model: repeater.model.modelForRow(index) 151 | 152 | onFocusChanged: { 153 | if (focus) { 154 | itemMultiGrid.focus = true; 155 | } 156 | } 157 | 158 | onCountChanged: { 159 | if (itemMultiGrid.grabFocus && index == 0 && count > 0) { 160 | currentIndex = 0; 161 | focus = true; 162 | } 163 | } 164 | 165 | onCurrentItemChanged: { 166 | if (!currentItem) { 167 | return; 168 | } 169 | 170 | if (index == 0 && currentRow() === 0) { 171 | itemMultiGrid.flickableItem.contentY = 0; 172 | return; 173 | } 174 | 175 | var y = currentItem.y; 176 | y = contentItem.mapToItem(itemMultiGrid.flickableItem.contentItem, 0, y).y; 177 | 178 | if (y < itemMultiGrid.flickableItem.contentY) { 179 | itemMultiGrid.flickableItem.contentY = y; 180 | } else { 181 | y += cellSize; 182 | y -= itemMultiGrid.flickableItem.contentY; 183 | y -= itemMultiGrid.viewport.height; 184 | 185 | if (y > 0) { 186 | itemMultiGrid.flickableItem.contentY += y; 187 | } 188 | } 189 | } 190 | 191 | onKeyNavLeft: { 192 | itemMultiGrid.keyNavLeft(index); 193 | } 194 | 195 | onKeyNavRight: { 196 | itemMultiGrid.keyNavRight(index); 197 | } 198 | 199 | onKeyNavUp: { 200 | if (index > 0) { 201 | var prevGrid = subGridAt(index - 1); 202 | prevGrid.tryActivate(prevGrid.lastRow(), currentCol()); 203 | } else { 204 | itemMultiGrid.keyNavUp(); 205 | } 206 | } 207 | 208 | onKeyNavDown: { 209 | if (index < repeater.count - 1) { 210 | subGridAt(index + 1).tryActivate(0, currentCol()); 211 | } else { 212 | itemMultiGrid.keyNavDown(); 213 | } 214 | } 215 | } 216 | 217 | // HACK: Steal wheel events from the nested grid view and forward them to 218 | // the ScrollView's internal WheelArea. 219 | Kicker.WheelInterceptor { 220 | anchors.fill: gridView 221 | z: 1 222 | 223 | destination: findWheelArea(itemMultiGrid.flickableItem) 224 | } 225 | } 226 | } 227 | } 228 | } 229 | -------------------------------------------------------------------------------- /contents/ui/MenuRepresentation.qml: -------------------------------------------------------------------------------- 1 | /*************************************************************************** 2 | * Copyright (C) 2014 by Weng Xuetian 3 | * Copyright (C) 2013-2017 by Eike Hein * 4 | * Copyright (C) 2021 by Prateek SU * 5 | * * 6 | * This program is free software; you can redistribute it and/or modify * 7 | * it under the terms of the GNU General Public License as published by * 8 | * the Free Software Foundation; either version 2 of the License, or * 9 | * (at your option) any later version. * 10 | * * 11 | * This program is distributed in the hope that it will be useful, * 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 14 | * GNU General Public License for more details. * 15 | * * 16 | * You should have received a copy of the GNU General Public License * 17 | * along with this program; if not, write to the * 18 | * Free Software Foundation, Inc., * 19 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * 20 | ***************************************************************************/ 21 | 22 | import QtQuick 2.12 23 | import QtQuick.Layouts 1.12 24 | import org.kde.plasma.core 2.0 as PlasmaCore 25 | import org.kde.plasma.components 3.0 as PlasmaComponents 26 | 27 | PlasmaCore.Dialog { 28 | id: root 29 | 30 | objectName: "popupWindow" 31 | flags: Qt.WindowStaysOnTopHint 32 | location: PlasmaCore.Types.Floating 33 | hideOnWindowDeactivate: true 34 | 35 | property int iconSize: units.iconSizes.medium 36 | property int iconSizeSide: units.iconSizes.smallMedium 37 | 38 | property int cellSize: iconSize + theme.mSize(theme.defaultFont).height 39 | + units.largeSpacing 40 | + (2 * Math.max(highlightItemSvg.margins.top + highlightItemSvg.margins.bottom, 41 | highlightItemSvg.margins.left + highlightItemSvg.margins.right)) 42 | 43 | onVisibleChanged: { 44 | if (!visible) { 45 | reset(); 46 | } else { 47 | var pos = popupPosition(width, height); 48 | x = pos.x; 49 | y = pos.y; 50 | requestActivate(); 51 | } 52 | } 53 | 54 | onHeightChanged: { 55 | var pos = popupPosition(width, height); 56 | x = pos.x; 57 | y = pos.y; 58 | } 59 | 60 | onWidthChanged: { 61 | var pos = popupPosition(width, height); 62 | x = pos.x; 63 | y = pos.y; 64 | } 65 | 66 | function toggle() { 67 | root.visible = false; 68 | } 69 | 70 | function reset() { 71 | mainColumnItem.reset() 72 | } 73 | 74 | function popupPosition(width, height) { 75 | var screenAvail = plasmoid.availableScreenRect; 76 | var screenGeom = plasmoid.screenGeometry; 77 | //QtBug - QTBUG-64115 78 | var screen = Qt.rect(screenAvail.x + screenGeom.x, 79 | screenAvail.y + screenGeom.y, 80 | screenAvail.width, 81 | screenAvail.height); 82 | 83 | var offset = units.smallSpacing; 84 | 85 | // Fall back to bottom-left of screen area when the applet is on the desktop or floating. 86 | var x = offset; 87 | var y = screen.height - height - offset; 88 | var horizMidPoint = screen.x + (screen.width / 2); 89 | var vertMidPoint = screen.y + (screen.height / 2); 90 | var appletTopLeft = parent.mapToGlobal(0, 0); 91 | var appletBottomLeft = parent.mapToGlobal(0, parent.height); 92 | if (plasmoid.configuration.menuPosition == 0) { 93 | x = plasmoid.location === PlasmaCore.Types.LeftEdge ? parent.width + panelSvg.margins.right + offset + 6 : plasmoid.location === PlasmaCore.Types.RightEdge ? appletTopLeft.x - panelSvg.margins.left - offset - width - 6 : horizMidPoint - width / 2; 94 | y = plasmoid.location === PlasmaCore.Types.TopEdge ? parent.height + panelSvg.margins.bottom + offset + 6 : plasmoid.location === PlasmaCore.Types.BottomEdge ? screen.height - height - offset - panelSvg.margins.top - 6 : vertMidPoint - height / 2; 95 | } else if (plasmoid.location === PlasmaCore.Types.BottomEdge) { 96 | if (plasmoid.configuration.menuPosition == 1) 97 | x = (appletTopLeft.x < horizMidPoint) ? screen.x + offset + 6 : (screen.x + screen.width) - width - offset - 6; 98 | else 99 | x = appletTopLeft.x - width / 2 100 | y = screen.height - height - offset - panelSvg.margins.top - 6; 101 | } else if (plasmoid.location === PlasmaCore.Types.TopEdge) { 102 | if (plasmoid.configuration.menuPosition == 1) 103 | x = (appletBottomLeft.x < horizMidPoint) ? screen.x + offset + 6 : (screen.x + screen.width) - width - offset - 6; 104 | else 105 | x = appletBottomLeft.x - width / 2 106 | y = parent.height + panelSvg.margins.bottom + offset + 6; 107 | } else if (plasmoid.location === PlasmaCore.Types.LeftEdge) { 108 | x = parent.width + panelSvg.margins.right + offset + 6; 109 | if (plasmoid.configuration.menuPosition == 1) 110 | y = (appletTopLeft.y < vertMidPoint) ? screen.y + offset + 6 : (screen.y + screen.height) - height - offset - 6; 111 | else 112 | y = appletTopLeft.y - height / 2 113 | } else if (plasmoid.location === PlasmaCore.Types.RightEdge) { 114 | x = appletTopLeft.x - panelSvg.margins.left - offset - width - 6; 115 | if (plasmoid.configuration.menuPosition == 1) 116 | y = (appletTopLeft.y < vertMidPoint) ? screen.y + offset + 6 : (screen.y + screen.height) - height - offset - 6; 117 | else 118 | y = appletTopLeft.y - height / 2 119 | } 120 | 121 | return Qt.point(x, y); 122 | } 123 | 124 | 125 | FocusScope { 126 | Layout.minimumWidth: mainColumnItem.width 127 | Layout.minimumHeight: cellSize * (5.1 + plasmoid.configuration.numberRows + (plasmoid.configuration.alwaysShowSearchBar ? 0.6 : 0)) 128 | Layout.maximumWidth: Layout.minimumWidth 129 | Layout.maximumHeight: Layout.minimumHeight 130 | 131 | focus: true 132 | 133 | Row{ 134 | anchors.fill: parent 135 | spacing: units.largeSpacing 136 | 137 | MainColumnItem{ 138 | id: mainColumnItem 139 | } 140 | } 141 | 142 | 143 | Keys.onPressed: { 144 | if (event.key == Qt.Key_Escape) { 145 | root.visible = false; 146 | } 147 | } 148 | } 149 | 150 | function refreshModel() { 151 | mainColumnItem.reload() 152 | console.log("refresh model - menu 11") 153 | } 154 | 155 | Component.onCompleted: { 156 | rootModel.refreshed.connect(refreshModel) 157 | kicker.reset.connect(reset); 158 | reset(); 159 | } 160 | } 161 | -------------------------------------------------------------------------------- /contents/ui/icons/explorer.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 16 | 35 | 38 | 39 | 41 | 45 | 48 | 53 | 58 | 63 | 68 | 73 | 78 | 83 | 92 | 101 | 110 | 119 | 124 | 125 | 126 | 127 | -------------------------------------------------------------------------------- /contents/ui/icons/explorer_dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 16 | 35 | 38 | 39 | 41 | 45 | 48 | 53 | 58 | 63 | 68 | 73 | 78 | 83 | 92 | 101 | 110 | 119 | 124 | 125 | 126 | 127 | -------------------------------------------------------------------------------- /contents/ui/main.qml: -------------------------------------------------------------------------------- 1 | /*************************************************************************** 2 | * Copyright (C) 2014-2015 by Eike Hein * 3 | * Copyright (C) 2021 by Prateek SU * 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 2 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, write to the * 17 | * Free Software Foundation, Inc., * 18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * 19 | ***************************************************************************/ 20 | 21 | import QtQuick 2.12 22 | import QtQuick.Layouts 1.12 23 | import org.kde.plasma.plasmoid 2.0 24 | 25 | import org.kde.plasma.core 2.0 as PlasmaCore 26 | import org.kde.plasma.components 3.0 as PlasmaComponents 27 | 28 | import org.kde.plasma.private.kicker 0.1 as Kicker 29 | 30 | Item { 31 | id: kicker 32 | 33 | anchors.fill: parent 34 | 35 | signal reset 36 | 37 | property bool isDash: false 38 | 39 | Plasmoid.preferredRepresentation: Plasmoid.fullRepresentation 40 | 41 | Plasmoid.compactRepresentation: null 42 | Plasmoid.fullRepresentation: compactRepresentation 43 | 44 | property Item dragSource: null 45 | 46 | property QtObject globalFavorites: rootModel.favoritesModel 47 | property QtObject systemFavorites: rootModel.systemFavoritesModel 48 | 49 | function action_menuedit() { 50 | processRunner.runMenuEditor(); 51 | } 52 | 53 | Component { 54 | id: compactRepresentation 55 | CompactRepresentation { } 56 | } 57 | 58 | Component { 59 | id: menuRepresentation 60 | MenuRepresentation { } 61 | } 62 | 63 | Kicker.RootModel { 64 | id: rootModel 65 | 66 | autoPopulate: false 67 | 68 | appNameFormat: plasmoid.configuration.appNameFormat 69 | flat: true 70 | sorted: true 71 | showSeparators: false 72 | appletInterface: plasmoid 73 | 74 | showAllApps: true 75 | showAllAppsCategorized: true 76 | showTopLevelItems: !isDash 77 | showRecentApps: plasmoid.configuration.showRecentApps 78 | showRecentDocs: plasmoid.configuration.showRecentDocs 79 | showRecentContacts: plasmoid.configuration.showRecentContacts 80 | recentOrdering: plasmoid.configuration.recentOrdering 81 | 82 | onShowRecentAppsChanged: { 83 | plasmoid.configuration.showRecentApps = showRecentApps; 84 | } 85 | 86 | onShowRecentDocsChanged: { 87 | plasmoid.configuration.showRecentDocs = showRecentDocs; 88 | } 89 | 90 | onShowRecentContactsChanged: { 91 | plasmoid.configuration.showRecentContacts = showRecentContacts; 92 | } 93 | 94 | onRecentOrderingChanged: { 95 | plasmoid.configuration.recentOrdering = recentOrdering; 96 | } 97 | 98 | onFavoritesModelChanged: { 99 | if ("initForClient" in favoritesModel) { 100 | favoritesModel.initForClient("org.kde.plasma.kicker.favorites.instance-" + plasmoid.id) 101 | 102 | if (!plasmoid.configuration.favoritesPortedToKAstats) { 103 | favoritesModel.portOldFavorites(plasmoid.configuration.favoriteApps); 104 | plasmoid.configuration.favoritesPortedToKAstats = true; 105 | } 106 | } else { 107 | favoritesModel.favorites = plasmoid.configuration.favoriteApps; 108 | } 109 | 110 | favoritesModel.maxFavorites = pageSize; 111 | } 112 | 113 | onSystemFavoritesModelChanged: { 114 | systemFavoritesModel.enabled = false; 115 | systemFavoritesModel.favorites = plasmoid.configuration.favoriteSystemActions; 116 | systemFavoritesModel.maxFavorites = 6; 117 | } 118 | 119 | Component.onCompleted: { 120 | if ("initForClient" in favoritesModel) { 121 | favoritesModel.initForClient("org.kde.plasma.kicker.favorites.instance-" + plasmoid.id) 122 | 123 | if (!plasmoid.configuration.favoritesPortedToKAstats) { 124 | favoritesModel.portOldFavorites(plasmoid.configuration.favoriteApps); 125 | plasmoid.configuration.favoritesPortedToKAstats = true; 126 | } 127 | } else { 128 | favoritesModel.favorites = plasmoid.configuration.favoriteApps; 129 | } 130 | 131 | favoritesModel.maxFavorites = pageSize; 132 | rootModel.refresh(); 133 | } 134 | } 135 | 136 | Connections { 137 | target: globalFavorites 138 | 139 | onFavoritesChanged: { 140 | plasmoid.configuration.favoriteApps = target.favorites; 141 | } 142 | } 143 | 144 | Connections { 145 | target: systemFavorites 146 | 147 | onFavoritesChanged: { 148 | plasmoid.configuration.favoriteSystemActions = target.favorites; 149 | } 150 | } 151 | 152 | Connections { 153 | target: plasmoid.configuration 154 | 155 | onFavoriteAppsChanged: { 156 | globalFavorites.favorites = plasmoid.configuration.favoriteApps; 157 | } 158 | 159 | onFavoriteSystemActionsChanged: { 160 | systemFavorites.favorites = plasmoid.configuration.favoriteSystemActions; 161 | } 162 | } 163 | 164 | Kicker.RunnerModel { 165 | id: runnerModel 166 | 167 | favoritesModel: globalFavorites 168 | runners: plasmoid.configuration.useExtraRunners ? new Array("services").concat(plasmoid.configuration.extraRunners) : "services" 169 | appletInterface: plasmoid 170 | 171 | deleteWhenEmpty: false 172 | } 173 | 174 | Kicker.DragHelper { 175 | id: dragHelper 176 | } 177 | 178 | Kicker.ProcessRunner { 179 | id: processRunner; 180 | } 181 | 182 | PlasmaCore.FrameSvgItem { 183 | id: highlightItemSvg 184 | 185 | visible: false 186 | 187 | imagePath: "widgets/viewitem" 188 | prefix: "hover" 189 | } 190 | 191 | PlasmaCore.FrameSvgItem { 192 | id: panelSvg 193 | 194 | visible: false 195 | 196 | imagePath: "widgets/panel-background" 197 | } 198 | 199 | PlasmaComponents.Label { 200 | id: toolTipDelegate 201 | 202 | width: contentWidth 203 | height: contentHeight 204 | 205 | property Item toolTip 206 | 207 | text: (toolTip != null) ? toolTip.text : "" 208 | } 209 | 210 | function resetDragSource() { 211 | dragSource = null; 212 | } 213 | 214 | Component.onCompleted: { 215 | plasmoid.setAction("menuedit", i18n("Edit Applications...")); 216 | 217 | rootModel.refreshed.connect(reset); 218 | 219 | dragHelper.dropped.connect(resetDragSource); 220 | } 221 | } 222 | -------------------------------------------------------------------------------- /metadata.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=Menu 11 3 | Comment=A highly customizable launcher inspired from windows 11 menu. Fork of MenuZ. 4 | 5 | Type=Service 6 | Icon=start-here-kde 7 | X-KDE-ServiceTypes=Plasma/Applet 8 | 9 | X-Plasma-API=declarativeappletscript 10 | X-Plasma-MainScript=ui/main.qml 11 | X-Plasma-Provides=org.kde.plasma.launchermenu 12 | 13 | X-KDE-PluginInfo-Author=Prateek SU 14 | X-KDE-PluginInfo-Email=pankajsunal123@gmail.com 15 | X-KDE-PluginInfo-Name=menu11 16 | X-KDE-PluginInfo-Version=8.0 17 | X-KDE-PluginInfo-Website=https://github.com/prateekmedia/Menu11 18 | X-KDE-PluginInfo-KdeStoreId=1544959 19 | X-KDE-PluginInfo-Category=Application Launchers 20 | X-KDE-PluginInfo-License=GPL-2.0+ 21 | X-KDE-PluginInfo-EnabledByDefault=true 22 | -------------------------------------------------------------------------------- /translate/README.md: -------------------------------------------------------------------------------- 1 | > Version 7 of Zren's i18n scripts. 2 | 3 | With KDE Frameworks v5.37 and above, translations are bundled with the `*.plasmoid` file downloaded from the store. 4 | 5 | ## Install Translations 6 | 7 | Go to `~/.local/share/plasma/plasmoids/menu11/translate/` and run `sh ./build --restartplasma`. 8 | 9 | ## New Translations 10 | 11 | 1. Fill out [`template.pot`](template.pot) with your translations then open a [new issue](https://github.com/prateekmedia/menu11/issues/new), name the file `spanish.txt`, attach the txt file to the issue (drag and drop). 12 | 13 | Or if you know how to make a pull request 14 | 15 | 1. Copy the `template.pot` file and name it your locale's code (Eg: `en`/`de`/`fr`) with the extension `.po`. Then fill out all the `msgstr ""`. 16 | 17 | ## Scripts 18 | 19 | * `sh ./merge` will parse the `i18n()` calls in the `*.qml` files and write it to the `template.pot` file. Then it will merge any changes into the `*.po` language files. 20 | * `sh ./build` will convert the `*.po` files to it's binary `*.mo` version and move it to `contents/locale/...` which will bundle the translations in the `*.plasmoid` without needing the user to manually install them. 21 | * `sh ./plasmoidlocaletest` will run `./build` then `plasmoidviewer` (part of `plasma-sdk`). 22 | 23 | ## Links 24 | 25 | * https://zren.github.io/kde/docs/widget/#translations-i18n 26 | * https://techbase.kde.org/Development/Tutorials/Localization/i18n_Build_Systems 27 | * https://api.kde.org/frameworks/ki18n/html/prg_guide.html 28 | 29 | ## Examples 30 | 31 | * https://l10n.kde.org/stats/gui/trunk-kf5/team/fr/plasma-desktop/ 32 | * https://github.com/psifidotos/nowdock-plasmoid/tree/master/po 33 | * https://github.com/kotelnik/plasma-applet-redshift-control/tree/master/translations 34 | 35 | ## Status 36 | | Locale | Lines | % Done| 37 | |----------|---------|-------| 38 | | Template | 51 | 100 | 39 | | Dutch | 48 | 94 | 40 | | Hebrew | 51 | 100 | 41 | | Italian | 48 | 94 | 42 | | Turkish | 51 | 100 | 43 | -------------------------------------------------------------------------------- /translate/build: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Version: 5 3 | 4 | # This script will convert the *.po files to *.mo files, rebuilding the package/contents/locale folder. 5 | # Feature discussion: https://phabricator.kde.org/D5209 6 | # Eg: contents/locale/fr_CA/LC_MESSAGES/plasma_applet_org.kde.plasma.eventcalendar.mo 7 | 8 | DIR=`cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd` 9 | plasmoidName=`kreadconfig5 --file="$DIR/../metadata.desktop" --group="Desktop Entry" --key="X-KDE-PluginInfo-Name"` 10 | website=`kreadconfig5 --file="$DIR/../metadata.desktop" --group="Desktop Entry" --key="X-KDE-PluginInfo-Website"` 11 | bugAddress="$website" 12 | packageRoot=".." # Root of translatable sources 13 | projectName="plasma_applet_${plasmoidName}" # project name 14 | 15 | #--- 16 | if [ -z "$plasmoidName" ]; then 17 | echo "[build] Error: Couldn't read plasmoidName." 18 | exit 19 | fi 20 | 21 | if [ -z "$(which msgfmt)" ]; then 22 | echo "[build] Error: msgfmt command not found. Need to install gettext" 23 | echo "[build] Running 'sudo apt install gettext'" 24 | sudo apt install gettext 25 | echo "[build] gettext installation should be finished. Going back to installing translations." 26 | fi 27 | 28 | #--- 29 | echo "[build] Compiling messages" 30 | 31 | catalogs=`find . -name '*.po'` 32 | for cat in $catalogs; do 33 | echo "$cat" 34 | catLocale=`basename ${cat%.*}` 35 | msgfmt -o "${catLocale}.mo" "$cat" 36 | 37 | installPath="$DIR/../contents/locale/${catLocale}/LC_MESSAGES/${projectName}.mo" 38 | 39 | echo "[build] Install to ${installPath}" 40 | mkdir -p "$(dirname "$installPath")" 41 | mv "${catLocale}.mo" "${installPath}" 42 | done 43 | 44 | echo "[build] Done building messages" 45 | 46 | if [ "$1" = "--restartplasma" ]; then 47 | echo "[build] Restarting plasmashell" 48 | killall plasmashell 49 | kstart5 plasmashell 50 | echo "[build] Done restarting plasmashell" 51 | else 52 | echo "[build] (re)install the plasmoid and restart plasmashell to test." 53 | fi 54 | -------------------------------------------------------------------------------- /translate/de.po: -------------------------------------------------------------------------------- 1 | # Translation of menu11 in LANGUAGE 2 | # Copyright (C) 2021 3 | # This file is distributed under the same license as the menu11 package. 4 | # Sunsheep afm@hotmail.de, 2021. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: menu11\n" 10 | "Report-Msgid-Bugs-To: https://github.com/prateekmedia/menu11\n" 11 | "POT-Creation-Date: 2021-08-02 22:00-0100\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: Sunsheep afm@hotmail.de\n" 14 | "Language: German\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | 19 | #: ../metadata.desktop 20 | msgid "Menu 11" 21 | msgstr "Menü 11" 22 | 23 | #: ../metadata.desktop 24 | msgid "A highly customizable launcher inspired from windows 11 menu. Fork of MenuZ." 25 | msgstr "Ein hochgradig anpassbarer Launcher, inspiriert vom Windows 11 Menü. Fork von MenuZ." 26 | 27 | #: ../contents/config/config.qml 28 | msgid "General" 29 | msgstr "Allgemein" 30 | 31 | #: ../contents/ui/config.qml 32 | msgid "Icon:" 33 | msgstr "Symbol:" 34 | 35 | #: ../contents/ui/config.qml 36 | msgid "Menu Position:" 37 | msgstr "Menü Position" 38 | 39 | #: ../contents/ui/config.qml 40 | msgid "Center" 41 | msgstr "Zentriert" 42 | 43 | #: ../contents/ui/config.qml 44 | msgid "On Edge" 45 | msgstr "Am Rand" 46 | 47 | #: ../contents/ui/config.qml 48 | msgid "Auto" 49 | msgstr "Automatisch" 50 | 51 | #: ../contents/ui/config.qml 52 | msgid "Pinned item:" 53 | msgstr "Angeheftetes Element:" 54 | 55 | #: ../contents/ui/config.qml 56 | msgid "Favourite apps" 57 | msgstr "Bevorzugte Apps" 58 | 59 | #: ../contents/ui/config.qml 60 | msgid "Recent apps" 61 | msgstr "Neueste Anwendungen" 62 | 63 | #: ../contents/ui/config.qml 64 | msgid "Recent documents" 65 | msgstr "Neueste Dokumente" 66 | 67 | #: ../contents/ui/config.qml 68 | msgid "Recommended item:" 69 | msgstr "Empfohlener Eintrag:" 70 | 71 | #: ../contents/ui/config.qml 72 | msgid "None" 73 | msgstr "None" 74 | 75 | #: ../contents/ui/config.qml 76 | msgid "Number of columns in grid:" 77 | msgstr "Anzahl der Spalten im Raster:" 78 | 79 | #: ../contents/ui/config.qml 80 | msgid "Number of rows in grid:" 81 | msgstr "Anzahl der Zeilen im Gitter:" 82 | 83 | #: ../contents/ui/config.qml 84 | msgid "Icon Properties:" 85 | msgstr "Symbol Eigenschaften:" 86 | 87 | #: ../contents/ui/config.qml 88 | msgid "Panel Properties:" 89 | msgstr "Panel Eigenschaften:" 90 | 91 | #: ../contents/ui/config.qml 92 | msgid "Show All apps by default" 93 | msgstr "Alle Anwendungen standardmäßig anzeigen" 94 | 95 | #: ../contents/ui/config.qml 96 | msgid "Replace Explorer icon in footer" 97 | msgstr "Ersetzen des Explorer Symbols in der Fußzeile" 98 | 99 | #: ../contents/ui/config.qml 100 | msgid "Reduce Icon Size for User Profile" 101 | msgstr "Symbolgröße für Benutzerprofil verkleinern" 102 | 103 | #: ../contents/ui/config.qml 104 | msgid "Reduce Icon Size for Footer" 105 | msgstr "Symbolgröße in der Fußzeile verringern" 106 | 107 | #: ../contents/ui/config.qml 108 | msgid "Reduce Icon Size for Pinned item" 109 | msgstr "Symbolgröße für angeheftetes Element verringern" 110 | 111 | #: ../contents/ui/config.qml 112 | msgid "Allow label to have two lines (Pinned)" 113 | msgstr "Erlaube mehrzeilige Bezeichnung (angeheftet)" 114 | 115 | #: ../contents/ui/config.qml 116 | msgid "Show Description for all apps and search item" 117 | msgstr "Beschreibung für alle Anwendungen und Suchbegriffe anzeigen" 118 | 119 | #: ../contents/ui/config.qml 120 | msgid "Always Show Search Bar" 121 | msgstr "Suchleiste immer anzeigen" 122 | 123 | #: ../contents/ui/config.qml 124 | msgid "Prefer showing full name, instead of login name" 125 | msgstr "Vollständiger Namen anstelle des Anmeldenamens" 126 | 127 | #: ../contents/ui/config.qml 128 | msgid "Show applications as:" 129 | msgstr "Anwendungen anzeigen als:" 130 | 131 | #: ../contents/ui/config.qml 132 | msgid "Name only" 133 | msgstr "Nur Name" 134 | 135 | #: ../contents/ui/config.qml 136 | msgid "Description only" 137 | msgstr "Nur Beschreibung" 138 | 139 | #: ../contents/ui/config.qml 140 | msgid "Name (Description)" 141 | msgstr "Name (Beschreibung)" 142 | 143 | #: ../contents/ui/config.qml 144 | msgid "Description (Name)" 145 | msgstr "Beschreibung (Name)" 146 | 147 | #: ../contents/ui/config.qml 148 | msgid "Icons on Bottom bar:" 149 | msgstr "Symbole in der unteren Leiste" 150 | 151 | #: ../contents/ui/config.qml 152 | msgid "Documents" 153 | msgstr "Dokumente" 154 | 155 | #: ../contents/ui/config.qml 156 | msgid "Pictures" 157 | msgstr "Bilder" 158 | 159 | #: ../contents/ui/config.qml 160 | msgid "Music" 161 | msgstr "Musik" 162 | 163 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 164 | msgid "Downloads" 165 | msgstr "Downloads" 166 | 167 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 168 | msgid "Videos" 169 | msgstr "Videos" 170 | 171 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 172 | msgid "File manager" 173 | msgstr "Dateimanager" 174 | 175 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 176 | msgid "System settings" 177 | msgstr "Systemeinstellungen" 178 | 179 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 180 | msgid "Lock screen" 181 | msgstr "Sperrbildschirm" 182 | 183 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 184 | msgid "Power options" 185 | msgstr "Energieoptionen" 186 | 187 | #: ../contents/ui/config.qml 188 | msgid "Search:" 189 | msgstr "Suche:" 190 | 191 | #: ../contents/ui/config.qml 192 | msgid "Expand search to bookmarks, files and emails" 193 | msgstr "Erweitern der Suche auf Lesezeichen, Dateien und E-Mails" 194 | 195 | #: ../contents/ui/MainColumnItem.qml 196 | msgid "Type here to search" 197 | msgstr "Tippe hier, um zu suchen" 198 | 199 | #: ../contents/ui/MainColumnItem.qml 200 | msgid "All apps" 201 | msgstr "Alle Apps" 202 | 203 | #: ../contents/ui/MainColumnItem.qml 204 | msgid "Recommended" 205 | msgstr "Empfohlen" 206 | 207 | #: ../contents/ui/MainColumnItem.qml 208 | msgid "Pinned" 209 | msgstr "Angeheftet" 210 | 211 | #: ../contents/ui/MainColumnItem.qml 212 | msgid "Back" 213 | msgstr "Zurück" 214 | 215 | #: ../contents/ui/MainColumnItem.qml 216 | msgid "More" 217 | msgstr "Mehr" 218 | 219 | #: ../contents/ui/Footer.qml 220 | msgid "Go to user settings" 221 | msgstr "Gehe zu den Benutzereinstellungen" 222 | -------------------------------------------------------------------------------- /translate/es_ES.po: -------------------------------------------------------------------------------- 1 | # Translation of menu11 in Spanish 2 | # Copyright (C) 2021 3 | # This file is distributed under the same license as the menu11 package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: menu11\n" 10 | "Report-Msgid-Bugs-To: https://github.com/prateekmedia/menu11\n" 11 | "POT-Creation-Date: 2021-04-09 22:46-0400\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: Ángel Fernández Sánchez \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: Español\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: ../metadata.desktop 21 | msgid "Menu 11" 22 | msgstr "Menú 11" 23 | 24 | #: ../metadata.desktop 25 | msgid "A highly customizable launcher inspired from windows 11 menu. Fork of MenuZ." 26 | msgstr "Launcher con gran capacidad de personalización inspirado en el menú de Windows 11. Fork de MenuZ" 27 | 28 | #: ../contents/config/config.qml 29 | msgid "General" 30 | msgstr "General" 31 | 32 | #: ../contents/ui/config.qml 33 | msgid "Icon:" 34 | msgstr "Icono" 35 | 36 | #: ../contents/ui/config.qml 37 | msgid "Menu Position:" 38 | msgstr "Posición del Menú" 39 | 40 | #: ../contents/ui/config.qml 41 | msgid "Center" 42 | msgstr "Centro" 43 | 44 | #: ../contents/ui/config.qml 45 | msgid "On Edge" 46 | msgstr "En el borde" 47 | 48 | #: ../contents/ui/config.qml 49 | msgid "Auto" 50 | msgstr "Auto" 51 | 52 | #: ../contents/ui/config.qml 53 | msgid "Pinned item:" 54 | msgstr "Elemento anclado" 55 | 56 | #: ../contents/ui/config.qml 57 | msgid "Favourite apps" 58 | msgstr "Aplicaciones favoritas" 59 | 60 | #: ../contents/ui/config.qml 61 | msgid "Recent apps" 62 | msgstr "Aplicaciones recientes" 63 | 64 | #: ../contents/ui/config.qml 65 | msgid "Recent documents" 66 | msgstr "Documentos recientes" 67 | 68 | #: ../contents/ui/config.qml 69 | msgid "Recommended item:" 70 | msgstr "Elemento recomendado" 71 | 72 | #: ../contents/ui/config.qml 73 | msgid "None" 74 | msgstr "Ninguno" 75 | 76 | #: ../contents/ui/config.qml 77 | msgid "Number of columns in grid:" 78 | msgstr "Número de columnas en la cuadrícula:" 79 | 80 | #: ../contents/ui/config.qml 81 | msgid "Número de filas en la cuadrícula:" 82 | msgstr "" 83 | 84 | #: ../contents/ui/config.qml 85 | msgid "Icon Properties:" 86 | msgstr "Propiedades de los iconos:" 87 | 88 | #: ../contents/ui/config.qml 89 | msgid "Propiedades del panel:" 90 | msgstr "" 91 | 92 | #: ../contents/ui/config.qml 93 | msgid "Show All apps by default" 94 | msgstr "Mostrar todas las aplicaciones por defecto" 95 | 96 | #: ../contents/ui/config.qml 97 | msgid "Replace Explorer icon in footer" 98 | msgstr "Sustituir el icono del Explorador en el pie de página" 99 | 100 | #: ../contents/ui/config.qml 101 | msgid "Reduce Icon Size for User Profile" 102 | msgstr "Reducir el tamaño de los iconos del perfil de usuario" 103 | 104 | #: ../contents/ui/config.qml 105 | msgid "Reduce Icon Size for Footer" 106 | msgstr "Reducir el tamaño del icono para el pie de página" 107 | 108 | #: ../contents/ui/config.qml 109 | msgid "Reduce Icon Size for Pinned item" 110 | msgstr "Reducir el tamaño del icono del elemento anclado" 111 | 112 | #: ../contents/ui/config.qml 113 | msgid "Allow label to have two lines (Pinned)" 114 | msgstr "Permitir que la etiqueta tenga dos líneas (Anclado)" 115 | 116 | #: ../contents/ui/config.qml 117 | msgid "Show Description for all apps and search item" 118 | msgstr "Mostrar la descripción de todas las aplicaciones y el elemento de búsqueda" 119 | 120 | #: ../contents/ui/config.qml 121 | msgid "Always Show Search Bar" 122 | msgstr "Mostrar siempre la barra de búsqueda" 123 | 124 | #: ../contents/ui/config.qml 125 | msgid "Prefer showing full name, instead of login name" 126 | msgstr "Preferir mostrar el nombre completo, en lugar del nombre de usuario" 127 | 128 | #: ../contents/ui/config.qml 129 | msgid "Show applications as:" 130 | msgstr "Mostrar aplicaciones como:" 131 | 132 | #: ../contents/ui/config.qml 133 | msgid "Name only" 134 | msgstr "Sólo el nombre" 135 | 136 | #: ../contents/ui/config.qml 137 | msgid "Description only" 138 | msgstr "Sólo la descripción" 139 | 140 | #: ../contents/ui/config.qml 141 | msgid "Name (Description)" 142 | msgstr "Nombre (Descripción)" 143 | 144 | #: ../contents/ui/config.qml 145 | msgid "Description (Name)" 146 | msgstr "Descripción (Nombre)" 147 | 148 | #: ../contents/ui/config.qml 149 | msgid "Icons on Bottom bar:" 150 | msgstr "Iconos en la barra inferior:" 151 | 152 | #: ../contents/ui/config.qml 153 | msgid "Documents" 154 | msgstr "Documentos" 155 | 156 | #: ../contents/ui/config.qml 157 | msgid "Pictures" 158 | msgstr "Imágenes" 159 | 160 | #: ../contents/ui/config.qml 161 | msgid "Music" 162 | msgstr "Música" 163 | 164 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 165 | msgid "Downloads" 166 | msgstr "Descargas" 167 | 168 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 169 | msgid "Videos" 170 | msgstr "Vídeos" 171 | 172 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 173 | msgid "File manager" 174 | msgstr "Gestor de archivos" 175 | 176 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 177 | msgid "System settings" 178 | msgstr "Configuración del sistema" 179 | 180 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 181 | msgid "Lock screen" 182 | msgstr "Pantalla de bloqueo" 183 | 184 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 185 | msgid "Power options" 186 | msgstr "Opciones de energía" 187 | 188 | #: ../contents/ui/config.qml 189 | msgid "Search:" 190 | msgstr "Buscar:" 191 | 192 | #: ../contents/ui/config.qml 193 | msgid "Expand search to bookmarks, files and emails" 194 | msgstr "Ampliar la búsqueda a marcadores, archivos y correos electrónicos" 195 | 196 | #: ../contents/ui/MainColumnItem.qml 197 | msgid "Type here to search" 198 | msgstr "Escribe aquí para buscar" 199 | 200 | #: ../contents/ui/MainColumnItem.qml 201 | msgid "All apps" 202 | msgstr "Todas las aplicaciones" 203 | 204 | #: ../contents/ui/MainColumnItem.qml 205 | msgid "Recommended" 206 | msgstr "Recomendado" 207 | 208 | #: ../contents/ui/MainColumnItem.qml 209 | msgid "Pinned" 210 | msgstr "Anclado" 211 | 212 | #: ../contents/ui/MainColumnItem.qml 213 | msgid "Back" 214 | msgstr "Volver" 215 | 216 | #: ../contents/ui/MainColumnItem.qml 217 | msgid "More" 218 | msgstr "Más" 219 | 220 | #: ../contents/ui/Footer.qml 221 | msgid "Go to user settings" 222 | msgstr "Ir a la configuración del usuario" 223 | -------------------------------------------------------------------------------- /translate/fr.po: -------------------------------------------------------------------------------- 1 | # Translation of menu11 in French 2 | # Copyright (C) 2021 3 | # This file is distributed under the same license as the menu11 package. 4 | # GolDNenex , 2021. 5 | # Alan Paris , 2021. 6 | # 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: menu11\n" 10 | "Report-Msgid-Bugs-To: https://github.com/prateekmedia/menu11\n" 11 | "POT-Creation-Date: 2021-04-09 22:46-0400\n" 12 | "PO-Revision-Date: 2021-10-27 HO:MI+ZONE\n" 13 | "Last-Translator: Alan Paris \n" 14 | "Language-Team: \n" 15 | "Language: French\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: ../metadata.desktop 21 | msgid "Menu 11" 22 | msgstr "Menu 11" 23 | 24 | #: ../metadata.desktop 25 | msgid "A highly customizable launcher inspired from windows 11 menu. Fork of MenuZ." 26 | msgstr "Un lanceur hautement personnalisable inspiré du menu Windows 11. Fork de MenuZ." 27 | 28 | #: ../contents/config/config.qml 29 | msgid "General" 30 | msgstr "Général" 31 | 32 | #: ../contents/ui/config.qml 33 | msgid "Icon:" 34 | msgstr "Icône :" 35 | 36 | #: ../contents/ui/config.qml 37 | msgid "Menu Position:" 38 | msgstr "Position du menu :" 39 | 40 | #: ../contents/ui/config.qml 41 | msgid "Center" 42 | msgstr "Centrer" 43 | 44 | #: ../contents/ui/config.qml 45 | msgid "On Edge" 46 | msgstr "Au bord" 47 | 48 | #: ../contents/ui/config.qml 49 | msgid "Auto" 50 | msgstr "Automatique" 51 | 52 | #: ../contents/ui/config.qml 53 | msgid "Pinned item:" 54 | msgstr "Élément épinglé :" 55 | 56 | #: ../contents/ui/config.qml 57 | msgid "Favourite apps" 58 | msgstr "Applications préférées" 59 | 60 | #: ../contents/ui/config.qml 61 | msgid "Recent apps" 62 | msgstr "Applications récentes" 63 | 64 | #: ../contents/ui/config.qml 65 | msgid "Recent documents" 66 | msgstr "Documents récents" 67 | 68 | #: ../contents/ui/config.qml 69 | msgid "Recommended item:" 70 | msgstr "Élément recommandé :" 71 | 72 | #: ../contents/ui/config.qml 73 | msgid "None" 74 | msgstr "Aucun" 75 | 76 | #: ../contents/ui/config.qml 77 | msgid "Number of columns in grid:" 78 | msgstr "Nombre de colonnes dans la grille :" 79 | 80 | #: ../contents/ui/config.qml 81 | msgid "Number of rows in grid:" 82 | msgstr "Nombre de lignes dans la grille :" 83 | 84 | #: ../contents/ui/config.qml 85 | msgid "Icon Properties:" 86 | msgstr "Propriétés de l'icône :" 87 | 88 | #: ../contents/ui/config.qml 89 | msgid "Panel Properties:" 90 | msgstr "Propriétés du panneau :" 91 | 92 | #: ../contents/ui/config.qml 93 | msgid "Show All apps by default" 94 | msgstr "Afficher toutes les applications par défaut" 95 | 96 | #: ../contents/ui/config.qml 97 | msgid "Replace Explorer icon in footer" 98 | msgstr "Remplacer l'icône de l'explorateur en bas de page" 99 | 100 | #: ../contents/ui/config.qml 101 | msgid "Reduce Icon Size for User Profile" 102 | msgstr "Réduire la taille des icônes pour le profil utilisateur" 103 | 104 | #: ../contents/ui/config.qml 105 | msgid "Reduce Icon Size for Footer" 106 | msgstr "Réduire la taille des icônes en bas de page" 107 | 108 | #: ../contents/ui/config.qml 109 | msgid "Reduce Icon Size for Pinned item" 110 | msgstr "Réduire la taille de l'icône pour l'élément épinglé" 111 | 112 | #: ../contents/ui/config.qml 113 | msgid "Allow label to have two lines (Pinned)" 114 | msgstr "Autoriser l'étiquette d'avoir deux lignes (épinglées)" 115 | 116 | #: ../contents/ui/config.qml 117 | msgid "Show Description for all apps and search item" 118 | msgstr "Afficher la description pour toutes les applications et l'élément de recherche" 119 | 120 | #: ../contents/ui/config.qml 121 | msgid "Always Show Search Bar" 122 | msgstr "Toujours afficher la barre de recherche" 123 | 124 | #: ../contents/ui/config.qml 125 | msgid "Prefer showing full name, instead of login name" 126 | msgstr "Afficher le nom complet en lieu et place du nom d'utilisateur" 127 | 128 | #: ../contents/ui/config.qml 129 | msgid "Show applications as:" 130 | msgstr "Afficher les applications comme :" 131 | 132 | #: ../contents/ui/config.qml 133 | msgid "Name only" 134 | msgstr "Nom uniquement" 135 | 136 | #: ../contents/ui/config.qml 137 | msgid "Description only" 138 | msgstr "Description uniquement" 139 | 140 | #: ../contents/ui/config.qml 141 | msgid "Name (Description)" 142 | msgstr "Nom (Description)" 143 | 144 | #: ../contents/ui/config.qml 145 | msgid "Description (Name)" 146 | msgstr "Description (Nom)" 147 | 148 | #: ../contents/ui/config.qml 149 | msgid "Icons on Bottom bar:" 150 | msgstr "Icônes sur la barre du bas :" 151 | 152 | #: ../contents/ui/config.qml 153 | msgid "Documents" 154 | msgstr "Documents" 155 | 156 | #: ../contents/ui/config.qml 157 | msgid "Pictures" 158 | msgstr "Images" 159 | 160 | #: ../contents/ui/config.qml 161 | msgid "Music" 162 | msgstr "Musique" 163 | 164 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 165 | msgid "Downloads" 166 | msgstr "Téléchargements" 167 | 168 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 169 | msgid "Videos" 170 | msgstr "Vidéos" 171 | 172 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 173 | msgid "File manager" 174 | msgstr "Gestionnaire de fichiers" 175 | 176 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 177 | msgid "System settings" 178 | msgstr "Paramètres système" 179 | 180 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 181 | msgid "Lock screen" 182 | msgstr "Verrouiller l'écran" 183 | 184 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 185 | msgid "Power options" 186 | msgstr "Options d'alimentation" 187 | 188 | #: ../contents/ui/config.qml 189 | msgid "Search:" 190 | msgstr "Recherche :" 191 | 192 | #: ../contents/ui/config.qml 193 | msgid "Expand search to bookmarks, files and emails" 194 | msgstr "Étendre la recherche dans les signets, les fichiers et les courriels" 195 | 196 | #: ../contents/ui/MainColumnItem.qml 197 | msgid "Type here to search" 198 | msgstr "Tapez ici pour effectuer une recherche" 199 | 200 | #: ../contents/ui/MainColumnItem.qml 201 | msgid "All apps" 202 | msgstr "Toutes les applications" 203 | 204 | #: ../contents/ui/MainColumnItem.qml 205 | msgid "Recommended" 206 | msgstr "Nos recommandations" 207 | 208 | #: ../contents/ui/MainColumnItem.qml 209 | msgid "Pinned" 210 | msgstr "Épinglé" 211 | 212 | #: ../contents/ui/MainColumnItem.qml 213 | msgid "Back" 214 | msgstr "Retour" 215 | 216 | #: ../contents/ui/MainColumnItem.qml 217 | msgid "More" 218 | msgstr "Plus" 219 | 220 | #: ../contents/ui/Footer.qml 221 | msgid "Go to user settings" 222 | msgstr "Aller aux paramètres de l'utilisateur" 223 | -------------------------------------------------------------------------------- /translate/he.po: -------------------------------------------------------------------------------- 1 | # Translation of menu11 in Hebrew 2 | # Copyright (C) 2021 3 | # This file is distributed under the same license as the menu11 package. 4 | # Omer I.S. , 2021. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: menu11\n" 9 | "Report-Msgid-Bugs-To: https://github.com/prateekmedia/menu11\n" 10 | "POT-Creation-Date: 2021-04-09 22:46-0400\n" 11 | "PO-Revision-Date: 2021-07-26 14:26+0300\n" 12 | "Language-Team: Hebrew \n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=UTF-8\n" 15 | "Content-Transfer-Encoding: 8bit\n" 16 | "X-Generator: Poedit 2.4.2\n" 17 | "Last-Translator: \n" 18 | "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n==2 ? 1 : n>10 && n%10==0 ? 2 : 3);\n" 19 | "Language: he\n" 20 | 21 | #: ../metadata.desktop 22 | msgid "Menu 11" 23 | msgstr "Menu 11" 24 | 25 | #: ../metadata.desktop 26 | msgid "A highly customizable launcher inspired from windows 11 menu. Fork of MenuZ." 27 | msgstr "מפעיל יישומים גמיש מאוד בהשראת התפריט של Windows 11. פוצל מ־MenuZ." 28 | 29 | #: ../contents/config/config.qml 30 | msgid "General" 31 | msgstr "כללי" 32 | 33 | #: ../contents/ui/config.qml 34 | msgid "Icon:" 35 | msgstr "סמל:" 36 | 37 | #: ../contents/ui/config.qml 38 | msgid "Menu Position:" 39 | msgstr "מיקום התפריט:" 40 | 41 | #: ../contents/ui/config.qml 42 | msgid "Center" 43 | msgstr "במרכז" 44 | 45 | #: ../contents/ui/config.qml 46 | msgid "On Edge" 47 | msgstr "בפינה" 48 | 49 | #: ../contents/ui/config.qml 50 | msgid "Auto" 51 | msgstr "אוטומטי" 52 | 53 | #: ../contents/ui/config.qml 54 | msgid "Pinned item:" 55 | msgstr "יישום מוצמד:" 56 | 57 | #: ../contents/ui/config.qml 58 | msgid "Favourite apps" 59 | msgstr "יישומים מועדפים" 60 | 61 | #: ../contents/ui/config.qml 62 | msgid "Recent apps" 63 | msgstr "יישומים אחרונים" 64 | 65 | #: ../contents/ui/config.qml 66 | msgid "Recent documents" 67 | msgstr "מסמכים אחרונים" 68 | 69 | #: ../contents/ui/config.qml 70 | msgid "Recommended item:" 71 | msgstr "פריט מומלץ:" 72 | 73 | #: ../contents/ui/config.qml 74 | msgid "None" 75 | msgstr "ללא" 76 | 77 | #: ../contents/ui/config.qml 78 | msgid "Number of columns in grid:" 79 | msgstr "מספר טורים ברשת:" 80 | 81 | #: ../contents/ui/config.qml 82 | msgid "Number of rows in grid:" 83 | msgstr "מספר שורות ברשת:" 84 | 85 | #: ../contents/ui/config.qml 86 | msgid "Icon Properties:" 87 | msgstr "מאפייני סמל:" 88 | 89 | #: ../contents/ui/config.qml 90 | msgid "Panel Properties:" 91 | msgstr "מאפייני לוח:" 92 | 93 | #: ../contents/ui/config.qml 94 | msgid "Show All apps by default" 95 | msgstr "הצגת כל היישומים כברירת מחדל" 96 | 97 | #: ../contents/ui/config.qml 98 | msgid "Replace Explorer icon in footer" 99 | msgstr "החלף את סמל הסייר בכותרת התחתונה" 100 | 101 | #: ../contents/ui/config.qml 102 | msgid "Reduce Icon Size for User Profile" 103 | msgstr "הקטנת סמל תמונת המשתמש" 104 | 105 | #: ../contents/ui/config.qml 106 | msgid "Reduce Icon Size for Footer" 107 | msgstr "הקטנת הסמלים בחלק התחתון" 108 | 109 | #: ../contents/ui/config.qml 110 | msgid "Reduce Icon Size for Pinned item" 111 | msgstr "הקטנת סמלי היישומים המוצמדים" 112 | 113 | #: ../contents/ui/config.qml 114 | msgid "Allow label to have two lines (Pinned)" 115 | msgstr "לאפשר תווית עם שתי שורות (למוצמדים)" 116 | 117 | #: ../contents/ui/config.qml 118 | msgid "Show Description for all apps and search item" 119 | msgstr "הצגת תיאור לכל היישומים וליישומים שנמצאים בחיפוש" 120 | 121 | #: ../contents/ui/config.qml 122 | msgid "Always Show Search Bar" 123 | msgstr "תמיד להציג סרגל חיפוש" 124 | 125 | #: ../contents/ui/config.qml 126 | msgid "Prefer showing full name, instead of login name" 127 | msgstr "עדיפה הצגת השם המלא, במקום שם המשתמש" 128 | 129 | #: ../contents/ui/config.qml 130 | msgid "Show applications as:" 131 | msgstr "הצגת היישומים בתור:" 132 | 133 | #: ../contents/ui/config.qml 134 | msgid "Name only" 135 | msgstr "שם בלבד" 136 | 137 | #: ../contents/ui/config.qml 138 | msgid "Description only" 139 | msgstr "תיאור בלבד" 140 | 141 | #: ../contents/ui/config.qml 142 | msgid "Name (Description)" 143 | msgstr "שם (תיאור)" 144 | 145 | #: ../contents/ui/config.qml 146 | msgid "Description (Name)" 147 | msgstr "תיאור (שם)" 148 | 149 | #: ../contents/ui/config.qml 150 | msgid "Icons on Bottom bar:" 151 | msgstr "סמלים בסרגל התחתון:" 152 | 153 | #: ../contents/ui/config.qml 154 | msgid "Documents" 155 | msgstr "מסמכים" 156 | 157 | #: ../contents/ui/config.qml 158 | msgid "Pictures" 159 | msgstr "תמונות" 160 | 161 | #: ../contents/ui/config.qml 162 | msgid "Music" 163 | msgstr "מוזיקה" 164 | 165 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 166 | msgid "Downloads" 167 | msgstr "הורדות" 168 | 169 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 170 | msgid "Videos" 171 | msgstr "וידאו" 172 | 173 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 174 | msgid "File manager" 175 | msgstr "מנהל הקבצים" 176 | 177 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 178 | msgid "System settings" 179 | msgstr "הגדרות מערכת" 180 | 181 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 182 | msgid "Lock screen" 183 | msgstr "נעילת המסך" 184 | 185 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 186 | msgid "Power options" 187 | msgstr "אפשרויות הפעלה" 188 | 189 | #: ../contents/ui/config.qml 190 | msgid "Search:" 191 | msgstr "חיפוש:" 192 | 193 | #: ../contents/ui/config.qml 194 | msgid "Expand search to bookmarks, files and emails" 195 | msgstr "הרחבת החיפוש לסימניות, קבצים ודואר אלקטרוני" 196 | 197 | #: ../contents/ui/MainColumnItem.qml 198 | msgid "Type here to search" 199 | msgstr "יש להקליד כאן כדי לחפש" 200 | 201 | #: ../contents/ui/MainColumnItem.qml 202 | msgid "All apps" 203 | msgstr "כל היישומים" 204 | 205 | #: ../contents/ui/MainColumnItem.qml 206 | msgid "Recommended" 207 | msgstr "מומלצים" 208 | 209 | #: ../contents/ui/MainColumnItem.qml 210 | msgid "Pinned" 211 | msgstr "מוצמדים" 212 | 213 | #: ../contents/ui/MainColumnItem.qml 214 | msgid "Back" 215 | msgstr "חזרה" 216 | 217 | #: ../contents/ui/MainColumnItem.qml 218 | msgid "More" 219 | msgstr "עוד" 220 | 221 | #: ../contents/ui/Footer.qml 222 | msgid "Go to user settings" 223 | msgstr "מעבר להגדרות המשתמש" 224 | -------------------------------------------------------------------------------- /translate/hi_IN.po: -------------------------------------------------------------------------------- 1 | # Translation of menu11 in LANGUAGE 2 | # Copyright (C) 2021 3 | # This file is distributed under the same license as the menu11 package. 4 | # Telegram : @VCARP , 2021. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: menu11\n" 10 | "Report-Msgid-Bugs-To: https://github.com/prateekmedia/menu11\n" 11 | "POT-Creation-Date: 2021-04-09 22:46-0400\n" 12 | "PO-Revision-Date: 2021-10-04 16:30+0530\n" 13 | "Last-Translator: Virendra Carpenter \n" 14 | "Language-Team: \n" 15 | "Language: hi_IN\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: ../metadata.desktop 21 | msgid "Menu 11" 22 | msgstr "मेनू 11" 23 | 24 | #: ../metadata.desktop 25 | msgid "A highly customizable launcher inspired from windows 11 menu. Fork of MenuZ." 26 | msgstr "विंडोज़ 11 मेनू से प्रेरित एक उच्च अनुकूलन योग्य लांचर। मेनूजेड का फोर्क।" 27 | 28 | #: ../contents/config/config.qml 29 | msgid "General" 30 | msgstr "आम" 31 | 32 | #: ../contents/ui/config.qml 33 | msgid "Icon:" 34 | msgstr "आइकन:" 35 | 36 | #: ../contents/ui/config.qml 37 | msgid "Menu Position:" 38 | msgstr "मेनू स्थिति:" 39 | 40 | #: ../contents/ui/config.qml 41 | msgid "Center" 42 | msgstr "केंद्र" 43 | 44 | #: ../contents/ui/config.qml 45 | msgid "On Edge" 46 | msgstr "किनारे पर" 47 | 48 | #: ../contents/ui/config.qml 49 | msgid "Auto" 50 | msgstr "ऑटो" 51 | 52 | #: ../contents/ui/config.qml 53 | msgid "Pinned item:" 54 | msgstr "पिन किया गया आइटम" 55 | 56 | #: ../contents/ui/config.qml 57 | msgid "Favourite apps" 58 | msgstr "पसंदीदा ऐप्स" 59 | 60 | #: ../contents/ui/config.qml 61 | msgid "Recent apps" 62 | msgstr "हाल के ऐप्स" 63 | 64 | #: ../contents/ui/config.qml 65 | msgid "Recent documents" 66 | msgstr "हाल के कागजात" 67 | 68 | #: ../contents/ui/config.qml 69 | msgid "Recommended item:" 70 | msgstr "अनुशंसित वस्तु:" 71 | 72 | #: ../contents/ui/config.qml 73 | msgid "None" 74 | msgstr "कोई नहीं" 75 | 76 | #: ../contents/ui/config.qml 77 | msgid "Number of columns in grid:" 78 | msgstr "ग्रिड में स्तंभों की संख्या:" 79 | 80 | #: ../contents/ui/config.qml 81 | msgid "Number of rows in grid:" 82 | msgstr "ग्रिड में पंक्तियों की संख्या:" 83 | 84 | #: ../contents/ui/config.qml 85 | msgid "Icon Properties:" 86 | msgstr "चिह्न गुण:" 87 | 88 | #: ../contents/ui/config.qml 89 | msgid "Panel Properties:" 90 | msgstr "पैनल गुण:" 91 | 92 | #: ../contents/ui/config.qml 93 | msgid "Show All apps by default" 94 | msgstr "डिफ़ॉल्ट रूप से सभी ऐप्स दिखाएं" 95 | 96 | #: ../contents/ui/config.qml 97 | msgid "Replace Explorer icon in footer" 98 | msgstr "पाद लेख में एक्सप्लोरर आइकन बदलें" 99 | 100 | #: ../contents/ui/config.qml 101 | msgid "Reduce Icon Size for User Profile" 102 | msgstr "उपयोगकर्ता प्रोफ़ाइल के लिए चिह्न का आकार कम करें" 103 | 104 | #: ../contents/ui/config.qml 105 | msgid "Reduce Icon Size for Footer" 106 | msgstr "पाद लेख के लिए चिह्न का आकार कम करें" 107 | 108 | #: ../contents/ui/config.qml 109 | msgid "Reduce Icon Size for Pinned item" 110 | msgstr "पिन किए गए आइटम के लिए आइकन का आकार कम करें" 111 | 112 | #: ../contents/ui/config.qml 113 | msgid "Allow label to have two lines (Pinned)" 114 | msgstr "लेबल को दो पंक्तियों की अनुमति दें (पिन किया हुआ)" 115 | 116 | #: ../contents/ui/config.qml 117 | msgid "Show Description for all apps and search item" 118 | msgstr "सभी ऐप्स और खोज आइटम के लिए विवरण दिखाएं" 119 | 120 | #: ../contents/ui/config.qml 121 | msgid "Always Show Search Bar" 122 | msgstr "हमेशा खोज बार दिखाएँ" 123 | 124 | #: ../contents/ui/config.qml 125 | msgid "Prefer showing full name, instead of login name" 126 | msgstr "लॉगिन नाम के बजाय पूरा नाम दिखाना पसंद करें" 127 | 128 | #: ../contents/ui/config.qml 129 | msgid "Show applications as:" 130 | msgstr "अनुप्रयोगों को इस रूप में दिखाएं:" 131 | 132 | #: ../contents/ui/config.qml 133 | msgid "Name only" 134 | msgstr "केवल नाम" 135 | 136 | #: ../contents/ui/config.qml 137 | msgid "Description only" 138 | msgstr "केवल विवरण" 139 | 140 | #: ../contents/ui/config.qml 141 | msgid "Name (Description)" 142 | msgstr "नाम (विवरण)" 143 | 144 | #: ../contents/ui/config.qml 145 | msgid "Description (Name)" 146 | msgstr "विवरण (नाम)" 147 | 148 | #: ../contents/ui/config.qml 149 | msgid "Icons on Bottom bar:" 150 | msgstr "नीचे पट्टी पर चिह्न:" 151 | 152 | #: ../contents/ui/config.qml 153 | msgid "Documents" 154 | msgstr "दस्तावेज़" 155 | 156 | #: ../contents/ui/config.qml 157 | msgid "Pictures" 158 | msgstr "चित्रों" 159 | 160 | #: ../contents/ui/config.qml 161 | msgid "Music" 162 | msgstr "संगीत" 163 | 164 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 165 | msgid "Downloads" 166 | msgstr "डाउनलोड" 167 | 168 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 169 | msgid "Videos" 170 | msgstr "वीडियो" 171 | 172 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 173 | msgid "File manager" 174 | msgstr "फ़ाइल प्रबंधक" 175 | 176 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 177 | msgid "System settings" 178 | msgstr "प्रणाली व्यवस्था" 179 | 180 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 181 | msgid "Lock screen" 182 | msgstr "लॉक स्क्रीन" 183 | 184 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 185 | msgid "Power options" 186 | msgstr "ऊर्जा के विकल्प" 187 | 188 | #: ../contents/ui/config.qml 189 | msgid "Search:" 190 | msgstr "खोज:" 191 | 192 | #: ../contents/ui/config.qml 193 | msgid "Expand search to bookmarks, files and emails" 194 | msgstr "बुकमार्क, फ़ाइलों और ईमेल में खोज का विस्तार करें" 195 | 196 | #: ../contents/ui/MainColumnItem.qml 197 | msgid "Type here to search" 198 | msgstr "खोजने के लिए यहां टाइप करें" 199 | 200 | #: ../contents/ui/MainColumnItem.qml 201 | msgid "All apps" 202 | msgstr "सभी एप्लीकेशन" 203 | 204 | #: ../contents/ui/MainColumnItem.qml 205 | msgid "Recommended" 206 | msgstr "अनुशंसित" 207 | 208 | #: ../contents/ui/MainColumnItem.qml 209 | msgid "Pinned" 210 | msgstr "पिन की गई" 211 | 212 | #: ../contents/ui/MainColumnItem.qml 213 | msgid "Back" 214 | msgstr "वापस" 215 | 216 | #: ../contents/ui/MainColumnItem.qml 217 | msgid "More" 218 | msgstr "अधिक" 219 | 220 | #: ../contents/ui/Footer.qml 221 | msgid "Go to user settings" 222 | msgstr "उपयोगकर्ता सेटिंग पर जाएं" 223 | -------------------------------------------------------------------------------- /translate/it.po: -------------------------------------------------------------------------------- 1 | # Translation of menu11 in ITALIAN 2 | # Copyright (C) 2021 3 | # This file is distributed under the same license as the menu11 package. 4 | # Daniele Aliquo' , 2021. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: menu11\n" 10 | "Report-Msgid-Bugs-To: https://github.com/prateekmedia/menu11\n" 11 | "POT-Creation-Date: 2021-04-09 22:46-0400\n" 12 | "PO-Revision-Date: 2021-07-24 13:43+LMT\n" 13 | "Last-Translator: Daniele Aliquo' \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: ../metadata.desktop 21 | msgid "Menu 11" 22 | msgstr "Menu 11" 23 | 24 | #: ../metadata.desktop 25 | msgid "A highly customizable launcher inspired from windows 11 menu. Fork of MenuZ." 26 | msgstr "Un launcher altamente personalizzabile ispirato al menu' Start di Windows 11. Fork di MenuZ" 27 | 28 | #: ../contents/config/config.qml 29 | msgid "General" 30 | msgstr "Generale" 31 | 32 | #: ../contents/ui/config.qml 33 | msgid "Icon:" 34 | msgstr "Icona" 35 | 36 | #: ../contents/ui/config.qml 37 | msgid "Menu Position:" 38 | msgstr "Posizione menu'" 39 | 40 | #: ../contents/ui/config.qml 41 | msgid "Center" 42 | msgstr "" 43 | 44 | #: ../contents/ui/config.qml 45 | msgid "On Edge" 46 | msgstr "" 47 | 48 | #: ../contents/ui/config.qml 49 | msgid "Auto" 50 | msgstr "" 51 | 52 | #: ../contents/ui/config.qml 53 | msgid "Pinned item:" 54 | msgstr "Elementi fissati:" 55 | 56 | #: ../contents/ui/config.qml 57 | msgid "Favourite apps" 58 | msgstr "Applicazioni preferite" 59 | 60 | #: ../contents/ui/config.qml 61 | msgid "Recent apps" 62 | msgstr "Applicazioni recenti" 63 | 64 | #: ../contents/ui/config.qml 65 | msgid "Recent documents" 66 | msgstr "Documenti recenti" 67 | 68 | #: ../contents/ui/config.qml 69 | msgid "Recommended item:" 70 | msgstr "Articoli consigliati:" 71 | 72 | #: ../contents/ui/config.qml 73 | msgid "None" 74 | msgstr "Nessuno" 75 | 76 | #: ../contents/ui/config.qml 77 | msgid "Number of columns in grid:" 78 | msgstr "Numero di colonne" 79 | 80 | #: ../contents/ui/config.qml 81 | msgid "Number of rows in grid:" 82 | msgstr "Numero di righe" 83 | 84 | #: ../contents/ui/config.qml 85 | msgid "Icon Properties:" 86 | msgstr "Icona' pannello" 87 | 88 | #: ../contents/ui/config.qml 89 | msgid "Panel Properties:" 90 | msgstr "Proprieta' pannello" 91 | 92 | #: ../contents/ui/config.qml 93 | msgid "Show All apps by default" 94 | msgstr "Mostra sempre tutte le app" 95 | 96 | #: ../contents/ui/config.qml 97 | msgid "Replace Explorer icon in footer" 98 | msgstr "Sostituisci l'icona dell'esploratore nel piè di pagina" 99 | 100 | #: ../contents/ui/config.qml 101 | msgid "Reduce Icon Size for User Profile" 102 | msgstr "Riduci dimensione icona per l'immagine di profilo" 103 | 104 | #: ../contents/ui/config.qml 105 | msgid "Reduce Icon Size for Footer" 106 | msgstr "Riduci dimensione icone in basso" 107 | 108 | #: ../contents/ui/config.qml 109 | msgid "Reduce Icon Size for Pinned item" 110 | msgstr "Riduci dimensione icone per Elementi fissati" 111 | 112 | #: ../contents/ui/config.qml 113 | msgid "Allow label to have two lines (Pinned)" 114 | msgstr "Consenti al testo di andare a capo (Elementi fissati)" 115 | 116 | #: ../contents/ui/config.qml 117 | msgid "Show Description for all apps and search item" 118 | msgstr "Mostra descrizione per tutte le app ed elementi di ricerca" 119 | 120 | #: ../contents/ui/config.qml 121 | msgid "Always Show Search Bar" 122 | msgstr "Mostra sempre la barra di ricerca" 123 | 124 | #: ../contents/ui/config.qml 125 | msgid "Prefer showing full name, instead of login name" 126 | msgstr "Preferisce mostrare il nome completo invece del nome utente" 127 | 128 | #: ../contents/ui/config.qml 129 | msgid "Show applications as:" 130 | msgstr "Mostra applicazioni come:" 131 | 132 | #: ../contents/ui/config.qml 133 | msgid "Name only" 134 | msgstr "Solo nome" 135 | 136 | #: ../contents/ui/config.qml 137 | msgid "Description only" 138 | msgstr "Solo descrizione" 139 | 140 | #: ../contents/ui/config.qml 141 | msgid "Name (Description)" 142 | msgstr "Nome (Descrizione)" 143 | 144 | #: ../contents/ui/config.qml 145 | msgid "Description (Name)" 146 | msgstr "Descrizione (Nome)" 147 | 148 | #: ../contents/ui/config.qml 149 | msgid "Icons on Bottom bar:" 150 | msgstr "Icone nella barra inferiore" 151 | 152 | #: ../contents/ui/config.qml 153 | msgid "Documents" 154 | msgstr "Documenti" 155 | 156 | #: ../contents/ui/config.qml 157 | msgid "Pictures" 158 | msgstr "Immagini" 159 | 160 | #: ../contents/ui/config.qml 161 | msgid "Music" 162 | msgstr "Musica" 163 | 164 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 165 | msgid "Downloads" 166 | msgstr "Scaricati" 167 | 168 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 169 | msgid "Videos" 170 | msgstr "Video" 171 | 172 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 173 | msgid "File manager" 174 | msgstr "Gestore file" 175 | 176 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 177 | msgid "System settings" 178 | msgstr "Impostazioni di sistema" 179 | 180 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 181 | msgid "Lock screen" 182 | msgstr "Schermata di blocco" 183 | 184 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 185 | msgid "Power options" 186 | msgstr "Arresta" 187 | 188 | #: ../contents/ui/config.qml 189 | msgid "Search:" 190 | msgstr "Ricerca:" 191 | 192 | #: ../contents/ui/config.qml 193 | msgid "Expand search to bookmarks, files and emails" 194 | msgstr "Espandi ricerca a segnalibri, file ed email" 195 | 196 | #: ../contents/ui/MainColumnItem.qml 197 | msgid "Type here to search" 198 | msgstr "Scrivi qui il testo da cercare." 199 | 200 | #: ../contents/ui/MainColumnItem.qml 201 | msgid "All apps" 202 | msgstr "Tutte le app" 203 | 204 | #: ../contents/ui/MainColumnItem.qml 205 | msgid "Recommended" 206 | msgstr "Articoli consigliati" 207 | 208 | #: ../contents/ui/MainColumnItem.qml 209 | msgid "Pinned" 210 | msgstr "Aggiunto" 211 | 212 | #: ../contents/ui/MainColumnItem.qml 213 | msgid "Back" 214 | msgstr "Indietro" 215 | 216 | #: ../contents/ui/MainColumnItem.qml 217 | msgid "More" 218 | msgstr "Altro" 219 | 220 | #: ../contents/ui/Footer.qml 221 | msgid "Go to user settings" 222 | msgstr "Vai alle impostazioni utente" 223 | -------------------------------------------------------------------------------- /translate/ko.po: -------------------------------------------------------------------------------- 1 | # Translation of menu11 in Korean 2 | # Copyright (C) 2021 3 | # This file is distributed under the same license as the menu11 package. 4 | # kuroehanako , 2021. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: menu11\n" 9 | "Report-Msgid-Bugs-To: https://github.com/prateekmedia/menu11\n" 10 | "POT-Creation-Date: 2021-04-09 22:46-0400\n" 11 | "PO-Revision-Date: 2021-08-17 22:06+0900\n" 12 | "Language-Team: \n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=UTF-8\n" 15 | "Content-Transfer-Encoding: 8bit\n" 16 | "X-Generator: Poedit 3.0\n" 17 | "Last-Translator: \n" 18 | "Plural-Forms: nplurals=1; plural=0;\n" 19 | "Language: ko\n" 20 | 21 | #: ../metadata.desktop 22 | msgid "Menu 11" 23 | msgstr "Menu 11" 24 | 25 | #: ../metadata.desktop 26 | msgid "A highly customizable launcher inspired from windows 11 menu. Fork of MenuZ." 27 | msgstr "" 28 | 29 | #: ../contents/config/config.qml 30 | msgid "General" 31 | msgstr "일반" 32 | 33 | #: ../contents/ui/config.qml 34 | msgid "Icon:" 35 | msgstr "아이콘:" 36 | 37 | #: ../contents/ui/config.qml 38 | msgid "Menu Position:" 39 | msgstr "메뉴 위치:" 40 | 41 | #: ../contents/ui/config.qml 42 | msgid "Center" 43 | msgstr "가운데" 44 | 45 | #: ../contents/ui/config.qml 46 | msgid "On Edge" 47 | msgstr "모서리" 48 | 49 | #: ../contents/ui/config.qml 50 | msgid "Auto" 51 | msgstr "자동" 52 | 53 | #: ../contents/ui/config.qml 54 | msgid "Pinned item:" 55 | msgstr "고정된 항목:" 56 | 57 | #: ../contents/ui/config.qml 58 | msgid "Favourite apps" 59 | msgstr "책갈피" 60 | 61 | #: ../contents/ui/config.qml 62 | msgid "Recent apps" 63 | msgstr "최근 프로그램" 64 | 65 | #: ../contents/ui/config.qml 66 | msgid "Recent documents" 67 | msgstr "최근 문서" 68 | 69 | #: ../contents/ui/config.qml 70 | msgid "Recommended item:" 71 | msgstr "추천 항목:" 72 | 73 | #: ../contents/ui/config.qml 74 | msgid "None" 75 | msgstr "없음" 76 | 77 | #: ../contents/ui/config.qml 78 | msgid "Number of columns in grid:" 79 | msgstr "" 80 | 81 | #: ../contents/ui/config.qml 82 | msgid "Number of rows in grid:" 83 | msgstr "" 84 | 85 | #: ../contents/ui/config.qml 86 | msgid "Icon Properties:" 87 | msgstr "아이콘 정보:" 88 | 89 | #: ../contents/ui/config.qml 90 | msgid "Panel Properties:" 91 | msgstr "패널 정보:" 92 | 93 | #: ../contents/ui/config.qml 94 | msgid "Show All apps by default" 95 | msgstr "" 96 | 97 | #: ../contents/ui/config.qml 98 | msgid "Replace Explorer icon in footer" 99 | msgstr "" 100 | 101 | #: ../contents/ui/config.qml 102 | msgid "Reduce Icon Size for User Profile" 103 | msgstr "사용자 이미지 크기 줄이기" 104 | 105 | #: ../contents/ui/config.qml 106 | msgid "Reduce Icon Size for Footer" 107 | msgstr "" 108 | 109 | #: ../contents/ui/config.qml 110 | msgid "Reduce Icon Size for Pinned item" 111 | msgstr "" 112 | 113 | #: ../contents/ui/config.qml 114 | msgid "Allow label to have two lines (Pinned)" 115 | msgstr "이름표에 두 줄 허용 (고정됨)" 116 | 117 | #: ../contents/ui/config.qml 118 | msgid "Show Description for all apps and search item" 119 | msgstr "프로그램과 검색 항목에 설명 표시" 120 | 121 | #: ../contents/ui/config.qml 122 | msgid "Always Show Search Bar" 123 | msgstr "항상 검색 창 표시" 124 | 125 | #: ../contents/ui/config.qml 126 | msgid "Prefer showing full name, instead of login name" 127 | msgstr "" 128 | 129 | #: ../contents/ui/config.qml 130 | msgid "Show applications as:" 131 | msgstr "프로그램 표시:" 132 | 133 | #: ../contents/ui/config.qml 134 | msgid "Name only" 135 | msgstr "이름만" 136 | 137 | #: ../contents/ui/config.qml 138 | msgid "Description only" 139 | msgstr "설명만" 140 | 141 | #: ../contents/ui/config.qml 142 | msgid "Name (Description)" 143 | msgstr "이름 (설명)" 144 | 145 | #: ../contents/ui/config.qml 146 | msgid "Description (Name)" 147 | msgstr "설명 (이름)" 148 | 149 | #: ../contents/ui/config.qml 150 | msgid "Icons on Bottom bar:" 151 | msgstr "하단 바 아이콘:" 152 | 153 | #: ../contents/ui/config.qml 154 | msgid "Documents" 155 | msgstr "문서" 156 | 157 | #: ../contents/ui/config.qml 158 | msgid "Pictures" 159 | msgstr "사진" 160 | 161 | #: ../contents/ui/config.qml 162 | msgid "Music" 163 | msgstr "음악" 164 | 165 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 166 | msgid "Downloads" 167 | msgstr "다운로드" 168 | 169 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 170 | msgid "Videos" 171 | msgstr "비디오" 172 | 173 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 174 | msgid "File manager" 175 | msgstr "파일 관리자" 176 | 177 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 178 | msgid "System settings" 179 | msgstr "시스템 설정" 180 | 181 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 182 | msgid "Lock screen" 183 | msgstr "잠금" 184 | 185 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 186 | msgid "Power options" 187 | msgstr "전원 옵션" 188 | 189 | #: ../contents/ui/config.qml 190 | msgid "Search:" 191 | msgstr "검색:" 192 | 193 | #: ../contents/ui/config.qml 194 | msgid "Expand search to bookmarks, files and emails" 195 | msgstr "" 196 | 197 | #: ../contents/ui/MainColumnItem.qml 198 | msgid "Type here to search" 199 | msgstr "검색하려면 여기에 입력하십시오." 200 | 201 | #: ../contents/ui/MainColumnItem.qml 202 | msgid "All apps" 203 | msgstr "모든 프로그램" 204 | 205 | #: ../contents/ui/MainColumnItem.qml 206 | msgid "Recommended" 207 | msgstr "추천" 208 | 209 | #: ../contents/ui/MainColumnItem.qml 210 | msgid "Pinned" 211 | msgstr "고정됨" 212 | 213 | #: ../contents/ui/MainColumnItem.qml 214 | msgid "Back" 215 | msgstr "뒤로" 216 | 217 | #: ../contents/ui/MainColumnItem.qml 218 | msgid "More" 219 | msgstr "더 보기" 220 | 221 | #: ../contents/ui/Footer.qml 222 | msgid "Go to user settings" 223 | msgstr "사용자 설정으로" 224 | -------------------------------------------------------------------------------- /translate/nl.po: -------------------------------------------------------------------------------- 1 | # Translation of menu11 in Dutch 2 | # Copyright (C) 2021 3 | # This file is distributed under the same license as the menu11 package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: menu11\n" 9 | "Report-Msgid-Bugs-To: https://github.com/prateekmedia/menu11\n" 10 | "POT-Creation-Date: 2021-04-09 22:46-0400\n" 11 | "PO-Revision-Date: 2021-07-24 14:40+0200\n" 12 | "Language-Team: \n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=UTF-8\n" 15 | "Content-Transfer-Encoding: 8bit\n" 16 | "X-Generator: Poedit 3.0\n" 17 | "Last-Translator: Heimen Stoffels \n" 18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 19 | "Language: nl\n" 20 | 21 | #: ../metadata.desktop 22 | msgid "Menu 11" 23 | msgstr "Menu 11" 24 | 25 | #: ../metadata.desktop 26 | msgid "A highly customizable launcher inspired from windows 11 menu. Fork of MenuZ." 27 | msgstr "Een zeer aanpasbaar programmamenu dat veel wegheeft van het Windows 11-startmenu. Afsplitsing van MenuZ." 28 | 29 | #: ../contents/config/config.qml 30 | msgid "General" 31 | msgstr "Algemeen" 32 | 33 | #: ../contents/ui/config.qml 34 | msgid "Icon:" 35 | msgstr "Pictogram" 36 | 37 | #: ../contents/ui/config.qml 38 | msgid "Menu Position:" 39 | msgstr "Menupositie" 40 | 41 | #: ../contents/ui/config.qml 42 | msgid "Center" 43 | msgstr "" 44 | 45 | #: ../contents/ui/config.qml 46 | msgid "On Edge" 47 | msgstr "" 48 | 49 | #: ../contents/ui/config.qml 50 | msgid "Auto" 51 | msgstr "" 52 | 53 | #: ../contents/ui/config.qml 54 | msgid "Pinned item:" 55 | msgstr "Vastgemaakt item:" 56 | 57 | #: ../contents/ui/config.qml 58 | msgid "Favourite apps" 59 | msgstr "Favoriete programma's" 60 | 61 | #: ../contents/ui/config.qml 62 | msgid "Recent apps" 63 | msgstr "Recente programma's" 64 | 65 | #: ../contents/ui/config.qml 66 | msgid "Recent documents" 67 | msgstr "Recente documenten" 68 | 69 | #: ../contents/ui/config.qml 70 | msgid "Recommended item:" 71 | msgstr "Aanbevolen item:" 72 | 73 | #: ../contents/ui/config.qml 74 | msgid "None" 75 | msgstr "Geen" 76 | 77 | #: ../contents/ui/config.qml 78 | msgid "Number of columns in grid:" 79 | msgstr "Aantal kolommen op rooster:" 80 | 81 | #: ../contents/ui/config.qml 82 | msgid "Number of rows in grid:" 83 | msgstr "Aantal rijen op rooster:" 84 | 85 | #: ../contents/ui/config.qml 86 | msgid "Icon Properties:" 87 | msgstr "Pictogram Eigenschappen:" 88 | 89 | #: ../contents/ui/config.qml 90 | msgid "Panel Properties:" 91 | msgstr "Paneel Eigenschappen:" 92 | 93 | #: ../contents/ui/config.qml 94 | msgid "Show All apps by default" 95 | msgstr "Onderdeel ‘Alle programma's’ tonen na aanklikken" 96 | 97 | #: ../contents/ui/config.qml 98 | msgid "Replace Explorer icon in footer" 99 | msgstr "Vervang Explorer-pictogram in voettekst" 100 | 101 | #: ../contents/ui/config.qml 102 | msgid "Reduce Icon Size for User Profile" 103 | msgstr "Pictogram van gebruikersafbeelding verkleinen" 104 | 105 | #: ../contents/ui/config.qml 106 | msgid "Reduce Icon Size for Footer" 107 | msgstr "Pictogrammen naast voettekst verkleinen" 108 | 109 | #: ../contents/ui/config.qml 110 | msgid "Reduce Icon Size for Pinned item" 111 | msgstr "Pictogrammen van vastgemaakte items verkleinen" 112 | 113 | #: ../contents/ui/config.qml 114 | msgid "Allow label to have two lines (Pinned)" 115 | msgstr "Labeltekst verdelen over twee regels (vastgemaakte items)" 116 | 117 | #: ../contents/ui/config.qml 118 | msgid "Show Description for all apps and search item" 119 | msgstr "Beschrijvingen tonen bij alle programma's en zoekopdrachten" 120 | 121 | #: ../contents/ui/config.qml 122 | msgid "Always Show Search Bar" 123 | msgstr "Zoekbalk altijd tonen" 124 | 125 | #: ../contents/ui/config.qml 126 | msgid "Prefer showing full name, instead of login name" 127 | msgstr "Liever volledige naam weergeven in plaats van inlognaam" 128 | 129 | #: ../contents/ui/config.qml 130 | msgid "Show applications as:" 131 | msgstr "Programmaweergave:" 132 | 133 | #: ../contents/ui/config.qml 134 | msgid "Name only" 135 | msgstr "Alleen naam" 136 | 137 | #: ../contents/ui/config.qml 138 | msgid "Description only" 139 | msgstr "Alleen beschrijving" 140 | 141 | #: ../contents/ui/config.qml 142 | msgid "Name (Description)" 143 | msgstr "Naam (beschrijving)" 144 | 145 | #: ../contents/ui/config.qml 146 | msgid "Description (Name)" 147 | msgstr "Beschrijving (naam)" 148 | 149 | #: ../contents/ui/config.qml 150 | msgid "Icons on Bottom bar:" 151 | msgstr "Pictogrammen op onderbalk:" 152 | 153 | #: ../contents/ui/config.qml 154 | msgid "Documents" 155 | msgstr "Documenten" 156 | 157 | #: ../contents/ui/config.qml 158 | msgid "Pictures" 159 | msgstr "Afbeeldingen" 160 | 161 | #: ../contents/ui/config.qml 162 | msgid "Music" 163 | msgstr "Muziek" 164 | 165 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 166 | msgid "Downloads" 167 | msgstr "Downloads" 168 | 169 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 170 | msgid "Videos" 171 | msgstr "Video's" 172 | 173 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 174 | msgid "File manager" 175 | msgstr "Bestandsbeheerder" 176 | 177 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 178 | msgid "System settings" 179 | msgstr "Systeeminstellingen" 180 | 181 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 182 | msgid "Lock screen" 183 | msgstr "Scherm vergrendelen" 184 | 185 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 186 | msgid "Power options" 187 | msgstr "Afsluitopties" 188 | 189 | #: ../contents/ui/config.qml 190 | msgid "Search:" 191 | msgstr "Zoeken:" 192 | 193 | #: ../contents/ui/config.qml 194 | msgid "Expand search to bookmarks, files and emails" 195 | msgstr "Ook bladwijzers, bestanden en e-mails doorzoeken" 196 | 197 | #: ../contents/ui/MainColumnItem.qml 198 | msgid "Type here to search" 199 | msgstr "Typ om te zoeken…" 200 | 201 | #: ../contents/ui/MainColumnItem.qml 202 | msgid "All apps" 203 | msgstr "Alle programma's" 204 | 205 | #: ../contents/ui/MainColumnItem.qml 206 | msgid "Recommended" 207 | msgstr "Aanbevolen" 208 | 209 | #: ../contents/ui/MainColumnItem.qml 210 | msgid "Pinned" 211 | msgstr "Vastgemaakt" 212 | 213 | #: ../contents/ui/MainColumnItem.qml 214 | msgid "Back" 215 | msgstr "Terug" 216 | 217 | #: ../contents/ui/MainColumnItem.qml 218 | msgid "More" 219 | msgstr "Meer" 220 | 221 | #: ../contents/ui/Footer.qml 222 | msgid "Go to user settings" 223 | msgstr "Ga naar de gebruikersinstellingen" 224 | -------------------------------------------------------------------------------- /translate/pl.po: -------------------------------------------------------------------------------- 1 | # Translation of menu11 in LANGUAGE 2 | # Copyright (C) 2021 3 | # This file is distributed under the same license as the menu11 package. 4 | # Marcin Sągol marcin@soee.pl, 2021. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: menu11\n" 10 | "Report-Msgid-Bugs-To: https://github.com/prateekmedia/menu11\n" 11 | "POT-Creation-Date: 2021-04-09 22:46-0400\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: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: ../metadata.desktop 21 | msgid "Menu 11" 22 | msgstr "Menu 11" 23 | 24 | #: ../metadata.desktop 25 | msgid "A highly customizable launcher inspired from windows 11 menu. Fork of MenuZ." 26 | msgstr "Wysoce konfigurowalny program uruchamiający aplikacje inspirowany menu z systemu Windows 11. Fork MenuZ." 27 | 28 | #: ../contents/config/config.qml 29 | msgid "General" 30 | msgstr "Ogólne" 31 | 32 | #: ../contents/ui/config.qml 33 | msgid "Icon:" 34 | msgstr "Ikona:" 35 | 36 | #: ../contents/ui/config.qml 37 | msgid "Menu Position:" 38 | msgstr "Pozycja menu:" 39 | 40 | #: ../contents/ui/config.qml 41 | msgid "Center" 42 | msgstr "Środek" 43 | 44 | #: ../contents/ui/config.qml 45 | msgid "On Edge" 46 | msgstr "Brzeg" 47 | 48 | #: ../contents/ui/config.qml 49 | msgid "Auto" 50 | msgstr "Automatyczna" 51 | 52 | #: ../contents/ui/config.qml 53 | msgid "Pinned item:" 54 | msgstr "Przypięty element:" 55 | 56 | #: ../contents/ui/config.qml 57 | msgid "Favourite apps" 58 | msgstr "Ulubione aplikacje" 59 | 60 | #: ../contents/ui/config.qml 61 | msgid "Recent apps" 62 | msgstr "Bieżące aplikacje" 63 | 64 | #: ../contents/ui/config.qml 65 | msgid "Recent documents" 66 | msgstr "Bieżące dokumenty" 67 | 68 | #: ../contents/ui/config.qml 69 | msgid "Recommended item:" 70 | msgstr "Polecany element:" 71 | 72 | #: ../contents/ui/config.qml 73 | msgid "None" 74 | msgstr "Żaden" 75 | 76 | #: ../contents/ui/config.qml 77 | msgid "Number of columns in grid:" 78 | msgstr "Liczba kolumn w siatce:" 79 | 80 | #: ../contents/ui/config.qml 81 | msgid "Number of rows in grid:" 82 | msgstr "Liczba wierszy w siatce:" 83 | 84 | #: ../contents/ui/config.qml 85 | msgid "Icon Properties:" 86 | msgstr "Ustawienia ikon:" 87 | 88 | #: ../contents/ui/config.qml 89 | msgid "Panel Properties:" 90 | msgstr "Ustawienia panelu:" 91 | 92 | #: ../contents/ui/config.qml 93 | msgid "Show All apps by default" 94 | msgstr "Pokaż wszystkie aplikacje domyślnie" 95 | 96 | #: ../contents/ui/config.qml 97 | msgid "Replace Explorer icon in footer" 98 | msgstr "Zamień ikonę Eksploratora w stopce" 99 | 100 | #: ../contents/ui/config.qml 101 | msgid "Reduce Icon Size for User Profile" 102 | msgstr "Zredukuj rozmar ikony dla profilu użytkownika" 103 | 104 | #: ../contents/ui/config.qml 105 | msgid "Reduce Icon Size for Footer" 106 | msgstr "Zredukuj rozmar ikony dla stopki" 107 | 108 | #: ../contents/ui/config.qml 109 | msgid "Reduce Icon Size for Pinned item" 110 | msgstr "Zredukuj rozmar ikony dla przypiętego elementu" 111 | 112 | #: ../contents/ui/config.qml 113 | msgid "Allow label to have two lines (Pinned)" 114 | msgstr "Pozwól, aby etykieta miała dwa wiersze (Przypięte)" 115 | 116 | #: ../contents/ui/config.qml 117 | msgid "Show Description for all apps and search item" 118 | msgstr "Pokaż opis dla wszystkich aplikacji i elementu wyszukiwania" 119 | 120 | #: ../contents/ui/config.qml 121 | msgid "Always Show Search Bar" 122 | msgstr "Zawsze pokazuj pasek wyszukiwania" 123 | 124 | #: ../contents/ui/config.qml 125 | msgid "Prefer showing full name, instead of login name" 126 | msgstr "Preferuj pokazywanie imienia i nazwiska zamiast loginu" 127 | 128 | #: ../contents/ui/config.qml 129 | msgid "Show applications as:" 130 | msgstr "Pokaż aplikacje jako:" 131 | 132 | #: ../contents/ui/config.qml 133 | msgid "Name only" 134 | msgstr "Tylko nazwa" 135 | 136 | #: ../contents/ui/config.qml 137 | msgid "Description only" 138 | msgstr "Tylko opis" 139 | 140 | #: ../contents/ui/config.qml 141 | msgid "Name (Description)" 142 | msgstr "Nazwa (opis)" 143 | 144 | #: ../contents/ui/config.qml 145 | msgid "Description (Name)" 146 | msgstr "Opis (nazwa)" 147 | 148 | #: ../contents/ui/config.qml 149 | msgid "Icons on Bottom bar:" 150 | msgstr "Ikony na dolnym" 151 | 152 | #: ../contents/ui/config.qml 153 | msgid "Documents" 154 | msgstr "Dokumenty" 155 | 156 | #: ../contents/ui/config.qml 157 | msgid "Pictures" 158 | msgstr "Obrazy" 159 | 160 | #: ../contents/ui/config.qml 161 | msgid "Music" 162 | msgstr "Muzyka" 163 | 164 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 165 | msgid "Downloads" 166 | msgstr "Pobrane" 167 | 168 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 169 | msgid "Videos" 170 | msgstr "Wideo" 171 | 172 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 173 | msgid "File manager" 174 | msgstr "Menadżer plików" 175 | 176 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 177 | msgid "System settings" 178 | msgstr "Ustawienia systemowe" 179 | 180 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 181 | msgid "Lock screen" 182 | msgstr "Zablokuj ekran" 183 | 184 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 185 | msgid "Power options" 186 | msgstr "Zasilanie" 187 | 188 | #: ../contents/ui/config.qml 189 | msgid "Search:" 190 | msgstr "Wyszukiwanie:" 191 | 192 | #: ../contents/ui/config.qml 193 | msgid "Expand search to bookmarks, files and emails" 194 | msgstr "Rozszerz wyszukiwanie do zakładek, plików i e-maili" 195 | 196 | #: ../contents/ui/MainColumnItem.qml 197 | msgid "Type here to search" 198 | msgstr "Wpisz tutaj, aby szukać" 199 | 200 | #: ../contents/ui/MainColumnItem.qml 201 | msgid "All apps" 202 | msgstr "Wszystkie aplikacje" 203 | 204 | #: ../contents/ui/MainColumnItem.qml 205 | msgid "Recommended" 206 | msgstr "Polecane" 207 | 208 | #: ../contents/ui/MainColumnItem.qml 209 | msgid "Pinned" 210 | msgstr "Przypięte" 211 | 212 | #: ../contents/ui/MainColumnItem.qml 213 | msgid "Back" 214 | msgstr "Wstecz" 215 | 216 | #: ../contents/ui/MainColumnItem.qml 217 | msgid "More" 218 | msgstr "Więcej" 219 | 220 | #: ../contents/ui/Footer.qml 221 | msgid "Go to user settings" 222 | msgstr "Przejdź do ustawień użytkownika" 223 | -------------------------------------------------------------------------------- /translate/pt_BR.po: -------------------------------------------------------------------------------- 1 | # Translation of menu11 in PORTUGUESE_BRAZILLIAN 2 | # Copyright (C) 2021 3 | # This file is distributed under the same license as the menu11 package. 4 | # Thiago Corbari Feldhaus' , 2021. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: menu11\n" 10 | "Report-Msgid-Bugs-To: https://github.com/prateekmedia/menu11\n" 11 | "POT-Creation-Date: 2021-07-29 11:00-0300\n" 12 | "PO-Revision-Date: 2021-07-29 11:00+LMT\n" 13 | "Last-Translator: Thiago Corbari Feldhaus' \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: ../metadata.desktop 21 | msgid "Menu 11" 22 | msgstr "Menu 11" 23 | 24 | #: ../metadata.desktop 25 | msgid "A highly customizable launcher inspired from windows 11 menu. Fork of MenuZ." 26 | msgstr "Um lançador customizado inspirado do menu do windows 11. Fork do MenuZ" 27 | 28 | #: ../contents/config/config.qml 29 | msgid "General" 30 | msgstr "Geral" 31 | 32 | #: ../contents/ui/config.qml 33 | msgid "Icon:" 34 | msgstr "Ícone" 35 | 36 | #: ../contents/ui/config.qml 37 | msgid "Menu Position:" 38 | msgstr "Posição do Menu'" 39 | 40 | #: ../contents/ui/config.qml 41 | msgid "Center" 42 | msgstr "Centralizar" 43 | 44 | #: ../contents/ui/config.qml 45 | msgid "On Edge" 46 | msgstr "Na lateral" 47 | 48 | #: ../contents/ui/config.qml 49 | msgid "Auto" 50 | msgstr "Automático" 51 | 52 | #: ../contents/ui/config.qml 53 | msgid "Pinned item:" 54 | msgstr "Ítem fixo:" 55 | 56 | #: ../contents/ui/config.qml 57 | msgid "Favourite apps" 58 | msgstr "Aplicações Favoritas" 59 | 60 | #: ../contents/ui/config.qml 61 | msgid "Recent apps" 62 | msgstr "Aplicações recentes" 63 | 64 | #: ../contents/ui/config.qml 65 | msgid "Recent documents" 66 | msgstr "Documentos recentes" 67 | 68 | #: ../contents/ui/config.qml 69 | msgid "Recommended item:" 70 | msgstr "Ítem recomendado:" 71 | 72 | #: ../contents/ui/config.qml 73 | msgid "None" 74 | msgstr "Nenhum" 75 | 76 | #: ../contents/ui/config.qml 77 | msgid "Number of columns in grid:" 78 | msgstr "Número de colunas no grid" 79 | 80 | #: ../contents/ui/config.qml 81 | msgid "Number of rows in grid:" 82 | msgstr "Número de linhas no grid" 83 | 84 | #: ../contents/ui/config.qml 85 | msgid "Icon Properties:" 86 | msgstr "Ícone de Propriedades" 87 | 88 | #: ../contents/ui/config.qml 89 | msgid "Panel Properties:" 90 | msgstr "Painel de Propriedades" 91 | 92 | #: ../contents/ui/config.qml 93 | msgid "Show All apps by default" 94 | msgstr "Mostrar Todas as aplicações por padrão" 95 | 96 | #: ../contents/ui/config.qml 97 | msgid "Replace Explorer icon in footer" 98 | msgstr "Substituir o ícone do Explorer no rodapé" 99 | 100 | #: ../contents/ui/config.qml 101 | msgid "Reduce Icon Size for User Profile" 102 | msgstr "Reduzir Tamanho do Ícove do Perfil do Usuário" 103 | 104 | #: ../contents/ui/config.qml 105 | msgid "Reduce Icon Size for Footer" 106 | msgstr "Reduzir Tamanho do Ícone do Rodapé" 107 | 108 | #: ../contents/ui/config.qml 109 | msgid "Reduce Icon Size for Pinned item" 110 | msgstr "Reduzir Tamanho do Ícone dos Ítens Fixos" 111 | 112 | #: ../contents/ui/config.qml 113 | msgid "Allow label to have two lines (Pinned)" 114 | msgstr "Permitir label em duas linhas (Fixos)" 115 | 116 | #: ../contents/ui/config.qml 117 | msgid "Show Description for all apps and search item" 118 | msgstr "Mostrar Descrição para todas as aplicações e ítem de busca" 119 | 120 | #: ../contents/ui/config.qml 121 | msgid "Always Show Search Bar" 122 | msgstr "Sempre Mostrar a Barra de Busca" 123 | 124 | #: ../contents/ui/config.qml 125 | msgid "Prefer showing full name, instead of login name" 126 | msgstr "Mostrar preferencialmente o nome completo, com base no nome de login" 127 | 128 | #: ../contents/ui/config.qml 129 | msgid "Show applications as:" 130 | msgstr "Mostrar aplicações como:" 131 | 132 | #: ../contents/ui/config.qml 133 | msgid "Name only" 134 | msgstr "Nome somente" 135 | 136 | #: ../contents/ui/config.qml 137 | msgid "Description only" 138 | msgstr "Descrição somente" 139 | 140 | #: ../contents/ui/config.qml 141 | msgid "Name (Description)" 142 | msgstr "Nome (Descrição)" 143 | 144 | #: ../contents/ui/config.qml 145 | msgid "Description (Name)" 146 | msgstr "Descrição (Nome)" 147 | 148 | #: ../contents/ui/config.qml 149 | msgid "Icons on Bottom bar:" 150 | msgstr "Ícones na Barra Inferior" 151 | 152 | #: ../contents/ui/config.qml 153 | msgid "Documents" 154 | msgstr "Documentos" 155 | 156 | #: ../contents/ui/config.qml 157 | msgid "Pictures" 158 | msgstr "Imagens" 159 | 160 | #: ../contents/ui/config.qml 161 | msgid "Music" 162 | msgstr "Música" 163 | 164 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 165 | msgid "Downloads" 166 | msgstr "Downloads" 167 | 168 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 169 | msgid "Videos" 170 | msgstr "Vídeos" 171 | 172 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 173 | msgid "File manager" 174 | msgstr "Gerenciador de arquivo" 175 | 176 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 177 | msgid "System settings" 178 | msgstr "Configurações do sistema" 179 | 180 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 181 | msgid "Lock screen" 182 | msgstr "Bloquear tela" 183 | 184 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 185 | msgid "Power options" 186 | msgstr "Opções de energia" 187 | 188 | #: ../contents/ui/config.qml 189 | msgid "Search:" 190 | msgstr "Buscar:" 191 | 192 | #: ../contents/ui/config.qml 193 | msgid "Expand search to bookmarks, files and emails" 194 | msgstr "Expandir a busca por favoritos, arquivos e emails" 195 | 196 | #: ../contents/ui/MainColumnItem.qml 197 | msgid "Type here to search" 198 | msgstr "Digite a busca aqui" 199 | 200 | #: ../contents/ui/MainColumnItem.qml 201 | msgid "All apps" 202 | msgstr "Todos os aplicativos" 203 | 204 | #: ../contents/ui/MainColumnItem.qml 205 | msgid "Recommended" 206 | msgstr "Recomendado" 207 | 208 | #: ../contents/ui/MainColumnItem.qml 209 | msgid "Pinned" 210 | msgstr "Fixos" 211 | 212 | #: ../contents/ui/MainColumnItem.qml 213 | msgid "Back" 214 | msgstr "Voltar" 215 | 216 | #: ../contents/ui/MainColumnItem.qml 217 | msgid "More" 218 | msgstr "Mais" 219 | 220 | #: ../contents/ui/Footer.qml 221 | msgid "Go to user settings" 222 | msgstr "Ir para configurações do usuário" 223 | -------------------------------------------------------------------------------- /translate/ru.po: -------------------------------------------------------------------------------- 1 | # Translation of menu11 in Russian 2 | # Copyright (C) 2021 3 | # This file is distributed under the same license as the menu11 package. 4 | # Telegram: @CakesTwix , 2021. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: menu11\n" 9 | "Report-Msgid-Bugs-To: https://github.com/prateekmedia/menu11\n" 10 | "POT-Creation-Date: 2021-04-09 22:46-0400\n" 11 | "PO-Revision-Date: 2021-08-30 19:24+0300\n" 12 | "Language-Team: \n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=UTF-8\n" 15 | "Content-Transfer-Encoding: 8bit\n" 16 | "X-Generator: Poedit 3.0\n" 17 | "Last-Translator: CakesTwix\n" 18 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" 19 | "Language: ru\n" 20 | 21 | #: ../metadata.desktop 22 | msgid "Menu 11" 23 | msgstr "Menu 11" 24 | 25 | #: ../metadata.desktop 26 | msgid "A highly customizable launcher inspired from windows 11 menu. Fork of MenuZ." 27 | msgstr "Очень кастомизируемое меню, вдохновленная меню из Windows 11. Форк MenuZ." 28 | 29 | #: ../contents/config/config.qml 30 | msgid "General" 31 | msgstr "Общее" 32 | 33 | #: ../contents/ui/config.qml 34 | msgid "Icon:" 35 | msgstr "Иконка:" 36 | 37 | #: ../contents/ui/config.qml 38 | msgid "Menu Position:" 39 | msgstr "Позиция меню:" 40 | 41 | #: ../contents/ui/config.qml 42 | msgid "Center" 43 | msgstr "Центр" 44 | 45 | #: ../contents/ui/config.qml 46 | msgid "On Edge" 47 | msgstr "На краю" 48 | 49 | #: ../contents/ui/config.qml 50 | msgid "Auto" 51 | msgstr "Автоматически" 52 | 53 | #: ../contents/ui/config.qml 54 | msgid "Pinned item:" 55 | msgstr "Закрепленный элемент:" 56 | 57 | #: ../contents/ui/config.qml 58 | msgid "Favourite apps" 59 | msgstr "Избранные приложения" 60 | 61 | #: ../contents/ui/config.qml 62 | msgid "Recent apps" 63 | msgstr "Последние приложения" 64 | 65 | #: ../contents/ui/config.qml 66 | msgid "Recent documents" 67 | msgstr "Недавние документы" 68 | 69 | #: ../contents/ui/config.qml 70 | msgid "Recommended item:" 71 | msgstr "Рекомендуемый элемент:" 72 | 73 | #: ../contents/ui/config.qml 74 | msgid "None" 75 | msgstr "Ничего" 76 | 77 | #: ../contents/ui/config.qml 78 | msgid "Number of columns in grid:" 79 | msgstr "Количество столбцов в сетке:" 80 | 81 | #: ../contents/ui/config.qml 82 | msgid "Number of rows in grid:" 83 | msgstr "Количество строк в сетке:" 84 | 85 | #: ../contents/ui/config.qml 86 | msgid "Icon Properties:" 87 | msgstr "Свойства иконок:" 88 | 89 | #: ../contents/ui/config.qml 90 | msgid "Panel Properties:" 91 | msgstr "Свойства панели:" 92 | 93 | #: ../contents/ui/config.qml 94 | msgid "Show All apps by default" 95 | msgstr "Показывать все приложения по умолчанию" 96 | 97 | #: ../contents/ui/config.qml 98 | msgid "Replace Explorer icon in footer" 99 | msgstr "Замените значок проводника в нижнем колонтитуле" 100 | 101 | #: ../contents/ui/config.qml 102 | msgid "Reduce Icon Size for User Profile" 103 | msgstr "Уменьшение размера значка для профиля пользователя" 104 | 105 | #: ../contents/ui/config.qml 106 | msgid "Reduce Icon Size for Footer" 107 | msgstr "Уменьшение размера значка для нижнего колонтитула" 108 | 109 | #: ../contents/ui/config.qml 110 | msgid "Reduce Icon Size for Pinned item" 111 | msgstr "Уменьшение размера значка для закрепленного элемента" 112 | 113 | #: ../contents/ui/config.qml 114 | msgid "Allow label to have two lines (Pinned)" 115 | msgstr "Разрешить значку иметь две строки (Закреплен)" 116 | 117 | #: ../contents/ui/config.qml 118 | msgid "Show Description for all apps and search item" 119 | msgstr "Показать описание для всех приложений и элементов поиска" 120 | 121 | #: ../contents/ui/config.qml 122 | msgid "Always Show Search Bar" 123 | msgstr "Всегда показывать панель поиска" 124 | 125 | #: ../contents/ui/config.qml 126 | msgid "Prefer showing full name, instead of login name" 127 | msgstr "Предпочтение показывать полное имя вместо логина для входа в систему" 128 | 129 | #: ../contents/ui/config.qml 130 | msgid "Show applications as:" 131 | msgstr "Показывать приложения как:" 132 | 133 | #: ../contents/ui/config.qml 134 | msgid "Name only" 135 | msgstr "Только название" 136 | 137 | #: ../contents/ui/config.qml 138 | msgid "Description only" 139 | msgstr "Только описание" 140 | 141 | #: ../contents/ui/config.qml 142 | msgid "Name (Description)" 143 | msgstr "Название (Описание)" 144 | 145 | #: ../contents/ui/config.qml 146 | msgid "Description (Name)" 147 | msgstr "Описание (Название)" 148 | 149 | #: ../contents/ui/config.qml 150 | msgid "Icons on Bottom bar:" 151 | msgstr "Значки на нижней панели:" 152 | 153 | #: ../contents/ui/config.qml 154 | msgid "Documents" 155 | msgstr "Документы" 156 | 157 | #: ../contents/ui/config.qml 158 | msgid "Pictures" 159 | msgstr "Изображения" 160 | 161 | #: ../contents/ui/config.qml 162 | msgid "Music" 163 | msgstr "Музыка" 164 | 165 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 166 | msgid "Downloads" 167 | msgstr "Загрузки" 168 | 169 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 170 | msgid "Videos" 171 | msgstr "Видео" 172 | 173 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 174 | msgid "File manager" 175 | msgstr "Файловый менеджер" 176 | 177 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 178 | msgid "System settings" 179 | msgstr "Настройки системы" 180 | 181 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 182 | msgid "Lock screen" 183 | msgstr "Экран блокировки" 184 | 185 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 186 | msgid "Power options" 187 | msgstr "Параметры питания" 188 | 189 | #: ../contents/ui/config.qml 190 | msgid "Search:" 191 | msgstr "Поиск:" 192 | 193 | #: ../contents/ui/config.qml 194 | msgid "Expand search to bookmarks, files and emails" 195 | msgstr "Расширить поиск на закладки, файлы и электронную почту" 196 | 197 | #: ../contents/ui/MainColumnItem.qml 198 | msgid "Type here to search" 199 | msgstr "Нажмите здесь для поиска" 200 | 201 | #: ../contents/ui/MainColumnItem.qml 202 | msgid "All apps" 203 | msgstr "Все приложения" 204 | 205 | #: ../contents/ui/MainColumnItem.qml 206 | msgid "Recommended" 207 | msgstr "Рекомендуемые" 208 | 209 | #: ../contents/ui/MainColumnItem.qml 210 | msgid "Pinned" 211 | msgstr "Закрепленные" 212 | 213 | #: ../contents/ui/MainColumnItem.qml 214 | msgid "Back" 215 | msgstr "Назад" 216 | 217 | #: ../contents/ui/MainColumnItem.qml 218 | msgid "More" 219 | msgstr "Больше" 220 | 221 | #: ../contents/ui/Footer.qml 222 | msgid "Go to user settings" 223 | msgstr "Переход к настройкам пользователя" 224 | -------------------------------------------------------------------------------- /translate/template.pot: -------------------------------------------------------------------------------- 1 | # Translation of menu11 in LANGUAGE 2 | # Copyright (C) 2021 3 | # This file is distributed under the same license as the menu11 package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: menu11\n" 10 | "Report-Msgid-Bugs-To: https://github.com/prateekmedia/menu11\n" 11 | "POT-Creation-Date: 2021-04-09 22:46-0400\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: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: ../metadata.desktop 21 | msgid "Menu 11" 22 | msgstr "" 23 | 24 | #: ../metadata.desktop 25 | msgid "A highly customizable launcher inspired from windows 11 menu. Fork of MenuZ." 26 | msgstr "" 27 | 28 | #: ../contents/config/config.qml 29 | msgid "General" 30 | msgstr "" 31 | 32 | #: ../contents/ui/config.qml 33 | msgid "Icon:" 34 | msgstr "" 35 | 36 | #: ../contents/ui/config.qml 37 | msgid "Menu Position:" 38 | msgstr "" 39 | 40 | #: ../contents/ui/config.qml 41 | msgid "Center" 42 | msgstr "" 43 | 44 | #: ../contents/ui/config.qml 45 | msgid "On Edge" 46 | msgstr "" 47 | 48 | #: ../contents/ui/config.qml 49 | msgid "Auto" 50 | msgstr "" 51 | 52 | #: ../contents/ui/config.qml 53 | msgid "Pinned item:" 54 | msgstr "" 55 | 56 | #: ../contents/ui/config.qml 57 | msgid "Favourite apps" 58 | msgstr "" 59 | 60 | #: ../contents/ui/config.qml 61 | msgid "Recent apps" 62 | msgstr "" 63 | 64 | #: ../contents/ui/config.qml 65 | msgid "Recent documents" 66 | msgstr "" 67 | 68 | #: ../contents/ui/config.qml 69 | msgid "Recommended item:" 70 | msgstr "" 71 | 72 | #: ../contents/ui/config.qml 73 | msgid "None" 74 | msgstr "" 75 | 76 | #: ../contents/ui/config.qml 77 | msgid "Number of columns in grid:" 78 | msgstr "" 79 | 80 | #: ../contents/ui/config.qml 81 | msgid "Number of rows in grid:" 82 | msgstr "" 83 | 84 | #: ../contents/ui/config.qml 85 | msgid "Icon Properties:" 86 | msgstr "" 87 | 88 | #: ../contents/ui/config.qml 89 | msgid "Panel Properties:" 90 | msgstr "" 91 | 92 | #: ../contents/ui/config.qml 93 | msgid "Show All apps by default" 94 | msgstr "" 95 | 96 | #: ../contents/ui/config.qml 97 | msgid "Replace Explorer icon in footer" 98 | msgstr "" 99 | 100 | #: ../contents/ui/config.qml 101 | msgid "Reduce Icon Size for User Profile" 102 | msgstr "" 103 | 104 | #: ../contents/ui/config.qml 105 | msgid "Reduce Icon Size for Footer" 106 | msgstr "" 107 | 108 | #: ../contents/ui/config.qml 109 | msgid "Reduce Icon Size for Pinned item" 110 | msgstr "" 111 | 112 | #: ../contents/ui/config.qml 113 | msgid "Allow label to have two lines (Pinned)" 114 | msgstr "" 115 | 116 | #: ../contents/ui/config.qml 117 | msgid "Show Description for all apps and search item" 118 | msgstr "" 119 | 120 | #: ../contents/ui/config.qml 121 | msgid "Always Show Search Bar" 122 | msgstr "" 123 | 124 | #: ../contents/ui/config.qml 125 | msgid "Prefer showing full name, instead of login name" 126 | msgstr "" 127 | 128 | #: ../contents/ui/config.qml 129 | msgid "Show applications as:" 130 | msgstr "" 131 | 132 | #: ../contents/ui/config.qml 133 | msgid "Name only" 134 | msgstr "" 135 | 136 | #: ../contents/ui/config.qml 137 | msgid "Description only" 138 | msgstr "" 139 | 140 | #: ../contents/ui/config.qml 141 | msgid "Name (Description)" 142 | msgstr "" 143 | 144 | #: ../contents/ui/config.qml 145 | msgid "Description (Name)" 146 | msgstr "" 147 | 148 | #: ../contents/ui/config.qml 149 | msgid "Icons on Bottom bar:" 150 | msgstr "" 151 | 152 | #: ../contents/ui/config.qml 153 | msgid "Documents" 154 | msgstr "" 155 | 156 | #: ../contents/ui/config.qml 157 | msgid "Pictures" 158 | msgstr "" 159 | 160 | #: ../contents/ui/config.qml 161 | msgid "Music" 162 | msgstr "" 163 | 164 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 165 | msgid "Downloads" 166 | msgstr "" 167 | 168 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 169 | msgid "Videos" 170 | msgstr "" 171 | 172 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 173 | msgid "File manager" 174 | msgstr "" 175 | 176 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 177 | msgid "System settings" 178 | msgstr "" 179 | 180 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 181 | msgid "Lock screen" 182 | msgstr "" 183 | 184 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 185 | msgid "Power options" 186 | msgstr "" 187 | 188 | #: ../contents/ui/config.qml 189 | msgid "Search:" 190 | msgstr "" 191 | 192 | #: ../contents/ui/config.qml 193 | msgid "Expand search to bookmarks, files and emails" 194 | msgstr "" 195 | 196 | #: ../contents/ui/MainColumnItem.qml 197 | msgid "Type here to search" 198 | msgstr "" 199 | 200 | #: ../contents/ui/MainColumnItem.qml 201 | msgid "All apps" 202 | msgstr "" 203 | 204 | #: ../contents/ui/MainColumnItem.qml 205 | msgid "Recommended" 206 | msgstr "" 207 | 208 | #: ../contents/ui/MainColumnItem.qml 209 | msgid "Pinned" 210 | msgstr "" 211 | 212 | #: ../contents/ui/MainColumnItem.qml 213 | msgid "Back" 214 | msgstr "" 215 | 216 | #: ../contents/ui/MainColumnItem.qml 217 | msgid "More" 218 | msgstr "" 219 | 220 | #: ../contents/ui/Footer.qml 221 | msgid "Go to user settings" 222 | msgstr "" 223 | -------------------------------------------------------------------------------- /translate/tr.po: -------------------------------------------------------------------------------- 1 | # Translation of menu11 in Turkish 2 | # Copyright (C) 2021 3 | # This file is distributed under the same license as the menu11 package. 4 | # Alper Tiryakioğlu , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: menu11\n" 10 | "Report-Msgid-Bugs-To: https://github.com/prateekmedia/menu11\n" 11 | "POT-Creation-Date: 2021-04-09 22:46-0400\n" 12 | "PO-Revision-Date: 2021-07-25 20:45+0300\n" 13 | "Last-Translator: Alper Tiryakioğlu\n" 14 | "Language-Team:\n" 15 | "Language: Turkish\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: ../metadata.desktop 21 | msgid "Menu 11" 22 | msgstr "Menu 11" 23 | 24 | #: ../metadata.desktop 25 | msgid "A highly customizable launcher inspired from windows 11 menu. Fork of MenuZ." 26 | msgstr "Windows 11 menüsünden ilham almış, yüksek derecede kişiselleştirilebilir çalıştırıcı. MenuZ çatallaması." 27 | 28 | #: ../contents/config/config.qml 29 | msgid "General" 30 | msgstr "Genel" 31 | 32 | #: ../contents/ui/config.qml 33 | msgid "Icon:" 34 | msgstr "Simge:" 35 | 36 | #: ../contents/ui/config.qml 37 | msgid "Menu Position:" 38 | msgstr "Menü Konumu:" 39 | 40 | #: ../contents/ui/config.qml 41 | msgid "Center" 42 | msgstr "Ortada" 43 | 44 | #: ../contents/ui/config.qml 45 | msgid "On Edge" 46 | msgstr "Köşede" 47 | 48 | #: ../contents/ui/config.qml 49 | msgid "Auto" 50 | msgstr "Otomatik" 51 | 52 | #: ../contents/ui/config.qml 53 | msgid "Pinned item:" 54 | msgstr "Sabitlenen öğeler:" 55 | 56 | #: ../contents/ui/config.qml 57 | msgid "Favourite apps" 58 | msgstr "Sık kullanılan uygulamalar" 59 | 60 | #: ../contents/ui/config.qml 61 | msgid "Recent apps" 62 | msgstr "Son kullanılan uygulamalar" 63 | 64 | #: ../contents/ui/config.qml 65 | msgid "Recent documents" 66 | msgstr "En son belgeler" 67 | 68 | #: ../contents/ui/config.qml 69 | msgid "Recommended item:" 70 | msgstr "Önerilen öğeler:" 71 | 72 | #: ../contents/ui/config.qml 73 | msgid "None" 74 | msgstr "Hiçbiri" 75 | 76 | #: ../contents/ui/config.qml 77 | msgid "Number of columns in grid:" 78 | msgstr "Sütun sayısı:" 79 | 80 | #: ../contents/ui/config.qml 81 | msgid "Number of rows in grid:" 82 | msgstr "Satır sayısı:" 83 | 84 | #: ../contents/ui/config.qml 85 | msgid "Icon Properties:" 86 | msgstr "Simge Özellikleri:" 87 | 88 | #: ../contents/ui/config.qml 89 | msgid "Panel Properties:" 90 | msgstr "Panel Özellikleri:" 91 | 92 | #: ../contents/ui/config.qml 93 | msgid "Show All apps by default" 94 | msgstr "Varsayılan olarak Tüm uygulamaları göster" 95 | 96 | #: ../contents/ui/config.qml 97 | msgid "Replace Explorer icon in footer" 98 | msgstr "Alt Bilgideki dosya gezgini simgesini değiştirin" 99 | 100 | #: ../contents/ui/config.qml 101 | msgid "Reduce Icon Size for User Profile" 102 | msgstr "Profil resminin simge boyutunu küçült" 103 | 104 | #: ../contents/ui/config.qml 105 | msgid "Reduce Icon Size for Footer" 106 | msgstr "Alt çubuk öğeleri için simge boyutunu küçült" 107 | 108 | #: ../contents/ui/config.qml 109 | msgid "Reduce Icon Size for Pinned item" 110 | msgstr "Sabitlenmiş öğelerin simge boyutunu küçült" 111 | 112 | #: ../contents/ui/config.qml 113 | msgid "Allow label to have two lines (Pinned)" 114 | msgstr "Etiketlerin iki satırı kaplamasına izin ver (Sabitlenmiş öğeler'de)" 115 | 116 | #: ../contents/ui/config.qml 117 | msgid "Show Description for all apps and search item" 118 | msgstr "Tüm uygulamalar ve arama sonuçları için açıklama göster" 119 | 120 | #: ../contents/ui/config.qml 121 | msgid "Always Show Search Bar" 122 | msgstr "Her zaman Arama Çubuğu'nu göster" 123 | 124 | #: ../contents/ui/config.qml 125 | msgid "Prefer showing full name, instead of login name" 126 | msgstr "Kullanıcı adı yerine tam ismi göstermeyi tercih et." 127 | 128 | #: ../contents/ui/config.qml 129 | msgid "Show applications as:" 130 | msgstr "Uygulamaları gösterme şekli:" 131 | 132 | #: ../contents/ui/config.qml 133 | msgid "Name only" 134 | msgstr "Sadece Ad" 135 | 136 | #: ../contents/ui/config.qml 137 | msgid "Description only" 138 | msgstr "Sadece Açıklama" 139 | 140 | #: ../contents/ui/config.qml 141 | msgid "Name (Description)" 142 | msgstr "Ad (Açıklama)" 143 | 144 | #: ../contents/ui/config.qml 145 | msgid "Description (Name)" 146 | msgstr "Açıklama (Ad)" 147 | 148 | #: ../contents/ui/config.qml 149 | msgid "Icons on Bottom bar:" 150 | msgstr "Alt çubuktaki simgeler:" 151 | 152 | #: ../contents/ui/config.qml 153 | msgid "Documents" 154 | msgstr "Belgeler" 155 | 156 | #: ../contents/ui/config.qml 157 | msgid "Pictures" 158 | msgstr "Resimler" 159 | 160 | #: ../contents/ui/config.qml 161 | msgid "Music" 162 | msgstr "Müzik" 163 | 164 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 165 | msgid "Downloads" 166 | msgstr "İndirilenler" 167 | 168 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 169 | msgid "Videos" 170 | msgstr "Videolar" 171 | 172 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 173 | msgid "File manager" 174 | msgstr "Dosya yöneticisi" 175 | 176 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 177 | msgid "System settings" 178 | msgstr "Sistem ayarları" 179 | 180 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 181 | msgid "Lock screen" 182 | msgstr "Ekranı kilitle" 183 | 184 | #: ../contents/ui/config.qml ../contents/ui/Footer.qml 185 | msgid "Power options" 186 | msgstr "Güç seçenekleri" 187 | 188 | #: ../contents/ui/config.qml 189 | msgid "Search:" 190 | msgstr "Arama:" 191 | 192 | #: ../contents/ui/config.qml 193 | msgid "Expand search to bookmarks, files and emails" 194 | msgstr "Aramaları yer imlerine, dosyalara ve e-maillere genişlet" 195 | 196 | #: ../contents/ui/MainColumnItem.qml 197 | msgid "Type here to search" 198 | msgstr "Aramak için buraya yazın" 199 | 200 | #: ../contents/ui/MainColumnItem.qml 201 | msgid "All apps" 202 | msgstr "Tüm uygulamalar" 203 | 204 | #: ../contents/ui/MainColumnItem.qml 205 | msgid "Recommended" 206 | msgstr "Önerilenler" 207 | 208 | #: ../contents/ui/MainColumnItem.qml 209 | msgid "Pinned" 210 | msgstr "Sabitlenmiş" 211 | 212 | #: ../contents/ui/MainColumnItem.qml 213 | msgid "Back" 214 | msgstr "Geri" 215 | 216 | #: ../contents/ui/MainColumnItem.qml 217 | msgid "More" 218 | msgstr "Daha fazla" 219 | 220 | #: ../contents/ui/Footer.qml 221 | msgid "Go to user settings" 222 | msgstr "Kullanıcı ayarları'na gidin" 223 | --------------------------------------------------------------------------------