├── .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 | ![ScreenMenu](resource/ScreenMenu.png) 10 | 11 | ![ScreenSeting](resource/ScreenSeting.png) 12 | 13 | ![ScreenAbout](resource/ScreenAbout.png) 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 | <Scaled Value="True"/> 12 | <ResourceType Value="res"/> 13 | <UseXPManifest Value="True"/> 14 | <XPManifest> 15 | <DpiAware Value="True"/> 16 | </XPManifest> 17 | <Icon Value="0"/> 18 | <Resources Count="7"> 19 | <Resource_0 FileName="resource/download.png" Type="RCDATA" ResourceName="DOWNLOAD"/> 20 | <Resource_1 FileName="resource/ok.png" Type="RCDATA" ResourceName="OK"/> 21 | <Resource_2 FileName="resource/error.png" Type="RCDATA" ResourceName="ERROR"/> 22 | <Resource_3 FileName="resource/check.png" Type="RCDATA" ResourceName="CHECK"/> 23 | <Resource_4 FileName="resource/lamp.png" Type="RCDATA" ResourceName="LAMP"/> 24 | <Resource_5 FileName="resource/GiteaGreen.ico" Type="ICON" ResourceName="GITEAGREEN"/> 25 | <Resource_6 FileName="resource/GiteaRed.ico" Type="ICON" ResourceName="GITEARED"/> 26 | </Resources> 27 | </General> 28 | <i18n> 29 | <EnableI18N Value="True"/> 30 | <OutDir Value="locale"/> 31 | </i18n> 32 | <VersionInfo> 33 | <UseVersionInfo Value="True"/> 34 | <AutoIncrementBuild Value="True"/> 35 | <MinorVersionNr Value="7"/> 36 | <BuildNr Value="49"/> 37 | <StringTable CompanyName="Sashaoli" FileDescription="Manage the local Gitea server with the tray" InternalName="giteapanel" LegalCopyright="Sashaoli © 2019 - 2020" OriginalFilename="giteapanel" ProductName="Gitea Panel" ProductVersion="0.7.0"/> 38 | </VersionInfo> 39 | <CustomData Count="15"> 40 | <Item0 Name="CT-Packager/copyright" Value="Sashaoli 2020"/> 41 | <Item1 Name="CT-Packager/deb/ppa" Value="ppa:johndoe/use-your-own"/> 42 | <Item2 Name="CT-Packager/deb/series" Value="precise"/> 43 | <Item3 Name="CT-Packager/deb/tpl_changelog" Value="?PACKAGE_NAME? (?FULLVERSION?) ?SERIES?; urgency=low 44 | 45 | * Original version ?VERSION? packaged with lazdebian 46 | 47 | -- ?MAINTAINER? <?MAINTAINER_EMAIL?> ?DATER? 48 | "/> 49 | <Item4 Name="CT-Packager/deb/tpl_control" Value="Source: ?PACKAGE_NAME? 50 | Maintainer: ?MAINTAINER? <?MAINTAINER_EMAIL?> 51 | Section: devel 52 | Priority: optional 53 | Standards-Version: 3.9.3 54 | Build-Depends: fpc, Typhon, lcl, lcl-utils, debhelper (>= 8) 55 | 56 | Package: ?PACKAGE_NAME? 57 | Architecture: any 58 | Depends: ${shlibs:Depends}, ${misc:Depends}, 59 | Description: ?DESCRIPTION? 60 | ?DESCRIPTION_LONG? 61 | "/> 62 | <Item5 Name="CT-Packager/deb/tpl_copyright" Value="Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ 63 | 64 | Files: * 65 | Copyright: ?COPYRIGHT? 66 | License: GPL-2+ 67 | This program is free software; you can redistribute it and/or modify 68 | it under the terms of the GNU General Public License as published by 69 | the Free Software Foundation; either version 2 of the License, or 70 | at your option) any later version. 71 | . 72 | This program is distributed in the hope that it will be useful, 73 | but WITHOUT ANY WARRANTY; without even the implied warranty of 74 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 75 | GNU General Public License for more details. 76 | . 77 | You should have received a copy of the GNU General Public License along 78 | with this program; if not, write to the Free Software Foundation, Inc., 79 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 80 | . 81 | On Debian systems, the full text of the GNU General Public 82 | License version 2 can be found in the file 83 | /usr/share/common-licenses/GPL-2 84 | "/> 85 | <Item6 Name="CT-Packager/deb/tpl_rules" Value="#!/usr/bin/make -f 86 | 87 | ROOT = $(CURDIR)/debian/?PACKAGE_NAME? 88 | 89 | override_dh_auto_clean: 90 | $(RM) -r lib 91 | $(RM) lib *.res ?EXECUTABLE? 92 | 93 | override_dh_auto_build: 94 | typhoonbuild ?PROJECT? 95 | 96 | override_dh_auto_install: 97 | install -d -m 755 $(ROOT)/usr/bin 98 | install -s -m 755 ?EXECUTABLE? $(ROOT)/usr/bin 99 | 100 | %: 101 | dh $@ 102 | "/> 103 | <Item7 Name="CT-Packager/description" Value="Manage the local Gitea server from the tray."/> 104 | <Item8 Name="CT-Packager/description_long" Value="Manage your local Gitea server from a tray. 105 | Server start/stop. 106 | Opens the Gitea page in the selected browser. 107 | Updating Gitea."/> 108 | <Item9 Name="CT-Packager/export_cmd" Value="?CP? *.ctpr ?TEMPFOLDER?/ 109 | ?CP? *.ppr ?TEMPFOLDER?/ 110 | ?CP? *.pas ?TEMPFOLDER?/ 111 | ?CP? *.frm ?TEMPFOLDER?/ 112 | ?CP? *.ico ?TEMPFOLDER?/ 113 | ?CP? locale/giteapanel.*.po ?TEMPFOLDER?/locale/ 114 | ?CP? locale/lang.list ?TEMPFOLDER?/locale/"/> 115 | <Item10 Name="CT-Packager/maintainer" Value="Sashaoli"/> 116 | <Item11 Name="CT-Packager/maintainer_email" Value="olisasha@yahoo.com"/> 117 | <Item12 Name="CT-Packager/package_name" Value="giteapanel"/> 118 | <Item13 Name="CT-Packager/tpl_makefile" Value="PREFIX = /usr/local 119 | 120 | # debuild will set DESTDIR to the fakeroot path and 121 | # in the override rules we will change PREFIX to /usr 122 | BINDIR = $(DESTDIR)$(PREFIX)/bin 123 | 124 | .PHONY : all 125 | all: 126 | typhoonbuild ?PROJECT? 127 | 128 | .PHONY : clean 129 | clean: 130 | $(RM) -r lib 131 | $(RM) *.res 132 | $(RM) ?EXECUTABLE? 133 | 134 | .PHONY : install 135 | install: 136 | mkdir -p $(BINDIR) 137 | install -s ?EXECUTABLE? $(BINDIR)/ 138 | "/> 139 | <Item14 Name="CT-Packager/use_existing_makefile" Value="False"/> 140 | </CustomData> 141 | <BuildModes Count="3"> 142 | <Item1 Name="Default" Default="True"/> 143 | <Item2 Name="Release_x86_x64"> 144 | <CompilerOptions> 145 | <Version Value="11"/> 146 | <Target> 147 | <Filename Value="giteapanel_$(TargetOS)_$(TargetCPU)"/> 148 | </Target> 149 | <SearchPaths> 150 | <IncludeFiles Value="$(ProjOutDir)"/> 151 | <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/> 152 | </SearchPaths> 153 | <CodeGeneration> 154 | <SmartLinkUnit Value="True"/> 155 | </CodeGeneration> 156 | <Linking> 157 | <Debugging> 158 | <GenerateDebugInfo Value="False"/> 159 | </Debugging> 160 | <LinkSmart Value="True"/> 161 | <Options> 162 | <Win32> 163 | <GraphicApplication Value="True"/> 164 | </Win32> 165 | </Options> 166 | </Linking> 167 | <Other> 168 | <ExecuteBefore> 169 | <Command Value="/bin/sh -c "echo -n C`git describe --tags`C |tr A-G %-+ >project_svnrevision.inc""/> 170 | </ExecuteBefore> 171 | </Other> 172 | </CompilerOptions> 173 | </Item2> 174 | <Item3 Name="Release_i386"> 175 | <CompilerOptions> 176 | <Version Value="11"/> 177 | <Target> 178 | <Filename Value="giteapanel_$(TargetOS)_$(TargetCPU)"/> 179 | </Target> 180 | <SearchPaths> 181 | <IncludeFiles Value="$(ProjOutDir)"/> 182 | <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/> 183 | </SearchPaths> 184 | <CodeGeneration> 185 | <SmartLinkUnit Value="True"/> 186 | <TargetCPU Value="i386"/> 187 | </CodeGeneration> 188 | <Linking> 189 | <Debugging> 190 | <GenerateDebugInfo Value="False"/> 191 | </Debugging> 192 | <LinkSmart Value="True"/> 193 | <Options> 194 | <Win32> 195 | <GraphicApplication Value="True"/> 196 | </Win32> 197 | </Options> 198 | </Linking> 199 | <Other> 200 | <ExecuteBefore> 201 | <Command Value="/bin/sh -c "echo -n C`git describe --tags`C |tr A-G %-+ >project_svnrevision.inc""/> 202 | </ExecuteBefore> 203 | </Other> 204 | </CompilerOptions> 205 | </Item3> 206 | </BuildModes> 207 | <PublishOptions> 208 | <Version Value="2"/> 209 | <DestinationDirectory Value="/home/sasha/Документи/CodeTyphonProject/GP"/> 210 | <CompressFinally Value="False"/> 211 | <OpenInFileMan Value="True"/> 212 | <UseFileFilters Value="True"/> 213 | </PublishOptions> 214 | <RunParams> 215 | <FormatVersion Value="2"/> 216 | </RunParams> 217 | <RequiredPackages Count="4"> 218 | <Item1> 219 | <PackageName Value="pl_indy"/> 220 | </Item1> 221 | <Item2> 222 | <PackageName Value="pl_luicontrols"/> 223 | </Item2> 224 | <Item3> 225 | <PackageName Value="adFCL"/> 226 | </Item3> 227 | <Item4> 228 | <PackageName Value="adLCL"/> 229 | </Item4> 230 | </RequiredPackages> 231 | <Units Count="6"> 232 | <Unit0> 233 | <Filename Value="giteapanel.ppr"/> 234 | <FRMtype Value="0"/> 235 | <IsPartOfProject Value="True"/> 236 | <HasResources Value="True"/> 237 | <ResourceBaseClass Value="Form"/> 238 | </Unit0> 239 | <Unit1> 240 | <Filename Value="mainunit.pas"/> 241 | <FRMtype Value="200"/> 242 | <IsPartOfProject Value="True"/> 243 | <ComponentName Value="MainForm"/> 244 | <HasResources Value="True"/> 245 | <ResourceBaseClass Value="Form"/> 246 | </Unit1> 247 | <Unit2> 248 | <Filename Value="resstr.pas"/> 249 | <IsPartOfProject Value="True"/> 250 | </Unit2> 251 | <Unit3> 252 | <Filename Value="aboutunit.pas"/> 253 | <FRMtype Value="200"/> 254 | <IsPartOfProject Value="True"/> 255 | <ComponentName Value="AboutForm"/> 256 | <HasResources Value="True"/> 257 | <ResourceBaseClass Value="Form"/> 258 | </Unit3> 259 | <Unit4> 260 | <Filename Value="updatesetting.pas"/> 261 | <FRMtype Value="200"/> 262 | <IsPartOfProject Value="True"/> 263 | <ComponentName Value="UpdSettingForm"/> 264 | <HasResources Value="True"/> 265 | <ResourceBaseClass Value="Form"/> 266 | </Unit4> 267 | <Unit5> 268 | <Filename Value="updategitea.pas"/> 269 | <FRMtype Value="200"/> 270 | <IsPartOfProject Value="True"/> 271 | <ComponentName Value="FormUpdGitea"/> 272 | <HasResources Value="True"/> 273 | <ResourceBaseClass Value="Form"/> 274 | </Unit5> 275 | </Units> 276 | </ProjectOptions> 277 | <CompilerOptions> 278 | <Version Value="11"/> 279 | <Target> 280 | <Filename Value="giteapanel_$(TargetOS)_$(TargetCPU)"/> 281 | </Target> 282 | <SearchPaths> 283 | <IncludeFiles Value="$(ProjOutDir)"/> 284 | <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/> 285 | </SearchPaths> 286 | <CodeGeneration> 287 | <SmartLinkUnit Value="True"/> 288 | </CodeGeneration> 289 | <Linking> 290 | <Debugging> 291 | <UseHeaptrc Value="True"/> 292 | </Debugging> 293 | <LinkSmart Value="True"/> 294 | <Options> 295 | <Win32> 296 | <GraphicApplication Value="True"/> 297 | </Win32> 298 | </Options> 299 | </Linking> 300 | <Other> 301 | <ExecuteBefore> 302 | <Command Value="/bin/sh -c "echo -n C`git describe`C |tr A-G %-+ >project_svnrevision.inc""/> 303 | </ExecuteBefore> 304 | </Other> 305 | </CompilerOptions> 306 | <Debugging> 307 | <Exceptions Count="3"> 308 | <Item1> 309 | <Name Value="EAbort"/> 310 | </Item1> 311 | <Item2> 312 | <Name Value="ECodetoolError"/> 313 | </Item2> 314 | <Item3> 315 | <Name Value="EFOpenError"/> 316 | </Item3> 317 | </Exceptions> 318 | </Debugging> 319 | </CONFIG> 320 | -------------------------------------------------------------------------------- /giteapanel.ctps: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectSession> 4 | <Version Value="12"/> 5 | <BuildModes Active="Release_x86_x64"/> 6 | <Units Count="10"> 7 | <Unit0> 8 | <Filename Value="giteapanel.ppr"/> 9 | <FRMtype Value="0"/> 10 | <IsPartOfProject Value="True"/> 11 | <HasResources Value="True"/> 12 | <ResourceBaseClass Value="Form"/> 13 | <EditorIndex Value="4"/> 14 | <CursorPos Y="4"/> 15 | <UsageCount Value="202"/> 16 | <Loaded Value="True"/> 17 | </Unit0> 18 | <Unit1> 19 | <Filename Value="mainunit.pas"/> 20 | <FRMtype Value="200"/> 21 | <IsPartOfProject Value="True"/> 22 | <ComponentName Value="MainForm"/> 23 | <HasResources Value="True"/> 24 | <ResourceBaseClass Value="Form"/> 25 | <TopLine Value="167"/> 26 | <CursorPos X="17" Y="199"/> 27 | <UsageCount Value="202"/> 28 | <Loaded Value="True"/> 29 | <LoadedDesigner Value="True"/> 30 | </Unit1> 31 | <Unit2> 32 | <Filename Value="resstr.pas"/> 33 | <IsPartOfProject Value="True"/> 34 | <EditorIndex Value="6"/> 35 | <CursorPos X="55" Y="35"/> 36 | <UsageCount Value="202"/> 37 | <Loaded Value="True"/> 38 | </Unit2> 39 | <Unit3> 40 | <Filename Value="aboutunit.pas"/> 41 | <FRMtype Value="200"/> 42 | <IsPartOfProject Value="True"/> 43 | <ComponentName Value="AboutForm"/> 44 | <HasResources Value="True"/> 45 | <ResourceBaseClass Value="Form"/> 46 | <EditorIndex Value="1"/> 47 | <TopLine Value="20"/> 48 | <CursorPos X="34" Y="40"/> 49 | <UsageCount Value="202"/> 50 | <Loaded Value="True"/> 51 | <LoadedDesigner Value="True"/> 52 | </Unit3> 53 | <Unit4> 54 | <Filename Value="updatesetting.pas"/> 55 | <FRMtype Value="200"/> 56 | <IsPartOfProject Value="True"/> 57 | <ComponentName Value="UpdSettingForm"/> 58 | <HasResources Value="True"/> 59 | <ResourceBaseClass Value="Form"/> 60 | <EditorIndex Value="5"/> 61 | <CursorPos X="96" Y="55"/> 62 | <UsageCount Value="202"/> 63 | <Loaded Value="True"/> 64 | <LoadedDesigner Value="True"/> 65 | </Unit4> 66 | <Unit5> 67 | <Filename Value="updategitea.pas"/> 68 | <FRMtype Value="200"/> 69 | <IsPartOfProject Value="True"/> 70 | <ComponentName Value="FormUpdGitea"/> 71 | <HasResources Value="True"/> 72 | <ResourceBaseClass Value="Form"/> 73 | <IsVisibleTab Value="True"/> 74 | <EditorIndex Value="2"/> 75 | <TopLine Value="269"/> 76 | <CursorPos Y="270"/> 77 | <UsageCount Value="202"/> 78 | <Loaded Value="True"/> 79 | <LoadedDesigner Value="True"/> 80 | </Unit5> 81 | <Unit6> 82 | <Filename Value="/usr/local/codetyphon/fpcsrc/rtl/linux/system.pp"/> 83 | <FRMtype Value="0"/> 84 | <UnitName Value="System"/> 85 | <EditorIndex Value="-1"/> 86 | <CursorPos X="9" Y="3"/> 87 | <UsageCount Value="1"/> 88 | </Unit6> 89 | <Unit7> 90 | <Filename Value="/usr/local/codetyphon/typhon/components/pl_Indy/source/IdGlobal.pas"/> 91 | <FRMtype Value="0"/> 92 | <EditorIndex Value="3"/> 93 | <TopLine Value="1396"/> 94 | <CursorPos X="94" Y="1417"/> 95 | <UsageCount Value="26"/> 96 | <Loaded Value="True"/> 97 | </Unit7> 98 | <Unit8> 99 | <Filename Value="/usr/local/codetyphon/typhon/components/pl_Indy/source/IdHTTP.pas"/> 100 | <FRMtype Value="0"/> 101 | <EditorIndex Value="-1"/> 102 | <TopLine Value="381"/> 103 | <CursorPos X="6" Y="319"/> 104 | <UsageCount Value="7"/> 105 | </Unit8> 106 | <Unit9> 107 | <Filename Value="/usr/local/codetyphon/typhon/components/pl_Indy/source/IdTCPConnection.pas"/> 108 | <FRMtype Value="0"/> 109 | <EditorIndex Value="-1"/> 110 | <TopLine Value="459"/> 111 | <CursorPos X="20" Y="450"/> 112 | <UsageCount Value="8"/> 113 | </Unit9> 114 | </Units> 115 | <JumpHistory Count="30" HistoryIndex="29"> 116 | <Position1> 117 | <Filename Value="updategitea.pas"/> 118 | <Caret Line="112" Column="11" TopLine="99"/> 119 | </Position1> 120 | <Position2> 121 | <Filename Value="updategitea.pas"/> 122 | <Caret Line="146" Column="12" TopLine="120"/> 123 | </Position2> 124 | <Position3> 125 | <Filename Value="updategitea.pas"/> 126 | <Caret Line="59" Column="15" TopLine="40"/> 127 | </Position3> 128 | <Position4> 129 | <Filename Value="updategitea.pas"/> 130 | <Caret Line="118" Column="23" TopLine="109"/> 131 | </Position4> 132 | <Position5> 133 | <Filename Value="updategitea.pas"/> 134 | <Caret Line="129" Column="4" TopLine="109"/> 135 | </Position5> 136 | <Position6> 137 | <Filename Value="updategitea.pas"/> 138 | <Caret Line="193" Column="32" TopLine="169"/> 139 | </Position6> 140 | <Position7> 141 | <Filename Value="updategitea.pas"/> 142 | <Caret Line="143" Column="108" TopLine="103"/> 143 | </Position7> 144 | <Position8> 145 | <Filename Value="updategitea.pas"/> 146 | <Caret Line="196" Column="107" TopLine="182"/> 147 | </Position8> 148 | <Position9> 149 | <Filename Value="updategitea.pas"/> 150 | <Caret Line="110" Column="12" TopLine="90"/> 151 | </Position9> 152 | <Position10> 153 | <Filename Value="updategitea.pas"/> 154 | <Caret Line="122" Column="34" TopLine="93"/> 155 | </Position10> 156 | <Position11> 157 | <Filename Value="updategitea.pas"/> 158 | <Caret Line="60" TopLine="43"/> 159 | </Position11> 160 | <Position12> 161 | <Filename Value="mainunit.pas"/> 162 | <Caret Line="10" Column="73"/> 163 | </Position12> 164 | <Position13> 165 | <Filename Value="updategitea.pas"/> 166 | <Caret Line="142" TopLine="119"/> 167 | </Position13> 168 | <Position14> 169 | <Filename Value="updategitea.pas"/> 170 | <Caret Line="176" Column="11" TopLine="156"/> 171 | </Position14> 172 | <Position15> 173 | <Filename Value="updategitea.pas"/> 174 | <Caret Line="136" Column="37" TopLine="120"/> 175 | </Position15> 176 | <Position16> 177 | <Filename Value="mainunit.pas"/> 178 | <Caret Line="107" Column="9" TopLine="87"/> 179 | </Position16> 180 | <Position17> 181 | <Filename Value="aboutunit.pas"/> 182 | <Caret Line="40" Column="34" TopLine="20"/> 183 | </Position17> 184 | <Position18> 185 | <Filename Value="updategitea.pas"/> 186 | <Caret Line="171" Column="108" TopLine="131"/> 187 | </Position18> 188 | <Position19> 189 | <Filename Value="updatesetting.pas"/> 190 | <Caret Line="73" Column="20" TopLine="50"/> 191 | </Position19> 192 | <Position20> 193 | <Filename Value="mainunit.pas"/> 194 | <Caret Line="72" Column="20" TopLine="52"/> 195 | </Position20> 196 | <Position21> 197 | <Filename Value="mainunit.pas"/> 198 | <Caret Line="184" Column="21" TopLine="175"/> 199 | </Position21> 200 | <Position22> 201 | <Filename Value="mainunit.pas"/> 202 | <Caret Line="553" Column="25" TopLine="474"/> 203 | </Position22> 204 | <Position23> 205 | <Filename Value="mainunit.pas"/> 206 | <Caret Line="184" Column="21" TopLine="162"/> 207 | </Position23> 208 | <Position24> 209 | <Filename Value="mainunit.pas"/> 210 | <Caret Line="175" Column="91" TopLine="162"/> 211 | </Position24> 212 | <Position25> 213 | <Filename Value="mainunit.pas"/> 214 | <Caret Line="184" Column="21" TopLine="162"/> 215 | </Position25> 216 | <Position26> 217 | <Filename Value="mainunit.pas"/> 218 | <Caret Line="20" Column="65"/> 219 | </Position26> 220 | <Position27> 221 | <Filename Value="mainunit.pas"/> 222 | <Caret Line="195" Column="30" TopLine="174"/> 223 | </Position27> 224 | <Position28> 225 | <Filename Value="mainunit.pas"/> 226 | <Caret Line="271" Column="57" TopLine="252"/> 227 | </Position28> 228 | <Position29> 229 | <Filename Value="mainunit.pas"/> 230 | <Caret Line="329" Column="58" TopLine="309"/> 231 | </Position29> 232 | <Position30> 233 | <Filename Value="mainunit.pas"/> 234 | <Caret Line="542" Column="160" TopLine="521"/> 235 | </Position30> 236 | </JumpHistory> 237 | <RunParams> 238 | <FormatVersion Value="2"/> 239 | <Modes Count="0" ActiveMode=""/> 240 | </RunParams> 241 | </ProjectSession> 242 | </CONFIG> 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 <olisasha@yahoo.com>, 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 <olisasha@yahoo.com>\n" 8 | "Language-Team: Russian <olisasha@yahoo.com>\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 <olisasha@yahoo.com>\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 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 | <svg 3 | xmlns:dc="http://purl.org/dc/elements/1.1/" 4 | xmlns:cc="http://creativecommons.org/ns#" 5 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 6 | xmlns:svg="http://www.w3.org/2000/svg" 7 | xmlns="http://www.w3.org/2000/svg" 8 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 9 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 10 | inkscape:version="1.0 (1.0+r73+1)" 11 | inkscape:export-ydpi="96" 12 | inkscape:export-xdpi="96" 13 | inkscape:export-filename="/home/sasha/Документи/CodeTyphonProject/GiteaPanel/resource/giteapanel_1.png" 14 | sodipodi:docname="giteapanel.svg" 15 | id="svg13" 16 | preserveAspectRatio="xMidYMid meet" 17 | viewBox="0 0 2560 2560" 18 | height="256px" 19 | width="256px" 20 | version="1.0"> 21 | <metadata 22 | id="metadata19"> 23 | <rdf:RDF> 24 | <cc:Work 25 | rdf:about=""> 26 | <dc:format>image/svg+xml</dc:format> 27 | <dc:type 28 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 29 | <dc:title /> 30 | </cc:Work> 31 | </rdf:RDF> 32 | </metadata> 33 | <defs 34 | id="defs17" /> 35 | <sodipodi:namedview 36 | inkscape:current-layer="svg13" 37 | inkscape:window-maximized="0" 38 | inkscape:window-y="30" 39 | inkscape:window-x="0" 40 | inkscape:cy="20.579471" 41 | inkscape:cx="92.347269" 42 | inkscape:zoom="2.3421236" 43 | inkscape:guide-bbox="true" 44 | showguides="true" 45 | showgrid="false" 46 | id="namedview15" 47 | inkscape:window-height="1024" 48 | inkscape:window-width="1225" 49 | inkscape:pageshadow="2" 50 | inkscape:pageopacity="0" 51 | guidetolerance="10" 52 | gridtolerance="10" 53 | objecttolerance="10" 54 | borderopacity="1" 55 | bordercolor="#666666" 56 | pagecolor="#ffffff" 57 | inkscape:document-rotation="0"> 58 | <sodipodi:guide 59 | id="guide848" 60 | orientation="1,0" 61 | position="1246.9489,2515.8301" /> 62 | <sodipodi:guide 63 | id="guide850" 64 | orientation="0,-1" 65 | position="-61.158255,1309.6535" /> 66 | </sodipodi:namedview> 67 | <rect 68 | ry="500" 69 | rx="500" 70 | y="16.041504" 71 | x="17.477905" 72 | height="2527.917" 73 | width="2525.0442" 74 | id="rect846" 75 | style="opacity:1;fill:#82b965;fill-opacity:1;stroke:none;stroke-width:20;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> 76 | <g 77 | id="g994" 78 | transform="translate(-6.8276796,-4.6249422e-5)"> 79 | <g 80 | id="layer103" 81 | fill="#fdfefd" 82 | stroke="none" 83 | style="fill:#ffffff" 84 | transform="matrix(2.3423771,0,0,2.1565976,-2067.5296,-1815.0413)"> 85 | <path 86 | d="m 1473,1092.415 c -23,-6.5884 -23,-8.3851 -23,-125.77573 V 848.0508 h 25 25 v 125.77565 c 0,69.47615 -1,125.77565 -2,125.17675 -2,0 -13,-2.9947 -25,-6.5882 z" 87 | id="path10" 88 | style="fill:#ffffff;stroke-width:0.773907" /> 89 | </g> 90 | <path 91 | d="m 1177.9266,528.38382 c -98.5032,-50.73237 -218.64911,-12.285 -269.38165,86.21804 L 482.72347,1441.3884 c -50.73235,98.5032 -12.28501,218.6491 86.21803,269.3817 l 826.7868,425.8211 c 98.5023,50.7341 218.6491,12.2851 269.3817,-86.218 l 425.8211,-826.7868 c 50.7341,-98.5022 12.2851,-218.6491 -86.218,-269.38163 l -567.6798,-292.3899 c -0.075,0.0358 -0.1519,0.068 -0.228,0.10226 -0.064,0.0798 -0.095,0.18535 -0.1875,0.23306 -0.047,0.0254 0.01,-0.0974 0.01,-0.14901 -0.093,0.15894 -0.1421,0.34164 -0.268,0.47712 -0.051,0.0557 -0.143,0.0811 -0.2192,0.0849 -0.2006,0.12968 -0.3527,0.31601 -0.5298,0.47423 l 0.053,0.0275 c -15.8128,17.52652 -35.6388,47.81181 -52.069,81.95617 -71.9505,137.89313 -54.853,194.40463 83.8014,273.6074 233.4025,131.4003 249.863,198.9782 111.2908,461.7541 -100.0655,189.5366 -100.1921,191.7483 -82.9253,283.8072 20.3504,116.667 -140.9,187.1561 -229.0004,99.8196 -70.8808,-70.7814 -18.147,-229.7957 72.5696,-224.4676 34.0185,1.9976 214.3115,-311.6278 218.2707,-378.014 5.4124,-90.7269 -207.176,-227.5554 -309.0767,-198.0107 -74.1573,22.2921 -278.03954,350.0635 -247.057,402.957 74.1206,130.928 -110.98189,257.7477 -220.44118,146.9502 -71.01302,-68.5682 -13.6149,-229.5257 79.36968,-224.0647 52.1621,3.0633 234.9649,-352.6107 221.5737,-433.3393 -9.5153,-69.39738 47.6466,-150.41757 106.6123,-146.9545 22.2648,1.30766 122.9354,-138.30228 149.4212,-198.24481 z" 92 | style="fill:#ffffff;stroke-width:20" 93 | id="rect872" /> 94 | </g> 95 | </svg> 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 | --------------------------------------------------------------------------------