Compare commits

...

8 Commits

Author SHA1 Message Date
GiteaBot
c7455e9f23 [skip ci] Updated translations via Crowdin 2023-07-19 00:46:27 +00:00
Jason Song
6f1f3e6c08
Show the mismatched ROOT_URL warning on the sign-in page if OAuth2 is enabled (#25947)
Since OAuth2 will callback the root URL, if the user starts signing in
from a wrong host, Gitea will return 500 because it cannot find the
session.

<details>
<summary>How to reproduce</summary>

<img width="901" alt="image"
src="https://github.com/go-gitea/gitea/assets/9418365/2c2e255c-e13e-4a11-9be7-b226bee54920">

<img width="1014" alt="image"
src="https://github.com/go-gitea/gitea/assets/9418365/b31cfcf6-a320-483d-9ce5-ba8562f065e1">

</details>


So show the mismatched ROOT_URL warning on the sign-in page if OAuth2 is
enabled.

<img width="1015" alt="image"
src="https://github.com/go-gitea/gitea/assets/9418365/99e80b17-c790-49a3-bbf2-2bd9396a7daa">
2023-07-18 22:14:30 +00:00
wxiaoguang
236c645bf1
Refactor "Content" for file uploading (#25851)
Before: the concept "Content string" is used everywhere. It has some
problems:

1. Sometimes it means "base64 encoded content", sometimes it means "raw
binary content"
2. It doesn't work with large files, eg: uploading a 1G LFS file would
make Gitea process OOM

This PR does the refactoring: use "ContentReader" / "ContentBase64"
instead of "Content"

This PR is not breaking because the key in API JSON is still "content":
`` ContentBase64 string `json:"content"` ``
2023-07-18 18:14:47 +00:00
wxiaoguang
265a28802a
Fix SSPI auth panic (#25955)
Try to fix #25952

Co-authored-by: Giteabot <teabot@gitea.io>
2023-07-18 17:32:49 +00:00
silverwind
dcb607d3cf
Make pending commit status yellow again (#25935)
With the introduction of Actions, the pending commit icon has changed
from yellow to grey for Drone integrations which never set the "running"
status, so it stays in "pending" until completion.

I find it better to have this icon colored like on 1.19. Now both the
"pending" and "running" icons look the same, but I guess we could add an
animation to the "running" state similar to GitHub has to it later.

Before:
<img width="339" alt="Screenshot 2023-07-17 at 19 14 19"
src="https://github.com/go-gitea/gitea/assets/115237/2f4886e4-74fd-42ea-b59e-9af8f141bf1f">

After:
<img width="335" alt="Screenshot 2023-07-17 at 19 14 30"
src="https://github.com/go-gitea/gitea/assets/115237/53189642-e72d-47f6-9cbe-f14eda28f730">

Also, it matches GH's icon:

<img width="466" alt="image"
src="https://github.com/go-gitea/gitea/assets/115237/5804ff90-d223-4a3c-8093-7a9abbaacf87">

---------

Co-authored-by: delvh <dev.lh@web.de>
2023-07-18 16:59:02 +00:00
wxiaoguang
faa28b5a44
Move public asset files to the proper directory (#25907)
Move `public/*` to `public/assets/*`

Some old PRs (like #15219) introduced inconsistent directory system.

For example: why the local directory "public" is accessed by
`http://site/assets`? How to serve the ".well-known" files properly in
the public directory?

For convention rules, the "public" directory is widely used for the
website's root directory. It shouldn't be an exception for Gitea.

So, this PR makes the things consistent:

* `http://site/assets/foo` means `{CustomPath}/public/assets/foo`.
* `{CustomPath}/public/.well-known` and `{CustomPath}/public/robots.txt`
can be used in the future.

This PR is also a prerequisite for a clear solution for:
* #21942
* #25892 
* discourse.gitea.io: [.well-known path serving custom files behind
proxy?](https://discourse.gitea.io/t/well-known-path-serving-custom-files-behind-proxy/5445/1)

This PR is breaking for users who have custom "public" files (CSS/JS).
After getting approvals, I will update the documents.

----

## ⚠️ BREAKING ⚠️

If you have files in your "custom/public/" folder, please move them to
"custom/public/assets/".

---------

Co-authored-by: 6543 <6543@obermui.de>
Co-authored-by: Giteabot <teabot@gitea.io>
2023-07-18 18:06:43 +02:00
KN4CK3R
8af96f585f
Disallow dangerous url schemes (#25960)
Regression: https://github.com/go-gitea/gitea/pull/24805
Closes: #25945

- Disallow `javascript`, `vbscript` and `data` (data uri images still
work) url schemes even if all other schemes are allowed
- Fixed older `cbthunderlink` tests

---------

Co-authored-by: delvh <dev.lh@web.de>
2023-07-18 15:18:37 +00:00
wxiaoguang
cc73e84fa3
Avoid creating directories when loading config (#25944)
The "creating dir/file during load config" is a longstanding and complex
problem.

This PR only does a quick patch, it still needs more refactorings in the
future.

Fix #25938
2023-07-18 07:32:36 -05:00
445 changed files with 368 additions and 318 deletions

View File

@ -75,10 +75,10 @@ cpu.out
/yarn.lock /yarn.lock
/yarn-error.log /yarn-error.log
/npm-debug.log* /npm-debug.log*
/public/js /public/assets/js
/public/css /public/assets/css
/public/fonts /public/assets/fonts
/public/img/webpack /public/assets/img/webpack
/vendor /vendor
/web_src/fomantic/node_modules /web_src/fomantic/node_modules
/web_src/fomantic/build/* /web_src/fomantic/build/*

2
.gitattributes vendored
View File

@ -1,7 +1,7 @@
* text=auto eol=lf * text=auto eol=lf
*.tmpl linguist-language=Handlebars *.tmpl linguist-language=Handlebars
/assets/*.json linguist-generated /assets/*.json linguist-generated
/public/img/svg/*.svg linguist-generated /public/assets/img/svg/*.svg linguist-generated
/templates/swagger/v1_json.tmpl linguist-generated /templates/swagger/v1_json.tmpl linguist-generated
/vendor/** -text -eol linguist-vendored /vendor/** -text -eol linguist-vendored
/web_src/fomantic/build/** linguist-generated /web_src/fomantic/build/** linguist-generated

8
.gitignore vendored
View File

@ -72,10 +72,10 @@ cpu.out
/yarn.lock /yarn.lock
/yarn-error.log /yarn-error.log
/npm-debug.log* /npm-debug.log*
/public/js /public/assets/js
/public/css /public/assets/css
/public/fonts /public/assets/fonts
/public/img/webpack /public/assets/img/webpack
/vendor /vendor
/web_src/fomantic/node_modules /web_src/fomantic/node_modules
/web_src/fomantic/build/* /web_src/fomantic/build/*

View File

@ -116,15 +116,15 @@ FOMANTIC_WORK_DIR := web_src/fomantic
WEBPACK_SOURCES := $(shell find web_src/js web_src/css -type f) WEBPACK_SOURCES := $(shell find web_src/js web_src/css -type f)
WEBPACK_CONFIGS := webpack.config.js WEBPACK_CONFIGS := webpack.config.js
WEBPACK_DEST := public/js/index.js public/css/index.css WEBPACK_DEST := public/assets/js/index.js public/assets/css/index.css
WEBPACK_DEST_ENTRIES := public/js public/css public/fonts public/img/webpack WEBPACK_DEST_ENTRIES := public/assets/js public/assets/css public/assets/fonts public/assets/img/webpack
BINDATA_DEST := modules/public/bindata.go modules/options/bindata.go modules/templates/bindata.go BINDATA_DEST := modules/public/bindata.go modules/options/bindata.go modules/templates/bindata.go
BINDATA_HASH := $(addsuffix .hash,$(BINDATA_DEST)) BINDATA_HASH := $(addsuffix .hash,$(BINDATA_DEST))
GENERATED_GO_DEST := modules/charset/invisible_gen.go modules/charset/ambiguous_gen.go GENERATED_GO_DEST := modules/charset/invisible_gen.go modules/charset/ambiguous_gen.go
SVG_DEST_DIR := public/img/svg SVG_DEST_DIR := public/assets/img/svg
AIR_TMP_DIR := .air AIR_TMP_DIR := .air

View File

@ -1,6 +1,6 @@
<p align="center"> <p align="center">
<a href="https://gitea.io/"> <a href="https://gitea.io/">
<img alt="Gitea" src="https://raw.githubusercontent.com/go-gitea/gitea/main/public/img/gitea.svg" width="220"/> <img alt="Gitea" src="https://raw.githubusercontent.com/go-gitea/gitea/main/public/assets/img/gitea.svg" width="220"/>
</a> </a>
</p> </p>
<h1 align="center">Gitea - Git with a cup of tea</h1> <h1 align="center">Gitea - Git with a cup of tea</h1>

View File

@ -1,6 +1,6 @@
<p align="center"> <p align="center">
<a href="https://gitea.io/"> <a href="https://gitea.io/">
<img alt="Gitea" src="https://raw.githubusercontent.com/go-gitea/gitea/main/public/img/gitea.svg" width="220"/> <img alt="Gitea" src="https://raw.githubusercontent.com/go-gitea/gitea/main/public/assets/img/gitea.svg" width="220"/>
</a> </a>
</p> </p>
<h1 align="center">Gitea - Git with a cup of tea</h1> <h1 align="center">Gitea - Git with a cup of tea</h1>

View File

@ -69,13 +69,13 @@ async function main() {
const faviconSvg = await readFile(new URL('../assets/favicon.svg', import.meta.url), 'utf8'); const faviconSvg = await readFile(new URL('../assets/favicon.svg', import.meta.url), 'utf8');
await Promise.all([ await Promise.all([
generate(logoSvg, '../public/img/logo.svg', {size: 32}), generate(logoSvg, '../public/assets/img/logo.svg', {size: 32}),
generate(logoSvg, '../public/img/logo.png', {size: 512}), generate(logoSvg, '../public/assets/img/logo.png', {size: 512}),
generate(faviconSvg, '../public/img/favicon.svg', {size: 32}), generate(faviconSvg, '../public/assets/img/favicon.svg', {size: 32}),
generate(faviconSvg, '../public/img/favicon.png', {size: 180}), generate(faviconSvg, '../public/assets/img/favicon.png', {size: 180}),
generate(logoSvg, '../public/img/avatar_default.png', {size: 200}), generate(logoSvg, '../public/assets/img/avatar_default.png', {size: 200}),
generate(logoSvg, '../public/img/apple-touch-icon.png', {size: 180, bg: true}), generate(logoSvg, '../public/assets/img/apple-touch-icon.png', {size: 180, bg: true}),
gitea && generate(logoSvg, '../public/img/gitea.svg', {size: 32}), gitea && generate(logoSvg, '../public/assets/img/gitea.svg', {size: 32}),
]); ]);
} }

View File

@ -44,7 +44,7 @@ async function processFile(file, {prefix, fullName} = {}) {
], ],
}); });
await writeFile(fileURLToPath(new URL(`../public/img/svg/${name}.svg`, import.meta.url)), data); await writeFile(fileURLToPath(new URL(`../public/assets/img/svg/${name}.svg`, import.meta.url)), data);
} }
function processFiles(pattern, opts) { function processFiles(pattern, opts) {
@ -53,13 +53,13 @@ function processFiles(pattern, opts) {
async function main() { async function main() {
try { try {
await mkdir(fileURLToPath(new URL('../public/img/svg', import.meta.url)), {recursive: true}); await mkdir(fileURLToPath(new URL('../public/assets/img/svg', import.meta.url)), {recursive: true});
} catch {} } catch {}
await Promise.all([ await Promise.all([
...processFiles('node_modules/@primer/octicons/build/svg/*-16.svg', {prefix: 'octicon'}), ...processFiles('node_modules/@primer/octicons/build/svg/*-16.svg', {prefix: 'octicon'}),
...processFiles('web_src/svg/*.svg'), ...processFiles('web_src/svg/*.svg'),
...processFiles('public/img/gitea.svg', {fullName: 'gitea-gitea'}), ...processFiles('public/assets/img/gitea.svg', {fullName: 'gitea-gitea'}),
]); ]);
} }

View File

@ -1200,11 +1200,11 @@ LEVEL = Info
;; ;;
;; All available reactions users can choose on issues/prs and comments. ;; All available reactions users can choose on issues/prs and comments.
;; Values can be emoji alias (:smile:) or a unicode emoji. ;; Values can be emoji alias (:smile:) or a unicode emoji.
;; For custom reactions, add a tightly cropped square image to public/img/emoji/reaction_name.png ;; For custom reactions, add a tightly cropped square image to public/assets/img/emoji/reaction_name.png
;REACTIONS = +1, -1, laugh, hooray, confused, heart, rocket, eyes ;REACTIONS = +1, -1, laugh, hooray, confused, heart, rocket, eyes
;; ;;
;; Additional Emojis not defined in the utf8 standard ;; Additional Emojis not defined in the utf8 standard
;; By default we support gitea (:gitea:), to add more copy them to public/img/emoji/emoji_name.png and add it to this config. ;; By default we support gitea (:gitea:), to add more copy them to public/assets/img/emoji/emoji_name.png and add it to this config.
;; Dont mistake it for Reactions. ;; Dont mistake it for Reactions.
;CUSTOM_EMOJIS = gitea, codeberg, gitlab, git, github, gogs ;CUSTOM_EMOJIS = gitea, codeberg, gitlab, git, github, gogs
;; ;;

View File

@ -47,7 +47,7 @@ for its glob syntax. Here are some examples:
- List all template files, in any virtual directory: `**.tmpl` - List all template files, in any virtual directory: `**.tmpl`
- List all mail template files: `templates/mail/**.tmpl` - List all mail template files: `templates/mail/**.tmpl`
- List all files inside `public/img`: `public/img/**` - List all files inside `public/assets/img`: `public/assets/img/**`
Don't forget to use quotes for the patterns, as spaces, `*` and other characters might have Don't forget to use quotes for the patterns, as spaces, `*` and other characters might have
a special meaning for your command shell. a special meaning for your command shell.
@ -60,8 +60,8 @@ Listing all embedded files with `openid` in their path:
```sh ```sh
$ gitea embedded list '**openid**' $ gitea embedded list '**openid**'
public/img/auth/openid_connect.svg public/assets/img/auth/openid_connect.svg
public/img/openid-16x16.png public/assets/img/openid-16x16.png
templates/user/auth/finalize_openid.tmpl templates/user/auth/finalize_openid.tmpl
templates/user/auth/signin_openid.tmpl templates/user/auth/signin_openid.tmpl
templates/user/auth/signup_openid_connect.tmpl templates/user/auth/signup_openid_connect.tmpl

View File

@ -224,9 +224,9 @@ The following configuration set `Content-Type: application/vnd.android.package-a
- `MAX_DISPLAY_FILE_SIZE`: **8388608**: Max size of files to be displayed (default is 8MiB) - `MAX_DISPLAY_FILE_SIZE`: **8388608**: Max size of files to be displayed (default is 8MiB)
- `REACTIONS`: All available reactions users can choose on issues/prs and comments - `REACTIONS`: All available reactions users can choose on issues/prs and comments
Values can be emoji alias (:smile:) or a unicode emoji. Values can be emoji alias (:smile:) or a unicode emoji.
For custom reactions, add a tightly cropped square image to public/img/emoji/reaction_name.png For custom reactions, add a tightly cropped square image to public/assets/img/emoji/reaction_name.png
- `CUSTOM_EMOJIS`: **gitea, codeberg, gitlab, git, github, gogs**: Additional Emojis not defined in the utf8 standard. - `CUSTOM_EMOJIS`: **gitea, codeberg, gitlab, git, github, gogs**: Additional Emojis not defined in the utf8 standard.
By default, we support Gitea (:gitea:), to add more copy them to public/img/emoji/emoji_name.png and By default, we support Gitea (:gitea:), to add more copy them to public/assets/img/emoji/emoji_name.png and
add it to this config. add it to this config.
- `DEFAULT_SHOW_FULL_NAME`: **false**: Whether the full name of the users should be shown where possible. If the full name isn't set, the username will be used. - `DEFAULT_SHOW_FULL_NAME`: **false**: Whether the full name of the users should be shown where possible. If the full name isn't set, the username will be used.
- `SEARCH_REPO_DESCRIPTION`: **true**: Whether to search within description at repository search on explore page. - `SEARCH_REPO_DESCRIPTION`: **true**: Whether to search within description at repository search on explore page.

View File

@ -56,21 +56,22 @@ is set under the "Configuration" tab on the site administration page.
To make Gitea serve custom public files (like pages and images), use the folder To make Gitea serve custom public files (like pages and images), use the folder
`$GITEA_CUSTOM/public/` as the webroot. Symbolic links will be followed. `$GITEA_CUSTOM/public/` as the webroot. Symbolic links will be followed.
At the moment, only files in the `public/assets/` folder are served.
For example, a file `image.png` stored in `$GITEA_CUSTOM/public/`, can be accessed with For example, a file `image.png` stored in `$GITEA_CUSTOM/public/assets/`, can be accessed with
the url `http://gitea.domain.tld/assets/image.png`. the url `http://gitea.domain.tld/assets/image.png`.
## Changing the logo ## Changing the logo
To build a custom logo and/or favicon clone the Gitea source repository, replace `assets/logo.svg` and/or `assets/favicon.svg` and run To build a custom logo and/or favicon clone the Gitea source repository, replace `assets/logo.svg` and/or `assets/favicon.svg` and run
`make generate-images`. `assets/favicon.svg` is used for the favicon only. This will update below output files which you can then place in `$GITEA_CUSTOM/public/img` on your server: `make generate-images`. `assets/favicon.svg` is used for the favicon only. This will update below output files which you can then place in `$GITEA_CUSTOM/public/assets/img` on your server:
- `public/img/logo.svg` - Used for site icon, app icon - `public/assets/img/logo.svg` - Used for site icon, app icon
- `public/img/logo.png` - Used for Open Graph - `public/assets/img/logo.png` - Used for Open Graph
- `public/img/avatar_default.png` - Used as the default avatar image - `public/assets/img/avatar_default.png` - Used as the default avatar image
- `public/img/apple-touch-icon.png` - Used on iOS devices for bookmarks - `public/assets/img/apple-touch-icon.png` - Used on iOS devices for bookmarks
- `public/img/favicon.svg` - Used for favicon - `public/assets/img/favicon.svg` - Used for favicon
- `public/img/favicon.png` - Used as fallback for browsers that don't support SVG favicons - `public/assets/img/favicon.png` - Used as fallback for browsers that don't support SVG favicons
In case the source image is not in vector format, you can attempt to convert a raster image using tools like [this](https://www.aconvert.com/image/png-to-svg/). In case the source image is not in vector format, you can attempt to convert a raster image using tools like [this](https://www.aconvert.com/image/png-to-svg/).
@ -102,7 +103,7 @@ Dont forget to restart your Gitea to apply the changes.
If all you want is to add extra links to the top navigation bar or footer, or extra tabs to the repository view, you can put them in `extra_links.tmpl` (links added to the navbar), `extra_links_footer.tmpl` (links added to the left side of footer), and `extra_tabs.tmpl` inside your `$GITEA_CUSTOM/templates/custom/` directory. If all you want is to add extra links to the top navigation bar or footer, or extra tabs to the repository view, you can put them in `extra_links.tmpl` (links added to the navbar), `extra_links_footer.tmpl` (links added to the left side of footer), and `extra_tabs.tmpl` inside your `$GITEA_CUSTOM/templates/custom/` directory.
For instance, let's say you are in Germany and must add the famously legally-required "Impressum"/about page, listing who is responsible for the site's content: For instance, let's say you are in Germany and must add the famously legally-required "Impressum"/about page, listing who is responsible for the site's content:
just place it under your "$GITEA_CUSTOM/public/" directory (for instance `$GITEA_CUSTOM/public/impressum.html`) and put a link to it in either `$GITEA_CUSTOM/templates/custom/extra_links.tmpl` or `$GITEA_CUSTOM/templates/custom/extra_links_footer.tmpl`. just place it under your "$GITEA_CUSTOM/public/assets/" directory (for instance `$GITEA_CUSTOM/public/assets/impressum.html`) and put a link to it in either `$GITEA_CUSTOM/templates/custom/extra_links.tmpl` or `$GITEA_CUSTOM/templates/custom/extra_links_footer.tmpl`.
To match the current style, the link should have the class name "item", and you can use `{{AppSubUrl}}` to get the base URL: To match the current style, the link should have the class name "item", and you can use `{{AppSubUrl}}` to get the base URL:
`<a class="item" href="{{AppSubUrl}}/assets/impressum.html">Impressum</a>` `<a class="item" href="{{AppSubUrl}}/assets/impressum.html">Impressum</a>`
@ -132,7 +133,7 @@ The data is encoded and sent to the PlantUML server which generates the picture.
demo server at http://www.plantuml.com/plantuml, but if you (or your users) have sensitive data you demo server at http://www.plantuml.com/plantuml, but if you (or your users) have sensitive data you
can set up your own [PlantUML server](https://plantuml.com/server) instead. To set up PlantUML rendering, can set up your own [PlantUML server](https://plantuml.com/server) instead. To set up PlantUML rendering,
copy JavaScript files from https://gitea.com/davidsvantesson/plantuml-code-highlight and put them in your copy JavaScript files from https://gitea.com/davidsvantesson/plantuml-code-highlight and put them in your
`$GITEA_CUSTOM/public` folder. Then add the following to `custom/footer.tmpl`: `$GITEA_CUSTOM/public/assets/` folder. Then add the following to `custom/footer.tmpl`:
```html ```html
<script> <script>
@ -204,7 +205,7 @@ You can display STL file directly in Gitea by adding:
to the file `templates/custom/footer.tmpl` to the file `templates/custom/footer.tmpl`
You also need to download the content of the library [Madeleine.js](https://github.com/beige90/Madeleine.js) and place it under `$GITEA_CUSTOM/public/` folder. You also need to download the content of the library [Madeleine.js](https://github.com/beige90/Madeleine.js) and place it under `$GITEA_CUSTOM/public/assets/` folder.
You should end-up with a folder structure similar to: You should end-up with a folder structure similar to:
@ -212,7 +213,8 @@ You should end-up with a folder structure similar to:
$GITEA_CUSTOM/templates $GITEA_CUSTOM/templates
-- custom -- custom
`-- footer.tmpl `-- footer.tmpl
$GITEA_CUSTOM/public
$GITEA_CUSTOM/public/assets/
-- Madeleine.js -- Madeleine.js
|-- LICENSE |-- LICENSE
|-- README.md |-- README.md
@ -366,7 +368,7 @@ The list of themes a user can choose from can be configured with the `THEMES` va
To make a custom theme available to all users: To make a custom theme available to all users:
1. Add a CSS file to `$GITEA_CUSTOM/public/css/theme-<theme-name>.css`. 1. Add a CSS file to `$GITEA_CUSTOM/public/assets/css/theme-<theme-name>.css`.
The value of `$GITEA_CUSTOM` of your instance can be queried by calling `gitea help` and looking up the value of "CustomPath". The value of `$GITEA_CUSTOM` of your instance can be queried by calling `gitea help` and looking up the value of "CustomPath".
2. Add `<theme-name>` to the comma-separated list of setting `THEMES` in `app.ini` 2. Add `<theme-name>` to the comma-separated list of setting `THEMES` in `app.ini`

View File

@ -191,7 +191,7 @@ And so you could write some CSS:
} }
``` ```
Add your stylesheet to your custom directory e.g `custom/public/css/my-style-XXXXX.css` and import it using a custom header file `custom/templates/custom/header.tmpl`: Add your stylesheet to your custom directory e.g `custom/public/assets/css/my-style-XXXXX.css` and import it using a custom header file `custom/templates/custom/header.tmpl`:
```html ```html
<link rel="stylesheet" href="{{AppSubUrl}}/assets/css/my-style-XXXXX.css" /> <link rel="stylesheet" href="{{AppSubUrl}}/assets/css/my-style-XXXXX.css" />

View File

@ -218,7 +218,7 @@ REPO_INDEXER_CONN_STR = http://elastic:changeme@localhost:9200
### Building and adding SVGs ### Building and adding SVGs
SVG icons are built using the `make svg` target which compiles the icon sources defined in `build/generate-svg.js` into the output directory `public/img/svg`. Custom icons can be added in the `web_src/svg` directory. SVG icons are built using the `make svg` target which compiles the icon sources defined in `build/generate-svg.js` into the output directory `public/assets/img/svg`. Custom icons can be added in the `web_src/svg` directory.
### Building the Logo ### Building the Logo

View File

@ -192,7 +192,7 @@ To add your own theme, currently the only way is to provide a complete theme (no
As an example, let's say our theme is `arc-blue` (this is a real theme, and can be found [in this issue](https://github.com/go-gitea/gitea/issues/6011)) As an example, let's say our theme is `arc-blue` (this is a real theme, and can be found [in this issue](https://github.com/go-gitea/gitea/issues/6011))
Name the `.css` file `theme-arc-blue.css` and add it to your custom folder in `custom/public/css` Name the `.css` file `theme-arc-blue.css` and add it to your custom folder in `custom/public/assets/css`
Allow users to use it by adding `arc-blue` to the list of `THEMES` in your `app.ini` Allow users to use it by adding `arc-blue` to the list of `THEMES` in your `app.ini`

2
go.mod
View File

@ -76,7 +76,7 @@ require (
github.com/mattn/go-sqlite3 v1.14.17 github.com/mattn/go-sqlite3 v1.14.17
github.com/meilisearch/meilisearch-go v0.25.0 github.com/meilisearch/meilisearch-go v0.25.0
github.com/mholt/archiver/v3 v3.5.1 github.com/mholt/archiver/v3 v3.5.1
github.com/microcosm-cc/bluemonday v1.0.24 github.com/microcosm-cc/bluemonday v1.0.25
github.com/minio/minio-go/v7 v7.0.60 github.com/minio/minio-go/v7 v7.0.60
github.com/minio/sha256-simd v1.0.1 github.com/minio/sha256-simd v1.0.1
github.com/msteinert/pam v1.1.0 github.com/msteinert/pam v1.1.0

4
go.sum
View File

@ -865,8 +865,8 @@ github.com/mholt/acmez v1.2.0 h1:1hhLxSgY5FvH5HCnGUuwbKY2VQVo8IU7rxXKSnZ7F30=
github.com/mholt/acmez v1.2.0/go.mod h1:VT9YwH1xgNX1kmYY89gY8xPJC84BFAisjo8Egigt4kE= github.com/mholt/acmez v1.2.0/go.mod h1:VT9YwH1xgNX1kmYY89gY8xPJC84BFAisjo8Egigt4kE=
github.com/mholt/archiver/v3 v3.5.1 h1:rDjOBX9JSF5BvoJGvjqK479aL70qh9DIpZCl+k7Clwo= github.com/mholt/archiver/v3 v3.5.1 h1:rDjOBX9JSF5BvoJGvjqK479aL70qh9DIpZCl+k7Clwo=
github.com/mholt/archiver/v3 v3.5.1/go.mod h1:e3dqJ7H78uzsRSEACH1joayhuSyhnonssnDhppzS1L4= github.com/mholt/archiver/v3 v3.5.1/go.mod h1:e3dqJ7H78uzsRSEACH1joayhuSyhnonssnDhppzS1L4=
github.com/microcosm-cc/bluemonday v1.0.24 h1:NGQoPtwGVcbGkKfvyYk1yRqknzBuoMiUrO6R7uFTPlw= github.com/microcosm-cc/bluemonday v1.0.25 h1:4NEwSfiJ+Wva0VxN5B8OwMicaJvD8r9tlJWm9rtloEg=
github.com/microcosm-cc/bluemonday v1.0.24/go.mod h1:ArQySAMps0790cHSkdPEJ7bGkF2VePWH773hsJNSHf8= github.com/microcosm-cc/bluemonday v1.0.25/go.mod h1:ZIOjCQp1OrzBBPIJmfX4qDYFuhU02nx4bn030ixfHLE=
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
github.com/miekg/dns v1.1.55 h1:GoQ4hpsj0nFLYe+bWiCToyrBEJXkQfOOIvFGFy0lEgo= github.com/miekg/dns v1.1.55 h1:GoQ4hpsj0nFLYe+bWiCToyrBEJXkQfOOIvFGFy0lEgo=
github.com/miekg/dns v1.1.55/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY= github.com/miekg/dns v1.1.55/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY=

View File

@ -6,6 +6,7 @@ package markup
import ( import (
"io" "io"
"net/url"
"regexp" "regexp"
"sync" "sync"
@ -79,6 +80,14 @@ func createDefaultPolicy() *bluemonday.Policy {
policy.AllowURLSchemes(setting.Markdown.CustomURLSchemes...) policy.AllowURLSchemes(setting.Markdown.CustomURLSchemes...)
} else { } else {
policy.AllowURLSchemesMatching(allowAllRegex) policy.AllowURLSchemesMatching(allowAllRegex)
// Even if every scheme is allowed, these three are blocked for security reasons
disallowScheme := func(*url.URL) bool {
return false
}
policy.AllowURLSchemeWithCustomPolicy("javascript", disallowScheme)
policy.AllowURLSchemeWithCustomPolicy("vbscript", disallowScheme)
policy.AllowURLSchemeWithCustomPolicy("data", disallowScheme)
} }
// Allow classes for anchors // Allow classes for anchors

View File

@ -54,8 +54,13 @@ func Test_Sanitizer(t *testing.T) {
`<code style="bad-color: red">Hello World</code>`, `<code>Hello World</code>`, `<code style="bad-color: red">Hello World</code>`, `<code>Hello World</code>`,
// URLs // URLs
`[my custom URL scheme](cbthunderlink://somebase64string)`, `[my custom URL scheme](cbthunderlink://somebase64string)`, `<a href="cbthunderlink://somebase64string)">my custom URL scheme</a>`, `<a href="cbthunderlink://somebase64string)" rel="nofollow">my custom URL scheme</a>`,
`[my custom URL scheme](matrix:roomid/psumPMeAfzgAeQpXMG:feneas.org?action=join)`, `[my custom URL scheme](matrix:roomid/psumPMeAfzgAeQpXMG:feneas.org?action=join)`, `<a href="matrix:roomid/psumPMeAfzgAeQpXMG:feneas.org?action=join">my custom URL scheme</a>`, `<a href="matrix:roomid/psumPMeAfzgAeQpXMG:feneas.org?action=join" rel="nofollow">my custom URL scheme</a>`,
// Disallow dangerous url schemes
`<a href="javascript:alert('xss')">bad</a>`, `bad`,
`<a href="vbscript:no">bad</a>`, `bad`,
`<a href="data:1234">bad</a>`, `bad`,
} }
for i := 0; i < len(testCases); i += 2 { for i := 0; i < len(testCases); i += 2 {

View File

@ -73,7 +73,7 @@ func setWellKnownContentType(w http.ResponseWriter, file string) {
func handleRequest(w http.ResponseWriter, req *http.Request, fs http.FileSystem, file string) bool { func handleRequest(w http.ResponseWriter, req *http.Request, fs http.FileSystem, file string) bool {
// actually, fs (http.FileSystem) is designed to be a safe interface, relative paths won't bypass its parent directory, it's also fine to do a clean here // actually, fs (http.FileSystem) is designed to be a safe interface, relative paths won't bypass its parent directory, it's also fine to do a clean here
f, err := fs.Open(util.PathJoinRelX(file)) f, err := fs.Open(util.PathJoinRelX("assets", file))
if err != nil { if err != nil {
if os.IsNotExist(err) { if os.IsNotExist(err) {
return false return false

View File

@ -74,8 +74,10 @@ func loadPackagesFrom(rootCfg ConfigProvider) (err error) {
Packages.ChunkedUploadPath = filepath.ToSlash(filepath.Join(AppDataPath, Packages.ChunkedUploadPath)) Packages.ChunkedUploadPath = filepath.ToSlash(filepath.Join(AppDataPath, Packages.ChunkedUploadPath))
} }
if err := os.MkdirAll(Packages.ChunkedUploadPath, os.ModePerm); err != nil { if HasInstallLock(rootCfg) {
return fmt.Errorf("unable to create chunked upload directory: %s (%v)", Packages.ChunkedUploadPath, err) if err := os.MkdirAll(Packages.ChunkedUploadPath, os.ModePerm); err != nil {
return fmt.Errorf("unable to create chunked upload directory: %s (%v)", Packages.ChunkedUploadPath, err)
}
} }
Packages.LimitTotalOwnerSize = mustBytes(sec, "LIMIT_TOTAL_OWNER_SIZE") Packages.LimitTotalOwnerSize = mustBytes(sec, "LIMIT_TOTAL_OWNER_SIZE")

View File

@ -26,7 +26,7 @@ type CreateFileOptions struct {
FileOptions FileOptions
// content must be base64 encoded // content must be base64 encoded
// required: true // required: true
Content string `json:"content"` ContentBase64 string `json:"content"`
} }
// Branch returns branch name // Branch returns branch name
@ -54,7 +54,7 @@ type UpdateFileOptions struct {
DeleteFileOptions DeleteFileOptions
// content must be base64 encoded // content must be base64 encoded
// required: true // required: true
Content string `json:"content"` ContentBase64 string `json:"content"`
// from_path (optional) is the path of the original file which will be moved/renamed to the path in the URL // from_path (optional) is the path of the original file which will be moved/renamed to the path in the URL
FromPath string `json:"from_path" binding:"MaxSize(500)"` FromPath string `json:"from_path" binding:"MaxSize(500)"`
} }
@ -74,7 +74,7 @@ type ChangeFileOperation struct {
// required: true // required: true
Path string `json:"path" binding:"Required;MaxSize(500)"` Path string `json:"path" binding:"Required;MaxSize(500)"`
// new or updated file content, must be base64 encoded // new or updated file content, must be base64 encoded
Content string `json:"content"` ContentBase64 string `json:"content"`
// sha is the SHA for the file that already exists, required for update or delete // sha is the SHA for the file that already exists, required for update or delete
SHA string `json:"sha"` SHA string `json:"sha"`
// old path of the file to move // old path of the file to move

View File

@ -27,7 +27,7 @@ const defaultSize = 16
// Init discovers SVGs and populates the `SVGs` variable // Init discovers SVGs and populates the `SVGs` variable
func Init() error { func Init() error {
files, err := public.AssetFS().ListFiles("img/svg") files, err := public.AssetFS().ListFiles("assets/img/svg")
if err != nil { if err != nil {
return err return err
} }
@ -38,7 +38,7 @@ func Init() error {
if path.Ext(file) != ".svg" { if path.Ext(file) != ".svg" {
continue continue
} }
bs, err := public.AssetFS().ReadFile("img/svg", file) bs, err := public.AssetFS().ReadFile("assets/img/svg", file)
if err != nil { if err != nil {
log.Error("Failed to read SVG file %s: %v", file, err) log.Error("Failed to read SVG file %s: %v", file, err)
} else { } else {

View File

@ -116,6 +116,7 @@ unknown=Inconnu
rss_feed=Flux RSS rss_feed=Flux RSS
pin=Épingler pin=Épingler
unpin=Désépingler
artifacts=Artefacts artifacts=Artefacts
@ -322,6 +323,7 @@ repos=Dépôts
users=Utilisateurs users=Utilisateurs
organizations=Organisations organizations=Organisations
search=Rechercher search=Rechercher
go_to=Atteindre
code=Code code=Code
search.type.tooltip=Type de recherche search.type.tooltip=Type de recherche
search.fuzzy=Approximative search.fuzzy=Approximative
@ -899,18 +901,18 @@ visibility.private=Privé
visibility.private_tooltip=Visible uniquement aux membres de l'organisation visibility.private_tooltip=Visible uniquement aux membres de l'organisation
[repo] [repo]
new_repo_helper=Un dépôt contient tous les fichiers du projet, y compris l'historique des révisions. Vous l'avez déjà ailleurs ? <a href="%s">Migrer le dépôt.</a> new_repo_helper=Un dépôt contient tous les fichiers d'un projet, ainsi que l'historique de leurs modifications. Vous avez déjà ça ailleurs ? <a href="%s">Migrez-le ici</a>.
owner=Propriétaire owner=Propriétaire
owner_helper=Certaines organisations peuvent ne pas apparaître dans la liste déroulante en raison d'une limite maximale du nombre de dépôts. owner_helper=Certaines organisations peuvent ne pas apparaître dans la liste déroulante en raison d'une limite maximale du nombre de dépôts.
repo_name=Nom du dépôt repo_name=Nom du dépôt
repo_name_helper=Idéalement, le nom d'un dépôt devrait être court, mémorisable et unique. repo_name_helper=Idéalement, le nom d'un dépôt devrait être court, mémorisable et unique.
repo_size=Taille du dépôt repo_size=Taille du dépôt
template=Modèle template=Modèle
template_select=Séléctionner un modèle. template_select=Répliquer un modèle
template_helper=Convertir un dépôt en modèle template_helper=Faire de ce dépôt un modèle
template_description=Les référentiels de modèles permettent aux utilisateurs de générer de nouveaux référentiels avec la même structure de répertoire, fichiers et paramètres optionnels. template_description=Les référentiels de modèles permettent aux utilisateurs de générer de nouveaux référentiels avec la même structure de répertoire, fichiers et paramètres optionnels.
visibility=Visibilité visibility=Visibilité
visibility_description=Seul le propriétaire ou les membres de l'organisation s'ils ont des droits, seront en mesure de le voir. visibility_description=Seuls le propriétaire ou les membres de l'organisation, s'ils ont des droits, seront en mesure de le voir.
visibility_helper=Rendre le dépôt privé visibility_helper=Rendre le dépôt privé
visibility_helper_forced=L'administrateur de votre serveur impose que les nouveaux dépôts soient privés. visibility_helper_forced=L'administrateur de votre serveur impose que les nouveaux dépôts soient privés.
visibility_fork_helper=(Changer ceci affectera toutes les bifurcations.) visibility_fork_helper=(Changer ceci affectera toutes les bifurcations.)
@ -928,24 +930,24 @@ download_bundle=Télécharger le BUNDLE
generate_repo=Générer un dépôt generate_repo=Générer un dépôt
generate_from=Générer depuis generate_from=Générer depuis
repo_desc=Description repo_desc=Description
repo_desc_helper=Ajoutez une courte description (facultative) repo_desc_helper=Décrire brièvement votre dépôt
repo_lang=Langue repo_lang=Langue
repo_gitignore_helper=Choisissez un modèle de fichier .gitignore. repo_gitignore_helper=Sélectionner quelques .gitignore prédéfinies
repo_gitignore_helper_desc=Choisissez les fichiers à ne pas suivre à partir d'une liste de modèles pour les langage courants. Les fichiers habituels générés par les outils de construction de chaque langage sont inclus dans le .gitignore par défaut. repo_gitignore_helper_desc=Composer une liste de fichier que git exclura de la gestion de version, adaptés à la plupart des langages de programmation. La majorité des artéfacts générés par les pipelines de déploiements sont inclus dans le .gitignore par défaut.
issue_labels=Étiquettes des tickets issue_labels=Jeu d'étiquettes pour les tickets
issue_labels_helper=Sélectionnez une étiquette de ticket. issue_labels_helper=Sélectionner un jeu d'étiquette
license=Licence license=Licence
license_helper=Sélectionner un fichier de licence. license_helper=Sélectionner une licence
license_helper_desc=Une licence indique ce que les autres peuvent ou ne peuvent pas faire avec votre code. Vous ne savez pas laquelle est la bonne pour votre projet ? Consultez <a target="_blank" rel="noopener noreferrer" href="%s">Choisir une licence.</a> license_helper_desc=Une licence réglemente ce que les autres peuvent ou ne peuvent pas faire avec votre code. Vous ne savez pas laquelle est la bonne pour votre projet ? Comment <a target="_blank" rel="noopener noreferrer" href="%s">choisir une licence</a>.
readme=LISEZMOI readme=LISEZMOI
readme_helper=Choisissez un modèle de fichier LISEZMOI. readme_helper=Choisissez un modèle de fichier LISEZMOI.
readme_helper_desc=Vous pouvez écrire ici une description complète de votre projet. readme_helper_desc=Le README est l'endroit idéal pour décrire votre projet et accueillir des contributeurs.
auto_init=Initialiser le dépôt (ajoute les fichiers .gitignore, Licence et LISEZMOI) auto_init=Initialiser le dépôt (avec un .gitignore, une Licence et un README.md)
trust_model_helper=Sélectionnez le modèle de confiance pour la vérification des signatures. Les options possibles sont : trust_model_helper=Choisissez, parmi les éléments suivants, la manière dont Gitea contrôle les signatures paraphant les révisions :
trust_model_helper_collaborator=Collaborateur: Faire confiance aux signatures des collaborateurs trust_model_helper_collaborator=Collaborateur : ne se fier qu'aux signatures correspondant à des collaborateurs du dépôt
trust_model_helper_committer=Auteur de la révision: Faire confiance aux signatures qui correspondent à celle de l'auteur de la révision trust_model_helper_committer=Auteur : ne se fier qu'aux signatures correspondant à des utilisateurs de Gitea
trust_model_helper_collaborator_committer=Collaborateur+Auteur: Faire confiance aux signatures des collaborateurs qui correspondent à l'auteur de la révision trust_model_helper_collaborator_committer=Collaborateur et Auteur : ne se fier qu'aux signatures et auteurs correspondants à des collaborateurs du dépôt
trust_model_helper_default=Valeur par défaut: Utiliser le modèle de confiance par défaut pour cette installation trust_model_helper_default=Par défaut : utiliser le niveau de confiance par défaut pour ce dépôt
create_repo=Créer un dépôt create_repo=Créer un dépôt
default_branch=Branche par défaut default_branch=Branche par défaut
default_branch_helper=La branche par défaut est la branche de base pour les demandes d'ajout et les révisions de code. default_branch_helper=La branche par défaut est la branche de base pour les demandes d'ajout et les révisions de code.
@ -1024,6 +1026,7 @@ form.name_pattern_not_allowed=Le motif "%s" n'est pas autorisé dans un nom de d
need_auth=Autorisation need_auth=Autorisation
migrate_options=Options de migration migrate_options=Options de migration
migrate_service=Service de migration migrate_service=Service de migration
migrate_options_mirror_helper=Rendre ce dépôt mirroir
migrate_options_lfs=Migrer les fichiers LFS migrate_options_lfs=Migrer les fichiers LFS
migrate_options_lfs_endpoint.label=Point d'accès LFS migrate_options_lfs_endpoint.label=Point d'accès LFS
migrate_options_lfs_endpoint.description.local=Un chemin de serveur local est également pris en charge. migrate_options_lfs_endpoint.description.local=Un chemin de serveur local est également pris en charge.
@ -1098,8 +1101,8 @@ code.desc=Accéder au code source, fichiers, révisions et branches.
branch=Branche branch=Branche
tree=Aborescence tree=Aborescence
clear_ref=`Effacer la référence actuelle` clear_ref=`Effacer la référence actuelle`
filter_branch_and_tag=Filtrer une branche ou un tag filter_branch_and_tag=Filtrer une branche ou une étiquette
find_tag=Rechercher un tag find_tag=Rechercher une étiquette
branches=Branches branches=Branches
tags=Étiquettes tags=Étiquettes
issues=Tickets issues=Tickets
@ -1116,7 +1119,7 @@ commits=Révisions
commit=Commit commit=Commit
release=Versions release=Versions
releases=Versions releases=Versions
tag=Tag tag=Étiquette
released_this=a publié ceci released_this=a publié ceci
tagged_this=a étiqueté tagged_this=a étiqueté
file.title=%s sur %s file.title=%s sur %s
@ -1139,7 +1142,7 @@ escape_control_characters=Échapper
unescape_control_characters=Annuler l'échappement unescape_control_characters=Annuler l'échappement
file_copy_permalink=Copier le lien permanent file_copy_permalink=Copier le lien permanent
view_git_blame=Voir Git Blâme view_git_blame=Voir Git Blâme
video_not_supported_in_browser=Votre navigateur ne supporte pas le tag HTML5 "video". video_not_supported_in_browser=Votre navigateur ne supporte pas la balise « vidéo » HTML5.
audio_not_supported_in_browser=Votre navigateur ne supporte pas la balise « audio » HTML5. audio_not_supported_in_browser=Votre navigateur ne supporte pas la balise « audio » HTML5.
stored_lfs=Stocké avec Git LFS stored_lfs=Stocké avec Git LFS
symbolic_link=Lien symbolique symbolic_link=Lien symbolique
@ -1232,8 +1235,8 @@ commits.date=Date
commits.older=Précédemment commits.older=Précédemment
commits.newer=Récemment commits.newer=Récemment
commits.signed_by=Signé par commits.signed_by=Signé par
commits.signed_by_untrusted_user=Signé par un utilisateur non approuvé commits.signed_by_untrusted_user=Signé par l'utilisateur non fiable
commits.signed_by_untrusted_user_unmatched=Signé par un utilisateur non fiable qui ne correspond pas au validateur commits.signed_by_untrusted_user_unmatched=Signé par un utilisateur non fiable qui ne correspond pas à un auteur connu
commits.gpg_key_id=ID de la clé GPG commits.gpg_key_id=ID de la clé GPG
commits.ssh_key_fingerprint=Empreinte numérique de la clé SSH commits.ssh_key_fingerprint=Empreinte numérique de la clé SSH
@ -1974,18 +1977,18 @@ settings.transfer_perform=Effectuer le transfert
settings.transfer_started=`Ce dépôt a été marqué pour le transfert et attend la confirmation de "%s"` settings.transfer_started=`Ce dépôt a été marqué pour le transfert et attend la confirmation de "%s"`
settings.transfer_succeed=Le dépôt a été transféré. settings.transfer_succeed=Le dépôt a été transféré.
settings.signing_settings=Paramètres de vérification de la signature settings.signing_settings=Paramètres de vérification de la signature
settings.trust_model=Modèle de confiance de la signature settings.trust_model=Niveau de confiance
settings.trust_model.default=Modèle de confiance par défaut settings.trust_model.default=Par défaut
settings.trust_model.default.desc=Utiliser le modèle de confiance par défaut pour cette installation. settings.trust_model.default.desc=Utiliser le niveau de confiance par défaut pour ce dépôt.
settings.trust_model.collaborator=Collaborateur settings.trust_model.collaborator=Collaborateur
settings.trust_model.collaborator.long=Collaborateur: Signatures de confiance de collaborateurs settings.trust_model.collaborator.long=Collaborateur : ne se fier qu'aux signatures correspondant à des collaborateurs
settings.trust_model.collaborator.desc=Les signatures des collaborateurs du dépôt seront « digne de confiance » (qu'ils soient les auteurs des révisions ou non). Celles des contributeurs connus seront « non fiable », et les autres signatures seront « sans correspondance ». settings.trust_model.collaborator.desc=La signature d'une révision doit correspondre à celle d'un collaborateur du dépôt pour être « fiable » (indépendamment de l'auteur de la révision). Si elle correspond à un autre utilisateur de Gitea, elle sera « non fiable », et sinon sera « non reconnue ».
settings.trust_model.committer=Committer settings.trust_model.committer=Auteur
settings.trust_model.committer.long=Committer: Signatures de confiance qui correspondent aux committers (Cela correspond à GitHub et obligera Gitea à avoir Gitea comme committer) settings.trust_model.committer.long=Auteur : ne se fier qu'aux signatures correspondant à des utilisateurs de Gitea (imite GitHub en forçant Gitea cosigner ses propres révisions)
settings.trust_model.committer.desc=Les signatures ne seront « digne de confiance » que si elles correspondent à un auteur approuvé, sans quoi elles seront « sans correspondance ». Cela force Gitea à être le signataire des révisions, l'auteur étant crédité Co-authored-by: et Co-committed-by: en pied de révision. La clé par défaut de Gitea doit correspondre à un utilisateur dans la base de données. settings.trust_model.committer.desc=La signature d'une révision doit correspondre à celle d'un utilisateur de Gitea pour être « fiable », autrement elle est « non-reconnue ». Pour les révisions déléguées à Gitea, elles seront signées par Gitea et l'utilisateur sera crédité "Co-authored-by:" et "Co-committed-by:" en pied de révision. Pour cela, la clé par défaut de Gitea doit correspondre à un utilisateur dans la base de données.
settings.trust_model.collaboratorcommitter=Collaborateur+Committer settings.trust_model.collaboratorcommitter=Collaborateur et Auteur
settings.trust_model.collaboratorcommitter.long=Collaborateur+Committer: Faire confiance aux signatures des collaborateurs qui correspondent à l'auteur settings.trust_model.collaboratorcommitter.long=Collaborateur et Auteur : ne se fier qu'aux signatures des auteurs identifiés comme collaborateurs
settings.trust_model.collaboratorcommitter.desc=Les signatures des collaborateurs du dépôt seront « digne de confiance » s'ils sont les auteurs des révisions. Celles des contributeurs connus seront « non fiable », et les autres signatures seront « sans correspondance ». Cela force Gitea à être le signataire des révisions, l'auteur étant crédité Co-authored-by: et Co-committed-by: en pied de révision. La clé par défaut de Gitea doit correspondre à un utilisateur dans la base de données. settings.trust_model.collaboratorcommitter.desc=La signature et l'auteur d'une révision doivent correspondre strictement à un collaborateur du dépôt pour être « fiable ». S'ils correspondent à un autre utilisateur de Gitea, elle sera « non-fiable », et sinon « non-reconnue ». Pour les révisions déléguées à Gitea, elles seront signées par Gitea et l'utilisateur sera crédité "Co-authored-by:" et "Co-committed-by:" en pied de révision. Pour cela, la clé par défaut de Gitea doit correspondre à un utilisateur dans la base de données.
settings.wiki_delete=Supprimer les données du Wiki settings.wiki_delete=Supprimer les données du Wiki
settings.wiki_delete_desc=Supprimer les données du wiki d'un dépôt est permanent. Cette action est irréversible. settings.wiki_delete_desc=Supprimer les données du wiki d'un dépôt est permanent. Cette action est irréversible.
settings.wiki_delete_notices_1=- Ceci supprimera de manière permanente et désactivera le wiki de dépôt pour %s. settings.wiki_delete_notices_1=- Ceci supprimera de manière permanente et désactivera le wiki de dépôt pour %s.
@ -1998,10 +2001,12 @@ settings.delete_notices_2=- Cette opération supprimera définitivement le dép
settings.delete_notices_fork_1=- Les bifurcations de ce dépôt deviendront indépendants après suppression. settings.delete_notices_fork_1=- Les bifurcations de ce dépôt deviendront indépendants après suppression.
settings.deletion_success=Le dépôt a été supprimé. settings.deletion_success=Le dépôt a été supprimé.
settings.update_settings_success=Les options du dépôt ont été mises à jour. settings.update_settings_success=Les options du dépôt ont été mises à jour.
settings.update_settings_no_unit=Impossible de désactiver toutes les fonctionnalités d'un dépôt. Vous ne pourrez gère l'utiliser.
settings.confirm_delete=Supprimer le dépôt settings.confirm_delete=Supprimer le dépôt
settings.add_collaborator=Ajouter un collaborateur settings.add_collaborator=Ajouter un collaborateur
settings.add_collaborator_success=Le collaborateur a été ajouté. settings.add_collaborator_success=Le collaborateur a été ajouté.
settings.add_collaborator_inactive_user=Impossible d'ajouter un utilisateur inactif en tant que collaborateur. settings.add_collaborator_inactive_user=Impossible d'ajouter un utilisateur inactif en tant que collaborateur.
settings.add_collaborator_owner=Impossible d'ajouter un propriétaire en tant que collaborateur.
settings.add_collaborator_duplicate=Le collaborateur est déjà ajouté à ce dépôt. settings.add_collaborator_duplicate=Le collaborateur est déjà ajouté à ce dépôt.
settings.delete_collaborator=Supprimer settings.delete_collaborator=Supprimer
settings.collaborator_deletion=Supprimer le collaborateur settings.collaborator_deletion=Supprimer le collaborateur
@ -2033,6 +2038,7 @@ settings.webhook.headers=Entêtes
settings.webhook.payload=Contenu settings.webhook.payload=Contenu
settings.webhook.body=Corps settings.webhook.body=Corps
settings.webhook.replay.description=Rejouer ce déclencheur. settings.webhook.replay.description=Rejouer ce déclencheur.
settings.githooks_desc=Les déclencheurs Git sont lancés par Git lui-même. Ils sont modifiables dans la liste ci-dessous afin de configurer des opérations personnalisées.
settings.githook_edit_desc=Si un Hook est inactif, un exemple de contenu vous sera proposé. Un contenu laissé vide signifie un Hook inactif. settings.githook_edit_desc=Si un Hook est inactif, un exemple de contenu vous sera proposé. Un contenu laissé vide signifie un Hook inactif.
settings.githook_name=Nom du Hook settings.githook_name=Nom du Hook
settings.githook_content=Contenu du Hook settings.githook_content=Contenu du Hook
@ -2059,6 +2065,7 @@ settings.event_delete_desc=Branche ou étiquette supprimée.
settings.event_fork=Bifurcation settings.event_fork=Bifurcation
settings.event_fork_desc=Dépôt bifurqué. settings.event_fork_desc=Dépôt bifurqué.
settings.event_wiki=Wiki settings.event_wiki=Wiki
settings.event_wiki_desc=Page wiki créée, renommée, modifiée ou supprimée.
settings.event_release=Version settings.event_release=Version
settings.event_release_desc=Version publiée, mise à jour ou supprimée dans un dépôt. settings.event_release_desc=Version publiée, mise à jour ou supprimée dans un dépôt.
settings.event_push=Poussée settings.event_push=Poussée
@ -2170,6 +2177,7 @@ settings.protect_merge_whitelist_teams=Équipes en liste blanche de fusion :
settings.protect_check_status_contexts=Activer le Contrôle Qualité settings.protect_check_status_contexts=Activer le Contrôle Qualité
settings.protect_check_status_contexts_desc=Exiger le status « succès » avant de fusionner. Quand activée, une branche protégée ne peux accepter que des soumissions ou des fusions ayant le status « succès ». Lorsqu'il n'y a pas de contexte, la dernière révision fait foi. settings.protect_check_status_contexts_desc=Exiger le status « succès » avant de fusionner. Quand activée, une branche protégée ne peux accepter que des soumissions ou des fusions ayant le status « succès ». Lorsqu'il n'y a pas de contexte, la dernière révision fait foi.
settings.protect_check_status_contexts_list=Contrôles qualité trouvés au cours de la semaine dernière pour ce dépôt settings.protect_check_status_contexts_list=Contrôles qualité trouvés au cours de la semaine dernière pour ce dépôt
settings.protect_status_check_matched=Correspondant
settings.protect_required_approvals=Agréments nécessaires : settings.protect_required_approvals=Agréments nécessaires :
settings.protect_required_approvals_desc=Permettre uniquement de fusionner les demandes d'ajout avec suffisamment de commentaires positifs. settings.protect_required_approvals_desc=Permettre uniquement de fusionner les demandes d'ajout avec suffisamment de commentaires positifs.
settings.protect_approvals_whitelist_enabled=Restreindre les approbations aux utilisateurs ou aux équipes en liste blanche settings.protect_approvals_whitelist_enabled=Restreindre les approbations aux utilisateurs ou aux équipes en liste blanche
@ -2328,7 +2336,7 @@ diff.hide_file_tree=Masquer larborescence des fichiers
releases.desc=Suivi des versions et des téléchargements. releases.desc=Suivi des versions et des téléchargements.
release.releases=Versions release.releases=Versions
release.detail=Détails de la version release.detail=Détails de la version
release.tags=Tags release.tags=Étiquettes
release.new_release=Nouvelle version release.new_release=Nouvelle version
release.draft=Brouillon release.draft=Brouillon
release.prerelease=Pré-publication release.prerelease=Pré-publication
@ -2341,12 +2349,14 @@ tag.ahead.target=à %s depuis cette étiquette
release.source_code=Code source release.source_code=Code source
release.new_subheader=Les versions organisent les versions publiées du projet. release.new_subheader=Les versions organisent les versions publiées du projet.
release.edit_subheader=Les versions organisent les versions publiées du projet. release.edit_subheader=Les versions organisent les versions publiées du projet.
release.tag_name=Nom du tag release.tag_name=Nom de l'étiquette
release.target=Cible release.target=Cible
release.tag_helper=Choisissez une étiquette existante ou créez une nouvelle étiquette. release.tag_helper=Choisissez une étiquette existante ou créez une nouvelle étiquette.
release.tag_helper_new=Nouvelle étiquette. Cette étiquette sera créée à partir de la cible. release.tag_helper_new=Nouvelle étiquette. Cette étiquette sera créée à partir de la cible.
release.tag_helper_existing=Étiquette existante. release.tag_helper_existing=Étiquette existante.
release.title=Titre de la version
release.title_empty=Le titre ne peut pas être vide. release.title_empty=Le titre ne peut pas être vide.
release.message=Décrire cette version
release.prerelease_desc=Marquer comme pré-version release.prerelease_desc=Marquer comme pré-version
release.prerelease_helper=Marquer cette version comme impropre à la production. release.prerelease_helper=Marquer cette version comme impropre à la production.
release.cancel=Annuler release.cancel=Annuler
@ -2367,7 +2377,7 @@ release.tag_already_exist=Ce nom d'étiquette existe déjà.
release.downloads=Téléchargements release.downloads=Téléchargements
release.download_count=Télécharger: %s release.download_count=Télécharger: %s
release.add_tag_msg=Utiliser le titre et le contenu de la version comme message d'étiquette. release.add_tag_msg=Utiliser le titre et le contenu de la version comme message d'étiquette.
release.add_tag=Créer uniquement une Balise release.add_tag=Créer uniquement l'étiquette
release.releases_for=Versions pour %s release.releases_for=Versions pour %s
release.tags_for=Étiquettes pour %s release.tags_for=Étiquettes pour %s

View File

@ -27,7 +27,7 @@ return_to_gitea=Atgriezties Gitea
username=Lietotājvārds username=Lietotājvārds
email=E-pasta adrese email=E-pasta adrese
password=Parole password=Parole
access_token=Piekļuves talons access_token=Piekļuves pilnvara
re_type=Atkārtoti ievadiet paroli re_type=Atkārtoti ievadiet paroli
captcha=Cilvēktests captcha=Cilvēktests
twofa=Divfaktoru autentifikācija twofa=Divfaktoru autentifikācija
@ -164,8 +164,8 @@ string.desc=Z - A
[error] [error]
occurred=Radusies kļūda occurred=Radusies kļūda
report_message=Ja esat pārliecināts, ka šī ir Gitea kļūda, pārbaudiet, ka tā jau nav zināma meklējot <a href="https://github.com/go-gitea/gitea/issues" target="_blank">GitHub</a> vai ziņojiet par jaunu kļūdu, ja nepieciešams. report_message=Ja esat pārliecināts, ka šī ir Gitea kļūda, pārbaudiet, ka tā jau nav zināma meklējot <a href="https://github.com/go-gitea/gitea/issues" target="_blank">GitHub</a> vai ziņojiet par jaunu kļūdu, ja nepieciešams.
missing_csrf=Kļūdains pieprasījums: netika saņemts drošības talons missing_csrf=Kļūdains pieprasījums: netika iesūtīta drošības pilnvara
invalid_csrf=Kļūdains pieprasījums: iesūtīts kļūdains drošības talons invalid_csrf=Kļūdains pieprasījums: iesūtīta kļūdaina drošības pilnvara
not_found=Pieprasītie dati netika atrasti. not_found=Pieprasītie dati netika atrasti.
network_error=Tīkla kļūda network_error=Tīkla kļūda
@ -188,27 +188,27 @@ require_db_desc=Gitea nepieciešams MySQL, PostgreSQL, MSSQL, SQLite3 vai TiDB (
db_title=Datu bāzes iestatījumi db_title=Datu bāzes iestatījumi
db_type=Datu bāzes veids db_type=Datu bāzes veids
host=Resursdators host=Resursdators
user=Lietotāja vārds user=Lietotājvārds
password=Parole password=Parole
db_name=Datu bāzes nosaukums db_name=Datu bāzes nosaukums
db_helper=Piezīme MySQL lietotājiem: izmantojiet InnoDB glabāšanas programmu, un ja izmantojat "utf8mb4", tad InnoDB versijai ir jābūt lielākai par 5.6. db_helper=Piezīme MySQL lietotājiem: izmantojiet InnoDB glabāšanas programmu, un ja izmantojat "utf8mb4", tad InnoDB versijai ir jābūt lielākai par 5.6.
db_schema=Shēma db_schema=Shēma
db_schema_helper=Atstājiet tukšu, lai izmantu datu bāzes noklusēto ("public"). db_schema_helper=Atstājiet tukšu, lai izmantu datubāzes noklusēto ("public").
ssl_mode=SSL ssl_mode=SSL
charset=Rakstzīmju kopa charset=Rakstzīmju kopa
path=Ceļš path=Ceļš
sqlite_helper=Faila ceļš SQLite3 datu bāzei.<br>Ievadiet absolūto ceļu, ja Gitea tiek startēts kā serviss. sqlite_helper=Faila ceļš SQLite3 datubāzei.<br>Ievadiet absolūto ceļu, ja Gitea tiek startēts kā serviss.
reinstall_error=Nevar instalēt datubāzē, kura jau satur Gitea datus reinstall_error=Nevar instalēt datubāzē, kura jau satur Gitea datus
reinstall_confirm_message=Veicot Gitea datubāzēs atkārtotu instalēšanu, tas var izraisīt vairākas problēmas. Būtu jāizmanto esošais "app.ini", lai palaistu Gitea. Apstipriniet, ja patiešām vēlaties to darīt: reinstall_confirm_message=Veicot Gitea datubāzēs atkārtotu instalēšanu, tas var izraisīt vairākas problēmas. Būtu jāizmanto esošais "app.ini", lai palaistu Gitea. Apstipriniet, ja patiešām vēlaties to darīt:
reinstall_confirm_check_1=Dati, kas šifrēti ar SECRET_KEY atslēgu app.ini failā, var tikt pazaudēti: lietotaji nevārēs autorizēties ar divfaktoru autorizāciju, kā arī spoguļi var pārstāt darboties. Atzīmējot šo pazīmi, apstipriniet, ka pašreizējais app.ini fails satur korektu SECRET_KEY vērtību. reinstall_confirm_check_1=Dati, kas šifrēti ar SECRET_KEY atslēgu, kas ir norādīta app.ini failā, var tikt pazaudēti: lietotaji nevārēs autorizēties ar divfaktoru autorizāciju, kā arī spoguļi var pārstāt darboties. Atzīmējot šo pazīmi, apstipriniet, ka pašreizējais app.ini fails satur korektu SECRET_KEY vērtību.
reinstall_confirm_check_2=Repozitorijus un iestatījumus iespējams nepieciešams pārsinhronizēt. Atzīmējot, apstipriniet, ka vēlaties pārsinhronizēt repozitorija āķus un authorized_keys failu. Pārliecinieties, ka repozitorija un spoguļošanas iestatījumi ir pareizi. reinstall_confirm_check_2=Repozitorijus un iestatījumus iespējams nepieciešams pārsinhronizēt. Atzīmējot, apstipriniet, ka vēlaties pārsinhronizēt repozitorija āķus un authorized_keys failu. Pārliecinieties, ka repozitorija un spoguļošanas iestatījumi ir pareizi.
reinstall_confirm_check_3=Apstiprinat, ka esat pārliecināts, ka Gitea izmanto pareizu app.ini faila atrašanās vietu un patiešām vēlaties veikt atkārtotu instalāciju, tāpat apstiprinat, ka tas var radīt augstāk minētās problēmas. reinstall_confirm_check_3=Apstiprinat, ka esat pārliecināts, ka Gitea izmanto pareizu app.ini faila atrašanās vietu un patiešām vēlaties veikt atkārtotu instalāciju, tāpat apstiprinat, ka tas var radīt augstāk minētās problēmas.
err_empty_db_path=Nav norādīts SQLite3 datu bāzes ceļš. err_empty_db_path=Nav norādīts SQLite3 datu bāzes ceļš.
no_admin_and_disable_registration=Reģistrāciju nevar atslēgt, kamēr nav izveidots administratora konts. no_admin_and_disable_registration=Reģistrāciju nevar atslēgt, kamēr nav izveidots administratora konts.
err_empty_admin_password=Administratora kontam ir obligāti jānorāda parole. err_empty_admin_password=Administratora kontam ir obligāti jānorāda parole.
err_empty_admin_email=Administratora e-pasta adrese nevar būt tukša. err_empty_admin_email=Administratora e-pasta adrese nevar būt tukša.
err_admin_name_is_reserved=Administratora lietotāja vārds nav korekts, šāds lietotāja vārds ir rezervēts err_admin_name_is_reserved=Administratora lietotājvārds nav korekts, šāds lietotājvārds ir rezervēts
err_admin_name_pattern_not_allowed=Administratora lietotāja vārds nav korekts, šāds lietotāja vārds ir rezervēts err_admin_name_pattern_not_allowed=Administratora lietotājvārds nav korekts, šāds lietotājvārds nav atļauts
err_admin_name_is_invalid=Administratora lietotāja nav korekts err_admin_name_is_invalid=Administratora lietotāja nav korekts
general_title=Vispārīgie iestatījumi general_title=Vispārīgie iestatījumi
@ -237,7 +237,7 @@ smtp_addr=SMTP resursdators
smtp_port=SMTP ports smtp_port=SMTP ports
smtp_from=Nosūtīt e-pastu kā smtp_from=Nosūtīt e-pastu kā
smtp_from_helper=E-pasta adrese, ko Gitea izmantos. Ievadiet tika e-pasta adrese vai izmantojiet "Vārds" <epasts@domens.lv> formātu. smtp_from_helper=E-pasta adrese, ko Gitea izmantos. Ievadiet tika e-pasta adrese vai izmantojiet "Vārds" <epasts@domens.lv> formātu.
mailer_user=SMTP lietotāja vārds mailer_user=SMTP lietotājvārds
mailer_password=SMTP parole mailer_password=SMTP parole
register_confirm=Reģistrējoties pieprasīt apstiprināt e-pastu register_confirm=Reģistrējoties pieprasīt apstiprināt e-pastu
mail_notify=Iespējot e-pasta paziņojumus mail_notify=Iespējot e-pasta paziņojumus
@ -245,9 +245,9 @@ server_service_title=Servera un citu servisu iestatījumi
offline_mode=Iespējot bezsaistes režīmu offline_mode=Iespējot bezsaistes režīmu
offline_mode_popup=Atspējot ārējos satura piegādes tīklus, lai visi resursi tiktu piegādāti lokāli. offline_mode_popup=Atspējot ārējos satura piegādes tīklus, lai visi resursi tiktu piegādāti lokāli.
disable_gravatar=Atspējot Gravatar disable_gravatar=Atspējot Gravatar
disable_gravatar_popup=Atspējot Gravatar un citus avotus, visus avatarus augšupielādēts lietotāji vai izmantos noklusēto attēlu. disable_gravatar_popup=Atspējot Gravatar un citus avotus, visus avatarus augšupielādēs lietotāji vai izmantos noklusēto attēlu.
federated_avatar_lookup=Iespējot apvienotās profila bildes federated_avatar_lookup=Iespējot apvienotās profila bildes
federated_avatar_lookup_popup=Iespējot apvienoto profila bilžu meklētāju, lai izmantotu atvērtā koda apvienoto servisu balstītu uz libravatar. federated_avatar_lookup_popup=Iespējot apvienoto profila bilžu meklētāju, lai izmantotu atvērtā koda apvienoto servisu balstītu uz Libravatar.
disable_registration=Atspējot lietotāju reģistrāciju disable_registration=Atspējot lietotāju reģistrāciju
disable_registration_popup=Atspējot iespēju reģistrēties. Tikai administratori varēs izveidot jaunus kontus. disable_registration_popup=Atspējot iespēju reģistrēties. Tikai administratori varēs izveidot jaunus kontus.
allow_only_external_registration_popup=Atļaut reģistrēties tikai ar ārējiem servisiem allow_only_external_registration_popup=Atļaut reģistrēties tikai ar ārējiem servisiem
@ -261,7 +261,7 @@ require_sign_in_view=Iespējot nepieciešamību autorizēties, lai aplūkotu lap
require_sign_in_view_popup=Tikai autorizēti lietotāji var aplūkot lapas. Apmeklētāji redzēs tikai autorizācijas un reģistrācijas lapu. require_sign_in_view_popup=Tikai autorizēti lietotāji var aplūkot lapas. Apmeklētāji redzēs tikai autorizācijas un reģistrācijas lapu.
admin_setting_desc=Nav nepieciešams izveidot administratora kontu uzreiz, pirmais reģistrētais lietotājs saņems administratora tiesības automātiski. admin_setting_desc=Nav nepieciešams izveidot administratora kontu uzreiz, pirmais reģistrētais lietotājs saņems administratora tiesības automātiski.
admin_title=Administratora konta iestatījumi admin_title=Administratora konta iestatījumi
admin_name=Administratora lietotāja vārds admin_name=Administratora lietotājvārds
admin_password=Parole admin_password=Parole
confirm_password=Apstipriniet paroli confirm_password=Apstipriniet paroli
admin_email=E-pasta adrese admin_email=E-pasta adrese
@ -273,7 +273,7 @@ invalid_db_table=Datubāzes tabula "%s" ir kļūdaina: %v
invalid_repo_path=Nederīga repozitorija glabāšanas vieta: %v invalid_repo_path=Nederīga repozitorija glabāšanas vieta: %v
invalid_app_data_path=Lietojumprogrammas datu ceļš ir kļūdains: %v invalid_app_data_path=Lietojumprogrammas datu ceļš ir kļūdains: %v
run_user_not_match=Izpildes lietotājs nav pašreizējais lietotājs: %s -> %s run_user_not_match=Izpildes lietotājs nav pašreizējais lietotājs: %s -> %s
internal_token_failed=Neizdevās uzģenerēt iekšējās saziņas talonu: %v internal_token_failed=Neizdevās uzģenerēt iekšējās saziņas pilnvaru: %v
secret_key_failed=Neizdevās uzģenerēt drošības atslēgu: %v secret_key_failed=Neizdevās uzģenerēt drošības atslēgu: %v
save_config_failed=Neizdevās saglabāt konfigurāciju: %v save_config_failed=Neizdevās saglabāt konfigurāciju: %v
invalid_admin_setting=Nederīgs administratora iestatījums: %v invalid_admin_setting=Nederīgs administratora iestatījums: %v
@ -528,7 +528,7 @@ lang_select_error=Izvēlieties valodu no saraksta.
username_been_taken=Lietotājvārds jau ir aizņemts. username_been_taken=Lietotājvārds jau ir aizņemts.
username_change_not_local_user=Ne-lokālie lietotāji nevar mainīt savus lietotājvārdus. username_change_not_local_user=Ne-lokālie lietotāji nevar mainīt savus lietotājvārdus.
username_has_not_been_changed=Lietotāja vārds netika mainīts username_has_not_been_changed=Lietotājvārds netika mainīts
repo_name_been_taken=Jau eksistē repozitorijs ar šādu nosaukumu. repo_name_been_taken=Jau eksistē repozitorijs ar šādu nosaukumu.
repository_force_private=Ir ieslēgts piespiedu privātais režīms: repozitorijus nav iespējams padarīt publiskus. repository_force_private=Ir ieslēgts piespiedu privātais režīms: repozitorijus nav iespējams padarīt publiskus.
repository_files_already_exist=Šī repozitorija faili jau eksistē, sazinieties ar sistēmas administratoru. repository_files_already_exist=Šī repozitorija faili jau eksistē, sazinieties ar sistēmas administratoru.
@ -621,7 +621,7 @@ webauthn=Drošības atslēgas
public_profile=Publiskais profils public_profile=Publiskais profils
biography_placeholder=Pastāstiet nedaudz par sevi biography_placeholder=Pastāstiet nedaudz par sevi
profile_desc=Konta e-pasta adrese ir publiska un tiks izmantota visiem ar kontu saistītiem paziņojumiem un no pārlūka veiktajām darbībām. profile_desc=Konta e-pasta adrese ir publiska un tiks izmantota visiem ar kontu saistītiem paziņojumiem un no pārlūka veiktajām darbībām.
password_username_disabled=Ārējiem lietotājiem nav atļauts mainīt savu lietotāja vārdu. Sazinieties ar sistēmas administratoru, lai uzzinātu sīkāk. password_username_disabled=Ne-lokāliem lietotājiem nav atļauts mainīt savu lietotāja vārdu. Sazinieties ar sistēmas administratoru, lai uzzinātu sīkāk.
full_name=Pilns vārds full_name=Pilns vārds
website=Mājas lapa website=Mājas lapa
location=Atrašanās vieta location=Atrašanās vieta
@ -632,8 +632,8 @@ update_language_not_found=Valoda "%s" nav pieejama.
update_language_success=Valoda tika nomainīta. update_language_success=Valoda tika nomainīta.
update_profile_success=Jūsu profila informācija tika saglabāta. update_profile_success=Jūsu profila informācija tika saglabāta.
change_username=Lietotājvārds mainīts. change_username=Lietotājvārds mainīts.
change_username_prompt=Piezīme: Šī darbība izmainīs norādes uz šo kontu. change_username_prompt=Piezīme: lietotājvārda izmaiņas mainīs arī norādes uz šo kontu.
change_username_redirect_prompt=Vecais lietotāja vārds pārsūtīs kamēr vien tas nebūs izmantots. change_username_redirect_prompt=Vecais lietotājvārds pārsūtīs kamēr vien tas nebūs izmantots.
continue=Turpināt continue=Turpināt
cancel=Atcelt cancel=Atcelt
language=Valoda language=Valoda
@ -731,28 +731,28 @@ ssh_key_been_used=Šī SSH atslēga jau ir pievienota šajā serverī.
ssh_key_name_used=SSH atslēga ar šādu nosaukumu šim kontam jau eksistē. ssh_key_name_used=SSH atslēga ar šādu nosaukumu šim kontam jau eksistē.
ssh_principal_been_used=Šāda identitāte jau ir pievienota šājā serverī. ssh_principal_been_used=Šāda identitāte jau ir pievienota šājā serverī.
gpg_key_id_used=Publiskā GPG atslēga ar šādu ID jau eksistē. gpg_key_id_used=Publiskā GPG atslēga ar šādu ID jau eksistē.
gpg_no_key_email_found=GPG atslēga neatbilst nevienai Jūsu konta aktivizētajai e-pasta adresei. Šo atslēgu ir iespējams pievienot, veicot, talona parakstīšanu. gpg_no_key_email_found=GPG atslēga neatbilst nevienai Jūsu konta aktivizētajai e-pasta adresei. Šo atslēgu ir iespējams pievienot, veicot, pilnvaras parakstīšanu.
gpg_key_matched_identities=Atbilstošās identitātes: gpg_key_matched_identities=Atbilstošās identitātes:
gpg_key_matched_identities_long=Iegultās identitātes šājā atslēgā atbilst sekojošām aktivizētām e-pasta adresēm šim lietotajam. Revīzijas ar atbilstošām e-pasta adresēm var tik pārbaudītas ar šo atslēgu. gpg_key_matched_identities_long=Iegultās identitātes šājā atslēgā atbilst sekojošām aktivizētām e-pasta adresēm šim lietotajam. Revīzijas ar atbilstošām e-pasta adresēm var tik pārbaudītas ar šo atslēgu.
gpg_key_verified=Pārbaudītā atslēga gpg_key_verified=Pārbaudītā atslēga
gpg_key_verified_long=Atslēga tika pārbaudīta ar talonu un var tikt izmantota, lai pārbaudītu revīzijas, kas atbilst jebkurai aktivizētai e-pasta adresei šim lietotājam papildus šīs atslēgas atbilstošajām identitātēm. gpg_key_verified_long=Atslēga tika apliecināta ar pilnvaru un var tikt izmantota, lai pārbaudītu revīzijas, kas atbilst jebkurai apstiprinātai e-pasta adresei šim lietotājam papildus šīs atslēgas atbilstošajām identitātēm.
gpg_key_verify=Pārbaudīt gpg_key_verify=Pārbaudīt
gpg_invalid_token_signature=Norādītā GPG atslēga, paraksts un talons neatbilst vai talonam ir beidzies derīguma termiņš. gpg_invalid_token_signature=Norādītā GPG atslēga, paraksts un pilnvara neatbilst vai tai ir beidzies derīguma termiņš.
gpg_token_required=Jānorāda paraksts zemāk esošajam talonam gpg_token_required=Jānorāda paraksts zemāk esošajai pilnvarai
gpg_token=Talons gpg_token=Pilnvara
gpg_token_help=Parakstu ir iespējams uzģenerēt izmantojot komandu: gpg_token_help=Parakstu ir iespējams uzģenerēt izmantojot komandu:
gpg_token_code=echo "%s" | gpg -a --default-key %s --detach-sig gpg_token_code=echo "%s" | gpg -a --default-key %s --detach-sig
gpg_token_signature=Tekstuāls GPG paraksts gpg_token_signature=Tekstuāls GPG paraksts
key_signature_gpg_placeholder=Sākas ar '-----BEGIN PGP SIGNATURE-----' key_signature_gpg_placeholder=Sākas ar '-----BEGIN PGP SIGNATURE-----'
verify_gpg_key_success=GPG atslēga "%s" veiksmīgi pārbaudīta. verify_gpg_key_success=GPG atslēga "%s" veiksmīgi pārbaudīta.
ssh_key_verified=Pārbaudīta atslēga ssh_key_verified=Pārbaudīta atslēga
ssh_key_verified_long=Atslēga tika pārbaudīta ar parakstītu talonu un var tikt izmantota, lai pārbaudītu revīzijas, kas atbilst jebkurai apstiprinātai lietotāja e-pasta adresei. ssh_key_verified_long=Atslēga tika apliecināta ar parakstītu pilnvaru un var tikt izmantota, lai pārbaudītu revīzijas, kas atbilst jebkurai apstiprinātai lietotāja e-pasta adresei.
ssh_key_verify=Pārbaudīt ssh_key_verify=Pārbaudīt
ssh_invalid_token_signature=Norādītā SSH atslēga, paraksts un talons neatbilst vai talonam ir beidzies derīguma termiņš. ssh_invalid_token_signature=Norādītā SSH atslēga, paraksts un pilnvara neatbilst vai tai ir beidzies derīguma termiņš.
ssh_token_required=Jānorāda paraksts zemāk esošajam talonam ssh_token_required=Jānorāda paraksts zemāk esošajai pilnvarai
ssh_token=Talons ssh_token=Pilnvara
ssh_token_help=Parakstu ir iespējams uzģenerēt izmantojot komandu: ssh_token_help=Parakstu ir iespējams uzģenerēt izmantojot komandu:
ssh_token_signature=Aizsargāts SSH paraksts ssh_token_signature=Tekstuāls SSH paraksts
key_signature_ssh_placeholder=Sākas ar '-----BEGIN SSH SIGNATURE-----' key_signature_ssh_placeholder=Sākas ar '-----BEGIN SSH SIGNATURE-----'
verify_ssh_key_success=SSH atslēga "%s" veiksmīgi pārbaudīta. verify_ssh_key_success=SSH atslēga "%s" veiksmīgi pārbaudīta.
subkeys=Apakšatslēgas subkeys=Apakšatslēgas
@ -781,7 +781,7 @@ no_activity=Nav nesenas aktivitātes
can_read_info=Lasīt can_read_info=Lasīt
can_write_info=Rakstīt can_write_info=Rakstīt
key_state_desc=Šī atslēga ir izmantota pēdējo 7 dienu laikā key_state_desc=Šī atslēga ir izmantota pēdējo 7 dienu laikā
token_state_desc=Šis talons ir izmantots pēdējo 7 dienu laikā token_state_desc=Šī pilnvara ir izmantota pēdējo 7 dienu laikā
principal_state_desc=Šī identitāte ir lietota pēdējās 7 dienās principal_state_desc=Šī identitāte ir lietota pēdējās 7 dienās
show_openid=Rādīt profilā show_openid=Rādīt profilā
hide_openid=Paslēpt no profila hide_openid=Paslēpt no profila
@ -793,32 +793,32 @@ social_desc=Šis ir saraksts ar Jūsu Gitea kontam piesaistītajiem sociālajiem
unbind=Atsaistīt unbind=Atsaistīt
unbind_success=Sociālais konts tika atsaistīts no Jūsu Gitea konta. unbind_success=Sociālais konts tika atsaistīts no Jūsu Gitea konta.
manage_access_token=Pārvaldīt piekļuves talonus manage_access_token=Pārvaldīt piekļuves pilnvaras
generate_new_token=Ģenerēt jaunu talonu generate_new_token=Izveidot jaunu pilnvaru
tokens_desc=Ar šiem taloniem ir iespējams piekļūt Jūsu kontam, izmantojot, Gitea API. tokens_desc=Ar šiem taloniem ir iespējams piekļūt Jūsu kontam, izmantojot, Gitea API.
token_name=Talona nosaukums token_name=Pilnvaras nosaukums
generate_token=Ģenerēt talonu generate_token=Ģenerēt pilnvaru
generate_token_success=Piekļuves talons tika veiksmīgi uzģenerēts! Nokopējiet to tagad, jo vēlāk to vairs nebūs iespējams redzēt. generate_token_success=Piekļuves pilvara tika veiksmīgi uzģenerēta! Nokopējiet to tagad, jo vēlāk to vairs nebūs iespējams aplūkot.
generate_token_name_duplicate=Jau eksistē lietotne ar nosaukumu <strong>%s</strong>. Izmantojiet citu nosaukumu. generate_token_name_duplicate=Jau eksistē lietotne ar nosaukumu <strong>%s</strong>. Izmantojiet citu nosaukumu.
delete_token=Dzēst delete_token=Dzēst
access_token_deletion=Dzēst piekļuves talonu access_token_deletion=Dzēst piekļuves pilnvaru
access_token_deletion_cancel_action=Atcelt access_token_deletion_cancel_action=Atcelt
access_token_deletion_confirm_action=Dzēst access_token_deletion_confirm_action=Dzēst
access_token_deletion_desc=Izdzēšot talonu, tam tiks liegta piekļuve šim kontam. Šī darbība ir neatgriezeniska. Vai turpināt? access_token_deletion_desc=Izdzēšot pilnvaru, lietojumprogrammām, kas to izmanto, tiks liegta piekļuve šim kontam. Šī darbība ir neatgriezeniska. Vai turpināt?
delete_token_success=Piekļuves talons tika noņemts. Neaizmirstiet atjaunot informāciju lietojumprogrammās, kas izmantoja šo talonu. delete_token_success=Pilnvara tika izdzēsta. Lietojumprogrammām, kas izmantoja šo pilnvaru, vairs nav piekļuves kontam.
repo_and_org_access=Repozitorija un organizācijas piekļuve repo_and_org_access=Repozitorija un organizācijas piekļuve
permissions_public_only=Tikai publiskie permissions_public_only=Tikai publiskie
permissions_access_all=Visi (publiskie, privātie un ierobežotie) permissions_access_all=Visi (publiskie, privātie un ierobežotie)
select_permissions=Norādiet tiesības select_permissions=Norādiet tiesības
scoped_token_desc=Atzīmētie talona apgabali ierobežo autorizāciju tikai atbilstošiem <a %s>API</a> izsaukumiem. Sīkāka informācija pieejama <a %s>dokumentācijā</a>. scoped_token_desc=Atzīmētie pilnvaras apgabali ierobežo autentifikāciju tikai atbilstošiem <a %s>API</a> izsaukumiem. Sīkāka informācija pieejama <a %s>dokumentācijā</a>.
at_least_one_permission=Nepieciešams norādīt vismaz vienu tiesību, lai izveidotu talonu at_least_one_permission=Nepieciešams norādīt vismaz vienu tiesību, lai izveidotu pilnvaru
permissions_list=Tiesības: permissions_list=Tiesības:
manage_oauth2_applications=Pārvaldīt OAuth2 lietotnes manage_oauth2_applications=Pārvaldīt OAuth2 lietotnes
edit_oauth2_application=Labot OAuth2 lietotni edit_oauth2_application=Labot OAuth2 lietotni
oauth2_applications_desc=OAuth2 lietotnes ļauj trešo pušu lietotnēm droša veidā autentificēt lietotajus šajā Gitea instancē. oauth2_applications_desc=OAuth2 lietotnes ļauj trešo pušu lietotnēm droša veidā autentificēt lietotajus šajā Gitea instancē.
remove_oauth2_application=Noņemt OAuth2 lietotni remove_oauth2_application=Noņemt OAuth2 lietotni
remove_oauth2_application_desc=Noņemot OAuth2 lietotni tiks noņemta piekļuve visiem parakstītajiem piekļuves taloniem. Vai turpināt? remove_oauth2_application_desc=Noņemot OAuth2 lietotni, tiks noņemta piekļuve visām parakstītajām piekļuves pilnvarām. Vai turpināt?
remove_oauth2_application_success=Lietotne tika dzēsta. remove_oauth2_application_success=Lietotne tika dzēsta.
create_oauth2_application=Izveidot jaunu OAuth2 lietotni create_oauth2_application=Izveidot jaunu OAuth2 lietotni
create_oauth2_application_button=Izveidot lietotni create_oauth2_application_button=Izveidot lietotni
@ -849,7 +849,7 @@ twofa_is_enrolled=Kontam ir <strong>ieslēgta</strong> divfaktoru autentifikāci
twofa_not_enrolled=Kontam šobrīd nav ieslēgta divfaktoru autentifikācija. twofa_not_enrolled=Kontam šobrīd nav ieslēgta divfaktoru autentifikācija.
twofa_disable=Atslēgt divfaktoru autentifikāciju twofa_disable=Atslēgt divfaktoru autentifikāciju
twofa_scratch_token_regenerate=Ģenerēt jaunu vienreizējo kodu twofa_scratch_token_regenerate=Ģenerēt jaunu vienreizējo kodu
twofa_scratch_token_regenerated=Tagad Jūsu vienreizējais kods ir %s. Saglabājiet to drošā vietā. twofa_scratch_token_regenerated=Jaunais vienreizējais kods ir %s. Saglabājiet to drošā vietā.
twofa_enroll=Ieslēgt divfaktoru autentifikāciju twofa_enroll=Ieslēgt divfaktoru autentifikāciju
twofa_disable_note=Nepieciešamības gadījumā divfaktoru autentifikāciju ir iespējams atslēgt. twofa_disable_note=Nepieciešamības gadījumā divfaktoru autentifikāciju ir iespējams atslēgt.
twofa_disable_desc=Atslēdzot divfaktoru autentifikāciju, konts vairs nebūs tik drošs. Vai turpināt? twofa_disable_desc=Atslēdzot divfaktoru autentifikāciju, konts vairs nebūs tik drošs. Vai turpināt?
@ -1045,14 +1045,14 @@ migrate_items_releases=Laidienus
migrate_repo=Migrēt repozitoriju migrate_repo=Migrēt repozitoriju
migrate.clone_address=Klonēšanas adrese migrate.clone_address=Klonēšanas adrese
migrate.clone_address_desc=Tā var būt HTTP(S) adrese vai Git 'clone' URL eksistējošam repozitorijam migrate.clone_address_desc=Tā var būt HTTP(S) adrese vai Git 'clone' URL eksistējošam repozitorijam
migrate.github_token_desc=Ir iespējams izmantot vienu vai ar komantiem atdalītus vairākus talonus, lai veiktu ātrāku migrāciju, ja tā tiek ierobežota ar GitHub API ierobežojumiem. BRĪDINĀJUMS: Šīs iespējas ļaunprātīga izmantošana, var tikt uzskatīta par lietošanas noteikumu pārkāpumu ar no tā izrietošām sekām. migrate.github_token_desc=Ir iespējams izmantot vienu vai ar komantiem atdalītus vairākas pilnvaras, lai veiktu ātrāku migrāciju, ja tā tiek ierobežota ar GitHub API ierobežojumiem. BRĪDINĀJUMS: Šīs iespējas ļaunprātīga izmantošana, var tikt uzskatīta par lietošanas noteikumu pārkāpumu ar no tā izrietošām sekām.
migrate.clone_local_path=vai servera lokālais ceļš migrate.clone_local_path=vai servera lokālais ceļš
migrate.permission_denied=Jums nav tiesību importēt lokālu repozitoriju. migrate.permission_denied=Jums nav tiesību importēt lokālu repozitoriju.
migrate.permission_denied_blocked=Nav iespējams importēt no neatļautām adresēm, prasiet administratoram pārskatīt ALLOWED_DOMAINS/ALLOW_LOCALNETWORKS/BLOCKED_DOMAINS iestatījumus. migrate.permission_denied_blocked=Nav iespējams importēt no neatļautām adresēm, prasiet administratoram pārskatīt ALLOWED_DOMAINS/ALLOW_LOCALNETWORKS/BLOCKED_DOMAINS iestatījumus.
migrate.invalid_local_path=Nederīgs lokālais ceļš. Tas neeksistē vai nav direktorija. migrate.invalid_local_path=Nederīgs lokālais ceļš. Tas neeksistē vai nav direktorija.
migrate.invalid_lfs_endpoint=LFS galapunkts nav korekts. migrate.invalid_lfs_endpoint=LFS galapunkts nav korekts.
migrate.failed=Migrācija neizdevās: %v migrate.failed=Migrācija neizdevās: %v
migrate.migrate_items_options=Piekļuves talons ir nepieciešams, lai migrētu papildus datus migrate.migrate_items_options=Piekļuves pilnvara ir nepieciešams, lai migrētu papildus datus
migrated_from=Migrēts no <a href="%[1]s">%[2]s</a> migrated_from=Migrēts no <a href="%[1]s">%[2]s</a>
migrated_from_fake=Migrēts no %[1]s migrated_from_fake=Migrēts no %[1]s
migrate.migrate=Migrēt no %s migrate.migrate=Migrēt no %s
@ -1969,7 +1969,7 @@ settings.enable_timetracker=Iespējot laika uzskaiti
settings.allow_only_contributors_to_track_time=Atļaut tikai dalībniekiem uzskaitīt laiku settings.allow_only_contributors_to_track_time=Atļaut tikai dalībniekiem uzskaitīt laiku
settings.pulls_desc=Iespējot repozitorija izmaiņu pieprasījumus settings.pulls_desc=Iespējot repozitorija izmaiņu pieprasījumus
settings.pulls.ignore_whitespace=Pārbaudot konfliktus, ignorēt izmaiņas atstarpēs settings.pulls.ignore_whitespace=Pārbaudot konfliktus, ignorēt izmaiņas atstarpēs
settings.pulls.enable_autodetect_manual_merge=Iespējot manuālo sapludināšanas noteikšanu (Piezīme: dažos speciālos gadījumos, tas var nostrādāt nekorekti) settings.pulls.enable_autodetect_manual_merge=Iespējot manuālas sapludināšanas noteikšanu (Piezīme: dažos speciālos gadījumos, tas var nostrādāt nekorekti)
settings.pulls.allow_rebase_update=Iespējot izmaiņu pieprasījuma atjaunošanu ar pārbāzēšanu settings.pulls.allow_rebase_update=Iespējot izmaiņu pieprasījuma atjaunošanu ar pārbāzēšanu
settings.pulls.default_delete_branch_after_merge=Pēc noklusējuma dzēst izmaiņu pieprasījuma atzaru pēc sapludināšanas settings.pulls.default_delete_branch_after_merge=Pēc noklusējuma dzēst izmaiņu pieprasījuma atzaru pēc sapludināšanas
settings.pulls.default_allow_edits_from_maintainers=Atļaut uzturētājiem labot pēc noklusējuma settings.pulls.default_allow_edits_from_maintainers=Atļaut uzturētājiem labot pēc noklusējuma
@ -2002,13 +2002,13 @@ settings.transfer=Mainīt īpašnieku
settings.transfer.rejected=Repozitorija īpašnieka maiņas pieprasījums tika noraidīts. settings.transfer.rejected=Repozitorija īpašnieka maiņas pieprasījums tika noraidīts.
settings.transfer.success=Repozitorija īpašnieka maiņa veiksmīga. settings.transfer.success=Repozitorija īpašnieka maiņa veiksmīga.
settings.transfer_abort=Atcelt īpašnieka maiņu settings.transfer_abort=Atcelt īpašnieka maiņu
settings.transfer_abort_invalid=Nevar atcelt neeksistējošu repozitorija īpašnieka maiņu. settings.transfer_abort_invalid=Nevar atcelt neeksistējoša repozitorija īpašnieka maiņu.
settings.transfer_abort_success=Repozitrija īpašnieks tika veiksmīgi nomainīts uz %s. settings.transfer_abort_success=Repozitorija īpašnieka maiņa uz %s tika veiksmīgi atcelta.
settings.transfer_desc=Mainīt šī repozitorija īpašnieku uz citu lietotāju vai organizāciju, kurai Jums ir administratora tiesības. settings.transfer_desc=Mainīt šī repozitorija īpašnieku uz citu lietotāju vai organizāciju, kurai Jums ir administratora tiesības.
settings.transfer_form_title=Ievadiet repozitorija nosaukumu, lai apstiprinātu: settings.transfer_form_title=Ievadiet repozitorija nosaukumu, lai apstiprinātu:
settings.transfer_in_progress=Pašlaik jau tiek veikta repozitorija īpašnieka maiņa. Atceliet iepriekšējo īpašnieka maiņu, ja vēlaties mainīt uz citu. settings.transfer_in_progress=Pašlaik jau tiek veikta repozitorija īpašnieka maiņa. Atceliet iepriekšējo īpašnieka maiņu, ja vēlaties mainīt uz citu.
settings.transfer_notices_1=- Jūs zaudēsiet piekļuvi, ja jaunais īpašnieks ir individuāls lietotājs. settings.transfer_notices_1=- Tiks zaudēta piekļuve repozitorijam, ja jaunais īpašnieks ir individuāls lietotājs.
settings.transfer_notices_2=- Jūs saglabāsiet piekļuvi, ja jaunais īpašnieks ir organizācija un Jūs esat viens no tās īpašniekiem. settings.transfer_notices_2=- Tiks saglabāta piekļuve, ja jaunais īpašnieks ir organizācija un esat viens no tās īpašniekiem.
settings.transfer_notices_3=- Ja repozitorijs ir privāts un tas tiks pārsūtīts lietotājam, tad pārliecināties, ka lietotājam ir vismaz skatīšanās tiesības (veiciet nepieciešamās izmaiņas, ja nepieciešams). settings.transfer_notices_3=- Ja repozitorijs ir privāts un tas tiks pārsūtīts lietotājam, tad pārliecināties, ka lietotājam ir vismaz skatīšanās tiesības (veiciet nepieciešamās izmaiņas, ja nepieciešams).
settings.transfer_owner=Jaunais īpašnieks settings.transfer_owner=Jaunais īpašnieks
settings.transfer_perform=Veikt īpašnieka maiņu settings.transfer_perform=Veikt īpašnieka maiņu
@ -2017,16 +2017,16 @@ settings.transfer_succeed=Repozitorijs tika pārcelts.
settings.signing_settings=Parakstu pārbaudes iestatījumi settings.signing_settings=Parakstu pārbaudes iestatījumi
settings.trust_model=Uzticēšanās modelis parakstiem settings.trust_model=Uzticēšanās modelis parakstiem
settings.trust_model.default=Noklusējuma uzticēšanās modelis settings.trust_model.default=Noklusējuma uzticēšanās modelis
settings.trust_model.default.desc=Izmantot noklusēto repozitorija uzticības modeli. settings.trust_model.default.desc=Izmantot noklusēto repozitoriju uzticības modeli.
settings.trust_model.collaborator=Līdzstrādnieka settings.trust_model.collaborator=Līdzstrādnieka
settings.trust_model.collaborator.long=Līdzstrādnieka: Uzticēties līdzstrādnieku parakstiem settings.trust_model.collaborator.long=Līdzstrādnieka: Uzticēties līdzstrādnieku parakstiem
settings.trust_model.collaborator.desc=Ticami līdzstrādnieku paraksti tiks atzīmēti kā "uzticami" (neatkarīgi no tā vai tie atbilst revīzijas iesūtītājam vai nē). Citos gadījumos ticami paraksti tiks atzīmēti kā "neuzticami", ja paraksts atbilst revīzijas iesūtītājam vai "nesakrītošs", ja neatbilst. settings.trust_model.collaborator.desc=Derīgi līdzstrādnieku paraksti tiks atzīmēti kā "uzticami" (neatkarīgi no tā vai tie atbilst revīzijas iesūtītājam vai nē). Citos gadījumos derīgi paraksti tiks atzīmēti kā "neuzticami", ja paraksts atbilst revīzijas iesūtītājam vai "nesakrītošs", ja neatbilst.
settings.trust_model.committer=Revīzijas iesūtītāja settings.trust_model.committer=Revīzijas iesūtītāja
settings.trust_model.committer.long=Revīzijas iesūtītāja: Uzticēties parakstiem, kas atbilst revīzijas iesūtītājiem (Šis atbilst GitHub uzvedībai un piespiedīs Gitea parakstītām revīzijām būt Gitea kā revīzijas iesūtītājam) settings.trust_model.committer.long=Revīzijas iesūtītāja: Uzticēties parakstiem, kas atbilst revīzijas iesūtītājiem (Šis atbilst GitHub uzvedībai un piespiedīs Gitea parakstītām revīzijām norādīt Gitea kā revīzijas iesūtītāju)
settings.trust_model.committer.desc=Ticami paraksti tiks atzīmēti kā "uzticami", ja tie atbilst revīzijas iesūtītājam, citos gadījumos tie tiks atzīmēti kā "nesakrītoši". Šis nozīmē, ka Gitea būs kā revīzijas iesūtītājs parakstītām revīzijām, kur īstais revīzijas iesūtītājs tiks atīzmēts revīzijas komentāra beigās ar tekstu Co-authored-by: un Co-committed-by:. Noklusētajai Gitea atslēgai ir jāatbilst lietotājam datu bāzē. settings.trust_model.committer.desc=Derīgi paraksti tiks atzīmēti kā "uzticami", ja tie atbilst revīzijas iesūtītājam, citos gadījumos tie tiks atzīmēti kā "nesakrītoši". Šis nozīmē, ka Gitea būs kā revīzijas iesūtītājs parakstītām revīzijām, kur īstais revīzijas iesūtītājs tiks atīzmēts revīzijas komentāra beigās ar tekstu Co-authored-by: un Co-committed-by:. Noklusētajai Gitea atslēgai ir jāatbilst lietotājam datubāzē.
settings.trust_model.collaboratorcommitter=Līdzstrādnieka un revīzijas iesūtītāja settings.trust_model.collaboratorcommitter=Līdzstrādnieka un revīzijas iesūtītāja
settings.trust_model.collaboratorcommitter.long=Līdzstrādnieka un revīzijas iesūtītāja: Uzticēties līdzstrādnieku parakstiem, kas atbilst revīzijas iesūtītājam settings.trust_model.collaboratorcommitter.long=Līdzstrādnieka un revīzijas iesūtītāja: Uzticēties līdzstrādnieku parakstiem, kas atbilst revīzijas iesūtītājam
settings.trust_model.collaboratorcommitter.desc=Ticami līdzstrādnieku paraksti tiks atzīmēti kā "uzticami", ja tie atbilst revīzijas iesūtītājam, citos gadījumos tie tiks atzīmēti kā "neuzticami", ja paraksts atbilst revīzijas iesūtītajam, vai "nesakrītoši", ja neatbilst. Šis nozīmē, ka Gitea būs kā revīzijas iesūtītājs parakstītām revīzijām, kur īstais revīzijas iesūtītājs tiks atīzmēts revīzijas komentāra beigās ar tekstu Co-Authored-By: un Co-Committed-By:. Noklusētajai Gitea atslēgai ir jāatbilst lietotājam datu bāzē. settings.trust_model.collaboratorcommitter.desc=Derīgi līdzstrādnieku paraksti tiks atzīmēti kā "uzticami", ja tie atbilst revīzijas iesūtītājam, citos gadījumos tie tiks atzīmēti kā "neuzticami", ja paraksts atbilst revīzijas iesūtītajam, vai "nesakrītoši", ja neatbilst. Šis nozīmē, ka Gitea būs kā revīzijas iesūtītājs parakstītām revīzijām, kur īstais revīzijas iesūtītājs tiks atīzmēts revīzijas komentāra beigās ar tekstu Co-Authored-By: un Co-Committed-By:. Noklusētajai Gitea atslēgai ir jāatbilst lietotājam datubāzē.
settings.wiki_delete=Dzēst vikivietnes datus settings.wiki_delete=Dzēst vikivietnes datus
settings.wiki_delete_desc=Vikivietnes repozitorija dzēšana ir <strong>NEATGRIEZENISKA</strong>. Vai turpināt? settings.wiki_delete_desc=Vikivietnes repozitorija dzēšana ir <strong>NEATGRIEZENISKA</strong>. Vai turpināt?
settings.wiki_delete_notices_1=- Šī darbība dzēsīs un atspējos repozitorija %s vikivietni. settings.wiki_delete_notices_1=- Šī darbība dzēsīs un atspējos repozitorija %s vikivietni.
@ -2090,7 +2090,7 @@ settings.secret=Noslēpums
settings.slack_username=Lietotājvārds settings.slack_username=Lietotājvārds
settings.slack_icon_url=Ikonas URL settings.slack_icon_url=Ikonas URL
settings.slack_color=Krāsa settings.slack_color=Krāsa
settings.discord_username=Lietotāja vārds settings.discord_username=Lietotājvārds
settings.discord_icon_url=Ikonas URL settings.discord_icon_url=Ikonas URL
settings.event_desc=Izsaukt notikumiem: settings.event_desc=Izsaukt notikumiem:
settings.event_push_only=Izmaiņu nosūtīšanas notikumi settings.event_push_only=Izmaiņu nosūtīšanas notikumi
@ -2155,7 +2155,7 @@ settings.update_hook_success=Tīmekļa āķis tika atjaunots.
settings.delete_webhook=Noņemt tīmekļa āķi settings.delete_webhook=Noņemt tīmekļa āķi
settings.recent_deliveries=Pēdējās piegādes settings.recent_deliveries=Pēdējās piegādes
settings.hook_type=Āķa veids settings.hook_type=Āķa veids
settings.slack_token=Talons settings.slack_token=Pilnvara
settings.slack_domain=Domēns settings.slack_domain=Domēns
settings.slack_channel=Kanāls settings.slack_channel=Kanāls
settings.add_web_hook_desc=Integrēt <a target="_blank" rel="noreferrer" href="%s">%s</a> repozitorijā. settings.add_web_hook_desc=Integrēt <a target="_blank" rel="noreferrer" href="%s">%s</a> repozitorijā.
@ -2172,8 +2172,8 @@ settings.web_hook_name_feishu=Feishu
settings.web_hook_name_larksuite=Lark Suite settings.web_hook_name_larksuite=Lark Suite
settings.web_hook_name_wechatwork=WeCom (Wechat Work) settings.web_hook_name_wechatwork=WeCom (Wechat Work)
settings.web_hook_name_packagist=Packagist settings.web_hook_name_packagist=Packagist
settings.packagist_username=Packagist lietotāja vārds settings.packagist_username=Packagist lietotājvārds
settings.packagist_api_token=API talons settings.packagist_api_token=API pilnvara
settings.packagist_package_url=Packagist pakotnes URL settings.packagist_package_url=Packagist pakotnes URL
settings.deploy_keys=Izvietot atslēgas settings.deploy_keys=Izvietot atslēgas
settings.add_deploy_key=Pievienot izvietošanas atslēgu settings.add_deploy_key=Pievienot izvietošanas atslēgu
@ -2272,7 +2272,7 @@ settings.tags.protection.allowed.noone=Nevienam
settings.tags.protection.create=Aizsargāt tagus settings.tags.protection.create=Aizsargāt tagus
settings.tags.protection.none=Nav uzstādīta tagu aizsargāšana. settings.tags.protection.none=Nav uzstādīta tagu aizsargāšana.
settings.tags.protection.pattern.description=Var izmantot pilnu nosaukumu, glob šablonu vai regulāro izteiksmi, lai aizsargātu vairākus tagus. Detalizētāk var izlasīt <a target="_blank" rel="noopener" href="https://docs.gitea.io/en-us/protected-tags/">tagu aizsargāšanas pamācībā</a>. settings.tags.protection.pattern.description=Var izmantot pilnu nosaukumu, glob šablonu vai regulāro izteiksmi, lai aizsargātu vairākus tagus. Detalizētāk var izlasīt <a target="_blank" rel="noopener" href="https://docs.gitea.io/en-us/protected-tags/">tagu aizsargāšanas pamācībā</a>.
settings.bot_token=Bota talons settings.bot_token=Bota pilnvara
settings.chat_id=Tērzēšanas ID settings.chat_id=Tērzēšanas ID
settings.matrix.homeserver_url=Mājas servera URL settings.matrix.homeserver_url=Mājas servera URL
settings.matrix.room_id=Istabas ID settings.matrix.room_id=Istabas ID
@ -2867,7 +2867,7 @@ auths.oauth2_clientID=Klienta ID (atslēga)
auths.oauth2_clientSecret=Klienta noslēpums auths.oauth2_clientSecret=Klienta noslēpums
auths.openIdConnectAutoDiscoveryURL=OpenID Connect automātiskās atklāšanas URL auths.openIdConnectAutoDiscoveryURL=OpenID Connect automātiskās atklāšanas URL
auths.oauth2_use_custom_url=Noklusēto URL vietā izmantot pielāgotos URL auths.oauth2_use_custom_url=Noklusēto URL vietā izmantot pielāgotos URL
auths.oauth2_tokenURL=Talona URL auths.oauth2_tokenURL=Pilnvaras URL
auths.oauth2_authURL=Autorizācijas URL auths.oauth2_authURL=Autorizācijas URL
auths.oauth2_profileURL=Profila URL auths.oauth2_profileURL=Profila URL
auths.oauth2_emailURL=E-pasta adreses URL auths.oauth2_emailURL=E-pasta adreses URL
@ -2910,7 +2910,7 @@ auths.tip.openid_connect=Izmantojiet OpenID pieslēgšanās atklāšanas URL (<s
auths.tip.twitter=Dodieties uz adresi https://dev.twitter.com/apps, izveidojiet aplikāciju un pārliecinieties, ka ir atzīmēts “Allow this application to be used to Sign in with Twitter” auths.tip.twitter=Dodieties uz adresi https://dev.twitter.com/apps, izveidojiet aplikāciju un pārliecinieties, ka ir atzīmēts “Allow this application to be used to Sign in with Twitter”
auths.tip.discord=Reģistrējiet jaunu aplikāciju adresē https://discordapp.com/developers/applications/me auths.tip.discord=Reģistrējiet jaunu aplikāciju adresē https://discordapp.com/developers/applications/me
auths.tip.gitea=Reģistrēt jaunu OAuth2 lietojumprogrammu. Pamācību iespējams atrast https://docs.gitea.io/en-us/oauth2-provider/ auths.tip.gitea=Reģistrēt jaunu OAuth2 lietojumprogrammu. Pamācību iespējams atrast https://docs.gitea.io/en-us/oauth2-provider/
auths.tip.yandex=`Izveidojiet jaunu aplikāciju adresē https://oauth.yandex.com/client/new. Izvēlieties sekojošas tiesības "Yandex.Passport API" sadaļā: "Access to email address", "Access to user avatar" un "Access to username, first name and surname, gender"` auths.tip.yandex=`Izveidojiet jaunu lietotni adresē https://oauth.yandex.com/client/new. Izvēlieties sekojošas tiesības "Yandex.Passport API" sadaļā: "Access to email address", "Access to user avatar" un "Access to username, first name and surname, gender"`
auths.tip.mastodon=Norādiet pielāgotu mastodon instances URL, ar kuru vēlaties autorizēties (vai izmantojiet noklusēto) auths.tip.mastodon=Norādiet pielāgotu mastodon instances URL, ar kuru vēlaties autorizēties (vai izmantojiet noklusēto)
auths.edit=Labot autentifikācijas avotu auths.edit=Labot autentifikācijas avotu
auths.activated=Autentifikācijas avots ir atkivizēts auths.activated=Autentifikācijas avots ir atkivizēts
@ -3447,7 +3447,7 @@ runners.status.idle=Dīkstāvē
runners.status.active=Aktīvs runners.status.active=Aktīvs
runners.status.offline=Bezsaistē runners.status.offline=Bezsaistē
runners.version=Versija runners.version=Versija
runners.reset_registration_token_success=Izpildītāja reģistrācijas talons tikai atiestatīts runners.reset_registration_token_success=Izpildītāja reģistrācijas pilnvara tika veiksmīgi atiestatīta
runs.all_workflows=Visas darbaplūsmas runs.all_workflows=Visas darbaplūsmas
runs.commit=Revīzija runs.commit=Revīzija

View File

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

Before

Width:  |  Height:  |  Size: 169 B

After

Width:  |  Height:  |  Size: 169 B

View File

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

View File

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

Before

Width:  |  Height:  |  Size: 172 B

After

Width:  |  Height:  |  Size: 172 B

View File

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 409 B

After

Width:  |  Height:  |  Size: 409 B

View File

Before

Width:  |  Height:  |  Size: 448 B

After

Width:  |  Height:  |  Size: 448 B

View File

Before

Width:  |  Height:  |  Size: 396 B

After

Width:  |  Height:  |  Size: 396 B

View File

Before

Width:  |  Height:  |  Size: 285 B

After

Width:  |  Height:  |  Size: 285 B

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

Before

Width:  |  Height:  |  Size: 461 B

After

Width:  |  Height:  |  Size: 461 B

View File

Before

Width:  |  Height:  |  Size: 462 B

After

Width:  |  Height:  |  Size: 462 B

View File

Before

Width:  |  Height:  |  Size: 564 B

After

Width:  |  Height:  |  Size: 564 B

View File

Before

Width:  |  Height:  |  Size: 391 B

After

Width:  |  Height:  |  Size: 391 B

View File

Before

Width:  |  Height:  |  Size: 267 B

After

Width:  |  Height:  |  Size: 267 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 604 B

After

Width:  |  Height:  |  Size: 604 B

View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

Before

Width:  |  Height:  |  Size: 898 B

After

Width:  |  Height:  |  Size: 898 B

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 680 B

After

Width:  |  Height:  |  Size: 680 B

View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

Before

Width:  |  Height:  |  Size: 372 B

After

Width:  |  Height:  |  Size: 372 B

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1003 B

After

Width:  |  Height:  |  Size: 1003 B

View File

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

View File

Before

Width:  |  Height:  |  Size: 350 B

After

Width:  |  Height:  |  Size: 350 B

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 360 B

After

Width:  |  Height:  |  Size: 360 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

View File

Before

Width:  |  Height:  |  Size: 689 B

After

Width:  |  Height:  |  Size: 689 B

Some files were not shown because too many files have changed in this diff Show More