extensionUtils: Add gettext convenience helpers

We have initTranslations() for binding an extension's
gettext domain, but nothing to help with using gettext
from an extension.

Such help would be useful though, as an extension that
calls textdomain() like a normal application would
inadvertently changes the default domain for the whole
gnome-shell process.

Instead, extensions have to use domain-specific versions
of the gettext functions:

```js
const Gettext = imports.gettext.domain('my-extension');
const _ = Gettext.gettext;
```

Make this a bit easier by adding those functions directly
to the extensions object when initTranslations() is called,
then expose helper functions for calling them.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2594

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1941>
This commit is contained in:
Florian Müllner
2020-04-12 02:45:55 +02:00
committed by Marge Bot
parent b9f38f95e3
commit 1deb13e1aa
3 changed files with 64 additions and 5 deletions

View File

@ -22,14 +22,13 @@ const GETTEXT_DOMAIN = 'my-indicator-extension';
const { GObject, St } = imports.gi;
const Gettext = imports.gettext.domain(GETTEXT_DOMAIN);
const _ = Gettext.gettext;
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const _ = ExtensionUtils.gettext;
const Indicator = GObject.registerClass(
class Indicator extends PanelMenu.Button {
_init() {