├── .gitattributes
├── .gitignore
├── LICENSE.md
├── README.md
├── README_EN.md
├── aboutunit.frm
├── aboutunit.pas
├── giteapanel.ctpr
├── giteapanel.ctps
├── giteapanel.ico
├── giteapanel.ppr
├── giteapanel.res
├── locale
├── giteapanel.be.po
├── giteapanel.de.po
├── giteapanel.en.po
├── giteapanel.pl.po
├── giteapanel.pot
├── giteapanel.ru.po
├── giteapanel.uk.po
└── lang.list
├── mainunit.frm
├── mainunit.pas
├── resource
├── About_16x16.png
├── Close_16x16.png
├── Configure_16x16.png
├── GiteaGreen.ico
├── GiteaRed.ico
├── Gitea_green_16x16.png
├── Gitea_red_16x16.png
├── Internet_16x16.png
├── Link_16x16.png
├── Network_16.png
├── ScreenAbout.png
├── ScreenMenu.png
├── ScreenMenu2.png
├── ScreenSeting.png
├── check.png
├── download.png
├── download_16x16.png
├── error.png
├── giteapanel.svg
├── lamp.png
└── ok.png
├── resstr.pas
├── updategitea.frm
├── updategitea.pas
├── updatesetting.frm
└── updatesetting.pas
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto
2 | *.pas linguist-language=pascal
3 | *.frm linguist-language=pascal
4 | *.ppr linguist-language=pascal
5 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | lib/
2 | Release/
3 | giteapanel_linux*
4 | giteapanel.conf
5 | giteapanel_linux_i386.pot
6 | giteapanel_linux_x86_x64.pot
7 | .fslckout
8 | *.fsl
9 | *.lintian
10 | *.deb
11 | *.lrj
12 | *.ctps
13 | resource/giteapanel_1.png
14 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | ## MIT License
2 |
3 | ### Copyright (c) 2020 Sashaoli
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6 |
7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
8 |
9 | ### Авторське право (с) 2020 Sashaoli
10 |
11 | Справжнім дозволяється, безоплатно, будь-якій особі, що отримала копію цього програмного забезпечення та супутньої документації (в подальшому “Програмне забезпечення”), використовувати Програмне забезпечення без обмежень, зокрема без обмежень, прав на використання, копіювання, змінювання, доповнення, публікацію, поширення, субліцензування та / або продаж копій Програмного забезпечення, також як і особам, яким надається це Програмне забезпечення, за дотримання наступних умов:
12 |
13 | Вищезгадані авторські права та ці умови мають бути включені в усі копії або значущі частини цього Програмного забезпечення.
14 |
15 | ДІЙСНЕ ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ НАДАЄТЬСЯ «ЯК Є», БЕЗ ГАРАНТІЙ БУДЬ-ЯКОГО ВИДУ, ПРЯМИХ АБО НЕПРЯМИХ, ВКЛЮЧАЮЧИ, АЛЕ НЕ ОБМЕЖУЮЧИСЬ, ГАРАНТІЯМИ КОМЕРЦІЙНОЇ ВИГОДИ, ВІДПОВІДНОСТІ ЙОГО КОНКРЕТНОМУ ПРИЗНАЧЕННЮ Й ВІДСУТНОСТІ ПОРУШЕННЯ ПРАВ. У ЖОДНОМУ РАЗІ АВТОРИ АБО ВЛАСНИКИ АВТОРСЬКИХ ПРАВ НЕ ВІДПОВІДАЮТЬ ЗА БУДЬ-ЯКИМИ СУДОВИМИ ПОЗОВАМИ, ЩОДО ЗБИТКІВ АБО ІНШИХ ПРЕТЕНЗІЙ, ЧИ ДІЙ ДОГОВОРУ, ЦИВІЛЬНОГО ПРАВОПОРУШЕННЯ АБО ІНШИХ, ЩО ВИНИКАЮТЬ ПОЗА, АБО У ЗВ’ЯЗКУ З ПРОГРАМНИМ ЗАБЕЗПЕЧЕННЯМ АБО ВИКОРИСТАННЯМ ЧИ ІНШИМИ ДІЯМИ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ.
16 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Gitea Panel
2 |
3 | [![download]](https://github.com/sashaoli/GiteaPanel/releases/latest) [![release]](https://github.com/sashaoli/GiteaPanel/releases/latest) ![platform] ![appimage] [![MIT license][license]](./LICENSE.md) [![CodeTyphon][typhon]](https://www.pilotlogic.com/sitejoom/)
4 |
5 | *Swith to [English](./README_EN.md)*
6 |
7 | ### Управління локальним сервером Gitea з трею.
8 |
9 | 
10 |
11 | 
12 |
13 | 
14 |
15 | *Swith to [English](./README_EN.md)*
16 |
17 | ## Можливості.
18 | - Графічний інтерфейс користувача.
19 | - Запуск/Зупинка сервера Gitea.
20 | - Відкриття сторінки Gitea у вибраному браузері.
21 | - Оновлення Gitea до останньої версії.
22 |
23 | ## Залежності
24 | - `openssl1.0`; *(libssl1.0.0)*
25 | - `pgrep`; *(за замовчування присутній у системі)*
26 | - `kill`; *(за замовчування присутній у системі)*
27 |
28 | Встановити залежності SSL:
29 | ```bash
30 | sudo apt-get install openssl1.0
31 | ```
32 | або:
33 | ```bash
34 | sudo apt-get install libssl1.0.0
35 | ```
36 | У деяких випадках може знадобитися встановлення `libssl1.0-dev`
37 | ```Bash
38 | sudo apt-get install libssl1.0-dev
39 | ```
40 |
41 | ##### AppImage:
42 | Містить у собі необхідні бібліотеки SSL. Тому немає необхідності встановлювати їх у систему. Містить тему "Adwaita" та застосовує її, до інтерфейсу програми, незалежно від теми системи.
43 |
44 | ## Встановлення.
45 | 1. Завантажте та встановіть програму з деб-пакунка та запустіть з головного меню Вашої системи. До прикладу:
46 | ```bash
47 | curl -L -O https://github.com/sashaoli/GiteaPanel/releases/download/v0.7.0/giteapanel_0.7.0_amd64.deb
48 | sudo dpkg -i giteapanel_0.7.0_amd64.deb
49 | ```
50 | Або, для запуску програми, використовуйте файл AppImage. До прикладу:
51 | ```bash
52 | curl -L -O https://github.com/sashaoli/GiteaPanel/releases/download/v0.7.0/giteapanel_0.7.0_x86_64.AppImage
53 | chmod +x giteapanel_0.7.0_x86_64.AppImage
54 | ```
55 | > Для оточення **"Gnome"** необхідно встановити розширення ["TopIcons"](https://extensions.gnome.org/extension/495/topicons/), або ["TopIcons Plus"](https://extensions.gnome.org/extension/1031/topicons/), або ["Tray Icons"](https://extensions.gnome.org/extension/1503/tray-icons/).
56 |
57 | 2. Вкажіть, у полі "Gitea path", шлях до бінарного файлу сервера Gitea. Бажано, щоб назва файлу була "gitea".
58 | 3. Натисніть кнопку "Gitea update options" та у полі "OS Idettification" вкажіть Вашу операційну систему.
59 | 4. За необхідності змініть мову програми.
60 |
61 | ## Використання.
62 | Управління програмою здійснюється з трею при кліку правою кнопкою мишки.Подвійний клік на іконці в трею запускає сервер Gitea та відкриває сторінку Gitea в браузері.
63 |
64 | ## Переклад.
65 | На даний момент програма підтримує такі мови:
66 |
67 | | Мова | код |
68 | | ---------- | ---- |
69 | | Білоруська | `be` |
70 | | Германська | `de` |
71 | | Англійська | `en` |
72 | | Польська | `pl` |
73 | | Російська | `ru` |
74 | | Українська | `uk` |
75 |
76 | *У перекладі можуть міститися помилки, оскільки він здійснений за допомогою машинного перекладача.*
77 |
78 | Якщо, Ви, **знайшли помилку у перекладі програми - будь-ласка повідомте про неї**, вказавши код мови перекладу, оригінальний текст англійською та правильний текст перекладу. До прикладу:
79 |
80 | | код мови | оригінальний текст англійською | правильний текст перекладу |
81 | | -------- | ---------------------------------------- | ----------------------------------- |
82 | | `pl` | `Checking for a new version of Gitea...` | `Sprawdzanie nowej wersji Gitea...` |
83 |
84 | [download]: https://img.shields.io/github/downloads/sashaoli/GiteaPanel/total?style=flat
85 | [release]: https://img.shields.io/github/v/release/sashaoli/Giteapanel?style=flat
86 | [platform]: https://img.shields.io/badge/platform-linux--64%20%7C%20linux--32-red
87 | [appimage]: https://img.shields.io/badge/AppImage-x86__64%20%7C%20i386-9cf
88 | [license]: http://img.shields.io/badge/license-MIT-brightgreen.svg
89 | [typhon]: https://img.shields.io/badge/CodeTyphon-7.20-green.svg
90 |
--------------------------------------------------------------------------------
/README_EN.md:
--------------------------------------------------------------------------------
1 | # Gitea Panel
2 |
3 | [![download]](https://github.com/sashaoli/GiteaPanel/releases/latest) [![release]](https://github.com/sashaoli/GiteaPanel/releases/latest) ![platform] ![appimage] [![MIT license][license]](./LICENSE.md) [![CodeTyphon][typhon]](https://www.pilotlogic.com/sitejoom/)
4 |
5 | *Перемкнутися на [Українську](./README.md)*
6 |
7 | ### Manage the local Gitea server from the tray.
8 |
9 | ## Features.
10 | - Graphical user interface.
11 | - Start/Stop Gitea server.
12 | - Opens the Gitea page in the selected browser.
13 | - Update Gitea to the latest version.
14 |
15 | ## Dependencies
16 | - `openssl1.0`; *(libssl1.0.0)*
17 | - `pgrep`; *(is present in the system by default)*
18 | - `kill`; *(is present in the system by default)*
19 |
20 | Set SSL dependencies:
21 | ```bash
22 | sudo apt-get install openssl1.0
23 | ```
24 | or:
25 | ```bash
26 | sudo apt-get install libssl1.0.0
27 | ```
28 | In some cases it may be necessary to install `libssl1.0-dev`
29 | ```Bash
30 | sudo apt-get install libssl1.0-dev
31 | ```
32 |
33 | ##### AppImage:
34 | Contains the necessary SSL libraries. Therefore, there is no need to install them in the system.Contains the "Adwaita" theme and applies it to the program interface, regardless of the system theme.
35 |
36 |
37 | ## Install.
38 | 1. Download and Install the application from the deb package and launch from the main menu of your system. Example:
39 | ```bash
40 | curl -L -O https://github.com/sashaoli/GiteaPanel/releases/download/v0.7.0/giteapanel_0.7.0_amd64.deb
41 | sudo dpkg -i giteapanel_0.7.0_amd64.deb
42 | ```
43 | Or, to start the program, use the AppImage file. Example:
44 | ```bash
45 | curl -L -O https://github.com/sashaoli/GiteaPanel/releases/download/v0.7.0/giteapanel_0.7.0_x86_64.AppImage
46 | chmod +x giteapanel_0.7.0_x86_64.AppImage
47 | ```
48 | > For environment **"Gnome"** must be installed extension ["TopIcons"](https://extensions.gnome.org/extension/495/topicons/), or ["TopIcons Plus"](https://extensions.gnome.org/extension/1031/topicons/), or ["Tray Icons"](https://extensions.gnome.org/extension/1503/tray-icons/).
49 |
50 | 2. In the "Gitea path" field, specify the path to the binary file of the Gitea server. The file name is preferably "gitea".
51 | 3. Click the "Gitea update options" button and in the "OS Idettification" field, specify your operating system.
52 | 4. Change the program language if necessary.
53 |
54 | ## Usage.
55 | The program is controlled from the tray by right-clicking.Double-clicking on the tray icon launches the Gitea server and opens the Gitea page in the browser.
56 |
57 | ## Translate.
58 | Currently the program supports the following languages:
59 |
60 | | Language | code |
61 | | ---------- | ---- |
62 | | Belarusian | `be` |
63 | | German | `de` |
64 | | English | `en` |
65 | | Polish | `pl` |
66 | | Russian | `ru` |
67 | | Ukrainian | `uk` |
68 |
69 | *The translation may contain errors because it was made using a machine translator.*
70 |
71 | If you **find an error in the translation of the program - please report it**, indicating the translation language code, the original text in English and the correct translation text. Example:
72 |
73 | | Language code | Original text in English | Correct translation text |
74 | | ------------- | ---------------------------------------- | ----------------------------------- |
75 | | `pl` | `Checking for a new version of Gitea...` | `Sprawdzanie nowej wersji Gitea...` |
76 |
77 | [download]: https://img.shields.io/github/downloads/sashaoli/GiteaPanel/total?style=flat
78 | [release]: https://img.shields.io/github/v/release/sashaoli/Giteapanel?style=flat
79 | [platform]: https://img.shields.io/badge/platform-linux--64%20%7C%20linux--32-red
80 | [appimage]: https://img.shields.io/badge/AppImage-x86__64%20%7C%20i386-9cf
81 | [license]: http://img.shields.io/badge/license-MIT-brightgreen.svg
82 | [typhon]: https://img.shields.io/badge/CodeTyphon-7.20-green.svg
83 |
--------------------------------------------------------------------------------
/aboutunit.frm:
--------------------------------------------------------------------------------
1 | object AboutForm: TAboutForm
2 | AnchorSideRight.Side = asrBottom
3 | Left = 303
4 | Height = 209
5 | Top = 30
6 | Width = 402
7 | AutoSize = True
8 | BorderIcons = []
9 | BorderStyle = bsSingle
10 | Caption = 'About Gitea Panel'
11 | ClientHeight = 209
12 | ClientWidth = 402
13 | OnClose = FormClose
14 | OnShow = FormShow
15 | Position = poDesktopCenter
16 | LCLVersion = '7.2'
17 | object Image1: TImage
18 | AnchorSideLeft.Side = asrBottom
19 | Left = 16
20 | Height = 144
21 | Top = 16
22 | Width = 144
23 | BorderSpacing.Left = 16
24 | BorderSpacing.Top = 16
25 | Stretch = True
26 | end
27 | object Label1: TLabel
28 | AnchorSideLeft.Control = Image1
29 | AnchorSideLeft.Side = asrBottom
30 | Left = 180
31 | Height = 1
32 | Top = 40
33 | Width = 1
34 | Alignment = taRightJustify
35 | BorderSpacing.Left = 20
36 | BorderSpacing.Top = 40
37 | ParentColor = False
38 | end
39 | object Label2: TLabel
40 | AnchorSideLeft.Control = Label1
41 | AnchorSideLeft.Side = asrBottom
42 | Left = 186
43 | Height = 1
44 | Top = 40
45 | Width = 1
46 | BorderSpacing.Left = 5
47 | BorderSpacing.Top = 40
48 | BorderSpacing.Right = 16
49 | ParentColor = False
50 | end
51 | object Label3: TLabel
52 | AnchorSideLeft.Control = Image1
53 | AnchorSideLeft.Side = asrBottom
54 | AnchorSideRight.Control = Label1
55 | AnchorSideRight.Side = asrBottom
56 | Left = 180
57 | Height = 1
58 | Top = 16
59 | Width = 1
60 | Alignment = taRightJustify
61 | Anchors = [akTop, akLeft, akRight]
62 | BorderSpacing.Left = 20
63 | Font.Height = -16
64 | Font.Name = 'TakaoPGothic'
65 | Font.Style = [fsBold]
66 | ParentColor = False
67 | ParentFont = False
68 | end
69 | object Label4: TLabel
70 | AnchorSideLeft.Control = Label3
71 | AnchorSideLeft.Side = asrBottom
72 | AnchorSideRight.Control = Label2
73 | AnchorSideRight.Side = asrBottom
74 | Left = 186
75 | Height = 1
76 | Top = 16
77 | Width = 1
78 | Anchors = [akTop, akLeft, akRight]
79 | BorderSpacing.Left = 5
80 | Font.Height = -16
81 | Font.Name = 'TakaoPGothic'
82 | Font.Style = [fsBold]
83 | ParentColor = False
84 | ParentFont = False
85 | end
86 | object Label5: TLabel
87 | AnchorSideLeft.Control = Owner
88 | AnchorSideLeft.Side = asrCenter
89 | Cursor = crHandPoint
90 | Left = 109
91 | Height = 19
92 | Top = 176
93 | Width = 185
94 | BorderSpacing.Bottom = 16
95 | Caption = 'Homepage in GitHub'
96 | Font.Height = -16
97 | Font.Name = 'TakaoPGothic'
98 | Font.Style = [fsBold]
99 | ParentColor = False
100 | ParentFont = False
101 | OnClick = Label5Click
102 | OnMouseEnter = Label5MouseEnter
103 | OnMouseLeave = Label5MouseLeave
104 | end
105 | end
106 |
--------------------------------------------------------------------------------
/aboutunit.pas:
--------------------------------------------------------------------------------
1 | unit aboutunit;
2 |
3 | {$mode objfpc}{$H+}
4 |
5 | interface
6 |
7 | uses
8 | Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls,
9 | resstr, InterfaceBase, FileInfo, LCLVersion;
10 |
11 |
12 | type
13 | TAppInfo = record
14 | CName: String;
15 | FDescr: String;
16 | FVer: String;
17 | LCopyr: String;
18 | OFName: String;
19 | PName: String;
20 | PVer: String;
21 | IName: String;
22 |
23 | SVNRevis: String;
24 | FPVer: String;
25 | CPUTarget: String;
26 | OSTarget: String;
27 | CTVer: String;
28 | BDate: String;
29 | NWidget: String;
30 | end;
31 |
32 | type
33 |
34 | { TAboutForm }
35 |
36 | TAboutForm = class(TForm)
37 | Image1: TImage;
38 | Label1: TLabel;
39 | Label2: TLabel;
40 | Label3: TLabel;
41 | Label4: TLabel;
42 | Label5: TLabel;
43 | procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
44 | procedure FormShow(Sender: TObject);
45 | procedure Label5Click(Sender: TObject);
46 | procedure Label5MouseEnter(Sender: TObject);
47 | procedure Label5MouseLeave(Sender: TObject);
48 |
49 | private
50 |
51 | public
52 |
53 | end;
54 |
55 | function GetAppInfo: TAppInfo;
56 | function RunAboutForm: Boolean;
57 |
58 | var
59 | AboutForm: TAboutForm;
60 | AppInfo: TAppInfo;
61 |
62 | implementation
63 |
64 | uses mainunit;
65 |
66 | function GetAppInfo: TAppInfo;
67 | var inf: TFileVersionInfo;
68 | begin
69 | inf:= TFileVersionInfo.Create(nil);
70 | try
71 | inf.ReadFileInfo;
72 | with inf.VersionStrings do
73 | begin
74 | Result.CName := Values['CompanyName'];
75 | Result.FDescr := Values['FileDescription'];
76 | Result.FVer := Values['FileVersion'];
77 | Result.IName := Values['InternalName'];
78 | Result.LCopyr := Values['LegalCopyright'];
79 | Result.OFName := Values['OriginalFilename'];
80 | Result.PName := Values['ProductName'];
81 | Result.PVer := Values['ProductVersion'];
82 | end;
83 | Result.CPUTarget := {$I %FPCTARGETCPU%};
84 | Result.OSTarget := {$I %FPCTARGETOS%};
85 | Result.CTVer := lcl_version;
86 | Result.FPVer := {$I %FPCVERSION%};
87 | Result.SVNRevis := {$I project_svnrevision.inc};
88 | Result.BDate := {$I %DATE%};
89 | Result.NWidget := GetLCLWidgetTypeName;
90 | finally
91 | inf.Free;
92 | end;
93 | end;
94 |
95 | function RunAboutForm: Boolean;
96 | begin
97 | Result:= True;
98 | if not Assigned(AboutForm) then AboutForm:= TAboutForm.Create(Application);
99 | try
100 | AboutForm.Show;
101 | except
102 | AboutForm.Free;
103 | FreeAndNil(AboutForm);
104 | end;
105 | end;
106 |
107 | {$R *.frm}
108 |
109 | { TAboutForm }
110 |
111 | procedure TAboutForm.FormShow(Sender: TObject);
112 | begin
113 | DisableAutoSizing;
114 | Image1.Picture.LoadFromResourceName(HINSTANCE, 'GITEAGREEN');
115 | Label3.Caption:= AppInfo.PName.Split(' ')[0];
116 | Label4.Caption:= AppInfo.PName.Split(' ')[1];
117 | Label1.Caption:= i18_Program + #10 + // line 1
118 | i18_CodeRivis + #10 + // line 2
119 | 'CodeTyphon:' + #10 + // line 3
120 | 'FreePascal:' + #10 + // line 4
121 | i18_ForTarget + #10 + // line 5
122 | i18_Widget + #10 + // line 6
123 | i18_BuildDate; // line 7
124 |
125 | Label2.Caption:= i18_Version + AppInfo.PVer + #10 + // line 1
126 | AppInfo.SVNRevis + #10 + // line 2
127 | i18_Version + AppInfo.CTVer + #10 + // line 3
128 | i18_Version + AppInfo.FPVer + #10 + // line 4
129 | AppInfo.CPUTarget + '-' + AppInfo.OSTarget + #10 + // line 5
130 | Appinfo.NWidget + #10 + // line 6
131 | AppInfo.BDate; // line 7
132 | //Label5.Caption:= i18_Copyright + LCopyr;
133 | //AboutForm.Width:= Label2.Left + Label2.Width + 25;
134 | EnableAutoSizing;
135 | end;
136 |
137 | procedure TAboutForm.FormClose(Sender: TObject; var CloseAction: TCloseAction);
138 | begin
139 | CloseAction:= caFree;
140 | FreeAndNil(AboutForm);
141 | end;
142 |
143 | procedure TAboutForm.Label5Click(Sender: TObject);
144 | begin
145 | Label5.Font.Color:= clDefault;
146 | Label5.Font.Style:= [fsBold];
147 | OpenLink('https://github.com/sashaoli/GiteaPanel');
148 | end;
149 |
150 | procedure TAboutForm.Label5MouseEnter(Sender: TObject);
151 | begin
152 | Label5.Font.Color:= clBlue;
153 | Label5.Font.Style:= [fsBold,fsUnderline];
154 | end;
155 |
156 | procedure TAboutForm.Label5MouseLeave(Sender: TObject);
157 | begin
158 | Label5.Font.Color:= clDefault;
159 | Label5.Font.Style:= [fsBold];
160 | end;
161 |
162 | initialization
163 | AppInfo:= GetAppInfo;
164 |
165 | end.
166 |
--------------------------------------------------------------------------------
/giteapanel.ctpr:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
49 |
62 |
85 |
103 |
104 |
108 |
115 |
116 |
117 |
118 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
246 |
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 |
257 |
258 |
259 |
260 |
261 |
262 |
263 |
264 |
265 |
266 |
267 |
268 |
269 |
270 |
271 |
272 |
273 |
274 |
275 |
276 |
277 |
278 |
279 |
280 |
281 |
282 |
283 |
284 |
285 |
286 |
287 |
288 |
289 |
290 |
291 |
292 |
293 |
294 |
295 |
296 |
297 |
298 |
299 |
300 |
301 |
302 |
303 |
304 |
305 |
306 |
307 |
308 |
309 |
310 |
311 |
312 |
313 |
314 |
315 |
316 |
317 |
318 |
319 |
320 |
--------------------------------------------------------------------------------
/giteapanel.ctps:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
--------------------------------------------------------------------------------
/giteapanel.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sashaoli/GiteaPanel/b462ce58a828e846768859db73fe2590156c0d4f/giteapanel.ico
--------------------------------------------------------------------------------
/giteapanel.ppr:
--------------------------------------------------------------------------------
1 | program giteapanel;
2 |
3 | {$mode objfpc}{$H+}
4 |
5 | uses
6 | {$IFDEF UNIX}
7 | {$IFDEF UseCThreads}
8 | cthreads,
9 | {$ENDIF}
10 | {$ENDIF}
11 | Interfaces, // this includes the adLCL widgetset
12 | Forms, mainunit, resstr, aboutunit, updatesetting, updategitea;
13 |
14 | {$R *.res}
15 |
16 | begin
17 | RequireDerivedFormResource:=True;
18 | Application.Scaled:=True;
19 | Application.Initialize;
20 | Application.ShowMainForm := False;
21 | Application.CreateForm(TMainForm, MainForm);
22 | //Application.CreateForm(TAboutForm, AboutForm);
23 | //Application.CreateForm(TUpdSettingForm, UpdSettingForm);
24 | //Application.CreateForm(TFormUpdGitea, FormUpdGitea);
25 | Application.Run;
26 | end.
27 |
28 |
--------------------------------------------------------------------------------
/giteapanel.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sashaoli/GiteaPanel/b462ce58a828e846768859db73fe2590156c0d4f/giteapanel.res
--------------------------------------------------------------------------------
/locale/giteapanel.be.po:
--------------------------------------------------------------------------------
1 | msgid ""
2 | msgstr ""
3 | "Project-Id-Version: \n"
4 | "POT-Creation-Date: \n"
5 | "PO-Revision-Date: \n"
6 | "Last-Translator: \n"
7 | "Language-Team: \n"
8 | "Language: be_BY\n"
9 | "MIME-Version: 1.0\n"
10 | "Content-Type: text/plain; charset=UTF-8\n"
11 | "Content-Transfer-Encoding: 8bit\n"
12 | "X-Generator: Poedit 2.4.1\n"
13 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
14 | "%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
15 |
16 | #: resstr.i18_builddate
17 | msgid "Build date:"
18 | msgstr "Дата пабудовы:"
19 |
20 | #: resstr.i18_canceldownload
21 | msgid "Discard update Gitea?"
22 | msgstr "Адкінуць абнаўленне Gitea?"
23 |
24 | #: resstr.i18_checknewversion
25 | msgid "Checking for a new version of Gitea..."
26 | msgstr "Праверка новай версіі Gitea ..."
27 |
28 | #: resstr.i18_coderivis
29 | msgid "Code revision:"
30 | msgstr "Рэдакцыя кода:"
31 |
32 | #: resstr.i18_copyright
33 | msgid "Copyright: "
34 | msgstr "Аўтарскія правы: "
35 |
36 | #: resstr.i18_currentversion
37 | msgid "Current version of Gitea: "
38 | msgstr "Бягучая версія Gitea: "
39 |
40 | #: resstr.i18_dlgtitle_browspath
41 | msgid "Select browser binary file"
42 | msgstr "Выберыце бінарны файл аглядальніка"
43 |
44 | #: resstr.i18_dlgtitle_giteapatch
45 | msgid "Select Gitea binary file"
46 | msgstr "Абярыце двайковы файл Gitea"
47 |
48 | #: resstr.i18_downloadfile
49 | msgid "Download file..."
50 | msgstr "Загрузіць файл ..."
51 |
52 | #: resstr.i18_err_downloadfile
53 | msgid "Failed to download file."
54 | msgstr "Не атрымалася загрузіць файл."
55 |
56 | #: resstr.i18_err_noconfirmpass
57 | msgid ""
58 | "Passwords do not match.\n"
59 | "Please re-enter your password."
60 | msgstr ""
61 | "Паролі не супадаюць.\n"
62 | "Калі ласка, увядзіце свой пароль."
63 |
64 | #: resstr.i18_err_notosident
65 | msgid ""
66 | "The operating system is not specified in the settings.\n"
67 | "Specify your operating system in the settings."
68 | msgstr ""
69 | "Аперацыйная сістэма не паказана ў наладах.\n"
70 | "Пазначце аперацыйную сістэму ў наладах."
71 |
72 | #: resstr.i18_fortarget
73 | msgid "For CPU, OS:"
74 | msgstr "Для CPU, OS:"
75 |
76 | #: resstr.i18_getcurrentversion
77 | msgid "Get the current version of Gitea..."
78 | msgstr "Атрымаць актуальную версію Gitea ..."
79 |
80 | #: resstr.i18_gitearunig
81 | msgid "Gitea is runing"
82 | msgstr "Gitea запушчаны"
83 |
84 | #: resstr.i18_giteastoped
85 | msgid "Gitea stoped"
86 | msgstr "Gitea спыніўся"
87 |
88 | #: resstr.i18_latesversion
89 | msgid "You have the latest version of Gitea."
90 | msgstr "У вас ёсць апошняя версія Gitea."
91 |
92 | #: resstr.i18_msg_err_cantopenserver
93 | #, object-pascal-format
94 | msgid "Can't open gitea server from link: \"%s\""
95 | msgstr "Не ўдаецца адкрыць сервер Gitea па спасылцы \"%s\""
96 |
97 | #: resstr.i18_msg_err_getgithubdata
98 | msgid "Error retrieving data from GitHub!"
99 | msgstr "Памылка атрымання дадзеных з GitHub!"
100 |
101 | #: resstr.i18_msg_err_getvergitea
102 | msgid "Error defining version of Gitea!"
103 | msgstr "Памылка вызначэння версіі Gitea!"
104 |
105 | #: resstr.i18_msg_err_missingfromhosts
106 | #, object-pascal-format
107 | msgid ""
108 | "The \"%s\" is not in the host file. Add it to the \"/etc/hosts\" file: "
109 | "\"127.0.0.1 %s\""
110 | msgstr ""
111 | "\"%s\" адсутнічае ў файле хаста. Дадайце яго ў файл \"/etc/hosts\": "
112 | "\"127.0.0.1 %s\""
113 |
114 | #: resstr.i18_msg_err_nofindbrowser
115 | #, object-pascal-format
116 | msgid ""
117 | "I can not find the browser \"%s\". Please specify the browser in the "
118 | "settings."
119 | msgstr ""
120 | "Я не магу знайсці браўзэр \"%s\". Калі ласка, пакажыце браўзэр у наладах."
121 |
122 | #: resstr.i18_msg_err_rungitea
123 | msgid ""
124 | "I can not find a way to Gitea.\n"
125 | "Please specify the path in the settings."
126 | msgstr ""
127 | "Я не магу знайсці шлях да Gitea.\n"
128 | "Калі ласка, укажыце шлях у наладах."
129 |
130 | #: resstr.i18_msg_rerunapp
131 | msgid ""
132 | "Language settings changed.\n"
133 | "Save parameters and restart the application to apply these parameters?"
134 | msgstr ""
135 | "Налады мовы зменены.\n"
136 | "Захаваць параметры і перазапусціць прыкладанне, каб прымяніць гэтыя "
137 | "параметры?"
138 |
139 | #: resstr.i18_newversionavailable
140 | msgid "New version of Gitea is available: "
141 | msgstr "Даступная новая версія Gitea: "
142 |
143 | #: resstr.i18_program
144 | msgid "Program:"
145 | msgstr "Праграма:"
146 |
147 | #: resstr.i18_startgitea
148 | msgid "Start Gitea"
149 | msgstr "Пачніце Gitea"
150 |
151 | #: resstr.i18_stopgitea
152 | msgid "Stop Gitea"
153 | msgstr "Спыніць Gitea"
154 |
155 | #: resstr.i18_upfradecomplete
156 | msgid "Download and upgrade complete."
157 | msgstr "Загрузка і абнаўленне завершаны."
158 |
159 | #: resstr.i18_version
160 | msgid "version "
161 | msgstr "версія "
162 |
163 | #: resstr.i18_widget
164 | msgid "Widget:"
165 | msgstr "Віджэт:"
166 |
167 | #: taboutform.caption
168 | msgid "About Gitea Panel"
169 | msgstr "Аб Gitea Panel"
170 |
171 | #: taboutform.label5.caption
172 | msgid "Homepage in GitHub"
173 | msgstr "Хатняя старонка ў GitHub"
174 |
175 | #: tformupdgitea.bitbtncancel.caption
176 | msgid "&Cancel"
177 | msgstr "&Адмяніць"
178 |
179 | #: tformupdgitea.bitbtnupd.caption
180 | msgid "&Update"
181 | msgstr "А&бнаўленне"
182 |
183 | #: tformupdgitea.caption
184 | msgid "Update Gitea"
185 | msgstr "Абнаўленне Gitea"
186 |
187 | #: tformupdgitea.label1.caption
188 | msgid "Current version of Gitea:"
189 | msgstr "Бягучая версія Gitea:"
190 |
191 | #: tformupdgitea.label2.caption
192 | msgid " "
193 | msgstr ""
194 |
195 | #: tmainform.bitbtn1.caption
196 | msgid "Update options"
197 | msgstr "Параметры абнаўлення"
198 |
199 | #: tmainform.caption
200 | msgid "Gitea Panel"
201 | msgstr "Gitea Panel"
202 |
203 | #: tmainform.checkboxcheckupdatestartup.caption
204 | msgid "Check for updates on startup"
205 | msgstr "Праверце наяўнасць абнаўленняў пры запуску"
206 |
207 | #: tmainform.checkboxopenpageafterlaunch.caption
208 | msgid "Open Gitea page after launch"
209 | msgstr "Адкрыйце старонку Gitea пасля запуску"
210 |
211 | #: tmainform.checkboxrungiteastartup.caption
212 | msgid "Run Gitea with the program"
213 | msgstr "Запусціце Gitea з праграмай"
214 |
215 | #: tmainform.checkboxstopgiteawhenclose.caption
216 | msgid "Stop Gita when the program closes"
217 | msgstr "Спыніце Gita, калі праграма закрыецца"
218 |
219 | #: tmainform.coboxlang.hint
220 | msgid ""
221 | "Language preferences will be applied after restarting the application.\n"
222 | "Click \"OK\" to save the setting."
223 | msgstr ""
224 | "Моўныя налады будуць ужытыя пасля перазагрузкі прыкладання.\n"
225 | "Націсніце \"ОК\", каб захаваць наладу."
226 |
227 | #: tmainform.editbrowspath.texthint
228 | msgid "Full path to your browser"
229 | msgstr "Поўны шлях да вашага браўзэра"
230 |
231 | #: tmainform.editgiteapatch.texthint
232 | msgid "Full path to Gitea"
233 | msgstr "Поўны шлях да Gitea"
234 |
235 | #: tmainform.edithost.texthint
236 | msgid "Default: localhost"
237 | msgstr "Па змаўчанні: localhost"
238 |
239 | #: tmainform.groupbox1.caption
240 | msgid "Browser"
241 | msgstr "Аглядальнік"
242 |
243 | #: tmainform.groupbox2.caption
244 | msgid "Gitea"
245 | msgstr "Gitea"
246 |
247 | #: tmainform.groupbox3.caption
248 | msgid "Behavior"
249 | msgstr "Паводзіны"
250 |
251 | #: tmainform.label1.caption
252 | msgid "Gitea path:"
253 | msgstr "Шлях Gitea:"
254 |
255 | #: tmainform.label3.caption
256 | msgid "Protocol:"
257 | msgstr "Пратакол:"
258 |
259 | #: tmainform.label4.caption
260 | msgctxt "tmainform.label4.caption"
261 | msgid "Host:"
262 | msgstr "Хост:"
263 |
264 | #: tmainform.menuabout.caption
265 | msgid "About"
266 | msgstr "Пра праграму"
267 |
268 | #: tmainform.menuclose.caption
269 | msgid "Close"
270 | msgstr "Зачыніць"
271 |
272 | #: tmainform.menuopengitea.caption
273 | msgid "Open Gitea..."
274 | msgstr "Адкрыць Gitea ..."
275 |
276 | #: tmainform.menusetting.caption
277 | msgid "Setting"
278 | msgstr "Заданне"
279 |
280 | #: tmainform.menuupdate.caption
281 | msgid "Check update Gitea"
282 | msgstr "Праверце абнаўленне Gitea"
283 |
284 | #: tmainform.rbuttdefbrows.caption
285 | msgid "Open Gitea default browser"
286 | msgstr "Адкрыйце Gitea ў браўзэры па змаўчанні"
287 |
288 | #: tmainform.rbuttdefport.caption
289 | msgid "Default port"
290 | msgstr "Порт па змаўчанні"
291 |
292 | #: tmainform.rbuttdefport.hint
293 | msgid "The default port is 3000"
294 | msgstr "Па змаўчанні порт - 3000"
295 |
296 | #: tmainform.rbuttoterbrows.caption
297 | msgid "Other browser. Enter your browser path or a browser launch command."
298 | msgstr ""
299 | "Іншы браўзэр. Увядзіце шлях да браўзэра альбо каманду запуску браўзэра."
300 |
301 | #: tmainform.rbuttselbrows.caption
302 | msgid "In selected browser:"
303 | msgstr "У абраным браўзэры:"
304 |
305 | #: tmainform.rbuttspecport.caption
306 | msgid "Specified port"
307 | msgstr "Указаны порт"
308 |
309 | #: tupdsettingform.caption
310 | msgid "Update setting"
311 | msgstr "Налады абнаўлення"
312 |
313 | #: tupdsettingform.checkboxuseproxy.caption
314 | msgid "Use Proxy"
315 | msgstr "Выкарыстоўвайце проксі"
316 |
317 | #: tupdsettingform.coboxosident.hint
318 | msgid ""
319 | "Specify the OS to download Gitea\n"
320 | "in addiction to your real OS."
321 | msgstr ""
322 | "Укажыце АС для загрузкі Gitea\n"
323 | "у залежнасці ад вашай рэальнай АС."
324 |
325 | #: tupdsettingform.groupbox1.caption
326 | msgid "Proxy settings"
327 | msgstr "Налады проксі"
328 |
329 | #: tupdsettingform.label1.caption
330 | msgid "Port:"
331 | msgstr "Порт:"
332 |
333 | #: tupdsettingform.label2.caption
334 | msgid "OS Identification:"
335 | msgstr "Ідэнтыфікацыя АС:"
336 |
337 | #: tupdsettingform.label3.caption
338 | msgid "Confirm Pass:"
339 | msgstr "Пацвердзіце пароль:"
340 |
341 | #: tupdsettingform.label4.caption
342 | msgctxt "tupdsettingform.label4.caption"
343 | msgid "Host:"
344 | msgstr "Хост:"
345 |
346 | #: tupdsettingform.label5.caption
347 | msgid "User:"
348 | msgstr "Карыстальнік:"
349 |
350 | #: tupdsettingform.label6.caption
351 | msgid "Password:"
352 | msgstr "Пароль:"
353 |
--------------------------------------------------------------------------------
/locale/giteapanel.de.po:
--------------------------------------------------------------------------------
1 | msgid ""
2 | msgstr ""
3 | "Project-Id-Version: GiteaPanel\n"
4 | "POT-Creation-Date: \n"
5 | "PO-Revision-Date: \n"
6 | "Last-Translator: \n"
7 | "Language-Team: \n"
8 | "Language: de\n"
9 | "MIME-Version: 1.0\n"
10 | "Content-Type: text/plain; charset=UTF-8\n"
11 | "Content-Transfer-Encoding: 8bit\n"
12 | "X-Generator: Poedit 2.4.1\n"
13 |
14 | #: resstr.i18_builddate
15 | msgid "Build date:"
16 | msgstr "Erstellungsdatum:"
17 |
18 | #: resstr.i18_canceldownload
19 | msgid "Discard update Gitea?"
20 | msgstr "Update Gitea verwerfen?"
21 |
22 | #: resstr.i18_checknewversion
23 | msgid "Checking for a new version of Gitea..."
24 | msgstr "Nach einer neuen Version von Gitea suchen ..."
25 |
26 | #: resstr.i18_coderivis
27 | msgid "Code revision:"
28 | msgstr "Code-Revision:"
29 |
30 | #: resstr.i18_copyright
31 | msgid "Copyright: "
32 | msgstr "Urheberrechte ©: "
33 |
34 | #: resstr.i18_currentversion
35 | msgid "Current version of Gitea: "
36 | msgstr "Aktuelle Version von Gitea: "
37 |
38 | #: resstr.i18_dlgtitle_browspath
39 | msgid "Select browser binary file"
40 | msgstr "Wählen Sie die Browser-Binärdatei aus"
41 |
42 | #: resstr.i18_dlgtitle_giteapatch
43 | msgid "Select Gitea binary file"
44 | msgstr "Wählen Sie die Gitea-Binärdatei"
45 |
46 | #: resstr.i18_downloadfile
47 | msgid "Download file..."
48 | msgstr "Download-Datei..."
49 |
50 | #: resstr.i18_err_downloadfile
51 | msgid "Failed to download file."
52 | msgstr "Datei konnte nicht heruntergeladen werden."
53 |
54 | #: resstr.i18_err_noconfirmpass
55 | msgid ""
56 | "Passwords do not match.\n"
57 | "Please re-enter your password."
58 | msgstr ""
59 | "Passwörter stimmen nicht überein.\n"
60 | "Bitte geben Sie Ihr Passwort erneut ein."
61 |
62 | #: resstr.i18_err_notosident
63 | msgid ""
64 | "The operating system is not specified in the settings.\n"
65 | "Specify your operating system in the settings."
66 | msgstr ""
67 | "Das Betriebssystem ist in den Einstellungen nicht angegeben.\n"
68 | "Geben Sie Ihr Betriebssystem in den Einstellungen an."
69 |
70 | #: resstr.i18_fortarget
71 | msgid "For CPU, OS:"
72 | msgstr "Für CPU, Betriebssystem:"
73 |
74 | #: resstr.i18_getcurrentversion
75 | msgid "Get the current version of Gitea..."
76 | msgstr "Holen Sie sich die aktuelle Version von Gitea ..."
77 |
78 | #: resstr.i18_gitearunig
79 | msgid "Gitea is runing"
80 | msgstr "Gitea rennt"
81 |
82 | #: resstr.i18_giteastoped
83 | msgid "Gitea stoped"
84 | msgstr "Gitea blieb stehen"
85 |
86 | #: resstr.i18_latesversion
87 | msgid "You have the latest version of Gitea."
88 | msgstr "Sie haben die neueste Version von Gitea."
89 |
90 | #: resstr.i18_msg_err_cantopenserver
91 | #, object-pascal-format
92 | msgid "Can't open gitea server from link: \"%s\""
93 | msgstr "Gitea-Server kann nicht über Link geöffnet werden: \"%s\""
94 |
95 | #: resstr.i18_msg_err_getgithubdata
96 | msgid "Error retrieving data from GitHub!"
97 | msgstr "Fehler beim Abrufen der Daten von GitHub!"
98 |
99 | #: resstr.i18_msg_err_getvergitea
100 | msgid "Error defining version of Gitea!"
101 | msgstr "Fehler beim Definieren der Version von Gitea!"
102 |
103 | #: resstr.i18_msg_err_missingfromhosts
104 | #, object-pascal-format
105 | msgid ""
106 | "The \"%s\" is not in the host file. Add it to the \"/etc/hosts\" file: "
107 | "\"127.0.0.1 %s\""
108 | msgstr ""
109 | "Das \"%s\" befindet sich nicht in der Hostdatei. Fügen Sie es der Datei \"/"
110 | "etc/hosts\" hinzu: \"127.0.0.1 %s\""
111 |
112 | #: resstr.i18_msg_err_nofindbrowser
113 | #, object-pascal-format
114 | msgid ""
115 | "I can not find the browser \"%s\". Please specify the browser in the "
116 | "settings."
117 | msgstr ""
118 | "Ich kann den Browser '%s\" nicht finden. Bitte geben Sie den Browser in den "
119 | "Einstellungen an."
120 |
121 | #: resstr.i18_msg_err_rungitea
122 | msgid ""
123 | "I can not find a way to Gitea.\n"
124 | "Please specify the path in the settings."
125 | msgstr ""
126 | "Ich kann keinen Weg zu Gitea finden.\n"
127 | "Bitte geben Sie den Pfad in den Einstellungen an."
128 |
129 | #: resstr.i18_msg_rerunapp
130 | msgid ""
131 | "Language settings changed.\n"
132 | "Save parameters and restart the application to apply these parameters?"
133 | msgstr ""
134 | "Spracheinstellungen geändert.\n"
135 | "Parameter speichern und Anwendung neu starten, um diese Parameter anzuwenden?"
136 |
137 | #: resstr.i18_newversionavailable
138 | msgid "New version of Gitea is available: "
139 | msgstr "Neue Version von Gitea ist verfügbar: "
140 |
141 | #: resstr.i18_program
142 | msgid "Program:"
143 | msgstr "Programm:"
144 |
145 | #: resstr.i18_startgitea
146 | msgid "Start Gitea"
147 | msgstr "Starten Sie Gitea"
148 |
149 | #: resstr.i18_stopgitea
150 | msgid "Stop Gitea"
151 | msgstr "Stoppen Sie Gitea"
152 |
153 | #: resstr.i18_upfradecomplete
154 | msgid "Download and upgrade complete."
155 | msgstr "Download und Upgrade abgeschlossen."
156 |
157 | #: resstr.i18_version
158 | msgid "version "
159 | msgstr "Ausführung "
160 |
161 | #: resstr.i18_widget
162 | msgid "Widget:"
163 | msgstr "Widget:"
164 |
165 | #: taboutform.caption
166 | msgid "About Gitea Panel"
167 | msgstr "Über Gitea Panel"
168 |
169 | #: taboutform.label5.caption
170 | msgid "Homepage in GitHub"
171 | msgstr "Startseite in GitHub"
172 |
173 | #: tformupdgitea.bitbtncancel.caption
174 | msgid "&Cancel"
175 | msgstr "&Stornieren"
176 |
177 | #: tformupdgitea.bitbtnupd.caption
178 | msgid "&Update"
179 | msgstr "&Aktualisieren"
180 |
181 | #: tformupdgitea.caption
182 | msgid "Update Gitea"
183 | msgstr "Aktualisiere Gitea"
184 |
185 | #: tformupdgitea.label1.caption
186 | msgid "Current version of Gitea:"
187 | msgstr "Aktuelle Version von Gitea:"
188 |
189 | #: tformupdgitea.label2.caption
190 | msgid " "
191 | msgstr " "
192 |
193 | #: tmainform.bitbtn1.caption
194 | msgid "Update options"
195 | msgstr "Aktualisierungsoptionen"
196 |
197 | #: tmainform.caption
198 | msgid "Gitea Panel"
199 | msgstr "Gitea Panel"
200 |
201 | #: tmainform.checkboxcheckupdatestartup.caption
202 | msgid "Check for updates on startup"
203 | msgstr "Suchen Sie beim Start nach Updates"
204 |
205 | #: tmainform.checkboxopenpageafterlaunch.caption
206 | msgid "Open Gitea page after launch"
207 | msgstr "Öffnen Sie die Gitea-Seite nach dem Start"
208 |
209 | #: tmainform.checkboxrungiteastartup.caption
210 | msgid "Run Gitea with the program"
211 | msgstr "Führen Sie Gitea mit dem Programm aus"
212 |
213 | #: tmainform.checkboxstopgiteawhenclose.caption
214 | msgid "Stop Gita when the program closes"
215 | msgstr "Stoppen Sie Gita, wenn das Programm geschlossen wird"
216 |
217 | #: tmainform.coboxlang.hint
218 | msgid ""
219 | "Language preferences will be applied after restarting the application.\n"
220 | "Click \"OK\" to save the setting."
221 | msgstr ""
222 | "Die Spracheinstellungen werden nach dem Neustart der Anwendung angewendet.\n"
223 | "Klicken Sie auf \"OK\", um die Einstellung zu speichern."
224 |
225 | #: tmainform.editbrowspath.texthint
226 | msgid "Full path to your browser"
227 | msgstr "Vollständiger Pfad zu Ihrem Browser"
228 |
229 | #: tmainform.editgiteapatch.texthint
230 | msgid "Full path to Gitea"
231 | msgstr "Voller Pfad zu Gitea"
232 |
233 | #: tmainform.edithost.texthint
234 | msgid "Default: localhost"
235 | msgstr "Standard: localhost"
236 |
237 | #: tmainform.groupbox1.caption
238 | msgid "Browser"
239 | msgstr "Browser"
240 |
241 | #: tmainform.groupbox2.caption
242 | msgid "Gitea"
243 | msgstr "Gitea"
244 |
245 | #: tmainform.groupbox3.caption
246 | msgid "Behavior"
247 | msgstr "Verhalten"
248 |
249 | #: tmainform.label1.caption
250 | msgid "Gitea path:"
251 | msgstr "Gitea Pfad:"
252 |
253 | #: tmainform.label3.caption
254 | msgid "Protocol:"
255 | msgstr "Protokoll:"
256 |
257 | #: tmainform.label4.caption
258 | msgctxt "tmainform.label4.caption"
259 | msgid "Host:"
260 | msgstr "Wirt:"
261 |
262 | #: tmainform.menuabout.caption
263 | msgid "About"
264 | msgstr "Über"
265 |
266 | #: tmainform.menuclose.caption
267 | msgid "Close"
268 | msgstr "Schließen"
269 |
270 | #: tmainform.menuopengitea.caption
271 | msgid "Open Gitea..."
272 | msgstr "Öffnen Sie Gitea ..."
273 |
274 | #: tmainform.menusetting.caption
275 | msgid "Setting"
276 | msgstr "Rahmen"
277 |
278 | #: tmainform.menuupdate.caption
279 | msgid "Check update Gitea"
280 | msgstr "Überprüfen Sie das Update Gitea"
281 |
282 | #: tmainform.rbuttdefbrows.caption
283 | msgid "Open Gitea default browser"
284 | msgstr "Öffnen Sie den Gitea-Standardbrowser"
285 |
286 | #: tmainform.rbuttdefport.caption
287 | msgid "Default port"
288 | msgstr "Standardport"
289 |
290 | #: tmainform.rbuttdefport.hint
291 | msgid "The default port is 3000"
292 | msgstr "Der Standardport ist 3000"
293 |
294 | #: tmainform.rbuttoterbrows.caption
295 | msgid "Other browser. Enter your browser path or a browser launch command."
296 | msgstr "Anderer Browser. Geben Sie Ihren Browserpfad oder Startbefehl ein."
297 |
298 | #: tmainform.rbuttselbrows.caption
299 | msgid "In selected browser:"
300 | msgstr "Im ausgewählten Browser:"
301 |
302 | #: tmainform.rbuttspecport.caption
303 | msgid "Specified port"
304 | msgstr "Angegebener Port"
305 |
306 | #: tupdsettingform.caption
307 | msgid "Update setting"
308 | msgstr "Update-Einstellung"
309 |
310 | #: tupdsettingform.checkboxuseproxy.caption
311 | msgid "Use Proxy"
312 | msgstr "Verwenden Sie Proxy"
313 |
314 | #: tupdsettingform.coboxosident.hint
315 | msgid ""
316 | "Specify the OS to download Gitea\n"
317 | "in addiction to your real OS."
318 | msgstr ""
319 | "Geben Sie das Betriebssystem zum Herunterladen von Gitea an\n"
320 | "in Abhängigkeit von Ihrem echten Betriebssystem."
321 |
322 | #: tupdsettingform.groupbox1.caption
323 | msgid "Proxy settings"
324 | msgstr "Proxy-Einstellungen"
325 |
326 | #: tupdsettingform.label1.caption
327 | msgid "Port:"
328 | msgstr "Hafen:"
329 |
330 | #: tupdsettingform.label2.caption
331 | msgid "OS Identification:"
332 | msgstr "Betriebssystemidentifikation:"
333 |
334 | #: tupdsettingform.label3.caption
335 | msgid "Confirm Pass:"
336 | msgstr "Pass bestätigen:"
337 |
338 | #: tupdsettingform.label4.caption
339 | msgctxt "tupdsettingform.label4.caption"
340 | msgid "Host:"
341 | msgstr "Wirt:"
342 |
343 | #: tupdsettingform.label5.caption
344 | msgid "User:"
345 | msgstr "Benutzer:"
346 |
347 | #: tupdsettingform.label6.caption
348 | msgid "Password:"
349 | msgstr "Passwort:"
350 |
--------------------------------------------------------------------------------
/locale/giteapanel.en.po:
--------------------------------------------------------------------------------
1 | msgid ""
2 | msgstr ""
3 | "Project-Id-Version: \n"
4 | "POT-Creation-Date: \n"
5 | "PO-Revision-Date: \n"
6 | "Last-Translator: \n"
7 | "Language-Team: \n"
8 | "Language: en\n"
9 | "MIME-Version: 1.0\n"
10 | "Content-Type: text/plain; charset=UTF-8\n"
11 | "Content-Transfer-Encoding: 8bit\n"
12 | "X-Generator: Poedit 2.4.1\n"
13 | "Plural-Forms: nplurals=2; plural=(n != 1);\n"
14 |
15 | #: resstr.i18_builddate
16 | msgid "Build date:"
17 | msgstr "Build date:"
18 |
19 | #: resstr.i18_canceldownload
20 | msgid "Discard update Gitea?"
21 | msgstr "Discard update Gitea?"
22 |
23 | #: resstr.i18_checknewversion
24 | msgid "Checking for a new version of Gitea..."
25 | msgstr "Checking for a new version of Gitea..."
26 |
27 | #: resstr.i18_coderivis
28 | msgid "Code revision:"
29 | msgstr "Code revision:"
30 |
31 | #: resstr.i18_copyright
32 | msgid "Copyright: "
33 | msgstr "Copyright: "
34 |
35 | #: resstr.i18_currentversion
36 | msgid "Current version of Gitea: "
37 | msgstr "Current version of Gitea: "
38 |
39 | #: resstr.i18_dlgtitle_browspath
40 | msgid "Select browser binary file"
41 | msgstr "Select browser binary file"
42 |
43 | #: resstr.i18_dlgtitle_giteapatch
44 | msgid "Select Gitea binary file"
45 | msgstr "Select Gitea binary file"
46 |
47 | #: resstr.i18_downloadfile
48 | msgid "Download file..."
49 | msgstr "Download file..."
50 |
51 | #: resstr.i18_err_downloadfile
52 | msgid "Failed to download file."
53 | msgstr "Failed to download file."
54 |
55 | #: resstr.i18_err_noconfirmpass
56 | msgid ""
57 | "Passwords do not match.\n"
58 | "Please re-enter your password."
59 | msgstr ""
60 | "Passwords do not match.\n"
61 | "Please re-enter your password."
62 |
63 | #: resstr.i18_err_notosident
64 | msgid ""
65 | "The operating system is not specified in the settings.\n"
66 | "Specify your operating system in the settings."
67 | msgstr ""
68 | "The operating system is not specified in the settings.\n"
69 | "Specify your operating system in the settings."
70 |
71 | #: resstr.i18_fortarget
72 | msgid "For CPU, OS:"
73 | msgstr "For CPU, OS:"
74 |
75 | #: resstr.i18_getcurrentversion
76 | msgid "Get the current version of Gitea..."
77 | msgstr "Get the current version of Gitea..."
78 |
79 | #: resstr.i18_gitearunig
80 | msgid "Gitea is runing"
81 | msgstr "Gitea is runing"
82 |
83 | #: resstr.i18_giteastoped
84 | msgid "Gitea stoped"
85 | msgstr "Gitea is stoped"
86 |
87 | #: resstr.i18_latesversion
88 | msgid "You have the latest version of Gitea."
89 | msgstr "You have the latest version of Gitea."
90 |
91 | #: resstr.i18_msg_err_cantopenserver
92 | #, object-pascal-format
93 | #| msgid "Can't open gitea server"
94 | msgid "Can't open gitea server from link: \"%s\""
95 | msgstr "Can't open gitea server from link: \"%s\""
96 |
97 | #: resstr.i18_msg_err_getgithubdata
98 | msgid "Error retrieving data from GitHub!"
99 | msgstr "Error retrieving data from GitHub!"
100 |
101 | #: resstr.i18_msg_err_getvergitea
102 | msgid "Error defining version of Gitea!"
103 | msgstr "Error defining version of Gitea!"
104 |
105 | #: resstr.i18_msg_err_missingfromhosts
106 | #, object-pascal-format
107 | msgid ""
108 | "The \"%s\" is not in the host file. Add it to the \"/etc/hosts\" file: "
109 | "\"127.0.0.1 %s\""
110 | msgstr ""
111 | "The \"%s\" is not in the host file. Add it to the \"/etc/hosts\" file: "
112 | "\"127.0.0.1 %s\""
113 |
114 | #: resstr.i18_msg_err_nofindbrowser
115 | #, object-pascal-format
116 | #| msgid ""
117 | #| "I can not find the browser.\n"
118 | #| "Please specify the browser in the settings."
119 | msgid ""
120 | "I can not find the browser \"%s\". Please specify the browser in the "
121 | "settings."
122 | msgstr ""
123 | "I can not find the browser \"%s\". Please specify the browser in the "
124 | "settings."
125 |
126 | #: resstr.i18_msg_err_rungitea
127 | msgid ""
128 | "I can not find a way to Gitea.\n"
129 | "Please specify the path in the settings."
130 | msgstr ""
131 | "I can not find a way to Gitea.\n"
132 | "Please specify the path in the settings."
133 |
134 | #: resstr.i18_msg_rerunapp
135 | msgid ""
136 | "Language settings changed.\n"
137 | "Save parameters and restart the application to apply these parameters?"
138 | msgstr ""
139 | "Language settings changed.\n"
140 | "Save parameters and restart the application to apply these parameters?"
141 |
142 | #: resstr.i18_newversionavailable
143 | msgid "New version of Gitea is available: "
144 | msgstr "New version of Gitea is available: "
145 |
146 | #: resstr.i18_program
147 | msgid "Program:"
148 | msgstr "Program:"
149 |
150 | #: resstr.i18_startgitea
151 | msgid "Start Gitea"
152 | msgstr "Start Gitea"
153 |
154 | #: resstr.i18_stopgitea
155 | msgid "Stop Gitea"
156 | msgstr "Stop Gitea"
157 |
158 | #: resstr.i18_upfradecomplete
159 | msgid "Download and upgrade complete."
160 | msgstr "Download and upgrade complete."
161 |
162 | #: resstr.i18_version
163 | msgid "version "
164 | msgstr "version "
165 |
166 | #: resstr.i18_widget
167 | msgid "Widget:"
168 | msgstr "Widget:"
169 |
170 | #: taboutform.caption
171 | msgid "About Gitea Panel"
172 | msgstr "About Gitea Panel"
173 |
174 | #: taboutform.label5.caption
175 | msgid "Homepage in GitHub"
176 | msgstr "Homepage in GitHub"
177 |
178 | #: tformupdgitea.bitbtncancel.caption
179 | msgid "&Cancel"
180 | msgstr "&Cancel"
181 |
182 | #: tformupdgitea.bitbtnupd.caption
183 | msgid "&Update"
184 | msgstr "&Update"
185 |
186 | #: tformupdgitea.caption
187 | msgid "Update Gitea"
188 | msgstr "Update Gitea"
189 |
190 | #: tformupdgitea.label1.caption
191 | msgid "Current version of Gitea:"
192 | msgstr "Current version of Gitea:"
193 |
194 | #: tformupdgitea.label2.caption
195 | msgid " "
196 | msgstr ""
197 |
198 | #: tmainform.bitbtn1.caption
199 | msgid "Update options"
200 | msgstr "Update options"
201 |
202 | #: tmainform.caption
203 | msgid "Gitea Panel"
204 | msgstr "Gitea Panel"
205 |
206 | #: tmainform.checkboxcheckupdatestartup.caption
207 | msgid "Check for updates on startup"
208 | msgstr "Check for updates at program startup"
209 |
210 | #: tmainform.checkboxopenpageafterlaunch.caption
211 | msgid "Open Gitea page after launch"
212 | msgstr "Open Gitea page after launch"
213 |
214 | #: tmainform.checkboxrungiteastartup.caption
215 | msgid "Run Gitea with the program"
216 | msgstr "Run Gitea with the program"
217 |
218 | #: tmainform.checkboxstopgiteawhenclose.caption
219 | msgid "Stop Gita when the program closes"
220 | msgstr "Stop Gita when the program closes"
221 |
222 | #: tmainform.coboxlang.hint
223 | msgid ""
224 | "Language preferences will be applied after restarting the application.\n"
225 | "Click \"OK\" to save the setting."
226 | msgstr ""
227 | "Language preferences will be applied after restarting the application.\n"
228 | "Click \"OK\" to save the setting."
229 |
230 | #: tmainform.editbrowspath.texthint
231 | msgid "Full path to your browser"
232 | msgstr "Full path to your browser"
233 |
234 | #: tmainform.editgiteapatch.texthint
235 | msgid "Full path to Gitea"
236 | msgstr "Full path to Gitea"
237 |
238 | #: tmainform.edithost.texthint
239 | msgid "Default: localhost"
240 | msgstr "Default: localhost"
241 |
242 | #: tmainform.groupbox1.caption
243 | msgid "Browser"
244 | msgstr "Browser"
245 |
246 | #: tmainform.groupbox2.caption
247 | msgid "Gitea"
248 | msgstr "Gitea"
249 |
250 | #: tmainform.groupbox3.caption
251 | msgid "Behavior"
252 | msgstr "Behavior"
253 |
254 | #: tmainform.label1.caption
255 | msgid "Gitea path:"
256 | msgstr "Gitea path:"
257 |
258 | #: tmainform.label3.caption
259 | msgid "Protocol:"
260 | msgstr "Protocol:"
261 |
262 | #: tmainform.label4.caption
263 | msgctxt "tmainform.label4.caption"
264 | msgid "Host:"
265 | msgstr "Host:"
266 |
267 | #: tmainform.menuabout.caption
268 | msgid "About"
269 | msgstr "About"
270 |
271 | #: tmainform.menuclose.caption
272 | msgid "Close"
273 | msgstr "Close"
274 |
275 | #: tmainform.menuopengitea.caption
276 | msgid "Open Gitea..."
277 | msgstr "Open Gitea..."
278 |
279 | #: tmainform.menusetting.caption
280 | msgid "Setting"
281 | msgstr "Setting"
282 |
283 | #: tmainform.menuupdate.caption
284 | msgid "Check update Gitea"
285 | msgstr "Check update Gitea"
286 |
287 | #: tmainform.rbuttdefbrows.caption
288 | msgid "Open Gitea default browser"
289 | msgstr "Open Gitea default browser"
290 |
291 | #: tmainform.rbuttdefport.caption
292 | msgid "Default port"
293 | msgstr "Default port"
294 |
295 | #: tmainform.rbuttdefport.hint
296 | msgid "The default port is 3000"
297 | msgstr "The default port is 3000"
298 |
299 | #: tmainform.rbuttoterbrows.caption
300 | #| msgid "Other browser. Please enter your browser path."
301 | msgid "Other browser. Enter your browser path or a browser launch command."
302 | msgstr ""
303 | "Other browser. Enter your browser path or a browser launch command."
304 |
305 | #: tmainform.rbuttselbrows.caption
306 | msgid "In selected browser:"
307 | msgstr "In selected browser:"
308 |
309 | #: tmainform.rbuttspecport.caption
310 | msgid "Specified port"
311 | msgstr "Specified port"
312 |
313 | #: tupdsettingform.caption
314 | msgid "Update setting"
315 | msgstr "Update setting"
316 |
317 | #: tupdsettingform.checkboxuseproxy.caption
318 | msgid "Use Proxy"
319 | msgstr "Use Proxy"
320 |
321 | #: tupdsettingform.coboxosident.hint
322 | msgid ""
323 | "Specify the OS to download Gitea\n"
324 | "in addiction to your real OS."
325 | msgstr ""
326 | "Specify the OS to download Gitea\n"
327 | "in addiction to your real OS."
328 |
329 | #: tupdsettingform.groupbox1.caption
330 | msgid "Proxy settings"
331 | msgstr "Proxy settings"
332 |
333 | #: tupdsettingform.label1.caption
334 | msgid "Port:"
335 | msgstr "Port:"
336 |
337 | #: tupdsettingform.label2.caption
338 | msgid "OS Identification:"
339 | msgstr "OS Identification:"
340 |
341 | #: tupdsettingform.label3.caption
342 | msgid "Confirm Pass:"
343 | msgstr "Confirm Password:"
344 |
345 | #: tupdsettingform.label4.caption
346 | msgctxt "tupdsettingform.label4.caption"
347 | msgid "Host:"
348 | msgstr "Host:"
349 |
350 | #: tupdsettingform.label5.caption
351 | msgid "User:"
352 | msgstr "User:"
353 |
354 | #: tupdsettingform.label6.caption
355 | msgid "Password:"
356 | msgstr "Password:"
357 |
358 | #~ msgid "Other browser"
359 | #~ msgstr "Other browser"
360 |
361 | #~ msgid "Auto update (no questions)"
362 | #~ msgstr "Auto update (no questions)"
363 |
364 | #~ msgctxt "tmainform.checkboxupdate.caption"
365 | #~ msgid "Update Gitea"
366 | #~ msgstr "Update Gitea"
367 |
368 | #~ msgid "No"
369 | #~ msgstr "No"
370 |
371 | #~ msgid "Ok"
372 | #~ msgstr "Ok"
373 |
374 | #~ msgctxt "tformupdgitea.buttonyes.caption"
375 | #~ msgid "Yes"
376 | #~ msgstr "Yes"
377 |
--------------------------------------------------------------------------------
/locale/giteapanel.pl.po:
--------------------------------------------------------------------------------
1 | msgid ""
2 | msgstr ""
3 | "Project-Id-Version: GiteaPanel\n"
4 | "POT-Creation-Date: \n"
5 | "PO-Revision-Date: \n"
6 | "Last-Translator: \n"
7 | "Language-Team: \n"
8 | "Language: pl\n"
9 | "MIME-Version: 1.0\n"
10 | "Content-Type: text/plain; charset=UTF-8\n"
11 | "Content-Transfer-Encoding: 8bit\n"
12 | "X-Generator: Poedit 2.4.1\n"
13 |
14 | #: resstr.i18_builddate
15 | msgid "Build date:"
16 | msgstr "Data budowy:"
17 |
18 | #: resstr.i18_canceldownload
19 | msgid "Discard update Gitea?"
20 | msgstr "Odrzucić aktualizację Gitea?"
21 |
22 | #: resstr.i18_checknewversion
23 | msgid "Checking for a new version of Gitea..."
24 | msgstr "Sprawdzanie nowej wersji Gitea..."
25 |
26 | #: resstr.i18_coderivis
27 | msgid "Code revision:"
28 | msgstr "Wersja kodu:"
29 |
30 | #: resstr.i18_copyright
31 | msgid "Copyright: "
32 | msgstr "Prawa autorskie: "
33 |
34 | #: resstr.i18_currentversion
35 | msgid "Current version of Gitea: "
36 | msgstr "Aktualna wersja Gitea: "
37 |
38 | #: resstr.i18_dlgtitle_browspath
39 | msgid "Select browser binary file"
40 | msgstr "Wybierz plik binarny przeglądarki"
41 |
42 | #: resstr.i18_dlgtitle_giteapatch
43 | msgid "Select Gitea binary file"
44 | msgstr "Wybierz plik binarny Gitea"
45 |
46 | #: resstr.i18_downloadfile
47 | msgid "Download file..."
48 | msgstr "Pobieranie pliku..."
49 |
50 | #: resstr.i18_err_downloadfile
51 | msgid "Failed to download file."
52 | msgstr "Nie udało się pobrać pliku."
53 |
54 | #: resstr.i18_err_noconfirmpass
55 | msgid ""
56 | "Passwords do not match.\n"
57 | "Please re-enter your password."
58 | msgstr ""
59 | "Hasła nie pasują do siebie.\n"
60 | "Wprowadź ponownie swoje hasło."
61 |
62 | #: resstr.i18_err_notosident
63 | msgid ""
64 | "The operating system is not specified in the settings.\n"
65 | "Specify your operating system in the settings."
66 | msgstr ""
67 | "System operacyjny nie jest określony w ustawieniach.\n"
68 | "Określ swój system operacyjny w ustawieniach."
69 |
70 | #: resstr.i18_fortarget
71 | msgid "For CPU, OS:"
72 | msgstr "Dla CPU, OS:"
73 |
74 | #: resstr.i18_getcurrentversion
75 | msgid "Get the current version of Gitea..."
76 | msgstr "Pobierz aktualną wersję Gitea..."
77 |
78 | #: resstr.i18_gitearunig
79 | msgid "Gitea is runing"
80 | msgstr "Gitea działa"
81 |
82 | #: resstr.i18_giteastoped
83 | msgid "Gitea stoped"
84 | msgstr "Gitea zatrzymała się"
85 |
86 | #: resstr.i18_latesversion
87 | msgid "You have the latest version of Gitea."
88 | msgstr "Masz najnowszą wersję Gitea."
89 |
90 | #: resstr.i18_msg_err_cantopenserver
91 | #, object-pascal-format
92 | msgid "Can't open gitea server from link: \"%s\""
93 | msgstr "Nie można otworzyć serwera Gitea z linku: \"%s\""
94 |
95 | #: resstr.i18_msg_err_getgithubdata
96 | msgid "Error retrieving data from GitHub!"
97 | msgstr "Błąd podczas pobierania danych z GitHub!"
98 |
99 | #: resstr.i18_msg_err_getvergitea
100 | msgid "Error defining version of Gitea!"
101 | msgstr "Błąd podczas definiowania wersji Gitea!"
102 |
103 | #: resstr.i18_msg_err_missingfromhosts
104 | #, object-pascal-format
105 | msgid ""
106 | "The \"%s\" is not in the host file. Add it to the \"/etc/hosts\" file: "
107 | "\"127.0.0.1 %s\""
108 | msgstr ""
109 | "\"%s” nie znajduje się w pliku hosta. Dodaj go do pliku \"/etc/hosts”: "
110 | "\"127.0.0.1 %s”"
111 |
112 | #: resstr.i18_msg_err_nofindbrowser
113 | #, object-pascal-format
114 | msgid ""
115 | "I can not find the browser \"%s\". Please specify the browser in the "
116 | "settings."
117 | msgstr ""
118 | "Nie mogę znaleźć przeglądarki \"%s\". Proszę określić przeglądarkę w "
119 | "ustawieniach."
120 |
121 | #: resstr.i18_msg_err_rungitea
122 | msgid ""
123 | "I can not find a way to Gitea.\n"
124 | "Please specify the path in the settings."
125 | msgstr ""
126 | "Nie mogę znaleźć drogi do Gitea.\n"
127 | "Podaj ścieżkę w ustawieniach."
128 |
129 | #: resstr.i18_msg_rerunapp
130 | msgid ""
131 | "Language settings changed.\n"
132 | "Save parameters and restart the application to apply these parameters?"
133 | msgstr ""
134 | "Ustawienia języka uległy zmianie.\n"
135 | "Zapisać parametry i ponownie uruchomić aplikację, aby zastosować te "
136 | "parametry?"
137 |
138 | #: resstr.i18_newversionavailable
139 | msgid "New version of Gitea is available: "
140 | msgstr "Dostępna jest nowa wersja Gitea: "
141 |
142 | #: resstr.i18_program
143 | msgid "Program:"
144 | msgstr "Program:"
145 |
146 | #: resstr.i18_startgitea
147 | msgid "Start Gitea"
148 | msgstr "Uruchom Gitea"
149 |
150 | #: resstr.i18_stopgitea
151 | msgid "Stop Gitea"
152 | msgstr "Zatrzymaj Gitea"
153 |
154 | #: resstr.i18_upfradecomplete
155 | msgid "Download and upgrade complete."
156 | msgstr "Pobieranie i aktualizacja zakończone."
157 |
158 | #: resstr.i18_version
159 | msgid "version "
160 | msgstr "wersja "
161 |
162 | #: resstr.i18_widget
163 | msgid "Widget:"
164 | msgstr "Widżet:"
165 |
166 | #: taboutform.caption
167 | msgid "About Gitea Panel"
168 | msgstr "O Gitea Panel"
169 |
170 | #: taboutform.label5.caption
171 | msgid "Homepage in GitHub"
172 | msgstr "Strona główna w GitHub"
173 |
174 | #: tformupdgitea.bitbtncancel.caption
175 | msgid "&Cancel"
176 | msgstr "&Anuluj"
177 |
178 | #: tformupdgitea.bitbtnupd.caption
179 | msgid "&Update"
180 | msgstr "&Aktualizacja"
181 |
182 | #: tformupdgitea.caption
183 | msgid "Update Gitea"
184 | msgstr "Zaktualizuj Gitea"
185 |
186 | #: tformupdgitea.label1.caption
187 | msgid "Current version of Gitea:"
188 | msgstr "Aktualna wersja Gitea:"
189 |
190 | #: tformupdgitea.label2.caption
191 | msgid " "
192 | msgstr " "
193 |
194 | #: tmainform.bitbtn1.caption
195 | msgid "Update options"
196 | msgstr "Aktualizuj opcje"
197 |
198 | #: tmainform.caption
199 | msgid "Gitea Panel"
200 | msgstr "Gitea Panel"
201 |
202 | #: tmainform.checkboxcheckupdatestartup.caption
203 | msgid "Check for updates on startup"
204 | msgstr "Sprawdź dostępność aktualizacji podczas uruchamiania"
205 |
206 | #: tmainform.checkboxopenpageafterlaunch.caption
207 | msgid "Open Gitea page after launch"
208 | msgstr "Otwórz stronę Gitea po uruchomieniu"
209 |
210 | #: tmainform.checkboxrungiteastartup.caption
211 | msgid "Run Gitea with the program"
212 | msgstr "Uruchom Gitea z programem"
213 |
214 | #: tmainform.checkboxstopgiteawhenclose.caption
215 | msgid "Stop Gita when the program closes"
216 | msgstr "Zatrzymaj Gitea po zamknięciu programu"
217 |
218 | #: tmainform.coboxlang.hint
219 | msgid ""
220 | "Language preferences will be applied after restarting the application.\n"
221 | "Click \"OK\" to save the setting."
222 | msgstr ""
223 | "Preferencje językowe zostaną zastosowane po ponownym uruchomieniu "
224 | "aplikacji.\n"
225 | "Kliknij „OK”, aby zapisać ustawienie."
226 |
227 | #: tmainform.editbrowspath.texthint
228 | msgid "Full path to your browser"
229 | msgstr "Pełna ścieżka do przeglądarki"
230 |
231 | #: tmainform.editgiteapatch.texthint
232 | msgid "Full path to Gitea"
233 | msgstr "Pełna ścieżka do Gitea"
234 |
235 | #: tmainform.edithost.texthint
236 | msgid "Default: localhost"
237 | msgstr "Domyślnie: localhost"
238 |
239 | #: tmainform.groupbox1.caption
240 | msgid "Browser"
241 | msgstr "Przeglądarka"
242 |
243 | #: tmainform.groupbox2.caption
244 | msgid "Gitea"
245 | msgstr "Gitea"
246 |
247 | #: tmainform.groupbox3.caption
248 | msgid "Behavior"
249 | msgstr "Zachowanie"
250 |
251 | #: tmainform.label1.caption
252 | msgid "Gitea path:"
253 | msgstr "Ścieżka Gitea:"
254 |
255 | #: tmainform.label3.caption
256 | msgid "Protocol:"
257 | msgstr "Protokół:"
258 |
259 | #: tmainform.label4.caption
260 | msgctxt "tmainform.label4.caption"
261 | msgid "Host:"
262 | msgstr "Host:"
263 |
264 | #: tmainform.menuabout.caption
265 | msgid "About"
266 | msgstr "O programie"
267 |
268 | #: tmainform.menuclose.caption
269 | msgid "Close"
270 | msgstr "Zamknij"
271 |
272 | #: tmainform.menuopengitea.caption
273 | msgid "Open Gitea..."
274 | msgstr "Otwórz Gitea..."
275 |
276 | #: tmainform.menusetting.caption
277 | msgid "Setting"
278 | msgstr "Oprawa"
279 |
280 | #: tmainform.menuupdate.caption
281 | msgid "Check update Gitea"
282 | msgstr "Sprawdź aktualizację Gitea"
283 |
284 | #: tmainform.rbuttdefbrows.caption
285 | msgid "Open Gitea default browser"
286 | msgstr "Otwórz Gitea w domyślnej przeglądarce"
287 |
288 | #: tmainform.rbuttdefport.caption
289 | msgid "Default port"
290 | msgstr "Domyślny port"
291 |
292 | #: tmainform.rbuttdefport.hint
293 | msgid "The default port is 3000"
294 | msgstr "Domyślny port to 3000"
295 |
296 | #: tmainform.rbuttoterbrows.caption
297 | msgid "Other browser. Enter your browser path or a browser launch command."
298 | msgstr ""
299 | "Inna przeglądarka. Określ pełną ścieżkę do przeglądarki lub uruchom "
300 | "polecenie."
301 |
302 | #: tmainform.rbuttselbrows.caption
303 | msgid "In selected browser:"
304 | msgstr "W wybranej przeglądarce:"
305 |
306 | #: tmainform.rbuttspecport.caption
307 | msgid "Specified port"
308 | msgstr "Określony port"
309 |
310 | #: tupdsettingform.caption
311 | msgid "Update setting"
312 | msgstr "Ustawienia aktualizacji"
313 |
314 | #: tupdsettingform.checkboxuseproxy.caption
315 | msgid "Use Proxy"
316 | msgstr "Użyj proxy"
317 |
318 | #: tupdsettingform.coboxosident.hint
319 | msgid ""
320 | "Specify the OS to download Gitea\n"
321 | "in addiction to your real OS."
322 | msgstr ""
323 | "Określ OS, aby pobrać Gitea\n"
324 | "w uzależnieniu od twojego prawdziwego OS."
325 |
326 | #: tupdsettingform.groupbox1.caption
327 | msgid "Proxy settings"
328 | msgstr "Ustawienia proxy"
329 |
330 | #: tupdsettingform.label1.caption
331 | msgid "Port:"
332 | msgstr "Port:"
333 |
334 | #: tupdsettingform.label2.caption
335 | msgid "OS Identification:"
336 | msgstr "Identyfikacja OS:"
337 |
338 | #: tupdsettingform.label3.caption
339 | msgid "Confirm Pass:"
340 | msgstr "Potwerdź hasło:"
341 |
342 | #: tupdsettingform.label4.caption
343 | msgctxt "tupdsettingform.label4.caption"
344 | msgid "Host:"
345 | msgstr "Host:"
346 |
347 | #: tupdsettingform.label5.caption
348 | msgid "User:"
349 | msgstr "Użytkownik:"
350 |
351 | #: tupdsettingform.label6.caption
352 | msgid "Password:"
353 | msgstr "Hasło:"
354 |
--------------------------------------------------------------------------------
/locale/giteapanel.pot:
--------------------------------------------------------------------------------
1 | msgid ""
2 | msgstr "Content-Type: text/plain; charset=UTF-8"
3 |
4 | #: resstr.i18_builddate
5 | msgid "Build date:"
6 | msgstr ""
7 |
8 | #: resstr.i18_canceldownload
9 | msgid "Discard update Gitea?"
10 | msgstr ""
11 |
12 | #: resstr.i18_checknewversion
13 | msgid "Checking for a new version of Gitea..."
14 | msgstr ""
15 |
16 | #: resstr.i18_coderivis
17 | msgid "Code revision:"
18 | msgstr ""
19 |
20 | #: resstr.i18_copyright
21 | msgid "Copyright: "
22 | msgstr ""
23 |
24 | #: resstr.i18_currentversion
25 | msgid "Current version of Gitea: "
26 | msgstr ""
27 |
28 | #: resstr.i18_dlgtitle_browspath
29 | msgid "Select browser binary file"
30 | msgstr ""
31 |
32 | #: resstr.i18_dlgtitle_giteapatch
33 | msgid "Select Gitea binary file"
34 | msgstr ""
35 |
36 | #: resstr.i18_downloadfile
37 | msgid "Download file..."
38 | msgstr ""
39 |
40 | #: resstr.i18_err_downloadfile
41 | msgid "Failed to download file."
42 | msgstr ""
43 |
44 | #: resstr.i18_err_noconfirmpass
45 | msgid ""
46 | "Passwords do not match.\n"
47 | "Please re-enter your password."
48 | msgstr ""
49 |
50 | #: resstr.i18_err_notosident
51 | msgid ""
52 | "The operating system is not specified in the settings.\n"
53 | "Specify your operating system in the settings."
54 | msgstr ""
55 |
56 | #: resstr.i18_fortarget
57 | msgid "For CPU, OS:"
58 | msgstr ""
59 |
60 | #: resstr.i18_getcurrentversion
61 | msgid "Get the current version of Gitea..."
62 | msgstr ""
63 |
64 | #: resstr.i18_gitearunig
65 | msgid "Gitea is runing"
66 | msgstr ""
67 |
68 | #: resstr.i18_giteastoped
69 | msgid "Gitea stoped"
70 | msgstr ""
71 |
72 | #: resstr.i18_latesversion
73 | msgid "You have the latest version of Gitea."
74 | msgstr ""
75 |
76 | #: resstr.i18_msg_err_cantopenserver
77 | #, object-pascal-format
78 | msgid "Can't open gitea server from link: \"%s\""
79 | msgstr ""
80 |
81 | #: resstr.i18_msg_err_getgithubdata
82 | msgid "Error retrieving data from GitHub!"
83 | msgstr ""
84 |
85 | #: resstr.i18_msg_err_getvergitea
86 | msgid "Error defining version of Gitea!"
87 | msgstr ""
88 |
89 | #: resstr.i18_msg_err_missingfromhosts
90 | #, object-pascal-format
91 | msgid "The \"%s\" is not in the host file. Add it to the \"/etc/hosts\" file: \"127.0.0.1 %s\""
92 | msgstr ""
93 |
94 | #: resstr.i18_msg_err_nofindbrowser
95 | #, object-pascal-format
96 | msgid "I can not find the browser \"%s\". Please specify the browser in the settings."
97 | msgstr ""
98 |
99 | #: resstr.i18_msg_err_rungitea
100 | msgid ""
101 | "I can not find a way to Gitea.\n"
102 | "Please specify the path in the settings."
103 | msgstr ""
104 |
105 | #: resstr.i18_msg_rerunapp
106 | msgid ""
107 | "Language settings changed.\n"
108 | "Save parameters and restart the application to apply these parameters?"
109 | msgstr ""
110 |
111 | #: resstr.i18_newversionavailable
112 | msgid "New version of Gitea is available: "
113 | msgstr ""
114 |
115 | #: resstr.i18_program
116 | msgid "Program:"
117 | msgstr ""
118 |
119 | #: resstr.i18_startgitea
120 | msgid "Start Gitea"
121 | msgstr ""
122 |
123 | #: resstr.i18_stopgitea
124 | msgid "Stop Gitea"
125 | msgstr ""
126 |
127 | #: resstr.i18_upfradecomplete
128 | msgid "Download and upgrade complete."
129 | msgstr ""
130 |
131 | #: resstr.i18_version
132 | msgid "version "
133 | msgstr ""
134 |
135 | #: resstr.i18_widget
136 | msgid "Widget:"
137 | msgstr ""
138 |
139 | #: taboutform.caption
140 | msgid "About Gitea Panel"
141 | msgstr ""
142 |
143 | #: taboutform.label5.caption
144 | msgid "Homepage in GitHub"
145 | msgstr ""
146 |
147 | #: tformupdgitea.bitbtncancel.caption
148 | msgid "&Cancel"
149 | msgstr ""
150 |
151 | #: tformupdgitea.bitbtnupd.caption
152 | msgid "&Update"
153 | msgstr ""
154 |
155 | #: tformupdgitea.caption
156 | msgid "Update Gitea"
157 | msgstr ""
158 |
159 | #: tformupdgitea.label1.caption
160 | msgid "Current version of Gitea:"
161 | msgstr ""
162 |
163 | #: tformupdgitea.label2.caption
164 | msgid " "
165 | msgstr ""
166 |
167 | #: tmainform.bitbtn1.caption
168 | msgid "Update options"
169 | msgstr ""
170 |
171 | #: tmainform.caption
172 | msgid "Gitea Panel"
173 | msgstr ""
174 |
175 | #: tmainform.checkboxcheckupdatestartup.caption
176 | msgid "Check for updates on startup"
177 | msgstr ""
178 |
179 | #: tmainform.checkboxopenpageafterlaunch.caption
180 | msgid "Open Gitea page after launch"
181 | msgstr ""
182 |
183 | #: tmainform.checkboxrungiteastartup.caption
184 | msgid "Run Gitea with the program"
185 | msgstr ""
186 |
187 | #: tmainform.checkboxstopgiteawhenclose.caption
188 | msgid "Stop Gita when the program closes"
189 | msgstr ""
190 |
191 | #: tmainform.coboxlang.hint
192 | msgid ""
193 | "Language preferences will be applied after restarting the application.\n"
194 | "Click \"OK\" to save the setting."
195 | msgstr ""
196 |
197 | #: tmainform.editbrowspath.texthint
198 | msgid "Full path to your browser"
199 | msgstr ""
200 |
201 | #: tmainform.editgiteapatch.texthint
202 | msgid "Full path to Gitea"
203 | msgstr ""
204 |
205 | #: tmainform.edithost.texthint
206 | msgid "Default: localhost"
207 | msgstr ""
208 |
209 | #: tmainform.groupbox1.caption
210 | msgid "Browser"
211 | msgstr ""
212 |
213 | #: tmainform.groupbox2.caption
214 | msgid "Gitea"
215 | msgstr ""
216 |
217 | #: tmainform.groupbox3.caption
218 | msgid "Behavior"
219 | msgstr ""
220 |
221 | #: tmainform.label1.caption
222 | msgid "Gitea path:"
223 | msgstr ""
224 |
225 | #: tmainform.label3.caption
226 | msgid "Protocol:"
227 | msgstr ""
228 |
229 | #: tmainform.label4.caption
230 | msgctxt "tmainform.label4.caption"
231 | msgid "Host:"
232 | msgstr ""
233 |
234 | #: tmainform.menuabout.caption
235 | msgid "About"
236 | msgstr ""
237 |
238 | #: tmainform.menuclose.caption
239 | msgid "Close"
240 | msgstr ""
241 |
242 | #: tmainform.menuopengitea.caption
243 | msgid "Open Gitea..."
244 | msgstr ""
245 |
246 | #: tmainform.menusetting.caption
247 | msgid "Setting"
248 | msgstr ""
249 |
250 | #: tmainform.menuupdate.caption
251 | msgid "Check update Gitea"
252 | msgstr ""
253 |
254 | #: tmainform.rbuttdefbrows.caption
255 | msgid "Open Gitea default browser"
256 | msgstr ""
257 |
258 | #: tmainform.rbuttdefport.caption
259 | msgid "Default port"
260 | msgstr ""
261 |
262 | #: tmainform.rbuttdefport.hint
263 | msgid "The default port is 3000"
264 | msgstr ""
265 |
266 | #: tmainform.rbuttoterbrows.caption
267 | msgid "Other browser. Enter your browser path or a browser launch command."
268 | msgstr ""
269 |
270 | #: tmainform.rbuttselbrows.caption
271 | msgid "In selected browser:"
272 | msgstr ""
273 |
274 | #: tmainform.rbuttspecport.caption
275 | msgid "Specified port"
276 | msgstr ""
277 |
278 | #: tupdsettingform.caption
279 | msgid "Update setting"
280 | msgstr ""
281 |
282 | #: tupdsettingform.checkboxuseproxy.caption
283 | msgid "Use Proxy"
284 | msgstr ""
285 |
286 | #: tupdsettingform.coboxosident.hint
287 | msgid ""
288 | "Specify the OS to download Gitea\n"
289 | "in addiction to your real OS."
290 | msgstr ""
291 |
292 | #: tupdsettingform.groupbox1.caption
293 | msgid "Proxy settings"
294 | msgstr ""
295 |
296 | #: tupdsettingform.label1.caption
297 | msgid "Port:"
298 | msgstr ""
299 |
300 | #: tupdsettingform.label2.caption
301 | msgid "OS Identification:"
302 | msgstr ""
303 |
304 | #: tupdsettingform.label3.caption
305 | msgid "Confirm Pass:"
306 | msgstr ""
307 |
308 | #: tupdsettingform.label4.caption
309 | msgctxt "tupdsettingform.label4.caption"
310 | msgid "Host:"
311 | msgstr ""
312 |
313 | #: tupdsettingform.label5.caption
314 | msgid "User:"
315 | msgstr ""
316 |
317 | #: tupdsettingform.label6.caption
318 | msgid "Password:"
319 | msgstr ""
320 |
321 |
--------------------------------------------------------------------------------
/locale/giteapanel.ru.po:
--------------------------------------------------------------------------------
1 | # Sashaoli , 2019.
2 | msgid ""
3 | msgstr ""
4 | "Project-Id-Version: unnamed project\n"
5 | "POT-Creation-Date: \n"
6 | "PO-Revision-Date: 2020-09-15 17:59+0300\n"
7 | "Last-Translator: Sashaoli \n"
8 | "Language-Team: Russian \n"
9 | "Language: ru\n"
10 | "MIME-Version: 1.0\n"
11 | "Content-Type: text/plain; charset=UTF-8\n"
12 | "Content-Transfer-Encoding: 8bit\n"
13 | "X-Generator: Poedit 2.4.1\n"
14 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
15 | "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
16 |
17 | #: resstr.i18_builddate
18 | msgid "Build date:"
19 | msgstr "Дата сборки:"
20 |
21 | #: resstr.i18_canceldownload
22 | msgid "Discard update Gitea?"
23 | msgstr "Отменить обновление Gitea?"
24 |
25 | #: resstr.i18_checknewversion
26 | msgid "Checking for a new version of Gitea..."
27 | msgstr "Проверка наличия новой версии Gitea..."
28 |
29 | #: resstr.i18_coderivis
30 | msgid "Code revision:"
31 | msgstr "Редакция кода:"
32 |
33 | #: resstr.i18_copyright
34 | msgid "Copyright: "
35 | msgstr "Авторское право: "
36 |
37 | #: resstr.i18_currentversion
38 | msgid "Current version of Gitea: "
39 | msgstr "Текущая версия Gitea: "
40 |
41 | #: resstr.i18_dlgtitle_browspath
42 | msgid "Select browser binary file"
43 | msgstr "Выберите двоичный файл браузера"
44 |
45 | #: resstr.i18_dlgtitle_giteapatch
46 | msgid "Select Gitea binary file"
47 | msgstr "Выберите двоичный файл Gitea"
48 |
49 | #: resstr.i18_downloadfile
50 | msgid "Download file..."
51 | msgstr "Загрузка файла..."
52 |
53 | #: resstr.i18_err_downloadfile
54 | msgid "Failed to download file."
55 | msgstr "Ошибка загрузки файла."
56 |
57 | #: resstr.i18_err_noconfirmpass
58 | msgid ""
59 | "Passwords do not match.\n"
60 | "Please re-enter your password."
61 | msgstr ""
62 | "Пароли не совпадают.\n"
63 | "Введите Ваш пароль ещё раз."
64 |
65 | #: resstr.i18_err_notosident
66 | msgid ""
67 | "The operating system is not specified in the settings.\n"
68 | "Specify your operating system in the settings."
69 | msgstr ""
70 | "Не указана операционная система в настройках.\n"
71 | "Укажите Вашу операционную систему в настройках."
72 |
73 | #: resstr.i18_fortarget
74 | msgid "For CPU, OS:"
75 | msgstr "Для CPU, ОС:"
76 |
77 | #: resstr.i18_getcurrentversion
78 | msgid "Get the current version of Gitea..."
79 | msgstr "Получение текущей версии Gitea..."
80 |
81 | #: resstr.i18_gitearunig
82 | msgid "Gitea is runing"
83 | msgstr "Gitea запущенна"
84 |
85 | #: resstr.i18_giteastoped
86 | msgid "Gitea stoped"
87 | msgstr "Gitea остановлена"
88 |
89 | #: resstr.i18_latesversion
90 | msgid "You have the latest version of Gitea."
91 | msgstr "У Вас последняя версия Gitea."
92 |
93 | #: resstr.i18_msg_err_cantopenserver
94 | #, object-pascal-format
95 | msgid "Can't open gitea server from link: \"%s\""
96 | msgstr "Не могу открыть Gitea сервер по ссылке: \"%s\""
97 |
98 | #: resstr.i18_msg_err_getgithubdata
99 | msgid "Error retrieving data from GitHub!"
100 | msgstr "Ошибка получения данных из GitHub!"
101 |
102 | #: resstr.i18_msg_err_getvergitea
103 | msgid "Error defining version of Gitea!"
104 | msgstr "Ошибка определения версии Gitea!"
105 |
106 | #: resstr.i18_msg_err_missingfromhosts
107 | #, object-pascal-format
108 | msgid ""
109 | "The \"%s\" is not in the host file. Add it to the \"/etc/hosts\" file: "
110 | "\"127.0.0.1 %s\""
111 | msgstr ""
112 | "\"%s\" отсуствует в хостфайле. Добавте его в файл \"/etc/hosts\": "
113 | "\"127.0.0.1 %s\""
114 |
115 | #: resstr.i18_msg_err_nofindbrowser
116 | #, object-pascal-format
117 | msgid ""
118 | "I can not find the browser \"%s\". Please specify the browser in the "
119 | "settings."
120 | msgstr ""
121 | "Не могу найти браузер \"%s\". Пожалуйста, укажите браузер в настройках."
122 |
123 | #: resstr.i18_msg_err_rungitea
124 | msgid ""
125 | "I can not find a way to Gitea.\n"
126 | "Please specify the path in the settings."
127 | msgstr ""
128 | "Не могу найти путь Gitea.\n"
129 | "пожалуйста, укажите путь к Gitea в настройках."
130 |
131 | #: resstr.i18_msg_rerunapp
132 | msgid ""
133 | "Language settings changed.\n"
134 | "Save parameters and restart the application to apply these parameters?"
135 | msgstr ""
136 | "Языковые настройки изменены.\n"
137 | "Сохранить параметры и перезапустить программу для применения этих параметров?"
138 |
139 | #: resstr.i18_newversionavailable
140 | msgid "New version of Gitea is available: "
141 | msgstr "Доступна новая версия Gitea: "
142 |
143 | #: resstr.i18_program
144 | msgid "Program:"
145 | msgstr "Программа:"
146 |
147 | #: resstr.i18_startgitea
148 | msgid "Start Gitea"
149 | msgstr "Запустить Gitea"
150 |
151 | #: resstr.i18_stopgitea
152 | msgid "Stop Gitea"
153 | msgstr "Остановить Gitea"
154 |
155 | #: resstr.i18_upfradecomplete
156 | msgid "Download and upgrade complete."
157 | msgstr "Загрузка и обновление завершены."
158 |
159 | #: resstr.i18_version
160 | msgid "version "
161 | msgstr "версия "
162 |
163 | #: resstr.i18_widget
164 | msgid "Widget:"
165 | msgstr "Виджет:"
166 |
167 | #: taboutform.caption
168 | msgid "About Gitea Panel"
169 | msgstr "О Gitea Panel"
170 |
171 | #: taboutform.label5.caption
172 | msgid "Homepage in GitHub"
173 | msgstr "Домашняя страница в GitHub"
174 |
175 | #: tformupdgitea.bitbtncancel.caption
176 | msgid "&Cancel"
177 | msgstr "&Отменить"
178 |
179 | #: tformupdgitea.bitbtnupd.caption
180 | msgid "&Update"
181 | msgstr "&Обновить"
182 |
183 | #: tformupdgitea.caption
184 | msgid "Update Gitea"
185 | msgstr "Обновление Gitea"
186 |
187 | #: tformupdgitea.label1.caption
188 | msgid "Current version of Gitea:"
189 | msgstr "Текущая версия Gitea:"
190 |
191 | #: tformupdgitea.label2.caption
192 | msgid " "
193 | msgstr ""
194 |
195 | #: tmainform.bitbtn1.caption
196 | msgid "Update options"
197 | msgstr "Настройки обновления"
198 |
199 | #: tmainform.caption
200 | msgid "Gitea Panel"
201 | msgstr "Gitea Panel"
202 |
203 | #: tmainform.checkboxcheckupdatestartup.caption
204 | msgid "Check for updates on startup"
205 | msgstr "Проверять обновления при старте программы"
206 |
207 | #: tmainform.checkboxopenpageafterlaunch.caption
208 | msgid "Open Gitea page after launch"
209 | msgstr "Открыть страницу Gitea после запуска"
210 |
211 | #: tmainform.checkboxrungiteastartup.caption
212 | msgid "Run Gitea with the program"
213 | msgstr "Запускать Gitea вместе с программой"
214 |
215 | #: tmainform.checkboxstopgiteawhenclose.caption
216 | msgid "Stop Gita when the program closes"
217 | msgstr "Остановить Gitea при закрытии программы"
218 |
219 | #: tmainform.coboxlang.hint
220 | msgid ""
221 | "Language preferences will be applied after restarting the application.\n"
222 | "Click \"OK\" to save the setting."
223 | msgstr ""
224 | "Языковые предпочтения будут применены после перезапуска приложения.\n"
225 | "Нажмите \"OK\", чтобы сохранить настройки."
226 |
227 | #: tmainform.editbrowspath.texthint
228 | msgid "Full path to your browser"
229 | msgstr "Полный путь к вашему браузеру"
230 |
231 | #: tmainform.editgiteapatch.texthint
232 | msgid "Full path to Gitea"
233 | msgstr "Полный путь к Gitea"
234 |
235 | #: tmainform.edithost.texthint
236 | msgid "Default: localhost"
237 | msgstr "По умолчанию: localhost"
238 |
239 | #: tmainform.groupbox1.caption
240 | msgid "Browser"
241 | msgstr "Браузер"
242 |
243 | #: tmainform.groupbox2.caption
244 | msgid "Gitea"
245 | msgstr "Gitea"
246 |
247 | #: tmainform.groupbox3.caption
248 | msgid "Behavior"
249 | msgstr "Поведение"
250 |
251 | #: tmainform.label1.caption
252 | msgid "Gitea path:"
253 | msgstr "Путь Gitea:"
254 |
255 | #: tmainform.label3.caption
256 | msgid "Protocol:"
257 | msgstr "Протокол:"
258 |
259 | #: tmainform.label4.caption
260 | msgctxt "tmainform.label4.caption"
261 | msgid "Host:"
262 | msgstr "Хост:"
263 |
264 | #: tmainform.menuabout.caption
265 | msgid "About"
266 | msgstr "О программе"
267 |
268 | #: tmainform.menuclose.caption
269 | msgid "Close"
270 | msgstr "Закрыть"
271 |
272 | #: tmainform.menuopengitea.caption
273 | msgid "Open Gitea..."
274 | msgstr "Открыть Gitea..."
275 |
276 | #: tmainform.menusetting.caption
277 | msgid "Setting"
278 | msgstr "Параметры"
279 |
280 | #: tmainform.menuupdate.caption
281 | msgid "Check update Gitea"
282 | msgstr "Проверить обновление Gitea"
283 |
284 | #: tmainform.rbuttdefbrows.caption
285 | msgid "Open Gitea default browser"
286 | msgstr "Открыть Gitea в браузере по умолчанию"
287 |
288 | #: tmainform.rbuttdefport.caption
289 | msgid "Default port"
290 | msgstr "Типичный порт"
291 |
292 | #: tmainform.rbuttdefport.hint
293 | msgid "The default port is 3000"
294 | msgstr "Типичный порт - 3000"
295 |
296 | #: tmainform.rbuttoterbrows.caption
297 | msgid "Other browser. Enter your browser path or a browser launch command."
298 | msgstr ""
299 | "Другой браузер. Укажите полный путь к вашему браузеру или комманду запуска."
300 |
301 | #: tmainform.rbuttselbrows.caption
302 | msgid "In selected browser:"
303 | msgstr "В выбранном браузере:"
304 |
305 | #: tmainform.rbuttspecport.caption
306 | msgid "Specified port"
307 | msgstr "Указанный порт"
308 |
309 | #: tupdsettingform.caption
310 | msgid "Update setting"
311 | msgstr "Настройка обновления"
312 |
313 | #: tupdsettingform.checkboxuseproxy.caption
314 | msgid "Use Proxy"
315 | msgstr "Использовать прокси"
316 |
317 | #: tupdsettingform.coboxosident.hint
318 | msgid ""
319 | "Specify the OS to download Gitea\n"
320 | "in addiction to your real OS."
321 | msgstr ""
322 | "Укажите ОС, что-бы загружать Gitea\n"
323 | "в соответствии с Вашей реальной ОС."
324 |
325 | #: tupdsettingform.groupbox1.caption
326 | msgid "Proxy settings"
327 | msgstr "Настройки прокси"
328 |
329 | #: tupdsettingform.label1.caption
330 | msgid "Port:"
331 | msgstr "Порт:"
332 |
333 | #: tupdsettingform.label2.caption
334 | msgid "OS Identification:"
335 | msgstr "Идентификация ОС:"
336 |
337 | #: tupdsettingform.label3.caption
338 | msgid "Confirm Pass:"
339 | msgstr "Подтверждение пароля:"
340 |
341 | #: tupdsettingform.label4.caption
342 | msgctxt "tupdsettingform.label4.caption"
343 | msgid "Host:"
344 | msgstr "Хост:"
345 |
346 | #: tupdsettingform.label5.caption
347 | msgid "User:"
348 | msgstr "Пользователь:"
349 |
350 | #: tupdsettingform.label6.caption
351 | msgid "Password:"
352 | msgstr "Пароль:"
353 |
354 | #~ msgid "Other browser"
355 | #~ msgstr "Другой браузер"
356 |
357 | #~ msgid "Auto update (no questions)"
358 | #~ msgstr "Авто-обновление (без вопросов)"
359 |
360 | #~ msgctxt "tmainform.checkboxupdate.caption"
361 | #~ msgid "Update Gitea"
362 | #~ msgstr "Обновлять Gitea"
363 |
--------------------------------------------------------------------------------
/locale/giteapanel.uk.po:
--------------------------------------------------------------------------------
1 | msgid ""
2 | msgstr ""
3 | "Project-Id-Version: Gitea Panel\n"
4 | "POT-Creation-Date: \n"
5 | "PO-Revision-Date: \n"
6 | "Last-Translator: Sashaoli \n"
7 | "Language-Team: Sashaoli\n"
8 | "Language: uk\n"
9 | "MIME-Version: 1.0\n"
10 | "Content-Type: text/plain; charset=UTF-8\n"
11 | "Content-Transfer-Encoding: 8bit\n"
12 | "X-Generator: Poedit 2.4.1\n"
13 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
14 | "%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
15 |
16 | #: resstr.i18_builddate
17 | msgid "Build date:"
18 | msgstr "Дата збірки:"
19 |
20 | #: resstr.i18_canceldownload
21 | msgid "Discard update Gitea?"
22 | msgstr "Припинити оновлення Gitea?"
23 |
24 | #: resstr.i18_checknewversion
25 | msgid "Checking for a new version of Gitea..."
26 | msgstr "Перевірка нової версії Gitea ..."
27 |
28 | #: resstr.i18_coderivis
29 | msgid "Code revision:"
30 | msgstr "Редакція коду:"
31 |
32 | #: resstr.i18_copyright
33 | msgid "Copyright: "
34 | msgstr "Авторське право: "
35 |
36 | #: resstr.i18_currentversion
37 | msgid "Current version of Gitea: "
38 | msgstr "Поточна версія Gitea: "
39 |
40 | #: resstr.i18_dlgtitle_browspath
41 | msgid "Select browser binary file"
42 | msgstr "Виберіть двійковий файл браузера"
43 |
44 | #: resstr.i18_dlgtitle_giteapatch
45 | msgid "Select Gitea binary file"
46 | msgstr "Виберіть двійковий файл Gitea"
47 |
48 | #: resstr.i18_downloadfile
49 | msgid "Download file..."
50 | msgstr "Завантаження файлу..."
51 |
52 | #: resstr.i18_err_downloadfile
53 | msgid "Failed to download file."
54 | msgstr "Помилка завантаження файлу."
55 |
56 | #: resstr.i18_err_noconfirmpass
57 | msgid ""
58 | "Passwords do not match.\n"
59 | "Please re-enter your password."
60 | msgstr ""
61 | "Паролі не співпадають.\n"
62 | "Введіть пароль ще раз."
63 |
64 | #: resstr.i18_err_notosident
65 | msgid ""
66 | "The operating system is not specified in the settings.\n"
67 | "Specify your operating system in the settings."
68 | msgstr ""
69 | "Не вказана операційна система в налаштуваннях.\n"
70 | "Вкажіть Вашу операційну систему в налаштуваннях."
71 |
72 | #: resstr.i18_fortarget
73 | msgid "For CPU, OS:"
74 | msgstr "Для CPU, ОС:"
75 |
76 | #: resstr.i18_getcurrentversion
77 | msgid "Get the current version of Gitea..."
78 | msgstr "Отримую поточну версію Gitea..."
79 |
80 | #: resstr.i18_gitearunig
81 | msgid "Gitea is runing"
82 | msgstr "Gitea працює"
83 |
84 | #: resstr.i18_giteastoped
85 | msgid "Gitea stoped"
86 | msgstr "Gitea зупинена"
87 |
88 | #: resstr.i18_latesversion
89 | msgid "You have the latest version of Gitea."
90 | msgstr "У вас є остання версія Gitea."
91 |
92 | #: resstr.i18_msg_err_cantopenserver
93 | #, object-pascal-format
94 | msgid "Can't open gitea server from link: \"%s\""
95 | msgstr "Не вдається відкрити сервер Gitea за посиланням: \"%s\""
96 |
97 | #: resstr.i18_msg_err_getgithubdata
98 | msgid "Error retrieving data from GitHub!"
99 | msgstr "Помилка під час отримання даних GitHub!"
100 |
101 | #: resstr.i18_msg_err_getvergitea
102 | msgid "Error defining version of Gitea!"
103 | msgstr "Помилка визначення версії Gitea!"
104 |
105 | #: resstr.i18_msg_err_missingfromhosts
106 | #, object-pascal-format
107 | msgid ""
108 | "The \"%s\" is not in the host file. Add it to the \"/etc/hosts\" file: "
109 | "\"127.0.0.1 %s\""
110 | msgstr ""
111 | "Хост \"%s\" відсутній у хост-файлі. Додайте його у файл \"/etc/hosts\", "
112 | "як \"127.0.01 %s\""
113 |
114 | #: resstr.i18_msg_err_nofindbrowser
115 | #, object-pascal-format
116 | msgid ""
117 | "I can not find the browser \"%s\". Please specify the browser in the "
118 | "settings."
119 | msgstr ""
120 | "Не можу знайти браузер \"%s\". Будь-лавка, вкажіть браузер в "
121 | "налаштуваннях."
122 |
123 | #: resstr.i18_msg_err_rungitea
124 | msgid ""
125 | "I can not find a way to Gitea.\n"
126 | "Please specify the path in the settings."
127 | msgstr ""
128 | "Не можу знайти шлях Gitea.\n"
129 | "Будь-ласка, вкажіть шлях до Gitea в налаштуваннях."
130 |
131 | #: resstr.i18_msg_rerunapp
132 | msgid ""
133 | "Language settings changed.\n"
134 | "Save parameters and restart the application to apply these parameters?"
135 | msgstr ""
136 | "Мовні параметри змінено.\n"
137 | "Зберегти параметри та перезавантажити програму для застосування цих "
138 | "параметрів?"
139 |
140 | #: resstr.i18_newversionavailable
141 | msgid "New version of Gitea is available: "
142 | msgstr "Доступна нова версія Gitea: "
143 |
144 | #: resstr.i18_program
145 | msgid "Program:"
146 | msgstr "Програма:"
147 |
148 | #: resstr.i18_startgitea
149 | msgid "Start Gitea"
150 | msgstr "Запустити Gitea"
151 |
152 | #: resstr.i18_stopgitea
153 | msgid "Stop Gitea"
154 | msgstr "Зупинити Gitea"
155 |
156 | #: resstr.i18_upfradecomplete
157 | msgid "Download and upgrade complete."
158 | msgstr "Завантаження та оновлення завершено."
159 |
160 | #: resstr.i18_version
161 | msgid "version "
162 | msgstr "версія "
163 |
164 | #: resstr.i18_widget
165 | msgid "Widget:"
166 | msgstr "Віджет:"
167 |
168 | #: taboutform.caption
169 | msgid "About Gitea Panel"
170 | msgstr "Про Gitea Panel"
171 |
172 | #: taboutform.label5.caption
173 | msgid "Homepage in GitHub"
174 | msgstr "Домашня сторінка в GitHub"
175 |
176 | #: tformupdgitea.bitbtncancel.caption
177 | msgid "&Cancel"
178 | msgstr "Скасувати"
179 |
180 | #: tformupdgitea.bitbtnupd.caption
181 | msgid "&Update"
182 | msgstr "&Оновити"
183 |
184 | #: tformupdgitea.caption
185 | msgid "Update Gitea"
186 | msgstr "Оновлeння Gitea"
187 |
188 | #: tformupdgitea.label1.caption
189 | msgid "Current version of Gitea:"
190 | msgstr "Поточна версія Gitea:"
191 |
192 | #: tformupdgitea.label2.caption
193 | msgid " "
194 | msgstr ""
195 |
196 | #: tmainform.bitbtn1.caption
197 | msgid "Update options"
198 | msgstr "Параметри оновлення"
199 |
200 | #: tmainform.caption
201 | msgid "Gitea Panel"
202 | msgstr "Gitea Panel"
203 |
204 | #: tmainform.checkboxcheckupdatestartup.caption
205 | msgid "Check for updates on startup"
206 | msgstr "Перевіряти оновлення при старті програми"
207 |
208 | #: tmainform.checkboxopenpageafterlaunch.caption
209 | msgid "Open Gitea page after launch"
210 | msgstr "Відкривати сторінку Gitea після запуску"
211 |
212 | #: tmainform.checkboxrungiteastartup.caption
213 | msgid "Run Gitea with the program"
214 | msgstr "Запускати Gitea разом з програмою"
215 |
216 | #: tmainform.checkboxstopgiteawhenclose.caption
217 | msgid "Stop Gita when the program closes"
218 | msgstr "Зупиняти Gitea при закритті програми"
219 |
220 | #: tmainform.coboxlang.hint
221 | msgid ""
222 | "Language preferences will be applied after restarting the application.\n"
223 | "Click \"OK\" to save the setting."
224 | msgstr ""
225 | "Мовні параметри будуть застосовані після перезапуску програми.\n"
226 | "Натисніть кнопку \"ОК\", щоб зберегти настройки."
227 |
228 | #: tmainform.editbrowspath.texthint
229 | msgid "Full path to your browser"
230 | msgstr "Повний шлях до браузера"
231 |
232 | #: tmainform.editgiteapatch.texthint
233 | msgid "Full path to Gitea"
234 | msgstr "Повний шлях до Gitea"
235 |
236 | #: tmainform.edithost.texthint
237 | msgid "Default: localhost"
238 | msgstr "Типово: localhost"
239 |
240 | #: tmainform.groupbox1.caption
241 | msgid "Browser"
242 | msgstr "Браузер"
243 |
244 | #: tmainform.groupbox2.caption
245 | msgid "Gitea"
246 | msgstr "Gitea"
247 |
248 | #: tmainform.groupbox3.caption
249 | msgid "Behavior"
250 | msgstr "Поведінка"
251 |
252 | #: tmainform.label1.caption
253 | msgid "Gitea path:"
254 | msgstr "Шлях до Gitea:"
255 |
256 | #: tmainform.label3.caption
257 | msgid "Protocol:"
258 | msgstr "Протокол:"
259 |
260 | #: tmainform.label4.caption
261 | msgctxt "tmainform.label4.caption"
262 | msgid "Host:"
263 | msgstr "Хост:"
264 |
265 | #: tmainform.menuabout.caption
266 | msgid "About"
267 | msgstr "Про програму"
268 |
269 | #: tmainform.menuclose.caption
270 | msgid "Close"
271 | msgstr "Закрити"
272 |
273 | #: tmainform.menuopengitea.caption
274 | msgid "Open Gitea..."
275 | msgstr "Відкрити Gitea..."
276 |
277 | #: tmainform.menusetting.caption
278 | msgid "Setting"
279 | msgstr "Параметри"
280 |
281 | #: tmainform.menuupdate.caption
282 | msgid "Check update Gitea"
283 | msgstr "Перевірити оновлення Gitea"
284 |
285 | #: tmainform.rbuttdefbrows.caption
286 | msgid "Open Gitea default browser"
287 | msgstr "Відкрити Gitea в браузері за замовчуванням"
288 |
289 | #: tmainform.rbuttdefport.caption
290 | msgid "Default port"
291 | msgstr "Типовий порт"
292 |
293 | #: tmainform.rbuttdefport.hint
294 | msgid "The default port is 3000"
295 | msgstr "Типовий порт є 3000"
296 |
297 | #: tmainform.rbuttoterbrows.caption
298 | msgid "Other browser. Enter your browser path or a browser launch command."
299 | msgstr ""
300 | "Інший браузер. Будь-ласка введіть повний шлях до браузера або команду "
301 | "запуску."
302 |
303 | #: tmainform.rbuttselbrows.caption
304 | msgid "In selected browser:"
305 | msgstr "У вибраному браузері:"
306 |
307 | #: tmainform.rbuttspecport.caption
308 | msgid "Specified port"
309 | msgstr "Вказаний порт"
310 |
311 | #: tupdsettingform.caption
312 | msgid "Update setting"
313 | msgstr "Параметри оновлення"
314 |
315 | #: tupdsettingform.checkboxuseproxy.caption
316 | msgid "Use Proxy"
317 | msgstr "Використовувати проксі"
318 |
319 | #: tupdsettingform.coboxosident.hint
320 | msgid ""
321 | "Specify the OS to download Gitea\n"
322 | "in addiction to your real OS."
323 | msgstr ""
324 | "Вкажіть ОС, щоб завантажувати Gitea\n"
325 | "у відповідності до Вашої реальної ОС."
326 |
327 | #: tupdsettingform.groupbox1.caption
328 | msgid "Proxy settings"
329 | msgstr "Параметри проксі"
330 |
331 | #: tupdsettingform.label1.caption
332 | msgid "Port:"
333 | msgstr "Порт:"
334 |
335 | #: tupdsettingform.label2.caption
336 | msgid "OS Identification:"
337 | msgstr "Ідентифікація ОС:"
338 |
339 | #: tupdsettingform.label3.caption
340 | msgid "Confirm Pass:"
341 | msgstr "Підтвердження гасла:"
342 |
343 | #: tupdsettingform.label4.caption
344 | msgctxt "tupdsettingform.label4.caption"
345 | msgid "Host:"
346 | msgstr "Хост:"
347 |
348 | #: tupdsettingform.label5.caption
349 | msgid "User:"
350 | msgstr "Користувач:"
351 |
352 | #: tupdsettingform.label6.caption
353 | msgid "Password:"
354 | msgstr "Гасло:"
355 |
356 | #~ msgid "Gitea update options"
357 | #~ msgstr "Параметри оновлення Gitea"
358 |
359 | #~ msgid "Other browser"
360 | #~ msgstr "Інший браузер"
361 |
362 | #~ msgid "Auto update (no questions)"
363 | #~ msgstr "Авто-оновлення (без запитань)"
364 |
365 | #~ msgctxt "tmainform.checkboxupdate.caption"
366 | #~ msgid "Update Gitea"
367 | #~ msgstr "Оновлювати Gitea"
368 |
369 | #~ msgctxt "tformupdgitea.bitbtnno.caption"
370 | #~ msgid "&No"
371 | #~ msgstr "Ні"
372 |
373 | #~ msgid "Ok"
374 | #~ msgstr "Ok"
375 |
376 | #~ msgid "Yes"
377 | #~ msgstr "Так"
378 |
--------------------------------------------------------------------------------
/locale/lang.list:
--------------------------------------------------------------------------------
1 | aa=Qafaraf
2 | ab=Аҧсуа
3 | ae=Avesta
4 | af=Afrikaans
5 | ak=Akan
6 | am=አማርኛ
7 | an=Aragonés
8 | ar=العربية
9 | as=অসমীয়া
10 | av=Авар мацӀ
11 | ay=Aymar aru
12 | az=Azərbaycan dili
13 | ba=Башҡорт теле
14 | be=Беларуская
15 | bg=Български език
16 | bh=भोजपुरी
17 | bi=Bislama
18 | bm=Bamanankan
19 | bn=বাংলা
20 | bo=བོད་ཡིག
21 | br=Brezhoneg
22 | bs=Bosanski jezik
23 | ca=Català
24 | ce=Нохчийн мотт
25 | ch=Chamoru
26 | co=Corsu
27 | cr=ᓀᐦᐃᔭᐍᐏᐣ
28 | cs=Česky
29 | cv=Чӑваш чӗлхи
30 | cy=Cymraeg
31 | da=Dansk
32 | de=Deutsch
33 | dz=རྫོང་ཁ
34 | ee=Ɛʋɛgbɛ
35 | el=Ελληνικά
36 | en=English
37 | eo=Esperanto
38 | es=Español
39 | et=Eesti keel
40 | eu=Euskara
41 | fa=فارسی
42 | ff=Fulfulde
43 | fi=Suomen kieli
44 | fj=Vosa vakaviti
45 | fo=Føroyskt
46 | fr=Français
47 | fy=Frysk
48 | ga=Gaeilge
49 | gd=Gàidhlig
50 | gl=Galego
51 | gn=Avañe'ẽ
52 | gu=ગુજરાતી
53 | gv=Ghaelg
54 | ha=هَوُسَ
55 | he=עברית
56 | hi=हिन्दी
57 | ho=Hiri motu
58 | hr=Hrvatski
59 | ht=Kreyòl ayisyen
60 | hu=Magyar
61 | hy=Հայերեն
62 | hz=Otjiherero
63 | ia=Interlingua
64 | id=Bahasa indonesia
65 | ie=Interlingue
66 | ig=Igbo
67 | ii=ꆇꉙ
68 | ik=Iñupiaq
69 | io=Ido
70 | is=Íslenska
71 | it=Italiano
72 | iu=ᐃᓄᒃᑎᑐᑦ
73 | ja=日本語
74 | jv=Basa jawa
75 | ka=ქართული
76 | kg=Kikongo
77 | ki=Gĩkũyũ
78 | kj=Kuanyama
79 | kk=Қазақ тілі
80 | kl=Kalaallisut
81 | km=ភាសាខ្មែរ
82 | kn=ಕನ್ನಡ
83 | ko=한국어
84 | kr=Kanuri
85 | ks=कश्मीरी
86 | ku=كوردی
87 | kv=Коми кыв
88 | kw=Kernewek
89 | ky=Кыргыз тили
90 | la=Latine
91 | lb=Lëtzebuergesch
92 | lg=Luganda
93 | li=Limburgs
94 | ln=Lingála
95 | lo=ພາສາລາວ
96 | lt=Lietuvių kalba
97 | lv=Latviešu valoda
98 | mg=Malagasy fiteny
99 | mh=Kajin m̧ajeļ
100 | mi=Te reo māori
101 | mk=Македонски јазик
102 | ml=മലയാളം
103 | mn=Монгол
104 | mr=मराठी
105 | ms=بهاس ملايو
106 | mt=Malti
107 | my=ဗမာစာ
108 | na=Ekakairũ naoero
109 | nb=Norsk bokmål
110 | nd=Isindebele
111 | ne=नेपाली
112 | ng=Owambo
113 | nl=Nederlands
114 | nn=Norsk nynorsk
115 | no=Norsk
116 | nr=Ndébélé
117 | nv=Diné bizaad
118 | ny=Chicheŵa
119 | oc=Occitan
120 | oj=ᐊᓂᔑᓈᐯᒧᐎᓐ
121 | om=Afaan oromoo
122 | or=ଓଡ଼ିଆ
123 | os=Ирон æвзаг
124 | pa=ਪੰਜਾਬੀ
125 | pi=पाऴि
126 | pl=Polski
127 | ps=پښتو
128 | pt=Português
129 | qu=Kichwa
130 | rm=Rumantsch grischun
131 | rn=Kirundi
132 | ro=Română
133 | ru=Русский
134 | rw=Kinyarwanda
135 | sa=संस्कृतम्
136 | sc=Sardu
137 | sd=सिन्धी
138 | se=Davvisámegiella
139 | sg=Yângâ tî sängö
140 | sh=Srpskohrvatski
141 | si=සිංහල
142 | sk=Slovenčina
143 | sl=Slovenščina
144 | sm=Gagana fa'a samoa
145 | sn=Chishona
146 | so=Soomaaliga
147 | sq=Shqip
148 | sr=Српски језик
149 | ss=Siswati
150 | st=Sesotho
151 | su=Basa sunda
152 | sv=Svenska
153 | sw=Kiswahili
154 | ta=தமிழ்
155 | te=తెలుగు
156 | tg=تاجیکی
157 | th=ไทย
158 | ti=ትግርኛ
159 | tk=Türkmen
160 | tl=Tagalog
161 | tn=Setswana
162 | to=Faka tonga
163 | tr=Türkçe
164 | ts=Xitsonga
165 | tt=Татарча
166 | tw=Twi
167 | ty=Reo mā`ohi
168 | ug=Uyƣurqə
169 | uk=Українська
170 | ur=اردو
171 | uz=O'zbek
172 | ve=Tshivenḓa
173 | vi=Tiếng việt
174 | vo=Volapük
175 | wa=Walon
176 | wo=Wollof
177 | xh=Isixhosa
178 | yi=ייִדיש
179 | yo=Yorùbá
180 | za=Saɯ cueŋƅ
181 | zh=中文
182 | zu=Isizulu
183 |
--------------------------------------------------------------------------------
/mainunit.frm:
--------------------------------------------------------------------------------
1 | object MainForm: TMainForm
2 | Left = 86
3 | Height = 467
4 | Top = 85
5 | Width = 608
6 | AutoSize = True
7 | BorderIcons = [biSystemMenu]
8 | BorderStyle = bsSingle
9 | Caption = 'Gitea Panel'
10 | ClientHeight = 467
11 | ClientWidth = 608
12 | OnCloseQuery = FormCloseQuery
13 | OnCreate = FormCreate
14 | OnShow = FormShow
15 | ParentFont = True
16 | Position = poDefault
17 | ShowHint = True
18 | LCLVersion = '7.2'
19 | object GroupBox2: TGroupBox
20 | Left = 6
21 | Height = 145
22 | Top = 6
23 | Width = 596
24 | Align = alTop
25 | AutoSize = True
26 | BorderSpacing.Around = 6
27 | Caption = 'Gitea'
28 | ClientHeight = 128
29 | ClientWidth = 594
30 | TabOrder = 2
31 | object Label1: TLabel
32 | Left = 6
33 | Height = 16
34 | Top = 6
35 | Width = 582
36 | Align = alTop
37 | BorderSpacing.Around = 6
38 | Caption = 'Gitea path:'
39 | ParentColor = False
40 | end
41 | object EditGiteaPatch: TFileNameEdit
42 | Left = 6
43 | Height = 28
44 | Top = 28
45 | Width = 582
46 | DialogTitle = 'MOMOMO'
47 | FilterIndex = 0
48 | HideDirectories = False
49 | ButtonWidth = 28
50 | Constraints.MinWidth = 450
51 | NumGlyphs = 1
52 | Images = ImageList1
53 | ImageIndex = 0
54 | Align = alTop
55 | BorderSpacing.Around = 6
56 | Color = clDefault
57 | MaxLength = 0
58 | ParentColor = True
59 | Spacing = 0
60 | TabOrder = 0
61 | TextHint = 'Full path to Gitea'
62 | end
63 | object RButtDefPort: TRadioButton
64 | AnchorSideLeft.Control = GroupBox2
65 | AnchorSideTop.Control = EditPort
66 | AnchorSideTop.Side = asrCenter
67 | Left = 6
68 | Height = 23
69 | Hint = 'The default port is 3000'
70 | Top = 97
71 | Width = 101
72 | BorderSpacing.Around = 6
73 | Caption = 'Default port'
74 | Checked = True
75 | TabOrder = 1
76 | TabStop = True
77 | end
78 | object RButtSpecPort: TRadioButton
79 | AnchorSideLeft.Control = Label4
80 | AnchorSideTop.Control = EditPort
81 | AnchorSideTop.Side = asrCenter
82 | Left = 173
83 | Height = 23
84 | Top = 97
85 | Width = 110
86 | Caption = 'Specified port'
87 | OnChange = RButtPortChange
88 | TabOrder = 2
89 | end
90 | object EditPort: TSpinEdit
91 | AnchorSideLeft.Control = RButtSpecPort
92 | AnchorSideLeft.Side = asrBottom
93 | AnchorSideTop.Control = CoBoxProtocol
94 | AnchorSideTop.Side = asrBottom
95 | AnchorSideRight.Control = GroupBox2
96 | AnchorSideRight.Side = asrBottom
97 | Left = 289
98 | Height = 28
99 | Top = 94
100 | Width = 299
101 | Alignment = taRightJustify
102 | Anchors = [akTop, akLeft, akRight]
103 | BorderSpacing.Around = 6
104 | Enabled = False
105 | MaxValue = 100000
106 | MinValue = 80
107 | TabOrder = 3
108 | Value = 8080
109 | end
110 | object CoBoxProtocol: TComboBox
111 | AnchorSideLeft.Control = Label3
112 | AnchorSideLeft.Side = asrBottom
113 | AnchorSideTop.Control = EditGiteaPatch
114 | AnchorSideTop.Side = asrBottom
115 | AnchorSideRight.Control = Label4
116 | AnchorSideBottom.Side = asrBottom
117 | Left = 67
118 | Height = 26
119 | Top = 62
120 | Width = 100
121 | BorderSpacing.Top = 6
122 | BorderSpacing.Right = 6
123 | ItemHeight = 0
124 | Items.Strings = (
125 | 'http://'
126 | 'https://'
127 | )
128 | Style = csDropDownList
129 | TabOrder = 4
130 | end
131 | object Label3: TLabel
132 | AnchorSideLeft.Control = GroupBox2
133 | AnchorSideTop.Control = CoBoxProtocol
134 | AnchorSideTop.Side = asrCenter
135 | Left = 6
136 | Height = 16
137 | Top = 67
138 | Width = 55
139 | BorderSpacing.Around = 6
140 | Caption = 'Protocol:'
141 | ParentColor = False
142 | end
143 | object Label4: TLabel
144 | AnchorSideLeft.Control = CoBoxProtocol
145 | AnchorSideLeft.Side = asrBottom
146 | AnchorSideTop.Control = CoBoxProtocol
147 | AnchorSideTop.Side = asrCenter
148 | Left = 173
149 | Height = 16
150 | Top = 67
151 | Width = 31
152 | Caption = 'Host:'
153 | ParentColor = False
154 | end
155 | object EditHost: TEdit
156 | AnchorSideLeft.Control = Label4
157 | AnchorSideLeft.Side = asrBottom
158 | AnchorSideTop.Control = CoBoxProtocol
159 | AnchorSideTop.Side = asrCenter
160 | AnchorSideRight.Control = GroupBox2
161 | AnchorSideRight.Side = asrBottom
162 | Left = 210
163 | Height = 28
164 | Top = 61
165 | Width = 378
166 | Anchors = [akTop, akLeft, akRight]
167 | BorderSpacing.Around = 6
168 | ParentColor = True
169 | TabOrder = 5
170 | TextHint = 'Default: localhost'
171 | end
172 | end
173 | object GroupBox1: TGroupBox
174 | Left = 6
175 | Height = 144
176 | Top = 280
177 | Width = 596
178 | Align = alTop
179 | AutoSize = True
180 | BorderSpacing.Around = 6
181 | Caption = 'Browser'
182 | ClientHeight = 127
183 | ClientWidth = 594
184 | TabOrder = 1
185 | object RButtDefBrows: TRadioButton
186 | Left = 6
187 | Height = 23
188 | Top = 6
189 | Width = 582
190 | Align = alTop
191 | BorderSpacing.Around = 6
192 | Caption = 'Open Gitea default browser'
193 | Checked = True
194 | OnClick = RButtBrowsChange
195 | TabOrder = 0
196 | TabStop = True
197 | end
198 | object RButtSelBrows: TRadioButton
199 | Tag = 1
200 | AnchorSideTop.Control = RButtDefBrows
201 | AnchorSideTop.Side = asrBottom
202 | Left = 6
203 | Height = 23
204 | Top = 35
205 | Width = 146
206 | BorderSpacing.Around = 6
207 | Caption = 'In selected browser:'
208 | OnClick = RButtBrowsChange
209 | TabOrder = 1
210 | end
211 | object RButtOterBrows: TRadioButton
212 | Tag = 2
213 | AnchorSideTop.Control = RButtSelBrows
214 | AnchorSideTop.Side = asrBottom
215 | AnchorSideRight.Control = GroupBox1
216 | AnchorSideRight.Side = asrBottom
217 | Left = 6
218 | Height = 23
219 | Top = 64
220 | Width = 582
221 | Anchors = [akTop, akLeft, akRight]
222 | BorderSpacing.Around = 6
223 | Caption = 'Other browser. Enter your browser path or a browser launch command.'
224 | OnClick = RButtBrowsChange
225 | TabOrder = 2
226 | end
227 | object EditBrowsPath: TFileNameEdit
228 | AnchorSideTop.Control = RButtOterBrows
229 | AnchorSideTop.Side = asrBottom
230 | AnchorSideRight.Control = GroupBox1
231 | AnchorSideRight.Side = asrBottom
232 | Left = 6
233 | Height = 28
234 | Top = 93
235 | Width = 582
236 | FilterIndex = 0
237 | HideDirectories = False
238 | ButtonWidth = 28
239 | NumGlyphs = 1
240 | Images = ImageList1
241 | ImageIndex = 6
242 | Anchors = [akTop, akLeft, akRight]
243 | BorderSpacing.Around = 6
244 | Enabled = False
245 | MaxLength = 0
246 | Spacing = 0
247 | TabOrder = 3
248 | TextHint = 'Full path to your browser'
249 | end
250 | object CoBoxBrow: TComboBox
251 | AnchorSideLeft.Control = RButtSelBrows
252 | AnchorSideLeft.Side = asrBottom
253 | AnchorSideTop.Control = RButtSelBrows
254 | AnchorSideTop.Side = asrCenter
255 | AnchorSideRight.Control = GroupBox1
256 | AnchorSideRight.Side = asrBottom
257 | Left = 158
258 | Height = 30
259 | Top = 31
260 | Width = 430
261 | Anchors = [akTop, akLeft, akRight]
262 | BorderSpacing.Around = 6
263 | Enabled = False
264 | ItemHeight = 0
265 | Style = csDropDownList
266 | TabOrder = 4
267 | end
268 | end
269 | object BitBtn1: TBitBtn
270 | Left = 6
271 | Height = 30
272 | Top = 244
273 | Width = 596
274 | Align = alTop
275 | AutoSize = True
276 | BorderSpacing.Around = 6
277 | Caption = 'Update options'
278 | Images = ImageList1
279 | ImageIndex = 7
280 | OnClick = BtnUpdSettingClick
281 | TabOrder = 4
282 | end
283 | object ButtonPanel1: TButtonPanel
284 | Left = 6
285 | Height = 30
286 | Top = 430
287 | Width = 596
288 | Align = alTop
289 | OKButton.Name = 'OKButton'
290 | OKButton.DefaultCaption = True
291 | OKButton.OnClick = OKButtonClick
292 | HelpButton.Name = 'HelpButton'
293 | HelpButton.DefaultCaption = True
294 | CloseButton.Name = 'CloseButton'
295 | CloseButton.DefaultCaption = True
296 | CancelButton.Name = 'CancelButton'
297 | CancelButton.DefaultCaption = True
298 | TabOrder = 0
299 | ShowButtons = [pbOK, pbClose]
300 | ShowBevel = False
301 | end
302 | object CoBoxLang: TComboBox
303 | AnchorSideLeft.Control = ButtonPanel1
304 | AnchorSideTop.Control = ButtonPanel1
305 | AnchorSideTop.Side = asrCenter
306 | Left = 12
307 | Height = 30
308 | Hint = 'Language preferences will be applied after restarting the application.'#10'Click "OK" to save the setting.'
309 | Top = 430
310 | Width = 202
311 | BorderSpacing.Around = 6
312 | ItemHeight = 0
313 | OnChange = CoBoxLangChange
314 | Style = csDropDownList
315 | TabOrder = 3
316 | end
317 | object GroupBox3: TGroupBox
318 | Left = 6
319 | Height = 81
320 | Top = 157
321 | Width = 596
322 | Align = alTop
323 | AutoSize = True
324 | BorderSpacing.Around = 6
325 | Caption = 'Behavior'
326 | ChildSizing.LeftRightSpacing = 6
327 | ChildSizing.TopBottomSpacing = 6
328 | ChildSizing.VerticalSpacing = 6
329 | ChildSizing.EnlargeHorizontal = crsScaleChilds
330 | ChildSizing.Layout = cclLeftToRightThenTopToBottom
331 | ChildSizing.ControlsPerLine = 2
332 | ClientHeight = 64
333 | ClientWidth = 594
334 | TabOrder = 5
335 | object CheckBoxRunGiteaStartup: TCheckBox
336 | Left = 6
337 | Height = 23
338 | Top = 6
339 | Width = 269
340 | Caption = 'Run Gitea with the program'
341 | OnChange = CheckBoxRunGiteaStartupChange
342 | TabOrder = 0
343 | end
344 | object CheckBoxStopGiteaWhenClose: TCheckBox
345 | Left = 275
346 | Height = 23
347 | Top = 6
348 | Width = 313
349 | Caption = 'Stop Gita when the program closes'
350 | TabOrder = 1
351 | end
352 | object CheckBoxOpenPageAfterLaunch: TCheckBox
353 | Left = 6
354 | Height = 23
355 | Top = 35
356 | Width = 269
357 | Caption = 'Open Gitea page after launch'
358 | Enabled = False
359 | TabOrder = 2
360 | end
361 | object CheckBoxCheckUpdateStartup: TCheckBox
362 | Left = 275
363 | Height = 23
364 | Top = 35
365 | Width = 313
366 | Caption = 'Check for updates on startup'
367 | TabOrder = 3
368 | Visible = False
369 | end
370 | end
371 | object TrayIcon1: TTrayIcon
372 | PopUpMenu = PopupMenu1
373 | OnDblClick = TrayIcon1DblClick
374 | Left = 256
375 | Top = 8
376 | end
377 | object PopupMenu1: TPopupMenu
378 | Images = ImageList1
379 | TrackButton = tbLeftButton
380 | Left = 288
381 | Top = 8
382 | object MenuItem2: TMenuItem
383 | Caption = '-'
384 | end
385 | object MenuOpenGitea: TMenuItem
386 | Caption = 'Open Gitea...'
387 | ImageIndex = 2
388 | OnClick = MenuOpenGiteaClick
389 | end
390 | object MenuItem1: TMenuItem
391 | Caption = '-'
392 | end
393 | object MenuStartStop: TMenuItem
394 | ImageIndex = 0
395 | OnClick = MenuStartStopClick
396 | end
397 | object MenuItem3: TMenuItem
398 | Caption = '-'
399 | end
400 | object MenuSetting: TMenuItem
401 | Caption = 'Setting'
402 | ImageIndex = 3
403 | OnClick = MenuSettingClick
404 | end
405 | object MenuUpdate: TMenuItem
406 | Caption = 'Check update Gitea'
407 | ImageIndex = 8
408 | OnClick = MenuUpdateClick
409 | end
410 | object MenuAbout: TMenuItem
411 | Caption = 'About'
412 | ImageIndex = 4
413 | OnClick = MenuAboutClick
414 | end
415 | object MenuItem5: TMenuItem
416 | Caption = '-'
417 | end
418 | object MenuClose: TMenuItem
419 | Caption = 'Close'
420 | ImageIndex = 5
421 | OnClick = MenuCloseClick
422 | end
423 | object MenuItem4: TMenuItem
424 | Caption = '-'
425 | end
426 | end
427 | object ImageList1: TImageList
428 | Left = 328
429 | Top = 8
430 | Bitmap = {
431 | 4C7A0900000010000000100000002D0A00000000000078DAED580B4C5467169E
432 | 01EB2B2D6A655D77DDA8281946D9B8A4316963F0D1515083CBEAD6FADC02011C
433 | 507171D15254546A2584EEA2D2C220B65881E2DBAAED5A53A9ABE3A08838588B
434 | 2D0F4560901245C23CE4312073F69CE1BF78B9DC7960496ABA3BC997FFDE73CE
435 | 77FE73CE7FCE9D3B2391FC7A3EAFFCE937AECFC3F34A5F1622DB1FA497658680
436 | 2C3318BC3256834CB5CA2C53FDAD56B63FF84ACA85AC4BB86A641978AF5AD5E6
437 | 95B10AD01EBCD2DE5AEDB577A187F53AFDED68F9C74B0E74FBE80DE483985C9E
438 | F656822C2358817E7FB2C6A15AA910DA6CFF32153EBA9823CA9765AC5EE495BE
439 | 7436ED2FFF97629457F29CD174CDE9D79F4884F60E335CBC73D58AC5399B7AF1
440 | A7ECF397B9074C96E2FED5E8EB866CEF5FBC71BDCAE9BFABF911CAEBABE0FABD
441 | EFE0A1E131D43C7AF08CBFFF9D9FB8FAC93F0AF441DE4DAE7EB4AE3DFE01185B
442 | 4D505859022DEDAD50FDA80E4E6B2FF4F031D774E139C853FCE458FB40CCC112
443 | 90FD0F28C27DF52D0638597C1E5ACD6D30336B1DF49C51EA124F5BE7294B5F91
444 | C8ED137E2C01B4F74BE170E1D967B1AB567F66AF1F5C5F194C67912556739417
445 | 4ED9AB1829F9FFE75733FFD2B94F4224FE4FF592F90092F91690FA7580745EBB
446 | 59E2D7512BF1B75C494E834BB86AE81EE56D523F3348FCBB40AA30AC7699D5E0
447 | 61BD9E6B8A7651341FE8F6D11BC8073139F21390AB40BFD65992CE6B53086DE2
448 | 9200F61D10E7236F9174AE7136C60EAEBE55A35CDEB83F9A62E1F4115B00DADB
449 | 01BE5503E423E687F6E6BBCE7A2093BA9E974AFC3BAB31A71BD2D98FBD257EE6
450 | AB9CFE5629407925407109C0A346801A1D8FEFDFD933FF2E6F3EF6C1586E72F5
451 | A3352C16C06802B87603A0A515A0BA16E0CC795EEEF3DAFACCBF8B6F9D1CE308
452 | C41C2C7383018AB4007A03C0A9AF005ADB005E5BC6F1F18CE6347BDA3ECFD644
453 | 6E9FE04D00DADB009F9FE0EDED67B63BFF2E4307D15964899E995F7BA1EBCCDA
454 | FFA9F90F0F0FFF23E2585858D82D5C73119ECE7291E38BF62604F0D08498EE04
455 | 7706C2CA5DB3660D6CDAB489EFA31921B313F318E4D23E10131303353535409F
456 | B2B232502A959C8F3C3BFC7564B379F3662828A886921213709FDDBB7773FC5B
457 | 76F871B1B1B1909D5D0E43876A402A554371B1118C46236CD8B081E31F1170C6
458 | 22A230EEB83D7BF6C41D3A540143865C0189440D83075F819B371FC1AE5DBB38
459 | AE0121E7717D594D60CB962D70F060A595435CF271F8700D242424705CAAE90C
460 | 1E77067746DBB66D834F3FAD84975EEAE652EC478F56C38E1D3BF875F7E571E5
461 | 2C16D8BE7D3B72EFC1A041DDDC61C33470FCF87D50A954F19413E546390A723E
462 | 42DCA8A828686E6E863163AE59B9C3876BE0E4C9FBB075EB56DA33CE4E9DA927
463 | 212929C97A36EFBE5B0553A716C3175F54415C5C1C17F33A3BFC3CB259BB762D
464 | E8743AAB8F868606A0B32339EBA13176F832AEEE111111B073E74E888C8CE4B8
465 | 26EA6127E66B3A9B097E7F13D7B71F33EA49B3C966F418CD6C3F67FC55443ED5
466 | 137D9CC055F11CCF89395C2FA00FCA21D689199F8E18C4F3E183F78DAC065D88
467 | 690EF6FC0691C4BB77417E21AF8E890EF85AB6CF6204DD670ACE21D3013F9B17
468 | 6BA3804B8872C09F86F19A457884FAE5CBA3F1BB46FD1AE2653B3E1671CF3A1E
469 | 2A0202B661FFA8D5344F880AC4EFED9C831B62298266740102CF449DC9B81CCA
470 | 10639DEF08B546C0279422C638C9F7413489F8B88D7077D2077ECFA89B457CE0
471 | B35BFDAA933EDE401888E7E65680B5AD60CFD6CB47FA510B3A0BD38C19B7A0A9
472 | A903264F2EA218BEE9DF84A967215A58FC7508CFFE7F9BAB719ED431B67A01CF
473 | DD0D11CA9E21850CC798CCCD412F07211E22D4881836538BD9B59AE9826C7093
474 | B0F7AAE9BB0552DD25081F4428035D5BBFE3984DA2705F9457E0EA8E76324421
475 | 020420193DABDD996D102FDF7AC454D44F42348A7039906E12D9320E57AB6CF2
476 | 05A9A3F37B6C8FFA03547D0D507B095F7C97F17C8CCEE73D37B83A07A26E62AF
477 | BD4CF500BA2B009567013A5A00D2C6F1E398481CDE19C92DFB4607F6E27F3C16
478 | E0A00FC08D3D005D9D00191E3D3AB265DFDB8536F9847BE7F0C5FB31C085F5BD
479 | E402BE78FC848B3100EA6D6275E4C72F5E3FC2F79F0194EC1770FBD4CFF6F995
480 | A830FFBD76CF8FD7B765CEF60FB30D12F62FA2CA51FF329BC4819E9F8198DF17
481 | 65FEF1D9C43DFB4319E8DAA9F9473BFC4DA02E1479DE93CCEEFCA37E12A25184
482 | CB817436E71F75F96447EFB02B57FED8C353286EC3F8F1D7B97BD1F947F944CE
483 | 7EC182EFC162B1E0BB640D040797C3D3A71658BFFE2E3F8E3EF38FDF4581FC58
484 | 376EBC873E70F4BB2C909AFA4090C7E53EF32FE44746565A63201FD1D1F7ECF1
485 | FBC41F1878C7CA4D4AD2E16F8E1AEBF59225776CC5DFA77E13265C879090F21E
486 | FB88884A9832A5D856FD7ED6F909E7DF99FE7134FFF6FAF7459FFFBADC889711
487 | A1883C5D6EC4695CE310A7109188E1F6B8681F8E365B11C081F9F83B6233220B
488 | 112EBEAF3285D917E37A166140D9FB3ADA3F272215EF8B787E5304312F15EC19
489 | 841CDAB39627DF816862D7CDBA1CE554C675434431790BE58BFC4F087C9F148F
490 | 2E5749399C465D3CC65685704319D52519F103CA63F0FE21B34FA27D9EF1950D
491 | A85F8171253E8B53A9A4DA622CF9BAEE1CCCBCFD9A985FBACE65FE5AD06E1DAE
492 | 9DCCE7095CCF315DA4205E60FC8D082D4FA6A1B3653ED09792EAD4853164E35A
493 | C86CBA109908AA7BBC885FDAEB038A9BF9225927C61685F801AF631115D61C73
494 | AC3116F3CEA60DD74084DA9A7B77CF00D6C5CCFA6E23DB9FB307E68F6CEA588D
495 | CBA807280EBC1FCE6A407D57CFFACC248897728E61B9B4B1DA511DDD580FCCE3
496 | D936E23EEFF3EEABEABAF35A86FB76F2E47F15F4600A2F66EAD5BDBAEE589290
497 | D7C2EA91C9F248B1317BE1CC66B3CE5A07E557BDF2C0B8501EEA787EAD3D798A
498 | D5ED2CEB132597AFBDCF06CFCA21C1E3CAB562209D23FEDB7FD00D0B19570E62
499 | 20DD8BCEDF29B93428645C59326166984E4FE0EE49D79F5F5A6E0586FB84E7FD
500 | DFD559FE488D219AB3E5634481BE9320A6230EC71FA131248C2830809B465FEF
501 | 908F36644B1C217F94C6E8EB287EB21948BE297DE286D3B921051F9EDC05DAAC
502 | 79794F5413169A3EF1F8AD49E5919C7A7CAB9E40D724231DD9902D71886B5479
503 | 68510F3C249BD2267B0B64C064C97C19717F717EFAC4CF393F565F98935E357E
504 | 125F462019976F0F902BF2FE301211893884B8CC7088C9463A78F70866EF5517
505 | 10EF215631BCC764A40BB6C1DD8D2847BCF9E77F0648033E5CF83A621DC3EB24
506 | 231DB3D92DF2DE548AF81DDA7A23D408108064DE64C36CB9F7FF51881AFADF11
507 | F5724403C73973F72E9CB97E9EEF8374F4DEEBC338A3585DB2C817EACEF1F72C
508 | 35764069E54D611CE7D8BE59BC3A2F47B9A730E652632794561483482EF45FEF
509 | 72C6A5F7C269285BD1A34F0BEBE69BBAA0B4BCA85BB66F059FBF82388CDB8B1F
510 | 9D130F7AB319E2BFCC86D22716B856A6853CED35D0B79A2020F51D317E9FF8F3
511 | AEFE1BF49D00FAA788CE2EFC11D20179170EDA8A5FB47E7945DF5AFF8B273FF1
512 | 5F1FB1573F9BE79777E33F107FEEB0DDF3FBB9FD3310FD3B10F3F3BCF3FB5FD3
513 | 0EDD1B
514 | }
515 | end
516 | object UniqueInstance1: TUniqueInstance
517 | Enabled = True
518 | Identifier = 'GiPane_hhjjeKLJghfHk'
519 | Left = 368
520 | Top = 8
521 | end
522 | end
523 |
--------------------------------------------------------------------------------
/mainunit.pas:
--------------------------------------------------------------------------------
1 | unit mainunit;
2 |
3 | {$mode objfpc}{$H+}
4 |
5 | interface
6 |
7 | uses
8 | Classes, SysUtils, process, Forms, Controls, Graphics, Dialogs, LCLTranslator, DefaultTranslator,StdCtrls,
9 | EditBtn, ButtonPanel, ExtCtrls, Menus, Spin, IniFiles, FileUtil,
10 | UniqueInstance, LCLIntf, Buttons, resstr, IdHTTP, IdComponent, IdSSLOpenSSL, IdSSLOpenSSLHeaders;
11 |
12 |
13 | type
14 |
15 | { TMainForm }
16 |
17 | TMainForm = class(TForm)
18 | BitBtn1: TBitBtn;
19 | ButtonPanel1: TButtonPanel;
20 | CheckBoxRunGiteaStartup: TCheckBox;
21 | CheckBoxStopGiteaWhenClose: TCheckBox;
22 | CheckBoxOpenPageAfterLaunch: TCheckBox;
23 | CheckBoxCheckUpdateStartup: TCheckBox;
24 | CoBoxProtocol: TComboBox;
25 | CoBoxBrow: TComboBox;
26 | CoBoxLang: TComboBox;
27 | EditHost: TEdit;
28 | EditBrowsPath: TFileNameEdit;
29 | EditGiteaPatch: TFileNameEdit;
30 | GroupBox1: TGroupBox;
31 | GroupBox2: TGroupBox;
32 | GroupBox3: TGroupBox;
33 | ImageList1: TImageList;
34 | Label1: TLabel;
35 | Label3: TLabel;
36 | Label4: TLabel;
37 | MenuItem1: TMenuItem;
38 | MenuAbout: TMenuItem;
39 | MenuItem2: TMenuItem;
40 | MenuItem4: TMenuItem;
41 | MenuUpdate: TMenuItem;
42 | MenuSetting: TMenuItem;
43 | MenuStartStop: TMenuItem;
44 | MenuItem3: TMenuItem;
45 | MenuOpenGitea: TMenuItem;
46 | MenuItem5: TMenuItem;
47 | MenuClose: TMenuItem;
48 | PopupMenu1: TPopupMenu;
49 | RButtDefPort: TRadioButton;
50 | RButtSpecPort: TRadioButton;
51 | RButtDefBrows: TRadioButton;
52 | RButtSelBrows: TRadioButton;
53 | RButtOterBrows: TRadioButton;
54 | EditPort: TSpinEdit;
55 | TrayIcon1: TTrayIcon;
56 | UniqueInstance1: TUniqueInstance;
57 | procedure CheckBoxRunGiteaStartupChange(Sender: TObject);
58 | procedure CoBoxLangChange(Sender: TObject);
59 | procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
60 | procedure FormCreate(Sender: TObject);
61 | procedure FormShow(Sender: TObject);
62 | procedure MenuAboutClick(Sender: TObject);
63 | procedure MenuCloseClick(Sender: TObject);
64 | procedure MenuUpdateClick(Sender: TObject);
65 | procedure MenuOpenGiteaClick(Sender: TObject);
66 | procedure MenuSettingClick(Sender: TObject);
67 | procedure MenuStartStopClick(Sender: TObject);
68 | procedure BtnUpdSettingClick(Sender: TObject);
69 | procedure OKButtonClick(Sender: TObject);
70 | procedure RButtPortChange(Sender: TObject);
71 | procedure RButtBrowsChange(Sender: TObject);
72 | procedure TrayIcon1DblClick(Sender: TObject);
73 |
74 | private
75 | function GetSetupBrowser: TStringList;
76 | function GetLangNameOfCode(ALangPatch, ALangCode: String): String;
77 | function GetLangCodeOfName(ALangPatch, AlangName: String): String;
78 | function IsReady(aGiteaUrl: String): Boolean;
79 |
80 | procedure PathDefinition;
81 | procedure FillLangCoBox(aLangPatch: String);
82 | procedure ReadIniFile;
83 | procedure WriteIniFile;
84 | procedure SetMainVar;
85 | procedure ReRunApp;
86 | function CheckHosts(aHost: String): Boolean;
87 |
88 | public
89 | function IsRuning(AProcName: String): Boolean;
90 | procedure SetTrayIcon(aGiStatus: Boolean);
91 | procedure StopGiteaServer;
92 | procedure RunGiteaServer;
93 | procedure OpenGiteaServer;
94 |
95 | end;
96 |
97 |
98 | procedure OpenLink(aLink: String);
99 |
100 | var
101 | MainForm: TMainForm;
102 |
103 | UseProxyStatus: Boolean;
104 | OSIdent: String;
105 | ProxyHost: String;
106 | ProxyPort: Integer;
107 | ProxyUser: String;
108 | ProxyPass: String;
109 |
110 | SelPort: Boolean;
111 | SelBrows: Integer;
112 | CloseFlag: Boolean;
113 | LangCode: String;
114 | LangName: String;
115 | GiPort: String;
116 | GiPath: String; // Full Gitea path
117 | GiFileName: String; // Ony Gitea filename
118 | GiProtocol: String;
119 | GiHost: String;
120 | BrowsPath: String;
121 | BrowsInst: String;
122 | LangPath: String;
123 | ConfPath: String;
124 | WebBrowser: String;
125 |
126 | RunWitchStartup: Boolean;
127 | StopWhenClose: Boolean;
128 | OpenPageAfter: Boolean;
129 | CheckUpdateStartup: Boolean;
130 |
131 | implementation
132 |
133 | uses aboutunit, updatesetting, updategitea;
134 |
135 | procedure OpenLink(aLink: String);
136 | var aWebBrowser, aFile: String;
137 | fAttr: LongInt;
138 | begin
139 | case SelBrows of
140 | 0: aWebBrowser:= 'xdg-open';
141 | 1: aWebBrowser:= BrowsInst;
142 | 2: aWebBrowser:= BrowsPath;
143 | end;
144 |
145 | aFile:= FindDefaultExecutablePath(aWebBrowser);
146 | fAttr:= FileGetAttr(aFile);
147 | if ((fAttr <> -1) and ((fAttr and faDirectory) <> 0)) or not FileExists(aFile) then
148 | MessageDlg('Gitea Panel', Format(i18_Msg_Err_NoFindBrowser, [aWebBrowser]), mtError, [mbOK], 0)
149 | else
150 | with TProcess.Create(nil) do
151 | try
152 | Executable:= aWebBrowser;
153 | Parameters.Add(aLink);
154 | Execute;
155 | finally
156 | Free;
157 | end;
158 | end;
159 |
160 | {$R *.frm}
161 |
162 | { TMainForm }
163 |
164 | function TMainForm.IsRuning(AProcName: String): Boolean;
165 | var s: String;
166 | begin
167 | s:= '';
168 | Result:= False;
169 | Sleep(500);
170 | if RunCommand('pgrep',['-x',AProcName],s,[poWaitOnExit]) then Result:= s <> '';
171 | end;
172 |
173 | function TMainForm.GetSetupBrowser: TStringList;
174 | begin
175 | Result:= FindAllFiles('/usr/bin', WBROWSER, False, faDirectory);
176 | Result.Text:= StringReplace(Result.Text, '/usr/bin/', '', [rfIgnoreCase, rfReplaceAll]);
177 | end;
178 |
179 | function TMainForm.GetLangNameOfCode(ALangPatch, ALangCode: String): String;
180 | var LngList: TStringList;
181 | begin
182 | Result:= '';
183 | LngList:= TStringList.Create;
184 | LngList.NameValueSeparator:= '=';
185 | try
186 | LngList.LoadFromFile(ALangPatch + '/lang.list');
187 | Result:= LngList.Values[ALangCode];
188 | finally
189 | LngList.Free;
190 | end;
191 | end;
192 |
193 | function TMainForm.GetLangCodeOfName(ALangPatch, AlangName: String): String;
194 | var LngList: TStringList;
195 | i: Integer;
196 | begin
197 | Result:= '';
198 | LngList:= TStringList.Create;
199 | LngList.NameValueSeparator:= '=';
200 | try
201 | LngList.LoadFromFile(ALangPatch + '/lang.list');
202 | for i:= 0 to LngList.Count - 1 do
203 | if LngList.ValueFromIndex[i] = ALangName then
204 | begin
205 | Result:= LngList.Names[i];
206 | Break;
207 | end;
208 | finally
209 | LngList.Free;
210 | end;
211 | end;
212 |
213 | function TMainForm.IsReady(aGiteaUrl: String): Boolean;
214 | var HCSSL: TIdSSLIOHandlerSocketOpenSSL;
215 | i: Integer;
216 | begin
217 | HCSSL:= TIdSSLIOHandlerSocketOpenSSL.Create;
218 | HCSSL.SSLOptions.Method:= sslvSSLv23;
219 | with TIdHTTP.Create do
220 | try
221 | HandleRedirects:= True;
222 | Request.UserAgent:= 'GiteaPanel';
223 | IOHandler:= HCSSL;
224 | ConnectTimeout:= 300;
225 | ReadTimeout:= 300;
226 | i:= 0;
227 | repeat
228 | Inc(i);
229 | try
230 | Head(aGiteaUrl);
231 | Result:= ResponseCode = 200 ;
232 | except
233 | on Err: Exception do Result:= False;
234 | end;
235 | Application.ProcessMessages;
236 | Sleep(400);
237 | until Result or (i > 15);
238 | finally
239 | HCSSL.Free;
240 | Free;
241 | end;
242 | end;
243 |
244 | procedure TMainForm.PathDefinition;
245 | var aMyDir: String;
246 | aUserDir: String;
247 | begin
248 | aMyDir:= ExtractFilePath(ParamStr(0));
249 | aUserDir:= GetUserDir;
250 | if Pos('/usr/bin', aMyDir) > 0 then
251 | begin
252 | SetCurrentDir(aMyDir);
253 | LangPath:= ExpandFileName('../share/giteapanel/locale');
254 | if DirectoryExists(aUserDir + '.config') then ConfPath:= aUserDir + '.config'
255 | else ConfPath:= aUserDir;
256 | end
257 | else
258 | begin
259 | LangPath:= aMyDir + 'locale';
260 | ConfPath:= aMyDir;
261 | end;
262 | end;
263 |
264 | procedure TMainForm.FillLangCoBox(aLangPatch: String);
265 | var LngList: TStringList;
266 | ResSearsh: TSearchRec;
267 | LaCode: String;
268 | begin
269 | CoBoxLang.Clear;
270 | LngList:= TStringList.Create;
271 | LngList.NameValueSeparator:='=';
272 | try
273 | LngList.LoadFromFile(ALangPatch + '/lang.list');
274 | if FindFirst(ALangPatch + '/giteapanel.*.po', faAnyFile, ResSearsh) <> -1 then
275 | repeat
276 | LaCode:= String(ResSearsh.Name).Split('.')[1];
277 | if LngList.Values[LaCode] <> '' then CoBoxLang.Items.Add(LngList.Values[LaCode]);
278 | until FindNext(ResSearsh) <> 0;
279 | FindClose(ResSearsh);
280 | finally
281 | LngList.Free;
282 | end;
283 | end;
284 |
285 | procedure TMainForm.ReadIniFile;
286 | begin
287 | with TIniFile.Create(ConfPath + '/giteapanel.conf') do
288 | try
289 | LangCode := ReadString('DATA','Language','en');
290 | GiPath := ReadString('GITEA','GiteaPath','');
291 | BrowsInst := ReadString('BROWSER','BrowserInst','');
292 | GiPort := ReadString('GITEA','GiteaPort','8080');
293 | SelBrows := ReadInteger('BROWSER','SelctedBrowser',0);
294 | SelPort := ReadBool('BROWSER','SelectedPort',False);
295 | BrowsPath := ReadString('BROWSER','BrowserPath','');
296 | GiProtocol := ReadString('GITEA','GiteaProtocol','http://');
297 | GiHost := ReadString('GITEA','GiteaHost','localhost');
298 |
299 | UseProxyStatus := ReadBool('UPDATE','ProxyStatus', false);
300 | OSIdent := ReadString('UPDATE','My_OS','');
301 | ProxyHost := ReadString('UPDATE','ProxyHost','');
302 | ProxyPort := ReadInteger('UPDATE','ProxyPort',80);
303 | ProxyUser := ReadString('UPDATE','ProxyUser','');
304 | ProxyPass := ReadString('UPDATE','ProxyPass','');
305 |
306 | RunWitchStartup := ReadBool('DATA','RunWitchStartup', false);
307 | OpenPageAfter := ReadBool('DATA', 'OpenPageAfter', false);
308 | StopWhenClose := ReadBool('DATA', 'StopWhenClose', false);
309 | CheckUpdateStartup := ReadBool('DATA', 'CheckUpdateStartup', false);
310 |
311 | Top := ReadInteger('DATA','TopPosition',0);
312 | Left := ReadInteger('DATA', 'LeftPosition',0);
313 | finally
314 | Free;
315 | end;
316 |
317 | LangName:= GetLangNameOfCode(LangPath,LangCode);
318 | if GiPath='' then GiFileName:= 'gitea' else GiFileName:=ExtractFileName(GiPath);
319 |
320 | if Not FileExists(GiPath,False) then Show;
321 | end;
322 |
323 | procedure TMainForm.WriteIniFile;
324 | begin
325 | with TIniFile.Create(ConfPath + '/giteapanel.conf') do
326 | try
327 | WriteString('GITEA','GiteaPath',GiPath);
328 | WriteString('GITEA','GiteaPort',GiPort);
329 | WriteString('GITEA','GiteaProtocol',GiProtocol);
330 | WriteString('GITEA','GiteaHost',GiHost);
331 | WriteBool('GITEA','SelectedPort',SelPort);
332 | WriteInteger('BROWSER','SelctedBrowser',SelBrows);
333 | WriteString('BROWSER','BrowserInst', BrowsInst);
334 | WriteString('BROWSER','BrowserPath',BrowsPath);
335 |
336 | WriteBool('UPDATE','ProxyStatus', UseProxyStatus);
337 | WriteString('UPDATE','My_OS',OSIdent);
338 | WriteString('UPDATE','ProxyHost',ProxyHost);
339 | WriteInteger('UPDATE','ProxyPort',ProxyPort);
340 | WriteString('UPDATE','ProxyUser',ProxyUser);
341 | WriteString('UPDATE','ProxyPass',ProxyPass);
342 |
343 | WriteBool('DATA','RunWitchStartup', RunWitchStartup);
344 | WriteBool('DATA', 'OpenPageAfter', OpenPageAfter);
345 | WriteBool('DATA', 'StopWhenClose', StopWhenClose);
346 | WriteBool('DATA', 'CheckUpdateStartup', CheckUpdateStartup);
347 |
348 | if LangCode = '' then LangCode:= 'en';
349 | WriteString('DATA','Language',LangCode);
350 | finally
351 | Free;
352 | end;
353 | end;
354 |
355 | procedure TMainForm.SetTrayIcon(aGiStatus: Boolean);
356 | begin
357 | if aGiStatus then
358 | begin
359 | TrayIcon1.Icon.LoadFromResourceName(HINSTANCE, 'GITEAGREEN');
360 | MenuStartStop.Caption:= i18_StopGitea;
361 | MenuStartStop.ImageIndex:=1;
362 | MenuOpenGitea.Enabled:=True;
363 | TrayIcon1.Hint:= i18_GiteaRunig;
364 | end
365 | else
366 | begin
367 | TrayIcon1.Icon.LoadFromResourceName(HINSTANCE, 'GITEARED');
368 | MenuStartStop.Caption:= i18_StartGitea;
369 | MenuStartStop.ImageIndex:=0;
370 | MenuOpenGitea.Enabled:=False;
371 | TrayIcon1.Hint:= i18_GiteaStoped;
372 | end;
373 | end;
374 |
375 | procedure TMainForm.StopGiteaServer;
376 | begin
377 | with TProcess.Create(nil) do
378 | try
379 | Executable:='/bin/bash';
380 | Parameters.Add('-c');
381 | Parameters.Add('$(kill -- $(pgrep -x ' + GiFileName + '))');
382 | Options:=Options + [poWaitOnExit];
383 | Execute;
384 | finally
385 | Free;
386 | end;
387 | Sleep(1000);
388 | SetTrayIcon(IsRuning(GiFileName));
389 | end;
390 |
391 | procedure TMainForm.RunGiteaServer;
392 | var cmd: String;
393 | fAtt: LongInt;
394 | begin
395 | if SelPort then cmd:= ' web --port ' + GiPort
396 | else cmd:= ' web';
397 |
398 | fAtt:= FileGetAttr(GiPath);
399 | if ((fAtt <> -1) and ((fAtt and faDirectory) <> 0)) or not FileExists(GiPath) then
400 | begin
401 | MessageDlg('Gitea Panel', i18_Msg_Err_RunGitea, mtError, [mbOK], 0);
402 | Exit;
403 | end;
404 |
405 | with TProcess.Create(nil) do
406 | try
407 | InheritHandles:= False;
408 | Options:= [];
409 | Executable:= '/bin/bash';
410 | Parameters.Add('-c');
411 | Parameters.Add('(' + GiPath + cmd +' &); exit 0');
412 | Execute;
413 | finally
414 | Free;
415 | end;
416 | SetTrayIcon(IsRuning(GiFileName));
417 | end;
418 |
419 | procedure TMainForm.OpenGiteaServer;
420 | var link: String;
421 | begin
422 | if SelPort then link:= GiProtocol + GiHost + ':' + GiPort else link:= GiProtocol + GiHost + ':3000';
423 | if CheckHosts(GiHost) then
424 | if IsReady(link) then OpenLink(link)
425 | else MessageDlg('Gitea Panel', Format(i18_Msg_Err_CantOpenServer,[link]), mtError, [mbOK], 0)
426 | else MessageDlg('Gitea Panel', Format(i18_Msg_Err_MissingFromHosts, [GiHost, GiHost]), mtError, [mbOK], 0);
427 | end;
428 |
429 | procedure TMainForm.SetMainVar;
430 | begin
431 | GiProtocol:= CoBoxProtocol.Text;
432 | GiHost:= EditHost.Text;
433 | GiPath:= EditGiteaPatch.Text;
434 | GiFileName:= ExtractFileName(GiPath);
435 | GiPort:= IntToStr(EditPort.Value);
436 | SelPort:= RButtSpecPort.Checked;
437 | BrowsInst:= CoBoxBrow.Text;
438 | BrowsPath:= EditBrowsPath.Text;
439 | LangName:= CoBoxLang.Text;
440 | LangCode:= GetLangCodeOfName(LangPath, LangName);
441 | RunWitchStartup:= CheckBoxRunGiteaStartup.Checked;
442 | OpenPageAfter:= CheckBoxOpenPageAfterLaunch.Checked;
443 | StopWhenClose:= CheckBoxStopGiteaWhenClose.Checked;
444 | CheckUpdateStartup:= CheckBoxCheckUpdateStartup.Checked;
445 | end;
446 |
447 | procedure TMainForm.ReRunApp;
448 | begin
449 | FileCreate(ConfPath +'LockGiteaPanel.file');
450 | with TProcess.Create(nil) do
451 | try
452 | Executable:= ParamStr(0);
453 | Execute;
454 | finally
455 | Free;
456 | Application.Terminate;
457 | end;
458 | end;
459 |
460 | function TMainForm.CheckHosts(aHost: String): Boolean;
461 | begin
462 | with TStringList.Create do
463 | try
464 | LoadFromFile('/etc/hosts');
465 | Result:= Text.Contains(aHost);
466 | finally
467 | Free;
468 | end;
469 | end;
470 |
471 | procedure TMainForm.FormCreate(Sender: TObject);
472 | begin
473 | //IdOpenSSLSetCanLoadSymLinks(false);
474 | CloseFlag:= False;
475 | PathDefinition;
476 | ReadIniFile;
477 | SetDefaultLang(LangCode, LangPath, 'giteapanel');
478 | SetTrayIcon(IsRuning(GiFileName));
479 | EditGiteaPatch.DialogTitle:= i18_DlgTitle_Giteapatch;
480 | EditBrowsPath.DialogTitle:= i18_DlgTitle_BrowsPath;
481 | TrayIcon1.Visible:=true;
482 | Application.ProcessMessages;
483 |
484 | if not FileExists(ConfPath + 'LockGiteaPanel.file') then
485 | begin
486 | if RunWitchStartup then
487 | begin
488 | RunGiteaServer;
489 | if OpenPageAfter then OpenGiteaServer;
490 | end;
491 | end
492 | else DeleteFile(ConfPath + 'LockGiteaPanel.file');
493 | end;
494 |
495 | procedure TMainForm.FormShow(Sender: TObject);
496 | begin
497 | DisableAutoSizing;
498 | FillLangCoBox(LangPath);
499 | EditGiteaPatch.Text:= GiPath;
500 | CoBoxProtocol.ItemIndex:= CoBoxProtocol.Items.IndexOf(GiProtocol);
501 | EditHost.Caption:= GiHost;
502 | CoBoxLang.ItemIndex:= CoBoxLang.Items.IndexOf(LangName);
503 |
504 | CoBoxBrow.Clear;
505 | CoBoxBrow.Items.AddText(GetSetupBrowser.Text);
506 | CoBoxBrow.ItemIndex:= CoBoxBrow.Items.IndexOf(BrowsInst);
507 | EditBrowsPath.Text:= BrowsPath;
508 |
509 | CheckBoxRunGiteaStartup.Checked:= RunWitchStartup;
510 | CheckBoxOpenPageAfterLaunch.Checked:= OpenPageAfter;
511 | CheckBoxStopGiteaWhenClose.Checked:= StopWhenClose;
512 | CheckBoxCheckUpdateStartup.Checked:= CheckUpdateStartup;
513 |
514 | case SelBrows of
515 | 0: RButtDefBrows.Checked:= True;
516 | 1: RButtSelBrows.Checked:= True;
517 | 2: RButtOterBrows.Checked:= True;
518 | end;
519 |
520 | RButtSpecPort.Checked:= SelPort;
521 | EditPort.Value:= StrToInt(GiPort);
522 | EnableAutoSizing;
523 | end;
524 |
525 | procedure TMainForm.MenuAboutClick(Sender: TObject);
526 | begin
527 | RunAboutForm;
528 | end;
529 |
530 | procedure TMainForm.CoBoxLangChange(Sender: TObject);
531 | var TmpLangCode: String;
532 | begin
533 | if LangName <> CoBoxLang.Text then
534 | TmpLangCode:= GetLangCodeOfName(LangPath, CoBoxLang.Text);
535 | SetDefaultLang(TmpLangCode, LangPath, 'giteapanel', False);
536 | if MessageDlg('Gitea Panel', i18_Msg_ReRunApp, mtConfirmation, [mbYes, mbNo], 0) = mrYes then
537 | begin
538 | SetMainVar;
539 | WriteIniFile;
540 | ReRunApp;
541 | end
542 | else
543 | begin
544 | SetDefaultLang(LangCode, LangPath, 'giteapanel');
545 | CoBoxLang.Text:= LangName;
546 | end;
547 | end;
548 |
549 | procedure TMainForm.CheckBoxRunGiteaStartupChange(Sender: TObject);
550 | begin
551 | CheckBoxOpenPageAfterLaunch.Enabled:= CheckBoxRunGiteaStartup.Checked;
552 | end;
553 |
554 | procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: boolean);
555 | begin
556 | with TIniFile.Create(ConfPath + '/giteapanel.conf') do
557 | try
558 | WriteInteger('DATA','TopPosition', Top);
559 | WriteInteger('DATA','LeftPosition', Left);
560 | finally
561 | Free;
562 | end;
563 | if Not FileExists(ConfPath + 'LockGiteaPanel.file') then
564 | if StopWhenClose and CloseFlag then StopGiteaServer;
565 | CanClose:=CloseFlag;
566 | if Not CloseFlag then Hide;
567 | end;
568 |
569 | procedure TMainForm.MenuCloseClick(Sender: TObject);
570 | begin
571 | CloseFlag:=True;
572 | Close;
573 | end;
574 |
575 | procedure TMainForm.MenuUpdateClick(Sender: TObject);
576 | begin
577 | RunFormUpdGitea;
578 | end;
579 |
580 | procedure TMainForm.MenuOpenGiteaClick(Sender: TObject);
581 | begin
582 | OpenGiteaServer;
583 | end;
584 |
585 | procedure TMainForm.MenuSettingClick(Sender: TObject);
586 | begin
587 | if MainForm.Visible then Hide
588 | else MainForm.Show;
589 | end;
590 |
591 | procedure TMainForm.MenuStartStopClick(Sender: TObject);
592 | begin
593 | if IsRuning(GiFileName) then StopGiteaServer else RunGiteaServer;
594 | end;
595 |
596 | procedure TMainForm.BtnUpdSettingClick(Sender: TObject);
597 | begin
598 | RunUpdSettingForm;
599 | end;
600 |
601 | procedure TMainForm.OKButtonClick(Sender: TObject);
602 | begin
603 | SetMainVar;
604 | WriteIniFile;
605 | Hide;
606 | end;
607 |
608 | procedure TMainForm.RButtPortChange(Sender: TObject);
609 | begin
610 | SelPort:= RButtSpecPort.Checked;
611 | EditPort.Enabled:= Not EditPort.Enabled;
612 | end;
613 |
614 | procedure TMainForm.RButtBrowsChange(Sender: TObject);
615 | begin
616 | with (Sender as TRadioButton) do SelBrows:= Tag;
617 | CoBoxBrow.Enabled:= (((SelBrows shr 0) and 1) = 1);
618 | EditBrowsPath.Enabled:= (((SelBrows shr 1) and 1) = 1);
619 | end;
620 |
621 | procedure TMainForm.TrayIcon1DblClick(Sender: TObject);
622 | begin
623 | if Not IsRuning(GiFileName) then
624 | begin
625 | RunGiteaServer;
626 | OpenGiteaServer;
627 | end
628 | else OpenGiteaServer;
629 | end;
630 |
631 | end.
632 |
--------------------------------------------------------------------------------
/resource/About_16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sashaoli/GiteaPanel/b462ce58a828e846768859db73fe2590156c0d4f/resource/About_16x16.png
--------------------------------------------------------------------------------
/resource/Close_16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sashaoli/GiteaPanel/b462ce58a828e846768859db73fe2590156c0d4f/resource/Close_16x16.png
--------------------------------------------------------------------------------
/resource/Configure_16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sashaoli/GiteaPanel/b462ce58a828e846768859db73fe2590156c0d4f/resource/Configure_16x16.png
--------------------------------------------------------------------------------
/resource/GiteaGreen.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sashaoli/GiteaPanel/b462ce58a828e846768859db73fe2590156c0d4f/resource/GiteaGreen.ico
--------------------------------------------------------------------------------
/resource/GiteaRed.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sashaoli/GiteaPanel/b462ce58a828e846768859db73fe2590156c0d4f/resource/GiteaRed.ico
--------------------------------------------------------------------------------
/resource/Gitea_green_16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sashaoli/GiteaPanel/b462ce58a828e846768859db73fe2590156c0d4f/resource/Gitea_green_16x16.png
--------------------------------------------------------------------------------
/resource/Gitea_red_16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sashaoli/GiteaPanel/b462ce58a828e846768859db73fe2590156c0d4f/resource/Gitea_red_16x16.png
--------------------------------------------------------------------------------
/resource/Internet_16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sashaoli/GiteaPanel/b462ce58a828e846768859db73fe2590156c0d4f/resource/Internet_16x16.png
--------------------------------------------------------------------------------
/resource/Link_16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sashaoli/GiteaPanel/b462ce58a828e846768859db73fe2590156c0d4f/resource/Link_16x16.png
--------------------------------------------------------------------------------
/resource/Network_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sashaoli/GiteaPanel/b462ce58a828e846768859db73fe2590156c0d4f/resource/Network_16.png
--------------------------------------------------------------------------------
/resource/ScreenAbout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sashaoli/GiteaPanel/b462ce58a828e846768859db73fe2590156c0d4f/resource/ScreenAbout.png
--------------------------------------------------------------------------------
/resource/ScreenMenu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sashaoli/GiteaPanel/b462ce58a828e846768859db73fe2590156c0d4f/resource/ScreenMenu.png
--------------------------------------------------------------------------------
/resource/ScreenMenu2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sashaoli/GiteaPanel/b462ce58a828e846768859db73fe2590156c0d4f/resource/ScreenMenu2.png
--------------------------------------------------------------------------------
/resource/ScreenSeting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sashaoli/GiteaPanel/b462ce58a828e846768859db73fe2590156c0d4f/resource/ScreenSeting.png
--------------------------------------------------------------------------------
/resource/check.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sashaoli/GiteaPanel/b462ce58a828e846768859db73fe2590156c0d4f/resource/check.png
--------------------------------------------------------------------------------
/resource/download.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sashaoli/GiteaPanel/b462ce58a828e846768859db73fe2590156c0d4f/resource/download.png
--------------------------------------------------------------------------------
/resource/download_16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sashaoli/GiteaPanel/b462ce58a828e846768859db73fe2590156c0d4f/resource/download_16x16.png
--------------------------------------------------------------------------------
/resource/error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sashaoli/GiteaPanel/b462ce58a828e846768859db73fe2590156c0d4f/resource/error.png
--------------------------------------------------------------------------------
/resource/giteapanel.svg:
--------------------------------------------------------------------------------
1 |
2 |
96 |
--------------------------------------------------------------------------------
/resource/lamp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sashaoli/GiteaPanel/b462ce58a828e846768859db73fe2590156c0d4f/resource/lamp.png
--------------------------------------------------------------------------------
/resource/ok.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sashaoli/GiteaPanel/b462ce58a828e846768859db73fe2590156c0d4f/resource/ok.png
--------------------------------------------------------------------------------
/resstr.pas:
--------------------------------------------------------------------------------
1 | unit resstr;
2 |
3 | interface
4 |
5 | resourcestring
6 | i18_GiteaStoped = 'Gitea stoped';
7 | i18_GiteaRunig = 'Gitea is runing';
8 | i18_StartGitea = 'Start Gitea';
9 | i18_StopGitea = 'Stop Gitea';
10 | i18_Msg_Err_NoFindBrowser = 'I can not find the browser "%s". Please specify the browser in the settings.';
11 | i18_Msg_Err_RunGitea = 'I can not find a way to Gitea.' + #13 + 'Please specify the path in the settings.';
12 | i18_DlgTitle_Giteapatch = 'Select Gitea binary file';
13 | i18_DlgTitle_BrowsPath = 'Select browser binary file';
14 | i18_Program = 'Program:';
15 | i18_CodeRivis = 'Code revision:';
16 | i18_ForTarget = 'For CPU, OS:';
17 | i18_Widget = 'Widget:';
18 | i18_BuildDate = 'Build date:';
19 | i18_Version = 'version ';
20 | i18_Copyright = 'Copyright: ';
21 | i18_Msg_Err_CantOpenServer = 'Can''t open gitea server from link: "%s"';
22 | i18_Msg_ReRunApp = 'Language settings changed.' + #13 + 'Save parameters and restart the application to apply these parameters?';
23 | i18_Msg_Err_GetVerGitea = 'Error defining version of Gitea!';
24 | i18_Msg_Err_GetGitHubData = 'Error retrieving data from GitHub!';
25 | i18_Msg_Err_MissingFromHosts = 'The "%s" is not in the host file. Add it to the "/etc/hosts" file: "127.0.0.1 %s"';
26 | i18_GetCurrentVersion = 'Get the current version of Gitea...';
27 | i18_CurrentVersion = 'Current version of Gitea: ';
28 | i18_CheckNewVersion = 'Checking for a new version of Gitea...';
29 | i18_NewVersionAvailable = 'New version of Gitea is available: ';
30 | i18_LatesVersion = 'You have the latest version of Gitea.';
31 | i18_Err_DownloadFile = 'Failed to download file.';
32 | i18_DownloadFile = 'Download file...';
33 | i18_UpfradeComplete = 'Download and upgrade complete.';
34 | i18_Err_NotOSIdent = 'The operating system is not specified in the settings.' + #13 + 'Specify your operating system in the settings.';
35 | i18_Err_NoConfirmPass = 'Passwords do not match.' + #13 + 'Please re-enter your password.';
36 | i18_CancelDownload = 'Discard update Gitea?';
37 |
38 | const
39 | WBROWSER='chromium-*;'+
40 | 'vivaldi-*;'+
41 | 'firefox*;'+
42 | 'brave*;'+
43 | 'epiphany*;'+
44 | 'konqueror*;'+
45 | 'falkon*;'+
46 | 'midori*;'+
47 | 'opera-*;'+
48 | 'google-chrome*;'+
49 | 'arora*;'+
50 | 'palemoon*;'+
51 | 'seamonkey*;'+
52 | 'waterfox*;'+
53 | 'yandex*;'+
54 | 'beaker*;'+
55 | 'netsurf*;'+
56 | 'dillo*;'+
57 | 'conkeror*;'+
58 | 'iridium*;'+
59 | 'links*;'+
60 | 'lynx*;'+
61 | 'elinks*;'+
62 | 'w3m*';
63 |
64 | implementation
65 |
66 | end.
67 |
--------------------------------------------------------------------------------
/updategitea.frm:
--------------------------------------------------------------------------------
1 | object FormUpdGitea: TFormUpdGitea
2 | Left = 86
3 | Height = 99
4 | Top = 85
5 | Width = 470
6 | AutoSize = True
7 | BorderIcons = []
8 | BorderStyle = bsSingle
9 | Caption = 'Update Gitea'
10 | ClientHeight = 99
11 | ClientWidth = 470
12 | Constraints.MinWidth = 470
13 | OnClose = FormClose
14 | OnCloseQuery = FormCloseQuery
15 | OnShow = FormShow
16 | Position = poDesktopCenter
17 | LCLVersion = '7.2'
18 | object Panel1: TPanel
19 | Left = 6
20 | Height = 34
21 | Top = 60
22 | Width = 458
23 | Align = alTop
24 | AutoSize = True
25 | BorderSpacing.Left = 6
26 | BorderSpacing.Right = 6
27 | BorderSpacing.Bottom = 6
28 | BevelOuter = bvNone
29 | ClientHeight = 30
30 | ClientWidth = 454
31 | Constraints.MinHeight = 28
32 | ParentColor = False
33 | TabOrder = 0
34 | object BitBtnUpd: TBitBtn
35 | Left = 376
36 | Height = 30
37 | Top = 0
38 | Width = 78
39 | Align = alRight
40 | AutoSize = True
41 | BorderSpacing.Left = 4
42 | Caption = '&Update'
43 | Constraints.MinWidth = 60
44 | Kind = bkYes
45 | ModalResult = 6
46 | OnClick = BitBtnUpdClick
47 | TabOrder = 0
48 | Visible = False
49 | end
50 | object BitBtnCancel: TBitBtn
51 | Left = 298
52 | Height = 30
53 | Top = 0
54 | Width = 74
55 | Align = alRight
56 | AutoSize = True
57 | BorderSpacing.Left = 4
58 | Cancel = True
59 | Caption = '&Cancel'
60 | Constraints.MinWidth = 60
61 | Kind = bkNo
62 | ModalResult = 7
63 | OnClick = BitBtnCancelClick
64 | TabOrder = 1
65 | Visible = False
66 | end
67 | object BitBtnOk: TBitBtn
68 | Left = 234
69 | Height = 30
70 | Top = 0
71 | Width = 60
72 | Align = alRight
73 | AutoSize = True
74 | BorderSpacing.Left = 4
75 | Constraints.MinWidth = 60
76 | Default = True
77 | DefaultCaption = True
78 | Kind = bkOK
79 | ModalResult = 1
80 | OnClick = BitBtnOkClick
81 | TabOrder = 2
82 | Visible = False
83 | end
84 | object ProgressBar1: TProgressBar
85 | Left = 0
86 | Height = 30
87 | Top = 0
88 | Width = 230
89 | Align = alClient
90 | Constraints.MinHeight = 20
91 | Smooth = True
92 | TabOrder = 3
93 | end
94 | end
95 | object Panel2: TPanel
96 | Left = 0
97 | Height = 60
98 | Top = 0
99 | Width = 470
100 | Align = alTop
101 | AutoSize = True
102 | BevelOuter = bvNone
103 | ClientHeight = 60
104 | ClientWidth = 470
105 | TabOrder = 1
106 | object Label1: TLabel
107 | AnchorSideLeft.Control = Image1
108 | AnchorSideLeft.Side = asrBottom
109 | AnchorSideTop.Control = Panel2
110 | AnchorSideRight.Control = Panel2
111 | AnchorSideRight.Side = asrBottom
112 | Left = 62
113 | Height = 16
114 | Top = 8
115 | Width = 400
116 | Anchors = [akTop, akLeft, akRight]
117 | BorderSpacing.Around = 8
118 | Caption = 'Current version of Gitea:'
119 | ParentColor = False
120 | end
121 | object Label2: TLabel
122 | AnchorSideLeft.Control = Image1
123 | AnchorSideLeft.Side = asrBottom
124 | AnchorSideTop.Control = Label1
125 | AnchorSideTop.Side = asrBottom
126 | AnchorSideRight.Control = Panel2
127 | AnchorSideRight.Side = asrBottom
128 | Left = 62
129 | Height = 16
130 | Top = 32
131 | Width = 400
132 | Anchors = [akTop, akLeft, akRight]
133 | BorderSpacing.Around = 8
134 | Caption = ' '
135 | ParentColor = False
136 | end
137 | object Image1: TImage
138 | Left = 6
139 | Height = 48
140 | Top = 6
141 | Width = 48
142 | Align = alLeft
143 | AutoSize = True
144 | BorderSpacing.Around = 6
145 | Center = True
146 | Picture.Data = {
147 | 1754506F727461626C654E6574776F726B477261706869635907000089504E47
148 | 0D0A1A0A0000000D494844520000003000000030080300000117DB3923000000
149 | 097048597300005C4600005C4601149443410000000974455874436F6D6D656E
150 | 740000892A8D060000023D504C5445FFFFFF1491FF6464646464646464641491
151 | FF6464646464641491FF6464646464646464646464641491FF1491FF1491FF64
152 | 64646464646464646464646464641491FF6464646464641491FF646464646464
153 | 1491FF6464646464646464641491FF6464646464646464646464646464641491
154 | FF6464646464641491FF6464646464646464641491FF6464641491FF64646464
155 | 6464646464646464646464646464646464646464646464646464646464646464
156 | 1491FF6464646464646464646464641491FF6464646464646464641491FF6464
157 | 646464641491FF6464646464641491FF64646464646464646464646464646464
158 | 64641491FF6464646464646464646464641491FF6464646464646464641491FF
159 | 1491FF1491FF6464646464646464641491FF6464641491FF6464646464641491
160 | FF1491FF1491FF6464641491FF6464641491FF1592FF1692FF1793FF1893FF1A
161 | 94FF1F96FF2197FF2198FF2398FF2499FF279AFF299BFF2A9BFF2C9CFF2E9EFF
162 | 319FFF3EA5FF44A8FF52AEFF57B1FF5FB4FF63B6FF64646465B7FF6BBAFF72BD
163 | FF73BEFF74BEFF77C0FF7BC2FF7EC3FF83C5FF85C6FF8BC9FF90CCFF91CCFF93
164 | CDFF98CFFFA6D5FFA8D6FFB5DDFFB9DFFFBBDFFFBCE0FFBDE0FFBEE1FFBFE1FF
165 | C0E2FFC2E2FFC2E3FFC4E4FFC5E4FFC7E5FFC8E6FFC9E6FFCAE6FFCCE7FFCEE8
166 | FFD0E9FFD4EBFFD7ECFFD8EDFFD9EDFFDAEEFFDBEFFFDDEFFFDFF0FFE0F1FFE1
167 | F1FFE2F2FFE4F3FFE5F3FFE6F3FFE7F4FFE8F5FFEAF6FFECF6FFF9FCFFFAFDFF
168 | FCFEFFFDFEFFFEFFFFFFFFFF6F31C7800000006B74524E530001010204050607
169 | 08090A0B0F10151B1C1E2224252627282A2D2E323334353A3A3E3F4142445052
170 | 5658595A5C5C60616E7071727377787B84858693969DA3A6A7A7A8A9ACB0B3B6
171 | B8BAC6C6C7CACDCECFD3D5D7D8DADCDEDFE2E3E6E7E7E8E9EDEDEEF1F6F8FBFC
172 | FDFEFECE4056170000043649444154181985C1856355751CC6E10F1C60B811CA
173 | 28A5914B0C464D3A554201252EAD4E62C0DD5EBB3B5EBBBBBB0BEC8EEFDFE6EF
174 | 9C9DEBAECC781E800E12230C2804E775473C3B1450083015CE075A9BC91D5C75
175 | 16EC566250B200EB09C9702E7492B35B99E91D24669EF4A4C4A87646B3415248
176 | 62232D03E7EB8188903800DB87A11CBB329276BB6A6794E64CA334C96B68E934
177 | B9E5975291066392C3480F4BC731986E29244D601C465228C118DD7F4DE81709
178 | 63A488382551A3CA7A293E96980598234A2A18C80CE3878329D847ED7DF459E4
179 | 52B5893E2BECB3A9DBE49E8CC2445F0C6354DA0283DC45B2D84318A95C847297
180 | C31E039ECC081522543801DE4A9BE1900A11EA05CBCC74C34EE9DE88EB236E8C
181 | F85A12AC367825287924924F956C062F81262F84634A9E795FB929E0FDE47A7C
182 | 06CC5661EF0058E7364A5DAE4DA590ADB5E7D268EC3627B5A5F4D33CAD634E2B
183 | A76BAABAB488463BECCE992DD0BAC6F624EAB21E6FA2EE1C7B0525FB2C18BC4A
184 | D2C10A70A99753E8F220D8A2D218B8D81349DA3D0A8E4BBAEDE9BB95CC83C326
185 | F11EB84CC94BF1B3722319E2C530CE3041B957E247E5BA61B761ABE18472AFC7
186 | F72A8C60B2C11B418537E31B15368047E365A0C2DBF1A50A87C06D78014325FD
187 | F682DE8D937A28AE92BAC11D783548FA35DEFC203E7B35E2766927783AB503A0
188 | E4F728DC21693E03DDC212C3662591BB5509AC34E059A05C44DCAC643DB80AEC
189 | 374C512E6E50720C16BA09C8BC0B2AAA3B02C3BC9D5C9BD7C180BD2ACC8633DC
190 | 43AF0B7C05C9F0CA789219764669AEBD36A330B5E62EFA64FB9C548F3A69E7EF
191 | 96D69C6C1BCBBF19BB745BCDA5DAB6A563F90F59FB3E978E56AB475DDAD79EF1
192 | 4FE676D9AEAD9D9AD1209BBAB666BB6B2EA7C92EB07DE50C4AC3C7572AE38753
193 | 9A71A5EDF3331AB4F5D81736930C98BD570DF6CE1E40D27CA1DDD3465DB6DDDE
194 | 358CA47244FD1CA9900CDB656FCF2834EDB717924C39A6D2F311F19DEA8E4D21
195 | 5968EF6F2257B56791ACD75F5E8E889FD4673DC92CBB4AB2C45E49B2597D5E8B
196 | 881FD46033C94A7B09B4D47C6020305F0DDE88886FD5683E30F0806B2D4CB757
197 | 93EC5483B722E22B35DA49B2DA9ECE79F6026068B70AF73C7695A47722E29492
198 | BBEE51AFEEA1C002BB83367B19C92125D7FE14112F5EA7F722E20B5DFD5C248F
199 | 2B77886499DDC6687B23C90615EEFB2D223EFC3C227EF82C92AFEF546103C946
200 | 7B346CB52703234EA8D7837FC45F4EDEAE5E27460093EDADC0387B37C9846E95
201 | 1E8B5E9FDCA252F70492DDF63892C5F69E21C0C8CB54F754447C7493EA2E1F09
202 | 0CD9632FA6D06E1F1E4532EFB8EA1EBD5E75C7E7918C3A6CB7539AD8655F3488
203 | 64CC169D66CB18924117D95D13E9B3DCF62567921B5C5975508583AB2A83C99D
204 | 7989EDE5FC4DB6A2C7F6A6B3E9E79C4DB67B5664F4336987739D6B66B6B690B4
205 | B4CE5CD3E9DC8E49FC8BA645559FA6BAA889FFD3DC3A6D4E47C79C69ADCDF4F7
206 | 270433537B755A99DA0000000049454E44AE426082
207 | }
208 | Transparent = True
209 | end
210 | end
211 | object Timer1: TTimer
212 | Enabled = False
213 | Interval = 500
214 | OnTimer = CheckUpdateDownload
215 | Left = 344
216 | Top = 8
217 | end
218 | end
219 |
--------------------------------------------------------------------------------
/updategitea.pas:
--------------------------------------------------------------------------------
1 | unit updategitea;
2 |
3 | {$mode objfpc}{$H+}
4 |
5 | interface
6 |
7 | uses
8 | {$IFDEF UNIX} BaseUnix, {$ENDIF}
9 | Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ComCtrls,
10 | ExtCtrls, Buttons, fpjson, jsonparser, resstr, base64,
11 | process, IdHTTP, IdComponent, IdSSLOpenSSL;
12 |
13 | type
14 | TGHData = record
15 | AppWebVersion: string;
16 | DownloadUrl: String;
17 | end;
18 |
19 | type
20 | TButtType = (BtnOk, BtnYes, BtnNo);
21 | TArrayBut = array of TButtType;
22 | TImageType = (imOk, imCheck, imErr, imDownload, imLamp);
23 |
24 | type
25 |
26 | { TFormUpdGitea }
27 |
28 | TFormUpdGitea = class(TForm)
29 | BitBtnUpd: TBitBtn;
30 | BitBtnCancel: TBitBtn;
31 | BitBtnOk: TBitBtn;
32 | Image1: TImage;
33 | Label1: TLabel;
34 | Label2: TLabel;
35 | Panel1: TPanel;
36 | Panel2: TPanel;
37 | ProgressBar1: TProgressBar;
38 | Timer1: TTimer;
39 | procedure BitBtnCancelClick(Sender: TObject);
40 | procedure BitBtnOkClick(Sender: TObject);
41 | procedure BitBtnUpdClick(Sender: TObject);
42 | procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
43 | procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
44 | procedure FormShow(Sender: TObject);
45 | procedure CheckUpdateDownload(Sender: TObject);
46 | procedure BitBtnVisidle(aImageType: TImageType; aVisButt: TArrayBut);
47 |
48 | private
49 | GHData: TGHData;
50 | CurrVer: String;
51 | MaxDownSize: Int64;
52 | FCansel: Boolean;
53 | IsProcessDowload: Boolean;
54 |
55 | function Download(aUrl, aOutFile: string): Boolean;
56 | procedure ProgressBegin(Sender: TObject; AWorkMode: TWorkMode; AWorkCountMax: Int64);
57 | procedure Progress(Sender: TObject; AWorkMode: TWorkMode; AWorkCount: Int64);
58 | public
59 |
60 | end;
61 |
62 | function RunFormUpdGitea: Boolean;
63 | function GetGiteaVersion(aFilePath: String): String;
64 | function GetGitHubData(aUrl, aOSIdent: String; out outError: String): TGHData;
65 | function CompareVersion(aOldVersion, aNewVersion: String): Boolean;
66 | function CheckString(aStr, aInclude, aExclude: String; aDelim: Char): Boolean;
67 | procedure SetProxy(aHTTPclient:TIdHTTP);
68 |
69 | var
70 | FormUpdGitea: TFormUpdGitea;
71 |
72 | const
73 | GITHUB_URL = 'https://api.github.com/repos/go-gitea/gitea/releases/latest';
74 | EXCLUDE_STRING = '.asc,.sha256,.xz,.xz.asc,.xz.sha256';
75 |
76 | implementation
77 |
78 | uses mainunit, aboutunit;
79 |
80 | function RunFormUpdGitea: Boolean;
81 | begin
82 | Result:= True;
83 | if not Assigned(FormUpdGitea) then FormUpdGitea:= TFormUpdGitea.Create(Application);
84 | try
85 | FormUpdGitea.Show;
86 | except
87 | FormUpdGitea.Free;
88 | FreeAndNil(FormUpdGitea);
89 | end;
90 | end;
91 |
92 | function GetGiteaVersion(aFilePath: String): String;
93 | begin
94 | Try
95 | RunCommand(aFilePath + ' -v', Result);
96 | if Result <> '' then Result:= Result.Split(' ')[2] else Result:= '0.0.0';
97 | except
98 | on Err:Exception do Result:= '0.0.0';
99 | end;
100 | end;
101 |
102 | function GetGitHubData(aUrl, aOSIdent: String; out outError: String): TGHData;
103 | var i: Integer;
104 | J: TJSONData;
105 | JA: TJSONArray;
106 | HC: TIdHTTP;
107 | HCSSL: TIdSSLIOHandlerSocketOpenSSL;
108 | begin
109 | Result.AppWebVersion:= '0.0.0';
110 | Result.DownloadUrl:= '';
111 | outError:= '';
112 | J:= nil;
113 |
114 | HC:= TIdHTTP.Create;
115 | HCSSL:= TIdSSLIOHandlerSocketOpenSSL.Create;
116 | HCSSL.SSLOptions.Method:= sslvSSLv23;
117 | with HC do
118 | try
119 | SetProxy(HC);
120 | HandleRedirects:= True;
121 | Request.BasicAuthentication:= False;
122 | Request.UserAgent:= 'GiteaPanel';
123 | IOHandler:= HCSSL;
124 | try
125 | J:= GetJSON(Get(aUrl));
126 | Result.AppWebVersion:= StringReplace(j.FindPath('tag_name').AsString, 'v','',[]);
127 | JA:= TJSONArray(j.FindPath('assets'));
128 | for i:= 0 to JA.Count - 1 do
129 | if CheckString(JA[i].FindPath('name').AsString, aOSIdent, EXCLUDE_STRING,',') then
130 | begin
131 | Result.DownloadUrl:= JA[i].FindPath('browser_download_url').AsString;
132 | Break;
133 | end;
134 | except
135 | on Err: Exception do outError:= i18_Msg_Err_GetGitHubData + #13 + Err.Message;
136 | end;
137 | finally
138 | HCSSL.Free;
139 | J.Free;
140 | Free;
141 | end;
142 | end;
143 |
144 | function CompareVersion(aOldVersion, aNewVersion: String): Boolean;
145 | var min, i: Integer;
146 | begin
147 | Result:= false;
148 | if High(aOldVersion.Split('.')) < High(aNewVersion.Split('.')) then min:= High(aOldVersion.Split('.'))
149 | else min:= High(aNewVersion.Split('.'));
150 | for i:= 0 to min do
151 | if StrToInt(aNewVersion.Split('.')[i]) > StrToInt(aOldVersion.Split('.')[i]) then
152 | begin
153 | Result:= True;
154 | Break;
155 | end;
156 | end;
157 |
158 | function CheckString(aStr, aInclude, aExclude: String; aDelim: Char): Boolean;
159 | var i, r: Integer;
160 | IncArray, ExcArray: TStringArray;
161 | begin
162 | Result:= False;
163 | if Length(aInclude) = 0 then Exit;
164 | if Length(aExclude) <> 0 then
165 | begin
166 | ExcArray:= aExclude.Split(aDelim);
167 | for i:= Low(ExcArray) to High(ExcArray) do if Pos(ExcArray[i], aStr) <> 0 then Exit;
168 | end;
169 | IncArray:= aInclude.Split(aDelim);
170 | r:= 0;
171 | for i:= Low(IncArray) to High(IncArray) do
172 | if Pos(IncArray[i], aStr) > 0 then Inc(r);
173 | Result:= r = High(IncArray)+1;
174 | end;
175 |
176 | procedure SetProxy(aHTTPclient: TIdHTTP);
177 | begin
178 | if UseProxyStatus then
179 | with aHTTPclient do
180 | begin
181 | ProxyParams.ProxyServer:= ProxyHost;
182 | ProxyParams.ProxyPort:= ProxyPort;
183 | ProxyParams.ProxyUsername:= ProxyUser;
184 | ProxyParams.ProxyPassword:= DecodeStringBase64(ProxyPass);
185 | end;
186 | end;
187 |
188 |
189 | {$R *.frm}
190 |
191 | { TFormUpdGitea }
192 |
193 | procedure TFormUpdGitea.ProgressBegin(Sender: TObject; AWorkMode: TWorkMode; AWorkCountMax: Int64);
194 | begin
195 | MaxDownSize:= AWorkCountMax;
196 | ProgressBar1.Max:= AWorkCountMax;
197 | end;
198 |
199 | procedure TFormUpdGitea.Progress(Sender: TObject; AWorkMode: TWorkMode; AWorkCount: Int64);
200 | begin
201 | if AWorkCount > 648 then ProgressBar1.Position:= AWorkCount;
202 | ProgressBar1.Update;
203 | Application.ProcessMessages;
204 | if FCansel then
205 | if (Sender is TIdHTTP) then (Sender as TIdHTTP).Disconnect;
206 | end;
207 |
208 | procedure TFormUpdGitea.FormShow(Sender: TObject);
209 | begin
210 | DisableAutoSizing;
211 | FCansel:= False;
212 | IsProcessDowload:= False;
213 | ProgressBar1.Style:=pbstMarquee;
214 | BitBtnVisidle(imCheck,[]);
215 | Label1.Caption:= i18_GetCurrentVersion;
216 | Label2.Caption:= ' ';
217 | EnableAutoSizing;
218 | Timer1.Enabled:= True;
219 | end;
220 |
221 | procedure TFormUpdGitea.BitBtnCancelClick(Sender: TObject);
222 | begin
223 | Close;
224 | end;
225 |
226 | procedure TFormUpdGitea.BitBtnOkClick(Sender: TObject);
227 | begin
228 | Close;
229 | end;
230 |
231 | procedure TFormUpdGitea.BitBtnUpdClick(Sender: TObject);
232 | var RunStatus: Boolean;
233 | begin
234 | IsProcessDowload:= True;
235 | BitBtnVisidle(imDownload,[BtnNo]);
236 | RunStatus:= MainForm.IsRuning(GiFileName);
237 | if RunStatus then MainForm.StopGiteaServer;
238 | RenameFile(GiPath, GiPath + '_' + CurrVer);
239 | Label2.Caption:= i18_DownloadFile;
240 | ProgressBar1.Visible:= True;
241 | if Download(GHData.DownloadUrl, GiPath) then
242 | begin
243 | FpChmod(GiPath, &755);
244 | Label1.Caption:= i18_CurrentVersion + GetGiteaVersion(GiPath);
245 | Label2.Caption:= i18_UpfradeComplete;
246 | BitBtnVisidle(imOk,[BtnOk]);
247 | end
248 | else
249 | if Assigned(FormUpdGitea) then
250 | begin
251 | DeleteFile(GiPath);
252 | RenameFile(GiPath+'_' + CurrVer, GiPath);
253 | Label2.Caption:= I18_Err_DownloadFile;
254 | BitBtnVisidle(imErr,[BtnOk]);
255 | end;
256 | IsProcessDowload:= False;
257 | if RunStatus then MainForm.RunGiteaServer;
258 | end;
259 |
260 | procedure TFormUpdGitea.FormClose(Sender: TObject; var CloseAction: TCloseAction);
261 | begin
262 | CloseAction:= caFree;
263 | FreeAndNil(FormUpdGitea);
264 | end;
265 |
266 | procedure TFormUpdGitea.FormCloseQuery(Sender: TObject; var CanClose: boolean);
267 | begin
268 | if IsProcessDowload then
269 | if MessageDlg('Gitea Panel', i18_CancelDownload, mtConfirmation, [mbYes, mbNo], 0) = mrYes then
270 | begin
271 | DeleteFile(GiPath);
272 | RenameFile(GiPath+'_' + CurrVer, GiPath);
273 | end
274 | else CanClose:= False;
275 | end;
276 |
277 | procedure TFormUpdGitea.CheckUpdateDownload(Sender: TObject);
278 | var ErrGHData: String;
279 | begin
280 | Timer1.Enabled:= False;
281 | if not DirectoryExists(ExtractFileDir(GiPath)) then
282 | begin
283 | Label1.Caption:= i18_Msg_Err_RunGitea;
284 | BitBtnVisidle(imErr,[BtnOk]);
285 | Exit;
286 | end;
287 | CurrVer:= GetGiteaVersion(GiPath);
288 | Label1.Caption:= i18_CurrentVersion + CurrVer;
289 | If OSIdent <> '' then
290 | begin
291 | Label2.Caption:= i18_CheckNewversion;
292 | Application.ProcessMessages;
293 | GHData:= GetGitHubData(GITHUB_URL, OSIdent, ErrGHData);
294 | if ErrGHData = '' then
295 | if CompareVersion(CurrVer, GHData.AppWebVersion) then
296 | begin
297 | Label2.Caption:= i18_NewVersionAvailable + GHData.AppWebVersion;
298 | BitBtnVisidle(imLamp,[BtnYes,BtnNo]);
299 | end
300 | else
301 | begin
302 | Label2.Caption:= i18_LatesVersion;
303 | BitBtnVisidle(imOk,[BtnOk]);
304 | end
305 | else begin
306 | Label2.Caption:= ErrGHData;
307 | BitBtnVisidle(imErr,[BtnOk]);
308 | end;
309 | end
310 | else
311 | begin
312 | Label2.Caption:= i18_Err_NotOSIdent;
313 | BitBtnVisidle(imErr,[BtnOk]);
314 | end;
315 | ProgressBar1.Style:= pbstNormal;
316 | ProgressBar1.Visible:= False;
317 | end;
318 |
319 | procedure TFormUpdGitea.BitBtnVisidle(aImageType: TImageType;
320 | aVisButt: TArrayBut);
321 |
322 | function InArray(aBtnType: TButtType): Boolean;
323 | var i: Integer;
324 | begin
325 | Result:= False;
326 | for i:= Low(aVisButt) to High(aVisButt) do
327 | if aBtnType = aVisButt[i] then begin
328 | Result:= true;
329 | Break;
330 | end;
331 | end;
332 |
333 | begin
334 | BitBtnCancel.Visible:= InArray(BtnNo);
335 | BitBtnOk.Visible:= InArray(BtnOk);
336 | BitBtnUpd.Visible:= InArray(BtnYes);
337 |
338 | case aImageType of
339 | imOk: Image1.Picture.LoadFromResourceName(HINSTANCE, 'OK');
340 | imCheck: Image1.Picture.LoadFromResourceName(HINSTANCE, 'CHECK');
341 | imDownload: Image1.Picture.LoadFromResourceName(HINSTANCE, 'DOWNLOAD');
342 | imErr: Image1.Picture.LoadFromResourceName(HINSTANCE, 'ERROR');
343 | imLamp: Image1.Picture.LoadFromResourceName(HINSTANCE, 'LAMP');
344 | end;
345 | end;
346 |
347 | function TFormUpdGitea.Download(aUrl, aOutFile: string): Boolean;
348 | var HC: TIdHTTP;
349 | HCSSL: TIdSSLIOHandlerSocketOpenSSL;
350 | OutStream: TFileStream;
351 | begin
352 | HC:= TIdHTTP.Create;
353 | HCSSL:= TIdSSLIOHandlerSocketOpenSSL.Create;
354 | HCSSL.SSLOptions.Method:= sslvSSLv23;
355 | OutStream:= TFileStream.Create(aOutFile, fmCreate);
356 | with HC do
357 | try
358 | SetProxy(HC);
359 | HandleRedirects:= True;
360 | Request.UserAgent:= 'GiteaPanel';
361 | OnWorkBegin:= @ProgressBegin;
362 | OnWork:= @Progress;
363 | IOHandler:= HCSSL;
364 | try
365 | Get(aUrl, OutStream);
366 | Result:= OutStream.Size = MaxDownSize;
367 | except
368 | on Err: Exception do Result:= False;
369 | end;
370 | finally
371 | OutStream.Free;
372 | HCSSL.Free;
373 | Free;
374 | end;
375 | end;
376 |
377 | end.
378 |
--------------------------------------------------------------------------------
/updatesetting.frm:
--------------------------------------------------------------------------------
1 | object UpdSettingForm: TUpdSettingForm
2 | Left = 367
3 | Height = 310
4 | Top = 30
5 | Width = 370
6 | AutoSize = True
7 | BorderIcons = []
8 | BorderStyle = bsSingle
9 | Caption = 'Update setting'
10 | ClientHeight = 310
11 | ClientWidth = 370
12 | Constraints.MinWidth = 325
13 | OnClose = FormClose
14 | OnHide = FormHide
15 | OnShow = FormShow
16 | Position = poMainFormCenter
17 | ShowHint = True
18 | LCLVersion = '7.1'
19 | object GroupBox1: TGroupBox
20 | AnchorSideLeft.Control = Owner
21 | AnchorSideTop.Control = CheckBoxUseProxy
22 | AnchorSideTop.Side = asrBottom
23 | AnchorSideRight.Control = Owner
24 | AnchorSideRight.Side = asrBottom
25 | Left = 6
26 | Height = 193
27 | Top = 69
28 | Width = 358
29 | Anchors = [akTop, akLeft, akRight]
30 | AutoSize = True
31 | BorderSpacing.Around = 6
32 | Caption = 'Proxy settings'
33 | ChildSizing.LeftRightSpacing = 6
34 | ChildSizing.EnlargeHorizontal = crsScaleChilds
35 | ChildSizing.EnlargeVertical = crsHomogenousSpaceResize
36 | ChildSizing.Layout = cclLeftToRightThenTopToBottom
37 | ChildSizing.ControlsPerLine = 2
38 | ClientHeight = 176
39 | ClientWidth = 356
40 | Enabled = False
41 | TabOrder = 0
42 | object Label4: TLabel
43 | Left = 6
44 | Height = 16
45 | Top = 12
46 | Width = 31
47 | BorderSpacing.CellAlignHorizontal = ccaLeftTop
48 | BorderSpacing.CellAlignVertical = ccaCenter
49 | Caption = 'Host:'
50 | ParentColor = False
51 | end
52 | object EditProxyHost: TEdit
53 | AnchorSideLeft.Side = asrBottom
54 | AnchorSideRight.Side = asrBottom
55 | Left = 110
56 | Height = 28
57 | Top = 6
58 | Width = 240
59 | BorderSpacing.Around = 6
60 | Constraints.MinWidth = 200
61 | TabOrder = 1
62 | end
63 | object Label1: TLabel
64 | Left = 6
65 | Height = 16
66 | Top = 46
67 | Width = 29
68 | BorderSpacing.CellAlignHorizontal = ccaLeftTop
69 | BorderSpacing.CellAlignVertical = ccaCenter
70 | Caption = 'Port:'
71 | ParentColor = False
72 | end
73 | object EditProxyPort: TSpinEdit
74 | AnchorSideRight.Side = asrBottom
75 | Left = 110
76 | Height = 28
77 | Top = 40
78 | Width = 240
79 | Alignment = taRightJustify
80 | BorderSpacing.Around = 6
81 | Constraints.MinWidth = 200
82 | MaxValue = 100000
83 | MinValue = 10
84 | TabOrder = 0
85 | Value = 10
86 | end
87 | object Label5: TLabel
88 | Left = 6
89 | Height = 16
90 | Top = 80
91 | Width = 30
92 | BorderSpacing.CellAlignHorizontal = ccaLeftTop
93 | BorderSpacing.CellAlignVertical = ccaCenter
94 | Caption = 'User:'
95 | ParentColor = False
96 | end
97 | object EditProxyUser: TEdit
98 | AnchorSideRight.Side = asrBottom
99 | Left = 110
100 | Height = 28
101 | Top = 74
102 | Width = 240
103 | BorderSpacing.Around = 6
104 | Constraints.MinWidth = 200
105 | TabOrder = 2
106 | end
107 | object Label6: TLabel
108 | Left = 6
109 | Height = 16
110 | Top = 114
111 | Width = 61
112 | BorderSpacing.CellAlignHorizontal = ccaLeftTop
113 | BorderSpacing.CellAlignVertical = ccaCenter
114 | Caption = 'Password:'
115 | ParentColor = False
116 | end
117 | object EditProxyPass: TEdit
118 | AnchorSideRight.Side = asrBottom
119 | Left = 110
120 | Height = 28
121 | Top = 108
122 | Width = 240
123 | BorderSpacing.Around = 6
124 | Constraints.MinWidth = 200
125 | EchoMode = emPassword
126 | PasswordChar = '*'
127 | TabOrder = 3
128 | end
129 | object Label3: TLabel
130 | Left = 6
131 | Height = 16
132 | Top = 148
133 | Width = 82
134 | BorderSpacing.CellAlignHorizontal = ccaLeftTop
135 | BorderSpacing.CellAlignVertical = ccaCenter
136 | Caption = 'Confirm Pass:'
137 | ParentColor = False
138 | end
139 | object EditConfirmPass: TEdit
140 | Left = 110
141 | Height = 28
142 | Top = 142
143 | Width = 240
144 | BorderSpacing.Around = 6
145 | Constraints.MinWidth = 200
146 | EchoMode = emPassword
147 | PasswordChar = '*'
148 | TabOrder = 4
149 | end
150 | end
151 | object CheckBoxUseProxy: TCheckBox
152 | AnchorSideLeft.Control = Owner
153 | AnchorSideTop.Control = CoBoxOsIdent
154 | AnchorSideTop.Side = asrBottom
155 | AnchorSideRight.Control = Owner
156 | AnchorSideRight.Side = asrBottom
157 | Left = 6
158 | Height = 23
159 | Top = 40
160 | Width = 358
161 | Anchors = [akTop, akLeft, akRight]
162 | BorderSpacing.Around = 6
163 | Caption = 'Use Proxy'
164 | OnChange = CheckBoxUseProxyChange
165 | TabOrder = 1
166 | end
167 | object Label2: TLabel
168 | AnchorSideLeft.Control = Owner
169 | AnchorSideTop.Control = CoBoxOsIdent
170 | AnchorSideTop.Side = asrCenter
171 | Left = 8
172 | Height = 16
173 | Top = 12
174 | Width = 104
175 | BorderSpacing.Around = 8
176 | Caption = 'OS Identification:'
177 | ParentColor = False
178 | end
179 | object CoBoxOsIdent: TComboBox
180 | AnchorSideLeft.Control = Label2
181 | AnchorSideLeft.Side = asrBottom
182 | AnchorSideTop.Control = Owner
183 | AnchorSideRight.Control = Owner
184 | AnchorSideRight.Side = asrBottom
185 | Left = 120
186 | Height = 28
187 | Hint = 'Specify the OS to download Gitea'#10'in addiction to your real OS.'
188 | Top = 6
189 | Width = 244
190 | Anchors = [akTop, akLeft, akRight]
191 | BorderSpacing.Around = 6
192 | Constraints.MinHeight = 28
193 | DropDownCount = 12
194 | ItemHeight = 0
195 | Items.Strings = (
196 | 'linux,386'
197 | 'linux,amd64'
198 | 'linux,arm-5'
199 | 'linux,arm-6'
200 | 'linux,arm64'
201 | 'linux,mips'
202 | 'linux,mips64le'
203 | 'linux,mipsle'
204 | 'darwin,386'
205 | 'darwin,amd64'
206 | 'windows,386'
207 | 'windows,amd64'
208 | )
209 | Style = csDropDownList
210 | TabOrder = 2
211 | end
212 | object ButtonPanel1: TButtonPanel
213 | AnchorSideLeft.Control = Owner
214 | AnchorSideTop.Control = GroupBox1
215 | AnchorSideTop.Side = asrBottom
216 | AnchorSideRight.Control = Owner
217 | AnchorSideRight.Side = asrBottom
218 | Left = 6
219 | Height = 30
220 | Top = 268
221 | Width = 358
222 | Align = alNone
223 | Anchors = [akTop, akLeft, akRight]
224 | OKButton.Name = 'OKButton'
225 | OKButton.DefaultCaption = True
226 | OKButton.OnClick = OKButtonClick
227 | HelpButton.Name = 'HelpButton'
228 | HelpButton.DefaultCaption = True
229 | CloseButton.Name = 'CloseButton'
230 | CloseButton.DefaultCaption = True
231 | CancelButton.Name = 'CancelButton'
232 | CancelButton.DefaultCaption = True
233 | TabOrder = 3
234 | ShowButtons = [pbOK, pbClose]
235 | ShowBevel = False
236 | end
237 | end
238 |
--------------------------------------------------------------------------------
/updatesetting.pas:
--------------------------------------------------------------------------------
1 | unit updatesetting;
2 |
3 | {$mode objfpc}{$H+}
4 |
5 | interface
6 |
7 | uses
8 | Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls,
9 | Buttons, Spin, ButtonPanel, base64, resstr;
10 |
11 | type
12 |
13 | { TUpdSettingForm }
14 |
15 | TUpdSettingForm = class(TForm)
16 | ButtonPanel1: TButtonPanel;
17 | CheckBoxUseProxy: TCheckBox;
18 | CoBoxOsIdent: TComboBox;
19 | EditConfirmPass: TEdit;
20 | EditProxyHost: TEdit;
21 | EditProxyUser: TEdit;
22 | EditProxyPass: TEdit;
23 | GroupBox1: TGroupBox;
24 | Label1: TLabel;
25 | Label2: TLabel;
26 | Label3: TLabel;
27 | Label4: TLabel;
28 | Label5: TLabel;
29 | Label6: TLabel;
30 | EditProxyPort: TSpinEdit;
31 | procedure CheckBoxUseProxyChange(Sender: TObject);
32 | procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
33 | procedure FormHide(Sender: TObject);
34 | procedure FormShow(Sender: TObject);
35 | procedure OKButtonClick(Sender: TObject);
36 | private
37 |
38 | public
39 |
40 | end;
41 |
42 | function RunUpdSettingForm: Boolean;
43 |
44 | var
45 | UpdSettingForm: TUpdSettingForm;
46 |
47 | implementation
48 |
49 | uses mainunit;
50 |
51 | function RunUpdSettingForm: Boolean;
52 | begin
53 | Result:= True;
54 | if not Assigned(UpdSettingForm) then UpdSettingForm:= TUpdSettingForm.Create(Application);
55 | try
56 | UpdSettingForm.ShowModal;
57 | except
58 | UpdSettingForm.Free;
59 | FreeAndNil(UpdSettingForm);
60 | end;
61 | end;
62 |
63 | {$R *.frm}
64 |
65 | { TUpdSettingForm }
66 |
67 | procedure TUpdSettingForm.CheckBoxUseProxyChange(Sender: TObject);
68 | begin
69 | GroupBox1.Enabled:= CheckBoxUseProxy.Checked;
70 | end;
71 |
72 | procedure TUpdSettingForm.FormClose(Sender: TObject;
73 | var CloseAction: TCloseAction);
74 | begin
75 | CloseAction:= caFree;
76 | FreeAndNil(UpdSettingForm);
77 | end;
78 |
79 | procedure TUpdSettingForm.FormHide(Sender: TObject);
80 | begin
81 | EditConfirmPass.Text:= '';
82 | EditConfirmPass.Text:= '';
83 | end;
84 |
85 | procedure TUpdSettingForm.FormShow(Sender: TObject);
86 | begin
87 | DisableAutoSizing;
88 | CoBoxOsIdent.ItemIndex:= CoBoxOsIdent.Items.IndexOf(OSIdent);
89 | CheckBoxUseProxy.Checked:= UseProxyStatus;
90 | EditProxyHost.Text:= ProxyHost;
91 | EditProxyPort.Value:= ProxyPort;
92 | EditProxyUser.Text:= ProxyUser;
93 | EditProxyPass.Text:= DecodeStringBase64(ProxyPass);
94 | EditConfirmPass.Text:= DecodeStringBase64(ProxyPass);
95 | EnableAutoSizing;
96 | end;
97 |
98 | procedure TUpdSettingForm.OKButtonClick(Sender: TObject);
99 | begin
100 | OSIdent:= CoBoxOsIdent.Text;
101 | UseProxyStatus:= CheckBoxUseProxy.Checked;
102 | ProxyHost:= EditProxyHost.Text;
103 | ProxyPort:= EditProxyPort.Value;
104 | ProxyUser:= EditProxyUser.Text;
105 | if UseProxyStatus then
106 | if EditProxyPass.Text <> EditConfirmPass.Text then
107 | begin
108 | ModalResult:= mrNone;
109 | MessageDlg('Gitea Panel', i18_Err_NoConfirmPass, mtError, [mbOK], 0);
110 | end
111 | else ProxyPass:= EncodeStringBase64(EditProxyPass.Text);
112 | end;
113 |
114 | end.
115 |
116 |
--------------------------------------------------------------------------------