Руссификация аплетов Cinnamon.

Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
Аватара пользователя

Автор темы
di_mok
Сообщения: 5469
Зарегистрирован: 27 авг 2016, 19:06
Решено: 32
Откуда: Арзамас
Благодарил (а): 1593 раза
Поблагодарили: 1276 раз
Контактная информация:

Руссификация аплетов Cinnamon.

#1

02 сен 2016, 20:23

В Cinnamon не часто, но попадаются не русифицированные аплеты. Впринципе, ни какой трагедии нет. Покажу на примере с аплетом ScreenShot.

Cinnamon хранит файлы конфигураций аплетов в папке

Код: Выделить всё

~/.local/share/cinnamon/applets/
Смотрим

Код: Выделить всё

cd ~/.local/share/cinnamon/applets/
ls
places-bookmarks@dmo60.de  ScreenShot@tech71  weather@mockturtl
Названия папок созвучны с названием аплетов. А собственно файлик называется applet.js

Т.е., в нашем случае нужно набрать в терминале:

Код: Выделить всё

xed ~/.local/share/cinnamon/applets/ScreenShot@tech71/applet.js
В редакторе откроется вот такое содержимое:

Код: Выделить всё

//ScreenShot Applet By Infektedpc
const Applet = imports.ui.applet;
const Main = imports.ui.main;
const PopupMenu = imports.ui.popupMenu;
const Util = imports.misc.util;

function ConfirmDialog(){
    this._init();
}


function MyApplet(orientation) {
    this._init(orientation);
}

MyApplet.prototype = {
    __proto__: Applet.IconApplet.prototype,

    _init: function(orientation) {        
        Applet.IconApplet.prototype._init.call(this, orientation);
        
        try {        
            this.set_applet_icon_symbolic_name("camera-photo-symbolic");
            this.set_applet_tooltip(_("Take A Screen Shot"));
            
            this.menuManager = new PopupMenu.PopupMenuManager(this);
            this.menu = new Applet.AppletPopupMenu(this, orientation);
            this.menuManager.addMenu(this.menu);        
                                                                
            this._contentSection = new PopupMenu.PopupMenuSection();
            this.menu.addMenuItem(this._contentSection);                    
                                                    
          
		//Advanced Screenshot - opens gnome-screenshot
		this.menu.addAction(_("ScreenShot"), function(event) {
                Main.Util.spawnCommandLine("gnome-screenshot --interactive");
		}); 

		//Whole Screen - Dropdown Menu		
		this.screenshotItem = new PopupMenu.PopupSubMenuMenuItem(_("Whole Screen")); 
		//1 Sec Delay
		this.screenshotItem.menu.addAction(_("1 Second Delay"), function(actor, event) {
		Main.Util.spawnCommandLine("gnome-screenshot --delay 1");
		});
		//3 Sec Delay
		this.screenshotItem.menu.addAction(_("3 Second Delay"), function(actor, event) {
		Main.Util.spawnCommandLine("gnome-screenshot --delay 3");
		}); 
		//5 Sec Delay
		this.screenshotItem.menu.addAction(_("5 Second Delay"), function(actor, event) {
		Main.Util.spawnCommandLine("gnome-screenshot --delay 5");
		});  
                       
		this.menu.addMenuItem(this.screenshotItem); 



		//Current Window
		this.menu.addAction(_("Current Window"), function(event) {
                Main.Util.spawnCommandLine("gnome-screenshot -w");
		}); 

		//Selected Area
		this.menu.addAction(_("Selected Area"), function(event) {
                Main.Util.spawnCommandLine("gnome-screenshot -a");
		});
	
                        
        }
        catch (e) {
            global.logError(e);
        }
    },
    
    on_applet_clicked: function(event) {
        this.menu.toggle();        
    },
        
    
};

function main(metadata, orientation) {  
    let myApplet = new MyApplet(orientation);
    return myApplet;      
}
Вовсе не нужно знать JS что-бы разобраться с проблемой. Просто пробегите глазами, или воспользуйтесь Ctrl + F для поиска, что-бы найти виновников торжества.

Поехали. (Строки вставляю "как есть", чтобы было понятней)

Первая нужная строка отвечает за всплывающее название аплета
Найти

Код: Выделить всё

            this.set_applet_tooltip(_("Take A Screen Shot"));
Заменить на

Код: Выделить всё

            this.set_applet_tooltip(_("Сделать снимок экрана"));
Добрались до меню
Найти

Код: Выделить всё

            this.set_applet_tooltip(_("Take A Screen Shot"));
Заменить на

Код: Выделить всё

            this.set_applet_tooltip(_("Сделать снимок экрана"));
Найти

Код: Выделить всё

		this.screenshotItem = new PopupMenu.PopupSubMenuMenuItem(_("Whole Screen"));

Заменить на

Код: Выделить всё

		this.screenshotItem = new PopupMenu.PopupSubMenuMenuItem(_("Весь экран"));


Найти

