mirror of
https://github.com/labwc/labwc.git
synced 2026-04-09 08:21:18 -04:00
clients/: add lab-exit to display an exit window with labnag.
closes #917 Summary follows: - src/menu/menu.c: add `leave` action to call lab-exit. - clients/meson.build: add install routine for lab-exit and lab-sensible-terminal. - meson.build remove lab-sensible-terminal routine re the comment. - po/labwc.pot: rebuild with new xgettext commands. - po/it.po: add translations for lab-exit and edit my email. - CONTRIBUTING.md#translations: modify the instructions for coders as two xgettext commands are needed since we now have two GUI facing languages that have translatable strings.
This commit is contained in:
parent
2e9292b7a3
commit
ff45d1b363
7 changed files with 146 additions and 93 deletions
|
|
@ -450,27 +450,38 @@ translation strings under each English string.
|
||||||
## Coders
|
## Coders
|
||||||
|
|
||||||
Code contributors may need to update relevant files if their additions
|
Code contributors may need to update relevant files if their additions
|
||||||
affect UI elements (at the moment only `src/menu/menu.c` and
|
affect UI elements (at the moment only `src/menu/menu.c`, `src/config/rcxml.c`
|
||||||
`src/config/rcxml.c`). In this case the `po/labwc.pot` file needs to be
|
and `clients/lab-exit`). In this case the `po/labwc.pot` file needs to be
|
||||||
updated so that translators can update their translations. Remember,
|
updated so that translators can update their translations. Remember,
|
||||||
many translators are _not_ coders!
|
many translators are _not_ coders!
|
||||||
|
|
||||||
The process is fairly trivial however does involve some manual steps.
|
The process is fairly trivial however does involve some manual steps.
|
||||||
|
|
||||||
1. After adding and testing your code additions to satisfaction, backup
|
After adding and testing your code additions to satisfaction, there are
|
||||||
`po/labwc.pot`. You need the custom header from that file for the newly
|
two commands needed to generate a sane `po/labwc.pot` file. Two commands are
|
||||||
generated .pot file in the next step.
|
necessary because we now are using `C` and `Shell` in GUI facing files.
|
||||||
|
|
||||||
2. From the root of the repository run this:
|
1. From the root of the repository run this:
|
||||||
|
|
||||||
```
|
```
|
||||||
xgettext --keyword=_ --language=C --add-comments -o po/labwc.pot src/menu/menu.c src/config/rcxml.c
|
xgettext --keyword=_ --language=C --add-comments -o po/labwc.pot src/menu/menu.c\
|
||||||
|
src/config/rcxml.c --package-name=labwc --msgid-bugs-address=https://github.com/labwc/labwc/issues\
|
||||||
|
--copyright-holder="2025 labwc team"
|
||||||
```
|
```
|
||||||
|
|
||||||
This generates a new pot file at `po/labwc.pot`
|
This generates a new pot file at `po/labwc.pot`
|
||||||
|
|
||||||
3. Copy the header from the original `labwc.pot` to the new one, keeping
|
2. Then next run this:
|
||||||
the newly generated dates, check for sanity and commit.
|
```
|
||||||
|
xgettext -j --keyword=_ --language=Shell --add-comments -o po/labwc.pot clients/lab-exit\
|
||||||
|
--package-name=labwc --msgid-bugs-address=https://github.com/labwc/labwc/issues\
|
||||||
|
--copyright-holder="2025 labwc team"
|
||||||
|
```
|
||||||
|
|
||||||
|
This appends the shell script translatable strings to the `C` code strings
|
||||||
|
generated with the first command via the `-j` option to `xgettext`
|
||||||
|
|
||||||
|
View the `xgettext` manual for explanation of the other options.
|
||||||
|
|
||||||
# Upversion
|
# Upversion
|
||||||
|
|
||||||
|
|
|
||||||
27
clients/lab-exit
Executable file
27
clients/lab-exit
Executable file
|
|
@ -0,0 +1,27 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# logout with labnag
|
||||||
|
|
||||||
|
export TEXTDOMAIN=labwc
|
||||||
|
export OUTPUT_CHARSET=UTF-8
|
||||||
|
alias _='gettext'
|
||||||
|
|
||||||
|
QUESTION=$(_ 'Are you sure you want to quit Labwc?')
|
||||||
|
YES=$(_ 'Yes')
|
||||||
|
NO=$(_ 'No')
|
||||||
|
|
||||||
|
labnag \
|
||||||
|
-f "mono 10"\
|
||||||
|
-m "$QUESTION"\
|
||||||
|
-Z " $YES " "labwc -e"\
|
||||||
|
-Z " $NO "\
|
||||||
|
--background 00ffff\
|
||||||
|
--button-background 00ffff\
|
||||||
|
--border 00ccccaa\
|
||||||
|
--text 000000\
|
||||||
|
--button-text 000000\
|
||||||
|
--button-gap 8\
|
||||||
|
--button-margin-right 0\
|
||||||
|
--button-padding 5\
|
||||||
|
--button-border-size 2\
|
||||||
|
-t 60
|
||||||
|
|
@ -54,3 +54,7 @@ executable(
|
||||||
install: true
|
install: true
|
||||||
)
|
)
|
||||||
|
|
||||||
|
clients = ['lab-sensible-terminal', 'lab-exit']
|
||||||
|
foreach client : clients
|
||||||
|
install_data(client, install_dir: get_option('bindir'))
|
||||||
|
endforeach
|
||||||
|
|
|
||||||
|
|
@ -199,10 +199,6 @@ install_data('data/labwc.desktop', install_dir: get_option('datadir') / 'wayland
|
||||||
|
|
||||||
install_data('data/labwc-portals.conf', install_dir: get_option('datadir') / 'xdg-desktop-portal')
|
install_data('data/labwc-portals.conf', install_dir: get_option('datadir') / 'xdg-desktop-portal')
|
||||||
|
|
||||||
# TODO: move this to clients/meson.build after the labnag PR
|
|
||||||
clients = files('clients/lab-sensible-terminal')
|
|
||||||
install_data(clients, install_dir: get_option('bindir'))
|
|
||||||
|
|
||||||
icons = ['labwc-symbolic.svg', 'labwc.svg']
|
icons = ['labwc-symbolic.svg', 'labwc.svg']
|
||||||
foreach icon : icons
|
foreach icon : icons
|
||||||
icon_path = join_paths('data', icon)
|
icon_path = join_paths('data', icon)
|
||||||
|
|
|
||||||
54
po/it.po
54
po/it.po
|
|
@ -1,7 +1,7 @@
|
||||||
# Labwc pot file
|
# Labwc pot file
|
||||||
# Copyright (C) 2022
|
# Copyright (C) 2022
|
||||||
# This file is distributed under the same license as the labwc package.
|
# This file is distributed under the same license as the labwc package.
|
||||||
# Mick Amadio <01micko@gmail.com>, 2022.
|
# Mick Amadio <01micko@gmx.com>, 2022.
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
@ -19,62 +19,66 @@ msgstr ""
|
||||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
"X-Generator: Weblate 4.2.1\n"
|
"X-Generator: Weblate 4.2.1\n"
|
||||||
|
|
||||||
#: src/menu/menu.c:1016
|
#: src/menu/menu.c:867
|
||||||
|
msgid "Always on Visible Workspace"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/menu/menu.c:924
|
||||||
msgid "Go there..."
|
msgid "Go there..."
|
||||||
msgstr "Vai lì..."
|
msgstr "Vai lì..."
|
||||||
|
|
||||||
#: src/menu/menu.c:1034
|
#: src/menu/menu.c:943
|
||||||
msgid "Terminal"
|
msgid "Terminal"
|
||||||
msgstr "Terminale"
|
msgstr "Terminale"
|
||||||
|
|
||||||
#: src/menu/menu.c:1040
|
#: src/menu/menu.c:949
|
||||||
msgid "Reconfigure"
|
msgid "Reconfigure"
|
||||||
msgstr "Riconfigura"
|
msgstr "Riconfigura"
|
||||||
|
|
||||||
#: src/menu/menu.c:1042
|
#: src/menu/menu.c:951
|
||||||
msgid "Exit"
|
msgid "Exit"
|
||||||
msgstr "Esci"
|
msgstr "Esci"
|
||||||
|
|
||||||
#: src/menu/menu.c:1056
|
#: src/menu/menu.c:966
|
||||||
msgid "Minimize"
|
msgid "Minimize"
|
||||||
msgstr "Minimizza"
|
msgstr "Minimizza"
|
||||||
|
|
||||||
#: src/menu/menu.c:1058
|
#: src/menu/menu.c:968
|
||||||
msgid "Maximize"
|
msgid "Maximize"
|
||||||
msgstr "Massimizza"
|
msgstr "Massimizza"
|
||||||
|
|
||||||
#: src/menu/menu.c:1060
|
#: src/menu/menu.c:970
|
||||||
msgid "Fullscreen"
|
msgid "Fullscreen"
|
||||||
msgstr "Schermo intero"
|
msgstr "Schermo intero"
|
||||||
|
|
||||||
#: src/menu/menu.c:1062
|
#: src/menu/menu.c:972
|
||||||
msgid "Roll Up/Down"
|
msgid "Roll Up/Down"
|
||||||
msgstr "Arrotola/srotola"
|
msgstr "Arrotola/srotola"
|
||||||
|
|
||||||
#: src/menu/menu.c:1064
|
#: src/menu/menu.c:974
|
||||||
msgid "Decorations"
|
msgid "Decorations"
|
||||||
msgstr "Decorazioni"
|
msgstr "Decorazioni"
|
||||||
|
|
||||||
#: src/menu/menu.c:1066
|
#: src/menu/menu.c:976
|
||||||
msgid "Always on Top"
|
msgid "Always on Top"
|
||||||
msgstr "Sempre sopra"
|
msgstr "Sempre sopra"
|
||||||
|
|
||||||
#: src/menu/menu.c:1071
|
#: src/menu/menu.c:980 src/menu/menu.c:999 src/config/rcxml.c:1708
|
||||||
msgid "Move Left"
|
|
||||||
msgstr "Sposta a sinistra"
|
|
||||||
|
|
||||||
#: src/menu/menu.c:1078
|
|
||||||
msgid "Move Right"
|
|
||||||
msgstr "Sposta a destra"
|
|
||||||
|
|
||||||
#: src/menu/menu.c:1083
|
|
||||||
msgid "Always on Visible Workspace"
|
|
||||||
msgstr "Sempre sull'area di lavoro visibile"
|
|
||||||
|
|
||||||
#: src/menu/menu.c:1086
|
|
||||||
msgid "Workspace"
|
msgid "Workspace"
|
||||||
msgstr "Area di lavoro"
|
msgstr "Area di lavoro"
|
||||||
|
|
||||||
#: src/menu/menu.c:1089
|
#: src/menu/menu.c:983
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Chiudi"
|
msgstr "Chiudi"
|
||||||
|
|
||||||
|
#: clients/lab-exit:9
|
||||||
|
msgid "Are you sure you want to quit Labwc?"
|
||||||
|
msgstr "Sei sicuro di voler uscire da Labwc?"
|
||||||
|
|
||||||
|
#: clients/lab-exit:10
|
||||||
|
msgid "Yes"
|
||||||
|
msgstr "Si"
|
||||||
|
|
||||||
|
#: clients/lab-exit:11
|
||||||
|
msgid "No"
|
||||||
|
msgstr "No"
|
||||||
|
|
|
||||||
118
po/labwc.pot
118
po/labwc.pot
|
|
@ -1,5 +1,5 @@
|
||||||
# Labwc pot file
|
# SOME DESCRIPTIVE TITLE.
|
||||||
# Copyright (C) 2024
|
# Copyright (C) YEAR 2025 labwc team
|
||||||
# This file is distributed under the same license as the labwc package.
|
# This file is distributed under the same license as the labwc package.
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
#
|
#
|
||||||
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: labwc\n"
|
"Project-Id-Version: labwc\n"
|
||||||
"Report-Msgid-Bugs-To: https://github.com/labwc/labwc/issues\n"
|
"Report-Msgid-Bugs-To: https://github.com/labwc/labwc/issues\n"
|
||||||
"POT-Creation-Date: 2024-09-19 21:09+1000\n"
|
"POT-Creation-Date: 2025-08-30 14:21+1000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|
@ -17,62 +17,72 @@ msgstr ""
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
#: src/menu/menu.c:1016
|
#: src/menu/menu.c:867
|
||||||
msgid "Go there..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/menu/menu.c:1034
|
|
||||||
msgid "Terminal"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/menu/menu.c:1040
|
|
||||||
msgid "Reconfigure"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/menu/menu.c:1042
|
|
||||||
msgid "Exit"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/menu/menu.c:1056
|
|
||||||
msgid "Minimize"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/menu/menu.c:1058
|
|
||||||
msgid "Maximize"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/menu/menu.c:1060
|
|
||||||
msgid "Fullscreen"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/menu/menu.c:1062
|
|
||||||
msgid "Roll Up/Down"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/menu/menu.c:1064
|
|
||||||
msgid "Decorations"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/menu/menu.c:1066
|
|
||||||
msgid "Always on Top"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/menu/menu.c:1071
|
|
||||||
msgid "Move Left"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/menu/menu.c:1078
|
|
||||||
msgid "Move Right"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/menu/menu.c:1083
|
|
||||||
msgid "Always on Visible Workspace"
|
msgid "Always on Visible Workspace"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/menu/menu.c:1086
|
#: src/menu/menu.c:924
|
||||||
|
msgid "Go there..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/menu/menu.c:943
|
||||||
|
msgid "Terminal"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/menu/menu.c:949
|
||||||
|
msgid "Reconfigure"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/menu/menu.c:951
|
||||||
|
msgid "Exit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/menu/menu.c:966
|
||||||
|
msgid "Minimize"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/menu/menu.c:968
|
||||||
|
msgid "Maximize"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/menu/menu.c:970
|
||||||
|
msgid "Fullscreen"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/menu/menu.c:972
|
||||||
|
msgid "Roll Up/Down"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/menu/menu.c:974
|
||||||
|
msgid "Decorations"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/menu/menu.c:976
|
||||||
|
msgid "Always on Top"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Workspace sub-menu
|
||||||
|
#: src/menu/menu.c:980 src/menu/menu.c:999 src/config/rcxml.c:1708
|
||||||
msgid "Workspace"
|
msgid "Workspace"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/menu/menu.c:1089
|
#: src/menu/menu.c:983
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#. Just create placeholder. Contents will be created when launched
|
||||||
|
#: src/menu/menu.c:998
|
||||||
|
msgid "Windows"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: clients/lab-exit:9
|
||||||
|
msgid "Are you sure you want to quit Labwc?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: clients/lab-exit:10
|
||||||
|
msgid "Yes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: clients/lab-exit:11
|
||||||
|
msgid "No"
|
||||||
|
msgstr ""
|
||||||
|
|
|
||||||
|
|
@ -949,7 +949,8 @@ init_rootmenu(struct server *server)
|
||||||
item = item_create(menu, _("Reconfigure"), NULL, false);
|
item = item_create(menu, _("Reconfigure"), NULL, false);
|
||||||
item_add_action(item, "Reconfigure");
|
item_add_action(item, "Reconfigure");
|
||||||
item = item_create(menu, _("Exit"), NULL, false);
|
item = item_create(menu, _("Exit"), NULL, false);
|
||||||
item_add_action(item, "Exit");
|
struct action *leave = item_add_action(item, "Execute");
|
||||||
|
action_arg_add_str(leave, "command", "lab-exit");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue