├── .gitignore ├── .vscode └── settings.json ├── COPYING ├── Changelog ├── Makefile ├── README ├── bs.po ├── cbatticon.1 ├── cbatticon.c ├── cbatticon.pot ├── de.po ├── el.po ├── es.po ├── fr.po ├── he.po ├── hr.po ├── id.po ├── ja.po ├── pt_BR.po ├── ru.po ├── sk.po ├── sr.po ├── tr.po └── zh_TW.po /.gitignore: -------------------------------------------------------------------------------- 1 | # target 2 | cbatticon 3 | 4 | # object files 5 | *.o 6 | 7 | # messages catalog 8 | *.mo 9 | 10 | # vim files 11 | *.swp 12 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "C_Cpp.errorSquiggles": "disabled" 3 | } 4 | -------------------------------------------------------------------------------- /COPYING: -------------------------------------------------------------------------------- 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 | -------------------------------------------------------------------------------- /Changelog: -------------------------------------------------------------------------------- 1 | 2022-04-27 Valère Monseur 2 | 3 | * Release 1.6.13 4 | 5 | * Fix #58 : added support for batteries with only percentage capacity 6 | 7 | * Fix #61 : added a command for low battery level 8 | 9 | 2022-02-09 Valère Monseur 10 | 11 | * Release 1.6.12 12 | 13 | * Fix Makefile for error: '-Wformat-security' ignored without '-Wformat' 14 | 15 | 2022-02-09 Valère Monseur 16 | 17 | * Release 1.6.11 18 | 19 | * Fix #57 : wrong version number 20 | 21 | * Fix #68 : added Spanish translation 22 | 23 | 2019-10-06 Valère Monseur 24 | 25 | * Release 1.6.10 26 | 27 | * Fix #53 : if last_chance option true, check one last time if charging before running critical 28 | 29 | * make the last_chance option the default 30 | 31 | 2019-06-11 Valère Monseur 32 | 33 | * Release 1.6.9 34 | 35 | * Fix #48 : added Example section in the man page 36 | 37 | * Fix #52 : added Brazilian Portuguese translation 38 | 39 | 2018-04-08 Valère Monseur 40 | 41 | * Release 1.6.8 42 | 43 | * Fix #43 : added traditional Chinese translation 44 | 45 | * Fix #44 : update existing notifications instead of creating new ones 46 | 47 | * Add missing end of line 48 | 49 | 2017-10-05 Valère Monseur 50 | 51 | * Release 1.6.7 52 | 53 | * Fix #41 : added Indonesia translation 54 | 55 | * Fix #42 : added Hebrew translation 56 | 57 | 2017-08-15 Valère Monseur 58 | 59 | * Release 1.6.6 60 | 61 | * Fix #38 : notification shown twice at startup 62 | 63 | * Fix #40 : unexpected behaviour for hidpp battery type 64 | 65 | 2016-12-27 Valère Monseur 66 | 67 | * Release 1.6.5 68 | 69 | * Fix #30 : notification spam when there are multiple batteries 70 | 71 | * Fix #33 : added a man page 72 | 73 | * Fix #34 : added Japanese translation 74 | 75 | 2016-03-14 Valère Monseur 76 | 77 | * Release 1.6.4 78 | 79 | * Fix #29 : added Bosnian, Croatian and Serbian translations 80 | 81 | 2016-02-08 Valère Monseur 82 | 83 | * Release 1.6.3 84 | 85 | * Fix #28 : dynamic (runtime) detection of power supplies doesn't work 86 | 87 | 2016-01-30 Valère Monseur 88 | 89 | * Release 1.6.2 90 | 91 | * Fix plural translations in Turkish 92 | 93 | 2016-01-30 Valère Monseur 94 | 95 | * Release 1.6.1 96 | 97 | * Add missing translation in Makefile 98 | 99 | 2016-01-30 Valère Monseur 100 | 101 | * Release 1.6.0 102 | 103 | * Changing Copyright to 2016 104 | 105 | * Fix #26 : 'hours, minutes remaining' use plural translations 106 | 107 | * Fix #27 : add greek translation 108 | 109 | * Dynamic detection of power supplies (batteries and AC) 110 | 111 | * Some code rework, cleaning 112 | 113 | 2015-07-21 Valère Monseur 114 | 115 | * Release 1.5.0 116 | 117 | * Build with gtk3 by default (instead of gtk2) 118 | 119 | * Build with deprecation warning disabled 120 | 121 | * Fix #17 : cbatticon --version shouldn't need X display 122 | 123 | * Fix #20 : initial translation support 124 | 125 | * Fix #21 : add turkish translation 126 | 127 | * Fix #22 : update turkish translation 128 | 129 | * Fix #23 : add german translation 130 | 131 | * Fix #24 : update russian translation 132 | 133 | * Completed translation support 134 | 135 | * Completed translation: german, french, turkish 136 | 137 | * Partial translation: russian 138 | 139 | 2014-11-24 Valère Monseur 140 | 141 | * Release 1.4.2 142 | 143 | * Fix #16 : current rate was not considered as unavailable when its value was 0 144 | 145 | 2014-11-08 Valère Monseur 146 | 147 | * Release 1.4.1 148 | 149 | * Fix return codes when displaying version, listing power supplies and icon types 150 | 151 | 2014-08-17 Valère Monseur 152 | 153 | * Release 1.4.0 154 | 155 | * Allow building with(out) libnotify support (default: build with libnotify) 156 | 157 | * Allow building with gtk2 or gtk3 (default: build with gtk2) 158 | 159 | * Renamed option --list-batteries into --list-power-supplies to show battery and AC 160 | 161 | * Allow AC only tray icon when there is no battery 162 | 163 | * Allow execution of command when left clicking on the tray icon 164 | 165 | * Added debug option 166 | 167 | * Other improvements in Makefile, comments, whitespace cleaning, ... 168 | 169 | 2013-07-23 Valère Monseur 170 | 171 | * Release 1.3.2 172 | 173 | * Fix compilation with libnotify version older than 0.7.0 174 | 175 | 2013-05-10 Valère Monseur 176 | 177 | * Release 1.3.1 178 | 179 | * Fix version number 180 | 181 | 2013-05-10 Valère Monseur 182 | 183 | * Release 1.3.0 184 | 185 | * Added option to hide notification at runtime 186 | 187 | * Other improvements in Makefile, comments, whitespace cleaning, ... 188 | 189 | * Code cleaning/rework. 190 | 191 | 2013-045-19 Valère Monseur 192 | 193 | * Release 1.2.0 194 | 195 | * Removed dependency on libudev 196 | 197 | * A message is sent to system logger before spawning command when critical level is reached 198 | 199 | * Tooltip and notification messages have been reworked. 200 | 201 | * Added version option 202 | 203 | * Fixed bug triggering the switching from normal calculation to estimated calculation when not needed 204 | 205 | * Lots of code cleaning/rework 206 | 207 | 2013-04-08 Valère Monseur 208 | 209 | * Release 1.1.0 210 | 211 | * Try to determine status even when 'unknown' status is returned (some batteries do it when (dis)charging) 212 | 213 | * Other improvements in Makefile, comments, whitespace cleaning, ... 214 | 215 | 2013-03-10 Valère Monseur 216 | 217 | * Release 1.0.0 218 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # options 2 | 3 | ### verbosity: 0 for off, 1 for on (default: off) 4 | V = 0 5 | 6 | ### whether to link against gtk3 or gtk2 (default: gtk3) 7 | WITH_GTK3 = 1 8 | 9 | ### libnotify support: 0 for off, 1 for on (default: on) 10 | WITH_NOTIFY = 1 11 | 12 | # programs 13 | 14 | CC ?= gcc 15 | MSGFMT = msgfmt 16 | PKG_CONFIG ?= pkg-config 17 | RM = rm -f 18 | GETTEXT=xgettext 19 | INSTALL = install 20 | INSTALL_BIN = $(INSTALL) -m755 21 | INSTALL_DATA = $(INSTALL) -m644 22 | 23 | # variables 24 | 25 | PACKAGE_NAME = cbatticon 26 | VERSION = $(shell grep CBATTICON_VERSION_NUMBER cbatticon.c | awk '{print $$3}') 27 | PREFIX ?= /usr 28 | BINDIR = $(PREFIX)/bin 29 | DOCDIR = $(PREFIX)/share/doc/$(PACKAGE_NAME)-$(VERSION) 30 | MANDIR = $(PREFIX)/share/man/man1 31 | NLSDIR = $(PREFIX)/share/locale 32 | LANGUAGES = bs de el es fr he hr id ja pt_BR ru sk sr tr zh_TW 33 | 34 | BIN = $(PACKAGE_NAME) 35 | SOURCEFILES := $(wildcard *.c) 36 | OBJECTS := $(patsubst %.c,%.o,$(SOURCEFILES)) 37 | SOURCECATALOGS := $(wildcard *.po) 38 | TRANSLATIONS := $(patsubst %.po,%.mo,$(SOURCECATALOGS)) 39 | 40 | # flags and libs 41 | 42 | ifeq ($(V),0) 43 | VERBOSE=@ 44 | else 45 | VERBOSE= 46 | endif 47 | 48 | ifeq ($(WITH_NOTIFY),1) 49 | CPPFLAGS += -DWITH_NOTIFY 50 | endif 51 | CPPFLAGS += -DNLSDIR=\"$(NLSDIR)\" 52 | 53 | CFLAGS ?= -O2 54 | CFLAGS += -Wall -Wno-deprecated-declarations -std=c99 55 | CFLAGS += $(shell $(PKG_CONFIG) --cflags $(PKG_DEPS)) 56 | 57 | ifeq ($(WITH_GTK3), 0) 58 | PKG_DEPS = gtk+-2.0 59 | else 60 | PKG_DEPS = gtk+-3.0 61 | endif 62 | 63 | ifeq ($(WITH_NOTIFY),1) 64 | PKG_DEPS += libnotify 65 | endif 66 | 67 | LIBS += $(shell $(PKG_CONFIG) --libs $(PKG_DEPS)) -lm 68 | 69 | # targets 70 | 71 | all: $(BIN) $(TRANSLATIONS) 72 | 73 | $(BIN): $(OBJECTS) 74 | @echo -e '\033[0;35mLinking executable $@\033[0m' 75 | $(VERBOSE) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) 76 | 77 | $(OBJECTS): $(SOURCEFILES) 78 | @echo -e '\033[0;32mBuilding object $@\033[0m' 79 | $(VERBOSE) $(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $< 80 | 81 | $(TRANSLATIONS): %.mo: %.po 82 | @echo -e '\033[0;36mCompiling messages catalog $@\033[0m' 83 | $(VERBOSE) $(MSGFMT) -o $@ $< 84 | 85 | install: $(BIN) $(TRANSLATIONS) 86 | @echo -e '\033[0;33mInstalling $(PACKAGE_NAME)\033[0m' 87 | $(VERBOSE) $(INSTALL) -d "$(DESTDIR)$(BINDIR)" 88 | $(VERBOSE) $(INSTALL_BIN) $(BIN) "$(DESTDIR)$(BINDIR)"/ 89 | $(VERBOSE) $(INSTALL) -d "$(DESTDIR)$(DOCDIR)" 90 | $(VERBOSE) $(INSTALL_DATA) README "$(DESTDIR)$(DOCDIR)"/ 91 | $(VERBOSE) $(INSTALL) -d "$(DESTDIR)$(MANDIR)" 92 | $(VERBOSE) $(INSTALL_DATA) cbatticon.1 "$(DESTDIR)$(MANDIR)"/ 93 | $(VERBOSE) for language in $(LANGUAGES); \ 94 | do \ 95 | $(INSTALL) -d "$(DESTDIR)$(NLSDIR)"/$$language/LC_MESSAGES; \ 96 | $(INSTALL_DATA) $$language.mo "$(DESTDIR)$(NLSDIR)"/$$language/LC_MESSAGES/$(PACKAGE_NAME).mo; \ 97 | done 98 | 99 | uninstall: 100 | @echo -e '\033[0;33mUninstalling $(PACKAGE_NAME)\033[0m' 101 | $(VERBOSE) $(RM) "$(DESTDIR)$(BINDIR)"/$(BIN) 102 | $(VERBOSE) $(RM) "$(DESTDIR)$(DOCDIR)"/README 103 | $(VERBOSE) $(RM) "$(DESTDIR)$(MANDIR)"/cbatticon.1 104 | $(VERBOSE) for language in $(LANGUAGES); \ 105 | do \ 106 | $(VERBOSE) $(RM) "$(DESTDIR)$(NLSDIR)"/$$language/LC_MESSAGES/$(PACKAGE_NAME).mo; \ 107 | done 108 | 109 | clean: 110 | @echo -e '\033[0;33mCleaning up source directory\033[0m' 111 | $(VERBOSE) $(RM) $(BIN) $(OBJECTS) $(TRANSLATIONS) 112 | 113 | translation-refresh-pot: 114 | $(VERBOSE) $(GETTEXT) --default-domain=$(PACKAGE_NAME) --add-comments \ 115 | --keyword=_ --keyword=N_ --keyword=g_dngettext:2,3 $(SOURCEFILES) \ 116 | --output=$(PACKAGE_NAME).pot 117 | 118 | translation-status: 119 | $(VERBOSE) for catalog in $(SOURCECATALOGS); \ 120 | do \ 121 | $(MSGFMT) -v --statistics -o /dev/null $$catalog; \ 122 | done 123 | 124 | .PHONY: install uninstall clean translation-status 125 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | 2 | A lightweight and fast battery icon that sits in your system tray. 3 | Based on code from xbattbar-acpi. 4 | 5 | Make options: 6 | WITH_GTK3=1 to build against gtk3, it is the default option 7 | WITH_GTK3=0 to build against gtk2 (version 2.16) 8 | 9 | WITH_NOTIFY=1 to build with libnotify support, it is the default option 10 | WITH_NOTIFY=0 to build without libnotify support 11 | 12 | Usage: 13 | cbatticon [OPTION...] [BATTERY ID] 14 | 15 | Help Options: 16 | -h, --help Show help options 17 | 18 | Application Options: 19 | -v, --version Display the version 20 | -d, --debug Display debug information 21 | -u, --update-interval Set update interval (in seconds) 22 | -i, --icon-type Set icon type ('standard', 'notification' or 'symbolic') 23 | -l, --low-level Set low battery level (in percent) 24 | -r, --critical-level Set critical battery level (in percent) 25 | -o, --command-low-level Command to execute when low battery level is reached 26 | -c, --command-critical-level Command to execute when critical battery level is reached 27 | -x, --command-left-click Command to execute when left clicking on tray icon 28 | -n, --hide-notification Hide the notification popups 29 | -t, --list-icon-types List available icon types 30 | -p, --list-power-supplies List available power supplies (battery and AC) 31 | 32 | Default value for options: 33 | update interval : 5 seconds 34 | icon type : the first one that is available in this sequence: 35 | standard, notification or symbolic 36 | (check your setup with --list-icon-types) 37 | low level : 20 percent 38 | critical level : 5 percent 39 | command low level : none 40 | command critical level : none 41 | command left click : none 42 | battery id : the first one that is reported by sysfs 43 | (check your setup with --list-power-supplies) 44 | 45 | Examples: 46 | cbatticon 47 | cbatticon -t 48 | cbatticon -p 49 | cbatticon -u 20 -i notification -c "poweroff" -l 15 -r 3 50 | cbatticon -u 20 -i notification -r 3 -c "poweroff" -l 15 -o "xbacklight = 5" 51 | 52 | Thanks to: 53 | 54 | - hasufell for the following improvements: 55 | Allow AC only tray icon 56 | Allow building with(out) libnotify support 57 | Allow building with gtk2 or gtk3 58 | Allow execution of command when left clicking on the tray icon 59 | Many other improvements in Makefile, comments, whitespace cleaning, ... 60 | 61 | - fluxer to allow compilation with libnotify < 0.7.0 62 | 63 | - slyos to allow calculation of estimated remaining 64 | time for those batteries not providing the current (dis)charge rate. 65 | 66 | - Alexandr (Pro-pra) Proklov for the initial translation support 67 | 68 | - Undeterminant for the plural translations support 69 | 70 | - Translators: 71 | Brazilian Portuguese: Raffaello Salvetti 72 | Bosnian, Croatian, Serbian: Dino Duratović 73 | French: Valère Monseur 74 | German: Julian Ospald 75 | Greek: George Vlahavas 76 | Hebrew: Yotam Salmon 77 | Indonesia: Mahyuddin 78 | Japanese: Eshin Kunishima 79 | Spanish: Mauricio Medeiros 80 | Turkish: Behzat Erte 81 | Russian: Alexandr Proklov 82 | Traditional chinese: Lego Chiang 83 | 84 | - All other contributors reporting bugs, sending feature requests, ... 85 | -------------------------------------------------------------------------------- /bs.po: -------------------------------------------------------------------------------- 1 | # Bosnian translation for cbatticon. 2 | # Copyright (C) 2015-2018 Valère Monseur 3 | # This file is distributed under the same license as the cbatticon package. 4 | # Valère Monseur , 2015. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: cbatticon 1.6.7\n" 10 | "Report-Msgid-Bugs-To: valere.monseur@ymail.com\n" 11 | "POT-Creation-Date: 2015-12-13 22:28+0100\n" 12 | "PO-Revision-Date: 2018-04-08 23:43+0100\n" 13 | "Last-Translator: Dino Duratović \n" 14 | "Language-Team: N/A\n" 15 | "Language: bs\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=utf-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" 20 | 21 | #: cbatticon.c:154 22 | msgid "Display the version" 23 | msgstr "Prikaži verziju" 24 | 25 | #: cbatticon.c:155 26 | msgid "Display debug information" 27 | msgstr "Prikaži informacije za uklanjanje grešaka" 28 | 29 | #: cbatticon.c:156 30 | msgid "Set update interval (in seconds)" 31 | msgstr "Postavi interval ažuriranja (u sekundama)" 32 | 33 | #: cbatticon.c:157 34 | msgid "Set icon type ('standard', 'notification' or 'symbolic')" 35 | msgstr "Postavi tip ikone ('standard', 'notification' ili 'symbolic')" 36 | 37 | #: cbatticon.c:158 38 | msgid "Set low battery level (in percent)" 39 | msgstr "Postavi niski nivo baterije (u postocima)" 40 | 41 | #: cbatticon.c:159 42 | msgid "Set critical battery level (in percent)" 43 | msgstr "Postavi kritični nivo baterije (u postocima)" 44 | 45 | #: cbatticon.c:160 46 | msgid "Command to execute when critical battery level is reached" 47 | msgstr "Komanda za izvršiti kada se dostigne kritični nivo baterije" 48 | 49 | #: cbatticon.c:161 50 | msgid "Command to execute when left clicking on tray icon" 51 | msgstr "Komanda za izvršiti kada se klikne lijevim klikom na ikonu" 52 | 53 | #: cbatticon.c:163 54 | msgid "Hide the notification popups" 55 | msgstr "Sakrij obavijesti" 56 | 57 | #: cbatticon.c:165 58 | msgid "List available icon types" 59 | msgstr "Prikaži dostupne tipove ikona" 60 | 61 | #: cbatticon.c:166 62 | msgid "List available power supplies (battery and AC)" 63 | msgstr "Prikaži dostupna napajanja (baterija i mrežno napajanje)" 64 | 65 | #: cbatticon.c:170 66 | msgid "[BATTERY ID]" 67 | msgstr "[ID BATERIJE]" 68 | 69 | #: cbatticon.c:174 70 | #, c-format 71 | msgid "Cannot parse command line arguments: %s\n" 72 | msgstr "Ne mogu rasčlaniti argumente komandne linije: %s\n" 73 | 74 | #: cbatticon.c:185 75 | msgid "" 76 | "cbatticon: a lightweight and fast battery icon that sits in your system " 77 | "tray\n" 78 | msgstr "" 79 | "cbatticon: lagana i brza ikona za baterije u vašoj sistemskoj traci\n" 80 | 81 | #: cbatticon.c:186 82 | #, c-format 83 | msgid "version %s\n" 84 | msgstr "verzija %s\n" 85 | 86 | #: cbatticon.c:194 87 | msgid "List of available power supplies:\n" 88 | msgstr "Lista dostupnih napajanjа:\n" 89 | 90 | #: cbatticon.c:209 91 | msgid "List of available icon types:\n" 92 | msgstr "Lista dostupnih tipova ikona:\n" 93 | 94 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 95 | msgid "available" 96 | msgstr "dostupne" 97 | 98 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 cbatticon.c:540 99 | #: cbatticon.c:548 cbatticon.c:570 100 | msgid "unavailable" 101 | msgstr "nedostupne" 102 | 103 | #: cbatticon.c:226 104 | #, c-format 105 | msgid "Unknown icon type: %s\n" 106 | msgstr "Nepoznat tip ikone: %s\n" 107 | 108 | #: cbatticon.c:238 109 | msgid "No icon type found!\n" 110 | msgstr "Nije pronađen nijedan tip ikona!\n" 111 | 112 | #: cbatticon.c:245 113 | #, c-format 114 | msgid "Invalid update interval! It has been reset to default (%d seconds)\n" 115 | msgstr "Nevažeći interval za ažuriranje! Vraćen je na podrazumijevani (%d sekundi)\n" 116 | 117 | #: cbatticon.c:252 118 | #, c-format 119 | msgid "Invalid low level! It has been reset to default (%d percent)\n" 120 | msgstr "Nevažeći niski nivo! Vraćen je na podrazumijevani (%d posto)\n" 121 | 122 | #: cbatticon.c:257 123 | #, c-format 124 | msgid "Invalid critical level! It has been reset to default (%d percent)\n" 125 | msgstr "Nevažeći kritični nivo! Vraćen je na podrazumijevani (%d posto)\n" 126 | 127 | #: cbatticon.c:263 128 | msgid "" 129 | "Critical level is higher than low level! They have been reset to default\n" 130 | msgstr "" 131 | "Kritični nivo je viši nego niski nivo! Vraćeni su na podrazumijevane\n" 132 | 133 | #: cbatticon.c:294 cbatticon.c:326 134 | #, c-format 135 | msgid "type: %-*.*s\tid: %-*.*s\tpath: %s\n" 136 | msgstr "tip: %-*.*s\tid: %-*.*s\tpath: %s\n" 137 | 138 | #: cbatticon.c:294 139 | msgid "Battery" 140 | msgstr "Baterija" 141 | 142 | #: cbatticon.c:326 143 | msgid "AC" 144 | msgstr "Mrežno napajanje" 145 | 146 | #: cbatticon.c:348 147 | #, c-format 148 | msgid "Cannot open sysfs directory: %s (%s)\n" 149 | msgstr "Ne mogu otvoriti sysfs direktorij: %s (%s)\n" 150 | 151 | #: cbatticon.c:355 152 | #, c-format 153 | msgid "No battery with suffix %s found!\n" 154 | msgstr "Nije pronađena baterija sa sufiksom %s!\n" 155 | 156 | #: cbatticon.c:360 157 | msgid "No battery nor AC power supply found!\n" 158 | msgstr "Nije pronađena ni baterija ni mrežno napajanje!\n" 159 | 160 | #: cbatticon.c:672 cbatticon.c:675 161 | msgid "AC only, no battery!" 162 | msgstr "Samo mrežno napajanje, nema baterije!" 163 | 164 | #: cbatticon.c:793 165 | #, c-format 166 | msgid "Spawning critical battery level command in 30 seconds: %s" 167 | msgstr "Izvršujem komandu kritičnog nivoa baterije za 30 sekundi: %s" 168 | 169 | #: cbatticon.c:797 170 | #, c-format 171 | msgid "Cannot spawn critical battery level command: %s\n" 172 | msgstr "Ne mogu izvršiti komandu kritičnog nivoa baterije: %s\n" 173 | 174 | #: cbatticon.c:800 175 | msgid "Cannot spawn critical battery level command!" 176 | msgstr "Ne mogu izvršiti komandu kritičnog nivoa baterije!" 177 | 178 | #: cbatticon.c:817 179 | #, c-format 180 | msgid "Cannot spawn left click command: %s\n" 181 | msgstr "Ne mogu izvršiti komandu lijevog klika: %s\n" 182 | 183 | #: cbatticon.c:820 184 | msgid "Cannot spawn left click command!" 185 | msgstr "Ne mogu izvršiti komandu lijevog klika!" 186 | 187 | #: cbatticon.c:884 188 | msgid "Battery is missing!" 189 | msgstr "Baterija nedostaje!" 190 | 191 | #: cbatticon.c:888 192 | msgid "Battery status is unknown!" 193 | msgstr "Status baterije je nepoznat!" 194 | 195 | #: cbatticon.c:892 196 | msgid "Battery is charged!" 197 | msgstr "Baterija je puna!" 198 | 199 | #: cbatticon.c:896 200 | #, c-format 201 | msgid "Battery is discharging (%i%% remaining)" 202 | msgstr "Baterija se prazni (preostalo %i%%)" 203 | 204 | #: cbatticon.c:900 205 | #, c-format 206 | msgid "Battery is not charging (%i%% remaining)" 207 | msgstr "Baterija se ne puni (preostalo %i%%)" 208 | 209 | #: cbatticon.c:904 210 | #, c-format 211 | msgid "Battery level is low! (%i%% remaining)" 212 | msgstr "Nivo baterije je nizak! (preostalo %i%%)" 213 | 214 | #: cbatticon.c:908 215 | #, c-format 216 | msgid "Battery level is critical! (%i%% remaining)" 217 | msgstr "Nivo baterije je kritičan! (preostalo %i%%)" 218 | 219 | #: cbatticon.c:912 220 | #, c-format 221 | msgid "Battery is charging (%i%%)" 222 | msgstr "Baterija se puni (%i%%)" 223 | 224 | #: cbatticon.c:941 225 | #, c-format 226 | msgid "%d minute" 227 | msgid_plural "%d minutes" 228 | msgstr[0] "%d minuta" 229 | msgstr[1] "%d minute" 230 | msgstr[2] "%d minuta" 231 | 232 | #: cbatticon.c:942 233 | #, c-format 234 | msgid "%d hour, %s remaining" 235 | msgid_plural "%d hours, %s remaining" 236 | msgstr[0] "%d sat, %s preostalo" 237 | msgstr[1] "%d sata, %s preostalo" 238 | msgstr[2] "%d sati, %s preostalo" 239 | 240 | #: cbatticon.c:944 241 | #, c-format 242 | msgid "%d minute remaining" 243 | msgid_plural "%d minutes remaining" 244 | msgstr[0] "%d minuta preostala" 245 | msgstr[1] "%d minute preostale" 246 | msgstr[2] "%d minuta preostalo" 247 | -------------------------------------------------------------------------------- /cbatticon.1: -------------------------------------------------------------------------------- 1 | .TH "CBATTICON" "1" "June 11, 2019" "cbatticon" "User manual" 2 | .SH "NAME" 3 | cbatticon \(em a lightweight and fast battery icon that sits in your system tray 4 | .SH "SYNOPSIS" 5 | .PP 6 | \fBcbatticon\fR [\fBoption\fP] [\fBbattery id\fP] 7 | .SH "DESCRIPTION" 8 | .PP 9 | The cbatticon utility displays battery information (battery status, remaining percentage, remaining time) using an icon in the system tray. 10 | .br 11 | If no \fBbattery id\fP is specified, it will display the first battery that is found. 12 | You can list the available batteries using the option \fB\-\-list-power-supplies\fP. 13 | .SH "OPTIONS" 14 | .IP "\fB\-c\fP, \fB\-\-command-critical-level\fP \fIcommand\fR" 5 15 | Specify the command to execute when the critical battery level is reached. 16 | .IP "\fB-d\fP, \fB\-\-debug\fP" 5 17 | Display debug information. 18 | .IP "\fB-h\fP, \fB\-\-help\fP" 5 19 | Show help information and exit. 20 | .IP "\fB\-i\fP, \fB\-\-icon-type\fP \fItype\fR" 5 21 | Specify the icon type to display in the system tray. 22 | .br 23 | If not specified, cbatticon will use the first one that is available in this sequence: standard, notification, symbolic. 24 | .br 25 | The available icon types on your system can be listed using the option \fB\-\-list-icon-types\fP. 26 | .IP "\fB\-l\fP, \fB\-\-low-level\fP \fIpercentage\fR" 5 27 | Specify the low level percentage of the battery. 28 | .br 29 | The default is set to 20%. 30 | .IP "\fB-n\fP, \fB\-\-hide-notification\fP" 5 31 | Hide the notification popups. 32 | .IP "\fB\-o\fP, \fB\-\-command-low-level\fP \fIcommand\fR" 5 33 | Specify the command to execute when the low battery level is reached. 34 | .IP "\fB-p\fP, \fB\-\-list-power-supplies\fP" 5 35 | List the available power supplies on your system. 36 | .IP "\fB\-r\fP, \fB\-\-critical-level\fP \fIpercentage\fR" 5 37 | Specify the critical level percentage of the battery. 38 | .br 39 | The default is set to 5%. 40 | .IP "\fB-t\fP, \fB\-\-list-icon-types\fP" 5 41 | List the available icon types (standard, notification, symbolic). 42 | .IP "\fB\-u\fP, \fB\-\-update-interval\fP \fIinterval\fR" 5 43 | Specify the number of seconds between updates of the battery information. 44 | .br 45 | The default is set to 5 seconds. 46 | .IP "\fB-v\fP, \fB\-\-version\fP" 5 47 | Display the version information and exit. 48 | .IP "\fB\-x\fP, \fB\-\-command-left-click\fP \fIcommand\fR" 5 49 | Specify the command to execute when left clicking on the tray icon. 50 | .SH EXAMPLES 51 | .EX 52 | .TP 53 | cbatticon 54 | .TP 55 | cbatticon -t 56 | .TP 57 | cbatticon -p 58 | .TP 59 | cbatticon -u 20 -i notification -c "poweroff" -l 15 -r 3 60 | -------------------------------------------------------------------------------- /cbatticon.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011-2013 Colin Jones 3 | * Copyright (C) 2014-2023 Valère Monseur 4 | * 5 | * Based on code by Matteo Marchesotti 6 | * Copyright (C) 2007 Matteo Marchesotti 7 | * 8 | * cbatticon: a lightweight and fast battery icon that sits in your system tray. 9 | * 10 | * This program is free software; you can redistribute it and/or modify 11 | * it under the terms of the GNU General Public License as published by 12 | * the Free Software Foundation; either version 2 of the License, or 13 | * (at your option) any later version. 14 | * 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | * 20 | * You should have received a copy of the GNU General Public License along 21 | * with this program. If not, see . 22 | */ 23 | 24 | #define CBATTICON_VERSION_NUMBER 1.6.13 25 | #define CBATTICON_VERSION_STRING "1.6.13" 26 | #define CBATTICON_STRING "cbatticon" 27 | 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | #ifdef WITH_NOTIFY 34 | #include 35 | #endif 36 | 37 | #include 38 | #include 39 | #include 40 | #include 41 | #include 42 | 43 | #define SYSFS_PATH "/sys/class/power_supply" 44 | 45 | #define DEFAULT_UPDATE_INTERVAL 5 46 | #define DEFAULT_LOW_LEVEL 20 47 | #define DEFAULT_CRITICAL_LEVEL 5 48 | 49 | #define STR_LTH 256 50 | 51 | enum { 52 | UNKNOWN_ICON = 0, 53 | BATTERY_ICON_STANDARD, 54 | BATTERY_ICON_SYMBOLIC, 55 | BATTERY_ICON_NOTIFICATION 56 | }; 57 | 58 | enum { 59 | MISSING = 0, 60 | UNKNOWN, 61 | CHARGED, 62 | CHARGING, 63 | DISCHARGING, 64 | NOTCHARGING, 65 | LOW_LEVEL, 66 | CRITICAL_LEVEL 67 | }; 68 | 69 | struct configuration { 70 | gboolean display_version; 71 | gboolean debug_output; 72 | gint update_interval; 73 | gint icon_type; 74 | gint low_level; 75 | gint critical_level; 76 | gchar *command_low_level; 77 | gchar *command_critical_level; 78 | gchar *command_left_click; 79 | #ifdef WITH_NOTIFY 80 | gboolean hide_notification; 81 | #endif 82 | gboolean list_icon_types; 83 | gboolean list_power_supplies; 84 | } configuration = { 85 | FALSE, 86 | FALSE, 87 | DEFAULT_UPDATE_INTERVAL, 88 | UNKNOWN_ICON, 89 | DEFAULT_LOW_LEVEL, 90 | DEFAULT_CRITICAL_LEVEL, 91 | NULL, 92 | NULL, 93 | #ifdef WITH_NOTIFY 94 | FALSE, 95 | #endif 96 | FALSE, 97 | FALSE 98 | }; 99 | 100 | struct icon { 101 | GtkStatusIcon *gtk_icon; 102 | gchar *name; 103 | gint size; 104 | }; 105 | 106 | static gint get_options (int argc, char **argv); 107 | static gboolean changed_power_supplies (void); 108 | static void get_power_supplies (void); 109 | 110 | static gboolean get_sysattr_string (gchar *path, gchar *attribute, gchar **value); 111 | static gboolean get_sysattr_double (gchar *path, gchar *attribute, gdouble *value); 112 | 113 | static gboolean get_ac_online (gchar *path, gboolean *online); 114 | static gboolean get_battery_present (gchar *path, gboolean *present); 115 | 116 | static gboolean get_battery_status (gint *status); 117 | 118 | static gboolean get_battery_full_capacity (gboolean *use_charge, gdouble *capacity); 119 | static gboolean get_battery_remaining_capacity (gboolean use_charge, gdouble *capacity); 120 | static gboolean get_battery_remaining_capacity_pct (gdouble *capacity); 121 | static gboolean get_battery_current_rate (gboolean use_charge, gdouble *rate); 122 | 123 | static gboolean get_battery_charge (gboolean remaining, gint *percentage, gint *time); 124 | static gboolean get_battery_time_estimation (gdouble remaining_capacity, gdouble y, gint *time); 125 | static void reset_battery_time_estimation (void); 126 | 127 | static void create_tray_icon (void); 128 | static void set_tray_icon (struct icon *tray_icon, const gchar *name); 129 | static gboolean resize_tray_icon (GtkStatusIcon *gtk_icon, gint size, struct icon *tray_icon); 130 | static gboolean update_tray_icon (struct icon *tray_icon); 131 | static void update_tray_icon_status (struct icon *tray_icon); 132 | static void on_tray_icon_click (struct icon *tray_icon, gpointer user_data); 133 | 134 | #ifdef WITH_NOTIFY 135 | static void notify_message (NotifyNotification **notification, gchar *summary, gchar *body, gint timeout, NotifyUrgency urgency); 136 | #define NOTIFY_MESSAGE(...) notify_message(__VA_ARGS__) 137 | #else 138 | #define NOTIFY_MESSAGE(...) 139 | #endif 140 | 141 | static gchar* get_tooltip_string (gchar *battery, gchar *time); 142 | static gchar* get_battery_string (gint state, gint percentage); 143 | static gchar* get_time_string (gint minutes); 144 | static gchar* get_icon_name (gint state, gint percentage); 145 | 146 | static gchar *battery_suffix = NULL; 147 | static gchar *battery_path = NULL; 148 | static gchar *ac_path = NULL; 149 | 150 | /* 151 | * workaround for limited/bugged batteries/drivers that don't provide current rate 152 | * the next 4 variables are used to calculate estimated time 153 | */ 154 | 155 | static gboolean estimation_needed = FALSE; 156 | static gdouble estimation_remaining_capacity = -1; 157 | static gint estimation_time = -1; 158 | static GTimer *estimation_timer = NULL; 159 | 160 | /* 161 | * command line options function 162 | */ 163 | 164 | static gint get_options (int argc, char **argv) 165 | { 166 | GError *error = NULL; 167 | 168 | gchar *icon_type_string = NULL; 169 | GOptionContext *option_context; 170 | GOptionEntry option_entries[] = { 171 | { "version" , 'v', 0, G_OPTION_ARG_NONE , &configuration.display_version , N_("Display the version") , NULL }, 172 | { "debug" , 'd', 0, G_OPTION_ARG_NONE , &configuration.debug_output , N_("Display debug information") , NULL }, 173 | { "update-interval" , 'u', 0, G_OPTION_ARG_INT , &configuration.update_interval , N_("Set update interval (in seconds)") , NULL }, 174 | { "icon-type" , 'i', 0, G_OPTION_ARG_STRING, &icon_type_string , N_("Set icon type ('standard', 'notification' or 'symbolic')") , NULL }, 175 | { "low-level" , 'l', 0, G_OPTION_ARG_INT , &configuration.low_level , N_("Set low battery level (in percent)") , NULL }, 176 | { "critical-level" , 'r', 0, G_OPTION_ARG_INT , &configuration.critical_level , N_("Set critical battery level (in percent)") , NULL }, 177 | { "command-low-level" , 'o', 0, G_OPTION_ARG_STRING, &configuration.command_low_level , N_("Command to execute when low battery level is reached") , NULL }, 178 | { "command-critical-level", 'c', 0, G_OPTION_ARG_STRING, &configuration.command_critical_level, N_("Command to execute when critical battery level is reached"), NULL }, 179 | { "command-left-click" , 'x', 0, G_OPTION_ARG_STRING, &configuration.command_left_click , N_("Command to execute when left clicking on tray icon") , NULL }, 180 | #ifdef WITH_NOTIFY 181 | { "hide-notification" , 'n', 0, G_OPTION_ARG_NONE , &configuration.hide_notification , N_("Hide the notification popups") , NULL }, 182 | #endif 183 | { "list-icon-types" , 't', 0, G_OPTION_ARG_NONE , &configuration.list_icon_types , N_("List available icon types") , NULL }, 184 | { "list-power-supplies" , 'p', 0, G_OPTION_ARG_NONE , &configuration.list_power_supplies , N_("List available power supplies (battery and AC)") , NULL }, 185 | { NULL } 186 | }; 187 | 188 | option_context = g_option_context_new (_("[BATTERY ID]")); 189 | g_option_context_add_main_entries (option_context, option_entries, CBATTICON_STRING); 190 | 191 | if (g_option_context_parse (option_context, &argc, &argv, &error) == FALSE) { 192 | g_printerr (_("Cannot parse command line arguments: %s\n"), error->message); 193 | g_error_free (error); error = NULL; 194 | 195 | return -1; 196 | } 197 | 198 | g_option_context_free (option_context); 199 | 200 | /* option : display the version */ 201 | 202 | if (configuration.display_version == TRUE) { 203 | g_print (_("cbatticon: a lightweight and fast battery icon that sits in your system tray\n")); 204 | g_print (_("version %s\n"), CBATTICON_VERSION_STRING); 205 | 206 | return 0; 207 | } 208 | 209 | /* option : list available power supplies (battery and AC) */ 210 | 211 | if (configuration.list_power_supplies == TRUE) { 212 | g_print (_("List of available power supplies:\n")); 213 | get_power_supplies (); 214 | 215 | return 0; 216 | } 217 | 218 | /* option : list available icon types */ 219 | 220 | gtk_init (&argc, &argv); /* gtk is required as from this point */ 221 | 222 | #define HAS_STANDARD_ICON_TYPE gtk_icon_theme_has_icon (gtk_icon_theme_get_default (), "battery-full") 223 | #define HAS_NOTIFICATION_ICON_TYPE gtk_icon_theme_has_icon (gtk_icon_theme_get_default (), "notification-battery-100") 224 | #define HAS_SYMBOLIC_ICON_TYPE gtk_icon_theme_has_icon (gtk_icon_theme_get_default (), "battery-full-symbolic") 225 | 226 | if (configuration.list_icon_types == TRUE) { 227 | g_print (_("List of available icon types:\n")); 228 | g_print ("standard\t%s\n" , HAS_STANDARD_ICON_TYPE == TRUE ? _("available") : _("unavailable")); 229 | g_print ("notification\t%s\n", HAS_NOTIFICATION_ICON_TYPE == TRUE ? _("available") : _("unavailable")); 230 | g_print ("symbolic\t%s\n" , HAS_SYMBOLIC_ICON_TYPE == TRUE ? _("available") : _("unavailable")); 231 | 232 | return 0; 233 | } 234 | 235 | /* option : set icon type */ 236 | 237 | if (icon_type_string != NULL) { 238 | if (g_strcmp0 (icon_type_string, "standard") == 0 && HAS_STANDARD_ICON_TYPE == TRUE) 239 | configuration.icon_type = BATTERY_ICON_STANDARD; 240 | else if (g_strcmp0 (icon_type_string, "notification") == 0 && HAS_NOTIFICATION_ICON_TYPE == TRUE) 241 | configuration.icon_type = BATTERY_ICON_NOTIFICATION; 242 | else if (g_strcmp0 (icon_type_string, "symbolic") == 0 && HAS_SYMBOLIC_ICON_TYPE == TRUE) 243 | configuration.icon_type = BATTERY_ICON_SYMBOLIC; 244 | else g_printerr (_("Unknown icon type: %s\n"), icon_type_string); 245 | 246 | g_free (icon_type_string); 247 | } 248 | 249 | if (configuration.icon_type == UNKNOWN_ICON) { 250 | if (HAS_STANDARD_ICON_TYPE == TRUE) 251 | configuration.icon_type = BATTERY_ICON_STANDARD; 252 | else if (HAS_NOTIFICATION_ICON_TYPE == TRUE) 253 | configuration.icon_type = BATTERY_ICON_NOTIFICATION; 254 | else if (HAS_SYMBOLIC_ICON_TYPE == TRUE) 255 | configuration.icon_type = BATTERY_ICON_SYMBOLIC; 256 | else g_printerr (_("No icon type found!\n")); 257 | } 258 | 259 | /* option : update interval */ 260 | 261 | if (configuration.update_interval <= 0) { 262 | configuration.update_interval = DEFAULT_UPDATE_INTERVAL; 263 | g_printerr (_("Invalid update interval! It has been reset to default (%d seconds)\n"), DEFAULT_UPDATE_INTERVAL); 264 | } 265 | 266 | /* option : low and critical levels */ 267 | 268 | if (configuration.low_level < 0 || configuration.low_level > 100) { 269 | configuration.low_level = DEFAULT_LOW_LEVEL; 270 | g_printerr (_("Invalid low level! It has been reset to default (%d percent)\n"), DEFAULT_LOW_LEVEL); 271 | } 272 | 273 | if (configuration.critical_level < 0 || configuration.critical_level > 100) { 274 | configuration.critical_level = DEFAULT_CRITICAL_LEVEL; 275 | g_printerr (_("Invalid critical level! It has been reset to default (%d percent)\n"), DEFAULT_CRITICAL_LEVEL); 276 | } 277 | 278 | if (configuration.critical_level > configuration.low_level) { 279 | configuration.critical_level = DEFAULT_CRITICAL_LEVEL; 280 | configuration.low_level = DEFAULT_LOW_LEVEL; 281 | g_printerr (_("Critical level is higher than low level! They have been reset to default\n")); 282 | } 283 | 284 | return 1; 285 | } 286 | 287 | /* 288 | * sysfs functions 289 | */ 290 | 291 | static gboolean changed_power_supplies (void) 292 | { 293 | GDir *directory; 294 | const gchar *file; 295 | 296 | static gint old_num_ps = 0; 297 | static gint old_total_ps = 0; 298 | gint num_ps = 0; 299 | gint total_ps = 0; 300 | gboolean power_supplies_changed; 301 | 302 | directory = g_dir_open (SYSFS_PATH, 0, NULL); 303 | if (directory != NULL) { 304 | file = g_dir_read_name (directory); 305 | while (file != NULL) { 306 | if (ac_path != NULL && g_str_has_suffix (ac_path, file) == TRUE) { 307 | num_ps++; 308 | } 309 | 310 | if (battery_path != NULL && g_str_has_suffix (battery_path, file) == TRUE) { 311 | num_ps++; 312 | } 313 | 314 | total_ps++; 315 | 316 | file = g_dir_read_name (directory); 317 | } 318 | 319 | g_dir_close (directory); 320 | } 321 | 322 | power_supplies_changed = (num_ps != old_num_ps) || (total_ps != old_total_ps); 323 | 324 | if (configuration.debug_output == TRUE && power_supplies_changed == TRUE) { 325 | g_printf ("power supplies changed: old total/num ps=%d/%d, new total/num ps=%d/%d\n", 326 | old_total_ps, old_num_ps, total_ps, num_ps); 327 | } 328 | 329 | old_num_ps = num_ps; 330 | old_total_ps = total_ps; 331 | 332 | return power_supplies_changed; 333 | } 334 | 335 | static void get_power_supplies (void) 336 | { 337 | GError *error = NULL; 338 | 339 | GDir *directory; 340 | const gchar *file; 341 | gchar *path; 342 | gchar *sysattr_value; 343 | gboolean sysattr_status; 344 | 345 | /* reset power supplies information */ 346 | 347 | g_free (battery_path); battery_path = NULL; 348 | g_free (ac_path); ac_path = NULL; 349 | 350 | estimation_needed = FALSE; 351 | estimation_remaining_capacity = -1; 352 | estimation_time = -1; 353 | if (estimation_timer != NULL) { 354 | g_timer_stop (estimation_timer); 355 | g_timer_destroy (estimation_timer); 356 | estimation_timer = NULL; 357 | } 358 | 359 | /* retrieve power supplies information */ 360 | 361 | directory = g_dir_open (SYSFS_PATH, 0, &error); 362 | if (directory != NULL) { 363 | file = g_dir_read_name (directory); 364 | while (file != NULL) { 365 | path = g_build_filename (SYSFS_PATH, file, NULL); 366 | sysattr_status = get_sysattr_string (path, "type", &sysattr_value); 367 | if (sysattr_status == TRUE) { 368 | 369 | /* process battery */ 370 | 371 | if (g_str_has_prefix (sysattr_value, "Battery") == TRUE && 372 | get_battery_present (path, NULL) == TRUE) { 373 | if (configuration.list_power_supplies == TRUE) { 374 | gchar *power_supply_id = g_path_get_basename (path); 375 | g_print (_("type: %-*.*s\tid: %-*.*s\tpath: %s\n"), 12, 12, _("Battery"), 12, 12, power_supply_id, path); 376 | g_free (power_supply_id); 377 | } 378 | 379 | if (battery_path == NULL) { 380 | if (battery_suffix == NULL || 381 | g_str_has_suffix (path, battery_suffix) == TRUE) { 382 | battery_path = g_strdup (path); 383 | 384 | /* workaround for limited/bugged batteries/drivers */ 385 | /* that don't provide current rate */ 386 | 387 | if (get_battery_current_rate (FALSE, NULL) == FALSE && 388 | get_battery_current_rate (TRUE, NULL) == FALSE) { 389 | estimation_needed = TRUE; 390 | estimation_timer = g_timer_new (); 391 | 392 | if (configuration.debug_output == TRUE) { 393 | g_printf ("workaround: current rate is not available, estimating rate\n"); 394 | } 395 | } 396 | 397 | if (configuration.debug_output == TRUE) { 398 | g_printf ("battery path: %s\n", battery_path); 399 | } 400 | } 401 | } 402 | } 403 | 404 | /* process AC */ 405 | 406 | if (g_str_has_prefix (sysattr_value, "Mains") == TRUE && 407 | get_ac_online (path, NULL) == TRUE) { 408 | if (configuration.list_power_supplies == TRUE) { 409 | gchar *power_supply_id = g_path_get_basename (path); 410 | g_print (_("type: %-*.*s\tid: %-*.*s\tpath: %s\n"), 12, 12, _("AC"), 12, 12, power_supply_id, path); 411 | g_free (power_supply_id); 412 | } 413 | 414 | if (ac_path == NULL) { 415 | ac_path = g_strdup (path); 416 | 417 | if (configuration.debug_output == TRUE) { 418 | g_printf ("ac path: %s\n", ac_path); 419 | } 420 | } 421 | } 422 | 423 | g_free (sysattr_value); 424 | } 425 | 426 | g_free (path); 427 | file = g_dir_read_name (directory); 428 | } 429 | 430 | g_dir_close (directory); 431 | } else { 432 | g_printerr (_("Cannot open sysfs directory: %s (%s)\n"), SYSFS_PATH, error->message); 433 | g_error_free (error); error = NULL; 434 | return; 435 | } 436 | 437 | if (configuration.list_power_supplies == FALSE && battery_path == NULL) { 438 | if (battery_suffix != NULL) { 439 | g_printerr (_("No battery with suffix %s found!\n"), battery_suffix); 440 | return; 441 | } 442 | 443 | if (ac_path == NULL) { 444 | g_printerr (_("No battery nor AC power supply found!\n")); 445 | return; 446 | } 447 | } 448 | } 449 | 450 | static gboolean get_sysattr_string (gchar *path, gchar *attribute, gchar **value) 451 | { 452 | gchar *sysattr_filename; 453 | gboolean sysattr_status; 454 | 455 | g_return_val_if_fail (path != NULL, FALSE); 456 | g_return_val_if_fail (attribute != NULL, FALSE); 457 | g_return_val_if_fail (value != NULL, FALSE); 458 | 459 | sysattr_filename = g_build_filename (path, attribute, NULL); 460 | sysattr_status = g_file_get_contents (sysattr_filename, value, NULL, NULL); 461 | g_free (sysattr_filename); 462 | 463 | return sysattr_status; 464 | } 465 | 466 | static gboolean get_sysattr_double (gchar *path, gchar *attribute, gdouble *value) 467 | { 468 | gchar *sysattr_filename, *sysattr_value; 469 | gboolean sysattr_status; 470 | 471 | g_return_val_if_fail (path != NULL, FALSE); 472 | g_return_val_if_fail (attribute != NULL, FALSE); 473 | 474 | sysattr_filename = g_build_filename (path, attribute, NULL); 475 | sysattr_status = g_file_get_contents (sysattr_filename, &sysattr_value, NULL, NULL); 476 | g_free (sysattr_filename); 477 | 478 | if (sysattr_status == TRUE) { 479 | gdouble double_value = g_ascii_strtod (sysattr_value, NULL); 480 | 481 | if (errno != 0 || double_value < 0.01) { 482 | sysattr_status = FALSE; 483 | } 484 | 485 | if (value != NULL) { 486 | *value = double_value; 487 | } 488 | 489 | g_free (sysattr_value); 490 | } 491 | 492 | return sysattr_status; 493 | } 494 | 495 | static gboolean get_ac_online (gchar *path, gboolean *online) 496 | { 497 | gchar *sysattr_value; 498 | gboolean sysattr_status; 499 | 500 | if (path == NULL) { 501 | return FALSE; 502 | } 503 | 504 | sysattr_status = get_sysattr_string (path, "online", &sysattr_value); 505 | if (sysattr_status == TRUE) { 506 | if (online != NULL) { 507 | *online = g_str_has_prefix (sysattr_value, "1") ? TRUE : FALSE; 508 | } 509 | 510 | if (configuration.debug_output == TRUE) { 511 | g_printf ("ac online: %s", sysattr_value); 512 | } 513 | 514 | g_free (sysattr_value); 515 | } 516 | 517 | return sysattr_status; 518 | } 519 | 520 | static gboolean get_battery_present (gchar *path, gboolean *present) 521 | { 522 | gchar *sysattr_value; 523 | gboolean sysattr_status; 524 | 525 | if (path == NULL) { 526 | return FALSE; 527 | } 528 | 529 | sysattr_status = get_sysattr_string (path, "present", &sysattr_value); 530 | if (sysattr_status == TRUE) { 531 | if (present != NULL) { 532 | *present = g_str_has_prefix (sysattr_value, "1") ? TRUE : FALSE; 533 | } 534 | 535 | if (configuration.debug_output == TRUE) { 536 | g_printf ("battery present: %s", sysattr_value); 537 | } 538 | 539 | g_free (sysattr_value); 540 | } 541 | 542 | return sysattr_status; 543 | } 544 | 545 | static gboolean get_battery_status (gint *status) 546 | { 547 | gchar *sysattr_value; 548 | gboolean sysattr_status; 549 | 550 | g_return_val_if_fail (status != NULL, FALSE); 551 | 552 | sysattr_status = get_sysattr_string (battery_path, "status", &sysattr_value); 553 | if (sysattr_status == TRUE) { 554 | if (g_str_has_prefix (sysattr_value, "Charging") == TRUE) 555 | *status = CHARGING; 556 | else if (g_str_has_prefix (sysattr_value, "Discharging") == TRUE) 557 | *status = DISCHARGING; 558 | else if (g_str_has_prefix (sysattr_value, "Not charging") == TRUE) 559 | *status = NOTCHARGING; 560 | else if (g_str_has_prefix (sysattr_value, "Full") == TRUE) 561 | *status = CHARGED; 562 | else 563 | *status = UNKNOWN; 564 | 565 | if (configuration.debug_output == TRUE) { 566 | g_printf ("battery status: %d - %s", *status, sysattr_value); 567 | } 568 | 569 | g_free (sysattr_value); 570 | } 571 | 572 | return sysattr_status; 573 | } 574 | 575 | static gboolean get_battery_full_capacity (gboolean *use_charge, gdouble *capacity) 576 | { 577 | gboolean sysattr_status; 578 | 579 | g_return_val_if_fail (use_charge != NULL, FALSE); 580 | g_return_val_if_fail (capacity != NULL, FALSE); 581 | 582 | sysattr_status = get_sysattr_double (battery_path, "energy_full", capacity); 583 | *use_charge = FALSE; 584 | 585 | if (sysattr_status == FALSE) { 586 | sysattr_status = get_sysattr_double (battery_path, "charge_full", capacity); 587 | *use_charge = TRUE; 588 | } 589 | 590 | return sysattr_status; 591 | } 592 | 593 | static gboolean get_battery_remaining_capacity (gboolean use_charge, gdouble *capacity) 594 | { 595 | g_return_val_if_fail (capacity != NULL, FALSE); 596 | 597 | if (use_charge == FALSE) { 598 | return get_sysattr_double (battery_path, "energy_now", capacity); 599 | } else { 600 | return get_sysattr_double (battery_path, "charge_now", capacity); 601 | } 602 | } 603 | 604 | static gboolean get_battery_remaining_capacity_pct (gdouble *capacity) 605 | { 606 | g_return_val_if_fail (capacity != NULL, FALSE); 607 | 608 | return get_sysattr_double (battery_path, "capacity", capacity); 609 | } 610 | 611 | static gboolean get_battery_current_rate (gboolean use_charge, gdouble *rate) 612 | { 613 | if (use_charge == FALSE) { 614 | return get_sysattr_double (battery_path, "power_now", rate); 615 | } else { 616 | return get_sysattr_double (battery_path, "current_now", rate); 617 | } 618 | } 619 | 620 | /* 621 | * computation functions 622 | */ 623 | 624 | static gboolean get_battery_charge (gboolean remaining, gint *percentage, gint *time) 625 | { 626 | gdouble full_capacity, remaining_capacity, current_rate; 627 | gboolean use_charge; 628 | 629 | g_return_val_if_fail (percentage != NULL, FALSE); 630 | 631 | if (get_battery_full_capacity (&use_charge, &full_capacity) == FALSE) { 632 | if (configuration.debug_output == TRUE) { 633 | g_printf ("full capacity: %s\n", "unavailable"); 634 | } 635 | 636 | return FALSE; 637 | } 638 | 639 | if (get_battery_remaining_capacity (use_charge, &remaining_capacity) == FALSE) { 640 | if (get_battery_remaining_capacity_pct (&remaining_capacity) == FALSE) { 641 | if (configuration.debug_output == TRUE) { 642 | g_printf ("remaining capacity: %s\n", "unavailable"); 643 | } 644 | 645 | return FALSE; 646 | } 647 | 648 | /* remaining capacity is percentage, compute the actual remaining capacity */ 649 | remaining_capacity *= full_capacity / 100.0; 650 | } 651 | 652 | *percentage = (gint)fmin (floor (remaining_capacity / full_capacity * 100.0), 100.0); 653 | 654 | if (time == NULL) { 655 | return TRUE; 656 | } 657 | 658 | if (estimation_needed == TRUE) { 659 | if (remaining == TRUE) { 660 | return get_battery_time_estimation (remaining_capacity, 0, time); 661 | } else { 662 | return get_battery_time_estimation (remaining_capacity, full_capacity, time); 663 | } 664 | } 665 | 666 | if (get_battery_current_rate (use_charge, ¤t_rate) == FALSE) { 667 | if (configuration.debug_output == TRUE) { 668 | g_printf ("current rate: %s\n", "unavailable"); 669 | } 670 | 671 | return FALSE; 672 | } 673 | 674 | if (remaining == TRUE) { 675 | *time = (gint)(remaining_capacity / current_rate * 60.0); 676 | } else { 677 | *time = (gint)((full_capacity - remaining_capacity) / current_rate * 60.0); 678 | } 679 | 680 | return TRUE; 681 | } 682 | 683 | static gboolean get_battery_time_estimation (gdouble remaining_capacity, gdouble y, gint *time) 684 | { 685 | if (estimation_remaining_capacity == -1) { 686 | estimation_remaining_capacity = remaining_capacity; 687 | } 688 | 689 | /* 690 | * y = mx + b ... x = (y - b) / m 691 | * solving for when y = 0 (discharging) or full_capacity (charging) 692 | */ 693 | 694 | if (remaining_capacity != estimation_remaining_capacity) { 695 | gdouble estimation_elapsed = g_timer_elapsed (estimation_timer, NULL); 696 | gdouble estimation_current_rate = (remaining_capacity - estimation_remaining_capacity) / estimation_elapsed; 697 | gdouble estimation_seconds = (y - remaining_capacity) / estimation_current_rate; 698 | 699 | *time = (gint)(estimation_seconds / 60.0); 700 | 701 | estimation_remaining_capacity = remaining_capacity; 702 | estimation_time = *time; 703 | g_timer_start (estimation_timer); 704 | } else { 705 | *time = estimation_time; 706 | } 707 | 708 | return TRUE; 709 | } 710 | 711 | static void reset_battery_time_estimation (void) 712 | { 713 | estimation_remaining_capacity = -1; 714 | estimation_time = -1; 715 | g_timer_start (estimation_timer); 716 | } 717 | 718 | /* 719 | * tray icon functions 720 | */ 721 | 722 | static void create_tray_icon (void) 723 | { 724 | struct icon* tray_icon = g_malloc (sizeof(*tray_icon)); 725 | tray_icon->gtk_icon = gtk_status_icon_new (); 726 | tray_icon->name = g_strdup(""); 727 | tray_icon->size = 0; 728 | 729 | gtk_status_icon_set_tooltip_text (tray_icon->gtk_icon, CBATTICON_STRING); 730 | gtk_status_icon_set_visible (tray_icon->gtk_icon, TRUE); 731 | 732 | update_tray_icon (tray_icon); 733 | g_timeout_add_seconds (configuration.update_interval, (GSourceFunc)update_tray_icon, (gpointer)tray_icon); 734 | 735 | g_signal_connect (G_OBJECT (tray_icon->gtk_icon), "activate", G_CALLBACK (on_tray_icon_click), NULL); 736 | g_signal_connect (G_OBJECT (tray_icon->gtk_icon), "size-changed", G_CALLBACK (resize_tray_icon), (gpointer)tray_icon); 737 | } 738 | 739 | static void set_tray_icon (struct icon *tray_icon, const gchar *name) 740 | { 741 | gint size = gtk_status_icon_get_size (tray_icon->gtk_icon); 742 | 743 | if (size == tray_icon->size && (name == NULL || g_strcmp0 (name, tray_icon->name) == 0)) { 744 | return; 745 | } 746 | 747 | tray_icon->size = size; 748 | 749 | if (name != NULL) 750 | { 751 | g_free (tray_icon->name); 752 | tray_icon->name = g_strdup (name); 753 | } 754 | 755 | GdkPixbuf *pix = gtk_icon_theme_load_icon (gtk_icon_theme_get_default(), 756 | tray_icon->name, 757 | tray_icon->size, 758 | GTK_ICON_LOOKUP_USE_BUILTIN, 759 | NULL); 760 | gtk_status_icon_set_from_pixbuf (tray_icon->gtk_icon, pix); 761 | } 762 | 763 | static gboolean resize_tray_icon (GtkStatusIcon *gtk_icon, gint size, struct icon *tray_icon) 764 | { 765 | g_return_val_if_fail (tray_icon != NULL, FALSE); 766 | 767 | set_tray_icon (tray_icon, NULL); 768 | 769 | return TRUE; 770 | } 771 | 772 | static gboolean update_tray_icon (struct icon *tray_icon) 773 | { 774 | g_return_val_if_fail (tray_icon != NULL, FALSE); 775 | 776 | update_tray_icon_status (tray_icon); 777 | 778 | return TRUE; 779 | } 780 | 781 | static void update_tray_icon_status (struct icon *tray_icon) 782 | { 783 | GError *error = NULL; 784 | 785 | gboolean battery_present = FALSE; 786 | gboolean ac_online = FALSE; 787 | 788 | gint battery_status = -1; 789 | static gint old_battery_status = -1; 790 | 791 | /* battery statuses: */ 792 | /* not present => ac_only, battery_missing */ 793 | /* present => charging, charged, discharging, unknown */ 794 | /* (present and not present are exclusive) */ 795 | 796 | static gboolean ac_only = FALSE; 797 | static gboolean battery_low = FALSE; 798 | static gboolean battery_critical = FALSE; 799 | static gboolean spawn_command_low = FALSE; 800 | static gboolean spawn_command_critical = FALSE; 801 | 802 | gint percentage, time; 803 | gchar *battery_string, *time_string; 804 | 805 | #ifdef WITH_NOTIFY 806 | static NotifyNotification *notification = NULL; 807 | #endif 808 | 809 | /* update power supplies */ 810 | 811 | if (changed_power_supplies () == TRUE) 812 | { 813 | get_power_supplies (); 814 | 815 | old_battery_status = -1; 816 | 817 | ac_only = FALSE; 818 | battery_low = FALSE; 819 | battery_critical = FALSE; 820 | spawn_command_low = FALSE; 821 | spawn_command_critical = FALSE; 822 | } 823 | 824 | /* update tray icon for AC only */ 825 | 826 | if (battery_path == NULL) { 827 | if (ac_only == FALSE) { 828 | ac_only = TRUE; 829 | 830 | NOTIFY_MESSAGE (¬ification, _("AC only, no battery!"), NULL, NOTIFY_EXPIRES_NEVER, NOTIFY_URGENCY_NORMAL); 831 | 832 | gtk_status_icon_set_tooltip_text (tray_icon->gtk_icon, _("AC only, no battery!")); 833 | set_tray_icon (tray_icon, "ac-adapter"); 834 | } 835 | 836 | return; 837 | } 838 | 839 | /* update tray icon for battery */ 840 | 841 | if (get_battery_present (battery_path, &battery_present) == FALSE) { 842 | return; 843 | } 844 | 845 | if (battery_present == FALSE) { 846 | battery_status = MISSING; 847 | } else { 848 | if (get_battery_status (&battery_status) == FALSE) { 849 | return; 850 | } 851 | 852 | /* workaround for limited/bugged batteries/drivers */ 853 | /* that unduly return unknown status */ 854 | 855 | if (battery_status == UNKNOWN && get_ac_online (ac_path, &ac_online) == TRUE) { 856 | if (ac_online == TRUE) { 857 | battery_status = CHARGING; 858 | 859 | if (get_battery_charge (FALSE, &percentage, NULL) == TRUE && percentage >= 99) { 860 | battery_status = CHARGED; 861 | } 862 | } else { 863 | battery_status = DISCHARGING; 864 | } 865 | } 866 | } 867 | 868 | #define HANDLE_BATTERY_STATUS(PCT,TIM,EXP,URG) \ 869 | \ 870 | percentage = PCT; \ 871 | \ 872 | battery_string = get_battery_string (battery_status, percentage); \ 873 | time_string = get_time_string (TIM); \ 874 | \ 875 | if (old_battery_status != battery_status) { \ 876 | old_battery_status = battery_status; \ 877 | NOTIFY_MESSAGE (¬ification, battery_string, time_string, EXP, URG); \ 878 | } \ 879 | \ 880 | gtk_status_icon_set_tooltip_text (tray_icon->gtk_icon, get_tooltip_string (battery_string, time_string)); \ 881 | set_tray_icon (tray_icon, get_icon_name (battery_status, percentage)); 882 | 883 | switch (battery_status) { 884 | case MISSING: 885 | HANDLE_BATTERY_STATUS (0, -1, NOTIFY_EXPIRES_NEVER, NOTIFY_URGENCY_NORMAL) 886 | break; 887 | 888 | case UNKNOWN: 889 | HANDLE_BATTERY_STATUS (0, -1, NOTIFY_EXPIRES_DEFAULT, NOTIFY_URGENCY_NORMAL) 890 | break; 891 | 892 | case CHARGED: 893 | HANDLE_BATTERY_STATUS (100, -1, NOTIFY_EXPIRES_DEFAULT, NOTIFY_URGENCY_NORMAL) 894 | break; 895 | 896 | case CHARGING: 897 | if (old_battery_status != CHARGING && estimation_needed == TRUE) { 898 | reset_battery_time_estimation (); 899 | } 900 | 901 | if (get_battery_charge (FALSE, &percentage, &time) == FALSE) { 902 | return; 903 | } 904 | 905 | HANDLE_BATTERY_STATUS (percentage, time, NOTIFY_EXPIRES_DEFAULT, NOTIFY_URGENCY_NORMAL) 906 | break; 907 | 908 | case DISCHARGING: 909 | case NOTCHARGING: 910 | if (old_battery_status != DISCHARGING && estimation_needed == TRUE) { 911 | reset_battery_time_estimation (); 912 | } 913 | 914 | if (get_battery_charge (TRUE, &percentage, &time) == FALSE) { 915 | return; 916 | } 917 | 918 | battery_string = get_battery_string (battery_status, percentage); 919 | time_string = get_time_string (time); 920 | 921 | if (old_battery_status != DISCHARGING) { 922 | old_battery_status = DISCHARGING; 923 | NOTIFY_MESSAGE (¬ification, battery_string, time_string, NOTIFY_EXPIRES_DEFAULT, NOTIFY_URGENCY_NORMAL); 924 | 925 | battery_low = FALSE; 926 | battery_critical = FALSE; 927 | spawn_command_low = FALSE; 928 | spawn_command_critical = FALSE; 929 | } 930 | 931 | if (battery_low == FALSE && percentage <= configuration.low_level) { 932 | battery_low = TRUE; 933 | 934 | battery_string = get_battery_string (LOW_LEVEL, percentage); 935 | NOTIFY_MESSAGE (¬ification, battery_string, time_string, NOTIFY_EXPIRES_NEVER, NOTIFY_URGENCY_NORMAL); 936 | 937 | spawn_command_low = TRUE; 938 | } 939 | 940 | if (battery_critical == FALSE && percentage <= configuration.critical_level) { 941 | battery_critical = TRUE; 942 | 943 | battery_string = get_battery_string (CRITICAL_LEVEL, percentage); 944 | NOTIFY_MESSAGE (¬ification, battery_string, time_string, NOTIFY_EXPIRES_NEVER, NOTIFY_URGENCY_CRITICAL); 945 | 946 | spawn_command_critical = TRUE; 947 | } 948 | 949 | gtk_status_icon_set_tooltip_text (tray_icon->gtk_icon, get_tooltip_string (battery_string, time_string)); 950 | set_tray_icon (tray_icon, get_icon_name (battery_status, percentage)); 951 | 952 | if (spawn_command_low == TRUE) { 953 | spawn_command_low = FALSE; 954 | 955 | if (configuration.command_low_level != NULL) { 956 | syslog (LOG_CRIT, _("Spawning low battery level command in 5 seconds: %s"), configuration.command_low_level); 957 | g_usleep (G_USEC_PER_SEC * 5); 958 | 959 | if (get_battery_status (&battery_status) == TRUE) { 960 | if (battery_status != DISCHARGING && battery_status != NOTCHARGING) { 961 | syslog (LOG_NOTICE, _("Skipping low battery level command, no longer discharging")); 962 | return; 963 | } 964 | } 965 | 966 | if (g_spawn_command_line_async (configuration.command_low_level, &error) == FALSE) { 967 | syslog (LOG_CRIT, _("Cannot spawn low battery level command: %s\n"), error->message); 968 | 969 | g_printerr (_("Cannot spawn low battery level command: %s\n"), error->message); 970 | g_error_free (error); error = NULL; 971 | 972 | #ifdef WITH_NOTIFY 973 | static NotifyNotification *spawn_notification = NULL; 974 | NOTIFY_MESSAGE (&spawn_notification, _("Cannot spawn low battery level command!"), configuration.command_low_level, NOTIFY_EXPIRES_NEVER, NOTIFY_URGENCY_CRITICAL); 975 | #endif 976 | } 977 | } 978 | } 979 | 980 | if (spawn_command_critical == TRUE) { 981 | spawn_command_critical = FALSE; 982 | 983 | if (configuration.command_critical_level != NULL) { 984 | syslog (LOG_CRIT, _("Spawning critical battery level command in 30 seconds: %s"), configuration.command_critical_level); 985 | g_usleep (G_USEC_PER_SEC * 30); 986 | 987 | if (get_battery_status (&battery_status) == TRUE) { 988 | if (battery_status != DISCHARGING && battery_status != NOTCHARGING) { 989 | syslog (LOG_NOTICE, _("Skipping critical battery level command, no longer discharging")); 990 | return; 991 | } 992 | } 993 | 994 | if (g_spawn_command_line_async (configuration.command_critical_level, &error) == FALSE) { 995 | syslog (LOG_CRIT, _("Cannot spawn critical battery level command: %s\n"), error->message); 996 | 997 | g_printerr (_("Cannot spawn critical battery level command: %s\n"), error->message); 998 | g_error_free (error); error = NULL; 999 | 1000 | #ifdef WITH_NOTIFY 1001 | static NotifyNotification *spawn_notification = NULL; 1002 | NOTIFY_MESSAGE (&spawn_notification, _("Cannot spawn critical battery level command!"), configuration.command_critical_level, NOTIFY_EXPIRES_NEVER, NOTIFY_URGENCY_CRITICAL); 1003 | #endif 1004 | } 1005 | } 1006 | } 1007 | break; 1008 | } 1009 | } 1010 | 1011 | static void on_tray_icon_click (struct icon *tray_icon, gpointer user_data) 1012 | { 1013 | GError *error = NULL; 1014 | 1015 | if (configuration.command_left_click != NULL) { 1016 | if (g_spawn_command_line_async (configuration.command_left_click, &error) == FALSE) { 1017 | syslog (LOG_ERR, _("Cannot spawn left click command: %s\n"), error->message); 1018 | 1019 | g_printerr (_("Cannot spawn left click command: %s\n"), error->message); 1020 | g_error_free (error); error = NULL; 1021 | 1022 | #ifdef WITH_NOTIFY 1023 | static NotifyNotification *spawn_notification = NULL; 1024 | NOTIFY_MESSAGE (&spawn_notification, _("Cannot spawn left click command!"), configuration.command_left_click, NOTIFY_EXPIRES_DEFAULT, NOTIFY_URGENCY_CRITICAL); 1025 | #endif 1026 | } 1027 | } 1028 | } 1029 | 1030 | #ifdef WITH_NOTIFY 1031 | static void notify_message (NotifyNotification **notification, gchar *summary, gchar *body, gint timeout, NotifyUrgency urgency) 1032 | { 1033 | g_return_if_fail (notification != NULL); 1034 | g_return_if_fail (summary != NULL); 1035 | 1036 | if (configuration.hide_notification == TRUE) { 1037 | return; 1038 | } 1039 | 1040 | if (*notification == NULL) { 1041 | #if NOTIFY_CHECK_VERSION (0, 7, 0) 1042 | *notification = notify_notification_new (summary, body, NULL); 1043 | #else 1044 | *notification = notify_notification_new (summary, body, NULL, NULL); 1045 | #endif 1046 | } else { 1047 | notify_notification_update (*notification, summary, body, NULL); 1048 | } 1049 | 1050 | notify_notification_set_timeout (*notification, timeout); 1051 | notify_notification_set_urgency (*notification, urgency); 1052 | notify_notification_show (*notification, NULL); 1053 | } 1054 | #endif 1055 | 1056 | static gchar* get_tooltip_string (gchar *battery, gchar *time) 1057 | { 1058 | static gchar tooltip_string[STR_LTH]; 1059 | 1060 | tooltip_string[0] = '\0'; 1061 | 1062 | g_return_val_if_fail (battery != NULL, tooltip_string); 1063 | 1064 | g_strlcpy (tooltip_string, battery, STR_LTH); 1065 | 1066 | if (configuration.debug_output == TRUE) { 1067 | g_printf ("tooltip: %s\n", battery); 1068 | } 1069 | 1070 | if (time != NULL) { 1071 | g_strlcat (tooltip_string, "\n", STR_LTH); 1072 | g_strlcat (tooltip_string, time, STR_LTH); 1073 | 1074 | if (configuration.debug_output == TRUE) { 1075 | g_printf ("tooltip: %s\n", time); 1076 | } 1077 | } 1078 | 1079 | return tooltip_string; 1080 | } 1081 | 1082 | static gchar* get_battery_string (gint state, gint percentage) 1083 | { 1084 | static gchar battery_string[STR_LTH]; 1085 | 1086 | switch (state) { 1087 | case MISSING: 1088 | g_strlcpy (battery_string, _("Battery is missing!"), STR_LTH); 1089 | break; 1090 | 1091 | case UNKNOWN: 1092 | g_strlcpy (battery_string, _("Battery status is unknown!"), STR_LTH); 1093 | break; 1094 | 1095 | case CHARGED: 1096 | g_strlcpy (battery_string, _("Battery is charged!"), STR_LTH); 1097 | break; 1098 | 1099 | case DISCHARGING: 1100 | g_snprintf (battery_string, STR_LTH, _("Battery is discharging (%i%% remaining)"), percentage); 1101 | break; 1102 | 1103 | case NOTCHARGING: 1104 | g_snprintf (battery_string, STR_LTH, _("Battery is not charging (%i%% remaining)"), percentage); 1105 | break; 1106 | 1107 | case LOW_LEVEL: 1108 | g_snprintf (battery_string, STR_LTH, _("Battery level is low! (%i%% remaining)"), percentage); 1109 | break; 1110 | 1111 | case CRITICAL_LEVEL: 1112 | g_snprintf (battery_string, STR_LTH, _("Battery level is critical! (%i%% remaining)"), percentage); 1113 | break; 1114 | 1115 | case CHARGING: 1116 | g_snprintf (battery_string, STR_LTH, _("Battery is charging (%i%%)"), percentage); 1117 | break; 1118 | 1119 | default: 1120 | battery_string[0] = '\0'; 1121 | break; 1122 | } 1123 | 1124 | if (configuration.debug_output == TRUE) { 1125 | g_printf ("battery string: %s\n", battery_string); 1126 | } 1127 | 1128 | return battery_string; 1129 | } 1130 | 1131 | static gchar* get_time_string (gint minutes) 1132 | { 1133 | static gchar time_string[STR_LTH]; 1134 | static gchar minutes_string[STR_LTH]; 1135 | gint hours; 1136 | 1137 | if (minutes < 0) { 1138 | return NULL; 1139 | } 1140 | 1141 | hours = minutes / 60; 1142 | minutes = minutes % 60; 1143 | 1144 | if (hours > 0) { 1145 | g_sprintf (minutes_string, g_dngettext (NULL, "%d minute", "%d minutes", minutes), minutes); 1146 | g_sprintf (time_string, g_dngettext (NULL, "%d hour, %s remaining", "%d hours, %s remaining", hours), hours, minutes_string); 1147 | } else { 1148 | g_sprintf (time_string, g_dngettext (NULL, "%d minute remaining", "%d minutes remaining", minutes), minutes); 1149 | } 1150 | 1151 | if (configuration.debug_output == TRUE) { 1152 | g_printf ("time string: %s\n", time_string); 1153 | } 1154 | 1155 | return time_string; 1156 | } 1157 | 1158 | static gchar* get_icon_name (gint state, gint percentage) 1159 | { 1160 | static gchar icon_name[STR_LTH]; 1161 | 1162 | if (configuration.icon_type == BATTERY_ICON_NOTIFICATION) { 1163 | g_strlcpy (icon_name, "notification-battery", STR_LTH); 1164 | } else { 1165 | g_strlcpy (icon_name, "battery", STR_LTH); 1166 | } 1167 | 1168 | if (state == MISSING || state == UNKNOWN) { 1169 | if (configuration.icon_type == BATTERY_ICON_NOTIFICATION) { 1170 | g_strlcat (icon_name, "-empty", STR_LTH); 1171 | } else { 1172 | g_strlcat (icon_name, "-missing", STR_LTH); 1173 | } 1174 | } else { 1175 | if (configuration.icon_type == BATTERY_ICON_NOTIFICATION) { 1176 | if (percentage <= 20) g_strlcat (icon_name, "-020", STR_LTH); 1177 | else if (percentage <= 40) g_strlcat (icon_name, "-040", STR_LTH); 1178 | else if (percentage <= 60) g_strlcat (icon_name, "-060", STR_LTH); 1179 | else if (percentage <= 80) g_strlcat (icon_name, "-080", STR_LTH); 1180 | else g_strlcat (icon_name, "-100", STR_LTH); 1181 | 1182 | if (state == CHARGING) g_strlcat (icon_name, "-plugged", STR_LTH); 1183 | else if (state == CHARGED) g_strlcat (icon_name, "-plugged", STR_LTH); 1184 | } else { 1185 | if (percentage <= 20) g_strlcat (icon_name, "-caution", STR_LTH); 1186 | else if (percentage <= 40) g_strlcat (icon_name, "-low", STR_LTH); 1187 | else if (percentage <= 80) g_strlcat (icon_name, "-good", STR_LTH); 1188 | else g_strlcat (icon_name, "-full", STR_LTH); 1189 | 1190 | if (state == CHARGING) g_strlcat (icon_name, "-charging", STR_LTH); 1191 | else if (state == CHARGED) g_strlcat (icon_name, "-charged", STR_LTH); 1192 | } 1193 | } 1194 | 1195 | if (configuration.icon_type == BATTERY_ICON_SYMBOLIC) { 1196 | g_strlcat (icon_name, "-symbolic", STR_LTH); 1197 | } 1198 | 1199 | if (configuration.debug_output == TRUE) { 1200 | g_printf ("icon name: %s\n", icon_name); 1201 | } 1202 | 1203 | return icon_name; 1204 | } 1205 | 1206 | int main (int argc, char **argv) 1207 | { 1208 | gint ret; 1209 | 1210 | setlocale (LC_ALL, ""); 1211 | bindtextdomain (CBATTICON_STRING, NLSDIR); 1212 | bind_textdomain_codeset (CBATTICON_STRING, "UTF-8"); 1213 | textdomain (CBATTICON_STRING); 1214 | 1215 | ret = get_options (argc, argv); 1216 | if (ret <= 0) { 1217 | return ret; 1218 | } 1219 | 1220 | #ifdef WITH_NOTIFY 1221 | if (configuration.hide_notification == FALSE) { 1222 | if (notify_init (CBATTICON_STRING) == FALSE) { 1223 | return -1; 1224 | } 1225 | } 1226 | #endif 1227 | 1228 | if (argc > 1) { 1229 | battery_suffix = argv[1]; 1230 | } 1231 | 1232 | get_power_supplies(); 1233 | create_tray_icon (); 1234 | gtk_main(); 1235 | 1236 | return 0; 1237 | } 1238 | -------------------------------------------------------------------------------- /cbatticon.pot: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2015-2022 Valère Monseur 2 | # This file is distributed under the same license as the cbatticon package. 3 | # Valère Monseur , 2022. 4 | # 5 | #, fuzzy 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: cbatticon 1.6.13\n" 9 | "Report-Msgid-Bugs-To: archlinux@vale.re\n" 10 | "POT-Creation-Date: 2022-04-27 21:27+0200\n" 11 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 12 | "Last-Translator: FULL NAME \n" 13 | "Language-Team: LANGUAGE \n" 14 | "Language: \n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=CHARSET\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" 19 | 20 | #: cbatticon.c:163 21 | msgid "Display the version" 22 | msgstr "" 23 | 24 | #: cbatticon.c:164 25 | msgid "Display debug information" 26 | msgstr "" 27 | 28 | #: cbatticon.c:165 29 | msgid "Set update interval (in seconds)" 30 | msgstr "" 31 | 32 | #: cbatticon.c:166 33 | msgid "Set icon type ('standard', 'notification' or 'symbolic')" 34 | msgstr "" 35 | 36 | #: cbatticon.c:167 37 | msgid "Set low battery level (in percent)" 38 | msgstr "" 39 | 40 | #: cbatticon.c:168 41 | msgid "Set critical battery level (in percent)" 42 | msgstr "" 43 | 44 | #: cbatticon.c:169 45 | msgid "Command to execute when low battery level is reached" 46 | msgstr "" 47 | 48 | #: cbatticon.c:170 49 | msgid "Command to execute when critical battery level is reached" 50 | msgstr "" 51 | 52 | #: cbatticon.c:171 53 | msgid "Command to execute when left clicking on tray icon" 54 | msgstr "" 55 | 56 | #: cbatticon.c:173 57 | msgid "Hide the notification popups" 58 | msgstr "" 59 | 60 | #: cbatticon.c:175 61 | msgid "List available icon types" 62 | msgstr "" 63 | 64 | #: cbatticon.c:176 65 | msgid "List available power supplies (battery and AC)" 66 | msgstr "" 67 | 68 | #: cbatticon.c:180 69 | msgid "[BATTERY ID]" 70 | msgstr "" 71 | 72 | #: cbatticon.c:184 73 | #, c-format 74 | msgid "Cannot parse command line arguments: %s\n" 75 | msgstr "" 76 | 77 | #: cbatticon.c:195 78 | msgid "" 79 | "cbatticon: a lightweight and fast battery icon that sits in your system " 80 | "tray\n" 81 | msgstr "" 82 | 83 | #: cbatticon.c:196 84 | #, c-format 85 | msgid "version %s\n" 86 | msgstr "" 87 | 88 | #: cbatticon.c:204 89 | msgid "List of available power supplies:\n" 90 | msgstr "" 91 | 92 | #: cbatticon.c:219 93 | msgid "List of available icon types:\n" 94 | msgstr "" 95 | 96 | #: cbatticon.c:220 cbatticon.c:221 cbatticon.c:222 97 | msgid "available" 98 | msgstr "" 99 | 100 | #: cbatticon.c:220 cbatticon.c:221 cbatticon.c:222 101 | msgid "unavailable" 102 | msgstr "" 103 | 104 | #: cbatticon.c:236 105 | #, c-format 106 | msgid "Unknown icon type: %s\n" 107 | msgstr "" 108 | 109 | #: cbatticon.c:248 110 | msgid "No icon type found!\n" 111 | msgstr "" 112 | 113 | #: cbatticon.c:255 114 | #, c-format 115 | msgid "Invalid update interval! It has been reset to default (%d seconds)\n" 116 | msgstr "" 117 | 118 | #: cbatticon.c:262 119 | #, c-format 120 | msgid "Invalid low level! It has been reset to default (%d percent)\n" 121 | msgstr "" 122 | 123 | #: cbatticon.c:267 124 | #, c-format 125 | msgid "Invalid critical level! It has been reset to default (%d percent)\n" 126 | msgstr "" 127 | 128 | #: cbatticon.c:273 129 | msgid "" 130 | "Critical level is higher than low level! They have been reset to default\n" 131 | msgstr "" 132 | 133 | #: cbatticon.c:367 cbatticon.c:402 134 | #, c-format 135 | msgid "type: %-*.*s\tid: %-*.*s\tpath: %s\n" 136 | msgstr "" 137 | 138 | #: cbatticon.c:367 139 | msgid "Battery" 140 | msgstr "" 141 | 142 | #: cbatticon.c:402 143 | msgid "AC" 144 | msgstr "" 145 | 146 | #: cbatticon.c:424 147 | #, c-format 148 | msgid "Cannot open sysfs directory: %s (%s)\n" 149 | msgstr "" 150 | 151 | #: cbatticon.c:431 152 | #, c-format 153 | msgid "No battery with suffix %s found!\n" 154 | msgstr "" 155 | 156 | #: cbatticon.c:436 157 | msgid "No battery nor AC power supply found!\n" 158 | msgstr "" 159 | 160 | #: cbatticon.c:784 cbatticon.c:786 161 | msgid "AC only, no battery!" 162 | msgstr "" 163 | 164 | #: cbatticon.c:910 165 | #, c-format 166 | msgid "Spawning low battery level command in 5 seconds: %s" 167 | msgstr "" 168 | 169 | #: cbatticon.c:915 170 | msgid "Skipping low battery level command, no longer discharging" 171 | msgstr "" 172 | 173 | #: cbatticon.c:921 cbatticon.c:923 174 | #, c-format 175 | msgid "Cannot spawn low battery level command: %s\n" 176 | msgstr "" 177 | 178 | #: cbatticon.c:928 179 | msgid "Cannot spawn low battery level command!" 180 | msgstr "" 181 | 182 | #: cbatticon.c:938 183 | #, c-format 184 | msgid "Spawning critical battery level command in 30 seconds: %s" 185 | msgstr "" 186 | 187 | #: cbatticon.c:943 188 | msgid "Skipping critical battery level command, no longer discharging" 189 | msgstr "" 190 | 191 | #: cbatticon.c:949 cbatticon.c:951 192 | #, c-format 193 | msgid "Cannot spawn critical battery level command: %s\n" 194 | msgstr "" 195 | 196 | #: cbatticon.c:956 197 | msgid "Cannot spawn critical battery level command!" 198 | msgstr "" 199 | 200 | #: cbatticon.c:971 cbatticon.c:973 201 | #, c-format 202 | msgid "Cannot spawn left click command: %s\n" 203 | msgstr "" 204 | 205 | #: cbatticon.c:978 206 | msgid "Cannot spawn left click command!" 207 | msgstr "" 208 | 209 | #: cbatticon.c:1042 210 | msgid "Battery is missing!" 211 | msgstr "" 212 | 213 | #: cbatticon.c:1046 214 | msgid "Battery status is unknown!" 215 | msgstr "" 216 | 217 | #: cbatticon.c:1050 218 | msgid "Battery is charged!" 219 | msgstr "" 220 | 221 | #: cbatticon.c:1054 222 | #, c-format 223 | msgid "Battery is discharging (%i%% remaining)" 224 | msgstr "" 225 | 226 | #: cbatticon.c:1058 227 | #, c-format 228 | msgid "Battery is not charging (%i%% remaining)" 229 | msgstr "" 230 | 231 | #: cbatticon.c:1062 232 | #, c-format 233 | msgid "Battery level is low! (%i%% remaining)" 234 | msgstr "" 235 | 236 | #: cbatticon.c:1066 237 | #, c-format 238 | msgid "Battery level is critical! (%i%% remaining)" 239 | msgstr "" 240 | 241 | #: cbatticon.c:1070 242 | #, c-format 243 | msgid "Battery is charging (%i%%)" 244 | msgstr "" 245 | 246 | #: cbatticon.c:1099 247 | #, c-format 248 | msgid "%d minute" 249 | msgid_plural "%d minutes" 250 | msgstr[0] "" 251 | msgstr[1] "" 252 | 253 | #: cbatticon.c:1100 254 | #, c-format 255 | msgid "%d hour, %s remaining" 256 | msgid_plural "%d hours, %s remaining" 257 | msgstr[0] "" 258 | msgstr[1] "" 259 | 260 | #: cbatticon.c:1102 261 | #, c-format 262 | msgid "%d minute remaining" 263 | msgid_plural "%d minutes remaining" 264 | msgstr[0] "" 265 | msgstr[1] "" 266 | -------------------------------------------------------------------------------- /de.po: -------------------------------------------------------------------------------- 1 | # German translation for cbatticon. 2 | # Copyright (C) 2015-2018 Valère Monseur 3 | # This file is distributed under the same license as the cbatticon package. 4 | # Julian Ospald , 2015. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: cbatticon 1.6.7\n" 10 | "Report-Msgid-Bugs-To: valere.monseur@ymail.com\n" 11 | "POT-Creation-Date: 2015-07-17 20:38+0200\n" 12 | "PO-Revision-Date: 2018-04-08 23:42+0100\n" 13 | "Last-Translator: Julian Ospald \n" 14 | "Language-Team: N/A\n" 15 | "Language: de\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=utf-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=2; plural=n!=1;\n" 20 | 21 | #: cbatticon.c:154 22 | msgid "Display the version" 23 | msgstr "Version anzeigen" 24 | 25 | #: cbatticon.c:155 26 | msgid "Display debug information" 27 | msgstr "Debug-Informationen anzeigen" 28 | 29 | #: cbatticon.c:156 30 | msgid "Set update interval (in seconds)" 31 | msgstr "Update-Intervall definieren (in Sekunden)" 32 | 33 | #: cbatticon.c:157 34 | msgid "Set icon type ('standard', 'notification' or 'symbolic')" 35 | msgstr "Symboltyp definieren ('standard', 'notification' oder 'symbolic')" 36 | 37 | #: cbatticon.c:158 38 | msgid "Set low battery level (in percent)" 39 | msgstr "Niedriges Batterie-Level definieren (in Prozent)" 40 | 41 | #: cbatticon.c:159 42 | msgid "Set critical battery level (in percent)" 43 | msgstr "Kritisches Batterie-Level definieren (in Prozent)" 44 | 45 | #: cbatticon.c:160 46 | msgid "Command to execute when critical battery level is reached" 47 | msgstr "Auszuführender Befehl bei kritischem Batterie-Level" 48 | 49 | #: cbatticon.c:161 50 | msgid "Command to execute when left clicking on tray icon" 51 | msgstr "Auszuführender Befehl bei Linksklick auf das Tray-Symbol" 52 | 53 | #: cbatticon.c:163 54 | msgid "Hide the notification popups" 55 | msgstr "Benachrichtigungsfenster nicht anzeigen" 56 | 57 | #: cbatticon.c:165 58 | msgid "List available icon types" 59 | msgstr "Verfügbare Symboltypen auflisten" 60 | 61 | #: cbatticon.c:166 62 | msgid "List available power supplies (battery and AC)" 63 | msgstr "Verfügbare Stromversorgungsgeräte auflisten (Batterie und AC)" 64 | 65 | #: cbatticon.c:170 66 | msgid "[BATTERY ID]" 67 | msgstr "[BATTERIE ID]" 68 | 69 | #: cbatticon.c:174 70 | #, c-format 71 | msgid "Cannot parse command line arguments: %s\n" 72 | msgstr "Kann Kommandozeilen-Argumente nicht parsen: %s\n" 73 | 74 | #: cbatticon.c:185 75 | msgid "" 76 | "cbatticon: a lightweight and fast battery icon that sits in your system " 77 | "tray\n" 78 | msgstr "" 79 | "cbatticon: ein leichtgewichtiges und schnelles Batteriesymbol, das in der " 80 | "System-Tray sitzt\n" 81 | 82 | #: cbatticon.c:186 83 | #, c-format 84 | msgid "version %s\n" 85 | msgstr "Version %s\n" 86 | 87 | #: cbatticon.c:194 88 | msgid "List of available power supplies:\n" 89 | msgstr "Verfügbare Stromversorgungsgeräte auflisten:\n" 90 | 91 | #: cbatticon.c:209 92 | msgid "List of available icon types:\n" 93 | msgstr "Verfügbare Symboltypen auflisten:\n" 94 | 95 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 96 | msgid "available" 97 | msgstr "verfügbar" 98 | 99 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 cbatticon.c:540 100 | #: cbatticon.c:548 cbatticon.c:570 101 | msgid "unavailable" 102 | msgstr "nicht verfügbar" 103 | 104 | #: cbatticon.c:226 105 | #, c-format 106 | msgid "Unknown icon type: %s\n" 107 | msgstr "Unbekannter Symboltyp: %s\n" 108 | 109 | #: cbatticon.c:238 110 | msgid "No icon type found!\n" 111 | msgstr "Kein Symboltyp gefunden!\n" 112 | 113 | #: cbatticon.c:245 114 | #, c-format 115 | msgid "Invalid update interval! It has been reset to default (%d seconds)\n" 116 | msgstr "" 117 | "Ungültiges Update-Intervall! Wird auf Voreinstellung zurückgesetzt (%d " 118 | "Sekunden)\n" 119 | 120 | #: cbatticon.c:252 121 | #, c-format 122 | msgid "Invalid low level! It has been reset to default (%d percent)\n" 123 | msgstr "" 124 | "Ungültige Einstellung für niedrigen Batteriestand! Wird auf Voreinstellung " 125 | "zurückgesetzt (%d Prozent)\n" 126 | 127 | #: cbatticon.c:257 128 | #, c-format 129 | msgid "Invalid critical level! It has been reset to default (%d percent)\n" 130 | msgstr "" 131 | "Ungültige Einstellung für kritischen Batteriestand! Wird auf Voreinstellung " 132 | "zurückgesetzt (%d Prozent)\n" 133 | 134 | #: cbatticon.c:263 135 | msgid "" 136 | "Critical level is higher than low level! They have been reset to default\n" 137 | msgstr "" 138 | "Einstellung für kritischen Batteriestand ist höher als für niedrigen. Beide " 139 | "werden auf die Voreinstellungen zurückgesetzt\n" 140 | 141 | #: cbatticon.c:294 cbatticon.c:326 142 | #, c-format 143 | msgid "type: %-*.*s\tid: %-*.*s\tpath: %s\n" 144 | msgstr "Typ: %-*.*s\tID: %-*.*s\tPfad: %s\n" 145 | 146 | #: cbatticon.c:294 147 | msgid "Battery" 148 | msgstr "Batterie" 149 | 150 | #: cbatticon.c:326 151 | msgid "AC" 152 | msgstr "AC" 153 | 154 | #: cbatticon.c:348 155 | #, c-format 156 | msgid "Cannot open sysfs directory: %s (%s)\n" 157 | msgstr "Kann sysfs Ordner nicht öffnen: %s (%s)\n" 158 | 159 | #: cbatticon.c:355 160 | #, c-format 161 | msgid "No battery with suffix %s found!\n" 162 | msgstr "Keine Batterie mit Suffix %s gefunden!\n" 163 | 164 | #: cbatticon.c:360 165 | msgid "No battery nor AC power supply found!\n" 166 | msgstr "Keine Batterie oder AC Stromversorgung gefunden!\n" 167 | 168 | #: cbatticon.c:672 cbatticon.c:675 169 | msgid "AC only, no battery!" 170 | msgstr "Nur AC, keine Batterie!" 171 | 172 | #: cbatticon.c:793 173 | #, c-format 174 | msgid "Spawning critical battery level command in 30 seconds: %s" 175 | msgstr "" 176 | "Befehl für kritischen Batteriezustand wird in 30 Sekunden aufgerufen: %s" 177 | 178 | #: cbatticon.c:797 179 | #, c-format 180 | msgid "Cannot spawn critical battery level command: %s\n" 181 | msgstr "Kann Befehl für kritischen Batteriezustand nicht aufrufen: %s\n" 182 | 183 | #: cbatticon.c:800 184 | msgid "Cannot spawn critical battery level command!" 185 | msgstr "Kann Befehl für kritischen Batteriezustand nicht aufrufen!" 186 | 187 | #: cbatticon.c:817 188 | #, c-format 189 | msgid "Cannot spawn left click command: %s\n" 190 | msgstr "Kann Befehl für Linksklick nicht aufrufen: %s\n" 191 | 192 | #: cbatticon.c:820 193 | msgid "Cannot spawn left click command!" 194 | msgstr "Kann Befehl für Linksklick nicht aufrufen!" 195 | 196 | #: cbatticon.c:884 197 | msgid "Battery is missing!" 198 | msgstr "Batterie fehlt!" 199 | 200 | #: cbatticon.c:888 201 | msgid "Battery status is unknown!" 202 | msgstr "Batteriezustand unbekannt!" 203 | 204 | #: cbatticon.c:892 205 | msgid "Battery is charged!" 206 | msgstr "Batterie ist vollständig aufgeladen!" 207 | 208 | #: cbatticon.c:896 209 | msgid "Battery is discharging (%i%% remaining)" 210 | msgstr "Batterie entlädt (%i%% verbleibend)" 211 | 212 | #: cbatticon.c:900 213 | msgid "Battery is not charging (%i%% remaining)" 214 | msgstr "Batterie lädt nicht auf (%i%% verbleibend)" 215 | 216 | #: cbatticon.c:904 217 | msgid "Battery level is low! (%i%% remaining)" 218 | msgstr "Batteriezustand niedrig! (%i%% verbleibend)" 219 | 220 | #: cbatticon.c:908 221 | msgid "Battery level is critical! (%i%% remaining)" 222 | msgstr "Batteriezustand kritisch! (%i%% verbleibend)" 223 | 224 | #: cbatticon.c:912 225 | msgid "Battery is charging (%i%%)" 226 | msgstr "Batterie lädt auf (%i%%)" 227 | 228 | #: cbatticon.c:941 229 | msgid "%d minute" 230 | msgid_plural "%d minutes" 231 | msgstr[0] "%d Minute" 232 | msgstr[1] "%d Minuten" 233 | 234 | #: cbatticon.c:942 235 | msgid "%d hour, %s remaining" 236 | msgid_plural "%d hours, %s remaining" 237 | msgstr[0] "%d Stunde, %s verbleibend" 238 | msgstr[1] "%d Stunden, %s verbleibend" 239 | 240 | #: cbatticon.c:944 241 | msgid "%d minute remaining" 242 | msgid_plural "%d minutes remaining" 243 | msgstr[0] "%d Minute verbleibend" 244 | msgstr[1] "%d Minuten verbleibend" 245 | -------------------------------------------------------------------------------- /el.po: -------------------------------------------------------------------------------- 1 | # Greek translation for cbatticon. 2 | # Copyright (C) 2015-2018 Valère Monseur 3 | # This file is distributed under the same license as the cbatticon package. 4 | # Valère Monseur , 2016. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: cbatticon 1.6.7\n" 9 | "Report-Msgid-Bugs-To: valere.monseur@ymail.com\n" 10 | "POT-Creation-Date: 2015-12-13 22:28+0100\n" 11 | "PO-Revision-Date: 2018-04-08 23:41+0100\n" 12 | "Last-Translator: George Vlahavas \n" 13 | "Language-Team: N/A\n" 14 | "Language: Greek\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=utf-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=(n!= 1);\n" 19 | 20 | #: cbatticon.c:154 21 | msgid "Display the version" 22 | msgstr "Εμφάνιση έκδοσης" 23 | 24 | #: cbatticon.c:155 25 | msgid "Display debug information" 26 | msgstr "Εμφάνιση πληροφοριών αποσφαλμάτωσης" 27 | 28 | #: cbatticon.c:156 29 | msgid "Set update interval (in seconds)" 30 | msgstr "Ορισμός του διαστήματος ενημέρωσης (δευτερόλεπτα)" 31 | 32 | #: cbatticon.c:157 33 | msgid "Set icon type ('standard', 'notification' or 'symbolic')" 34 | msgstr "Ορισμός του τύπου εικονιδίου ('standard', 'notification' ή 'symbolic')" 35 | 36 | #: cbatticon.c:158 37 | msgid "Set low battery level (in percent)" 38 | msgstr "Ορισμός χαμηλού επιπέδου μπαταρίας (%%)" 39 | 40 | #: cbatticon.c:159 41 | msgid "Set critical battery level (in percent)" 42 | msgstr "Ορισμός κρίσιμου επιπέδου μπαταρίας (%%)" 43 | 44 | #: cbatticon.c:160 45 | msgid "Command to execute when critical battery level is reached" 46 | msgstr "" 47 | "Εντολή που θα εκτελείται όταν η φόρτιση της μπαταρίας πέσει στο κρίσιμο " 48 | "επίπεδο" 49 | 50 | #: cbatticon.c:161 51 | msgid "Command to execute when left clicking on tray icon" 52 | msgstr "Εντολή που θα εκτελείται όταν γίνεται αριστερό κλίκ στο εικονίδιο" 53 | 54 | #: cbatticon.c:163 55 | msgid "Hide the notification popups" 56 | msgstr "Απόκρυψη των αναδυόμενων παραθύρων ενημέρωσης" 57 | 58 | #: cbatticon.c:165 59 | msgid "List available icon types" 60 | msgstr "Εμφάνιση διαθέσιμων τύπων εικονιδίου" 61 | 62 | #: cbatticon.c:166 63 | msgid "List available power supplies (battery and AC)" 64 | msgstr "Εμφάνιση διαθέσιμων πηγών ενέργειας (μπαταρία ή AC)" 65 | 66 | #: cbatticon.c:170 67 | msgid "[BATTERY ID]" 68 | msgstr "[ΚΩΔΙΚΟΣ ΜΠΑΤΑΡΙΑΣ]" 69 | 70 | #: cbatticon.c:174 71 | #, c-format 72 | msgid "Cannot parse command line arguments: %s\n" 73 | msgstr "Δεν μπορεί να γίνει ανάγνωση των παραμέτρων: %s\n" 74 | 75 | #: cbatticon.c:185 76 | msgid "" 77 | "cbatticon: a lightweight and fast battery icon that sits in your system " 78 | "tray\n" 79 | msgstr "" 80 | "cbatticon: ένα ελαφρύ και γρήγορο εικονίδιο για την περιοχή ειδοποίησης\n" 81 | 82 | #: cbatticon.c:186 83 | #, c-format 84 | msgid "version %s\n" 85 | msgstr "έκδοση %s\n" 86 | 87 | #: cbatticon.c:194 88 | msgid "List of available power supplies:\n" 89 | msgstr "Λίστα διαθέσιμων πηγών ενέργειας:\n" 90 | 91 | #: cbatticon.c:209 92 | msgid "List of available icon types:\n" 93 | msgstr "Λίστα διαθέσιμων τύπων εικονιδίου:\n" 94 | 95 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 96 | msgid "available" 97 | msgstr "διαθέσιμο" 98 | 99 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 cbatticon.c:540 100 | #: cbatticon.c:548 cbatticon.c:570 101 | msgid "unavailable" 102 | msgstr "μη διαθέσιμο" 103 | 104 | #: cbatticon.c:226 105 | #, c-format 106 | msgid "Unknown icon type: %s\n" 107 | msgstr "Άγνωστος τύπος εικονιδίου: %s\n" 108 | 109 | #: cbatticon.c:238 110 | msgid "No icon type found!\n" 111 | msgstr "Δεν βρέθηκε κανένας τύπος εικονιδίου!\n" 112 | 113 | #: cbatticon.c:245 114 | #, c-format 115 | msgid "Invalid update interval! It has been reset to default (%d seconds)\n" 116 | msgstr "" 117 | "Μη έγκυρο διάστημα ανανέωσης! Ρυθμίστηκε στην αρχική τιμή (%d δευτερόλεπτα)\n" 118 | 119 | #: cbatticon.c:252 120 | #, c-format 121 | msgid "Invalid low level! It has been reset to default (%d percent)\n" 122 | msgstr "" 123 | "Μη έγκυρο χαμηλό επίπεδο μπαταρίας! Ρυθμίστηκε στην αρχική τιμή (%d %%)\n" 124 | 125 | #: cbatticon.c:257 126 | #, c-format 127 | msgid "Invalid critical level! It has been reset to default (%d percent)\n" 128 | msgstr "" 129 | "Μη έγκυρο κρίσιμο επίπεδο μπαταρίας! Ρυθμίστηκε στην αρχική τιμή (%d %%)\n" 130 | 131 | #: cbatticon.c:263 132 | msgid "" 133 | "Critical level is higher than low level! They have been reset to default\n" 134 | msgstr "" 135 | "Το κρίσιμο επίπεδο είναι υψηλότερο του χαμηλού επιπέδου! Ρυθμίστηκαν στις " 136 | "αρχικές τους τιμές\n" 137 | 138 | #: cbatticon.c:294 cbatticon.c:326 139 | #, c-format 140 | msgid "type: %-*.*s\tid: %-*.*s\tpath: %s\n" 141 | msgstr "τύπος: %-*.*s\tid: %-*.*s\tδιαδρομή: %s\n" 142 | 143 | #: cbatticon.c:294 144 | msgid "Battery" 145 | msgstr "Μπαταρία" 146 | 147 | #: cbatticon.c:326 148 | msgid "AC" 149 | msgstr "Ρεύμα" 150 | 151 | #: cbatticon.c:348 152 | #, c-format 153 | msgid "Cannot open sysfs directory: %s (%s)\n" 154 | msgstr "Δεν μπορεί να γίνει ανάγνωση του καταλόγου sysfs: %s (%s)\n" 155 | 156 | #: cbatticon.c:355 157 | #, c-format 158 | msgid "No battery with suffix %s found!\n" 159 | msgstr "Δεν υπάρχει μπαταρία το όνομα της οποίας να τελειώνει με %s\n" 160 | 161 | #: cbatticon.c:360 162 | msgid "No battery nor AC power supply found!\n" 163 | msgstr "Δεν βρέθηκα μπαταρία ή παροχή ρευματός!\n" 164 | 165 | #: cbatticon.c:672 cbatticon.c:675 166 | msgid "AC only, no battery!" 167 | msgstr "Μόνο ρεύμα, καμία μπαταρία!" 168 | 169 | #: cbatticon.c:793 170 | #, c-format 171 | msgid "Spawning critical battery level command in 30 seconds: %s" 172 | msgstr "Εκτέλεση της εντολής κρίσιμης στάθμης μπαταρίας σε 30 δευτερόλεπτα: %s" 173 | 174 | #: cbatticon.c:797 175 | #, c-format 176 | msgid "Cannot spawn critical battery level command: %s\n" 177 | msgstr "Δεν ήταν δυνατή η εκτέλεση της εντολής κρίσιμης στάθμης: %s\n" 178 | 179 | #: cbatticon.c:800 180 | msgid "Cannot spawn critical battery level command!" 181 | msgstr "Δεν ήταν δυνατή η εκτέλεση της εντολής κρίσιμης στάθμης!" 182 | 183 | #: cbatticon.c:817 184 | #, c-format 185 | msgid "Cannot spawn left click command: %s\n" 186 | msgstr "Δεν ήταν δυνατή η εκτέλεση της εντολής αριστερού κλίκ: %s\n" 187 | 188 | #: cbatticon.c:820 189 | msgid "Cannot spawn left click command!" 190 | msgstr "Δεν ήταν δυνατή η εκτέλεση της εντολής αριστερού κλίκ!" 191 | 192 | #: cbatticon.c:884 193 | msgid "Battery is missing!" 194 | msgstr "Η μπαταρία λείπει!" 195 | 196 | #: cbatticon.c:888 197 | msgid "Battery status is unknown!" 198 | msgstr "Η κατάσταση της μπαταρίας είναι άγνωστη!" 199 | 200 | #: cbatticon.c:892 201 | msgid "Battery is charged!" 202 | msgstr "Η μπαταρία είναι πλήρως φορτισμένη!" 203 | 204 | #: cbatticon.c:896 205 | #, c-format 206 | msgid "Battery is discharging (%i%% remaining)" 207 | msgstr "Η μπαταρία αποφορτίζεται (%i%% απομένει)" 208 | 209 | #: cbatticon.c:900 210 | #, c-format 211 | msgid "Battery is not charging (%i%% remaining)" 212 | msgstr "Η μπαταρία δεν φορτίζεται (%i%% απομένει)" 213 | 214 | #: cbatticon.c:904 215 | #, c-format 216 | msgid "Battery level is low! (%i%% remaining)" 217 | msgstr "Η στάθμη της μπαταρίας είναι χαμηλή! (%i%% απομένει)" 218 | 219 | #: cbatticon.c:908 220 | #, c-format 221 | msgid "Battery level is critical! (%i%% remaining)" 222 | msgstr "Η στάθμη της μπαταρίας είναι εξαιρετικά χαμηλή! (%i%% απομένει)" 223 | 224 | #: cbatticon.c:912 225 | #, c-format 226 | msgid "Battery is charging (%i%%)" 227 | msgstr "Η μπαταρία φορτίζει (%i%%)" 228 | 229 | #: cbatticon.c:941 230 | #, c-format 231 | msgid "%d minute" 232 | msgid_plural "%d minutes" 233 | msgstr[0] "%d λεπτό" 234 | msgstr[1] "%d λεπτά" 235 | 236 | #: cbatticon.c:942 237 | #, c-format 238 | msgid "%d hour, %s remaining" 239 | msgid_plural "%d hours, %s remaining" 240 | msgstr[0] "%d ώρα, %s απομένει" 241 | msgstr[1] "%d ώρες, %s λεπτά απομένουν" 242 | 243 | #: cbatticon.c:944 244 | #, c-format 245 | msgid "%d minute remaining" 246 | msgid_plural "%d minutes remaining" 247 | msgstr[0] "%d λεπτό απομένει" 248 | msgstr[1] "%d λεπτά απομένουν" 249 | -------------------------------------------------------------------------------- /es.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2015-2018 Valère Monseur 2 | # This file is distributed under the same license as the cbatticon package. 3 | # Valère Monseur , 2015. 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: cbatticon 1.6.7\n" 8 | "Report-Msgid-Bugs-To: valere.monseur@ymail.com\n" 9 | "POT-Creation-Date: 2015-12-13 22:28+0100\n" 10 | "PO-Revision-Date: 2022-02-08 08:33+0000\n" 11 | "Language-Team: \n" 12 | "MIME-Version: 1.0\n" 13 | "Content-Type: text/plain; charset=UTF-8\n" 14 | "Content-Transfer-Encoding: 8bit\n" 15 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 16 | "X-Generator: Poedit 2.4.2\n" 17 | "Last-Translator: Mauricio Luis de Medeiros \n" 18 | "Language: es\n" 19 | 20 | #: cbatticon.c:154 21 | msgid "Display the version" 22 | msgstr "Mostrar la versión" 23 | 24 | #: cbatticon.c:155 25 | msgid "Display debug information" 26 | msgstr "Mostrar información de depuración" 27 | 28 | #: cbatticon.c:156 29 | msgid "Set update interval (in seconds)" 30 | msgstr "Establecer intervalo de actualización (en segundos)" 31 | 32 | #: cbatticon.c:157 33 | msgid "Set icon type ('standard', 'notification' or 'symbolic')" 34 | msgstr "Establecer tipo de icono ('estándar', 'notificación' o 'simbólico')" 35 | 36 | #: cbatticon.c:158 37 | msgid "Set low battery level (in percent)" 38 | msgstr "Establecer nivel de batería bajo (en porcentaje)" 39 | 40 | #: cbatticon.c:159 41 | msgid "Set critical battery level (in percent)" 42 | msgstr "Establecer el nivel crítico de la batería (en porcentaje)" 43 | 44 | #: cbatticon.c:160 45 | msgid "Command to execute when critical battery level is reached" 46 | msgstr "Comando a ejecutar cuando se alcanza el nivel crítico de batería" 47 | 48 | #: cbatticon.c:161 49 | msgid "Command to execute when left clicking on tray icon" 50 | msgstr "" 51 | "Comando a ejecutar al hacer clic con el botón izquierdo en el icono de la " 52 | "bandeja" 53 | 54 | #: cbatticon.c:163 55 | msgid "Hide the notification popups" 56 | msgstr "Ocultar las ventanas emergentes de notificación" 57 | 58 | #: cbatticon.c:165 59 | msgid "List available icon types" 60 | msgstr "Lista de tipos de iconos disponibles" 61 | 62 | #: cbatticon.c:166 63 | msgid "List available power supplies (battery and AC)" 64 | msgstr "Lista de fuentes de alimentación disponibles (batería y CA)" 65 | 66 | #: cbatticon.c:170 67 | msgid "[BATTERY ID]" 68 | msgstr "[ID DE BATERÍA]" 69 | 70 | #: cbatticon.c:174 71 | #, c-format 72 | msgid "Cannot parse command line arguments: %s\n" 73 | msgstr "No se pueden analizar los argumentos de la línea de comando: %s\n" 74 | 75 | #: cbatticon.c:185 76 | msgid "" 77 | "cbatticon: a lightweight and fast battery icon that sits in your system tray\n" 78 | msgstr "" 79 | "cbaticon: un ícono de batería liviano y rápido que se encuentra en la bandeja " 80 | "del sistema\n" 81 | 82 | #: cbatticon.c:186 83 | #, c-format 84 | msgid "version %s\n" 85 | msgstr "versión %s\n" 86 | 87 | #: cbatticon.c:194 88 | msgid "List of available power supplies:\n" 89 | msgstr "Lista de fuentes de alimentación disponibles:\n" 90 | 91 | #: cbatticon.c:209 92 | msgid "List of available icon types:\n" 93 | msgstr "Lista de tipos de iconos disponibles:\n" 94 | 95 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 96 | msgid "available" 97 | msgstr "disponible" 98 | 99 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 cbatticon.c:540 100 | #: cbatticon.c:548 cbatticon.c:570 101 | msgid "unavailable" 102 | msgstr "indisponible" 103 | 104 | #: cbatticon.c:226 105 | #, c-format 106 | msgid "Unknown icon type: %s\n" 107 | msgstr "Tipo de icono desconocido: %s\n" 108 | 109 | #: cbatticon.c:238 110 | msgid "No icon type found!\n" 111 | msgstr "¡No se ha encontrado ningún tipo de icono!\n" 112 | 113 | #: cbatticon.c:245 114 | #, c-format 115 | msgid "Invalid update interval! It has been reset to default (%d seconds)\n" 116 | msgstr "" 117 | "¡Intervalo de actualización no válido! Se ha restablecido a los valores " 118 | "predeterminados (%d segundos)\n" 119 | 120 | #: cbatticon.c:252 121 | #, c-format 122 | msgid "Invalid low level! It has been reset to default (%d percent)\n" 123 | msgstr "" 124 | "¡Nivel bajo no válido! Se ha restablecido a los valores predeterminados (%d " 125 | "por ciento)\n" 126 | 127 | #: cbatticon.c:257 128 | #, c-format 129 | msgid "Invalid critical level! It has been reset to default (%d percent)\n" 130 | msgstr "" 131 | "¡Nivel crítico no válido! Se ha restablecido a los valores predeterminados " 132 | "(%d por ciento)\n" 133 | 134 | #: cbatticon.c:263 135 | msgid "" 136 | "Critical level is higher than low level! They have been reset to default\n" 137 | msgstr "" 138 | "¡El nivel crítico es más alto que el nivel bajo! Se han restablecido a los " 139 | "valores predeterminados.\n" 140 | 141 | #: cbatticon.c:294 cbatticon.c:326 142 | #, c-format 143 | msgid "type: %-*.*s\tid: %-*.*s\tpath: %s\n" 144 | msgstr "tipo: %-*.*s \tid: %-*.*s \truta: %s\n" 145 | 146 | #: cbatticon.c:294 147 | msgid "Battery" 148 | msgstr "Batería" 149 | 150 | #: cbatticon.c:326 151 | msgid "AC" 152 | msgstr "Fuente de alimentación" 153 | 154 | #: cbatticon.c:348 155 | #, c-format 156 | msgid "Cannot open sysfs directory: %s (%s)\n" 157 | msgstr "Imposible abrir el directorio sysfs: %s (%s)\n" 158 | 159 | #: cbatticon.c:355 160 | #, c-format 161 | msgid "No battery with suffix %s found!\n" 162 | msgstr "¡No se encontró ninguna batería con el sufijo %s!\n" 163 | 164 | #: cbatticon.c:360 165 | msgid "No battery nor AC power supply found!\n" 166 | msgstr "¡No se ha encontrado ninguna batería ni fuente de alimentación!\n" 167 | 168 | #: cbatticon.c:672 cbatticon.c:675 169 | msgid "AC only, no battery!" 170 | msgstr "¡Solo fuente de alimentación, sin batería!" 171 | 172 | #: cbatticon.c:793 173 | #, c-format 174 | msgid "Spawning critical battery level command in 30 seconds: %s" 175 | msgstr "Generación de comando de nivel de batería crítico en 30 segundos: %s" 176 | 177 | #: cbatticon.c:797 178 | #, c-format 179 | msgid "Cannot spawn critical battery level command: %s\n" 180 | msgstr "No se puede generar el comando de nivel de batería crítico: %s\n" 181 | 182 | #: cbatticon.c:800 183 | msgid "Cannot spawn critical battery level command!" 184 | msgstr "¡No se puede generar un comando de nivel de batería crítico!" 185 | 186 | #: cbatticon.c:817 187 | #, c-format 188 | msgid "Cannot spawn left click command: %s\n" 189 | msgstr "No se puede generar el comando de clic izquierdo: %s\n" 190 | 191 | #: cbatticon.c:820 192 | msgid "Cannot spawn left click command!" 193 | msgstr "¡No se puede generar el comando de clic izquierdo!" 194 | 195 | #: cbatticon.c:884 196 | msgid "Battery is missing!" 197 | msgstr "¡Falta la batería!" 198 | 199 | #: cbatticon.c:888 200 | msgid "Battery status is unknown!" 201 | msgstr "¡Se desconoce el estado de la batería!" 202 | 203 | #: cbatticon.c:892 204 | msgid "Battery is charged!" 205 | msgstr "¡La batería está cargada!" 206 | 207 | #: cbatticon.c:896 208 | #, c-format 209 | msgid "Battery is discharging (%i%% remaining)" 210 | msgstr "La batería se está descargando (%i%% restante)" 211 | 212 | #: cbatticon.c:900 213 | #, c-format 214 | msgid "Battery is not charging (%i%% remaining)" 215 | msgstr "La batería no se está cargando (%i%% restante)" 216 | 217 | #: cbatticon.c:904 218 | #, c-format 219 | msgid "Battery level is low! (%i%% remaining)" 220 | msgstr "¡El nivel de la batería es bajo! (%i%% restante)" 221 | 222 | #: cbatticon.c:908 223 | #, c-format 224 | msgid "Battery level is critical! (%i%% remaining)" 225 | msgstr "¡El nivel de la batería es crítico! (%i%% restante)" 226 | 227 | #: cbatticon.c:912 228 | #, c-format 229 | msgid "Battery is charging (%i%%)" 230 | msgstr "La batería se está cargando (%i%%)" 231 | 232 | #: cbatticon.c:941 233 | #, c-format 234 | msgid "%d minute" 235 | msgid_plural "%d minutes" 236 | msgstr[0] "%d minuto" 237 | msgstr[1] "%d minutos" 238 | 239 | #: cbatticon.c:942 240 | #, c-format 241 | msgid "%d hour, %s remaining" 242 | msgid_plural "%d hours, %s remaining" 243 | msgstr[0] "%d hora, quedan %s" 244 | msgstr[1] "%d horas, quedan %s" 245 | 246 | #: cbatticon.c:944 247 | #, c-format 248 | msgid "%d minute remaining" 249 | msgid_plural "%d minutes remaining" 250 | msgstr[0] "%d minuto quedan" 251 | msgstr[1] "%d minutos quedan" 252 | -------------------------------------------------------------------------------- /fr.po: -------------------------------------------------------------------------------- 1 | # French translation for cbatticon. 2 | # Copyright (C) 2015-2018 Valère Monseur 3 | # This file is distributed under the same license as the cbatticon package. 4 | # Valère Monseur , 2015. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: cbatticon 1.6.7\n" 10 | "Report-Msgid-Bugs-To: valere.monseur@ymail.com\n" 11 | "POT-Creation-Date: 2015-07-17 20:38+0200\n" 12 | "PO-Revision-Date: 2018-04-08 23:40+0100\n" 13 | "Last-Translator: Valère Monseur \n" 14 | "Language-Team: N/A\n" 15 | "Language: fr\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=utf-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=2; plural=n>1;\n" 20 | 21 | #: cbatticon.c:154 22 | msgid "Display the version" 23 | msgstr "Afficher la version" 24 | 25 | #: cbatticon.c:155 26 | msgid "Display debug information" 27 | msgstr "Afficher les informations de débogage" 28 | 29 | #: cbatticon.c:156 30 | msgid "Set update interval (in seconds)" 31 | msgstr "Définir la fréquence de rafraichissement (en secondes)" 32 | 33 | #: cbatticon.c:157 34 | msgid "Set icon type ('standard', 'notification' or 'symbolic')" 35 | msgstr "Définir le type d'icône ('standard', 'notification' ou 'symbolic')" 36 | 37 | #: cbatticon.c:158 38 | msgid "Set low battery level (in percent)" 39 | msgstr "Définir le niveau de charge basse (en pourcent)" 40 | 41 | #: cbatticon.c:159 42 | msgid "Set critical battery level (in percent)" 43 | msgstr "Définir le niveau de charge critique (en pourcent)" 44 | 45 | #: cbatticon.c:160 46 | msgid "Command to execute when critical battery level is reached" 47 | msgstr "" 48 | "Commande à exécuter lorsque le niveau critique de la batterie est atteint" 49 | 50 | #: cbatticon.c:161 51 | msgid "Command to execute when left clicking on tray icon" 52 | msgstr "" 53 | "Commande à exécuter lors d'un clic gauche sur l'icône de la barre d'état " 54 | "système" 55 | 56 | #: cbatticon.c:163 57 | msgid "Hide the notification popups" 58 | msgstr "Cacher les fenêtres popups de notification" 59 | 60 | #: cbatticon.c:165 61 | msgid "List available icon types" 62 | msgstr "Lister les types d'icônes disponibles" 63 | 64 | #: cbatticon.c:166 65 | msgid "List available power supplies (battery and AC)" 66 | msgstr "Lister les alimentations disponibles (batterie et secteur)" 67 | 68 | #: cbatticon.c:170 69 | msgid "[BATTERY ID]" 70 | msgstr "[ID BATTERIE]" 71 | 72 | #: cbatticon.c:174 73 | #, c-format 74 | msgid "Cannot parse command line arguments: %s\n" 75 | msgstr "Impossible d'analyser les paramètres de la ligne de commande: %s\n" 76 | 77 | #: cbatticon.c:185 78 | msgid "" 79 | "cbatticon: a lightweight and fast battery icon that sits in your system " 80 | "tray\n" 81 | msgstr "" 82 | "cbatticon: une icône d'affichage de la batterie, légère et rapide, visible " 83 | "dans la barre d'état système\n" 84 | 85 | #: cbatticon.c:186 86 | #, c-format 87 | msgid "version %s\n" 88 | msgstr "version %s\n" 89 | 90 | #: cbatticon.c:194 91 | msgid "List of available power supplies:\n" 92 | msgstr "Liste des alimentations disponibles:\n" 93 | 94 | #: cbatticon.c:209 95 | msgid "List of available icon types:\n" 96 | msgstr "Liste des types d'icônes disponibles:\n" 97 | 98 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 99 | msgid "available" 100 | msgstr "disponible" 101 | 102 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 cbatticon.c:540 103 | #: cbatticon.c:548 cbatticon.c:570 104 | msgid "unavailable" 105 | msgstr "non disponible" 106 | 107 | #: cbatticon.c:226 108 | #, c-format 109 | msgid "Unknown icon type: %s\n" 110 | msgstr "Le type d'icône: %s est inconnu\n" 111 | 112 | #: cbatticon.c:238 113 | msgid "No icon type found!\n" 114 | msgstr "Aucun type d'icône n'a été trouvé!\n" 115 | 116 | #: cbatticon.c:245 117 | #, c-format 118 | msgid "Invalid update interval! It has been reset to default (%d seconds)\n" 119 | msgstr "" 120 | "La fréquence de rafraichissement est invalide! Elle a été réinitialisée à la " 121 | "valeur par défaut (%d secondes)\n" 122 | 123 | #: cbatticon.c:252 124 | #, c-format 125 | msgid "Invalid low level! It has been reset to default (%d percent)\n" 126 | msgstr "" 127 | "Le niveau de charge basse est invalide! Il a été réinitialisé à la valeur " 128 | "par défaut (%d pourcents)\n" 129 | 130 | #: cbatticon.c:257 131 | #, c-format 132 | msgid "Invalid critical level! It has been reset to default (%d percent)\n" 133 | msgstr "" 134 | "Le niveau de charge critique est invalide! Il a été réinitialisé à la valeur " 135 | "par défaut (%d pourcents)\n" 136 | 137 | #: cbatticon.c:263 138 | msgid "" 139 | "Critical level is higher than low level! They have been reset to default\n" 140 | msgstr "" 141 | "Le niveau de charge critique est plus grand que le niveau de charge basse! " 142 | "Ils ont été réinitialisés à leurs valeurs par défaut\n" 143 | 144 | #: cbatticon.c:294 cbatticon.c:326 145 | #, c-format 146 | msgid "type: %-*.*s\tid: %-*.*s\tpath: %s\n" 147 | msgstr "type: %-*.*s\tid: %-*.*s\tchemin d'accès: %s\n" 148 | 149 | #: cbatticon.c:294 150 | msgid "Battery" 151 | msgstr "Batterie" 152 | 153 | #: cbatticon.c:326 154 | msgid "AC" 155 | msgstr "Secteur" 156 | 157 | #: cbatticon.c:348 158 | #, c-format 159 | msgid "Cannot open sysfs directory: %s (%s)\n" 160 | msgstr "Impossible d'ouvrir le répertoire sysfs: %s (%s)\n" 161 | 162 | #: cbatticon.c:355 163 | #, c-format 164 | msgid "No battery with suffix %s found!\n" 165 | msgstr "Aucune batterie avec le suffixe %s n'a été trouvée!\n" 166 | 167 | #: cbatticon.c:360 168 | msgid "No battery nor AC power supply found!\n" 169 | msgstr "Aucune alimentation (secteur ou batterie) n'a été trouvée!\n" 170 | 171 | #: cbatticon.c:672 cbatticon.c:675 172 | msgid "AC only, no battery!" 173 | msgstr "Secteur branché, pas de batterie!" 174 | 175 | #: cbatticon.c:793 176 | #, c-format 177 | msgid "Spawning critical battery level command in 30 seconds: %s" 178 | msgstr "" 179 | "Exécution de la commande de niveau critique de la batterie dans 30 secondes: " 180 | "%s" 181 | 182 | #: cbatticon.c:797 183 | #, c-format 184 | msgid "Cannot spawn critical battery level command: %s\n" 185 | msgstr "" 186 | "Impossible d'exécuter la commande de niveau critique de la batterie: %s\n" 187 | 188 | #: cbatticon.c:800 189 | msgid "Cannot spawn critical battery level command!" 190 | msgstr "Impossible d'exécuter la commande de niveau critique de la batterie!" 191 | 192 | #: cbatticon.c:817 193 | #, c-format 194 | msgid "Cannot spawn left click command: %s\n" 195 | msgstr "Impossible d'exécuter la commande de clic gauche: %s\n" 196 | 197 | #: cbatticon.c:820 198 | msgid "Cannot spawn left click command!" 199 | msgstr "Impossible d'exécuter la commande de clic gauche!" 200 | 201 | #: cbatticon.c:884 202 | msgid "Battery is missing!" 203 | msgstr "La batterie est absente!" 204 | 205 | #: cbatticon.c:888 206 | msgid "Battery status is unknown!" 207 | msgstr "Le statut de la batterie est inconnu!" 208 | 209 | #: cbatticon.c:892 210 | msgid "Battery is charged!" 211 | msgstr "La batterie est chargée!" 212 | 213 | #: cbatticon.c:896 214 | msgid "Battery is discharging (%i%% remaining)" 215 | msgstr "Batterie en décharge (%i%% restant)" 216 | 217 | #: cbatticon.c:900 218 | msgid "Battery is not charging (%i%% remaining)" 219 | msgstr "La batterie ne se charge pas (%i%% restant)" 220 | 221 | #: cbatticon.c:904 222 | msgid "Battery level is low! (%i%% remaining)" 223 | msgstr "Le niveau de la batterie est bas! (%i%% restant)" 224 | 225 | #: cbatticon.c:908 226 | msgid "Battery level is critical! (%i%% remaining)" 227 | msgstr "Le niveau de la batterie est critique! (%i%% restant)" 228 | 229 | #: cbatticon.c:912 230 | msgid "Battery is charging (%i%%)" 231 | msgstr "Batterie en charge (%i%%)" 232 | 233 | #: cbatticon.c:941 234 | msgid "%d minute" 235 | msgid_plural "%d minutes" 236 | msgstr[0] "%d minute" 237 | msgstr[1] "%d minutes" 238 | 239 | #: cbatticon.c:942 240 | msgid "%d hour, %s remaining" 241 | msgid_plural "%d hours, %s remaining" 242 | msgstr[0] "%d heure, %s restantes" 243 | msgstr[1] "%d heures, %s restantes" 244 | 245 | #: cbatticon.c:944 246 | msgid "%d minute remaining" 247 | msgid_plural "%d minutes remaining" 248 | msgstr[0] "%d minute restante" 249 | msgstr[1] "%d minutes restantes" 250 | -------------------------------------------------------------------------------- /he.po: -------------------------------------------------------------------------------- 1 | # Hebrew translation for cbatticon. 2 | # Copyright (C) 2017-2018 Valère Monseur 3 | # This file is distributed under the same license as the cbatticon package. 4 | # Yotam Salmon , 2017. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: cbatticon 1.6.7\n" 9 | "Report-Msgid-Bugs-To: valere.monseur@ymail.com\n" 10 | "POT-Creation-Date: 2015-07-17 20:38+0200\n" 11 | "PO-Revision-Date: 2018-04-08 23:49+0200\n" 12 | "Last-Translator: Valère Monseur \n" 13 | "Language-Team: N/A\n" 14 | "Language: he\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=utf-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=n!=1;\n" 19 | 20 | #: cbatticon.c:154 21 | msgid "Display the version" 22 | msgstr "הצג את הגרסה" 23 | 24 | #: cbatticon.c:155 25 | msgid "Display debug information" 26 | msgstr "הצגת מידע ניפוי-באגים" 27 | 28 | #: cbatticon.c:156 29 | msgid "Set update interval (in seconds)" 30 | msgstr "הגדר מרווח עדכונים (בשניות)" 31 | 32 | #: cbatticon.c:157 33 | msgid "Set icon type ('standard', 'notification' or 'symbolic')" 34 | msgstr "הגדר סוג אייקון (רגיל, התראה או סימבולי)" 35 | 36 | #: cbatticon.c:158 37 | msgid "Set low battery level (in percent)" 38 | msgstr "הגדר מצב סוללה נמוכה (באחוזים)" 39 | 40 | #: cbatticon.c:159 41 | msgid "Set critical battery level (in percent)" 42 | msgstr "הגדר מצב חירום לסוללה נמוכה קריטית (באחוזים)" 43 | 44 | #: cbatticon.c:160 45 | msgid "Command to execute when critical battery level is reached" 46 | msgstr "פקודה לביצוע כאשר הסוללה מגיעה למצב קריטי" 47 | 48 | #: cbatticon.c:161 49 | msgid "Command to execute when left clicking on tray icon" 50 | msgstr "פקודה לביצוע בלחיצה שמאלית על האייקון בשורת המשימות" 51 | 52 | #: cbatticon.c:163 53 | msgid "Hide the notification popups" 54 | msgstr "העלם את חלוניות ההתראה הקופצות" 55 | 56 | #: cbatticon.c:165 57 | msgid "List available icon types" 58 | msgstr "הצג את סוגי האייקונים האפשריים" 59 | 60 | #: cbatticon.c:166 61 | msgid "List available power supplies (battery and AC)" 62 | msgstr "הצג את סוגי אספקת החשמל האפשריים (סוללה ו-AC)" 63 | 64 | #: cbatticon.c:170 65 | msgid "[BATTERY ID]" 66 | msgstr "[מזהה סוללה]" 67 | 68 | #: cbatticon.c:174 69 | #, c-format 70 | msgid "Cannot parse command line arguments: %s\n" 71 | msgstr "אין אפשרות לעבד את הפרמטר: %s\n" 72 | 73 | #: cbatticon.c:185 74 | msgid "" 75 | "cbatticon: a lightweight and fast battery icon that sits in your system tray\n" 76 | msgstr "cbatticon: אייקון סוללה פשוט ומהיר שנמצא בשורת המשימות שלך \n" 77 | 78 | #: cbatticon.c:186 79 | #, c-format 80 | msgid "version %s\n" 81 | msgstr "גרסה %s\n" 82 | 83 | #: cbatticon.c:194 84 | msgid "List of available power supplies:\n" 85 | msgstr "רשימה של אספקות חשמל אפשריות:\n" 86 | 87 | #: cbatticon.c:209 88 | msgid "List of available icon types:\n" 89 | msgstr "רשימה של סוגי אייקונים אפשריים:\n" 90 | 91 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 92 | msgid "available" 93 | msgstr "אפשרי" 94 | 95 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 cbatticon.c:540 cbatticon.c:548 96 | #: cbatticon.c:570 97 | msgid "unavailable" 98 | msgstr "לא אפשרי" 99 | 100 | #: cbatticon.c:226 101 | #, c-format 102 | msgid "Unknown icon type: %s\n" 103 | msgstr "סוג אייקון לא ידוע: %s\n" 104 | 105 | #: cbatticon.c:238 106 | msgid "No icon type found!\n" 107 | msgstr "לא נמצא סוג אייקון!\n" 108 | 109 | #: cbatticon.c:245 110 | #, c-format 111 | msgid "Invalid update interval! It has been reset to default (%d seconds)\n" 112 | msgstr "מרווח עדכון לא אפשרי! חייבים לאפס אותו לברירת המחדל (%d שניות)\n" 113 | 114 | #: cbatticon.c:252 115 | #, c-format 116 | msgid "Invalid low level! It has been reset to default (%d percent)\n" 117 | msgstr "רמת סוללה נמוכה לא אפשרית! איפסנו אותה לברירת המחדל (%d אחוזים)\n" 118 | 119 | #: cbatticon.c:257 120 | #, c-format 121 | msgid "Invalid critical level! It has been reset to default (%d percent)\n" 122 | msgstr "" 123 | "רמת סוללה נמוכה קריטית לא אפשרית! איפסנו אותה לברירת המחדל שלה (%d אחוזים)\n" 124 | 125 | #: cbatticon.c:263 126 | msgid "Critical level is higher than low level! They have been reset to default\n" 127 | msgstr "" 128 | "רמת סוללה קריטית גבוהה יותר מרמת הסוללה הנמוכה (לא קריטית). איפסנו את שתיהן לברירת " 129 | "המחדל\n" 130 | 131 | #: cbatticon.c:294 cbatticon.c:326 132 | #, c-format 133 | msgid "type: %-*.*s\tid: %-*.*s\tpath: %s\n" 134 | msgstr "סוג: %-*.*s\tמזהה: %-*.*s\tנתיב: %s\n" 135 | 136 | #: cbatticon.c:294 137 | msgid "Battery" 138 | msgstr "סוללה" 139 | 140 | #: cbatticon.c:326 141 | msgid "AC" 142 | msgstr "AC" 143 | 144 | #: cbatticon.c:348 145 | #, c-format 146 | msgid "Cannot open sysfs directory: %s (%s)\n" 147 | msgstr "לא אפשרי לפתוח את תקיית sysfs: %s (%s)\n" 148 | 149 | #: cbatticon.c:355 150 | #, c-format 151 | msgid "No battery with suffix %s found!\n" 152 | msgstr "לא נמצאה סוללה בעלת סיומת %s\n" 153 | 154 | #: cbatticon.c:360 155 | msgid "No battery nor AC power supply found!\n" 156 | msgstr "לא נמצאה סוללה או אספקת AC!\n" 157 | 158 | #: cbatticon.c:672 cbatticon.c:675 159 | msgid "AC only, no battery!" 160 | msgstr "AC בלבד, ללא סוללה!" 161 | 162 | #: cbatticon.c:793 163 | #, c-format 164 | msgid "Spawning critical battery level command in 30 seconds: %s" 165 | msgstr "מבצע פקודת סוללה נמוכה ברמה קריטית בעוד 30 שניות: %s" 166 | 167 | #: cbatticon.c:797 168 | #, c-format 169 | msgid "Cannot spawn critical battery level command: %s\n" 170 | msgstr "לא מסוגל לבצע את פקודת הסוללה הנמוכה קריטית: %s\n" 171 | 172 | #: cbatticon.c:800 173 | msgid "Cannot spawn critical battery level command!" 174 | msgstr "לא מסוגל לבצע את פקודת הסוללה הנמוכה קריטית!" 175 | 176 | #: cbatticon.c:817 177 | #, c-format 178 | msgid "Cannot spawn left click command: %s\n" 179 | msgstr "לא מסוגל לבצע את פקודת הלחצן השמאלי: %s\n" 180 | 181 | #: cbatticon.c:820 182 | msgid "Cannot spawn left click command!" 183 | msgstr "לא מסוגל לבצע את פקודת הלחצן השמאלי!" 184 | 185 | #: cbatticon.c:884 186 | msgid "Battery is missing!" 187 | msgstr "הסוללה חסרה!" 188 | 189 | #: cbatticon.c:888 190 | msgid "Battery status is unknown!" 191 | msgstr "מצב הסוללה לא ידוע!" 192 | 193 | #: cbatticon.c:892 194 | msgid "Battery is charged!" 195 | msgstr "הסוללה טעונה!" 196 | 197 | #: cbatticon.c:896 198 | msgid "Battery is discharging (%i%% remaining)" 199 | msgstr "הסוללה לא בהטענה (%i%% נשארו)" 200 | 201 | #: cbatticon.c:900 202 | msgid "Battery is not charging (%i%% remaining)" 203 | msgstr "הסוללה לא בהטענה (%i%% נשארו)" 204 | 205 | #: cbatticon.c:904 206 | msgid "Battery level is low! (%i%% remaining)" 207 | msgstr "רמת הסוללה נמוכה! (%i%% נשארו)" 208 | 209 | #: cbatticon.c:908 210 | msgid "Battery level is critical! (%i%% remaining)" 211 | msgstr "רמת הסוללה נמוכה בצורה קריטית! (%i%% נשארו)" 212 | 213 | #: cbatticon.c:912 214 | msgid "Battery is charging (%i%%)" 215 | msgstr "הסוללה בהטענה (%i%%)" 216 | 217 | #: cbatticon.c:941 218 | msgid "%d minute" 219 | msgid_plural "%d minutes" 220 | msgstr[0] "%d דקה" 221 | msgstr[1] "%d דקות" 222 | 223 | #: cbatticon.c:942 224 | msgid "%d hour, %s remaining" 225 | msgid_plural "%d hours, %s remaining" 226 | msgstr[0] "%d שעה, %s נשארה" 227 | msgstr[1] "%d שעות, %s נשארו" 228 | 229 | #: cbatticon.c:944 230 | msgid "%d minute remaining" 231 | msgid_plural "%d minutes remaining" 232 | msgstr[0] "%d דקה נשארה" 233 | msgstr[1] "%d דקות נשארו" 234 | -------------------------------------------------------------------------------- /hr.po: -------------------------------------------------------------------------------- 1 | # Croation translation for cbatticon. 2 | # Copyright (C) 2015-2018 Valère Monseur 3 | # This file is distributed under the same license as the cbatticon package. 4 | # Valère Monseur , 2015. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: cbatticon 1.6.7\n" 10 | "Report-Msgid-Bugs-To: valere.monseur@ymail.com\n" 11 | "POT-Creation-Date: 2015-12-13 22:28+0100\n" 12 | "PO-Revision-Date: 2018-04-08 23:36+0100\n" 13 | "Last-Translator: Dino Duratović \n" 14 | "Language-Team: N/A\n" 15 | "Language: hr\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=utf-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" 20 | 21 | #: cbatticon.c:154 22 | msgid "Display the version" 23 | msgstr "Prikaži verziju" 24 | 25 | #: cbatticon.c:155 26 | msgid "Display debug information" 27 | msgstr "Prikaži informacije za uklanjanje grešaka" 28 | 29 | #: cbatticon.c:156 30 | msgid "Set update interval (in seconds)" 31 | msgstr "Postavi interval ažuriranja (u sekundama)" 32 | 33 | #: cbatticon.c:157 34 | msgid "Set icon type ('standard', 'notification' or 'symbolic')" 35 | msgstr "Postavi tip ikone ('standard', 'notification' ili 'symbolic')" 36 | 37 | #: cbatticon.c:158 38 | msgid "Set low battery level (in percent)" 39 | msgstr "Postavi niski nivo baterije (u postocima)" 40 | 41 | #: cbatticon.c:159 42 | msgid "Set critical battery level (in percent)" 43 | msgstr "Postavi kritični nivo baterije (u postocima)" 44 | 45 | #: cbatticon.c:160 46 | msgid "Command to execute when critical battery level is reached" 47 | msgstr "Komanda za izvršiti kada se dostigne kritični nivo baterije" 48 | 49 | #: cbatticon.c:161 50 | msgid "Command to execute when left clicking on tray icon" 51 | msgstr "Komanda za izvršiti kada se klikne lijevim klikom na ikonu" 52 | 53 | #: cbatticon.c:163 54 | msgid "Hide the notification popups" 55 | msgstr "Sakrij obavijesti" 56 | 57 | #: cbatticon.c:165 58 | msgid "List available icon types" 59 | msgstr "Prikaži dostupne tipove ikona" 60 | 61 | #: cbatticon.c:166 62 | msgid "List available power supplies (battery and AC)" 63 | msgstr "Prikaži dostupna napajanja (baterija i mrežno napajanje)" 64 | 65 | #: cbatticon.c:170 66 | msgid "[BATTERY ID]" 67 | msgstr "[ID BATERIJE]" 68 | 69 | #: cbatticon.c:174 70 | #, c-format 71 | msgid "Cannot parse command line arguments: %s\n" 72 | msgstr "Ne mogu rasčlaniti argumente komandne linije: %s\n" 73 | 74 | #: cbatticon.c:185 75 | msgid "" 76 | "cbatticon: a lightweight and fast battery icon that sits in your system " 77 | "tray\n" 78 | msgstr "" 79 | "cbatticon: lagana i brza ikona za baterije u vašoj sistemskoj traci\n" 80 | 81 | #: cbatticon.c:186 82 | #, c-format 83 | msgid "version %s\n" 84 | msgstr "verzija %s\n" 85 | 86 | #: cbatticon.c:194 87 | msgid "List of available power supplies:\n" 88 | msgstr "Lista dostupnih napajanjа:\n" 89 | 90 | #: cbatticon.c:209 91 | msgid "List of available icon types:\n" 92 | msgstr "Lista dostupnih tipova ikona:\n" 93 | 94 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 95 | msgid "available" 96 | msgstr "dostupne" 97 | 98 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 cbatticon.c:540 99 | #: cbatticon.c:548 cbatticon.c:570 100 | msgid "unavailable" 101 | msgstr "nedostupne" 102 | 103 | #: cbatticon.c:226 104 | #, c-format 105 | msgid "Unknown icon type: %s\n" 106 | msgstr "Nepoznat tip ikone: %s\n" 107 | 108 | #: cbatticon.c:238 109 | msgid "No icon type found!\n" 110 | msgstr "Nije pronađen nijedan tip ikona!\n" 111 | 112 | #: cbatticon.c:245 113 | #, c-format 114 | msgid "Invalid update interval! It has been reset to default (%d seconds)\n" 115 | msgstr "Nevažeći interval za ažuriranje! Vraćen je na podrazumijevani (%d sekundi)\n" 116 | 117 | #: cbatticon.c:252 118 | #, c-format 119 | msgid "Invalid low level! It has been reset to default (%d percent)\n" 120 | msgstr "Nevažeći niski nivo! Vraćen je na podrazumijevani (%d posto)\n" 121 | 122 | #: cbatticon.c:257 123 | #, c-format 124 | msgid "Invalid critical level! It has been reset to default (%d percent)\n" 125 | msgstr "Nevažeći kritični nivo! Vraćen je na podrazumijevani (%d posto)\n" 126 | 127 | #: cbatticon.c:263 128 | msgid "" 129 | "Critical level is higher than low level! They have been reset to default\n" 130 | msgstr "" 131 | "Kritični nivo je viši nego niski nivo! Vraćeni su na podrazumijevane\n" 132 | 133 | #: cbatticon.c:294 cbatticon.c:326 134 | #, c-format 135 | msgid "type: %-*.*s\tid: %-*.*s\tpath: %s\n" 136 | msgstr "tip: %-*.*s\tid: %-*.*s\tpath: %s\n" 137 | 138 | #: cbatticon.c:294 139 | msgid "Battery" 140 | msgstr "Baterija" 141 | 142 | #: cbatticon.c:326 143 | msgid "AC" 144 | msgstr "Mrežno napajanje" 145 | 146 | #: cbatticon.c:348 147 | #, c-format 148 | msgid "Cannot open sysfs directory: %s (%s)\n" 149 | msgstr "Ne mogu otvoriti sysfs direktorij: %s (%s)\n" 150 | 151 | #: cbatticon.c:355 152 | #, c-format 153 | msgid "No battery with suffix %s found!\n" 154 | msgstr "Nije pronađena baterija sa sufiksom %s!\n" 155 | 156 | #: cbatticon.c:360 157 | msgid "No battery nor AC power supply found!\n" 158 | msgstr "Nije pronađena ni baterija ni mrežno napajanje!\n" 159 | 160 | #: cbatticon.c:672 cbatticon.c:675 161 | msgid "AC only, no battery!" 162 | msgstr "Samo mrežno napajanje, nema baterije!" 163 | 164 | #: cbatticon.c:793 165 | #, c-format 166 | msgid "Spawning critical battery level command in 30 seconds: %s" 167 | msgstr "Izvršujem komandu kritičnog nivoa baterije za 30 sekundi: %s" 168 | 169 | #: cbatticon.c:797 170 | #, c-format 171 | msgid "Cannot spawn critical battery level command: %s\n" 172 | msgstr "Ne mogu izvršiti komandu kritičnog nivoa baterije: %s\n" 173 | 174 | #: cbatticon.c:800 175 | msgid "Cannot spawn critical battery level command!" 176 | msgstr "Ne mogu izvršiti komandu kritičnog nivoa baterije!" 177 | 178 | #: cbatticon.c:817 179 | #, c-format 180 | msgid "Cannot spawn left click command: %s\n" 181 | msgstr "Ne mogu izvršiti komandu lijevog klika: %s\n" 182 | 183 | #: cbatticon.c:820 184 | msgid "Cannot spawn left click command!" 185 | msgstr "Ne mogu izvršiti komandu lijevog klika!" 186 | 187 | #: cbatticon.c:884 188 | msgid "Battery is missing!" 189 | msgstr "Baterija nedostaje!" 190 | 191 | #: cbatticon.c:888 192 | msgid "Battery status is unknown!" 193 | msgstr "Status baterije je nepoznat!" 194 | 195 | #: cbatticon.c:892 196 | msgid "Battery is charged!" 197 | msgstr "Baterija je puna!" 198 | 199 | #: cbatticon.c:896 200 | #, c-format 201 | msgid "Battery is discharging (%i%% remaining)" 202 | msgstr "Baterija se prazni (preostalo %i%%)" 203 | 204 | #: cbatticon.c:900 205 | #, c-format 206 | msgid "Battery is not charging (%i%% remaining)" 207 | msgstr "Baterija se ne puni (preostalo %i%%)" 208 | 209 | #: cbatticon.c:904 210 | #, c-format 211 | msgid "Battery level is low! (%i%% remaining)" 212 | msgstr "Nivo baterije je nizak! (preostalo %i%%)" 213 | 214 | #: cbatticon.c:908 215 | #, c-format 216 | msgid "Battery level is critical! (%i%% remaining)" 217 | msgstr "Nivo baterije je kritičan! (preostalo %i%%)" 218 | 219 | #: cbatticon.c:912 220 | #, c-format 221 | msgid "Battery is charging (%i%%)" 222 | msgstr "Baterija se puni (%i%%)" 223 | 224 | #: cbatticon.c:941 225 | #, c-format 226 | msgid "%d minute" 227 | msgid_plural "%d minutes" 228 | msgstr[0] "%d minuta" 229 | msgstr[1] "%d minute" 230 | msgstr[2] "%d minuta" 231 | 232 | #: cbatticon.c:942 233 | #, c-format 234 | msgid "%d hour, %s remaining" 235 | msgid_plural "%d hours, %s remaining" 236 | msgstr[0] "%d sat, %s preostalo" 237 | msgstr[1] "%d sata, %s preostalo" 238 | msgstr[2] "%d sati, %s preostalo" 239 | 240 | #: cbatticon.c:944 241 | #, c-format 242 | msgid "%d minute remaining" 243 | msgid_plural "%d minutes remaining" 244 | msgstr[0] "%d minuta preostala" 245 | msgstr[1] "%d minute preostale" 246 | msgstr[2] "%d minuta preostalo" 247 | -------------------------------------------------------------------------------- /id.po: -------------------------------------------------------------------------------- 1 | # Indonesian Translation for cbatticon. 2 | # Copyright (C) 2017-2018 Valère Monseur 3 | # This file is distributed under the same license as the cbatticon package. 4 | # Mahyuddin , 2017. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: cbatticon 1.6.7\n" 9 | "Report-Msgid-Bugs-To: valere.monseur@ymail.com\n" 10 | "POT-Creation-Date: 2017-10-04 16:16+0700\n" 11 | "PO-Revision-Date: 2018-04-08 23:35+0100\n" 12 | "Language-Team: Indonesian \n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=UTF-8\n" 15 | "Content-Transfer-Encoding: 8bit\n" 16 | "Plural-Forms: nplurals=1; plural=0;\n" 17 | "X-Generator: Poedit 1.8.11\n" 18 | "Last-Translator: Mahyuddin \n" 19 | "Language: id\n" 20 | 21 | #: cbatticon.c:154 22 | msgid "Display the version" 23 | msgstr "Tampilkan versi" 24 | 25 | #: cbatticon.c:155 26 | msgid "Display debug information" 27 | msgstr "Tampilkan informasi debug" 28 | 29 | #: cbatticon.c:156 30 | msgid "Set update interval (in seconds)" 31 | msgstr "Tetapkan interval update (dalam detik)" 32 | 33 | #: cbatticon.c:157 34 | msgid "Set icon type ('standard', 'notification' or 'symbolic')" 35 | msgstr "Atur jenis ikon ('standar', 'pemberitahuan' atau 'simbolis')" 36 | 37 | #: cbatticon.c:158 38 | msgid "Set low battery level (in percent)" 39 | msgstr "Atur tingkat daya baterai rendah (dalam persen)" 40 | 41 | #: cbatticon.c:159 42 | msgid "Set critical battery level (in percent)" 43 | msgstr "Atur tingkat baterai kritis (dalam persen)" 44 | 45 | #: cbatticon.c:160 46 | msgid "Command to execute when critical battery level is reached" 47 | msgstr "Perintah untuk mengeksekusi saat level baterai kritis tercapai" 48 | 49 | #: cbatticon.c:161 50 | msgid "Command to execute when left clicking on tray icon" 51 | msgstr "Perintah untuk mengeksekusi saat klik kiri pada ikon tray" 52 | 53 | #: cbatticon.c:163 54 | msgid "Hide the notification popups" 55 | msgstr "Sembunyikan popup pemberitahuan" 56 | 57 | #: cbatticon.c:165 58 | msgid "List available icon types" 59 | msgstr "Daftar jenis ikon yang tersedia" 60 | 61 | #: cbatticon.c:166 62 | msgid "List available power supplies (battery and AC)" 63 | msgstr "Daftar catu daya yang tersedia (baterai dan AC)" 64 | 65 | #: cbatticon.c:170 66 | msgid "[BATTERY ID]" 67 | msgstr "[BATERAI ID]" 68 | 69 | #: cbatticon.c:174 70 | #, c-format 71 | msgid "Cannot parse command line arguments: %s\n" 72 | msgstr "Tidak dapat mengurai argumen baris perintah: %s\n" 73 | 74 | #: cbatticon.c:185 75 | msgid "" 76 | "cbatticon: a lightweight and fast battery icon that sits in your system " 77 | "tray\n" 78 | msgstr "" 79 | "cbatticon: ikon baterai ringan dan cepat yang ada di sistem Anda tray\n" 80 | 81 | #: cbatticon.c:186 82 | #, c-format 83 | msgid "version %s\n" 84 | msgstr "versi %s\n" 85 | 86 | #: cbatticon.c:194 87 | msgid "List of available power supplies:\n" 88 | msgstr "Daftar catu daya yang tersedia:\n" 89 | 90 | #: cbatticon.c:209 91 | msgid "List of available icon types:\n" 92 | msgstr "Daftar jenis ikon yang tersedia:\n" 93 | 94 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 95 | msgid "available" 96 | msgstr "tersedia" 97 | 98 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 cbatticon.c:540 99 | #: cbatticon.c:548 cbatticon.c:570 100 | msgid "unavailable" 101 | msgstr "tidak tersedia" 102 | 103 | #: cbatticon.c:226 104 | #, c-format 105 | msgid "Unknown icon type: %s\n" 106 | msgstr "Jenis ikon tidak dikenal: %s\n" 107 | 108 | #: cbatticon.c:238 109 | msgid "No icon type found!\n" 110 | msgstr "Tidak ada tipe ikon yang ditemukan!\n" 111 | 112 | #: cbatticon.c:245 113 | #, c-format 114 | msgid "" 115 | "Invalid update interval! It has been reset to default (%d seconds)\n" 116 | msgstr "" 117 | "Interval pembaruan tidak valid! Telah disetel ulang ke default (%d " 118 | "detik)\n" 119 | 120 | #: cbatticon.c:252 121 | #, c-format 122 | msgid "Invalid low level! It has been reset to default (%d percent)\n" 123 | msgstr "" 124 | "Tingkat rendah tidak valid! Telah disetel ulang ke default (%d persen)\n" 125 | 126 | #: cbatticon.c:257 127 | #, c-format 128 | msgid "" 129 | "Invalid critical level! It has been reset to default (%d percent)\n" 130 | msgstr "" 131 | "Tingkat kritis tidak valid! Telah disetel ulang ke default (%d persen)\n" 132 | 133 | #: cbatticon.c:263 134 | msgid "" 135 | "Critical level is higher than low level! They have been reset to " 136 | "default\n" 137 | msgstr "" 138 | "Kritis tingkat lebih tinggi dari tingkat rendah! Mereka telah disetel " 139 | "ulang ke default\n" 140 | 141 | #: cbatticon.c:294 cbatticon.c:326 142 | #, c-format 143 | msgid "type: %-*.*s\tid: %-*.*s\tpath: %s\n" 144 | msgstr "tipe: %-*.*s\tid: %-*.*s\tpath: %s\n" 145 | 146 | #: cbatticon.c:294 147 | msgid "Battery" 148 | msgstr "Baterai" 149 | 150 | #: cbatticon.c:326 151 | msgid "AC" 152 | msgstr "AC" 153 | 154 | #: cbatticon.c:348 155 | #, c-format 156 | msgid "Cannot open sysfs directory: %s (%s)\n" 157 | msgstr "Tidak dapat membuka direktori sysfs: %s (%s)\n" 158 | 159 | #: cbatticon.c:355 160 | #, c-format 161 | msgid "No battery with suffix %s found!\n" 162 | msgstr "Tidak ada baterai dengan suffix %s ditemukan!\n" 163 | 164 | #: cbatticon.c:360 165 | msgid "No battery nor AC power supply found!\n" 166 | msgstr "Tidak ada baterai atau catu daya AC yang ditemukan!\n" 167 | 168 | #: cbatticon.c:672 cbatticon.c:675 169 | msgid "AC only, no battery!" 170 | msgstr "AC saja, tidak ada baterai!" 171 | 172 | #: cbatticon.c:793 173 | #, c-format 174 | msgid "Spawning critical battery level command in 30 seconds: %s" 175 | msgstr "Spawning perintah tingkat kritis baterai dalam 30 detik: %s" 176 | 177 | #: cbatticon.c:797 178 | #, c-format 179 | msgid "Cannot spawn critical battery level command: %s\n" 180 | msgstr "Tidak dapat spawn perintah level baterai kritis: %s\n" 181 | 182 | #: cbatticon.c:800 183 | msgid "Cannot spawn critical battery level command!" 184 | msgstr "Tidak dapat spawn perintah level baterai kritis!" 185 | 186 | #: cbatticon.c:817 187 | #, c-format 188 | msgid "Cannot spawn left click command: %s\n" 189 | msgstr "Tidak bisa spawn perintah klik kiri: %s\n" 190 | 191 | #: cbatticon.c:820 192 | msgid "Cannot spawn left click command!" 193 | msgstr "Tidak bisa spawn perintah klik kiri!" 194 | 195 | #: cbatticon.c:884 196 | msgid "Battery is missing!" 197 | msgstr "Baterai hilang!" 198 | 199 | #: cbatticon.c:888 200 | msgid "Battery status is unknown!" 201 | msgstr "Status baterai tidak diketahui!" 202 | 203 | #: cbatticon.c:892 204 | msgid "Battery is charged!" 205 | msgstr "Baterai terisi!" 206 | 207 | #: cbatticon.c:896 208 | msgid "Battery is discharging (%i%% remaining)" 209 | msgstr "Baterai habis (%i%% tersisa)" 210 | 211 | #: cbatticon.c:900 212 | msgid "Battery is not charging (%i%% remaining)" 213 | msgstr "Baterai tidak mengisi daya (%i%% tersisa)" 214 | 215 | #: cbatticon.c:904 216 | msgid "Battery level is low! (%i%% remaining)" 217 | msgstr "Tingkat baterai rendah! (%i%% tersisa)" 218 | 219 | #: cbatticon.c:908 220 | msgid "Battery level is critical! (%i%% remaining)" 221 | msgstr "Tingkat baterai kritis! (%i%% tersisa)" 222 | 223 | #: cbatticon.c:912 224 | msgid "Battery is charging (%i%%)" 225 | msgstr "Baterai sedang diisi (%i%%)" 226 | 227 | #: cbatticon.c:941 228 | msgid "%d minute" 229 | msgid_plural "%d minutes" 230 | msgstr[0] "%d menit" 231 | msgstr[1] "%d menit" 232 | 233 | #: cbatticon.c:942 234 | msgid "%d hour, %s remaining" 235 | msgid_plural "%d hours, %s remaining" 236 | msgstr[0] "%d jam, sisa %s" 237 | msgstr[1] "%d jam, sisa %s" 238 | 239 | #: cbatticon.c:944 240 | msgid "%d minute remaining" 241 | msgid_plural "%d minutes remaining" 242 | msgstr[0] "%d menit sisa" 243 | msgstr[1] "%d menit sisa" 244 | -------------------------------------------------------------------------------- /ja.po: -------------------------------------------------------------------------------- 1 | # Japanese translation for cbatticon. 2 | # Copyright (C) 2015-2018 Valère Monseur 3 | # This file is distributed under the same license as the cbatticon package. 4 | # Eshin Kunishima , 2016. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: cbatticon 1.6.7\n" 9 | "Report-Msgid-Bugs-To: valere.monseur@ymail.com\n" 10 | "POT-Creation-Date: 2016-09-11 18:57+0900\n" 11 | "PO-Revision-Date: 2018-04-08 23:34+0100\n" 12 | "Language-Team: N/A\n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=UTF-8\n" 15 | "Content-Transfer-Encoding: 8bit\n" 16 | "Plural-Forms: nplurals=1; plural=0;\n" 17 | "Last-Translator: Eshin Kunishima \n" 18 | "Language: ja\n" 19 | 20 | #: cbatticon.c:154 21 | msgid "Display the version" 22 | msgstr "バージョンを表示" 23 | 24 | #: cbatticon.c:155 25 | msgid "Display debug information" 26 | msgstr "デバッグ情報を表示" 27 | 28 | #: cbatticon.c:156 29 | msgid "Set update interval (in seconds)" 30 | msgstr "更新間隔を設定 (秒)" 31 | 32 | #: cbatticon.c:157 33 | msgid "Set icon type ('standard', 'notification' or 'symbolic')" 34 | msgstr "アイコンタイプを設定 ('標準', '通知', '記号')" 35 | 36 | #: cbatticon.c:158 37 | msgid "Set low battery level (in percent)" 38 | msgstr "低いバッテリーレベルの設定 (パーセント)" 39 | 40 | #: cbatticon.c:159 41 | msgid "Set critical battery level (in percent)" 42 | msgstr "危機的なバッテリーレベルの設定 (パーセント)" 43 | 44 | #: cbatticon.c:160 45 | msgid "Command to execute when critical battery level is reached" 46 | msgstr "バッテリーレベルが危機的な状態に陥った時に実行するコマンド" 47 | 48 | #: cbatticon.c:161 49 | msgid "Command to execute when left clicking on tray icon" 50 | msgstr "トレイのアイコンが左クリックされた時に実行するコマンド" 51 | 52 | #: cbatticon.c:163 53 | msgid "Hide the notification popups" 54 | msgstr "通知ポップアップを隠す" 55 | 56 | #: cbatticon.c:165 57 | msgid "List available icon types" 58 | msgstr "利用可能なアイコンタイプの一覧" 59 | 60 | #: cbatticon.c:166 61 | msgid "List available power supplies (battery and AC)" 62 | msgstr "利用可能な電源の一覧 (バッテリーとAC電源)" 63 | 64 | #: cbatticon.c:170 65 | msgid "[BATTERY ID]" 66 | msgstr "[バッテリー ID]" 67 | 68 | #: cbatticon.c:174 69 | #, c-format 70 | msgid "Cannot parse command line arguments: %s\n" 71 | msgstr "コマンドラインの引数をパース出来ません: %s\n" 72 | 73 | #: cbatticon.c:185 74 | msgid "" 75 | "cbatticon: a lightweight and fast battery icon that sits in your system " 76 | "tray\n" 77 | msgstr "" 78 | "cbatticon: 軽量で高速なシステムトレイで動作するバッテリーアイコン\n" 79 | 80 | #: cbatticon.c:186 81 | #, c-format 82 | msgid "version %s\n" 83 | msgstr "バージョン %s\n" 84 | 85 | #: cbatticon.c:194 86 | msgid "List of available power supplies:\n" 87 | msgstr "利用可能な電源の一覧:\n" 88 | 89 | #: cbatticon.c:209 90 | msgid "List of available icon types:\n" 91 | msgstr "利用可能なアイコンタイプの一覧:\n" 92 | 93 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 94 | msgid "available" 95 | msgstr "利用可能" 96 | 97 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 cbatticon.c:540 98 | #: cbatticon.c:548 cbatticon.c:570 99 | msgid "unavailable" 100 | msgstr "利用不可能" 101 | 102 | #: cbatticon.c:226 103 | #, c-format 104 | msgid "Unknown icon type: %s\n" 105 | msgstr "未知のアイコンタイプ: %s\n" 106 | 107 | #: cbatticon.c:238 108 | msgid "No icon type found!\n" 109 | msgstr "アイコンタイプが見つかりません\n" 110 | 111 | #: cbatticon.c:245 112 | #, c-format 113 | msgid "" 114 | "Invalid update interval! It has been reset to default (%d seconds)\n" 115 | msgstr "" 116 | "更新間隔の値が無効です。デフォルト値(%d 秒)にリセットされました。\n" 117 | 118 | #: cbatticon.c:252 119 | #, c-format 120 | msgid "Invalid low level! It has been reset to default (%d percent)\n" 121 | msgstr "" 122 | "低いバッテリーレベルの値が無効です。デフォルト値(%d 秒)にリセットされま" 123 | "した。\n" 124 | 125 | #: cbatticon.c:257 126 | #, c-format 127 | msgid "" 128 | "Invalid critical level! It has been reset to default (%d percent)\n" 129 | msgstr "" 130 | "危機的なバッテリーレベルの値が無効です。デフォルト値(%d 秒)にリセットさ" 131 | "れました。\n" 132 | 133 | #: cbatticon.c:263 134 | msgid "" 135 | "Critical level is higher than low level! They have been reset to " 136 | "default\n" 137 | msgstr "" 138 | "危機的なバッテリーレベルの値は、低いバッテリーレベルの値よりも大きな値が" 139 | "設定されています。デフォルトの値にリセットされました。\n" 140 | 141 | #: cbatticon.c:294 cbatticon.c:326 142 | #, c-format 143 | msgid "type: %-*.*s\tid: %-*.*s\tpath: %s\n" 144 | msgstr "type: %-*.*s\tid: %-*.*s\tpath: %s\n" 145 | 146 | #: cbatticon.c:294 147 | msgid "Battery" 148 | msgstr "バッテリー" 149 | 150 | #: cbatticon.c:326 151 | msgid "AC" 152 | msgstr "AC電源" 153 | 154 | #: cbatticon.c:348 155 | #, c-format 156 | msgid "Cannot open sysfs directory: %s (%s)\n" 157 | msgstr "sysfs ディレクトリを開けません: %s (%s)\n" 158 | 159 | #: cbatticon.c:355 160 | #, c-format 161 | msgid "No battery with suffix %s found!\n" 162 | msgstr "接尾に %s を含むバッテリーが見つかりません\n" 163 | 164 | #: cbatticon.c:360 165 | msgid "No battery nor AC power supply found!\n" 166 | msgstr "バッテリーもAC電源も見つかりません\n" 167 | 168 | #: cbatticon.c:672 cbatticon.c:675 169 | msgid "AC only, no battery!" 170 | msgstr "バッテリーはありませんが、AC電源を使用中です" 171 | 172 | #: cbatticon.c:793 173 | #, c-format 174 | msgid "Spawning critical battery level command in 30 seconds: %s" 175 | msgstr "" 176 | "30秒以内にバッテリーレベルが危機的な状態に陥った時に実行するコマンドを実" 177 | "行します: %s" 178 | 179 | #: cbatticon.c:797 180 | #, c-format 181 | msgid "Cannot spawn critical battery level command: %s\n" 182 | msgstr "" 183 | "バッテリーレベルが危機的な状態に陥った時に実行するコマンドを実行できませ" 184 | "ん: %s\n" 185 | 186 | #: cbatticon.c:800 187 | msgid "Cannot spawn critical battery level command!" 188 | msgstr "" 189 | "バッテリーレベルが危機的な状態に陥った時に実行するコマンドを実行できませ" 190 | "ん" 191 | 192 | #: cbatticon.c:817 193 | #, c-format 194 | msgid "Cannot spawn left click command: %s\n" 195 | msgstr "左クリックのコマンドを起動できません: %s\n" 196 | 197 | #: cbatticon.c:820 198 | msgid "Cannot spawn left click command!" 199 | msgstr "左クリックのコマンドを起動できません" 200 | 201 | #: cbatticon.c:884 202 | msgid "Battery is missing!" 203 | msgstr "バッテリーは見つかりません" 204 | 205 | #: cbatticon.c:888 206 | msgid "Battery status is unknown!" 207 | msgstr "バッテリーの状態は不明です" 208 | 209 | #: cbatticon.c:892 210 | msgid "Battery is charged!" 211 | msgstr "バッテリーは充電されました" 212 | 213 | #: cbatticon.c:896 214 | #, c-format 215 | msgid "Battery is discharging (%i%% remaining)" 216 | msgstr "バッテリーは放電中です (残り %i%%)" 217 | 218 | #: cbatticon.c:900 219 | #, c-format 220 | msgid "Battery is not charging (%i%% remaining)" 221 | msgstr "バッテリーは充電されていません (残り %i%%)" 222 | 223 | #: cbatticon.c:904 224 | #, c-format 225 | msgid "Battery level is low! (%i%% remaining)" 226 | msgstr "バッテリー残量が少なくなっています (残り %i%%)" 227 | 228 | #: cbatticon.c:908 229 | #, c-format 230 | msgid "Battery level is critical! (%i%% remaining)" 231 | msgstr "バッテリー残量が危機的な状態です (残り %i%%)" 232 | 233 | #: cbatticon.c:912 234 | #, c-format 235 | msgid "Battery is charging (%i%%)" 236 | msgstr "バッテリーは充電中です (%i%%)" 237 | 238 | #: cbatticon.c:941 239 | #, c-format 240 | msgid "%d minute" 241 | msgid_plural "%d minutes" 242 | msgstr[0] "%d 分" 243 | 244 | #: cbatticon.c:942 245 | #, c-format 246 | msgid "%d hour, %s remaining" 247 | msgid_plural "%d hours, %s remaining" 248 | msgstr[0] "残り %d 時間 %s" 249 | 250 | #: cbatticon.c:944 251 | #, c-format 252 | msgid "%d minute remaining" 253 | msgid_plural "%d minutes remaining" 254 | msgstr[0] "残り %d 分" 255 | -------------------------------------------------------------------------------- /pt_BR.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2015-2018 Valère Monseur 2 | # This file is distributed under the same license as the cbatticon package. 3 | # Valère Monseur , 2015. 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: cbatticon 1.6.7\n" 8 | "Report-Msgid-Bugs-To: valere.monseur@ymail.com\n" 9 | "POT-Creation-Date: 2015-12-13 22:28+0100\n" 10 | "PO-Revision-Date: 2019-06-10 15:21-0300\n" 11 | "Language-Team: \n" 12 | "MIME-Version: 1.0\n" 13 | "Content-Type: text/plain; charset=UTF-8\n" 14 | "Content-Transfer-Encoding: 8bit\n" 15 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" 16 | "X-Generator: Poedit 2.0.6\n" 17 | "Last-Translator: Raffaello Salvetti \n" 18 | "Language: pt_BR\n" 19 | 20 | #: cbatticon.c:154 21 | msgid "Display the version" 22 | msgstr "Mostrar a versão" 23 | 24 | #: cbatticon.c:155 25 | msgid "Display debug information" 26 | msgstr "Mostrar informações de depuração" 27 | 28 | #: cbatticon.c:156 29 | msgid "Set update interval (in seconds)" 30 | msgstr "Definir intervalo de atualização (em segundos)" 31 | 32 | #: cbatticon.c:157 33 | msgid "Set icon type ('standard', 'notification' or 'symbolic')" 34 | msgstr "Definir tipo do ícone ('standard', 'notification' ou 'symbolic')" 35 | 36 | #: cbatticon.c:158 37 | msgid "Set low battery level (in percent)" 38 | msgstr "Definir nível de bateria baixa (em porcento)" 39 | 40 | #: cbatticon.c:159 41 | msgid "Set critical battery level (in percent)" 42 | msgstr "Definir nível crítico de bateria (em porcento)" 43 | 44 | #: cbatticon.c:160 45 | msgid "Command to execute when critical battery level is reached" 46 | msgstr "Comando que deve ser executado quando a bateria atingir o nível crítico" 47 | 48 | #: cbatticon.c:161 49 | msgid "Command to execute when left clicking on tray icon" 50 | msgstr "" 51 | "Comando executado quando o ícone da bandeja do sistema for clicado com " 52 | "o botão esquerdo do mouse" 53 | 54 | #: cbatticon.c:163 55 | msgid "Hide the notification popups" 56 | msgstr "Esconder notificações popups" 57 | 58 | #: cbatticon.c:165 59 | msgid "List available icon types" 60 | msgstr "Lista dos tipos de icones disponíveis" 61 | 62 | #: cbatticon.c:166 63 | msgid "List available power supplies (battery and AC)" 64 | msgstr "Lista das fontes de alimentação disponíveis (Bateria e Carregador)" 65 | 66 | #: cbatticon.c:170 67 | msgid "[BATTERY ID]" 68 | msgstr "[ID BATERIA]" 69 | 70 | #: cbatticon.c:174 71 | #, c-format 72 | msgid "Cannot parse command line arguments: %s\n" 73 | msgstr "Não foi possível analizar os argumentos: %s\n" 74 | 75 | #: cbatticon.c:185 76 | msgid "" 77 | "cbatticon: a lightweight and fast battery icon that sits in your system " 78 | "tray\n" 79 | msgstr "" 80 | "cbatticon: um aplicativo leve que mostra um ícone indicador de bateria " 81 | "na bandeja do sistema\n" 82 | 83 | #: cbatticon.c:186 84 | #, c-format 85 | msgid "version %s\n" 86 | msgstr "versão %s\n" 87 | 88 | #: cbatticon.c:194 89 | msgid "List of available power supplies:\n" 90 | msgstr "Lista de fontes de alimentação disponíveis:\n" 91 | 92 | #: cbatticon.c:209 93 | msgid "List of available icon types:\n" 94 | msgstr "Lista de tipo de ícones disponíveis:\n" 95 | 96 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 97 | msgid "available" 98 | msgstr "disponível" 99 | 100 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 cbatticon.c:540 101 | #: cbatticon.c:548 cbatticon.c:570 102 | msgid "unavailable" 103 | msgstr "não disponível" 104 | 105 | #: cbatticon.c:226 106 | #, c-format 107 | msgid "Unknown icon type: %s\n" 108 | msgstr "Tipo de ícone desconhecido: %s\n" 109 | 110 | #: cbatticon.c:238 111 | msgid "No icon type found!\n" 112 | msgstr "Nenhum tipo de ícone foi encontrado!\n" 113 | 114 | #: cbatticon.c:245 115 | #, c-format 116 | msgid "" 117 | "Invalid update interval! It has been reset to default (%d seconds)\n" 118 | msgstr "" 119 | "Intervalo de atualização inválido! O valor padrão será usado (%d " 120 | "segundos)\n" 121 | 122 | #: cbatticon.c:252 123 | #, c-format 124 | msgid "Invalid low level! It has been reset to default (%d percent)\n" 125 | msgstr "Nível baixo inválido! O valor padrão será usado (%d porcento)\n" 126 | 127 | #: cbatticon.c:257 128 | #, c-format 129 | msgid "" 130 | "Invalid critical level! It has been reset to default (%d percent)\n" 131 | msgstr "Nível crítico inválido! O valor padrão será usado (%d porcento)\n" 132 | 133 | #: cbatticon.c:263 134 | msgid "" 135 | "Critical level is higher than low level! They have been reset to " 136 | "default\n" 137 | msgstr "" 138 | "Nível crítico maior que o nível baixo! Serão usados seus valores " 139 | "padrão\n" 140 | 141 | #: cbatticon.c:294 cbatticon.c:326 142 | #, c-format 143 | msgid "type: %-*.*s\tid: %-*.*s\tpath: %s\n" 144 | msgstr "tipo: %-*.*s\tid: %-*.*s\tcaminho: %s\n" 145 | 146 | #: cbatticon.c:294 147 | msgid "Battery" 148 | msgstr "Bateria" 149 | 150 | #: cbatticon.c:326 151 | msgid "AC" 152 | msgstr "Carregador" 153 | 154 | #: cbatticon.c:348 155 | #, c-format 156 | msgid "Cannot open sysfs directory: %s (%s)\n" 157 | msgstr "Impossível abrir o diretório sysfs: %s (%s)\n" 158 | 159 | #: cbatticon.c:355 160 | #, c-format 161 | msgid "No battery with suffix %s found!\n" 162 | msgstr "Não foi encontrada uma bateria com o sufixo %s!\n" 163 | 164 | #: cbatticon.c:360 165 | msgid "No battery nor AC power supply found!\n" 166 | msgstr "Não foi encontrado uma bateria nem um carregador\n" 167 | 168 | #: cbatticon.c:672 cbatticon.c:675 169 | msgid "AC only, no battery!" 170 | msgstr "Somente carregador, sem bateria!" 171 | 172 | #: cbatticon.c:793 173 | #, c-format 174 | msgid "Spawning critical battery level command in 30 seconds: %s" 175 | msgstr "Executando comando de nível crítico de bateria em 30 segundos: %s" 176 | 177 | #: cbatticon.c:797 178 | #, c-format 179 | msgid "Cannot spawn critical battery level command: %s\n" 180 | msgstr "O comando de nível crítico de bateria não pode ser executado: %s\n" 181 | 182 | #: cbatticon.c:800 183 | msgid "Cannot spawn critical battery level command!" 184 | msgstr "O comando de nível crítico de bateria não pode ser executado!" 185 | 186 | #: cbatticon.c:817 187 | #, c-format 188 | msgid "Cannot spawn left click command: %s\n" 189 | msgstr "O comando de click esquedro não pode ser executado: %s\n" 190 | 191 | #: cbatticon.c:820 192 | msgid "Cannot spawn left click command!" 193 | msgstr "O comando de click esquedro não pode ser executado!" 194 | 195 | #: cbatticon.c:884 196 | msgid "Battery is missing!" 197 | msgstr "Sem bateria!" 198 | 199 | #: cbatticon.c:888 200 | msgid "Battery status is unknown!" 201 | msgstr "O estado da bateria é desconhecido!" 202 | 203 | #: cbatticon.c:892 204 | msgid "Battery is charged!" 205 | msgstr "A bateria está totalmente carregada!" 206 | 207 | #: cbatticon.c:896 208 | #, c-format 209 | msgid "Battery is discharging (%i%% remaining)" 210 | msgstr "Bateria descarregando (%i%% restante)" 211 | 212 | #: cbatticon.c:900 213 | #, c-format 214 | msgid "Battery is not charging (%i%% remaining)" 215 | msgstr "A bateria não está carregando (%i%% restante)" 216 | 217 | #: cbatticon.c:904 218 | #, c-format 219 | msgid "Battery level is low! (%i%% remaining)" 220 | msgstr "Nível de bateria baixo! (%i%% restante)" 221 | 222 | #: cbatticon.c:908 223 | #, c-format 224 | msgid "Battery level is critical! (%i%% remaining)" 225 | msgstr "Nível de bateria crítico! (%i%% restante)" 226 | 227 | #: cbatticon.c:912 228 | #, c-format 229 | msgid "Battery is charging (%i%%)" 230 | msgstr "Bateria carregando (%i%%)" 231 | 232 | #: cbatticon.c:941 233 | #, c-format 234 | msgid "%d minute" 235 | msgid_plural "%d minutes" 236 | msgstr[0] "%d minuto" 237 | msgstr[1] "%d minutos" 238 | 239 | #: cbatticon.c:942 240 | #, c-format 241 | msgid "%d hour, %s remaining" 242 | msgid_plural "%d hours, %s remaining" 243 | msgstr[0] "%d hora, %s restante" 244 | msgstr[1] "%d horas, %s restantes" 245 | 246 | #: cbatticon.c:944 247 | #, c-format 248 | msgid "%d minute remaining" 249 | msgid_plural "%d minutes remaining" 250 | msgstr[0] "%d minuto restante" 251 | msgstr[1] "%d minutos restantes" 252 | -------------------------------------------------------------------------------- /ru.po: -------------------------------------------------------------------------------- 1 | # Russian translation for cbatticon. 2 | # Copyright (C) 2015-2018 Valère Monseur 3 | # This file is distributed under the same license as the cbatticon package. 4 | # Alexandr Proklov , 2015. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: cbatticon 1.6.7\n" 10 | "Report-Msgid-Bugs-To: valere.monseur@ymail.com\n" 11 | "POT-Creation-Date: 2015-07-17 20:38+0200\n" 12 | "PO-Revision-Date: 2018-04-08 23:32+0100\n" 13 | "Last-Translator: Alexandr Proklov \n" 14 | "Language-Team: PuppyRus Linux Team \n" 15 | "Language: ru\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=utf-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" 20 | 21 | #: cbatticon.c:154 22 | msgid "Display the version" 23 | msgstr "Показать версию" 24 | 25 | #: cbatticon.c:155 26 | msgid "Display debug information" 27 | msgstr "Показать отладочную информацию" 28 | 29 | #: cbatticon.c:156 30 | msgid "Set update interval (in seconds)" 31 | msgstr "Задать интервал обновления (сек)" 32 | 33 | #: cbatticon.c:157 34 | msgid "Set icon type ('standard', 'notification' or 'symbolic')" 35 | msgstr "Задать тип значка ('standard', 'notification' or 'symbolic')" 36 | 37 | #: cbatticon.c:158 38 | msgid "Set low battery level (in percent)" 39 | msgstr "Задать низкий уровень заряда батареи (в процентах)" 40 | 41 | #: cbatticon.c:159 42 | msgid "Set critical battery level (in percent)" 43 | msgstr "Задать критический уровень заряда батареи (в процентах)" 44 | 45 | #: cbatticon.c:160 46 | msgid "Command to execute when critical battery level is reached" 47 | msgstr "Выполнить при критическом уровне заряда батареи" 48 | 49 | #: cbatticon.c:161 50 | msgid "Command to execute when left clicking on tray icon" 51 | msgstr "Выполнить по щелчку левой кнопки мыши на значке в трее" 52 | 53 | #: cbatticon.c:163 54 | msgid "Hide the notification popups" 55 | msgstr "Скрыть всплывающие уведомления" 56 | 57 | #: cbatticon.c:165 58 | msgid "List available icon types" 59 | msgstr "Список доступных значков" 60 | 61 | #: cbatticon.c:166 62 | msgid "List available power supplies (battery and AC)" 63 | msgstr "Список доступных источников (батареи и сеть)" 64 | 65 | #: cbatticon.c:170 66 | msgid "[BATTERY ID]" 67 | msgstr "" 68 | 69 | #: cbatticon.c:174 70 | #, c-format 71 | msgid "Cannot parse command line arguments: %s\n" 72 | msgstr "Не удается опознать параметры строки: %s\n" 73 | 74 | #: cbatticon.c:185 75 | msgid "" 76 | "cbatticon: a lightweight and fast battery icon that sits in your system " 77 | "tray\n" 78 | msgstr "cbatticon: индикатор значка батареи для системного трея\n" 79 | 80 | #: cbatticon.c:186 81 | #, c-format 82 | msgid "version %s\n" 83 | msgstr "версия %s\n" 84 | 85 | #: cbatticon.c:194 86 | msgid "List of available power supplies:\n" 87 | msgstr "Список доступных источников питания:\n" 88 | 89 | #: cbatticon.c:209 90 | msgid "List of available icon types:\n" 91 | msgstr "Список доступных значков:\n" 92 | 93 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 94 | msgid "available" 95 | msgstr "доступно" 96 | 97 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 cbatticon.c:540 98 | #: cbatticon.c:548 cbatticon.c:570 99 | msgid "unavailable" 100 | msgstr "недоступно" 101 | 102 | #: cbatticon.c:226 103 | #, c-format 104 | msgid "Unknown icon type: %s\n" 105 | msgstr "Неизвестный тип значка: %s\n" 106 | 107 | #: cbatticon.c:238 108 | msgid "No icon type found!\n" 109 | msgstr "Не найдены доступные значки!\n" 110 | 111 | #: cbatticon.c:245 112 | #, c-format 113 | msgid "Invalid update interval! It has been reset to default (%d seconds)\n" 114 | msgstr "" 115 | "Неверный интервал обновления! Будет использовано значение (%d секунд)\n" 116 | 117 | #: cbatticon.c:252 118 | #, c-format 119 | msgid "Invalid low level! It has been reset to default (%d percent)\n" 120 | msgstr "Неверный низкий уровень! Будет использовано значение (%d процентов)\n" 121 | 122 | #: cbatticon.c:257 123 | #, c-format 124 | msgid "Invalid critical level! It has been reset to default (%d percent)\n" 125 | msgstr "" 126 | "Неверный критический уровень! Будет использовано значение (%d процентов)\n" 127 | 128 | #: cbatticon.c:263 129 | msgid "" 130 | "Critical level is higher than low level! They have been reset to default\n" 131 | msgstr "" 132 | "Критический уровень больше чем низкий уровень! Будут использованы значения " 133 | "по-умолчанию\n" 134 | 135 | #: cbatticon.c:294 cbatticon.c:326 136 | #, c-format 137 | msgid "type: %-*.*s\tid: %-*.*s\tpath: %s\n" 138 | msgstr "" 139 | 140 | #: cbatticon.c:294 141 | msgid "Battery" 142 | msgstr "" 143 | 144 | #: cbatticon.c:326 145 | msgid "AC" 146 | msgstr "" 147 | 148 | #: cbatticon.c:348 149 | #, c-format 150 | msgid "Cannot open sysfs directory: %s (%s)\n" 151 | msgstr "Не удается открыть каталог sysfs: %s (%s)\n" 152 | 153 | #: cbatticon.c:355 154 | #, c-format 155 | msgid "No battery with suffix %s found!\n" 156 | msgstr "Батарея %s не найдена!\n" 157 | 158 | #: cbatticon.c:360 159 | msgid "No battery nor AC power supply found!\n" 160 | msgstr "" 161 | 162 | #: cbatticon.c:672 cbatticon.c:675 163 | msgid "AC only, no battery!" 164 | msgstr "От сети, нет батареи!" 165 | 166 | #: cbatticon.c:793 167 | #, c-format 168 | msgid "Spawning critical battery level command in 30 seconds: %s" 169 | msgstr "" 170 | 171 | #: cbatticon.c:797 172 | #, c-format 173 | msgid "Cannot spawn critical battery level command: %s\n" 174 | msgstr "Невозможно выполнить команду для критического уровня\n" 175 | 176 | #: cbatticon.c:800 177 | msgid "Cannot spawn critical battery level command!" 178 | msgstr "Невозможно выполнить команду для критического уровня!" 179 | 180 | #: cbatticon.c:817 181 | #, c-format 182 | msgid "Cannot spawn left click command: %s\n" 183 | msgstr "Невозможно выполнить команду для левой кнопки мыши\n" 184 | 185 | #: cbatticon.c:820 186 | msgid "Cannot spawn left click command!" 187 | msgstr "Невозможно выполнить команду для левой кнопки мыши!" 188 | 189 | #: cbatticon.c:884 190 | msgid "Battery is missing!" 191 | msgstr "Батарея отсутствует!" 192 | 193 | #: cbatticon.c:888 194 | msgid "Battery status is unknown!" 195 | msgstr "Статус батареи неизвестен!" 196 | 197 | #: cbatticon.c:892 198 | msgid "Battery is charged!" 199 | msgstr "Батарея заряжена!" 200 | 201 | #: cbatticon.c:896 202 | msgid "Battery is discharging (%i%% remaining)" 203 | msgstr "Батарея разряжается (%i%% осталось)" 204 | 205 | #: cbatticon.c:900 206 | msgid "Battery is not charging (%i%% remaining)" 207 | msgstr "Батарея не заряжается (%i%% осталось)" 208 | 209 | #: cbatticon.c:904 210 | msgid "Battery level is low! (%i%% remaining)" 211 | msgstr "Низкий уровень заряда батареи! (%i%% осталось)" 212 | 213 | #: cbatticon.c:908 214 | msgid "Battery level is critical! (%i%% remaining)" 215 | msgstr "Критический уровень заряда батареи! (%i%% осталось)" 216 | 217 | #: cbatticon.c:912 218 | msgid "Battery is charging (%i%%)" 219 | msgstr "Батарея заряжается (%i%%)" 220 | 221 | #: cbatticon.c:941 222 | msgid "%d minute" 223 | msgid_plural "%d minutes" 224 | msgstr[0] "%d минута" 225 | msgstr[1] "%d минуты" 226 | msgstr[2] "%d минут" 227 | 228 | #: cbatticon.c:942 229 | msgid "%d hour, %s remaining" 230 | msgid_plural "%d hours, %s remaining" 231 | msgstr[0] "%d час, %s осталось" 232 | msgstr[1] "%d часа, %s осталось" 233 | msgstr[2] "%d часов, %s осталось" 234 | 235 | #: cbatticon.c:944 236 | msgid "%d minute remaining" 237 | msgid_plural "%d minutes remaining" 238 | msgstr[0] "%d минута осталось" 239 | msgstr[1] "%d минуты осталось" 240 | msgstr[2] "%d минут осталось" 241 | -------------------------------------------------------------------------------- /sk.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2015-2018 Valère Monseur 2 | # This file is distributed under the same license as the cbatticon package. 3 | # Jose Riha, , 2020. 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: cbatticon 1.6.7\n" 8 | "Report-Msgid-Bugs-To: valere.monseur@ymail.com\n" 9 | "POT-Creation-Date: 2015-12-13 22:28+0100\n" 10 | "PO-Revision-Date: 2020-02-25 23:22+0100\n" 11 | "Language-Team: \n" 12 | "MIME-Version: 1.0\n" 13 | "Content-Type: text/plain; charset=UTF-8\n" 14 | "Content-Transfer-Encoding: 8bit\n" 15 | "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n>=2 && n<=4 ? 1 : 2);\n" 16 | "X-Generator: Poedit 2.3\n" 17 | "Last-Translator: Jose Riha \n" 18 | "Language: sk_SK\n" 19 | 20 | #: cbatticon.c:154 21 | msgid "Display the version" 22 | msgstr "Zobraziť verziu" 23 | 24 | #: cbatticon.c:155 25 | msgid "Display debug information" 26 | msgstr "Zobraziť informácie pre ladenie" 27 | 28 | #: cbatticon.c:156 29 | msgid "Set update interval (in seconds)" 30 | msgstr "Nastaviť interval obnovenia (v sekundách)" 31 | 32 | #: cbatticon.c:157 33 | msgid "Set icon type ('standard', 'notification' or 'symbolic')" 34 | msgstr "Nastaviť typ ikony ('standard', 'notification' alebo 'symbolic')" 35 | 36 | #: cbatticon.c:158 37 | msgid "Set low battery level (in percent)" 38 | msgstr "Nastaviť nízku úroveň nabitia batérie (v percentách)" 39 | 40 | #: cbatticon.c:159 41 | msgid "Set critical battery level (in percent)" 42 | msgstr "Nastaviť kriticky nízku úroveň nabitia batérie (v percentách)" 43 | 44 | #: cbatticon.c:160 45 | msgid "Command to execute when critical battery level is reached" 46 | msgstr "" 47 | "Príkaz, ktorý sa spustí pri dosiahnutí kriticky nízkej úrovne nabitia batérie" 48 | 49 | #: cbatticon.c:161 50 | msgid "Command to execute when left clicking on tray icon" 51 | msgstr "Príkaz, ktorý sa spustí po kliknutí na ikonu v systémovej lište" 52 | 53 | #: cbatticon.c:163 54 | msgid "Hide the notification popups" 55 | msgstr "Skryť vyskakovacie oznámenia" 56 | 57 | #: cbatticon.c:165 58 | msgid "List available icon types" 59 | msgstr "Zobraziť zoznam dostupných typov ikon" 60 | 61 | #: cbatticon.c:166 62 | msgid "List available power supplies (battery and AC)" 63 | msgstr "Zobraziť dostupné zdroje napätia (batéria a elektrická sieť)" 64 | 65 | #: cbatticon.c:170 66 | msgid "[BATTERY ID]" 67 | msgstr "[ID BATÉRIE]" 68 | 69 | #: cbatticon.c:174 70 | #, c-format 71 | msgid "Cannot parse command line arguments: %s\n" 72 | msgstr "Nepodarilo sa analyzovať voľby príkazového riadku: %s\n" 73 | 74 | #: cbatticon.c:185 75 | msgid "" 76 | "cbatticon: a lightweight and fast battery icon that sits in your system " 77 | "tray\n" 78 | msgstr "" 79 | "cbatticon: malý a svižný program, ktorý zobrazuje ikonu batérie v " 80 | "systémovej lište\n" 81 | 82 | #: cbatticon.c:186 83 | #, c-format 84 | msgid "version %s\n" 85 | msgstr "verzia %s\n" 86 | 87 | #: cbatticon.c:194 88 | msgid "List of available power supplies:\n" 89 | msgstr "Zoznam dostupných zdrojov napätia:\n" 90 | 91 | #: cbatticon.c:209 92 | msgid "List of available icon types:\n" 93 | msgstr "Zoznam dostupných typov ikon:\n" 94 | 95 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 96 | msgid "available" 97 | msgstr "dostupné" 98 | 99 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 cbatticon.c:540 100 | #: cbatticon.c:548 cbatticon.c:570 101 | msgid "unavailable" 102 | msgstr "nedostupné" 103 | 104 | #: cbatticon.c:226 105 | #, c-format 106 | msgid "Unknown icon type: %s\n" 107 | msgstr "Neznámy typ ikony: %s\n" 108 | 109 | #: cbatticon.c:238 110 | msgid "No icon type found!\n" 111 | msgstr "Nebol nájdený žiaden typ ikony!\n" 112 | 113 | #: cbatticon.c:245 114 | #, c-format 115 | msgid "" 116 | "Invalid update interval! It has been reset to default (%d seconds)\n" 117 | msgstr "" 118 | "Neplatný interval obnovenia! Nastavujem predvolený interval (%d " 119 | "sekúnd)\n" 120 | 121 | #: cbatticon.c:252 122 | #, c-format 123 | msgid "Invalid low level! It has been reset to default (%d percent)\n" 124 | msgstr "" 125 | "Neplatná úroveň nízkeho nabitia! Nastavujem predvolenú úroveň (%d " 126 | "percent)\n" 127 | 128 | #: cbatticon.c:257 129 | #, c-format 130 | msgid "" 131 | "Invalid critical level! It has been reset to default (%d percent)\n" 132 | msgstr "" 133 | "Neplatná úroveň kriticky nízkeho nabitia! Nastavujem predvolenú úroveň " 134 | "(%d percent)\n" 135 | 136 | #: cbatticon.c:263 137 | msgid "" 138 | "Critical level is higher than low level! They have been reset to " 139 | "default\n" 140 | msgstr "" 141 | "Úroveň kriticky nízkeho nabitia je vyššia ako úroveň nízkeho nabitia! " 142 | "Nastavujem obe hodnoty na predvolenú úroveň\n" 143 | 144 | #: cbatticon.c:294 cbatticon.c:326 145 | #, c-format 146 | msgid "type: %-*.*s\tid: %-*.*s\tpath: %s\n" 147 | msgstr "typ: %-*.*s\tid: %-*.*s\tcesta: %s\n" 148 | 149 | #: cbatticon.c:294 150 | msgid "Battery" 151 | msgstr "Batéria" 152 | 153 | #: cbatticon.c:326 154 | msgid "AC" 155 | msgstr "AC" 156 | 157 | #: cbatticon.c:348 158 | #, c-format 159 | msgid "Cannot open sysfs directory: %s (%s)\n" 160 | msgstr "Nie je možné otvoriť adresár sysfs: %s (%s)\n" 161 | 162 | #: cbatticon.c:355 163 | #, c-format 164 | msgid "No battery with suffix %s found!\n" 165 | msgstr "Nebola nájdená batéria %s!\n" 166 | 167 | #: cbatticon.c:360 168 | msgid "No battery nor AC power supply found!\n" 169 | msgstr "Nebola nájdená batéria alebo iný zdroj napätia!\n" 170 | 171 | #: cbatticon.c:672 cbatticon.c:675 172 | msgid "AC only, no battery!" 173 | msgstr "Iba elektrická sieť, žiadna batéria!" 174 | 175 | #: cbatticon.c:793 176 | #, c-format 177 | msgid "Spawning critical battery level command in 30 seconds: %s" 178 | msgstr "" 179 | "O 30 sekúnd sa spustí príkaz definovaný pre kriticky nízku úroveň " 180 | "batérie: %s" 181 | 182 | #: cbatticon.c:797 183 | #, c-format 184 | msgid "Cannot spawn critical battery level command: %s\n" 185 | msgstr "" 186 | "Nepodarilo sa spustiť príkaz definovaný pre kriticky nízku úroveň " 187 | "batérie: %s\n" 188 | 189 | #: cbatticon.c:800 190 | msgid "Cannot spawn critical battery level command!" 191 | msgstr "" 192 | "Nepodarilo sa spustiť príkaz definovaný pre kriticky nízku úroveň " 193 | "batérie!" 194 | 195 | #: cbatticon.c:817 196 | #, c-format 197 | msgid "Cannot spawn left click command: %s\n" 198 | msgstr "" 199 | "Nepodarilo sa spustiť príkaz priradený ľavému tlačidlu myši: " 200 | "%s\n" 201 | 202 | #: cbatticon.c:820 203 | msgid "Cannot spawn left click command!" 204 | msgstr "" 205 | "Nepodarilo sa spustiť príkaz priradeny ľavému tlačidlu myši!" 206 | 207 | #: cbatticon.c:884 208 | msgid "Battery is missing!" 209 | msgstr "Batéria nebola nájdená!" 210 | 211 | #: cbatticon.c:888 212 | msgid "Battery status is unknown!" 213 | msgstr "Stav batérie je neznámy!" 214 | 215 | #: cbatticon.c:892 216 | msgid "Battery is charged!" 217 | msgstr "Batéria je nabitá!" 218 | 219 | #: cbatticon.c:896 220 | #, c-format 221 | msgid "Battery is discharging (%i%% remaining)" 222 | msgstr "Batéria sa vybíja (%i%% zostáva)" 223 | 224 | #: cbatticon.c:900 225 | #, c-format 226 | msgid "Battery is not charging (%i%% remaining)" 227 | msgstr "Batéria sa nenabíja (%i%% zostáva)" 228 | 229 | #: cbatticon.c:904 230 | #, c-format 231 | msgid "Battery level is low! (%i%% remaining)" 232 | msgstr "Nízka úroveň nabitia batérie! (%i%% zostáva)" 233 | 234 | #: cbatticon.c:908 235 | #, c-format 236 | msgid "Battery level is critical! (%i%% remaining)" 237 | msgstr "Kriticky nízka úroveň batérie! (%i%% zostáva)" 238 | 239 | #: cbatticon.c:912 240 | #, c-format 241 | msgid "Battery is charging (%i%%)" 242 | msgstr "Batéria sa nabíja (%i%%)" 243 | 244 | #: cbatticon.c:941 245 | #, c-format 246 | msgid "%d minute" 247 | msgid_plural "%d minutes" 248 | msgstr[0] "%d minúta" 249 | msgstr[1] "%d minúty" 250 | msgstr[2] "%d minút" 251 | 252 | #: cbatticon.c:942 253 | #, c-format 254 | msgid "%d hour, %s remaining" 255 | msgid_plural "%d hours, %s remaining" 256 | msgstr[0] "%d hodina, %s zostáva" 257 | msgstr[1] "%d hodiny, %s zostáva" 258 | msgstr[2] "%d hodín, %s zostáva" 259 | 260 | #: cbatticon.c:944 261 | #, c-format 262 | msgid "%d minute remaining" 263 | msgid_plural "%d minutes remaining" 264 | msgstr[0] "zostáva %d minúta" 265 | msgstr[1] "zostávajú %d minúty" 266 | msgstr[2] "zostáva %d minút" 267 | -------------------------------------------------------------------------------- /sr.po: -------------------------------------------------------------------------------- 1 | # Serbian translation for cbatticon. 2 | # Copyright (C) 2015-2018 Valère Monseur 3 | # This file is distributed under the same license as the cbatticon package. 4 | # Valère Monseur , 2015. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: cbatticon 1.6.7\n" 10 | "Report-Msgid-Bugs-To: valere.monseur@ymail.com\n" 11 | "POT-Creation-Date: 2015-12-13 22:28+0100\n" 12 | "PO-Revision-Date: 2018-04-08 23:31+0100\n" 13 | "Last-Translator: Dino Duratović \n" 14 | "Language-Team: N/A\n" 15 | "Language: sr\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=utf-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" 20 | 21 | #: cbatticon.c:154 22 | msgid "Display the version" 23 | msgstr "Прикажи верзију" 24 | 25 | #: cbatticon.c:155 26 | msgid "Display debug information" 27 | msgstr "Прикажи информације за уклањање грешака" 28 | 29 | #: cbatticon.c:156 30 | msgid "Set update interval (in seconds)" 31 | msgstr "Постави интервал ажурирања (у секундама)" 32 | 33 | #: cbatticon.c:157 34 | msgid "Set icon type ('standard', 'notification' or 'symbolic')" 35 | msgstr "Постави тип иконе ('standard', 'notification', или 'symbolic')" 36 | 37 | #: cbatticon.c:158 38 | msgid "Set low battery level (in percent)" 39 | msgstr "Постави ниски ниво батерије (у постоцима)" 40 | 41 | #: cbatticon.c:159 42 | msgid "Set critical battery level (in percent)" 43 | msgstr "Постави критични ниво батерије (у постоцима)" 44 | 45 | #: cbatticon.c:160 46 | msgid "Command to execute when critical battery level is reached" 47 | msgstr "Команда за извршити када се достигне кригични ниво батерије" 48 | 49 | #: cbatticon.c:161 50 | msgid "Command to execute when left clicking on tray icon" 51 | msgstr "Команда за извршити када се кликне левим кликом на икону" 52 | 53 | #: cbatticon.c:163 54 | msgid "Hide the notification popups" 55 | msgstr "Сакриј обавести" 56 | 57 | #: cbatticon.c:165 58 | msgid "List available icon types" 59 | msgstr "Прикажи доступне типове икона" 60 | 61 | #: cbatticon.c:166 62 | msgid "List available power supplies (battery and AC)" 63 | msgstr "Прикажи доступна напајања (батерија и мрежно напајање)" 64 | 65 | #: cbatticon.c:170 66 | msgid "[BATTERY ID]" 67 | msgstr "[ИД БАТЕРИЈЕ]" 68 | 69 | #: cbatticon.c:174 70 | #, c-format 71 | msgid "Cannot parse command line arguments: %s\n" 72 | msgstr "Не могу расчланити аргументе командне линије: %s\n" 73 | 74 | #: cbatticon.c:185 75 | msgid "" 76 | "cbatticon: a lightweight and fast battery icon that sits in your system " 77 | "tray\n" 78 | msgstr "" 79 | "cbatticon: лагана и брза икона за батерије у вашој системској траци\n" 80 | 81 | #: cbatticon.c:186 82 | #, c-format 83 | msgid "version %s\n" 84 | msgstr "верзија %s\n" 85 | 86 | #: cbatticon.c:194 87 | msgid "List of available power supplies:\n" 88 | msgstr "Листа доступних напајања:\n" 89 | 90 | #: cbatticon.c:209 91 | msgid "List of available icon types:\n" 92 | msgstr "Листа доступних типова икона:\n" 93 | 94 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 95 | msgid "available" 96 | msgstr "доступне" 97 | 98 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 cbatticon.c:540 99 | #: cbatticon.c:548 cbatticon.c:570 100 | msgid "unavailable" 101 | msgstr "недоступне" 102 | 103 | #: cbatticon.c:226 104 | #, c-format 105 | msgid "Unknown icon type: %s\n" 106 | msgstr "Непознат тип иконе: %s\n" 107 | 108 | #: cbatticon.c:238 109 | msgid "No icon type found!\n" 110 | msgstr "Није пронађен ниједан тип икона!\n" 111 | 112 | #: cbatticon.c:245 113 | #, c-format 114 | msgid "Invalid update interval! It has been reset to default (%d seconds)\n" 115 | msgstr "Неважећи интервал за ажурирање! Враћен је на подразумевани (%d секунди)\n" 116 | 117 | #: cbatticon.c:252 118 | #, c-format 119 | msgid "Invalid low level! It has been reset to default (%d percent)\n" 120 | msgstr "Неважећи ниски ниво! Враћен је на подразумевани (%d посто)\n" 121 | 122 | #: cbatticon.c:257 123 | #, c-format 124 | msgid "Invalid critical level! It has been reset to default (%d percent)\n" 125 | msgstr "Неважећи критични ниво! Враћен је на подразумевани (%d посто)\n" 126 | 127 | #: cbatticon.c:263 128 | msgid "" 129 | "Critical level is higher than low level! They have been reset to default\n" 130 | msgstr "" 131 | "Критични ниво је виши него ниски ниво! Враћени су на подразумеване\n" 132 | 133 | #: cbatticon.c:294 cbatticon.c:326 134 | #, c-format 135 | msgid "type: %-*.*s\tid: %-*.*s\tpath: %s\n" 136 | msgstr "тип: %-*.*s\tid: %-*.*s\tpath: %s\n" 137 | 138 | #: cbatticon.c:294 139 | msgid "Battery" 140 | msgstr "Батерија" 141 | 142 | #: cbatticon.c:326 143 | msgid "AC" 144 | msgstr "Мрежно напајање" 145 | 146 | #: cbatticon.c:348 147 | #, c-format 148 | msgid "Cannot open sysfs directory: %s (%s)\n" 149 | msgstr "Не могу отворити sysfs директориј: %s (%s)\n" 150 | 151 | #: cbatticon.c:355 152 | #, c-format 153 | msgid "No battery with suffix %s found!\n" 154 | msgstr "Није пронађена батерија са суфиксом %s!\n" 155 | 156 | #: cbatticon.c:360 157 | msgid "No battery nor AC power supply found!\n" 158 | msgstr "Није пронађена батерија ни мрежно напајање!\n" 159 | 160 | #: cbatticon.c:672 cbatticon.c:675 161 | msgid "AC only, no battery!" 162 | msgstr "Само мрежно напајање, нема батерије!" 163 | 164 | #: cbatticon.c:793 165 | #, c-format 166 | msgid "Spawning critical battery level command in 30 seconds: %s" 167 | msgstr "Извршујем команду критичног нивоа батерије за 30 секунди: %s" 168 | 169 | #: cbatticon.c:797 170 | #, c-format 171 | msgid "Cannot spawn critical battery level command: %s\n" 172 | msgstr "Не могу извршити команду критичног нивоа батерије: %s\n" 173 | 174 | #: cbatticon.c:800 175 | msgid "Cannot spawn critical battery level command!" 176 | msgstr "Не могу извршити команду критичног нивоа батерије!" 177 | 178 | #: cbatticon.c:817 179 | #, c-format 180 | msgid "Cannot spawn left click command: %s\n" 181 | msgstr "Не могу извршити команду левог клика: %s\n" 182 | 183 | #: cbatticon.c:820 184 | msgid "Cannot spawn left click command!" 185 | msgstr "Не могу извршити команду левог клика!" 186 | 187 | #: cbatticon.c:884 188 | msgid "Battery is missing!" 189 | msgstr "Батерија недостаје!" 190 | 191 | #: cbatticon.c:888 192 | msgid "Battery status is unknown!" 193 | msgstr "Статус батерије је непознат!" 194 | 195 | #: cbatticon.c:892 196 | msgid "Battery is charged!" 197 | msgstr "Батерија је пуна!" 198 | 199 | #: cbatticon.c:896 200 | #, c-format 201 | msgid "Battery is discharging (%i%% remaining)" 202 | msgstr "Батерија се празни (преостало %i%%)" 203 | 204 | #: cbatticon.c:900 205 | #, c-format 206 | msgid "Battery is not charging (%i%% remaining)" 207 | msgstr "батерије се не пуни (преостало %i%%)" 208 | 209 | #: cbatticon.c:904 210 | #, c-format 211 | msgid "Battery level is low! (%i%% remaining)" 212 | msgstr "Ниво батерије је низак! (преостало %i%%)" 213 | 214 | #: cbatticon.c:908 215 | #, c-format 216 | msgid "Battery level is critical! (%i%% remaining)" 217 | msgstr "Ниво батерије је критичан! (преостало %i%%)" 218 | 219 | #: cbatticon.c:912 220 | #, c-format 221 | msgid "Battery is charging (%i%%)" 222 | msgstr "Батерија се пуни (%i%%)" 223 | 224 | #: cbatticon.c:941 225 | #, c-format 226 | msgid "%d minute" 227 | msgid_plural "%d minutes" 228 | msgstr[0] "%d минута" 229 | msgstr[1] "%d минуте" 230 | msgstr[2] "%d минута" 231 | 232 | #: cbatticon.c:942 233 | #, c-format 234 | msgid "%d hour, %s remaining" 235 | msgid_plural "%d hours, %s remaining" 236 | msgstr[0] "%d сат, %s преостало" 237 | msgstr[1] "%d сата, %s преостало" 238 | msgstr[2] "%d сати, %s преостало" 239 | 240 | #: cbatticon.c:944 241 | #, c-format 242 | msgid "%d minute remaining" 243 | msgid_plural "%d minutes remaining" 244 | msgstr[0] "%d минута преостала" 245 | msgstr[1] "%d минуте преостале" 246 | msgstr[2] "%d минута преостало" 247 | -------------------------------------------------------------------------------- /tr.po: -------------------------------------------------------------------------------- 1 | # Turkish translation for cbatticon. 2 | # Copyright (C) 2015-2018 Valère Monseur 3 | # This file is distributed under the same license as the cbatticon package. 4 | # Behzat Erte , 2015. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: cbatticon 1.6.7\n" 9 | "Report-Msgid-Bugs-To: valere.monseur@ymail.com\n" 10 | "POT-Creation-Date: 2015-07-17 20:38+0200\n" 11 | "PO-Revision-Date: 2018-04-08 23:30+0100\n" 12 | "Last-Translator: Behzat Erte \n" 13 | "Language-Team: TR \n" 14 | "Language: Turkish\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: Poedit 1.5.5\n" 19 | "X-Poedit-SourceCharset: UTF-8\n" 20 | "Plural-Forms: nplurals=2; plural=n>1;\n" 21 | 22 | #: cbatticon.c:154 23 | msgid "Display the version" 24 | msgstr "Sürümü göster" 25 | 26 | #: cbatticon.c:155 27 | msgid "Display debug information" 28 | msgstr "Hata ayıklama bilgisini göster" 29 | 30 | #: cbatticon.c:156 31 | msgid "Set update interval (in seconds)" 32 | msgstr "Güncelleme sıklığını ayarla (saniye)" 33 | 34 | #: cbatticon.c:157 35 | msgid "Set icon type ('standard', 'notification' or 'symbolic')" 36 | msgstr "Simge türünü ayarla ('standart', 'bildirim' ya da 'temsili')" 37 | 38 | #: cbatticon.c:158 39 | msgid "Set low battery level (in percent)" 40 | msgstr "Düşük pil seviyesini ayarla (yüzde)" 41 | 42 | #: cbatticon.c:159 43 | msgid "Set critical battery level (in percent)" 44 | msgstr "Kritik pil seviyesini ayarla (yüzde)" 45 | 46 | #: cbatticon.c:160 47 | msgid "Command to execute when critical battery level is reached" 48 | msgstr "Krik seviyeye erişildiğinde komutu çalıştır" 49 | 50 | #: cbatticon.c:161 51 | msgid "Command to execute when left clicking on tray icon" 52 | msgstr "Simgeye sol tuş ile tıklandığında komutu çalıştır" 53 | 54 | #: cbatticon.c:163 55 | msgid "Hide the notification popups" 56 | msgstr "Bildirim balonlarını gizle" 57 | 58 | #: cbatticon.c:165 59 | msgid "List available icon types" 60 | msgstr "Kullanılabilir simge türlerini listele" 61 | 62 | #: cbatticon.c:166 63 | msgid "List available power supplies (battery and AC)" 64 | msgstr "Kullanılabilir güç kaynaklarını listele (pil ve şebeke)" 65 | 66 | #: cbatticon.c:170 67 | msgid "[BATTERY ID]" 68 | msgstr "[PİL ID]" 69 | 70 | #: cbatticon.c:174 71 | #, c-format 72 | msgid "Cannot parse command line arguments: %s\n" 73 | msgstr "Komut satırı değişkenleri ayrıştırılamıyor: %s\n" 74 | 75 | #: cbatticon.c:185 76 | msgid "" 77 | "cbatticon: a lightweight and fast battery icon that sits in your system " 78 | "tray\n" 79 | msgstr "cbatticon: sistem çekmecesinde görünen küçük ve hızlı pil simgesi\n" 80 | 81 | #: cbatticon.c:186 82 | #, c-format 83 | msgid "version %s\n" 84 | msgstr "sürüm %s\n" 85 | 86 | #: cbatticon.c:194 87 | msgid "List of available power supplies:\n" 88 | msgstr "Uygun güç kaynaklarının listesi:\n" 89 | 90 | #: cbatticon.c:209 91 | msgid "List of available icon types:\n" 92 | msgstr "Uygun simge türlerinin listesi:\n" 93 | 94 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 95 | msgid "available" 96 | msgstr "uygun" 97 | 98 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 cbatticon.c:540 99 | #: cbatticon.c:548 cbatticon.c:570 100 | msgid "unavailable" 101 | msgstr "uygun değil" 102 | 103 | #: cbatticon.c:226 104 | #, c-format 105 | msgid "Unknown icon type: %s\n" 106 | msgstr "Bilinmeyen simge türü: %s\n" 107 | 108 | #: cbatticon.c:238 109 | msgid "No icon type found!\n" 110 | msgstr "Hiç simge türü bulunamadı!\n" 111 | 112 | #: cbatticon.c:245 113 | #, c-format 114 | msgid "Invalid update interval! It has been reset to default (%d seconds)\n" 115 | msgstr "Geçersiz güncelleme aralığı! Varsayılan ayarlara dönecek (%d saniye)\n" 116 | 117 | #: cbatticon.c:252 118 | #, c-format 119 | msgid "Invalid low level! It has been reset to default (%d percent)\n" 120 | msgstr "Geçersiz alt seviye! Varsayılan ayarlara dönecek (yüzde %d)\n" 121 | 122 | #: cbatticon.c:257 123 | #, c-format 124 | msgid "Invalid critical level! It has been reset to default (%d percent)\n" 125 | msgstr "Geçersiz kritik seviye! Varsayılan ayarlara dönecek (yüzde %d)\n" 126 | 127 | #: cbatticon.c:263 128 | msgid "" 129 | "Critical level is higher than low level! They have been reset to default\n" 130 | msgstr "" 131 | "Kritik seviye alt seviyeden yüksek! Varsayılan ayarlarına döndürülecekler\n" 132 | 133 | #: cbatticon.c:294 cbatticon.c:326 134 | #, c-format 135 | msgid "type: %-*.*s\tid: %-*.*s\tpath: %s\n" 136 | msgstr "tür: %-*.*s\tid: %-*.*s\tyol: %s\n" 137 | 138 | #: cbatticon.c:294 139 | msgid "Battery" 140 | msgstr "Pil" 141 | 142 | #: cbatticon.c:326 143 | msgid "AC" 144 | msgstr "Şebeke" 145 | 146 | #: cbatticon.c:348 147 | #, c-format 148 | msgid "Cannot open sysfs directory: %s (%s)\n" 149 | msgstr "sysfs klasörü açılamıyor: %s (%s)\n" 150 | 151 | #: cbatticon.c:355 152 | #, c-format 153 | msgid "No battery with suffix %s found!\n" 154 | msgstr "Pil ile eki %s bulunamadı!\n" 155 | 156 | #: cbatticon.c:360 157 | msgid "No battery nor AC power supply found!\n" 158 | msgstr "Pil ya da şebeke güç ünitesi bulunamadı!\n" 159 | 160 | #: cbatticon.c:672 cbatticon.c:675 161 | msgid "AC only, no battery!" 162 | msgstr "Sadece şebeke, pil yok!" 163 | 164 | #: cbatticon.c:793 165 | #, c-format 166 | msgid "Spawning critical battery level command in 30 seconds: %s" 167 | msgstr "Kritik pil seviyesi komutu 30 saniye içerisinde üretilecek: %s" 168 | 169 | #: cbatticon.c:797 170 | #, c-format 171 | msgid "Cannot spawn critical battery level command: %s\n" 172 | msgstr "Kritik seviye komutu üretilemiyor: %s\n" 173 | 174 | #: cbatticon.c:800 175 | msgid "Cannot spawn critical battery level command!" 176 | msgstr "Kritik pil seviyesi komutu oluşturulamıyor!" 177 | 178 | #: cbatticon.c:817 179 | #, c-format 180 | msgid "Cannot spawn left click command: %s\n" 181 | msgstr "Sol tuş komutu üretilemiyor: %s\n" 182 | 183 | #: cbatticon.c:820 184 | msgid "Cannot spawn left click command!" 185 | msgstr "Sol tuş komutu oluşturulamıyor!" 186 | 187 | #: cbatticon.c:884 188 | msgid "Battery is missing!" 189 | msgstr "Pil kayıp!" 190 | 191 | #: cbatticon.c:888 192 | msgid "Battery status is unknown!" 193 | msgstr "Pil durumu bilinmiyor!" 194 | 195 | #: cbatticon.c:892 196 | msgid "Battery is charged!" 197 | msgstr "Pil dolduruldu!" 198 | 199 | #: cbatticon.c:896 200 | msgid "Battery is discharging (%i%% remaining)" 201 | msgstr "Pil boşalıyor (%i%% kalan)" 202 | 203 | #: cbatticon.c:900 204 | msgid "Battery is not charging (%i%% remaining)" 205 | msgstr "Pil doldurulmuyor (%i%% kalan)" 206 | 207 | #: cbatticon.c:904 208 | msgid "Battery level is low! (%i%% remaining)" 209 | msgstr "Pil durumu düşük! (%i%% kalan)" 210 | 211 | #: cbatticon.c:908 212 | msgid "Battery level is critical! (%i%% remaining)" 213 | msgstr "Pil kritik seviyede! (%i%% kalan)" 214 | 215 | #: cbatticon.c:912 216 | msgid "Battery is charging (%i%%)" 217 | msgstr "Pil dolduruluyor (%i%%)" 218 | 219 | #: cbatticon.c:941 220 | msgid "%d minute" 221 | msgid_plural "%d minutes" 222 | msgstr[0] "%d dakika" 223 | msgstr[1] "%d dakika" 224 | 225 | #: cbatticon.c:942 226 | msgid "%d hour, %s remaining" 227 | msgid_plural "%d hours, %s remaining" 228 | msgstr[0] "%d saat, %s kaldı" 229 | msgstr[1] "%d saat, %s kaldı" 230 | 231 | #: cbatticon.c:944 232 | msgid "%d minute remaining" 233 | msgid_plural "%d minutes remaining" 234 | msgstr[0] "%d dakika kaldı" 235 | msgstr[1] "%d dakika kaldı" 236 | -------------------------------------------------------------------------------- /zh_TW.po: -------------------------------------------------------------------------------- 1 | # Traditional Chinese translation for cbatticon. 2 | # Copyright (C) 2017-2018 Valère Monseur 3 | # This file is distributed under the same license as the cbatticon package. 4 | # Lego Chiang , 2017. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: cbatticon 1.6.7\n" 9 | "Report-Msgid-Bugs-To: valere.monseur@ymail.com\n" 10 | "POT-Creation-Date: 2016-09-11 18:57+0900\n" 11 | "PO-Revision-Date: 2018-04-08 23:28+0100\n" 12 | "Language-Team: N/A\n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=UTF-8\n" 15 | "Content-Transfer-Encoding: 8bit\n" 16 | "Plural-Forms: nplurals=1; plural=0;\n" 17 | "Last-Translator: Lego Chiang \n" 18 | "Language: zh_TW\n" 19 | 20 | #: cbatticon.c:154 21 | msgid "Display the version" 22 | msgstr "顯示版本" 23 | 24 | #: cbatticon.c:155 25 | msgid "Display debug information" 26 | msgstr "顯示除錯資訊" 27 | 28 | #: cbatticon.c:156 29 | msgid "Set update interval (in seconds)" 30 | msgstr "設定更新間隔 (秒)" 31 | 32 | #: cbatticon.c:157 33 | msgid "Set icon type ('standard', 'notification' or 'symbolic')" 34 | msgstr "設定圖示類型 ('標準', '通知', '符號')" 35 | 36 | #: cbatticon.c:158 37 | msgid "Set low battery level (in percent)" 38 | msgstr "設定低電量水平 (百分比)" 39 | 40 | #: cbatticon.c:159 41 | msgid "Set critical battery level (in percent)" 42 | msgstr "設定危急電量水平 (百分比)" 43 | 44 | #: cbatticon.c:160 45 | msgid "Command to execute when critical battery level is reached" 46 | msgstr "達到危急電量水平時執行的指令" 47 | 48 | #: cbatticon.c:161 49 | msgid "Command to execute when left clicking on tray icon" 50 | msgstr "左鍵點擊托盤圖示時執行的指令" 51 | 52 | #: cbatticon.c:163 53 | msgid "Hide the notification popups" 54 | msgstr "隱藏彈出式通知" 55 | 56 | #: cbatticon.c:165 57 | msgid "List available icon types" 58 | msgstr "可用圖示類型列表" 59 | 60 | #: cbatticon.c:166 61 | msgid "List available power supplies (battery and AC)" 62 | msgstr "可用電源列表 (電池 和 AC電源)" 63 | 64 | #: cbatticon.c:170 65 | msgid "[BATTERY ID]" 66 | msgstr "[電池 ID]" 67 | 68 | #: cbatticon.c:174 69 | #, c-format 70 | msgid "Cannot parse command line arguments: %s\n" 71 | msgstr "無法解析的命令參數: %s\n" 72 | 73 | #: cbatticon.c:185 74 | msgid "" 75 | "cbatticon: a lightweight and fast battery icon that sits in your system " 76 | "tray\n" 77 | msgstr "" 78 | "cbatticon: 一個在系統托盤中, 輕量快速的電池圖示\n" 79 | 80 | #: cbatticon.c:186 81 | #, c-format 82 | msgid "version %s\n" 83 | msgstr "版本 %s\n" 84 | 85 | #: cbatticon.c:194 86 | msgid "List of available power supplies:\n" 87 | msgstr "可用的電源:\n" 88 | 89 | #: cbatticon.c:209 90 | msgid "List of available icon types:\n" 91 | msgstr "可用的圖示類型:\n" 92 | 93 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 94 | msgid "available" 95 | msgstr "可用的" 96 | 97 | #: cbatticon.c:210 cbatticon.c:211 cbatticon.c:212 cbatticon.c:540 98 | #: cbatticon.c:548 cbatticon.c:570 99 | msgid "unavailable" 100 | msgstr "不可用的" 101 | 102 | #: cbatticon.c:226 103 | #, c-format 104 | msgid "Unknown icon type: %s\n" 105 | msgstr "未知的圖示類型: %s\n" 106 | 107 | #: cbatticon.c:238 108 | msgid "No icon type found!\n" 109 | msgstr "找不到圖示類型!\n" 110 | 111 | #: cbatticon.c:245 112 | #, c-format 113 | msgid "" 114 | "Invalid update interval! It has been reset to default (%d seconds)\n" 115 | msgstr "" 116 | "不合法的更新間隔! 將會設定為初始值(%d 秒)\n" 117 | 118 | #: cbatticon.c:252 119 | #, c-format 120 | msgid "Invalid low level! It has been reset to default (%d percent)\n" 121 | msgstr "" 122 | "不合法的低電量水平! 將會設定為初始值(%d 百分比)\n" 123 | 124 | #: cbatticon.c:257 125 | #, c-format 126 | msgid "" 127 | "Invalid critical level! It has been reset to default (%d percent)\n" 128 | msgstr "" 129 | "不合法的危急電量水平! 將會設定為初始值(%d 百分比)\n" 130 | 131 | #: cbatticon.c:263 132 | msgid "" 133 | "Critical level is higher than low level! They have been reset to " 134 | "default\n" 135 | msgstr "" 136 | "危急電量水平高於低電量水平! 將會設定為初始值\n" 137 | 138 | #: cbatticon.c:294 cbatticon.c:326 139 | #, c-format 140 | msgid "type: %-*.*s\tid: %-*.*s\tpath: %s\n" 141 | msgstr "type: %-*.*s\tid: %-*.*s\tpath: %s\n" 142 | 143 | #: cbatticon.c:294 144 | msgid "Battery" 145 | msgstr "電池" 146 | 147 | #: cbatticon.c:326 148 | msgid "AC" 149 | msgstr "AC電源" 150 | 151 | #: cbatticon.c:348 152 | #, c-format 153 | msgid "Cannot open sysfs directory: %s (%s)\n" 154 | msgstr "無法開啟 sysfs 資料夾: %s (%s)\n" 155 | 156 | #: cbatticon.c:355 157 | #, c-format 158 | msgid "No battery with suffix %s found!\n" 159 | msgstr "找不到結尾為 %s 的電池\n" 160 | 161 | #: cbatticon.c:360 162 | msgid "No battery nor AC power supply found!\n" 163 | msgstr "找不到任何電池或AC電源\n" 164 | 165 | #: cbatticon.c:672 cbatticon.c:675 166 | msgid "AC only, no battery!" 167 | msgstr "只有AC電源, 沒有電池!" 168 | 169 | #: cbatticon.c:793 170 | #, c-format 171 | msgid "Spawning critical battery level command in 30 seconds: %s" 172 | msgstr "在30秒內產生危急電量指令: %s" 173 | 174 | #: cbatticon.c:797 175 | #, c-format 176 | msgid "Cannot spawn critical battery level command: %s\n" 177 | msgstr "無法產生危急電量指令: %s\n" 178 | 179 | #: cbatticon.c:800 180 | msgid "Cannot spawn critical battery level command!" 181 | msgstr "無法產生危急電量指令!" 182 | 183 | #: cbatticon.c:817 184 | #, c-format 185 | msgid "Cannot spawn left click command: %s\n" 186 | msgstr "無法產生左鍵點擊指令: %s\n" 187 | 188 | #: cbatticon.c:820 189 | msgid "Cannot spawn left click command!" 190 | msgstr "無法產生左鍵點擊指令!" 191 | 192 | #: cbatticon.c:884 193 | msgid "Battery is missing!" 194 | msgstr "找不到電池!" 195 | 196 | #: cbatticon.c:888 197 | msgid "Battery status is unknown!" 198 | msgstr "未知的電池狀態!" 199 | 200 | #: cbatticon.c:892 201 | msgid "Battery is charged!" 202 | msgstr "電池充電中!" 203 | 204 | #: cbatticon.c:896 205 | #, c-format 206 | msgid "Battery is discharging (%i%% remaining)" 207 | msgstr "電池放電中 (剩餘 %i%%)" 208 | 209 | #: cbatticon.c:900 210 | #, c-format 211 | msgid "Battery is not charging (%i%% remaining)" 212 | msgstr "電池未充電 (剩餘 %i%%)" 213 | 214 | #: cbatticon.c:904 215 | #, c-format 216 | msgid "Battery level is low! (%i%% remaining)" 217 | msgstr "電池電量低! (剩餘 %i%%)" 218 | 219 | #: cbatticon.c:908 220 | #, c-format 221 | msgid "Battery level is critical! (%i%% remaining)" 222 | msgstr "電池電量危急! (剩餘 %i%%)" 223 | 224 | #: cbatticon.c:912 225 | #, c-format 226 | msgid "Battery is charging (%i%%)" 227 | msgstr "電池充電中 (%i%%)" 228 | 229 | #: cbatticon.c:941 230 | #, c-format 231 | msgid "%d minute" 232 | msgid_plural "%d minutes" 233 | msgstr[0] "%d 分" 234 | 235 | #: cbatticon.c:942 236 | #, c-format 237 | msgid "%d hour, %s remaining" 238 | msgid_plural "%d hours, %s remaining" 239 | msgstr[0] "剩餘 %d 小時 %s" 240 | 241 | #: cbatticon.c:944 242 | #, c-format 243 | msgid "%d minute remaining" 244 | msgid_plural "%d minutes remaining" 245 | msgstr[0] "剩餘 %d 分" 246 | --------------------------------------------------------------------------------