Код: Выделить всё

		this.screenshotItem.menu.addAction(_("1 Second Delay"), function(actor, event) {
Заменить на

Код: Выделить всё

		this.screenshotItem.menu.addAction(_("Задержка 1 сек."), function(actor, event) {
Найти

Код: Выделить всё

		this.screenshotItem.menu.addAction(_("3 Second Delay"), function(actor, event) {
Заменить на

Код: Выделить всё

		this.screenshotItem.menu.addAction(_("Задержка 3 сек."), function(actor, event) {
Найти

Код: Выделить всё

		this.screenshotItem.menu.addAction(_("5 Second Delay"), function(actor, event) {
Заменить на

Код: Выделить всё

		this.screenshotItem.menu.addAction(_("Задержка 5 сек."), function(actor, event) {
Найти

Код: Выделить всё

		this.menu.addAction(_("Current Window"), function(event) {
Заменить на

Код: Выделить всё

		this.menu.addAction(_("Текущее окно"), function(event) {
Найти

Код: Выделить всё

		this.menu.addAction(_("Selected Area"), function(event) {
Заменить на

Код: Выделить всё

		this.menu.addAction(_("Выбранная область"), function(event) {
Перезагружаем Cinnomon. Готово.

Для ленивых целиком:

Код: Выделить всё

//ScreenShot Applet By Infektedpc
const Applet = imports.ui.applet;
const Main = imports.ui.main;
const PopupMenu = imports.ui.popupMenu;
const Util = imports.misc.util;

function ConfirmDialog(){
    this._init();
}


function MyApplet(orientation) {
    this._init(orientation);
}

MyApplet.prototype = {
    __proto__: Applet.IconApplet.prototype,

    _init: function(orientation) {        
        Applet.IconApplet.prototype._init.call(this, orientation);
        
        try {        
            this.set_applet_icon_symbolic_name("camera-photo-symbolic");
            this.set_applet_tooltip(_("Сделать снимок экрана"));
            
            this.menuManager = new PopupMenu.PopupMenuManager(this);
            this.menu = new Applet.AppletPopupMenu(this, orientation);
            this.menuManager.addMenu(this.menu);        
                                                                
            this._contentSection = new PopupMenu.PopupMenuSection();
            this.menu.addMenuItem(this._contentSection);                    
                                                    
          
		//Advanced Screenshot - opens gnome-screenshot
        this.menu.addAction(_("Снимок экрана"), function(event) {
                Main.Util.spawnCommandLine("gnome-screenshot --interactive");
		}); 

		//Whole Screen - Dropdown Menu		
        this.screenshotItem = new PopupMenu.PopupSubMenuMenuItem(_("Весь экран"));
		//1 Sec Delay
        this.screenshotItem.menu.addAction(_("Задержка 1 сек."), function(actor, event) {
		Main.Util.spawnCommandLine("gnome-screenshot --delay 1");
		});
		//3 Sec Delay
        this.screenshotItem.menu.addAction(_("Задержка 3 сек."), function(actor, event) {
		Main.Util.spawnCommandLine("gnome-screenshot --delay 3");
		}); 
		//5 Sec Delay
        this.screenshotItem.menu.addAction(_("Задержка 5 сек."), function(actor, event) {
		Main.Util.spawnCommandLine("gnome-screenshot --delay 5");
		});  
                       
		this.menu.addMenuItem(this.screenshotItem); 



		//Current Window
        this.menu.addAction(_("Текущее окно"), function(event) {
                Main.Util.spawnCommandLine("gnome-screenshot -w");
		}); 

		//Selected Area
        this.menu.addAction(_("Выбранная область"), function(event) {
                Main.Util.spawnCommandLine("gnome-screenshot -a");
		});
	
                        
        }
        catch (e) {
            global.logError(e);
        }
    },
    
    on_applet_clicked: function(event) {
        this.menu.toggle();        
    },
        
    
};

function main(metadata, orientation) {  
    let myApplet = new MyApplet(orientation);
    return myApplet;      
}
Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)
Изображение

Аватара пользователя

zuzabrik
Сообщения: 1744
Зарегистрирован: 29 авг 2016, 12:08
Решено: 20
Благодарил (а): 108 раз
Поблагодарили: 521 раз
Контактная информация:

Re: Руссификация аплетов Cinnamon.

#2

07 сен 2016, 06:25

Правильнее было бы не ковырять JS-файл, а создать файл с отдельной руссификацией.
А мог бы стать нормальным человеком...

Аватара пользователя

Dja
Сообщения: 6875
Зарегистрирован: 27 авг 2016, 20:03
Решено: 30
Откуда: Voskresensk
Благодарил (а): 1310 раз
Поблагодарили: 724 раза
Контактная информация:

Re: Руссификация аплетов Cinnamon.

#3

07 сен 2016, 10:27

а еще правильнее - multi-languages contents

no avatar

Tuuur
Сообщения: 1
Зарегистрирован: 27 сен 2016, 10:32
Благодарил (а): 2 раза
Контактная информация:

Re: Руссификация аплетов Cinnamon.

#4

27 сен 2016, 10:35

Dja писал(а):а еще правильнее - multi-languages contents
Это как?

Аватара пользователя

Dja
Сообщения: 6875
Зарегистрирован: 27 авг 2016, 20:03
Решено: 30
Откуда: Voskresensk
Благодарил (а): 1310 раз
Поблагодарили: 724 раза
Контактная информация:

Re: Руссификация аплетов Cinnamon.

#5

27 сен 2016, 10:44

Tuuur, Это выходишь в сеть - кликаешь по видео - и выбираешь язык воспросизведения. С песнями так же. С текстом так же. С манами так же ) С комментами в конфигах так же ) Всё должно быть мульти-фицировано.

Закрыто

Вернуться в «Cinnamon»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей