Merge branch 'main' into smtp-lib-upgrade
commit
9f052bdf8b
|
@ -1 +1,2 @@
|
||||||
github: [binwiederhier]
|
github: [binwiederhier]
|
||||||
|
liberapay: ntfy
|
||||||
|
|
|
@ -13,9 +13,6 @@ builds:
|
||||||
- "-linkmode=external -extldflags=-static -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}"
|
- "-linkmode=external -extldflags=-static -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}"
|
||||||
goos: [linux]
|
goos: [linux]
|
||||||
goarch: [amd64]
|
goarch: [amd64]
|
||||||
hooks:
|
|
||||||
post:
|
|
||||||
- upx "{{ .Path }}" # apt install upx
|
|
||||||
-
|
-
|
||||||
id: ntfy_linux_armv6
|
id: ntfy_linux_armv6
|
||||||
binary: ntfy
|
binary: ntfy
|
||||||
|
@ -28,7 +25,6 @@ builds:
|
||||||
goos: [linux]
|
goos: [linux]
|
||||||
goarch: [arm]
|
goarch: [arm]
|
||||||
goarm: [6]
|
goarm: [6]
|
||||||
# No "upx" for ARM, see https://github.com/binwiederhier/ntfy/issues/191#issuecomment-1083406546
|
|
||||||
-
|
-
|
||||||
id: ntfy_linux_armv7
|
id: ntfy_linux_armv7
|
||||||
binary: ntfy
|
binary: ntfy
|
||||||
|
@ -41,7 +37,6 @@ builds:
|
||||||
goos: [linux]
|
goos: [linux]
|
||||||
goarch: [arm]
|
goarch: [arm]
|
||||||
goarm: [7]
|
goarm: [7]
|
||||||
# No "upx" for ARM, see https://github.com/binwiederhier/ntfy/issues/191#issuecomment-1083406546
|
|
||||||
-
|
-
|
||||||
id: ntfy_linux_arm64
|
id: ntfy_linux_arm64
|
||||||
binary: ntfy
|
binary: ntfy
|
||||||
|
@ -53,7 +48,6 @@ builds:
|
||||||
- "-linkmode=external -extldflags=-static -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}"
|
- "-linkmode=external -extldflags=-static -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}"
|
||||||
goos: [linux]
|
goos: [linux]
|
||||||
goarch: [arm64]
|
goarch: [arm64]
|
||||||
# No "upx" for ARM, see https://github.com/binwiederhier/ntfy/issues/191#issuecomment-1083406546
|
|
||||||
-
|
-
|
||||||
id: ntfy_windows_amd64
|
id: ntfy_windows_amd64
|
||||||
binary: ntfy
|
binary: ntfy
|
||||||
|
@ -64,7 +58,6 @@ builds:
|
||||||
- "-X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}"
|
- "-X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}"
|
||||||
goos: [windows]
|
goos: [windows]
|
||||||
goarch: [amd64]
|
goarch: [amd64]
|
||||||
# No "upx" for Windows to hopefully avoid Virus warnings
|
|
||||||
-
|
-
|
||||||
id: ntfy_darwin_all
|
id: ntfy_darwin_all
|
||||||
binary: ntfy
|
binary: ntfy
|
||||||
|
|
2
Makefile
2
Makefile
|
@ -88,7 +88,6 @@ build-deps-ubuntu:
|
||||||
curl \
|
curl \
|
||||||
gcc-aarch64-linux-gnu \
|
gcc-aarch64-linux-gnu \
|
||||||
gcc-arm-linux-gnueabi \
|
gcc-arm-linux-gnueabi \
|
||||||
upx \
|
|
||||||
jq
|
jq
|
||||||
which pip3 || sudo apt install -y python3-pip
|
which pip3 || sudo apt install -y python3-pip
|
||||||
|
|
||||||
|
@ -201,7 +200,6 @@ cli-deps-static-sites:
|
||||||
touch server/docs/index.html server/site/app.html
|
touch server/docs/index.html server/site/app.html
|
||||||
|
|
||||||
cli-deps-all:
|
cli-deps-all:
|
||||||
which upx || { echo "ERROR: upx not installed. On Ubuntu, run: apt install upx"; exit 1; }
|
|
||||||
go install github.com/goreleaser/goreleaser@latest
|
go install github.com/goreleaser/goreleaser@latest
|
||||||
|
|
||||||
cli-deps-gcc-armv6-armv7:
|
cli-deps-gcc-armv6-armv7:
|
||||||
|
|
19
README.md
19
README.md
|
@ -61,9 +61,9 @@ for the server and the Android app. Or, if you'd like to help translate 🇩🇪
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
## Sponsors
|
## Sponsors
|
||||||
I have just very recently started accepting donations via [GitHub Sponsors](https://github.com/sponsors/binwiederhier).
|
I have just very recently started accepting donations via [GitHub Sponsors](https://github.com/sponsors/binwiederhier),
|
||||||
I would be humbled if you helped me carry the server and developer account costs. Even small donations are very much
|
and [Liberapay](https://liberapay.com/ntfy). I would be humbled if you helped me carry the server and developer
|
||||||
appreciated. A big fat **Thank You** to the folks already sponsoring ntfy:
|
account costs. Even small donations are very much appreciated. A big fat **Thank You** to the folks already sponsoring ntfy:
|
||||||
|
|
||||||
<a href="https://github.com/neutralinsomniac"><img src="https://github.com/neutralinsomniac.png" width="40px" /></a>
|
<a href="https://github.com/neutralinsomniac"><img src="https://github.com/neutralinsomniac.png" width="40px" /></a>
|
||||||
<a href="https://github.com/aspyct"><img src="https://github.com/aspyct.png" width="40px" /></a>
|
<a href="https://github.com/aspyct"><img src="https://github.com/aspyct.png" width="40px" /></a>
|
||||||
|
@ -108,11 +108,20 @@ appreciated. A big fat **Thank You** to the folks already sponsoring ntfy:
|
||||||
<a href="https://github.com/vinhdizzo"><img src="https://github.com/vinhdizzo.png" width="40px" /></a>
|
<a href="https://github.com/vinhdizzo"><img src="https://github.com/vinhdizzo.png" width="40px" /></a>
|
||||||
<a href="https://github.com/Ge0rg3"><img src="https://github.com/Ge0rg3.png" width="40px" /></a>
|
<a href="https://github.com/Ge0rg3"><img src="https://github.com/Ge0rg3.png" width="40px" /></a>
|
||||||
<a href="https://github.com/biopsin"><img src="https://github.com/biopsin.png" width="40px" /></a>
|
<a href="https://github.com/biopsin"><img src="https://github.com/biopsin.png" width="40px" /></a>
|
||||||
|
<a href="https://github.com/thebino"><img src="https://github.com/thebino.png" width="40px" /></a>
|
||||||
|
<a href="https://github.com/sky4055"><img src="https://github.com/sky4055.png" width="40px" /></a>
|
||||||
|
<a href="https://github.com/julianlam"><img src="https://github.com/julianlam.png" width="40px" /></a>
|
||||||
|
<a href="https://github.com/andreapx"><img src="https://github.com/andreapx.png" width="40px" /></a>
|
||||||
|
<a href="https://github.com/billycao"><img src="https://github.com/billycao.png" width="40px" /></a>
|
||||||
|
<a href="https://github.com/zoic21"><img src="https://github.com/zoic21.png" width="40px" /></a>
|
||||||
|
<a href="https://github.com/IanKulin"><img src="https://github.com/IanKulin.png" width="40px" /></a>
|
||||||
|
<a href="https://github.com/Joachim256"><img src="https://github.com/Joachim256.png" width="40px" /></a>
|
||||||
|
<a href="https://github.com/overtone1000"><img src="https://github.com/overtone1000.png" width="40px" /></a>
|
||||||
|
|
||||||
I'd also like to thank JetBrains for providing their awesome [IntelliJ IDEA](https://www.jetbrains.com/idea/) to me for free,
|
I'd also like to thank JetBrains for providing their awesome [IntelliJ IDEA](https://www.jetbrains.com/idea/) to me for free,
|
||||||
and [DigitalOcean](https://www.digitalocean.com/) for supporting the project with $60/yr:
|
and [DigitalOcean](https://m.do.co/c/442b929528db) (*referral link*) for supporting the project:
|
||||||
|
|
||||||
<a href="https://www.digitalocean.com/"><img src="https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/SVG/DO_Logo_horizontal_blue.svg" width="201px"></a>
|
<a href="https://m.do.co/c/442b929528db"><img src="https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/SVG/DO_Logo_horizontal_blue.svg" width="201px"></a>
|
||||||
|
|
||||||
## Code of Conduct
|
## Code of Conduct
|
||||||
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation.
|
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation.
|
||||||
|
|
|
@ -92,7 +92,6 @@ sudo apt install \
|
||||||
gcc-arm-linux-gnueabi \
|
gcc-arm-linux-gnueabi \
|
||||||
gcc-aarch64-linux-gnu \
|
gcc-aarch64-linux-gnu \
|
||||||
python3-pip \
|
python3-pip \
|
||||||
upx \
|
|
||||||
git
|
git
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -328,7 +327,76 @@ To build your own version with Firebase, you must:
|
||||||
```
|
```
|
||||||
|
|
||||||
## iOS app
|
## iOS app
|
||||||
The ntfy iOS app source code is available [on GitHub](https://github.com/binwiederhier/ntfy-ios).
|
Building the iOS app is very involved. Please report any inconsistencies or issues with it. The requirements are
|
||||||
|
strictly based off of my development on this app. There may be other versions of macOS / XCode that work.
|
||||||
|
|
||||||
|
### Requirements
|
||||||
|
1. macOS Monterey or later
|
||||||
|
1. XCode 13.2+
|
||||||
|
1. A physical iOS device (for push notifications, Firebase does not work in the XCode simulator)
|
||||||
|
1. Firebase account
|
||||||
|
1. Apple Developer license? (I forget if it's possible to do testing without purchasing the license)
|
||||||
|
|
||||||
|
### Apple setup
|
||||||
|
|
||||||
!!! info
|
!!! info
|
||||||
I haven't had time to move the build instructions here. Please check out the repository instead.
|
Along with this step, the [PLIST Deployment](#plist-deployment-and-configuration) step is also required
|
||||||
|
for these changes to take effect in the iOS app.
|
||||||
|
|
||||||
|
1. [Create a new key in Apple Developer Member Center](https://developer.apple.com/account/resources/authkeys/add)
|
||||||
|
1. Select "Apple Push Notifications service (APNs)"
|
||||||
|
1. Download the newly created key (should have a file name similar to `AuthKey_ZZZZZZ.p8`, where `ZZZZZZ` is the **Key ID**)
|
||||||
|
1. Record your **Team ID** - it can be seen in the top-right corner of the page, or on your Account > Membership page
|
||||||
|
1. Next, navigate to "Project Settings" in the firebase console for your project, and select the iOS app you created. Then, click "Cloud Messaging" in the left sidebar, and scroll down to the "APNs Authentication Key" section. Click "Upload Key", and upload the key you downloaded from Apple Developer.
|
||||||
|
|
||||||
|
!!! warning
|
||||||
|
If you don't do the above setups for APNS, **notifications will not post instantly or sometimes at all**. This is because of the missing APNS key, which is required for firebase to send notifications to the iOS app. See below for a snip from the firebase docs.
|
||||||
|
|
||||||
|
If you don't have an APNs authentication key, you can still send notifications to iOS devices, but they won't be delivered
|
||||||
|
instantly. Instead, they'll be delivered when the device wakes up to check for new notifications or when your application
|
||||||
|
sends a firebase request to check for them. The time to check for new notifications can vary from a few seconds to hours,
|
||||||
|
days or even weeks. Enabling APNs authentication keys ensures that notifications are delivered instantly and is strongly
|
||||||
|
recommended.
|
||||||
|
|
||||||
|
### Firebase setup
|
||||||
|
|
||||||
|
1. If you haven't already, create a Google / Firebase account
|
||||||
|
1. Visit the [Firebase console](https://console.firebase.google.com)
|
||||||
|
1. Create a new Firebase project:
|
||||||
|
1. Enter a project name
|
||||||
|
1. Disable Google Analytics (currently iOS app does not support analytics)
|
||||||
|
1. On the "Project settings" page, add an iOS app
|
||||||
|
1. Apple bundle ID - "com.copephobia.ntfy-ios" (this can be changed to match XCode's ntfy.sh target > "Bundle Identifier" value)
|
||||||
|
1. Register the app
|
||||||
|
1. Download the config file - GoogleInfo.plist (this will need to be included in the ntfy-ios repository / XCode)
|
||||||
|
1. Generate a new service account private key for the ntfy server
|
||||||
|
1. Go to "Project settings" > "Service accounts"
|
||||||
|
1. Click "Generate new private key" to generate and download a private key to use for sending messages via the ntfy server
|
||||||
|
|
||||||
|
### ntfy server
|
||||||
|
Note that the ntfy server is not officially supported on macOS. It should, however, be able to run on macOS using these
|
||||||
|
steps:
|
||||||
|
|
||||||
|
1. If not already made, make the `/etc/ntfy/` directory and move the service account private key to that folder
|
||||||
|
1. Copy the `server/server.yml` file from the ntfy repository to `/etc/ntfy/`
|
||||||
|
1. Modify the `/etc/ntfy/server.yml` file `firebase-key-file` value to the path of the private key
|
||||||
|
1. Install go: `brew install go`
|
||||||
|
1. In the ntfy repository, run `make cli-darwin-server`.
|
||||||
|
|
||||||
|
### XCode setup
|
||||||
|
|
||||||
|
1. Follow step 4 of [https://firebase.google.com/docs/ios/setup](Add Firebase to your Apple project) to install the
|
||||||
|
`firebase-ios-sdk` in XCode, if it's not already present - you can select any packages in addition to Firebase Core / Firebase Messaging
|
||||||
|
1. Similarly, install the SQLite.swift package dependency in XCode
|
||||||
|
1. When running the debug build, ensure XCode is pointed to the connected iOS device - registering for push notifications does not work in the iOS simulators
|
||||||
|
|
||||||
|
### PLIST config
|
||||||
|
To have instant notifications/better notification delivery when using firebase, you will need to add the
|
||||||
|
`GoogleService-Info.plist` file to your project. Here's how to do that:
|
||||||
|
|
||||||
|
1. In XCode, find the NTFY app target. **Not** the NSE app target.
|
||||||
|
1. Find the Asset/ folder in the project navigator
|
||||||
|
1. Drag the `GoogleService-Info.plist` file into the Asset/ folder that you get from the firebase console. It can be
|
||||||
|
found in the "Project settings" > "General" > "Your apps" with a button labled "GoogleService-Info.plist"
|
||||||
|
|
||||||
|
After that, you should be all set!
|
||||||
|
|
|
@ -413,7 +413,8 @@ alerting:
|
||||||
|
|
||||||
## Jellyseerr/Overseerr webhook
|
## Jellyseerr/Overseerr webhook
|
||||||
Here is an example for [jellyseerr](https://github.com/Fallenbagel/jellyseerr)/[overseerr](https://overseerr.dev/) webhook
|
Here is an example for [jellyseerr](https://github.com/Fallenbagel/jellyseerr)/[overseerr](https://overseerr.dev/) webhook
|
||||||
JSON payload. Remember to change the `https://requests.example.com` to your jellyseerr/overseerr URL.
|
JSON payload. Remember to change the `https://request.example.com` to your URL as the value of the JSON key click.
|
||||||
|
And if you're not using the request `topic`, make sure to change it in the JSON payload to your topic.
|
||||||
|
|
||||||
``` json
|
``` json
|
||||||
{
|
{
|
||||||
|
|
|
@ -287,7 +287,7 @@ services:
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
```
|
```
|
||||||
|
|
||||||
If using a non-root user when running the docker version, be sure to chown the server.yml, user.db, and cache.db files to the same uid/gid.
|
If using a non-root user when running the docker version, be sure to chown the server.yml, user.db, and cache.db files and attachments directory to the same uid/gid.
|
||||||
|
|
||||||
Alternatively, you may wish to build a customized Docker image that can be run with fewer command-line arguments and without delivering the configuration file separately.
|
Alternatively, you may wish to build a customized Docker image that can be run with fewer command-line arguments and without delivering the configuration file separately.
|
||||||
```
|
```
|
||||||
|
@ -371,7 +371,7 @@ unmanned pod.
|
||||||
containers:
|
containers:
|
||||||
- name: ntfy
|
- name: ntfy
|
||||||
image: binwiederhier/ntfy
|
image: binwiederhier/ntfy
|
||||||
args: ["serve", "--cache-file /var/cache/ntfy/cache.db"]
|
args: ["serve", "--cache-file", "/var/cache/ntfy/cache.db"]
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
name: http
|
name: http
|
||||||
|
@ -379,6 +379,8 @@ unmanned pod.
|
||||||
- name: config
|
- name: config
|
||||||
mountPath: "/etc/ntfy"
|
mountPath: "/etc/ntfy"
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
- name: cache
|
||||||
|
mountPath: "/var/cache/ntfy"
|
||||||
volumes:
|
volumes:
|
||||||
- name: config
|
- name: config
|
||||||
configMap:
|
configMap:
|
||||||
|
|
|
@ -32,6 +32,8 @@ and uptime of third party servers, so use of each server is **at your own discre
|
||||||
- [Gatus](https://gatus.io/) ⭐ - Automated service health dashboard
|
- [Gatus](https://gatus.io/) ⭐ - Automated service health dashboard
|
||||||
- [Automatisch](https://automatisch.io/) ⭐ - Open source Zapier alternative / workflow automation tool
|
- [Automatisch](https://automatisch.io/) ⭐ - Open source Zapier alternative / workflow automation tool
|
||||||
- [FlexGet](https://flexget.com/Plugins/Notifiers/ntfysh) ⭐ - Multipurpose automation tool for all of your media
|
- [FlexGet](https://flexget.com/Plugins/Notifiers/ntfysh) ⭐ - Multipurpose automation tool for all of your media
|
||||||
|
- [Shoutrrr](https://containrrr.dev/shoutrrr/v0.7/services/ntfy/) ⭐ - Notification library for gophers and their furry friends.
|
||||||
|
- [Scrt.link](https://scrt.link/) - Share a secret
|
||||||
- [Platypush](https://docs.platypush.tech/platypush/plugins/ntfy.html) - Automation platform aimed to run on any device that can run Python
|
- [Platypush](https://docs.platypush.tech/platypush/plugins/ntfy.html) - Automation platform aimed to run on any device that can run Python
|
||||||
|
|
||||||
## [UnifiedPush](https://unifiedpush.org/users/apps/) integrations
|
## [UnifiedPush](https://unifiedpush.org/users/apps/) integrations
|
||||||
|
@ -54,6 +56,8 @@ and uptime of third party servers, so use of each server is **at your own discre
|
||||||
- [ntfy-dotnet](https://github.com/nwithan8/ntfy-dotnet) - .NET client library to interact with a ntfy server (C# / .NET)
|
- [ntfy-dotnet](https://github.com/nwithan8/ntfy-dotnet) - .NET client library to interact with a ntfy server (C# / .NET)
|
||||||
- [node-ntfy-publish](https://github.com/cityssm/node-ntfy-publish) - A Node package to publish notifications to an ntfy server (Node)
|
- [node-ntfy-publish](https://github.com/cityssm/node-ntfy-publish) - A Node package to publish notifications to an ntfy server (Node)
|
||||||
- [ntfy](https://github.com/jonocarroll/ntfy) - Wraps the ntfy API with pipe-friendly tooling (R)
|
- [ntfy](https://github.com/jonocarroll/ntfy) - Wraps the ntfy API with pipe-friendly tooling (R)
|
||||||
|
- [ntfy-for-delphi](https://github.com/hazzelnuts/ntfy-for-delphi) - A friendly library to push instant notifications ntfy (Delphi)
|
||||||
|
- [ntfy](https://github.com/ffflorian/ntfy) - Send notifications over ntfy (JS)
|
||||||
|
|
||||||
## CLIs + GUIs
|
## CLIs + GUIs
|
||||||
|
|
||||||
|
@ -102,9 +106,16 @@ and uptime of third party servers, so use of each server is **at your own discre
|
||||||
- [ntfy_ynh](https://github.com/YunoHost-Apps/ntfy_ynh) - ntfy app for YunoHost
|
- [ntfy_ynh](https://github.com/YunoHost-Apps/ntfy_ynh) - ntfy app for YunoHost
|
||||||
- [drone-ntfy](https://github.com/Clortox/drone-ntfy) - Drone.io plugin for sending ntfy notifications from a pipeline (Shell)
|
- [drone-ntfy](https://github.com/Clortox/drone-ntfy) - Drone.io plugin for sending ntfy notifications from a pipeline (Shell)
|
||||||
- [ignition-ntfy-module](https://github.com/Kyvis-Labs/ignition-ntfy-module) - Adds support for sending notifications via a ntfy server to Ignition (Java)
|
- [ignition-ntfy-module](https://github.com/Kyvis-Labs/ignition-ntfy-module) - Adds support for sending notifications via a ntfy server to Ignition (Java)
|
||||||
|
- [maubot-ntfy](https://gitlab.com/999eagle/maubot-ntfy) - Matrix bot to subscribe to ntfy topics and send messages to Matrix (Python)
|
||||||
|
- [ntfy-wrapper](https://github.com/vict0rsch/ntfy-wrapper) - Wrapper around ntfy (Python)
|
||||||
|
- [nodebb-plugin-ntfy](https://github.com/NodeBB/nodebb-plugin-ntfy) - Push notifications for NodeBB forums
|
||||||
|
- [n8n-ntfy](https://github.com/raghavanand98/n8n-ntfy.sh) - n8n community node that lets you use ntfy in your workflows
|
||||||
|
|
||||||
## Blog + forum posts
|
## Blog + forum posts
|
||||||
|
|
||||||
|
- [January 2023 Developer Update](https://community.nodebb.org/topic/16908/january-2023-developer-update) - nodebb.org - 1/2023
|
||||||
|
- [Comment envoyer des notifications push sur votre téléphone facilement et gratuitement?](https://korben.info/notifications-push-telephone.html) - 1/2023
|
||||||
|
- [UnifiedPush: a decentralized, open-source push notification protocol](https://f-droid.org/en/2022/12/18/unifiedpush.html) ⭐ - 12/2022
|
||||||
- [ntfy setup instructions](https://docs.benjamin-altpeter.de/network/vms/1001029-ntfy/) - benjamin-altpeter.de - 12/2022
|
- [ntfy setup instructions](https://docs.benjamin-altpeter.de/network/vms/1001029-ntfy/) - benjamin-altpeter.de - 12/2022
|
||||||
- [Ntfy Self-Hosted Push Notifications](https://lachlanlife.net/posts/2022-12-ntfy/) - lachlanlife.net - 12/2022
|
- [Ntfy Self-Hosted Push Notifications](https://lachlanlife.net/posts/2022-12-ntfy/) - lachlanlife.net - 12/2022
|
||||||
- [ntfy.sh](https://paramdeo.com/til/ntfy-sh) - paramdeo.com - 11/2022
|
- [ntfy.sh](https://paramdeo.com/til/ntfy-sh) - paramdeo.com - 11/2022
|
||||||
|
@ -120,6 +131,7 @@ and uptime of third party servers, so use of each server is **at your own discre
|
||||||
- [Ntfy.sh – Send push notifications to your phone via PUT/POST](https://news.ycombinator.com/item?id=33517944) ⭐ - news.ycombinator.com - 11/2022
|
- [Ntfy.sh – Send push notifications to your phone via PUT/POST](https://news.ycombinator.com/item?id=33517944) ⭐ - news.ycombinator.com - 11/2022
|
||||||
- [Ntfy et Jeedom : un plugin](https://lunarok-domotique.com/2022/11/ntfy-et-jeedom/) - lunarok-domotique.com - 11/2022
|
- [Ntfy et Jeedom : un plugin](https://lunarok-domotique.com/2022/11/ntfy-et-jeedom/) - lunarok-domotique.com - 11/2022
|
||||||
- [Crea tu propio servidor de notificaciones con Ntfy](https://blog.parravidales.es/crea-tu-propio-servidor-de-notificaciones-con-ntfy/) - blog.parravidales.es - 11/2022
|
- [Crea tu propio servidor de notificaciones con Ntfy](https://blog.parravidales.es/crea-tu-propio-servidor-de-notificaciones-con-ntfy/) - blog.parravidales.es - 11/2022
|
||||||
|
- [unRAID Notifications with ntfy.sh](https://lder.dev/posts/ntfy-Notifications-With-unRAID/) - lder.dev - 10/2022
|
||||||
- [Zero-cost push notifications to your phone or desktop via PUT/POST ](https://lobste.rs/s/41dq13/zero_cost_push_notifications_your_phone) - lobste.rs - 10/2022
|
- [Zero-cost push notifications to your phone or desktop via PUT/POST ](https://lobste.rs/s/41dq13/zero_cost_push_notifications_your_phone) - lobste.rs - 10/2022
|
||||||
- [A nifty push notification system: ntfy](https://jpmens.net/2022/10/30/a-nifty-push-notification-system-ntfy/) - jpmens.net - 10/2022
|
- [A nifty push notification system: ntfy](https://jpmens.net/2022/10/30/a-nifty-push-notification-system-ntfy/) - jpmens.net - 10/2022
|
||||||
- [Alarmanlage der dritten Art (YouTube video)](https://www.youtube.com/watch?v=altb5QLHbaU&feature=youtu.be) - youtube.com - 10/2022
|
- [Alarmanlage der dritten Art (YouTube video)](https://www.youtube.com/watch?v=altb5QLHbaU&feature=youtu.be) - youtube.com - 10/2022
|
||||||
|
|
|
@ -9,14 +9,22 @@ and the [ntfy Android app](https://github.com/binwiederhier/ntfy-android/release
|
||||||
* Preliminary `/v1/health` API endpoint for service monitoring (no ticket)
|
* Preliminary `/v1/health` API endpoint for service monitoring (no ticket)
|
||||||
* Add basic health check to `Dockerfile` ([#555](https://github.com/binwiederhier/ntfy/pull/555), thanks to [@bt90](https://github.com/bt90))
|
* Add basic health check to `Dockerfile` ([#555](https://github.com/binwiederhier/ntfy/pull/555), thanks to [@bt90](https://github.com/bt90))
|
||||||
|
|
||||||
**Bug fixes:**
|
**Bug fixes + maintenance:**
|
||||||
|
|
||||||
* Fix `chown` issues with RHEL-like based systems ([#566](https://github.com/binwiederhier/ntfy/issues/566)/[#565](https://github.com/binwiederhier/ntfy/pull/565), thanks to [@danieldemus](https://github.com/danieldemus))
|
* Fix `chown` issues with RHEL-like based systems ([#566](https://github.com/binwiederhier/ntfy/issues/566)/[#565](https://github.com/binwiederhier/ntfy/pull/565), thanks to [@danieldemus](https://github.com/danieldemus))
|
||||||
|
* Removed `upx` (binary packing) for all builds due to false virus warnings ([#576](https://github.com/binwiederhier/ntfy/issues/576), thanks to [@shawnhwei](https://github.com/shawnhwei) for reporting)
|
||||||
|
|
||||||
**Documentation:**
|
**Documentation:**
|
||||||
|
|
||||||
* Add HTTP/2 and TLSv1.3 support to nginx docs ([#553](https://github.com/binwiederhier/ntfy/issues/553), thanks to [@bt90](https://github.com/bt90))
|
* Add HTTP/2 and TLSv1.3 support to nginx docs ([#553](https://github.com/binwiederhier/ntfy/issues/553), thanks to [@bt90](https://github.com/bt90))
|
||||||
* Small wording change for `client.yml` ([#562](https://github.com/binwiederhier/ntfy/pull/562), thanks to [@fleopaulD](https://github.com/fleopaulD))
|
* Small wording change for `client.yml` ([#562](https://github.com/binwiederhier/ntfy/pull/562), thanks to [@fleopaulD](https://github.com/fleopaulD))
|
||||||
|
* Fix K8s install docs ([#582](https://github.com/binwiederhier/ntfy/pull/582), thanks to [@Remedan](https://github.com/Remedan))
|
||||||
|
* Updated Jellyseer docs ([#604](https://github.com/binwiederhier/ntfy/pull/604), thanks to [@Y0ngg4n](https://github.com/Y0ngg4n))
|
||||||
|
* Updated iOS developer docs ([#605](https://github.com/binwiederhier/ntfy/pull/605), thanks to [@SticksDev](https://github.com/SticksDev))
|
||||||
|
|
||||||
|
**Additional languages:**
|
||||||
|
|
||||||
|
* Portuguese (thanks to [@ssantos](https://hosted.weblate.org/user/ssantos/))
|
||||||
|
|
||||||
## ntfy server v1.30.1
|
## ntfy server v1.30.1
|
||||||
Released December 23, 2022 🎅
|
Released December 23, 2022 🎅
|
||||||
|
|
2
go.mod
2
go.mod
|
@ -7,7 +7,7 @@ require (
|
||||||
cloud.google.com/go/storage v1.28.1 // indirect
|
cloud.google.com/go/storage v1.28.1 // indirect
|
||||||
github.com/BurntSushi/toml v1.2.1 // indirect
|
github.com/BurntSushi/toml v1.2.1 // indirect
|
||||||
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
|
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
|
||||||
github.com/emersion/go-smtp v0.16.0
|
github.com/emersion/go-smtp v0.15.0
|
||||||
github.com/gabriel-vasile/mimetype v1.4.1
|
github.com/gabriel-vasile/mimetype v1.4.1
|
||||||
github.com/gorilla/websocket v1.5.0
|
github.com/gorilla/websocket v1.5.0
|
||||||
github.com/mattn/go-sqlite3 v1.14.16
|
github.com/mattn/go-sqlite3 v1.14.16
|
||||||
|
|
33
go.sum
33
go.sum
|
@ -1,18 +1,12 @@
|
||||||
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
||||||
cloud.google.com/go v0.107.0 h1:qkj22L7bgkl6vIeZDlOY2po43Mx/TIa2Wsa7VR+PEww=
|
cloud.google.com/go v0.107.0 h1:qkj22L7bgkl6vIeZDlOY2po43Mx/TIa2Wsa7VR+PEww=
|
||||||
cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I=
|
cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I=
|
||||||
cloud.google.com/go/compute v1.13.0 h1:AYrLkB8NPdDRslNp4Jxmzrhdr03fUAIDbiGFjLWowoU=
|
|
||||||
cloud.google.com/go/compute v1.13.0/go.mod h1:5aPTS0cUNMIc1CE546K+Th6weJUNQErARyZtRXDJ8GE=
|
|
||||||
cloud.google.com/go/compute v1.14.0 h1:hfm2+FfxVmnRlh6LpB7cg1ZNU+5edAHmW679JePztk0=
|
cloud.google.com/go/compute v1.14.0 h1:hfm2+FfxVmnRlh6LpB7cg1ZNU+5edAHmW679JePztk0=
|
||||||
cloud.google.com/go/compute v1.14.0/go.mod h1:YfLtxrj9sU4Yxv+sXzZkyPjEyPBZfXHUvjxega5vAdo=
|
cloud.google.com/go/compute v1.14.0/go.mod h1:YfLtxrj9sU4Yxv+sXzZkyPjEyPBZfXHUvjxega5vAdo=
|
||||||
cloud.google.com/go/compute/metadata v0.2.2 h1:aWKAjYaBaOSrpKl57+jnS/3fJRQnxL7TvR/u1VVbt6k=
|
|
||||||
cloud.google.com/go/compute/metadata v0.2.2/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM=
|
|
||||||
cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY=
|
cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY=
|
||||||
cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
|
cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
|
||||||
cloud.google.com/go/firestore v1.9.0 h1:IBlRyxgGySXu5VuW0RgGFlTtLukSnNkpDiEOMkQkmpA=
|
cloud.google.com/go/firestore v1.9.0 h1:IBlRyxgGySXu5VuW0RgGFlTtLukSnNkpDiEOMkQkmpA=
|
||||||
cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE=
|
cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE=
|
||||||
cloud.google.com/go/iam v0.7.0 h1:k4MuwOsS7zGJJ+QfZ5vBK8SgHBAvYN/23BWsiihJ1vs=
|
|
||||||
cloud.google.com/go/iam v0.7.0/go.mod h1:H5Br8wRaDGNc8XP3keLc4unfUUZeyH3Sfl9XpQEYOeg=
|
|
||||||
cloud.google.com/go/iam v0.9.0 h1:bK6Or6mxhuL8lnj1i9j0yMo2wE/IeTO2cWlfUrf/TZs=
|
cloud.google.com/go/iam v0.9.0 h1:bK6Or6mxhuL8lnj1i9j0yMo2wE/IeTO2cWlfUrf/TZs=
|
||||||
cloud.google.com/go/iam v0.9.0/go.mod h1:nXAECrMt2qHpF6RZUZseteD6QyanL68reN4OXPw0UWM=
|
cloud.google.com/go/iam v0.9.0/go.mod h1:nXAECrMt2qHpF6RZUZseteD6QyanL68reN4OXPw0UWM=
|
||||||
cloud.google.com/go/longrunning v0.3.0 h1:NjljC+FYPV3uh5/OwWT6pVU+doBqMg2x/rZlE+CamDs=
|
cloud.google.com/go/longrunning v0.3.0 h1:NjljC+FYPV3uh5/OwWT6pVU+doBqMg2x/rZlE+CamDs=
|
||||||
|
@ -21,14 +15,11 @@ cloud.google.com/go/storage v1.28.1 h1:F5QDG5ChchaAVQhINh24U99OWHURqrW8OmQcGKXcb
|
||||||
cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y=
|
cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y=
|
||||||
firebase.google.com/go/v4 v4.10.0 h1:dgK/8uwfJbzc5LZK/GyRRfIkZEDObN9q0kgEXsjlXN4=
|
firebase.google.com/go/v4 v4.10.0 h1:dgK/8uwfJbzc5LZK/GyRRfIkZEDObN9q0kgEXsjlXN4=
|
||||||
firebase.google.com/go/v4 v4.10.0/go.mod h1:m0gLwPY9fxKggizzglgCNWOGnFnVPifLpqZzo5u3e/A=
|
firebase.google.com/go/v4 v4.10.0/go.mod h1:m0gLwPY9fxKggizzglgCNWOGnFnVPifLpqZzo5u3e/A=
|
||||||
github.com/AlekSi/pointer v1.0.0/go.mod h1:1kjywbfcPFCmncIxtk6fIEub6LKrfMz3gc5QKVOSOA8=
|
|
||||||
github.com/AlekSi/pointer v1.2.0 h1:glcy/gc4h8HnG2Z3ZECSzZ1IX1x2JxRVuDzaJwQE0+w=
|
github.com/AlekSi/pointer v1.2.0 h1:glcy/gc4h8HnG2Z3ZECSzZ1IX1x2JxRVuDzaJwQE0+w=
|
||||||
github.com/AlekSi/pointer v1.2.0/go.mod h1:gZGfd3dpW4vEc/UlyfKKi1roIqcCgwOIvb0tSNSBle0=
|
github.com/AlekSi/pointer v1.2.0/go.mod h1:gZGfd3dpW4vEc/UlyfKKi1roIqcCgwOIvb0tSNSBle0=
|
||||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||||
github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak=
|
github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak=
|
||||||
github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
|
github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
|
||||||
github.com/MicahParks/keyfunc v1.7.0 h1:LBd4tBj6FwGs2S4GXniQbgrG0PXzIldyGDKWch8slhg=
|
|
||||||
github.com/MicahParks/keyfunc v1.7.0/go.mod h1:IdnCilugA0O/99dW+/MkvlyrsX8+L8+x95xuVNtM5jw=
|
|
||||||
github.com/MicahParks/keyfunc v1.9.0 h1:lhKd5xrFHLNOWrDc4Tyb/Q1AJ4LCzQ48GVJyVIID3+o=
|
github.com/MicahParks/keyfunc v1.9.0 h1:lhKd5xrFHLNOWrDc4Tyb/Q1AJ4LCzQ48GVJyVIID3+o=
|
||||||
github.com/MicahParks/keyfunc v1.9.0/go.mod h1:IdnCilugA0O/99dW+/MkvlyrsX8+L8+x95xuVNtM5jw=
|
github.com/MicahParks/keyfunc v1.9.0/go.mod h1:IdnCilugA0O/99dW+/MkvlyrsX8+L8+x95xuVNtM5jw=
|
||||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||||
|
@ -44,8 +35,6 @@ github.com/emersion/go-sasl v0.0.0-20220912192320-0145f2c60ead h1:fI1Jck0vUrXT8b
|
||||||
github.com/emersion/go-sasl v0.0.0-20220912192320-0145f2c60ead/go.mod h1:iL2twTeMvZnrg54ZoPDNfJaJaqy0xIQFuBdrLsmspwQ=
|
github.com/emersion/go-sasl v0.0.0-20220912192320-0145f2c60ead/go.mod h1:iL2twTeMvZnrg54ZoPDNfJaJaqy0xIQFuBdrLsmspwQ=
|
||||||
github.com/emersion/go-smtp v0.15.0 h1:3+hMGMGrqP/lqd7qoxZc1hTU8LY8gHV9RFGWlqSDmP8=
|
github.com/emersion/go-smtp v0.15.0 h1:3+hMGMGrqP/lqd7qoxZc1hTU8LY8gHV9RFGWlqSDmP8=
|
||||||
github.com/emersion/go-smtp v0.15.0/go.mod h1:qm27SGYgoIPRot6ubfQ/GpiPy/g3PaZAVRxiO/sDUgQ=
|
github.com/emersion/go-smtp v0.15.0/go.mod h1:qm27SGYgoIPRot6ubfQ/GpiPy/g3PaZAVRxiO/sDUgQ=
|
||||||
github.com/emersion/go-smtp v0.16.0 h1:eB9CY9527WdEZSs5sWisTmilDX7gG+Q/2IdRcmubpa8=
|
|
||||||
github.com/emersion/go-smtp v0.16.0/go.mod h1:qm27SGYgoIPRot6ubfQ/GpiPy/g3PaZAVRxiO/sDUgQ=
|
|
||||||
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||||
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
||||||
|
@ -86,8 +75,6 @@ github.com/google/martian/v3 v3.2.1 h1:d8MncMlErDFTwQGBK1xhv026j9kqhvw1Qv9IbWT1V
|
||||||
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
|
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
|
||||||
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/googleapis/enterprise-certificate-proxy v0.2.0 h1:y8Yozv7SZtlU//QXbezB6QkpuE6jMD2/gfzk4AftXjs=
|
|
||||||
github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg=
|
|
||||||
github.com/googleapis/enterprise-certificate-proxy v0.2.1 h1:RY7tHKZcRlk788d5WSo/e83gOyyy742E8GSs771ySpg=
|
github.com/googleapis/enterprise-certificate-proxy v0.2.1 h1:RY7tHKZcRlk788d5WSo/e83gOyyy742E8GSs771ySpg=
|
||||||
github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k=
|
github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k=
|
||||||
github.com/googleapis/gax-go/v2 v2.7.0 h1:IcsPKeInNvYi7eqSaDjiZqDDKu5rsmunY0Y1YupQSSQ=
|
github.com/googleapis/gax-go/v2 v2.7.0 h1:IcsPKeInNvYi7eqSaDjiZqDDKu5rsmunY0Y1YupQSSQ=
|
||||||
|
@ -96,11 +83,8 @@ github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWm
|
||||||
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
||||||
github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y=
|
github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y=
|
||||||
github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
|
github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
|
||||||
github.com/olebedev/when v0.0.0-20211212231525-59bd4edcf9d6 h1:oDSPaYiL2dbjcArLrFS8ANtwgJMyOLzvQCZon+XmFsk=
|
|
||||||
github.com/olebedev/when v0.0.0-20211212231525-59bd4edcf9d6/go.mod h1:DPucAeQGDPUzYUt+NaWw6qsF5SFapWWToxEiVDh2aV0=
|
|
||||||
github.com/olebedev/when v0.0.0-20221205223600-4d190b02b8d8 h1:0uFGkScHef2Xd8g74BMHU1jFcnKEm0PzrPn4CluQ9FI=
|
github.com/olebedev/when v0.0.0-20221205223600-4d190b02b8d8 h1:0uFGkScHef2Xd8g74BMHU1jFcnKEm0PzrPn4CluQ9FI=
|
||||||
github.com/olebedev/when v0.0.0-20221205223600-4d190b02b8d8/go.mod h1:T0THb4kP9D3NNqlvCwIG4GyUioTAzEhB4RNVzig/43E=
|
github.com/olebedev/when v0.0.0-20221205223600-4d190b02b8d8/go.mod h1:T0THb4kP9D3NNqlvCwIG4GyUioTAzEhB4RNVzig/43E=
|
||||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
|
||||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
|
@ -111,13 +95,10 @@ github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQD
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
|
||||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||||
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
|
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
|
||||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||||
github.com/urfave/cli/v2 v2.23.6 h1:iWmtKD+prGo1nKUtLO0Wg4z9esfBM4rAV4QRLQiEmJ4=
|
|
||||||
github.com/urfave/cli/v2 v2.23.6/go.mod h1:GHupkWPMM0M/sj1a2b4wUrWBPzazNrIjouW6fmdJLxc=
|
|
||||||
github.com/urfave/cli/v2 v2.23.7 h1:YHDQ46s3VghFHFf1DdF+Sh7H4RqhcM+t0TmZRJx4oJY=
|
github.com/urfave/cli/v2 v2.23.7 h1:YHDQ46s3VghFHFf1DdF+Sh7H4RqhcM+t0TmZRJx4oJY=
|
||||||
github.com/urfave/cli/v2 v2.23.7/go.mod h1:GHupkWPMM0M/sj1a2b4wUrWBPzazNrIjouW6fmdJLxc=
|
github.com/urfave/cli/v2 v2.23.7/go.mod h1:GHupkWPMM0M/sj1a2b4wUrWBPzazNrIjouW6fmdJLxc=
|
||||||
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU=
|
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU=
|
||||||
|
@ -126,8 +107,6 @@ go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
|
||||||
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
|
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.3.0 h1:a06MkbcxBrEFc0w0QIZWXrH/9cCX6KJyWbBOIwAn+7A=
|
|
||||||
golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
|
|
||||||
golang.org/x/crypto v0.4.0 h1:UVQgzMY87xqpKNgb+kDsll2Igd33HszWHFLmpaRMq/8=
|
golang.org/x/crypto v0.4.0 h1:UVQgzMY87xqpKNgb+kDsll2Igd33HszWHFLmpaRMq/8=
|
||||||
golang.org/x/crypto v0.4.0/go.mod h1:3quD/ATkf6oY+rnes5c3ExXTbLc8mueNue5/DoinL80=
|
golang.org/x/crypto v0.4.0/go.mod h1:3quD/ATkf6oY+rnes5c3ExXTbLc8mueNue5/DoinL80=
|
||||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
|
@ -143,13 +122,9 @@ golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR
|
||||||
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||||
golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||||
golang.org/x/net v0.0.0-20220708220712-1185a9018129/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
golang.org/x/net v0.0.0-20220708220712-1185a9018129/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||||
golang.org/x/net v0.2.0 h1:sZfSu1wtKLGlWI4ZZayP0ck9Y73K1ynO6gqzTdBVdPU=
|
|
||||||
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
|
|
||||||
golang.org/x/net v0.4.0 h1:Q5QPcMlvfxFTAPV0+07Xz/MpK9NTXu2VDUuy0FeMfaU=
|
golang.org/x/net v0.4.0 h1:Q5QPcMlvfxFTAPV0+07Xz/MpK9NTXu2VDUuy0FeMfaU=
|
||||||
golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE=
|
golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE=
|
||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
golang.org/x/oauth2 v0.2.0 h1:GtQkldQ9m7yvzCL1V+LrYow3Khe0eJH0w7RbX/VbaIU=
|
|
||||||
golang.org/x/oauth2 v0.2.0/go.mod h1:Cwn6afJ8jrQwYMxQDTpISoXmXW9I6qF6vDeuuoX3Ibs=
|
|
||||||
golang.org/x/oauth2 v0.3.0 h1:6l90koy8/LaBLmLu8jpHeHexzMwEita0zFfYlggy2F8=
|
golang.org/x/oauth2 v0.3.0 h1:6l90koy8/LaBLmLu8jpHeHexzMwEita0zFfYlggy2F8=
|
||||||
golang.org/x/oauth2 v0.3.0/go.mod h1:rQrIauxkUhJ6CuwEXwymO2/eh4xz2ZWF1nBkcxS+tGk=
|
golang.org/x/oauth2 v0.3.0/go.mod h1:rQrIauxkUhJ6CuwEXwymO2/eh4xz2ZWF1nBkcxS+tGk=
|
||||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
@ -166,8 +141,6 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc
|
||||||
golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ=
|
golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ=
|
||||||
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||||
golang.org/x/term v0.2.0 h1:z85xZCsEl7bi/KwbNADeBYoOP0++7W1ipu+aGnpwzRM=
|
|
||||||
golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
|
|
||||||
golang.org/x/term v0.3.0 h1:qoo4akIqOcDME5bhc/NgxUdovd6BSS2uMsVjB56q1xI=
|
golang.org/x/term v0.3.0 h1:qoo4akIqOcDME5bhc/NgxUdovd6BSS2uMsVjB56q1xI=
|
||||||
golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA=
|
golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
|
@ -186,8 +159,6 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn
|
||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk=
|
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk=
|
||||||
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
|
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
|
||||||
google.golang.org/api v0.103.0 h1:9yuVqlu2JCvcLg9p8S3fcFLZij8EPSyvODIY1rkMizQ=
|
|
||||||
google.golang.org/api v0.103.0/go.mod h1:hGtW6nK1AC+d9si/UBhw8Xli+QMOf6xyNAyJw4qU9w0=
|
|
||||||
google.golang.org/api v0.105.0 h1:t6P9Jj+6XTn4U9I2wycQai6Q/Kz7iOT+QzjJ3G2V4x8=
|
google.golang.org/api v0.105.0 h1:t6P9Jj+6XTn4U9I2wycQai6Q/Kz7iOT+QzjJ3G2V4x8=
|
||||||
google.golang.org/api v0.105.0/go.mod h1:qh7eD5FJks5+BcE+cjBIm6Gz8vioK7EHvnlniqXBnqI=
|
google.golang.org/api v0.105.0/go.mod h1:qh7eD5FJks5+BcE+cjBIm6Gz8vioK7EHvnlniqXBnqI=
|
||||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
||||||
|
@ -199,10 +170,6 @@ google.golang.org/appengine/v2 v2.0.2/go.mod h1:PkgRUWz4o1XOvbqtWTkBtCitEJ5Tp4Ho
|
||||||
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
||||||
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
|
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
|
||||||
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
|
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
|
||||||
google.golang.org/genproto v0.0.0-20221202195650-67e5cbc046fd h1:OjndDrsik+Gt+e6fs45z9AxiewiKyLKYpA45W5Kpkks=
|
|
||||||
google.golang.org/genproto v0.0.0-20221202195650-67e5cbc046fd/go.mod h1:cTsE614GARnxrLsqKREzmNYJACSWWpAWdNMwnD7c2BE=
|
|
||||||
google.golang.org/genproto v0.0.0-20221207170731-23e4bf6bdc37 h1:jmIfw8+gSvXcZSgaFAGyInDXeWzUhvYH57G/5GKMn70=
|
|
||||||
google.golang.org/genproto v0.0.0-20221207170731-23e4bf6bdc37/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM=
|
|
||||||
google.golang.org/genproto v0.0.0-20221227171554-f9683d7f8bef h1:uQ2vjV/sHTsWSqdKeLqmwitzgvjMl7o4IdtHwUDXSJY=
|
google.golang.org/genproto v0.0.0-20221227171554-f9683d7f8bef h1:uQ2vjV/sHTsWSqdKeLqmwitzgvjMl7o4IdtHwUDXSJY=
|
||||||
google.golang.org/genproto v0.0.0-20221227171554-f9683d7f8bef/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM=
|
google.golang.org/genproto v0.0.0-20221227171554-f9683d7f8bef/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM=
|
||||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
"message_bar_type_message": "Tapez un message ici",
|
"message_bar_type_message": "Tapez un message ici",
|
||||||
"notifications_attachment_open_button": "Ouvrir la pièce jointe",
|
"notifications_attachment_open_button": "Ouvrir la pièce jointe",
|
||||||
"notifications_attachment_link_expires": "le lien expire {{date}}",
|
"notifications_attachment_link_expires": "le lien expire {{date}}",
|
||||||
"message_bar_error_publishing": "Notification d'erreur de publication",
|
"message_bar_error_publishing": "Erreur lors de la publication de la notification",
|
||||||
"nav_button_all_notifications": "Toutes les notifications",
|
"nav_button_all_notifications": "Toutes les notifications",
|
||||||
"nav_button_settings": "Paramètres",
|
"nav_button_settings": "Paramètres",
|
||||||
"nav_button_documentation": "Documentation",
|
"nav_button_documentation": "Documentation",
|
||||||
|
@ -80,7 +80,7 @@
|
||||||
"subscribe_dialog_login_title": "Connexion nécessaire",
|
"subscribe_dialog_login_title": "Connexion nécessaire",
|
||||||
"prefs_notifications_min_priority_low_and_higher": "Priorité basse et au-dessus",
|
"prefs_notifications_min_priority_low_and_higher": "Priorité basse et au-dessus",
|
||||||
"prefs_users_dialog_button_cancel": "Annuler",
|
"prefs_users_dialog_button_cancel": "Annuler",
|
||||||
"error_boundary_button_copy_stack_trace": "Copier la stack strace",
|
"error_boundary_button_copy_stack_trace": "Copier la trace d'appels",
|
||||||
"publish_dialog_attached_file_title": "Fichier joint :",
|
"publish_dialog_attached_file_title": "Fichier joint :",
|
||||||
"publish_dialog_checkbox_publish_another": "Publier un autre",
|
"publish_dialog_checkbox_publish_another": "Publier un autre",
|
||||||
"publish_dialog_attached_file_filename_placeholder": "Nom du fichier joint",
|
"publish_dialog_attached_file_filename_placeholder": "Nom du fichier joint",
|
||||||
|
@ -129,7 +129,7 @@
|
||||||
"prefs_users_table_user_header": "Utilisateur",
|
"prefs_users_table_user_header": "Utilisateur",
|
||||||
"prefs_users_dialog_title_edit": "Éditer l'utilisateur",
|
"prefs_users_dialog_title_edit": "Éditer l'utilisateur",
|
||||||
"prefs_users_dialog_button_add": "Ajouter",
|
"prefs_users_dialog_button_add": "Ajouter",
|
||||||
"error_boundary_description": "Ceci ne devrait évidemment pas arriver. Désolé pour ça.<br/>Si vous avez une minute, merci de <githubLink>signaler ceci sur GitHub</githubLink>, ou faites-le nous savoir par <discordLink>Discord</discordLink> ou <matrixLink>Matric</matrixLink>.",
|
"error_boundary_description": "Ceci ne devrait évidemment pas arriver. Désolé pour ça.<br/>Si vous avez une minute, merci de <githubLink>signaler ceci sur GitHub</githubLink>, ou faites-le nous savoir par <discordLink>Discord</discordLink> ou <matrixLink>Matrix</matrixLink>.",
|
||||||
"prefs_users_dialog_title_add": "Ajouter un utilisateur",
|
"prefs_users_dialog_title_add": "Ajouter un utilisateur",
|
||||||
"error_boundary_stack_trace": "Trace de pile d'appels",
|
"error_boundary_stack_trace": "Trace de pile d'appels",
|
||||||
"error_boundary_gathering_info": "Récupérer plus d'information…",
|
"error_boundary_gathering_info": "Récupérer plus d'information…",
|
||||||
|
|
|
@ -102,7 +102,7 @@
|
||||||
"publish_dialog_topic_label": "Emnenavn",
|
"publish_dialog_topic_label": "Emnenavn",
|
||||||
"prefs_notifications_delete_after_one_day_description": "Merknader slettes automatisk etter én dag",
|
"prefs_notifications_delete_after_one_day_description": "Merknader slettes automatisk etter én dag",
|
||||||
"notifications_click_copy_url_button": "Kopier lenke",
|
"notifications_click_copy_url_button": "Kopier lenke",
|
||||||
"error_boundary_title": "Oida. Ntfy krasjet.",
|
"error_boundary_title": "Oida, ntfy krasjet",
|
||||||
"publish_dialog_message_placeholder": "Skriv en melding her",
|
"publish_dialog_message_placeholder": "Skriv en melding her",
|
||||||
"publish_dialog_button_cancel": "Avbryt",
|
"publish_dialog_button_cancel": "Avbryt",
|
||||||
"prefs_notifications_min_priority_title": "Minimumsprioritet",
|
"prefs_notifications_min_priority_title": "Minimumsprioritet",
|
||||||
|
@ -118,9 +118,74 @@
|
||||||
"prefs_users_table_base_url_header": "Tjeneste-nettadresse",
|
"prefs_users_table_base_url_header": "Tjeneste-nettadresse",
|
||||||
"prefs_users_dialog_button_cancel": "Avbryt",
|
"prefs_users_dialog_button_cancel": "Avbryt",
|
||||||
"prefs_users_dialog_button_add": "Legg til",
|
"prefs_users_dialog_button_add": "Legg til",
|
||||||
"publish_dialog_chip_attach_url_label": "Legg ved fil per nettadresse",
|
"publish_dialog_chip_attach_url_label": "Legg til fil med nettadresse",
|
||||||
"publish_dialog_tags_placeholder": "Kommainndelt liste over etiketter, f.eks. advarsel, srv1-sikkerhetskopi",
|
"publish_dialog_tags_placeholder": "Kommainndelt liste over etiketter, f.eks. advarsel, srv1-sikkerhetskopi",
|
||||||
"prefs_notifications_sound_description_none": "Merknader er lydløse når de mottas",
|
"prefs_notifications_sound_description_none": "Merknader spiller ikke lyd når de mottas",
|
||||||
"subscribe_dialog_subscribe_topic_placeholder": "Emnenavn, f.eks. phil_varsler",
|
"subscribe_dialog_subscribe_topic_placeholder": "Emnenavn, f.eks. phil_varsler",
|
||||||
"prefs_notifications_min_priority_default_and_higher": "Forvalgt prioritet og høyere"
|
"prefs_notifications_min_priority_default_and_higher": "Forvalgt prioritet og høyere",
|
||||||
|
"notifications_no_subscriptions_title": "Det ser ut til at du ikke har noen abonnementer ennå.",
|
||||||
|
"publish_dialog_attachment_limits_file_and_quota_reached": "overskrider {{fileSizeLimit}} filgrense og kvote, {{remainingBytes}} gjenstår",
|
||||||
|
"publish_dialog_attachment_limits_file_reached": "overskrider filgrensen på {{fileSizeLimit}}",
|
||||||
|
"publish_dialog_title_label": "Tittel",
|
||||||
|
"publish_dialog_title_placeholder": "Varslingstittel, f.eks. Diskplassvarsel",
|
||||||
|
"publish_dialog_topic_placeholder": "Emnenavn, f.eks. halgeir_varsler",
|
||||||
|
"publish_dialog_chip_click_label": "Klikk URL",
|
||||||
|
"publish_dialog_chip_delay_label": "Forsink leveringen",
|
||||||
|
"publish_dialog_details_examples_description": "For eksempler og en detaljert beskrivelse av alle sendefunksjoner, se <docsLink>dokumentasjonen</docsLink>.",
|
||||||
|
"publish_dialog_base_url_placeholder": "Tjeneste-URL, f.eks. https://example.com",
|
||||||
|
"alert_grant_description": "Gi nettleseren din tillatelse til å vise skrivebordsvarsler.",
|
||||||
|
"alert_not_supported_description": "Varsler støttes ikke i nettleseren din.",
|
||||||
|
"notifications_attachment_file_app": "Android-app-fil",
|
||||||
|
"notifications_no_subscriptions_description": "Klikk på \"{{linktext}}\"-koblingen for å opprette eller abonnere på et emne. Etter det kan du sende meldinger via PUT eller POST, og du vil motta varsler her.",
|
||||||
|
"notifications_actions_http_request_title": "Send HTTP {{metode}} til {{url}}",
|
||||||
|
"notifications_none_for_any_description": "For å sende varsler til et emne, bare PUT eller POST til emne-URLen. Her er et eksempel som bruker et av emnene dine.",
|
||||||
|
"notifications_more_details": "For mer informasjon, sjekk ut <websiteLink>nettstedet</websiteLink> eller <docsLink>dokumentasjonen</docsLink>.",
|
||||||
|
"publish_dialog_attachment_limits_quota_reached": "overskrider kvoten, {{remainingBytes}} gjenstår",
|
||||||
|
"publish_dialog_click_reset": "Fjern klikk-URL",
|
||||||
|
"publish_dialog_delay_placeholder": "Forsinket levering, f.eks. {{unixTimestamp}}, {{relativeTime}} eller \"{{naturalLanguage}}\" (bare på engelsk)",
|
||||||
|
"emoji_picker_search_clear": "Tøm søk",
|
||||||
|
"subscribe_dialog_subscribe_description": "Det kan hende emner ikke er passordsbeskyttet, så velg et navn som ikke er enkelt å gjette. Når du har abonnert kan du utføre PUT/POST av merknader.",
|
||||||
|
"publish_dialog_checkbox_publish_another": "Publiser enda en",
|
||||||
|
"subscribe_dialog_login_description": "Dette emnet er passordbeskyttet. Vennligst skriv inn brukernavn og passord for å abonnere.",
|
||||||
|
"prefs_notifications_sound_play": "Spill av valgt lyd",
|
||||||
|
"subscribe_dialog_error_user_not_authorized": "Bruker {{brukernavn}} ikke autorisert",
|
||||||
|
"prefs_users_delete_button": "Slett bruker",
|
||||||
|
"error_boundary_unsupported_indexeddb_description": "ntfy-nettappen trenger IndexedDB for å fungere, og nettleseren din støtter ikke IndexedDB i privat nettlesingsmodus.<br/><br/>Selv om dette er uheldig, gir det heller ikke så mye mening å bruke ntfy-nettappen i privat surfemodus uansett, fordi alt er lagret i nettleserlagringen. Du kan lese mer om det <githubLink>i denne GitHub-feilmeldingen</githubLink>, eller snakk med oss på <discordLink>Discord</discordLink> eller <matrixLink>Matrix</matrixLink>.",
|
||||||
|
"action_bar_show_menu": "Vis meny",
|
||||||
|
"action_bar_toggle_mute": "Aktiver/deaktiver notifikasjoner",
|
||||||
|
"prefs_notifications_min_priority_description_max": "Vis merknader hvis prioritet er 5 (maks.)",
|
||||||
|
"prefs_notifications_min_priority_any": "Hvilken som helst prioritet",
|
||||||
|
"prefs_notifications_min_priority_low_and_higher": "Lav prioritet og høyere",
|
||||||
|
"prefs_users_description": "Legg til/fjern brukere for dine beskyttede emner her. Vær oppmerksom på at brukernavn og passord er lagret i nettleserens lokale lagring.",
|
||||||
|
"error_boundary_description": "Dette skal åpenbart ikke skje. Beklager dette.<br/>Hvis du har et minutt, vennligst <githubLink>rapporter dette på GitHub</githubLink>, eller gi oss beskjed via <discordLink>Discord</discordLink> eller <matrixLink>Matrix</matrixLink>.",
|
||||||
|
"action_bar_logo_alt": "ntfy logo",
|
||||||
|
"message_bar_publish": "Publiser melding",
|
||||||
|
"action_bar_toggle_action_menu": "Åpne/lukk handlingsmeny",
|
||||||
|
"message_bar_show_dialog": "Vis publiseringsdialog",
|
||||||
|
"nav_button_muted": "Varsler dempet",
|
||||||
|
"nav_button_connecting": "kobler til",
|
||||||
|
"notifications_list": "Varslingsliste",
|
||||||
|
"notifications_list_item": "Varsling",
|
||||||
|
"notifications_mark_read": "Merk som lest",
|
||||||
|
"notifications_delete": "Slett",
|
||||||
|
"notifications_priority_x": "Prioritet {{prioritet}}",
|
||||||
|
"notifications_new_indicator": "Nytt varsel",
|
||||||
|
"notifications_attachment_image": "Vedlagt bilde",
|
||||||
|
"notifications_attachment_file_image": "bildefil",
|
||||||
|
"notifications_attachment_file_video": "videofil",
|
||||||
|
"notifications_attachment_file_audio": "lydfil",
|
||||||
|
"notifications_attachment_file_document": "annet dokument",
|
||||||
|
"notifications_actions_not_supported": "Handling støttes ikke i nettappen",
|
||||||
|
"notifications_none_for_topic_description": "For å sende varsler til dette emnet, bare PUT eller POST til emne-URLen.",
|
||||||
|
"publish_dialog_emoji_picker_show": "Velg emoji",
|
||||||
|
"publish_dialog_topic_reset": "Tilbakestill emne",
|
||||||
|
"publish_dialog_click_label": "Klikk URL",
|
||||||
|
"publish_dialog_email_reset": "Fjern videresending av e-post",
|
||||||
|
"publish_dialog_attach_reset": "Fjern URL vedlegg",
|
||||||
|
"publish_dialog_delay_reset": "Fjern forsinket levering",
|
||||||
|
"publish_dialog_attached_file_remove": "Fjern vedlagt fil",
|
||||||
|
"subscribe_dialog_subscribe_base_url_label": "Tjeneste-URL",
|
||||||
|
"prefs_users_table": "Brukertabell",
|
||||||
|
"prefs_users_edit_button": "Rediger bruker",
|
||||||
|
"error_boundary_unsupported_indexeddb_title": "Privat surfing støttes ikke"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
{
|
{
|
||||||
"action_bar_settings": "Instellingen",
|
"action_bar_settings": "Instellingen",
|
||||||
"action_bar_send_test_notification": "Stuur test notificatie",
|
"action_bar_send_test_notification": "Verstuur testnotificatie.",
|
||||||
"action_bar_clear_notifications": "Wis alle notificaties",
|
"action_bar_clear_notifications": "Wis alle notificaties",
|
||||||
"message_bar_type_message": "Typ hier een bericht",
|
"message_bar_type_message": "Typ hier een bericht",
|
||||||
"action_bar_unsubscribe": "Afmelden",
|
"action_bar_unsubscribe": "Afmelden",
|
||||||
"message_bar_error_publishing": "Fout bij publiceren notificatie",
|
"message_bar_error_publishing": "Fout bij publiceren notificatie",
|
||||||
"nav_topics_title": "Geabonneerde onderwerpen",
|
"nav_topics_title": "Geabonneerde onderwerpen",
|
||||||
"nav_button_settings": "Instellingen",
|
"nav_button_settings": "Instellingen",
|
||||||
"alert_not_supported_description": "Notificaties worden niet ondersteund in je browser.",
|
"alert_not_supported_description": "Notificaties worden niet ondersteund door je browser.",
|
||||||
"notifications_none_for_any_title": "Je hebt nog geen notificaties ontvangen.",
|
"notifications_none_for_any_title": "Je hebt nog geen notificaties ontvangen.",
|
||||||
"publish_dialog_tags_label": "Tags",
|
"publish_dialog_tags_label": "Tags",
|
||||||
"publish_dialog_chip_attach_file_label": "Lokaal bestand bijvoegen",
|
"publish_dialog_chip_attach_file_label": "Lokaal bestand bijvoegen",
|
||||||
|
@ -26,20 +26,20 @@
|
||||||
"action_bar_show_menu": "Toon menu",
|
"action_bar_show_menu": "Toon menu",
|
||||||
"action_bar_logo_alt": "ntfy logo",
|
"action_bar_logo_alt": "ntfy logo",
|
||||||
"action_bar_toggle_mute": "Notificaties dempen/opheffen",
|
"action_bar_toggle_mute": "Notificaties dempen/opheffen",
|
||||||
"action_bar_toggle_action_menu": "Actie menu openen/sluiten",
|
"action_bar_toggle_action_menu": "Open/Sluit actiemenu",
|
||||||
"message_bar_show_dialog": "Toon publicatie venster",
|
"message_bar_show_dialog": "Toon publicatie venster",
|
||||||
"message_bar_publish": "Bericht publiceren",
|
"message_bar_publish": "Bericht publiceren",
|
||||||
"nav_button_all_notifications": "Alle notificaties",
|
"nav_button_all_notifications": "Alle notificaties",
|
||||||
"nav_button_documentation": "Documentatie",
|
"nav_button_documentation": "Documentatie",
|
||||||
"nav_button_publish_message": "Notificatie publiceren",
|
"nav_button_publish_message": "Notificatie publiceren",
|
||||||
"nav_button_subscribe": "Onderwerp abonneren",
|
"nav_button_subscribe": "Abonneer op onderwerp",
|
||||||
"nav_button_muted": "Notificaties gedempt",
|
"nav_button_muted": "Notificaties gedempt",
|
||||||
"nav_button_connecting": "verbinden",
|
"nav_button_connecting": "verbinden",
|
||||||
"alert_grant_title": "Notificaties zijn uitgeschakeld",
|
"alert_grant_title": "Notificaties zijn uitgeschakeld",
|
||||||
"alert_grant_description": "Geef je browser toestemming om meldingen weer te geven.",
|
"alert_grant_description": "Verleen je browser toestemming voor het weergeven van notificaties.",
|
||||||
"alert_grant_button": "Nu toestaan",
|
"alert_grant_button": "Nu toestaan",
|
||||||
"alert_not_supported_title": "Notificaties zijn niet ondersteund",
|
"alert_not_supported_title": "Notificaties zijn niet ondersteund",
|
||||||
"notifications_list": "Notificaties lijst",
|
"notifications_list": "Notificatielijst",
|
||||||
"notifications_list_item": "Notificatie",
|
"notifications_list_item": "Notificatie",
|
||||||
"notifications_mark_read": "Markeer als gelezen",
|
"notifications_mark_read": "Markeer als gelezen",
|
||||||
"notifications_delete": "Verwijder",
|
"notifications_delete": "Verwijder",
|
||||||
|
@ -59,7 +59,7 @@
|
||||||
"notifications_attachment_file_audio": "audiobestand",
|
"notifications_attachment_file_audio": "audiobestand",
|
||||||
"notifications_attachment_file_app": "Android app bestand",
|
"notifications_attachment_file_app": "Android app bestand",
|
||||||
"notifications_attachment_file_document": "overig document",
|
"notifications_attachment_file_document": "overig document",
|
||||||
"notifications_click_copy_url_title": "URL naar klembord kopiëren",
|
"notifications_click_copy_url_title": "link URL naar klembord kopiëren",
|
||||||
"notifications_click_copy_url_button": "Link kopiëren",
|
"notifications_click_copy_url_button": "Link kopiëren",
|
||||||
"notifications_click_open_button": "Link openen",
|
"notifications_click_open_button": "Link openen",
|
||||||
"notifications_none_for_topic_description": "Om notificaties naar dit onderwerp te sturen, doe een PUT of POST naar de URL van het onderwerp.",
|
"notifications_none_for_topic_description": "Om notificaties naar dit onderwerp te sturen, doe een PUT of POST naar de URL van het onderwerp.",
|
||||||
|
@ -73,7 +73,7 @@
|
||||||
"publish_dialog_title_no_topic": "Notificatie publiceren",
|
"publish_dialog_title_no_topic": "Notificatie publiceren",
|
||||||
"publish_dialog_progress_uploading": "Uploaden …",
|
"publish_dialog_progress_uploading": "Uploaden …",
|
||||||
"notifications_actions_open_url_title": "Ga naar {{url}}",
|
"notifications_actions_open_url_title": "Ga naar {{url}}",
|
||||||
"notifications_actions_not_supported": "Deze actie is niet ondersteund in de web applicatie",
|
"notifications_actions_not_supported": "Actie wordt niet ondersteund in de webapplicatie",
|
||||||
"notifications_actions_http_request_title": "Stuur HTTP {{method}} naar {{url}}",
|
"notifications_actions_http_request_title": "Stuur HTTP {{method}} naar {{url}}",
|
||||||
"notifications_none_for_topic_title": "Je hebt nog geen notificaties ontvangen voor dit onderwerp.",
|
"notifications_none_for_topic_title": "Je hebt nog geen notificaties ontvangen voor dit onderwerp.",
|
||||||
"publish_dialog_priority_low": "Lage prioriteit",
|
"publish_dialog_priority_low": "Lage prioriteit",
|
||||||
|
|
|
@ -1 +1,191 @@
|
||||||
{}
|
{
|
||||||
|
"action_bar_clear_notifications": "Limpar todas as notificações",
|
||||||
|
"action_bar_send_test_notification": "Enviar notificação de teste",
|
||||||
|
"action_bar_unsubscribe": "Anular subscrição",
|
||||||
|
"action_bar_toggle_mute": "Ativa/Desativa notificações",
|
||||||
|
"action_bar_toggle_action_menu": "Abrir/fechar menu de ação",
|
||||||
|
"message_bar_type_message": "Escreva uma mensagem aqui",
|
||||||
|
"message_bar_error_publishing": "Erro ao publicar notificação",
|
||||||
|
"message_bar_publish": "Publicar mensagem",
|
||||||
|
"nav_topics_title": "Tópicos subscritos",
|
||||||
|
"nav_button_all_notifications": "Todas notificações",
|
||||||
|
"nav_button_settings": "Configurações",
|
||||||
|
"nav_button_documentation": "Documentação",
|
||||||
|
"nav_button_publish_message": "Publicar notificação",
|
||||||
|
"nav_button_subscribe": "Subscrever tópico",
|
||||||
|
"nav_button_muted": "Notificações desativadas",
|
||||||
|
"nav_button_connecting": "A ligar",
|
||||||
|
"alert_grant_title": "As notificações estão desativadas",
|
||||||
|
"alert_grant_description": "Conceder permissão ao seu navegador para mostrar notificações.",
|
||||||
|
"alert_not_supported_title": "Notificações não suportadas",
|
||||||
|
"notifications_list": "Lista de notificações",
|
||||||
|
"alert_not_supported_description": "As notificações não são suportadas pelo seu navegador.",
|
||||||
|
"notifications_list_item": "Notificação",
|
||||||
|
"notifications_mark_read": "Marcar como lido",
|
||||||
|
"notifications_delete": "Apagar",
|
||||||
|
"notifications_copied_to_clipboard": "Copiado para a área de transferência",
|
||||||
|
"notifications_tags": "Etiquetas",
|
||||||
|
"notifications_priority_x": "Prioridade {{priority}}",
|
||||||
|
"notifications_new_indicator": "Nova notificação",
|
||||||
|
"notifications_attachment_image": "Imagem anexada",
|
||||||
|
"notifications_attachment_copy_url_title": "Copiar URL do anexo para a área de transferência",
|
||||||
|
"notifications_attachment_copy_url_button": "Copiar URL",
|
||||||
|
"notifications_attachment_open_title": "Ir para {{url}}",
|
||||||
|
"notifications_attachment_link_expired": "a ligação de transferência expirou",
|
||||||
|
"notifications_attachment_open_button": "Abrir anexo",
|
||||||
|
"notifications_attachment_link_expires": "a ligação expira em {{date}}",
|
||||||
|
"notifications_attachment_file_image": "ficheiro de imagem",
|
||||||
|
"notifications_attachment_file_video": "ficheiro de vídeo",
|
||||||
|
"notifications_attachment_file_audio": "ficheiro de áudio",
|
||||||
|
"notifications_attachment_file_app": "ficheiro apk Android",
|
||||||
|
"notifications_attachment_file_document": "outros documentos",
|
||||||
|
"notifications_click_copy_url_title": "Copiar URL da ligação para a área de transferência",
|
||||||
|
"notifications_click_copy_url_button": "Copiar ligação",
|
||||||
|
"notifications_click_open_button": "Abrir ligação",
|
||||||
|
"notifications_actions_open_url_title": "Ir para {{url}}",
|
||||||
|
"notifications_actions_not_supported": "Ação não suportada na app web",
|
||||||
|
"notifications_actions_http_request_title": "Enviar HTTP {{method}} para {{url}}",
|
||||||
|
"notifications_none_for_topic_title": "Ainda não recebeu nenhuma notificação deste tópico.",
|
||||||
|
"notifications_none_for_topic_description": "Para enviar notificações deste tópico, basta usar os métodos PUT ou POST no URL do tópico.",
|
||||||
|
"notifications_none_for_any_title": "Ainda não recebeu nenhuma notificação.",
|
||||||
|
"notifications_none_for_any_description": "Para enviar notificações dum tópico, basta usar os métodos PUT ou POST no URL do tópico. Eis um exemplo usando um dos seus tópicos.",
|
||||||
|
"notifications_no_subscriptions_title": "Parece que ainda não tem nenhuma inscrição.",
|
||||||
|
"notifications_no_subscriptions_description": "Clique na ligação \"{{linktext}}\" para criar ou subscrever um tópico. Depois, poderá enviar mensagens via PUT ou POST e receberá notificações aqui.",
|
||||||
|
"notifications_example": "Exemplo",
|
||||||
|
"notifications_more_details": "Para mais informações, aceda ao <websiteLink>site</websiteLink> ou à <docsLink>documentação</docsLink>.",
|
||||||
|
"notifications_loading": "A carregar notificações…",
|
||||||
|
"publish_dialog_title_topic": "Publicar em {{topic}}",
|
||||||
|
"publish_dialog_title_no_topic": "Publicar notificação",
|
||||||
|
"publish_dialog_progress_uploading": "A enviar …",
|
||||||
|
"publish_dialog_progress_uploading_detail": "A enviar {{loaded}}/{{total}} ({{percent}}%)…",
|
||||||
|
"publish_dialog_message_published": "Notificação publicada",
|
||||||
|
"publish_dialog_attachment_limits_file_and_quota_reached": "excede limite de ficheiro de {{fileSizeLimit}} e cota, {{remainingBytes}} restante(s)",
|
||||||
|
"publish_dialog_attachment_limits_quota_reached": "excede a cota, {{remainingBytes}} restante(s)",
|
||||||
|
"publish_dialog_priority_min": "Prioridade mínima",
|
||||||
|
"publish_dialog_priority_low": "Prioridade baixa",
|
||||||
|
"publish_dialog_priority_default": "Prioridade padrão",
|
||||||
|
"publish_dialog_priority_high": "Prioridade alta",
|
||||||
|
"publish_dialog_base_url_label": "URL de serviço",
|
||||||
|
"publish_dialog_base_url_placeholder": "URL de serviço, por exemplo: https://exemplo.com",
|
||||||
|
"publish_dialog_topic_label": "Nome do tópico",
|
||||||
|
"publish_dialog_topic_placeholder": "Nome do tópico, por exemplo: \"avisos_do_filipe\"",
|
||||||
|
"publish_dialog_topic_reset": "Limpar tópico",
|
||||||
|
"publish_dialog_title_placeholder": "Título da notificação, por exemplo: \"Alerta de espaço em disco\"",
|
||||||
|
"publish_dialog_message_label": "Mensagem",
|
||||||
|
"publish_dialog_message_placeholder": "Escreva uma mensagem aqui",
|
||||||
|
"publish_dialog_tags_label": "Etiquetas",
|
||||||
|
"publish_dialog_tags_placeholder": "Lista de etiquetas, separadas por vírgula, por exemplo: aviso, srv1-backup",
|
||||||
|
"publish_dialog_priority_label": "Prioridade",
|
||||||
|
"publish_dialog_click_label": "URL de clique",
|
||||||
|
"publish_dialog_click_placeholder": "URL que é aberto quando a notificação é clicada",
|
||||||
|
"publish_dialog_click_reset": "Remover URL de clique",
|
||||||
|
"publish_dialog_email_label": "Email",
|
||||||
|
"publish_dialog_filename_placeholder": "Nome do ficheiro anexado",
|
||||||
|
"publish_dialog_email_placeholder": "Endereça para o qual encaminhar a notificação, por exemplo: filipe@exemplo.com",
|
||||||
|
"publish_dialog_email_reset": "Remover encaminhamento por email",
|
||||||
|
"publish_dialog_attach_label": "URL de anexo",
|
||||||
|
"publish_dialog_attach_placeholder": "Anexar ficheiro por URL, por exemplo: https://f-droid.org/F-Droid.apk",
|
||||||
|
"publish_dialog_attach_reset": "Remover URL de anexo",
|
||||||
|
"publish_dialog_filename_label": "Nome do ficheiro",
|
||||||
|
"publish_dialog_delay_label": "Atraso",
|
||||||
|
"publish_dialog_delay_placeholder": "Atraso na entrega, por exemplo \"{{{unixTimestamp}}\", \"{{relativeTime}}\", ou \"{{naturalLanguage}}\" (apenas em Inglês)",
|
||||||
|
"publish_dialog_other_features": "Outras funcionalidades:",
|
||||||
|
"publish_dialog_chip_click_label": "URL de clique",
|
||||||
|
"publish_dialog_chip_topic_label": "Alterar tópico",
|
||||||
|
"publish_dialog_details_examples_description": "Para obter exemplos e uma descrição detalhada de todas as funcionalidades de envio, consulte a <docsLink>documentação</docsLink>.",
|
||||||
|
"publish_dialog_button_cancel_sending": "Cancelar o envio",
|
||||||
|
"publish_dialog_attached_file_filename_placeholder": "Nome do ficheiro anexado",
|
||||||
|
"publish_dialog_attached_file_remove": "Remover ficheiro anexado",
|
||||||
|
"emoji_picker_search_clear": "Limpar pesquisa",
|
||||||
|
"subscribe_dialog_subscribe_description": "Os tópicos podem não ser protegidos por palavra-passe, por isso escolha um nome que não seja fácil de adivinhar. Uma vez subscrito, pode usar os métodos PUT/POST para publicar notificações.",
|
||||||
|
"subscribe_dialog_subscribe_use_another_label": "Usar outro servidor",
|
||||||
|
"subscribe_dialog_error_user_not_authorized": "Utilizador {{username}} não autorizado",
|
||||||
|
"prefs_notifications_min_priority_description_max": "Mostrar notificações se prioridade for 5 (máxima)",
|
||||||
|
"prefs_notifications_delete_after_one_week": "Após uma semana",
|
||||||
|
"prefs_notifications_delete_after_one_month": "Após um mês",
|
||||||
|
"prefs_notifications_delete_after_never_description": "As notificações nunca serão eliminadas automaticamente",
|
||||||
|
"prefs_notifications_delete_after_one_week_description": "As notificações serão eliminadas automaticamente após uma semana",
|
||||||
|
"prefs_notifications_delete_after_one_month_description": "As notificações serão eliminadas automaticamente após um mês",
|
||||||
|
"prefs_users_dialog_username_label": "Utilizador, por exemplo: \"filipe\"",
|
||||||
|
"prefs_users_dialog_password_label": "Palavra-passe",
|
||||||
|
"prefs_users_dialog_button_cancel": "Cancelar",
|
||||||
|
"prefs_users_dialog_button_add": "Adicionar",
|
||||||
|
"error_boundary_description": "Obviamente, isto não devia acontecer, lamentamos o sucedido.<br/>Se tiver um minuto, por favor <githubLink>relate isto no GitHub</githubLink>, ou informe-nos através de <discordLink>Discord</discordLink> ou <matrixLink>Matrix</matrixLink>.",
|
||||||
|
"error_boundary_stack_trace": "Erro (\"stack trace\")",
|
||||||
|
"error_boundary_gathering_info": "A recolher mais informações …",
|
||||||
|
"error_boundary_unsupported_indexeddb_title": "Navegação anónima não suportada",
|
||||||
|
"error_boundary_unsupported_indexeddb_description": "A aplicação web ntfy necessita da \"IndexedDB\" para funcionar e o seu navegador não a suporta no modo de navegação privada.<br/><br/>Embora isso seja inconveniente, também não faz muito sentido usar a aplicação no modo de navegação privada de qualquer maneira, visto que tudo é guardado no armazenamento do navegador. Pode ler mais sobre isso <githubLink>nesta questão no GitHub</githubLink>, ou falar connosco por <discordLink>Discord</discordLink> ou <matrixLink>Matrix</matrixLink>.",
|
||||||
|
"action_bar_show_menu": "Mostrar menu",
|
||||||
|
"action_bar_logo_alt": "logótipo do ntfy",
|
||||||
|
"action_bar_settings": "Configurações",
|
||||||
|
"message_bar_show_dialog": "Mostrar caixa de publicação",
|
||||||
|
"alert_grant_button": "Conceder agora",
|
||||||
|
"publish_dialog_attachment_limits_file_reached": "excede o limite de ficheiro de {{fileSizeLimit}}",
|
||||||
|
"publish_dialog_emoji_picker_show": "Escolher emoji",
|
||||||
|
"publish_dialog_priority_max": "Prioridade máxima",
|
||||||
|
"publish_dialog_title_label": "Título",
|
||||||
|
"publish_dialog_delay_reset": "Remover atraso de entrega",
|
||||||
|
"publish_dialog_chip_email_label": "Encaminhar para email",
|
||||||
|
"publish_dialog_chip_attach_url_label": "Anexar ficheiro por URL",
|
||||||
|
"publish_dialog_chip_attach_file_label": "Anexar ficheiro local",
|
||||||
|
"publish_dialog_chip_delay_label": "Atraso de entrega",
|
||||||
|
"publish_dialog_button_cancel": "Cancelar",
|
||||||
|
"publish_dialog_button_send": "Enviar",
|
||||||
|
"publish_dialog_checkbox_publish_another": "Publicar outra",
|
||||||
|
"publish_dialog_attached_file_title": "Ficheiro anexado:",
|
||||||
|
"publish_dialog_drop_file_here": "Arraste o ficheiro para aqui",
|
||||||
|
"emoji_picker_search_placeholder": "Pesquisar emoji",
|
||||||
|
"subscribe_dialog_subscribe_title": "Subscrever tópico",
|
||||||
|
"subscribe_dialog_subscribe_topic_placeholder": "Nome do tópico, por exemplo: \"alertas_do_filipe\"",
|
||||||
|
"subscribe_dialog_subscribe_base_url_label": "URL de serviço",
|
||||||
|
"subscribe_dialog_subscribe_button_cancel": "Cancelar",
|
||||||
|
"subscribe_dialog_subscribe_button_subscribe": "Subscrever",
|
||||||
|
"subscribe_dialog_login_title": "Autenticação necessária",
|
||||||
|
"subscribe_dialog_login_description": "Esse tópico é protegido por palavra-passe. Por favor insira um nome de utilizador e palavra-passe para subscrever.",
|
||||||
|
"subscribe_dialog_login_username_label": "Nome, por exemplo: \"filipe\"",
|
||||||
|
"subscribe_dialog_login_password_label": "Palavra-passe",
|
||||||
|
"subscribe_dialog_login_button_back": "Voltar",
|
||||||
|
"subscribe_dialog_login_button_login": "Autenticar",
|
||||||
|
"subscribe_dialog_error_user_anonymous": "anónimo",
|
||||||
|
"prefs_notifications_title": "Notificações",
|
||||||
|
"prefs_notifications_sound_title": "Som de notificações",
|
||||||
|
"prefs_notifications_sound_description_none": "Notificações não reproduzem nenhum som quando chegam",
|
||||||
|
"prefs_notifications_sound_description_some": "Notificações reproduzem som {{sound}} quando chegam",
|
||||||
|
"prefs_notifications_sound_no_sound": "Sem som",
|
||||||
|
"prefs_notifications_sound_play": "Reproduzir som selecionado",
|
||||||
|
"prefs_notifications_min_priority_title": "Prioridade mínima",
|
||||||
|
"prefs_notifications_min_priority_description_any": "A mostrar todas as notificações, independentemente da prioridade",
|
||||||
|
"prefs_notifications_min_priority_description_x_or_higher": "Mostrar notificações se prioridade for {{number}} ({{name}}) ou acima",
|
||||||
|
"prefs_notifications_min_priority_any": "Qualquer prioridade",
|
||||||
|
"prefs_notifications_min_priority_low_and_higher": "Prioridade baixa e acima",
|
||||||
|
"prefs_notifications_min_priority_default_and_higher": "Prioridade padrão e acima",
|
||||||
|
"prefs_notifications_min_priority_high_and_higher": "Prioridade alta e acima",
|
||||||
|
"prefs_notifications_min_priority_max_only": "Apenas prioridade máxima",
|
||||||
|
"prefs_notifications_delete_after_title": "Eliminar notificações",
|
||||||
|
"prefs_notifications_delete_after_never": "Nunca",
|
||||||
|
"prefs_notifications_delete_after_three_hours": "Após três horas",
|
||||||
|
"prefs_notifications_delete_after_one_day": "Após um dia",
|
||||||
|
"prefs_notifications_delete_after_three_hours_description": "As notificações serão eliminadas automaticamente após três horas",
|
||||||
|
"prefs_notifications_delete_after_one_day_description": "As notificações serão eliminadas automaticamente após um dia",
|
||||||
|
"prefs_users_title": "Gerir utilizadores",
|
||||||
|
"prefs_users_description": "Adicionar/remover utilizadores aos seus tópicos protegidos. Note que o utilizador e palavra-passe são guardados no armazenamento local do navegador.",
|
||||||
|
"prefs_users_table": "Tabela de utilizadores",
|
||||||
|
"prefs_users_add_button": "Adicionar utilizador",
|
||||||
|
"prefs_users_edit_button": "Editar utilizador",
|
||||||
|
"prefs_users_delete_button": "Apagar utilizador",
|
||||||
|
"prefs_users_table_user_header": "Utilizador",
|
||||||
|
"prefs_users_table_base_url_header": "URL de serviço",
|
||||||
|
"prefs_users_dialog_title_add": "Adicionar utilizador",
|
||||||
|
"prefs_users_dialog_title_edit": "Editar utilizador",
|
||||||
|
"prefs_users_dialog_base_url_label": "URL de serviço, por exemplo: https://ntfy.sh",
|
||||||
|
"prefs_users_dialog_button_save": "Gravar",
|
||||||
|
"prefs_appearance_title": "Aparência",
|
||||||
|
"prefs_appearance_language_title": "Idioma",
|
||||||
|
"priority_min": "mínima",
|
||||||
|
"priority_low": "baixa",
|
||||||
|
"priority_default": "padrão",
|
||||||
|
"priority_high": "alta",
|
||||||
|
"priority_max": "máxima",
|
||||||
|
"error_boundary_title": "Oh não, o ntfy parou de funcionar",
|
||||||
|
"error_boundary_button_copy_stack_trace": "Copiar erro (\"stack trace\")"
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"action_bar_show_menu": "Afișează meniu",
|
||||||
|
"action_bar_send_test_notification": "Trimite notificare de probă",
|
||||||
|
"action_bar_clear_notifications": "Șterge toate notificările",
|
||||||
|
"action_bar_settings": "Setări",
|
||||||
|
"action_bar_unsubscribe": "Dezabonare",
|
||||||
|
"action_bar_logo_alt": "logo-ul ntfy",
|
||||||
|
"action_bar_toggle_mute": "Oprire/activare notificări",
|
||||||
|
"message_bar_type_message": "Scrie un mesaj aici",
|
||||||
|
"message_bar_error_publishing": "Eroare la publicarea notificării"
|
||||||
|
}
|
|
@ -463,6 +463,7 @@ const Language = () => {
|
||||||
<MenuItem value="nl">Nederlands</MenuItem>
|
<MenuItem value="nl">Nederlands</MenuItem>
|
||||||
<MenuItem value="nb_NO">Norsk bokmål</MenuItem>
|
<MenuItem value="nb_NO">Norsk bokmål</MenuItem>
|
||||||
<MenuItem value="uk">Українська</MenuItem>
|
<MenuItem value="uk">Українська</MenuItem>
|
||||||
|
<MenuItem value="pt">Português</MenuItem>
|
||||||
<MenuItem value="pt_BR">Português (Brasil)</MenuItem>
|
<MenuItem value="pt_BR">Português (Brasil)</MenuItem>
|
||||||
<MenuItem value="pl">Polski</MenuItem>
|
<MenuItem value="pl">Polski</MenuItem>
|
||||||
<MenuItem value="ru">Русский</MenuItem>
|
<MenuItem value="ru">Русский</MenuItem>
|
||||||
|
|
Loading…
Reference in New Issue