Compare commits

..

13 Commits

Author SHA1 Message Date
Balu Babu
4c9f8ed4e8 chore: added ping route in backend for healthcheck in prod.Dockerfile 2023-08-23 19:17:07 +05:30
Andrew Bastin
f8bbf320fb fix: move to alpine 3.16 to fix openssl related crashes 2023-08-22 12:55:19 +05:30
Andrew Bastin
633d98bbbc fix: prisma segfaulting on many cases 2023-08-22 12:54:27 +05:30
Andrew Bastin
44fabe6570 feat: exit the container if any of the child processes exit out 2023-08-22 12:54:27 +05:30
Andrew Bastin
8acfe8afb0 fix: add tini as the init process for a clean signal handling for the aio container 2023-08-22 12:54:27 +05:30
Andrew Bastin
e233f36ce0 fix: pass production and port environment variables for the backend functioning 2023-08-22 12:54:27 +05:30
Andrew Bastin
e1cbe6e003 chore: revert back environment variable prefixes to VITE_ 2023-08-22 12:53:49 +05:30
Andrew Bastin
1c35ea6e65 chore: rename frontend prod docker target into app 2023-08-22 12:53:18 +05:30
Andrew Bastin
6eb0426aca chore: correct VITE env prefix to APP 2023-08-22 12:53:18 +05:30
Andrew Bastin
fc0c113e00 chore: small corrections 2023-08-22 12:53:18 +05:30
Andrew Bastin
9e595ec594 feat: initial aio container implementation 2023-08-22 12:53:18 +05:30
Andrew Bastin
1b1a09c675 feat: updated frontend docker containers to allow for runtime environment variable definitions 2023-08-22 12:53:15 +05:30
Andrew Bastin
6454d83486 chore: simplify prod docker build process 2023-08-22 12:49:16 +05:30
247 changed files with 5742 additions and 12392 deletions

View File

@@ -1,81 +0,0 @@
name: "Push containers to Docker Hub on release"
on:
push:
tags:
- '*.*.*'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup environment
run: cp .env.example .env
- name: Setup QEMU
uses: docker/setup-qemu-action@v3
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push the backend container
uses: docker/build-push-action@v4
with:
context: .
file: ./prod.Dockerfile
target: backend
push: true
platforms: |
linux/amd64
linux/arm64
tags: |
${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_BACKEND_CONTAINER_NAME }}:latest
${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_BACKEND_CONTAINER_NAME }}:${{ github.ref_name }}
- name: Build and push the frontend container
uses: docker/build-push-action@v4
with:
context: .
file: ./prod.Dockerfile
target: app
push: true
platforms: |
linux/amd64
linux/arm64
tags: |
${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_FRONTEND_CONTAINER_NAME }}:latest
${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_FRONTEND_CONTAINER_NAME }}:${{ github.ref_name }}
- name: Build and push the admin dashboard container
uses: docker/build-push-action@v4
with:
context: .
file: ./prod.Dockerfile
target: sh_admin
push: true
platforms: |
linux/amd64
linux/arm64
tags: |
${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_SH_ADMIN_CONTAINER_NAME }}:latest
${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_SH_ADMIN_CONTAINER_NAME }}:${{ github.ref_name }}
- name: Build and push the AIO container
uses: docker/build-push-action@v4
with:
context: .
file: ./prod.Dockerfile
target: aio
push: true
platforms: |
linux/amd64
linux/arm64
tags: |
${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_AIO_CONTAINER_NAME }}:latest
${{ secrets.DOCKER_ORG_NAME }}/${{ secrets.DOCKER_AIO_CONTAINER_NAME }}:${{ github.ref_name }}

View File

@@ -6,8 +6,8 @@ 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.
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
@@ -22,17 +22,17 @@ community include:
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall
community
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or advances of
any kind
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email address,
without their explicit permission
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
@@ -82,15 +82,15 @@ behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series of
actions.
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or permanent
ban.
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
@@ -106,27 +106,23 @@ Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within the
community.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
[https://www.contributor-covenant.org/translations][translations].
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.

190
README.md
View File

@@ -2,18 +2,23 @@
<a href="https://hoppscotch.io">
<img
src="https://avatars.githubusercontent.com/u/56705483"
alt="Hoppscotch"
alt="Hoppscotch Logo"
height="64"
/>
</a>
<h3>
<br />
<p>
<h3>
<b>
Hoppscotch
</b>
</h3>
</p>
<p>
<b>
Hoppscotch
Open source API development ecosystem
</b>
</h3>
<b>
Open Source API Development Ecosystem
</b>
</p>
<p>
[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen?logo=github)](CODE_OF_CONDUCT.md) [![Website](https://img.shields.io/website?url=https%3A%2F%2Fhoppscotch.io&logo=hoppscotch)](https://hoppscotch.io) [![Tests](https://github.com/hoppscotch/hoppscotch/actions/workflows/tests.yml/badge.svg)](https://github.com/hoppscotch/hoppscotch/actions) [![Tweet](https://img.shields.io/twitter/url?url=https%3A%2F%2Fhoppscotch.io%2F)](https://twitter.com/share?text=%F0%9F%91%BD%20Hoppscotch%20%E2%80%A2%20Open%20source%20API%20development%20ecosystem%20-%20Helps%20you%20create%20requests%20faster,%20saving%20precious%20time%20on%20development.&url=https://hoppscotch.io&hashtags=hoppscotch&via=hoppscotch_io)
@@ -29,18 +34,23 @@
</p>
<br />
<p>
<a href="https://hoppscotch.io">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="./packages/hoppscotch-common/public/images/banner-dark.png">
<source media="(prefers-color-scheme: light)" srcset="./packages/hoppscotch-common/public/images/banner-light.png">
<img alt="Hoppscotch" src="./packages/hoppscotch-common/public/images/banner-dark.png">
</picture>
<a href="https://hoppscotch.io/#gh-light-mode-only" target="_blank">
<img
src="./packages/hoppscotch-common/public/images/banner-light.png"
alt="Hoppscotch"
width="100%"
/>
</a>
<a href="https://hoppscotch.io/#gh-dark-mode-only" target="_blank">
<img
src="./packages/hoppscotch-common/public/images/banner-dark.png"
alt="Hoppscotch"
width="100%"
/>
</a>
</p>
</div>
_We highly recommend you take a look at the [**Hoppscotch Documentation**](https://docs.hoppscotch.io) to learn more about the app._
#### **Support**
[![Chat on Discord](https://img.shields.io/badge/chat-Discord-7289DA?logo=discord)](https://hoppscotch.io/discord) [![Chat on Telegram](https://img.shields.io/badge/chat-Telegram-2CA5E0?logo=telegram)](https://hoppscotch.io/telegram) [![Discuss on GitHub](https://img.shields.io/badge/discussions-GitHub-333333?logo=github)](https://github.com/hoppscotch/hoppscotch/discussions)
@@ -49,9 +59,9 @@ _We highly recommend you take a look at the [**Hoppscotch Documentation**](https
❤️ **Lightweight:** Crafted with minimalistic UI design.
⚡️ **Fast:** Send requests and get responses in real time.
⚡️ **Fast:** Send requests and get/copy responses in real-time.
🗄️ **HTTP Methods:** Request methods define the type of action you are requesting to be performed.
**HTTP Methods**
- `GET` - Requests retrieve resource information
- `POST` - The server creates a new entry in a database
@@ -64,15 +74,17 @@ _We highly recommend you take a look at the [**Hoppscotch Documentation**](https
- `TRACE` - Performs a message loop-back test along the path to the target resource
- `<custom>` - Some APIs use custom request methods such as `LIST`. Type in your custom methods.
🌈 **Theming:** Customizable combinations for background, foreground, and accent colors — [customize now](https://hoppscotch.io/settings).
🌈 **Make it yours:** Customizable combinations for background, foreground, and accent colors — [customize now](https://hoppscotch.io/settings).
- Choose a theme: System preference, Light, Dark, and Black
- Choose accent colors: Green, Teal, Blue, Indigo, Purple, Yellow, Orange, Red, and Pink
**Theming**
- Choose a theme: System (default), Light, Dark, and Black
- Choose accent color: Green (default), Teal, Blue, Indigo, Purple, Yellow, Orange, Red, and Pink
- Distraction-free Zen mode
_Customized themes are synced with your cloud/local session._
_Customized themes are synced with cloud / local session_
🔥 **PWA:** Install as a [Progressive Web App](https://web.dev/progressive-web-apps) on your device.
🔥 **PWA:** Install as a [PWA](https://web.dev/what-are-pwas/) on your device.
- Instant loading with Service Workers
- Offline support
@@ -95,7 +107,7 @@ _Customized themes are synced with your cloud/local session._
📡 **Server-Sent Events:** Receive a stream of updates from a server over an HTTP connection without resorting to polling.
🌩 **Socket.IO:** Send and Receive data with the SocketIO server.
🌩 **Socket.IO:** Send and Receive data with SocketIO server.
🦟 **MQTT:** Subscribe and Publish to topics of an MQTT Broker.
@@ -115,7 +127,7 @@ _Customized themes are synced with your cloud/local session._
- OAuth 2.0
- OIDC Access Token/PKCE
📢 **Headers:** Describes the format the body of your request is being sent in.
📢 **Headers:** Describes the format the body of your request is being sent as.
📫 **Parameters:** Use request parameters to set varying parts in simulated requests.
@@ -125,14 +137,14 @@ _Customized themes are synced with your cloud/local session._
- FormData, JSON, and many more
- Toggle between key-value and RAW input parameter list
📮 **Response:** Contains the status line, headers, and the message/response body.
👋 **Response:** Contains the status line, headers, and the message/response body.
- Copy the response to the clipboard
- Download the response as a file
- Copy response to clipboard
- Download response as a file
- View response headers
- View raw and preview HTML, image, JSON, and XML responses
- View raw and preview of HTML, image, JSON, XML responses
**History:** Request entries are synced with your cloud/local session storage.
**History:** Request entries are synced with cloud / local session storage to restore with a single click.
📁 **Collections:** Keep your API requests organized with collections and folders. Reuse them with a single click.
@@ -140,32 +152,7 @@ _Customized themes are synced with your cloud/local session._
- Nested folders
- Export and import as a file or GitHub gist
_Collections are synced with your cloud/local session storage._
📜 **Pre-Request Scripts:** Snippets of code associated with a request that is executed before the request is sent.
- Set environment variables
- Include timestamp in the request headers
- Send a random alphanumeric string in the URL parameters
- Any JavaScript functions
👨‍👩‍👧‍👦 **Teams:** Helps you collaborate across your teams to design, develop, and test APIs faster.
- Create unlimited teams
- Create unlimited shared collections
- Create unlimited team members
- Role-based access control
- Cloud sync
- Multiple devices
👥 **Workspaces:** Organize your personal and team collections environments into workspaces. Easily switch between workspaces to manage multiple projects.
- Create unlimited workspaces
- Switch between personal and team workspaces
⌨️ **Keyboard Shortcuts:** Optimized for efficiency.
> **[Read our documentation on Keyboard Shortcuts](https://docs.hoppscotch.io/documentation/features/shortcuts)**
_Collections are synced with cloud / local session storage_
🌐 **Proxy:** Enable Proxy Mode from Settings to access blocked APIs.
@@ -174,31 +161,60 @@ _Collections are synced with your cloud/local session storage._
- Access APIs served in non-HTTPS (`http://`) endpoints
- Use your Proxy URL
_Official proxy server is hosted by Hoppscotch - **[GitHub](https://github.com/hoppscotch/proxyscotch)** - **[Privacy Policy](https://docs.hoppscotch.io/support/privacy)**._
_Official proxy server is hosted by Hoppscotch - **[GitHub](https://github.com/hoppscotch/proxyscotch)** - **[Privacy Policy](https://docs.hoppscotch.io/support/privacy)**_
📜 **Pre-Request Scripts β:** Snippets of code associated with a request that is executed before the request is sent.
- Set environment variables
- Include timestamp in the request headers
- Send a random alphanumeric string in the URL parameters
- Any JavaScript functions
📄 **API Documentation:** Create and share dynamic API documentation easily, quickly.
1. Add your requests to Collections and Folders
2. Export Collections and easily share your APIs with the rest of your team
3. Import Collections and Generate Documentation on-the-go
⌨️ **Keyboard Shortcuts:** Optimized for efficiency.
> **[Read our documentation on Keyboard Shortcuts](https://docs.hoppscotch.io/documentation/features/shortcuts)**
🌎 **i18n:** Experience the app in your language.
Help us to translate Hoppscotch. Please read [`TRANSLATIONS`](TRANSLATIONS.md) for details on our [`CODE OF CONDUCT`](CODE_OF_CONDUCT.md) and the process for submitting pull requests to us.
Help us to translate Hoppscotch. Please read [`TRANSLATIONS`](TRANSLATIONS.md) for details on our [`CODE OF CONDUCT`](CODE_OF_CONDUCT.md), and the process for submitting pull requests to us.
☁️ **Auth + Sync:** Sign in and sync your data in real-time across all your devices.
📦 **Add-ons:** Official add-ons for hoppscotch.
**Sign in with:**
- **[Proxy](https://github.com/hoppscotch/proxyscotch)** - A simple proxy server created for Hoppscotch
- **[CLI β](https://github.com/hoppscotch/hopp-cli)** - A CLI solution for Hoppscotch
- **[Browser Extensions](https://github.com/hoppscotch/hoppscotch-extension)** - Browser extensions that simplifies access to Hoppscotch
[![Firefox](https://raw.github.com/alrra/browser-logos/master/src/firefox/firefox_16x16.png) **Firefox**](https://addons.mozilla.org/en-US/firefox/addon/hoppscotch) &nbsp;|&nbsp; [![Chrome](https://raw.github.com/alrra/browser-logos/master/src/chrome/chrome_16x16.png) **Chrome**](https://chrome.google.com/webstore/detail/hoppscotch-extension-for-c/amknoiejhlmhancpahfcfcfhllgkpbld)
> **Extensions fixes `CORS` issues.**
- **[Hopp-Doc-Gen](https://github.com/hoppscotch/hopp-doc-gen)** - An API doc generator CLI for Hoppscotch
_Add-ons are developed and maintained under **[Hoppscotch Organization](https://github.com/hoppscotch)**._
☁️ **Auth + Sync:** Sign in and sync your data in real-time.
**Sign in with**
- GitHub
- Google
- Microsoft
- Email
- SSO (Single Sign-On)[^EE]
**🔄 Synchronize your data:** Handoff to continue tasks on your other devices.
**Synchronize your data**
- Workspaces
- History
- Collections
- Environments
- Settings
**Post-Request Tests:** Write tests associated with a request that is executed after the request's response.
**Post-Request Tests β:** Write tests associated with a request that is executed after the request's response.
- Check the status code as an integer
- Filter response headers
@@ -206,7 +222,7 @@ Help us to translate Hoppscotch. Please read [`TRANSLATIONS`](TRANSLATIONS.md) f
- Set environment variables
- Write JavaScript code
🌱 **Environments:** Environment variables allow you to store and reuse values in your requests and scripts.
🌱 **Environments** : Environment variables allow you to store and reuse values in your requests and scripts.
- Unlimited environments and variables
- Initialize through the pre-request script
@@ -225,31 +241,22 @@ Help us to translate Hoppscotch. Please read [`TRANSLATIONS`](TRANSLATIONS.md) f
</details>
👨‍👩‍👧‍👦 **Teams β:** Helps you collaborate across your team to design, develop, and test APIs faster.
- Unlimited teams
- Unlimited shared collections
- Unlimited team members
- Role-based access control
- Cloud sync
- Multiple devices
🚚 **Bulk Edit:** Edit key-value pairs in bulk.
- Entries are separated by newline
- Keys and values are separated by `:`
- Prepend `#` to any row you want to add but keep disabled
🎛️ **Admin dashboard:** Manage your team and invite members.
- Insights
- Manage users
- Manage teams
📦 **Add-ons:** Official add-ons for hoppscotch.
- **[Hoppscotch CLI](https://github.com/hoppscotch/hopp-cli)** - Command-line interface for Hoppscotch.
- **[Proxy](https://github.com/hoppscotch/proxyscotch)** - A simple proxy server created for Hoppscotch.
- **[Browser Extensions](https://github.com/hoppscotch/hoppscotch-extension)** - Browser extensions that enhance your Hoppscotch experience.
[![Firefox](https://raw.github.com/alrra/browser-logos/master/src/firefox/firefox_16x16.png) **Firefox**](https://addons.mozilla.org/en-US/firefox/addon/hoppscotch) &nbsp;|&nbsp; [![Chrome](https://raw.github.com/alrra/browser-logos/master/src/chrome/chrome_16x16.png) **Chrome**](https://chrome.google.com/webstore/detail/hoppscotch-extension-for-c/amknoiejhlmhancpahfcfcfhllgkpbld)
> **Extensions fix `CORS` issues.**
_Add-ons are developed and maintained under **[Hoppscotch Organization](https://github.com/hoppscotch)**._
**For a complete list of features, please read our [documentation](https://docs.hoppscotch.io).**
**For more features, please read our [documentation](https://docs.hoppscotch.io).**
## **Demo**
@@ -261,9 +268,18 @@ _Add-ons are developed and maintained under **[Hoppscotch Organization](https://
2. Click "Send" to simulate the request
3. View the response
## **Built with**
- [HTML](https://developer.mozilla.org/en-US/docs/Web/HTML)
- [CSS](https://developer.mozilla.org/en-US/docs/Web/CSS), [SCSS](https://sass-lang.com), [Windi CSS](https://windicss.org)
- [JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript)
- [TypeScript](https://www.typescriptlang.org)
- [Vue](https://vuejs.org)
- [Vite](https://vitejs.dev)
## **Developing**
Follow our [self-hosting documentation](https://docs.hoppscotch.io/documentation/self-host/getting-started) to get started with the development environment.
Follow our [self-hosting guide](https://docs.hoppscotch.io/documentation/self-host/getting-started) to get started with the development environment.
## **Contributing**
@@ -281,7 +297,7 @@ See the [`CHANGELOG`](CHANGELOG.md) file for details.
## **Authors**
This project owes its existence to the collective efforts of all those who contribute — [contribute now](CONTRIBUTING.md).
This project exists thanks to all the people who contribute — [contribute](CONTRIBUTING.md).
<div align="center">
<a href="https://github.com/hoppscotch/hoppscotch/graphs/contributors">
@@ -293,6 +309,4 @@ This project owes its existence to the collective efforts of all those who contr
## **License**
This project is licensed under the [MIT License](https://opensource.org/licenses/MIT) see the [`LICENSE`](LICENSE) file for details.
[^EE]: Enterprise edition feature. [Learn more](https://docs.hoppscotch.io/documentation/self-host/getting-started).
This project is licensed under the [MIT License](https://opensource.org/licenses/MIT) - see the [`LICENSE`](LICENSE) file for details.

View File

@@ -2,9 +2,8 @@
This document outlines security procedures and general policies for the Hoppscotch project.
- [Security Policy](#security-policy)
- [Reporting a security vulnerability](#reporting-a-security-vulnerability)
- [Incident response process](#incident-response-process)
1. [Reporting a security vulnerability](#reporting-a-security-vulnerability)
3. [Incident response process](#incident-response-process)
## Reporting a security vulnerability

View File

@@ -9,24 +9,26 @@ Before you start working on a new language, please look through the [open pull r
if there is no existing translation, you can create a new one by following these steps:
1. **[Fork the repository](https://github.com/hoppscotch/hoppscotch/fork).**
2. **Checkout the `main` branch for latest translations.**
3. **Create a new branch for your translation with base branch `main`.**
2. **Checkout the `i18n` branch for latest translations.**
3. **Create a new branch for your translation with base branch `i18n`.**
4. **Create target language file in the [`/packages/hoppscotch-common/locales`](https://github.com/hoppscotch/hoppscotch/tree/main/packages/hoppscotch-common/locales) directory.**
5. **Copy the contents of the source file [`/packages/hoppscotch-common/locales/en.json`](https://github.com/hoppscotch/hoppscotch/blob/main/packages/hoppscotch-common/locales/en.json) to the target language file.**
6. **Translate the strings in the target language file.**
7. **Add your language entry to [`/packages/hoppscotch-common/languages.json`](https://github.com/hoppscotch/hoppscotch/blob/main/packages/hoppscotch-common/languages.json).**
8. **Save and commit changes.**
8. **Save & commit changes.**
9. **Send a pull request.**
_You may send a pull request before all steps above are complete: e.g., you may want to ask for help with translations, or getting tests to pass. However, your pull request will not be merged until all steps above are complete._
`i18n` branch will be merged into `main` branch once every week.
Completing an initial translation of the whole site is a fairly large task. One way to break that task up is to work with other translators through pull requests on your fork. You can also [add collaborators to your fork](https://help.github.com/en/github/setting-up-and-managing-your-github-user-account/inviting-collaborators-to-a-personal-repository) if you'd like to invite other translators to commit directly to your fork and share responsibility for merging pull requests.
## Updating a translation
### Corrections
If you notice spelling or grammar errors, typos, or opportunities for better phrasing, open a pull request with your suggested fix. If you see a problem that you aren't sure of or don't have time to fix, [open an issue](https://github.com/hoppscotch/hoppscotch/issues/new/choose).
If you notice spelling or grammar errors, typos, or opportunities for better phrasing, open a pull request with your suggested fix. If you see a problem that you aren't sure of or don't have time to fix, open an issue.
### Broken links

View File

@@ -7,103 +7,6 @@ services:
# This service runs the backend app in the port 3170
hoppscotch-backend:
container_name: hoppscotch-backend
build:
dockerfile: prod.Dockerfile
context: .
target: backend
env_file:
- ./.env
restart: always
environment:
# Edit the below line to match your PostgresDB URL if you have an outside DB (make sure to update the .env file as well)
- DATABASE_URL=postgresql://postgres:testpass@hoppscotch-db:5432/hoppscotch?connect_timeout=300
- PORT=3170
volumes:
# Uncomment the line below when modifying code. Only applicable when using the "dev" target.
# - ./packages/hoppscotch-backend/:/usr/src/app
- /usr/src/app/node_modules/
depends_on:
hoppscotch-db:
condition: service_healthy
ports:
- "3170:3170"
# The main hoppscotch app. This will be hosted at port 3000
# NOTE: To do TLS or play around with how the app is hosted, you can look into the Caddyfile for
# the SH admin dashboard server at packages/hoppscotch-selfhost-web/Caddyfile
hoppscotch-app:
container_name: hoppscotch-app
build:
dockerfile: prod.Dockerfile
context: .
target: app
env_file:
- ./.env
depends_on:
- hoppscotch-backend
ports:
- "3000:8080"
# The Self Host dashboard for managing the app. This will be hosted at port 3100
# NOTE: To do TLS or play around with how the app is hosted, you can look into the Caddyfile for
# the SH admin dashboard server at packages/hoppscotch-sh-admin/Caddyfile
hoppscotch-sh-admin:
container_name: hoppscotch-sh-admin
build:
dockerfile: prod.Dockerfile
context: .
target: sh_admin
env_file:
- ./.env
depends_on:
- hoppscotch-backend
ports:
- "3100:8080"
# The service that spins up all 3 services at once in one container
hoppscotch-aio:
container_name: hoppscotch-aio
build:
dockerfile: prod.Dockerfile
context: .
target: aio
env_file:
- ./.env
depends_on:
hoppscotch-db:
condition: service_healthy
ports:
- "3000:3000"
- "3100:3100"
- "3170:3170"
# The preset DB service, you can delete/comment the below lines if
# you are using an external postgres instance
# This will be exposed at port 5432
hoppscotch-db:
image: postgres:15
ports:
- "5432:5432"
user: postgres
environment:
# The default user defined by the docker image
POSTGRES_USER: postgres
# NOTE: Please UPDATE THIS PASSWORD!
POSTGRES_PASSWORD: testpass
POSTGRES_DB: hoppscotch
healthcheck:
test:
[
"CMD-SHELL",
"sh -c 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}'"
]
interval: 5s
timeout: 5s
retries: 10
# All the services listed below are deprececated
hoppscotch-old-backend:
container_name: hoppscotch-old-backend
build:
dockerfile: packages/hoppscotch-backend/Dockerfile
context: .
@@ -125,26 +28,54 @@ services:
ports:
- "3170:3000"
hoppscotch-old-app:
container_name: hoppscotch-old-app
# The main hoppscotch app. This will be hosted at port 3000
# NOTE: To do TLS or play around with how the app is hosted, you can look into the Caddyfile for
# the SH admin dashboard server at packages/hoppscotch-selfhost-web/Caddyfile
hoppscotch-app:
container_name: hoppscotch-app
build:
dockerfile: packages/hoppscotch-selfhost-web/Dockerfile
context: .
env_file:
- ./.env
depends_on:
- hoppscotch-old-backend
- hoppscotch-backend
ports:
- "3000:8080"
hoppscotch-old-sh-admin:
container_name: hoppscotch-old-sh-admin
# The Self Host dashboard for managing the app. This will be hosted at port 3100
# NOTE: To do TLS or play around with how the app is hosted, you can look into the Caddyfile for
# the SH admin dashboard server at packages/hoppscotch-sh-admin/Caddyfile
hoppscotch-sh-admin:
container_name: hoppscotch-sh-admin
build:
dockerfile: packages/hoppscotch-sh-admin/Dockerfile
context: .
env_file:
- ./.env
depends_on:
- hoppscotch-old-backend
- hoppscotch-backend
ports:
- "3100:8080"
# The preset DB service, you can delete/comment the below lines if
# you are using an external postgres instance
# This will be exposed at port 5432
hoppscotch-db:
image: postgres:15
ports:
- "5432:5432"
user: postgres
environment:
# The default user defined by the docker image
POSTGRES_USER: postgres
# NOTE: Please UPDATE THIS PASSWORD!
POSTGRES_PASSWORD: testpass
POSTGRES_DB: hoppscotch
healthcheck:
test: ["CMD-SHELL", "sh -c 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}'"]
interval: 5s
timeout: 5s
retries: 10

View File

@@ -1,14 +0,0 @@
#!/bin/bash
curlCheck() {
if ! curl -s --head "$1" | head -n 1 | grep -q "HTTP/1.[01] [23].."; then
echo "URL request failed!"
exit 1
else
echo "URL request succeeded!"
fi
}
curlCheck "http://localhost:3000"
curlCheck "http://localhost:3100"
curlCheck "http://localhost:3170/ping"

View File

@@ -32,14 +32,5 @@
"@types/node": "^17.0.24",
"cross-env": "^7.0.3",
"http-server": "^14.1.1"
},
"pnpm": {
"packageExtensions": {
"httpsnippet@^3.0.1": {
"peerDependencies": {
"ajv": "6.12.3"
}
}
}
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "hoppscotch-backend",
"version": "2023.8.1",
"version": "2023.4.8",
"description": "",
"author": "",
"private": true,

View File

@@ -19,7 +19,7 @@ import { UserCollectionModule } from './user-collection/user-collection.module';
import { ShortcodeModule } from './shortcode/shortcode.module';
import { COOKIES_NOT_FOUND } from './errors';
import { ThrottlerModule } from '@nestjs/throttler';
import { AppController } from './app.controller';
import { AppController } from './app/app.controller';
@Module({
imports: [

View File

@@ -150,7 +150,7 @@ export class ShortcodeService implements UserDataHandler, OnModuleInit {
orderBy: {
createdOn: 'desc',
},
skip: args.cursor ? 1 : 0,
skip: 1,
take: args.take,
cursor: args.cursor ? { id: args.cursor } : undefined,
});

View File

@@ -24,8 +24,6 @@ beforeEach(() => {
mockPubSub.publish.mockClear();
});
const date = new Date();
describe('UserHistoryService', () => {
describe('fetchUserHistory', () => {
test('Should return a list of users REST history if exists', async () => {
@@ -402,7 +400,7 @@ describe('UserHistoryService', () => {
request: [{}],
responseMetadata: [{}],
reqType: ReqType.REST,
executedOn: date,
executedOn: new Date(),
isStarred: false,
});
@@ -412,7 +410,7 @@ describe('UserHistoryService', () => {
request: JSON.stringify([{}]),
responseMetadata: JSON.stringify([{}]),
reqType: ReqType.REST,
executedOn: date,
executedOn: new Date(),
isStarred: false,
};

View File

@@ -0,0 +1,128 @@
# Contributor Covenant Code of Conduct
## Our Pledge
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, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
- Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
- The use of sexualized language or imagery, and sexual attention or
advances of any kind
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or email
address, without their explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
support@hoppscotch.io.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.

View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2022
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -1,19 +1,29 @@
<div align="center">
<a href="https://hoppscotch.io">
<img
src="https://avatars.githubusercontent.com/u/56705483"
alt="Hoppscotch Logo"
height="64"
/>
</a>
</div>
<div align="center">
# Hoppscotch CLI <font size=2><sup>ALPHA</sup></font>
A CLI to run Hoppscotch Test Scripts in CI environments.
</div>
A CLI to run Hoppscotch test scripts in CI environments.
### **Commands:**
- `hopp test [options] [file]`: testing hoppscotch collection.json file
### **Usage:**
```bash
```
hopp [options or commands] arguments
```
### **Options:**
- `-v`, `--ver`: see the current version of the CLI
- `-h`, `--help`: display help for command
@@ -35,21 +45,17 @@ hopp [options or commands] arguments
- Executes and outputs test-script response.
#### Options:
##### `-e <file_path>` / `--env <file_path>`
- Accepts path to env.json with contents in below format:
```json
{
"ENV1":"value1",
"ENV2":"value2"
}
```
- You can now access those variables using `pw.env.get('<var_name>')`
Taking the above example, `pw.env.get("ENV1")` will return `"value1"`
Taking the above example, `pw.env.get("ENV1")` will return `"value1"`
## Install
@@ -69,59 +75,4 @@ npm i -g @hoppscotch/cli
## **Contributing:**
When contributing to this repository, please first discuss the change you wish to make via issue,
email, or any other method with the owners of this repository before making a change.
Please note we have a code of conduct, please follow it in all your interactions with the project.
## Pull Request Process
1. Ensure any install or build dependencies are removed before the end of the layer when doing a
build.
2. Update the README.md with details of changes to the interface, this includes new environment
variables, exposed ports, useful file locations and container parameters.
3. Increase the version numbers in any examples files and the README.md to the new version that this
Pull Request would represent. The versioning scheme we use is [SemVer](https://semver.org).
4. You may merge the Pull Request once you have the sign-off of two other developers, or if you
do not have permission to do that, you may request the second reviewer merge it for you.
## Set Up The Development Environment
1. After cloning the repository, execute the following commands:
```bash
pnpm install
pnpm run build
```
2. In order to test locally, you can use two types of package linking:
1. The 'pnpm exec' way (preferred since it does not hamper your original installation of the CLI):
```bash
pnpm link @hoppscotch/cli
// Then to use or test the CLI:
pnpm exec hopp
// After testing, to remove the package linking:
pnpm rm @hoppscotch/cli
```
2. The 'global' way (warning: this might override the globally installed CLI, if exists):
```bash
sudo pnpm link --global
// Then to use or test the CLI:
hopp
// After testing, to remove the package linking:
sudo pnpm rm --global @hoppscotch/cli
```
3. To use the Typescript watch scripts:
```bash
pnpm run dev
```
To get started contributing to the repository, please read **[CONTRIBUTING.md](./CONTRIBUTING.md)**

View File

@@ -1,6 +1,6 @@
{
"name": "@hoppscotch/cli",
"version": "0.3.2",
"version": "0.3.1",
"description": "A CLI to run Hoppscotch test scripts in CI environments.",
"homepage": "https://hoppscotch.io",
"main": "dist/index.js",

View File

@@ -14,10 +14,9 @@ import { isHoppCLIError } from "../utils/checks";
export const test = (path: string, options: TestCmdOptions) => async () => {
try {
const delay = options.delay ? parseDelayOption(options.delay) : 0
const envName = options.envName
const envs = options.env ? await parseEnvsData(options.env, envName) : <HoppEnvs>{ global: [], selected: [] }
const envs = options.env ? await parseEnvsData(options.env) : <HoppEnvs>{ global: [], selected: [] }
const collections = await parseCollectionData(path)
const report = await collectionsRunner({collections, envs, delay})
const hasSucceeded = collectionsRunnerResult(report)
collectionsRunnerExit(hasSucceeded)

View File

@@ -42,7 +42,7 @@ export const handleError = <T extends HoppErrorCode>(error: HoppError<T>) => {
switch (error.code) {
case "FILE_NOT_FOUND":
ERROR_MSG = `File doesn't exist: ${error.path}`;
ERROR_MSG = `File doesn't exists: ${error.path}`;
break;
case "UNKNOWN_COMMAND":
ERROR_MSG = `Unavailable command: ${error.command}`;
@@ -51,9 +51,6 @@ export const handleError = <T extends HoppErrorCode>(error: HoppError<T>) => {
case "MALFORMED_COLLECTION":
ERROR_MSG = `${error.path}\n${parseErrorData(error.data)}`;
break;
case "ENVIRONMENT_NAME_NOT_FOUND":
ERROR_MSG = `\n${parseErrorData(error.data)}`;
break;
case "NO_FILE_PATH":
ERROR_MSG = `Please provide a hoppscotch-collection file path.`;
break;

View File

@@ -50,7 +50,6 @@ program
"path to a hoppscotch collection.json file for CI testing"
)
.option("-e, --env <file_path>", "path to an environment variables json file")
.option("-eN, --envName <environment_name>","Specific Name of the environment")
.option(
"-d, --delay <delay_in_ms>",
"delay in milliseconds(ms) between consecutive requests within a collection"

View File

@@ -33,5 +33,4 @@ export interface EffectiveHoppRESTRequest extends HoppRESTRequest {
effectiveFinalHeaders: { key: string; value: string; active: boolean }[];
effectiveFinalParams: { key: string; value: string; active: boolean }[];
effectiveFinalBody: FormData | string | null;
effectiveFinalMaskedURL: string;
}

View File

@@ -5,46 +5,23 @@ import { readJsonFile } from "../../utils/mutators";
/**
* Parses env json file for given path and validates the parsed env json object.
* @param path Path of env.json file to be parsed.
* @param envName Name of the environment that should be used. If undefined first environment is used.
* @returns For successful parsing we get HoppEnvs object.
*/
export async function parseEnvsData(path: string, envName: string | undefined) {
export async function parseEnvsData(path: string) {
const contents = await readJsonFile(path)
if(!(contents && typeof contents === "object" && Array.isArray(contents))) {
if(!(contents && typeof contents === "object" && !Array.isArray(contents))) {
throw error({ code: "MALFORMED_ENV_FILE", path, data: null })
}
const envPairs: Array<HoppEnvPair> = []
const contentEntries = Object.entries(contents)
let environmentFound = false;
for( const [key,value] of Object.entries(contents)) {
if(typeof value !== "string") {
throw error({ code: "MALFORMED_ENV_FILE", path, data: {value: value} })
}
for(const [key, obj] of contentEntries) {
if(!(typeof obj === "object" && "name" in obj && "variables" in obj)) {
throw error({ code: "MALFORMED_ENV_FILE", path, data: { value: obj } })
}
if(envName && envName !== obj.name) {
continue
}
environmentFound = true;
for(const variable of obj.variables) {
if(
!(
typeof variable === "object" &&
"key" in variable &&
"value" in variable &&
"secret" in variable
)
) {
throw error({ code: "MALFORMED_ENV_FILE", path, data: { value: variable } });
}
const { key, value, secret } = variable;
envPairs.push({ key: key, value: value, secret: secret });
}
break
}
if(envName && !environmentFound) {
throw error({ code: "ENVIRONMENT_NAME_NOT_FOUND", data: envName });
envPairs.push({key, value})
}
return <HoppEnvs>{ global: [], selected: envPairs }
}

View File

@@ -1,7 +1,6 @@
export type TestCmdOptions = {
env: string | undefined;
delay: string | undefined;
envName: string | undefined;
};
export type HOPP_ENV_FILE_EXT = "json";

View File

@@ -15,7 +15,6 @@ type HoppErrors = {
FILE_NOT_FOUND: HoppErrorPath;
UNKNOWN_COMMAND: HoppErrorCmd;
MALFORMED_COLLECTION: HoppErrorPath & HoppErrorData;
ENVIRONMENT_NAME_NOT_FOUND: HoppErrorData;
NO_FILE_PATH: {};
PRE_REQUEST_SCRIPT_ERROR: HoppErrorData;
PARSING_ERROR: HoppErrorData;

View File

@@ -7,7 +7,7 @@ export type FormDataEntry = {
value: string | Blob;
};
export type HoppEnvPair = { key: string; value: string; secret: boolean };
export type HoppEnvPair = { key: string; value: string };
export type HoppEnvs = {
global: HoppEnvPair[];

View File

@@ -1,7 +1,7 @@
import { bold } from "chalk";
import { groupEnd, group, log } from "console";
import { handleError } from "../handlers/error";
import { Method } from "axios";
import { RequestConfig } from "../interfaces/request";
import { RequestRunnerResponse, TestReport } from "../interfaces/response";
import { HoppCLIError } from "../types/errors";
import {
@@ -172,12 +172,11 @@ export const printFailedTestsReport = (
export const printRequestRunner = {
/**
* Request-runner starting message.
* @param requestMethod Provides request's method
* @param maskedURL Provides the URL with secrets masked with asterisks
* @param requestConfig Provides request's method and url.
*/
start: (requestMethod: Method | undefined, maskedURL: string) => {
const METHOD = BG_INFO(` ${requestMethod} `);
const ENDPOINT = maskedURL;
start: (requestConfig: RequestConfig) => {
const METHOD = BG_INFO(` ${requestConfig.method} `);
const ENDPOINT = requestConfig.url;
process.stdout.write(`${METHOD} ${ENDPOINT}`);
},

View File

@@ -50,9 +50,9 @@ export const preRequestScriptRunner = (
isHoppCLIError(reason)
? reason
: error({
code: "PRE_REQUEST_SCRIPT_ERROR",
data: reason,
})
code: "PRE_REQUEST_SCRIPT_ERROR",
data: reason,
})
)
);
@@ -151,12 +151,6 @@ export function getEffectiveRESTRequest(
request.endpoint,
envVariables
);
const maskedEnvVariables = setAllEnvironmentValuesToAsterisk(envVariables)
const _effectiveFinalMaskedURL = parseTemplateStringE(
request.endpoint,
maskedEnvVariables)
if (E.isLeft(_effectiveFinalURL)) {
return E.left(
error({
@@ -166,7 +160,6 @@ export function getEffectiveRESTRequest(
);
}
const effectiveFinalURL = _effectiveFinalURL.right;
const effectiveFinalMaskedURL = E.isLeft(_effectiveFinalMaskedURL) ? request.endpoint : _effectiveFinalMaskedURL.right;
return E.right({
...request,
@@ -174,7 +167,6 @@ export function getEffectiveRESTRequest(
effectiveFinalHeaders,
effectiveFinalParams,
effectiveFinalBody,
effectiveFinalMaskedURL,
});
}
@@ -250,15 +242,15 @@ function getFinalBodyFromRequest(
arrayFlatMap((x) =>
x.isFile
? x.value.map((v) => ({
key: parseTemplateString(x.key, envVariables),
value: v as string | Blob,
}))
: [
{
key: parseTemplateString(x.key, envVariables),
value: parseTemplateString(x.value, envVariables),
},
]
value: v as string | Blob,
}))
: [
{
key: parseTemplateString(x.key, envVariables),
value: parseTemplateString(x.value, envVariables),
},
]
),
toFormData,
E.right
@@ -295,22 +287,3 @@ export const getPreRequestMetrics = (
hasPreReqErrors ? { failed: 1, passed: 0 } : { failed: 0, passed: 1 },
(scripts) => <PreRequestMetrics>{ scripts, duration }
);
/**
* Mask all environment values with asterisks
* @param variables Environment variable array
* @returns Environment variable array with masked values
*/
const setAllEnvironmentValuesToAsterisk = (
variables: Environment["variables"]
): Environment["variables"] => {
const envVariables: Environment["variables"] = [];
for (const variable of variables) {
let value = variable.value
if (variable.secret) {
value = "******"
}
envVariables.push({ key: variable.key, secret: variable.secret, value: value })
}
return envVariables
}

View File

@@ -220,7 +220,6 @@ export const processRequest =
effectiveFinalHeaders: [],
effectiveFinalParams: [],
effectiveFinalURL: "",
effectiveFinalMaskedURL:"",
};
// Executing pre-request-script
@@ -238,8 +237,8 @@ export const processRequest =
// Creating request-config for request-runner.
const requestConfig = createRequest(effectiveRequest);
printRequestRunner.start(requestConfig.method, effectiveRequest.effectiveFinalMaskedURL);
printRequestRunner.start(requestConfig);
// Default value for request-runner's response.
let _requestRunnerRes: RequestRunnerResponse = {

View File

@@ -31,10 +31,6 @@
@apply h-0;
}
.no-scrollbar {
scrollbar-width: none;
}
input::placeholder,
textarea::placeholder,
.cm-placeholder {
@@ -170,6 +166,12 @@ a {
@apply truncate;
@apply sm:inline-flex;
}
.env-icon {
@apply transition;
@apply inline-flex;
@apply items-center;
}
}
.tippy-svg-arrow {
@@ -330,7 +332,7 @@ pre.ace_editor {
@apply after:font-icon;
@apply after:text-current;
@apply after:right-3;
@apply after:content-["\e5cf"];
@apply after:content-["\e313"];
@apply after:text-lg;
}
@@ -485,10 +487,6 @@ pre.ace_editor {
}
}
.cm-scroller {
@apply overscroll-y-auto;
}
.cm-editor {
.cm-line::selection {
@apply bg-accentDark #{!important};
@@ -501,22 +499,6 @@ pre.ace_editor {
}
}
.cm-panel.cm-search [name="close"] {
@apply flex;
@apply items-center;
@apply justify-center;
@apply min-h-5;
@apply min-w-5;
@apply bg-primaryDark #{!important};
@apply sticky #{!important};
@apply right-0 #{!important};
@apply ml-auto #{!important};
@apply my-auto #{!important};
@apply rounded #{!important};
@apply outline #{!important};
@apply outline-divider #{!important};
}
.shortcut-key {
@apply inline-flex;
@apply font-sans;
@@ -592,11 +574,3 @@ details[open] summary .indicator {
@apply rounded;
@apply border-0;
}
.gql-operation-not-highlight {
@apply opacity-50;
}
.gql-operation-highlight {
@apply opacity-100;
}

View File

@@ -2,22 +2,7 @@
--font-sans: "Inter Variable", sans-serif;
--font-icon: "Material Symbols Rounded Variable";
--font-mono: "Roboto Mono Variable", monospace;
--font-size-body: 0.75rem;
--font-size-tiny: 0.688rem;
--line-height-body: 1rem;
--upper-primary-sticky-fold: 4.125rem;
--upper-secondary-sticky-fold: 6.188rem;
--upper-tertiary-sticky-fold: 8.25rem;
--upper-fourth-sticky-fold: 10.2rem;
--upper-mobile-primary-sticky-fold: 6.625rem;
--upper-mobile-secondary-sticky-fold: 8.688rem;
--upper-mobile-sticky-fold: 10.75rem;
--upper-mobile-tertiary-sticky-fold: 8.25rem;
--lower-primary-sticky-fold: 3rem;
--lower-secondary-sticky-fold: 5.063rem;
--lower-tertiary-sticky-fold: 7.125rem;
--lower-fourth-sticky-fold: 9.188rem;
--sidebar-primary-sticky-fold: 2rem;
--font-size-tiny: calc(var(--font-size-body) - 0.062rem);
}
@mixin dark-theme {
@@ -215,8 +200,8 @@
:root {
@include base-theme;
@include dark-theme;
@include dark-editor-theme;
@include green-theme;
@include dark-editor-theme;
}
:root.light {
@@ -272,3 +257,63 @@
:root[data-accent="yellow"] {
@include yellow-theme;
}
@mixin font-small {
--font-size-body: 0.75rem;
--line-height-body: 1rem;
--upper-primary-sticky-fold: 4.125rem;
--upper-secondary-sticky-fold: 6.188rem;
--upper-tertiary-sticky-fold: 8.25rem;
--upper-mobile-primary-sticky-fold: 6.625rem;
--upper-mobile-secondary-sticky-fold: 8.688rem;
--upper-mobile-sticky-fold: 10.75rem;
--upper-mobile-tertiary-sticky-fold: 8.25rem;
--lower-primary-sticky-fold: 3rem;
--lower-secondary-sticky-fold: 5.063rem;
--lower-tertiary-sticky-fold: 7.125rem;
--sidebar-primary-sticky-fold: 2rem;
}
@mixin font-medium {
--font-size-body: 0.875rem;
--line-height-body: 1.25rem;
--upper-primary-sticky-fold: 4.375rem;
--upper-secondary-sticky-fold: 6.688rem;
--upper-tertiary-sticky-fold: 9rem;
--upper-mobile-primary-sticky-fold: 7.125rem;
--upper-mobile-secondary-sticky-fold: 9.438rem;
--upper-mobile-sticky-fold: 11.75rem;
--upper-mobile-tertiary-sticky-fold: 9rem;
--lower-primary-sticky-fold: 3.25rem;
--lower-secondary-sticky-fold: 5.563rem;
--lower-tertiary-sticky-fold: 7.875rem;
--sidebar-primary-sticky-fold: 2.25rem;
}
@mixin font-large {
--font-size-body: 1rem;
--line-height-body: 1.5rem;
--upper-primary-sticky-fold: 4.625rem;
--upper-secondary-sticky-fold: 7.188rem;
--upper-tertiary-sticky-fold: 9.75rem;
--upper-mobile-primary-sticky-fold: 7.625rem;
--upper-mobile-secondary-sticky-fold: 10.188rem;
--upper-mobile-sticky-fold: 12.75rem;
--upper-mobile-tertiary-sticky-fold: 9.75rem;
--lower-primary-sticky-fold: 3.5rem;
--lower-secondary-sticky-fold: 6.063rem;
--lower-tertiary-sticky-fold: 8.625rem;
--sidebar-primary-sticky-fold: 2.5rem;
}
:root[data-font-size="small"] {
@include font-small;
}
:root[data-font-size="medium"] {
@include font-medium;
}
:root[data-font-size="large"] {
@include font-large;
}

View File

@@ -5,7 +5,6 @@
"choose_file": "Kies 'n lêer",
"clear": "Duidelik",
"clear_all": "Maak alles skoon",
"clear_history": "Clear all History",
"close": "Close",
"connect": "Koppel",
"connecting": "Connecting",
@@ -32,7 +31,6 @@
"paste": "Paste",
"prettify": "Prettify",
"remove": "Verwyder",
"rename": "Rename",
"restore": "Herstel",
"save": "Stoor",
"scroll_to_bottom": "Scroll to bottom",
@@ -79,8 +77,6 @@
"search": "Soek",
"share": "Deel",
"shortcuts": "Kortpaaie",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "Kollig",
"status": "Status",
"status_description": "Check the status of the website",
@@ -135,15 +131,12 @@
"renamed": "Versameling hernoem",
"request_in_use": "Request in use",
"save_as": "Stoor as",
"save_to_collection": "Save to Collection",
"select": "Kies 'n versameling",
"select_location": "Kies ligging",
"select_team": "Kies 'n span",
"team_collections": "Spanversamelings"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "Are you sure you want to leave this team?",
"logout": "Weet u seker dat u wil afmeld?",
"remove_collection": "Weet u seker dat u hierdie versameling permanent wil uitvee?",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "Is u seker dat u hierdie werkruimte wil sinkroniseer?"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "Koptekst {count}",
"message": "Boodskap {count}",
@@ -204,31 +192,17 @@
"create_new": "Skep nuwe omgewing",
"created": "Environment created",
"deleted": "Environment deletion",
"duplicated": "Environment duplicated",
"edit": "Bewerk omgewing",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "Gee 'n geldige naam vir die omgewing",
"list": "Environment variables",
"my_environments": "My Environments",
"name": "Name",
"nested_overflow": "nested environment variables are limited to 10 levels",
"new": "Nuwe omgewing",
"no_active_environment": "No active environment",
"no_environment": "Geen omgewing nie",
"no_environment_description": "No environments were selected. Choose what to do with the following variables.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "Kies omgewing",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Team Environments",
"title": "Omgewings",
"updated": "Environment updation",
"value": "Value",
"variable": "Variable",
"variable_list": "Veranderlike lys"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "Geen duur nie",
"no_results_found": "No matches found",
"page_not_found": "This page could not be found",
"proxy_error": "Proxy error",
"script_fail": "Kon nie voorafversoekskrip uitvoer nie",
"something_went_wrong": "Iets het verkeerd geloop",
"test_script_fail": "Could not execute post-request script"
@@ -278,13 +251,9 @@
"renamed": "Vouer hernoem"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "Mutasies",
"schema": "Skema",
"subscriptions": "Inskrywings",
"switch_connection": "Switch connection"
"subscriptions": "Inskrywings"
},
"group": {
"time": "Time",
@@ -338,36 +307,13 @@
"json_description": "Import collections from a Hoppscotch Collections JSON file",
"title": "Invoer"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Collapse or Expand Collections",
"collapse_sidebar": "Collapse or Expand the sidebar",
"column": "Vertical layout",
"name": "Layout",
"row": "Horizontal layout"
"row": "Horizontal layout",
"zen_mode": "Zen -modus"
},
"modal": {
"close_unsaved_tab": "You have unsaved changes",
@@ -472,7 +418,6 @@
"payload": "Nuttingslading",
"query": "Navraag",
"raw_body": "Rou versoeksliggaam",
"rename": "Rename Request",
"renamed": "Versoek hernoem",
"run": "Hardloop",
"save": "Stoor",
@@ -480,7 +425,6 @@
"saved": "Versoek gestoor",
"share": "Deel",
"share_description": "Share Hoppscotch with your friends",
"stop": "Stop",
"title": "Versoek",
"type": "Soort versoek",
"url": "URL",
@@ -515,6 +459,7 @@
"account_name_description": "Dit is u vertoonnaam.",
"background": "Agtergrond",
"black_mode": "Swart",
"change_font_size": "Verander lettergrootte",
"choose_language": "Kies taal",
"dark_mode": "Donker",
"delete_account": "Delete account",
@@ -527,6 +472,10 @@
"extensions": "Uitbreidings",
"extensions_use_toggle": "Gebruik die blaaieruitbreiding om versoeke te stuur (indien teenwoordig)",
"follow": "Follow Us",
"font_size": "Skrifgrootte",
"font_size_large": "Groot",
"font_size_medium": "Medium",
"font_size_small": "Klein",
"interceptor": "Onderskepper",
"interceptor_description": "Middelware tussen toepassing en API's.",
"language": "Taal",
@@ -591,27 +540,19 @@
"settings": "Gaan na die instellingsbladsy",
"title": "Navigasie"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "Kopieer versoekskakel",
"delete_method": "Kies DELETE metode",
"get_method": "Kies GET -metode",
"head_method": "Kies HOOF metode",
"import_curl": "Import cURL",
"method": "Metode",
"next_method": "Kies Volgende metode",
"post_method": "Kies POST -metode",
"previous_method": "Kies Vorige metode",
"put_method": "Kies PUT -metode",
"rename": "Rename Request",
"reset_request": "Herstel versoek",
"save_request": "Save Request",
"save_to_collections": "Stoor in versamelings",
"send_request": "Stuur versoek",
"show_code": "Generate code snippet",
"title": "Versoek"
},
"response": {
@@ -641,85 +582,6 @@
"log": "Meld",
"url": "URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "Soort gebeurtenis",
"log": "Meld",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "Magtiging",
"body": "Liggaam",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "Versamelings",
"documentation": "Dokumentasie",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "Opskrifte",
"history": "Geskiedenis",

View File

@@ -5,7 +5,6 @@
"choose_file": "اختيار ملف",
"clear": "امسح",
"clear_all": "امسح الكل",
"clear_history": "Clear all History",
"close": "Close",
"connect": "الاتصال",
"connecting": "Connecting",
@@ -32,7 +31,6 @@
"paste": "لصق",
"prettify": "جمال",
"remove": "ازالة",
"rename": "Rename",
"restore": "اعادة",
"save": "حفظ",
"scroll_to_bottom": "Scroll to bottom",
@@ -79,8 +77,6 @@
"search": "بحث",
"share": "يشارك",
"shortcuts": "الاختصارات",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "أضواء كاشفة",
"status": "حالة",
"status_description": "Check the status of the website",
@@ -135,15 +131,12 @@
"renamed": "تمت إعادة تسمية المجموعة",
"request_in_use": "Request in use",
"save_as": "حفظ باسم",
"save_to_collection": "Save to Collection",
"select": "حدد مجموعة",
"select_location": "اختر موقعا",
"select_team": "اختر فريقًا",
"team_collections": "مجموعات الفريق"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "هل أنت متأكد أنك تريد مغادرة هذا الفريق؟",
"logout": "هل أنت متأكد أنك تريد تسجيل الخروج؟",
"remove_collection": "هل أنت متأكد أنك تريد حذف هذه المجموعة نهائيًا؟",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "هل أنت متأكد أنك تريد مزامنة مساحة العمل هذه؟"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "رأس {count}",
"message": "الرسالة {count}",
@@ -204,31 +192,17 @@
"create_new": "انشاء بيئة جديدة",
"created": "Environment created",
"deleted": "حذف بيئة العمل",
"duplicated": "Environment duplicated",
"edit": "تحرير البيئة",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "الرجاء تقديم اسم صالح للبيئة",
"list": "Environment variables",
"my_environments": "My Environments",
"name": "Name",
"nested_overflow": "nested environment variables are limited to 10 levels",
"new": "بيئة جديدة",
"no_active_environment": "No active environment",
"no_environment": "لا بيئة",
"no_environment_description": "لم يتم اختيار أي بيئة عمل. اختر ما تريد فعله بالمتغيرات التالية.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "حدد البيئة",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Team Environments",
"title": "البيئات",
"updated": "تحديث بيئة العمل",
"value": "Value",
"variable": "Variable",
"variable_list": "قائمة متغيرة"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "لا مدة",
"no_results_found": "No matches found",
"page_not_found": "This page could not be found",
"proxy_error": "Proxy error",
"script_fail": "تعذر تنفيذ نص الطلب المسبق",
"something_went_wrong": "هناك خطأ ما",
"test_script_fail": "Could not execute post-request script"
@@ -278,13 +251,9 @@
"renamed": "تمت إعادة تسمية المجلد"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "الطفرات",
"schema": "مخطط",
"subscriptions": "الاشتراكات",
"switch_connection": "Switch connection"
"subscriptions": "الاشتراكات"
},
"group": {
"time": "Time",
@@ -338,36 +307,13 @@
"json_description": "استيراد مجموعة من ملفHoppscotch Collections JSON file",
"title": "يستورد"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Collapse or Expand Collections",
"collapse_sidebar": "Collapse or Expand the sidebar",
"column": "تصيم عمودي",
"name": "Layout",
"row": "تصميم افقي"
"row": "تصميم افقي",
"zen_mode": "وضع Zen"
},
"modal": {
"close_unsaved_tab": "You have unsaved changes",
@@ -472,7 +418,6 @@
"payload": "الحمولة",
"query": "استفسار",
"raw_body": "نص طلب خام",
"rename": "Rename Request",
"renamed": "تمت إعادة تسمية الطلب",
"run": "يركض",
"save": "يحفظ",
@@ -480,7 +425,6 @@
"saved": "تم حفظ الطلب",
"share": "يشارك",
"share_description": "Share Hoppscotch with your friends",
"stop": "Stop",
"title": "طلب",
"type": "نوع الطلب",
"url": "URL",
@@ -515,6 +459,7 @@
"account_name_description": "هذا هو اسم العرض الخاص بك.",
"background": "خلفية",
"black_mode": "أسود",
"change_font_size": "تغيير حجم الخط",
"choose_language": "اختر اللغة",
"dark_mode": "داكن",
"delete_account": "Delete account",
@@ -527,6 +472,10 @@
"extensions": "ملحقات",
"extensions_use_toggle": "استخدم امتداد المتصفح لإرسال الطلبات (إن وجدت)",
"follow": "Follow Us",
"font_size": "حجم الخط",
"font_size_large": "كبير",
"font_size_medium": "متوسط",
"font_size_small": "صغير",
"interceptor": "المعترض",
"interceptor_description": "البرامج الوسيطة بين التطبيق وواجهات برمجة التطبيقات.",
"language": "لغة",
@@ -591,27 +540,19 @@
"settings": "انتقل إلى صفحة الإعدادات",
"title": "التنقل"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "نسخ ارتباط الطلب",
"delete_method": "حدد طريقة الحذف",
"get_method": "حدد طريقة GET",
"head_method": "حدد طريقة HEAD",
"import_curl": "Import cURL",
"method": "طريقة",
"next_method": "حدد الطريقة التالية",
"post_method": "حدد طريقة POST",
"previous_method": "حدد الطريقة السابقة",
"put_method": "حدد طريقة PUT",
"rename": "Rename Request",
"reset_request": "طلب إعادة التعيين",
"save_request": "Save Request",
"save_to_collections": "حفظ في المجموعات",
"send_request": "ارسل طلب",
"show_code": "Generate code snippet",
"title": "طلب"
},
"response": {
@@ -641,85 +582,6 @@
"log": "سجل",
"url": "URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "نوع الحدث",
"log": "سجل",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "تفويض",
"body": "الجسم",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "المجموعات",
"documentation": "توثيق",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "الرؤوس",
"history": "تاريخ",

View File

@@ -5,7 +5,6 @@
"choose_file": "Triar un fitxer",
"clear": "Netejar",
"clear_all": "Neteja-ho tot",
"clear_history": "Clear all History",
"close": "Close",
"connect": "Connectar",
"connecting": "Connecting",
@@ -32,7 +31,6 @@
"paste": "Enganxar",
"prettify": "Fes-ho bonic",
"remove": "Eliminar",
"rename": "Rename",
"restore": "Restaurar",
"save": "Guardar",
"scroll_to_bottom": "Desplaceu-vos cap avall",
@@ -79,8 +77,6 @@
"search": "Cercar",
"share": "Compartir",
"shortcuts": "Dreceres",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "Destacar",
"status": "Estat",
"status_description": "Comproveu l'estat de la web",
@@ -135,15 +131,12 @@
"renamed": "S'ha canviat el nom de la col·lecció",
"request_in_use": "Request in use",
"save_as": "Guardar com",
"save_to_collection": "Save to Collection",
"select": "Seleccionar una col·lecció",
"select_location": "Seleccionar la ubicació",
"select_team": "Seleccionar un equip",
"team_collections": "Col·leccions per equips"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "Està segur que vol deixar aquest equip?",
"logout": "Està segur que vol tancar la sessió?",
"remove_collection": "Està segur que vol suprimir permanentment aquesta col·lecció?",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "Està segur que vol sincronitzar aquest espai de treball?"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "Capçalera {count}",
"message": "Missatges {count}",
@@ -204,31 +192,17 @@
"create_new": "Crea un entorn nou",
"created": "Etorn creat",
"deleted": "Entorn eliminat",
"duplicated": "Environment duplicated",
"edit": "Editar l'entorn",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "Proporcioneu un nom vàlid per a l'entorn",
"list": "Environment variables",
"my_environments": "My Environments",
"name": "Name",
"nested_overflow": "Les variables d'entorn niuades estan limitades a 10 nivells",
"new": "Nou entorn",
"no_active_environment": "No active environment",
"no_environment": "Sense entorn",
"no_environment_description": "No s'ha seleccionat cap entorn. Trieu què voleu fer amb les variables següents.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "Seleccioneu un entorn",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Team Environments",
"title": "Entorns",
"updated": "Entorn actualitzat",
"value": "Value",
"variable": "Variable",
"variable_list": "Llista de variables"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "Sense durada",
"no_results_found": "No s'ha trobat cap coincidència",
"page_not_found": "This page could not be found",
"proxy_error": "Proxy error",
"script_fail": "No s'ha pogut executar l'script de sol·licitud prèvia",
"something_went_wrong": "Alguna cosa ha anat malament",
"test_script_fail": "No s'ha pogut executar l'script posterior a la sol·licitud"
@@ -278,13 +251,9 @@
"renamed": "S'ha canviat el nom de la carpeta"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "Mutacions",
"schema": "Esquema",
"subscriptions": "Subscripcions",
"switch_connection": "Switch connection"
"subscriptions": "Subscripcions"
},
"group": {
"time": "Time",
@@ -338,36 +307,13 @@
"json_description": "Importar col·leccions des d'un fitxer JSON de col·leccions Hoppscotch",
"title": "Importació"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Amagar o Ampliar Col·leccions",
"collapse_sidebar": "Amagar o Ampliar la barra lateral",
"column": "Distribució vertical",
"name": "Distribució",
"row": "Distribució horitzontal"
"row": "Distribució horitzontal",
"zen_mode": "Mode Zen"
},
"modal": {
"close_unsaved_tab": "You have unsaved changes",
@@ -472,7 +418,6 @@
"payload": "Payload",
"query": "Consulta",
"raw_body": "Cos de sol·licitud sense processar",
"rename": "Rename Request",
"renamed": "S'ha canviat el nom de la sol·licitud",
"run": "Executar",
"save": "Guardar",
@@ -480,7 +425,6 @@
"saved": "S'ha desat la sol·licitud",
"share": "Compartir",
"share_description": "Comparteix Hoppscotch amb els teus amics",
"stop": "Stop",
"title": "Sol·licitud",
"type": "Tipus de sol·licitud",
"url": "URL",
@@ -515,6 +459,7 @@
"account_name_description": "Aquest és el vostre nom d'exposició",
"background": "Fons",
"black_mode": "Negre",
"change_font_size": "Canvia la mida de la lletra",
"choose_language": "Tria l'idioma",
"dark_mode": "Fosc",
"delete_account": "Delete account",
@@ -527,6 +472,10 @@
"extensions": "Extensions",
"extensions_use_toggle": "Utilitzeu l'extensió del navegador per enviar sol·licituds (si n'hi ha)",
"follow": "Segueix-nos",
"font_size": "Mida de la font",
"font_size_large": "Gran",
"font_size_medium": "Mitjà",
"font_size_small": "Petit",
"interceptor": "Interceptor",
"interceptor_description": "Middleware entre aplicació i APIs.",
"language": "Llenguatge",
@@ -591,27 +540,19 @@
"settings": "Anar a la pàgina de Configuració",
"title": "Navegació"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "Copiar l'enllaç de la sol·licitud",
"delete_method": "Seleccionar el mètode DELETE",
"get_method": "Seleccionar el mètode GET",
"head_method": "Seleccionar el mètode HEAD",
"import_curl": "Import cURL",
"method": "Mètode",
"next_method": "Seleccionar mètode Següent",
"post_method": "Seleccionar mètode POST",
"previous_method": "Seleccionar mètode Anterior",
"put_method": "Seleccionar mètode PUT",
"rename": "Rename Request",
"reset_request": "Sol·licitud de restabliment",
"save_request": "Save Request",
"save_to_collections": "Guardar a les col·leccions",
"send_request": "Enviar sol.licitud",
"show_code": "Generate code snippet",
"title": "Sol·licitud"
},
"response": {
@@ -641,85 +582,6 @@
"log": "Registre",
"url": "URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "Tipus d'esdeveniment",
"log": "Registre",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "Autorització",
"body": "Cos",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "Col·leccions",
"documentation": "Documentació",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "Capçaleres",
"history": "Historial",

View File

@@ -5,7 +5,6 @@
"choose_file": "选择文件",
"clear": "清除",
"clear_all": "全部清除",
"clear_history": "Clear all History",
"close": "关闭",
"connect": "连接",
"connecting": "连接中",
@@ -32,7 +31,6 @@
"paste": "粘贴",
"prettify": "美化",
"remove": "移除",
"rename": "Rename",
"restore": "恢复",
"save": "保存",
"scroll_to_bottom": "滚动至底部",
@@ -79,8 +77,6 @@
"search": "搜索",
"share": "分享",
"shortcuts": "快捷方式",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "聚光灯",
"status": "状态",
"status_description": "检查网站状态",
@@ -135,15 +131,12 @@
"renamed": "集合已更名",
"request_in_use": "请求正在使用中",
"save_as": "另存为",
"save_to_collection": "Save to Collection",
"select": "选择一个集合",
"select_location": "选择位置",
"select_team": "选择一个团队",
"team_collections": "团队集合"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "你确定要离开此团队吗?",
"logout": "你确定要登出吗?",
"remove_collection": "你确定要永久删除该集合吗?",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "你想保存在此标签页中所作的修改吗?",
"sync": "您确定要同步该工作区吗?"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "请求头 {count}",
"message": "消息 {count}",
@@ -204,31 +192,17 @@
"create_new": "创建新环境",
"created": "环境已创建",
"deleted": "环境已删除",
"duplicated": "Environment duplicated",
"edit": "编辑环境",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "请提供有效的环境名称",
"list": "Environment variables",
"my_environments": "我的环境",
"name": "Name",
"nested_overflow": "环境嵌套深度超过限制10层",
"new": "新建环境",
"no_active_environment": "No active environment",
"no_environment": "无环境",
"no_environment_description": "没有选择环境。选择如何处理以下变量。",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "选择环境",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "团队环境",
"title": "环境",
"updated": "环境已更新",
"value": "Value",
"variable": "Variable",
"variable_list": "变量列表"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "无持续时间",
"no_results_found": "找不到结果",
"page_not_found": "找不到此頁面",
"proxy_error": "Proxy error",
"script_fail": "无法执行预请求脚本",
"something_went_wrong": "发生了一些错误",
"test_script_fail": "无法执行请求脚本"
@@ -278,13 +251,9 @@
"renamed": "文件夹已更名"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "变更",
"schema": "模式",
"subscriptions": "订阅",
"switch_connection": "Switch connection"
"subscriptions": "订阅"
},
"group": {
"time": "时间",
@@ -338,36 +307,13 @@
"json_description": "从 Hoppscotch 的集合文件导入JSON",
"title": "导入"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "折叠/展开集合",
"collapse_sidebar": "折叠/展开边栏",
"column": "垂直布局",
"name": "布局",
"row": "水平布局"
"row": "水平布局",
"zen_mode": "ZEN 模式"
},
"modal": {
"close_unsaved_tab": "有未保存的变更",
@@ -472,7 +418,6 @@
"payload": "负载",
"query": "查询",
"raw_body": "原始请求体",
"rename": "Rename Request",
"renamed": "请求重命名",
"run": "运行",
"save": "保存",
@@ -480,7 +425,6 @@
"saved": "请求已保存",
"share": "分享",
"share_description": "分享 Hoppscotch 给你的朋友",
"stop": "Stop",
"title": "请求",
"type": "请求类型",
"url": "URL",
@@ -515,6 +459,7 @@
"account_name_description": "这是您的显示名称。",
"background": "背景",
"black_mode": "黑色",
"change_font_size": "更改字体大小",
"choose_language": "选择语言",
"dark_mode": "暗色",
"delete_account": "刪除账号",
@@ -527,6 +472,10 @@
"extensions": "扩展",
"extensions_use_toggle": "使用浏览器扩展发送请求(如果存在)",
"follow": "关注我们",
"font_size": "字体大小",
"font_size_large": "大",
"font_size_medium": "中",
"font_size_small": "小",
"interceptor": "拦截器",
"interceptor_description": "应用程序和 API 之间的中间件。",
"language": "语言",
@@ -591,27 +540,19 @@
"settings": "前往设置页面",
"title": "导航"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "复制请求链接",
"delete_method": "选择 DELETE 方法",
"get_method": "选择 GET 方法",
"head_method": "选择 HEAD 方法",
"import_curl": "Import cURL",
"method": "方法",
"next_method": "选择下一个方法",
"post_method": "选择 POST 方法",
"previous_method": "选择上一个方法",
"put_method": "选择 PUT 方法",
"rename": "Rename Request",
"reset_request": "重置请求",
"save_request": "Save Request",
"save_to_collections": "保存到集合",
"send_request": "发送请求",
"show_code": "Generate code snippet",
"title": "请求"
},
"response": {
@@ -641,85 +582,6 @@
"log": "日志",
"url": "URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "事件类型",
"log": "日志",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "授权",
"body": "请求体",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "集合",
"documentation": "帮助文档",
"duplicate": "Duplicate Tab",
"environments": "环境",
"headers": "请求头",
"history": "历史记录",

View File

@@ -5,7 +5,6 @@
"choose_file": "Vyberte soubor",
"clear": "Průhledná",
"clear_all": "Vymazat vše",
"clear_history": "Clear all History",
"close": "Close",
"connect": "Připojit",
"connecting": "Connecting",
@@ -32,7 +31,6 @@
"paste": "Paste",
"prettify": "Prettify",
"remove": "Odstranit",
"rename": "Rename",
"restore": "Obnovit",
"save": "Uložit",
"scroll_to_bottom": "Scroll to bottom",
@@ -79,8 +77,6 @@
"search": "Vyhledávání",
"share": "Podíl",
"shortcuts": "Klávesové zkratky",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "Reflektor",
"status": "Postavení",
"status_description": "Check the status of the website",
@@ -135,15 +131,12 @@
"renamed": "Sbírka přejmenována",
"request_in_use": "Request in use",
"save_as": "Uložit jako",
"save_to_collection": "Save to Collection",
"select": "Vyberte sbírku",
"select_location": "Vyberte umístění",
"select_team": "Vyberte tým",
"team_collections": "Týmové sbírky"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "Are you sure you want to leave this team?",
"logout": "Opravdu se chcete odhlásit?",
"remove_collection": "Opravdu chcete tuto sbírku trvale smazat?",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "Opravdu chcete synchronizovat tento pracovní prostor?"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "Záhlaví {count}",
"message": "Zpráva {count}",
@@ -204,31 +192,17 @@
"create_new": "Vytvořit nové prostředí",
"created": "Environment created",
"deleted": "Environment deletion",
"duplicated": "Environment duplicated",
"edit": "Upravit prostředí",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "Zadejte platný název prostředí",
"list": "Environment variables",
"my_environments": "My Environments",
"name": "Name",
"nested_overflow": "nested environment variables are limited to 10 levels",
"new": "Nové prostředí",
"no_active_environment": "No active environment",
"no_environment": "Žádné prostředí",
"no_environment_description": "No environments were selected. Choose what to do with the following variables.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "Vyberte prostředí",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Team Environments",
"title": "Prostředí",
"updated": "Environment updation",
"value": "Value",
"variable": "Variable",
"variable_list": "Seznam proměnných"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "Žádné trvání",
"no_results_found": "No matches found",
"page_not_found": "This page could not be found",
"proxy_error": "Proxy error",
"script_fail": "Skript předběžného požadavku nelze spustit",
"something_went_wrong": "Něco se pokazilo",
"test_script_fail": "Could not execute post-request script"
@@ -278,13 +251,9 @@
"renamed": "Složka přejmenována"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "Mutace",
"schema": "Schéma",
"subscriptions": "Předplatné",
"switch_connection": "Switch connection"
"subscriptions": "Předplatné"
},
"group": {
"time": "Time",
@@ -338,36 +307,13 @@
"json_description": "Import collections from a Hoppscotch Collections JSON file",
"title": "Import"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Collapse or Expand Collections",
"collapse_sidebar": "Collapse or Expand the sidebar",
"column": "Vertical layout",
"name": "Layout",
"row": "Horizontal layout"
"row": "Horizontal layout",
"zen_mode": "Zenový režim"
},
"modal": {
"close_unsaved_tab": "You have unsaved changes",
@@ -472,7 +418,6 @@
"payload": "Užitečné zatížení",
"query": "Dotaz",
"raw_body": "Raw Request Body",
"rename": "Rename Request",
"renamed": "Žádost přejmenována",
"run": "Běh",
"save": "Uložit",
@@ -480,7 +425,6 @@
"saved": "Žádost uložena",
"share": "Podíl",
"share_description": "Share Hoppscotch with your friends",
"stop": "Stop",
"title": "Žádost",
"type": "Typ požadavku",
"url": "URL",
@@ -515,6 +459,7 @@
"account_name_description": "Toto je vaše zobrazované jméno.",
"background": "Pozadí",
"black_mode": "Černá",
"change_font_size": "Změnit velikost písma",
"choose_language": "Vyber jazyk",
"dark_mode": "Temný",
"delete_account": "Delete account",
@@ -527,6 +472,10 @@
"extensions": "Rozšíření",
"extensions_use_toggle": "K odeslání požadavků použijte rozšíření prohlížeče (je -li k dispozici)",
"follow": "Follow Us",
"font_size": "Velikost písma",
"font_size_large": "Velký",
"font_size_medium": "Střední",
"font_size_small": "Malý",
"interceptor": "Interceptor",
"interceptor_description": "Middleware mezi aplikací a API.",
"language": "Jazyk",
@@ -591,27 +540,19 @@
"settings": "Přejděte na stránku Nastavení",
"title": "Navigace"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "Kopírovat požadavek na odkaz",
"delete_method": "Vyberte metodu ODSTRANIT",
"get_method": "Vyberte metodu ZÍSKAT",
"head_method": "Vyberte metodu HEAD",
"import_curl": "Import cURL",
"method": "Metoda",
"next_method": "Vyberte Další metoda",
"post_method": "Vyberte metodu POST",
"previous_method": "Vyberte předchozí metodu",
"put_method": "Vyberte metodu PUT",
"rename": "Rename Request",
"reset_request": "Resetovat požadavek",
"save_request": "Save Request",
"save_to_collections": "Uložit do sbírek",
"send_request": "Poslat žádost",
"show_code": "Generate code snippet",
"title": "Žádost"
},
"response": {
@@ -641,85 +582,6 @@
"log": "Záznam",
"url": "URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "Typ události",
"log": "Záznam",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "Povolení",
"body": "Tělo",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "Sbírky",
"documentation": "Dokumentace",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "Záhlaví",
"history": "Dějiny",

View File

@@ -5,7 +5,6 @@
"choose_file": "Vælg en fil",
"clear": "Klar",
"clear_all": "Slet alt",
"clear_history": "Clear all History",
"close": "Close",
"connect": "Opret forbindelse",
"connecting": "Connecting",
@@ -32,7 +31,6 @@
"paste": "Paste",
"prettify": "Prettify",
"remove": "Fjerne",
"rename": "Rename",
"restore": "Gendan",
"save": "Gemme",
"scroll_to_bottom": "Scroll to bottom",
@@ -79,8 +77,6 @@
"search": "Søg",
"share": "Del",
"shortcuts": "Genveje",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "Spotlight",
"status": "Status",
"status_description": "Check the status of the website",
@@ -135,15 +131,12 @@
"renamed": "Samling omdøbt",
"request_in_use": "Request in use",
"save_as": "Gem som",
"save_to_collection": "Save to Collection",
"select": "Vælg en samling",
"select_location": "Vælg placering",
"select_team": "Vælg et hold",
"team_collections": "Teamsamlinger"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "Are you sure you want to leave this team?",
"logout": "Er du sikker på, at du vil logge af?",
"remove_collection": "Er du sikker på, at du vil slette denne samling permanent?",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "Er du sikker på, at du vil synkronisere dette arbejdsområde?"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "Overskrift {count}",
"message": "Besked {count}",
@@ -204,31 +192,17 @@
"create_new": "Skab nyt miljø",
"created": "Environment created",
"deleted": "Environment deletion",
"duplicated": "Environment duplicated",
"edit": "Rediger miljø",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "Angiv et gyldigt navn på miljøet",
"list": "Environment variables",
"my_environments": "My Environments",
"name": "Name",
"nested_overflow": "nested environment variables are limited to 10 levels",
"new": "Nyt miljø",
"no_active_environment": "No active environment",
"no_environment": "Intet miljø",
"no_environment_description": "No environments were selected. Choose what to do with the following variables.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "Vælg miljø",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Team Environments",
"title": "Miljøer",
"updated": "Environment updation",
"value": "Value",
"variable": "Variable",
"variable_list": "Variabel liste"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "Ingen varighed",
"no_results_found": "No matches found",
"page_not_found": "This page could not be found",
"proxy_error": "Proxy error",
"script_fail": "Kunne ikke udføre pre-request script",
"something_went_wrong": "Noget gik galt",
"test_script_fail": "Could not execute post-request script"
@@ -278,13 +251,9 @@
"renamed": "Mappen omdøbt"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "Mutationer",
"schema": "Skema",
"subscriptions": "Abonnementer",
"switch_connection": "Switch connection"
"subscriptions": "Abonnementer"
},
"group": {
"time": "Time",
@@ -338,36 +307,13 @@
"json_description": "Import collections from a Hoppscotch Collections JSON file",
"title": "Importere"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Collapse or Expand Collections",
"collapse_sidebar": "Collapse or Expand the sidebar",
"column": "Vertical layout",
"name": "Layout",
"row": "Horizontal layout"
"row": "Horizontal layout",
"zen_mode": "Zen -tilstand"
},
"modal": {
"close_unsaved_tab": "You have unsaved changes",
@@ -472,7 +418,6 @@
"payload": "Nyttelast",
"query": "Forespørgsel",
"raw_body": "Raw Request Body",
"rename": "Rename Request",
"renamed": "Anmodning omdøbt",
"run": "Løb",
"save": "Gemme",
@@ -480,7 +425,6 @@
"saved": "Anmodning gemt",
"share": "Del",
"share_description": "Share Hoppscotch with your friends",
"stop": "Stop",
"title": "Anmodning",
"type": "Anmodningstype",
"url": "URL",
@@ -515,6 +459,7 @@
"account_name_description": "Dette er dit visningsnavn.",
"background": "Baggrund",
"black_mode": "Sort",
"change_font_size": "Skift skriftstørrelse",
"choose_language": "Vælg sprog",
"dark_mode": "Mørk",
"delete_account": "Delete account",
@@ -527,6 +472,10 @@
"extensions": "Udvidelser",
"extensions_use_toggle": "Brug browserudvidelsen til at sende anmodninger (hvis de findes)",
"follow": "Follow Us",
"font_size": "Skriftstørrelse",
"font_size_large": "Stor",
"font_size_medium": "Medium",
"font_size_small": "Lille",
"interceptor": "Aflytter",
"interceptor_description": "Middleware mellem applikation og API'er.",
"language": "Sprog",
@@ -591,27 +540,19 @@
"settings": "Gå til siden Indstillinger",
"title": "Navigation"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "Kopiér anmodningslink",
"delete_method": "Vælg SLET metode",
"get_method": "Vælg GET -metode",
"head_method": "Vælg HEAD -metode",
"import_curl": "Import cURL",
"method": "Metode",
"next_method": "Vælg Næste metode",
"post_method": "Vælg POST -metode",
"previous_method": "Vælg Forrige metode",
"put_method": "Vælg PUT -metode",
"rename": "Rename Request",
"reset_request": "Nulstil anmodning",
"save_request": "Save Request",
"save_to_collections": "Gem i samlinger",
"send_request": "Send anmodning",
"show_code": "Generate code snippet",
"title": "Anmodning"
},
"response": {
@@ -641,85 +582,6 @@
"log": "Log",
"url": "URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "Begivenhedstype",
"log": "Log",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "Bemyndigelse",
"body": "Legeme",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "Samlinger",
"documentation": "Dokumentation",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "Overskrifter",
"history": "Historie",

View File

@@ -5,7 +5,6 @@
"choose_file": "Datei auswählen",
"clear": "Zurücksetzen",
"clear_all": "Alles zurücksetzen",
"clear_history": "Clear all History",
"close": "Close",
"connect": "Verbinden",
"connecting": "Connecting",
@@ -32,7 +31,6 @@
"paste": "Einfügen",
"prettify": "Verschönern",
"remove": "Entfernen",
"rename": "Rename",
"restore": "Wiederherstellen",
"save": "Speichern",
"scroll_to_bottom": "Scroll to bottom",
@@ -48,8 +46,7 @@
"turn_off": "Ausschalten",
"turn_on": "Einschalten",
"undo": "Rückgängig machen",
"yes": "Ja",
"secret": "Als Secret speichern"
"yes": "Ja"
},
"add": {
"new": "Neue hinzufügen",
@@ -80,8 +77,6 @@
"search": "Suche",
"share": "Teilen",
"shortcuts": "Verknüpfungen",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "Scheinwerfer",
"status": "Status",
"status_description": "Überprüfe den Status der Webseite",
@@ -136,15 +131,12 @@
"renamed": "Sammlung umbenannt",
"request_in_use": "Anfrage wird ausgeführt",
"save_as": "Speichern als",
"save_to_collection": "Save to Collection",
"select": "Wähle eine Sammlung",
"select_location": "Ort auswählen",
"select_team": "Wähle ein Team",
"team_collections": "Teamsammlungen"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "Möchtest Du dieses Team wirklich verlassen?",
"logout": "Möchtest Du Dich wirklich abmelden?",
"remove_collection": "Möchtest Du diese Sammlung wirklich endgültig löschen?",
@@ -158,11 +150,6 @@
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "Möchtest Du diesen Arbeitsbereich wirklich synchronisieren?"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "Header {count}",
"message": "Nachricht {count}",
@@ -205,31 +192,17 @@
"create_new": "Neue Umgebung erstellen",
"created": "Umgebung erzeugt",
"deleted": "Umgebung löschen",
"duplicated": "Environment duplicated",
"edit": "Umgebung bearbeiten",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "Bitte gib einen gültigen Namen für die Umgebung an",
"list": "Environment variables",
"my_environments": "My Environments",
"name": "Name",
"nested_overflow": "Verschachtelte Umgebungsvariablen sind limitert auf 10 Unterebenen",
"new": "Neue Umgebung",
"no_active_environment": "No active environment",
"no_environment": "Keine Umgebung",
"no_environment_description": "Es wurden keine Umgebungen ausgewählt. Wähle aus, was mit den untenstehenden Variablen geschehen soll.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "Umgebung auswählen",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Team Environments",
"title": "Umgebungen",
"updated": "Umgebung aktualisiert",
"value": "Value",
"variable": "Variable",
"variable_list": "Variablenliste"
},
"error": {
@@ -253,7 +226,6 @@
"no_duration": "Keine Dauer",
"no_results_found": "No matches found",
"page_not_found": "This page could not be found",
"proxy_error": "Proxy error",
"script_fail": "Pre-Request-Skripte konnte nicht ausgeführt werden",
"something_went_wrong": "Etwas ist schief gelaufen",
"test_script_fail": "Testskripts konnten nicht ausgeführt werden"
@@ -279,13 +251,9 @@
"renamed": "Ordner umbenannt"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "Mutationen",
"schema": "Schema",
"subscriptions": "Abonnements",
"switch_connection": "Switch connection"
"subscriptions": "Abonnements"
},
"group": {
"time": "Time",
@@ -339,36 +307,13 @@
"json_description": "Hoppscotch Sammlungsdatei (JSON) importieren",
"title": "Importieren"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Sammlungen ein- oder ausklappen",
"collapse_sidebar": "Seitenleiste ein- oder ausklappen",
"column": "Vertikales Layout",
"name": "Layout",
"row": "Horizontales Layout"
"row": "Horizontales Layout",
"zen_mode": "Zen-Modus"
},
"modal": {
"close_unsaved_tab": "You have unsaved changes",
@@ -473,7 +418,6 @@
"payload": "Nutzlast",
"query": "Anfrage",
"raw_body": "Roher Anfragetext",
"rename": "Rename Request",
"renamed": "Anfrage umbenannt",
"run": "Ausführen",
"save": "Speichern",
@@ -481,7 +425,6 @@
"saved": "Anfrage gespeichert",
"share": "Teilen",
"share_description": "Teile Hoppscotch mit Deinen Freunden",
"stop": "Stop",
"title": "Anfrage",
"type": "Anfragetyp",
"url": "URL",
@@ -516,6 +459,7 @@
"account_name_description": "Dies ist Dein Anzeigename.",
"background": "Hintergrund",
"black_mode": "Schwarz",
"change_font_size": "Schriftgröße ändern",
"choose_language": "Sprache wählen",
"dark_mode": "Dunkel",
"delete_account": "Delete account",
@@ -528,6 +472,10 @@
"extensions": "Erweiterungen",
"extensions_use_toggle": "Verwende die Browsererweiterung, um Anfragen zu senden (falls vorhanden)",
"follow": "Folge uns",
"font_size": "Schriftgröße",
"font_size_large": "Groß",
"font_size_medium": "Mittel",
"font_size_small": "Klein",
"interceptor": "Interceptor",
"interceptor_description": "Middleware zwischen Anwendung und APIs.",
"language": "Sprache",
@@ -592,27 +540,19 @@
"settings": "Einstellungen öffnen",
"title": "Navigation"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "Anfragelink kopieren",
"delete_method": "DELETE-Methode auswählen",
"get_method": "GET-Methode auswählen",
"head_method": "HEAD-Methode auswählen",
"import_curl": "Import cURL",
"method": "Methode",
"next_method": "Nächste Methode auswählen",
"post_method": "POST-Methode auswählen",
"previous_method": "Vorherige Methode auswählen",
"put_method": "PUT-Methode auswählen",
"rename": "Rename Request",
"reset_request": "Anfrage zurücksetzen",
"save_request": "Save Request",
"save_to_collections": "In Sammlungen speichern",
"send_request": "Anfrage senden",
"show_code": "Generate code snippet",
"title": "Anfrage"
},
"response": {
@@ -642,85 +582,6 @@
"log": "Protokoll",
"url": "URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "Ereignistyp",
"log": "Protokoll",
@@ -778,11 +639,8 @@
"tab": {
"authorization": "Autorisierung",
"body": "Anfragekörper",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "Sammlungen",
"documentation": "Dokumentation",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "Header",
"history": "Verlauf",
@@ -881,4 +739,4 @@
"team": "Team Workspace",
"title": "Workspaces"
}
}
}

View File

@@ -5,7 +5,6 @@
"choose_file": "Επιλέξτε ένα αρχείο",
"clear": "Σαφή",
"clear_all": "Τα καθαρίζω όλα",
"clear_history": "Clear all History",
"close": "Close",
"connect": "Συνδέω-συωδεομαι",
"connecting": "Connecting",
@@ -32,7 +31,6 @@
"paste": "Paste",
"prettify": "Ωραιοποιώ",
"remove": "Αφαιρώ",
"rename": "Rename",
"restore": "Επαναφέρω",
"save": "Αποθηκεύσετε",
"scroll_to_bottom": "Scroll to bottom",
@@ -79,8 +77,6 @@
"search": "Αναζήτηση",
"share": "Μερίδιο",
"shortcuts": "Συντομεύσεις",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "Προβολέας θέατρου",
"status": "Κατάσταση",
"status_description": "Ελέγξτε το status της Ιστοσελίδας",
@@ -135,15 +131,12 @@
"renamed": "Η συλλογή μετονομάστηκε",
"request_in_use": "Request in use",
"save_as": "Αποθήκευση ως",
"save_to_collection": "Save to Collection",
"select": "Επιλέξτε μια Συλλογή",
"select_location": "Επιλέξτε τοποθεσία",
"select_team": "Επιλέξτε μια ομάδα",
"team_collections": "Συλλογές ομάδων"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "Are you sure you want to leave this team?",
"logout": "Είστε βέβαιοι ότι θέλετε να αποσυνδεθείτε?",
"remove_collection": "Είστε βέβαιοι ότι θέλετε να διαγράψετε οριστικά αυτήν τη συλλογή;",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "Είστε βέβαιοι ότι θέλετε να συγχρονίσετε αυτόν τον χώρο εργασίας;"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "Κεφαλίδα {count}",
"message": "Μήνυμα {count}",
@@ -204,31 +192,17 @@
"create_new": "Δημιουργήστε νέο περιβάλλον",
"created": "Το Περιβάλλον δημιουργήθηκε",
"deleted": "Διαγραφή Περιβάλλοντος",
"duplicated": "Environment duplicated",
"edit": "Επεξεργασία Περιβάλλοντος",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "Καταχωρίστε ένα έγκυρο όνομα για το περιβάλλον",
"list": "Environment variables",
"my_environments": "Τα Περιβάλλοντα μου",
"name": "Name",
"nested_overflow": "Οι 'φωλιασμένες' μεταβλητές περιβάλλοντος είναι περιορισμένες σε 10 επίπεδα",
"new": "Νέο Περιβάλλον",
"no_active_environment": "No active environment",
"no_environment": "Χωρίς περιβάλλον",
"no_environment_description": "Δέν επιλέχθηκε κάποιο περιβάλλον. Διαλέξτε τι θέλετε να κάνετε με τις παρακάτω μεταβλητές.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "Επιλέξτε περιβάλλον",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Περιβάλλοντα Ομάδας",
"title": "Περιβάλλοντα",
"updated": "Αναβάθμιση Περιβάλλοντος",
"value": "Value",
"variable": "Variable",
"variable_list": "Λίστα μεταβλητών"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "Χωρίς διάρκεια",
"no_results_found": "Δεν βρέθηκαν αντιστοιχίες",
"page_not_found": "Αυτή η σελίδα δεν βρέθηκε",
"proxy_error": "Proxy error",
"script_fail": "Δεν ήταν δυνατή η εκτέλεση του σεναρίου πριν από το αίτημα",
"something_went_wrong": "Κάτι πήγε στραβά",
"test_script_fail": "Δεν μπορεσε να εκτελεστεί το post-request script"
@@ -278,13 +251,9 @@
"renamed": "Ο φάκελος μετονομάστηκε"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "Μεταλλάξεις",
"schema": "Σχήμα",
"subscriptions": "Συνδρομές",
"switch_connection": "Switch connection"
"subscriptions": "Συνδρομές"
},
"group": {
"time": "Time",
@@ -338,36 +307,13 @@
"json_description": "Εισαγωγή συλλογών αρχείο JSON Hoppscotch Collections",
"title": "Εισαγωγή"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Σύμπτυξη ή επέκταση Συλλογών",
"collapse_sidebar": "Σύμπτυξη ή επέκταση του sidebar",
"column": "Κατακόρυφη Διάταξη",
"name": "Διάταξη",
"row": "Οριζόντια Διάταξη"
"row": "Οριζόντια Διάταξη",
"zen_mode": "Λειτουργία Zen"
},
"modal": {
"close_unsaved_tab": "You have unsaved changes",
@@ -472,7 +418,6 @@
"payload": "Φορτίο επί πληρωμή",
"query": "Ερώτηση",
"raw_body": "Σώμα Ακατέργαστου Αιτήματος",
"rename": "Rename Request",
"renamed": "Το αίτημα μετονομάστηκε",
"run": "Τρέξιμο",
"save": "Σώσει",
@@ -480,7 +425,6 @@
"saved": "Το αίτημα αποθηκεύτηκε",
"share": "Μερίδιο",
"share_description": "Κοινοποίηση Hoppscotch στους φίλους σου",
"stop": "Stop",
"title": "Αίτηση",
"type": "Τύπος αιτήματος",
"url": "URL",
@@ -515,6 +459,7 @@
"account_name_description": "Αυτό είναι το εμφανιζόμενο όνομά σας.",
"background": "Ιστορικό",
"black_mode": "Μαύρος",
"change_font_size": "Αλλαγή μεγέθους γραμματοσειράς",
"choose_language": "Διάλεξε γλώσσα",
"dark_mode": "Σκοτάδι",
"delete_account": "Delete account",
@@ -527,6 +472,10 @@
"extensions": "Επεκτάσεις",
"extensions_use_toggle": "Χρησιμοποιήστε την επέκταση του προγράμματος περιήγησης για να στείλετε αιτήματα (εάν υπάρχουν)",
"follow": "Ακολούθησε Μας",
"font_size": "Μέγεθος γραμματοσειράς",
"font_size_large": "Μεγάλο",
"font_size_medium": "Μεσαίο",
"font_size_small": "Μικρό",
"interceptor": "Αναχαιτιστής",
"interceptor_description": "Middleware μεταξύ εφαρμογής και API.",
"language": "Γλώσσα",
@@ -591,27 +540,19 @@
"settings": "Μεταβείτε στη σελίδα Ρυθμίσεις",
"title": "Πλοήγηση"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "Αντιγραφή συνδέσμου αιτήματος",
"delete_method": "Επιλέξτε ΔΙΑΓΡΑΦΗ μεθόδου",
"get_method": "Επιλέξτε μέθοδο GET",
"head_method": "Επιλέξτε μέθοδο HEAD",
"import_curl": "Import cURL",
"method": "Μέθοδος",
"next_method": "Επιλέξτε Επόμενη μέθοδος",
"post_method": "Επιλέξτε μέθοδο POST",
"previous_method": "Επιλέξτε Προηγούμενη μέθοδος",
"put_method": "Επιλέξτε μέθοδο PUT",
"rename": "Rename Request",
"reset_request": "Επαναφορά αιτήματος",
"save_request": "Save Request",
"save_to_collections": "Αποθήκευση στις Συλλογές",
"send_request": "Στείλε αίτημα",
"show_code": "Generate code snippet",
"title": "Αίτηση"
},
"response": {
@@ -641,85 +582,6 @@
"log": "Logs",
"url": "URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "Τύπος συμβάντος",
"log": "Logs",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "Εξουσιοδότηση",
"body": "Σώμα",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "Συλλογές",
"documentation": "Τεκμηρίωση",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "Κεφαλίδες",
"history": "Ιστορία",

View File

@@ -4,8 +4,8 @@
"cancel": "Cancel",
"choose_file": "Choose a file",
"clear": "Clear",
"clear_history": "Clear All History",
"clear_all": "Clear all",
"clear_history": "Clear all History",
"close": "Close",
"connect": "Connect",
"connecting": "Connecting",
@@ -31,8 +31,8 @@
"open_workspace": "Open workspace",
"paste": "Paste",
"prettify": "Prettify",
"remove": "Remove",
"rename": "Rename",
"remove": "Remove",
"restore": "Restore",
"save": "Save",
"scroll_to_bottom": "Scroll to bottom",
@@ -48,8 +48,7 @@
"turn_off": "Turn off",
"turn_on": "Turn on",
"undo": "Undo",
"yes": "Yes",
"secret": "Save as secret"
"yes": "Yes"
},
"add": {
"new": "Add new",
@@ -70,6 +69,8 @@
"invite": "Invite",
"invite_description": "Hoppscotch is an open source API development ecosystem. We designed a simple and intuitive interface for creating and managing your APIs. Hoppscotch is a tool that helps you build, test, document and share your APIs.",
"invite_your_friends": "Invite your friends",
"social_links": "Social links",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"join_discord_community": "Join our Discord community",
"keyboard_shortcuts": "Keyboard shortcuts",
"name": "Hoppscotch",
@@ -80,8 +81,6 @@
"search": "Search",
"share": "Share",
"shortcuts": "Shortcuts",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "Spotlight",
"status": "Status",
"status_description": "Check the status of the website",
@@ -143,8 +142,6 @@
"team_collections": "Team Collections"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "Are you sure you want to leave this team?",
"logout": "Are you sure you want to logout?",
"remove_collection": "Are you sure you want to permanently delete this collection?",
@@ -156,12 +153,13 @@
"remove_telemetry": "Are you sure you want to opt-out of Telemetry?",
"request_change": "Are you sure you want to discard current request, unsaved changes will be lost.",
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"sync": "Would you like to restore your workspace from cloud? This will discard your local progress."
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
"set_environment_variable": "Set as variable",
"add_parameter": "Add to parameter",
"open_link_in_new_tab": "Open link in new tab"
},
"count": {
"header": "Header {count}",
@@ -186,6 +184,7 @@
"folder": "Folder is empty",
"headers": "This request does not have any headers",
"history": "History is empty",
"history_suggestions": "History does not have any matching entries",
"invites": "Invite list is empty",
"members": "Team is empty",
"parameters": "This request does not have any parameters",
@@ -195,6 +194,7 @@
"schema": "Connect to a GraphQL endpoint to view schema",
"shortcodes": "Shortcodes are empty",
"subscription": "Subscriptions are empty",
"suggestions": "No matching suggestions found",
"team_name": "Team name empty",
"teams": "You don't belong to any teams",
"tests": "There are no tests for this request"
@@ -207,8 +207,8 @@
"deleted": "Environment deletion",
"duplicated": "Environment duplicated",
"edit": "Edit Environment",
"empty_variables": "No variables",
"global": "Global",
"empty_variables": "No variables",
"global_variables": "Global variables",
"invalid_name": "Please provide a name for the environment",
"list": "Environment variables",
@@ -279,13 +279,9 @@
"renamed": "Folder renamed"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "Mutations",
"schema": "Schema",
"subscriptions": "Subscriptions",
"switch_connection": "Switch connection"
"subscriptions": "Subscriptions"
},
"group": {
"time": "Time",
@@ -314,6 +310,30 @@
"preview": "Hide Preview",
"sidebar": "Collapse sidebar"
},
"inspections": {
"title": "Inspector",
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"network_error": "Please check your network connection.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request."
},
"url": {
"extension_not_installed": "Extension not installed.",
"extention_not_enabled": "Extension not enabled.",
"extention_enable_action": "Enable Browser Extension",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list."
}
},
"import": {
"collections": "Import collections",
"curl": "Import cURL",
@@ -339,36 +359,13 @@
"json_description": "Import collections from a Hoppscotch Collections JSON file",
"title": "Import"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Collapse or Expand Collections",
"collapse_sidebar": "Collapse or Expand the sidebar",
"column": "Vertical layout",
"name": "Layout",
"row": "Horizontal layout"
"row": "Horizontal layout",
"zen_mode": "Zen mode"
},
"modal": {
"close_unsaved_tab": "You have unsaved changes",
@@ -481,7 +478,6 @@
"saved": "Request saved",
"share": "Share",
"share_description": "Share Hoppscotch with your friends",
"stop": "Stop",
"title": "Request",
"type": "Request type",
"url": "URL",
@@ -516,8 +512,9 @@
"account_name_description": "This is your display name.",
"background": "Background",
"black_mode": "Black",
"choose_language": "Choose language",
"dark_mode": "Dark",
"change_font_size": "Change font size",
"choose_language": "Choose language",
"delete_account": "Delete account",
"delete_account_description": "Once you delete your account, all your data will be permanently deleted. This action cannot be undone.",
"expand_navigation": "Expand navigation",
@@ -528,6 +525,10 @@
"extensions": "Browser extension",
"extensions_use_toggle": "Use the browser extension to send requests (if present)",
"follow": "Follow us",
"font_size": "Font size",
"font_size_large": "Large",
"font_size_medium": "Medium",
"font_size_small": "Small",
"interceptor": "Interceptor",
"interceptor_description": "Middleware between application and APIs.",
"language": "Language",
@@ -592,27 +593,23 @@
"settings": "Go to Settings page",
"title": "Navigation"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "Copy Request Link",
"delete_method": "Select DELETE method",
"get_method": "Select GET method",
"head_method": "Select HEAD method",
"rename": "Rename Current Request",
"import_curl": "Import cURL",
"show_code": "Show generated code",
"method": "Method",
"next_method": "Select Next method",
"post_method": "Select POST method",
"previous_method": "Select Previous method",
"put_method": "Select PUT method",
"rename": "Rename Request",
"reset_request": "Reset Request",
"save_request": "Save Request",
"save_to_collections": "Save to Collections",
"send_request": "Send Request",
"show_code": "Generate code snippet",
"save_request": "Save Request",
"title": "Request"
},
"response": {
@@ -643,82 +640,79 @@
"url": "URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"help_menu": "Open help and support menu",
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"open_keybindings": "Open keyboard shortcuts",
"social": "Social links and GitHub",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"invite": "Invite people to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
"tab_parameters": "Open parameters tab",
"tab_body": "Open body tab",
"tab_headers": "Open headers tab",
"tab_authorization": "Open authorization tab",
"tab_pre_request_script": "Open pre-request script tab",
"tab_tests": "Open tests tab"
},
"response": {
"copy": "Copy response",
"copy": "Copy response as JSON",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
"environments": {
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"edit": "Edit selected environment",
"delete": "Delete selected environment",
"duplicate": "Duplicate selected environment",
"edit_global": "Edit global environment",
"duplicate_global": "Duplicate global environment",
"title": "Environments"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
"workspace": {
"new": "Create new team",
"edit": "Edit selected team",
"delete": "Delete selected team",
"invite": "Invite people to team",
"switch_to_personal": "Switch to personal workspace",
"title": "Teams"
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"close_others": "Close others tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
"section": {
"user": "User",
"theme": "Theme",
"interface": "Interface",
"interceptor": "Interceptor"
},
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"install_extension": "Install Browser Extension",
"settings": {
"theme": {
"black": "Black Mode",
"dark": "Dark Mode",
"light": "Light Mode",
"system": "System Mode"
},
"font": {
"size_sm": "Change to Small",
"size_md": "Change to Medium",
"size_lg": "Change to Large"
},
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"install_extension": "Install Browser Extension"
}
},
"sse": {
@@ -766,7 +760,7 @@
"support": {
"changelog": "Read more about latest releases",
"chat": "Questions? Chat with us!",
"community": "Ask questions and help others",
"community": "Ask questions and help others",
"documentation": "Read more about Hoppscotch",
"forum": "Ask questions and get answers",
"github": "Follow us on Github",
@@ -844,8 +838,6 @@
"not_found": "Team not found. Contact your team owner.",
"not_valid_viewer": "You are not a valid viewer. Contact your team owner.",
"parent_coll_move": "Cannot move collection to a child collection",
"success_invites": "Success invites",
"failed_invites": "Failed invites",
"pending_invites": "Pending invites",
"permissions": "Permissions",
"same_target_destination": "Same target and destination",

View File

@@ -5,7 +5,6 @@
"choose_file": "Seleccionar archivo",
"clear": "Limpiar",
"clear_all": "Limpiar todo",
"clear_history": "Clear all History",
"close": "Cerrar",
"connect": "Conectar",
"connecting": "Conectando",
@@ -32,7 +31,6 @@
"paste": "Pegar",
"prettify": "Embellecer",
"remove": "Eliminar",
"rename": "Rename",
"restore": "Restaurar",
"save": "Guardar",
"scroll_to_bottom": "Desplazar hacia abajo",
@@ -79,8 +77,6 @@
"search": "Buscar",
"share": "Compartir",
"shortcuts": "Atajos",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "Destacar",
"status": "Estado",
"status_description": "Comprobar el estado del sitio web",
@@ -135,15 +131,12 @@
"renamed": "Colección renombrada",
"request_in_use": "Solicitud en uso",
"save_as": "Guardar como",
"save_to_collection": "Save to Collection",
"select": "Seleccionar colección",
"select_location": "Seleccionar ubicación",
"select_team": "Seleccionar equipo",
"team_collections": "Colecciones de equipos"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "¿Estás seguro de que quieres dejar este equipo?",
"logout": "¿Estás seguro de que deseas cerrar la sesión?",
"remove_collection": "¿Estás seguro de que deseas eliminar esta colección de forma permanente?",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "¿Deseas guardar los cambios realizados en esta pestaña?",
"sync": "¿Estás seguro de que deseas sincronizar este espacio de trabajo?"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "Encabezado {count}",
"message": "Mensaje {count}",
@@ -204,31 +192,17 @@
"create_new": "Crear un nuevo entorno",
"created": "Environment created",
"deleted": "Eliminar el entorno",
"duplicated": "Environment duplicated",
"edit": "Editar entorno",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "Proporciona un nombre válido para el entorno.",
"list": "Environment variables",
"my_environments": "Mis entornos",
"name": "Name",
"nested_overflow": "las variables de entorno anidadas están limitadas a 10 niveles",
"new": "Nuevo entorno",
"no_active_environment": "No active environment",
"no_environment": "Sin entorno",
"no_environment_description": "No se ha seleccionado ningún entorno. Elije qué hacer con las siguientes variables.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "Seleccionar entorno",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Entornos de trabajo en equipo",
"title": "Entornos",
"updated": "Entorno actualizado",
"value": "Value",
"variable": "Variable",
"variable_list": "Lista de variables"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "Sin duración",
"no_results_found": "No se han encontrado coincidencias",
"page_not_found": "No se ha podido encontrar esta página",
"proxy_error": "Proxy error",
"script_fail": "No se pudo ejecutar el script de solicitud previa",
"something_went_wrong": "Algo salió mal",
"test_script_fail": "No se ha podido ejecutar la secuencia de comandos posterior a la solicitud"
@@ -278,13 +251,9 @@
"renamed": "Carpeta renombrada"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "Mutaciones",
"schema": "Esquema",
"subscriptions": "Suscripciones",
"switch_connection": "Switch connection"
"subscriptions": "Suscripciones"
},
"group": {
"time": "Tiempo",
@@ -338,36 +307,13 @@
"json_description": "Importar colecciones desde un archivo JSON de colecciones de Hoppscotch",
"title": "Importar"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Contraer o expandir colecciones",
"collapse_sidebar": "Contraer o expandir la barra lateral",
"column": "Disposición vertical",
"name": "Diseño",
"row": "Disposición horizontal"
"row": "Disposición horizontal",
"zen_mode": "Modo zen"
},
"modal": {
"close_unsaved_tab": "Tienes cambios sin guardar",
@@ -472,7 +418,6 @@
"payload": "Carga útil",
"query": "Consulta",
"raw_body": "Cuerpo de solicitud sin procesar",
"rename": "Rename Request",
"renamed": "Solicitud renombrada",
"run": "Ejecutar",
"save": "Guardar",
@@ -480,7 +425,6 @@
"saved": "Solicitud guardada",
"share": "Compartir",
"share_description": "Comparte Hoppscotch con tus amigos",
"stop": "Stop",
"title": "Solicitud",
"type": "Tipo de solicitud",
"url": "URL",
@@ -515,6 +459,7 @@
"account_name_description": "Este es tu nombre para mostrar.",
"background": "Fondo",
"black_mode": "Negro",
"change_font_size": "Cambiar tamaño de fuente",
"choose_language": "Elegir idioma",
"dark_mode": "Oscuro",
"delete_account": "Eliminar cuenta",
@@ -527,6 +472,10 @@
"extensions": "Extensiones",
"extensions_use_toggle": "Utilizar la extensión del navegador para enviar peticiones (si está presente)",
"follow": "Síguenos",
"font_size": "Tamaño de fuente",
"font_size_large": "Grande",
"font_size_medium": "Mediano",
"font_size_small": "Pequeño",
"interceptor": "Interceptador",
"interceptor_description": "Middleware entre la aplicación y las APIs.",
"language": "Idioma",
@@ -591,27 +540,19 @@
"settings": "Ir a la página de configuración",
"title": "Navegación"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "Copiar enlace de solicitud",
"delete_method": "Seleccionar método DELETE",
"get_method": "Seleccionar método GET",
"head_method": "Seleccionar método HEAD",
"import_curl": "Import cURL",
"method": "Método",
"next_method": "Seleccionar método siguiente",
"post_method": "Seleccionar método POST",
"previous_method": "Seleccionar método anterior",
"put_method": "Seleccionar método PUT",
"rename": "Rename Request",
"reset_request": "Solicitud de reinicio",
"save_request": "Save Request",
"save_to_collections": "Guardar en colecciones",
"send_request": "Enviar solicitud",
"show_code": "Generate code snippet",
"title": "Solicitud"
},
"response": {
@@ -641,85 +582,6 @@
"log": "Registro",
"url": "URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "Tipo de evento",
"log": "Registro",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "Autorización",
"body": "Cuerpo",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "Colecciones",
"documentation": "Documentación",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "Encabezados",
"history": "Historial",

View File

@@ -5,7 +5,6 @@
"choose_file": "Valitse tiedosto",
"clear": "Asia selvä",
"clear_all": "Tyhjennä",
"clear_history": "Clear all History",
"close": "Close",
"connect": "Kytkeä",
"connecting": "Connecting",
@@ -32,7 +31,6 @@
"paste": "Paste",
"prettify": "Koristella",
"remove": "Poista",
"rename": "Rename",
"restore": "Palauttaa",
"save": "Tallentaa",
"scroll_to_bottom": "Scroll to bottom",
@@ -79,8 +77,6 @@
"search": "Hae",
"share": "Jaa",
"shortcuts": "Pikanäppäimet",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "Valokeila",
"status": "Tila",
"status_description": "Check the status of the website",
@@ -135,15 +131,12 @@
"renamed": "Kokoelma nimetty uudelleen",
"request_in_use": "Request in use",
"save_as": "Tallenna nimellä",
"save_to_collection": "Save to Collection",
"select": "Valitse kokoelma",
"select_location": "Valitse sijainti",
"select_team": "Valitse joukkue",
"team_collections": "Joukkuekokoelmat"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "Are you sure you want to leave this team?",
"logout": "Haluatko varmasti kirjautua ulos?",
"remove_collection": "Haluatko varmasti poistaa tämän kokoelman pysyvästi?",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "Haluatko varmasti synkronoida tämän työtilan?"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "Otsikko {count}",
"message": "Viesti {count}",
@@ -204,31 +192,17 @@
"create_new": "Luo uusi ympäristö",
"created": "Environment created",
"deleted": "Environment deletion",
"duplicated": "Environment duplicated",
"edit": "Muokkaa ympäristöä",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "Anna ympäristölle kelvollinen nimi",
"list": "Environment variables",
"my_environments": "My Environments",
"name": "Name",
"nested_overflow": "nested environment variables are limited to 10 levels",
"new": "Uusi ympäristö",
"no_active_environment": "No active environment",
"no_environment": "Ei ympäristöä",
"no_environment_description": "No environments were selected. Choose what to do with the following variables.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "Valitse ympäristö",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Team Environments",
"title": "Ympäristöt",
"updated": "Environment updation",
"value": "Value",
"variable": "Variable",
"variable_list": "Muuttujien luettelo"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "Ei kestoa",
"no_results_found": "No matches found",
"page_not_found": "This page could not be found",
"proxy_error": "Proxy error",
"script_fail": "Ennakkopyyntöskriptiä ei voitu suorittaa",
"something_went_wrong": "Jotain meni pieleen",
"test_script_fail": "Could not execute post-request script"
@@ -278,13 +251,9 @@
"renamed": "Kansio nimettiin uudelleen"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "Mutaatiot",
"schema": "Kaavio",
"subscriptions": "Tilaukset",
"switch_connection": "Switch connection"
"subscriptions": "Tilaukset"
},
"group": {
"time": "Time",
@@ -338,36 +307,13 @@
"json_description": "Import collections from a Hoppscotch Collections JSON file",
"title": "Tuonti"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Collapse or Expand Collections",
"collapse_sidebar": "Collapse or Expand the sidebar",
"column": "Vertical layout",
"name": "Layout",
"row": "Horizontal layout"
"row": "Horizontal layout",
"zen_mode": "Zen -tila"
},
"modal": {
"close_unsaved_tab": "You have unsaved changes",
@@ -472,7 +418,6 @@
"payload": "Hyötykuorma",
"query": "Kysely",
"raw_body": "Raaka pyynnön runko",
"rename": "Rename Request",
"renamed": "Pyyntö nimettiin uudelleen",
"run": "Juosta",
"save": "Tallentaa",
@@ -480,7 +425,6 @@
"saved": "Pyyntö tallennettu",
"share": "Jaa",
"share_description": "Share Hoppscotch with your friends",
"stop": "Stop",
"title": "Pyyntö",
"type": "Pyynnön tyyppi",
"url": "URL -osoite",
@@ -515,6 +459,7 @@
"account_name_description": "Tämä on näyttönimesi.",
"background": "Tausta",
"black_mode": "Musta",
"change_font_size": "Vaihda fontin kokoa",
"choose_language": "Valitse kieli",
"dark_mode": "Tumma",
"delete_account": "Delete account",
@@ -527,6 +472,10 @@
"extensions": "Laajennukset",
"extensions_use_toggle": "Käytä pyyntöjen lähettämiseen selainlaajennusta (jos sellainen on)",
"follow": "Follow Us",
"font_size": "Fonttikoko",
"font_size_large": "Suuri",
"font_size_medium": "Keskikokoinen",
"font_size_small": "Pieni",
"interceptor": "Torjuntahävittäjä",
"interceptor_description": "Sovellusliittymien ja sovellusliittymien välinen väliohjelmisto.",
"language": "Kieli",
@@ -591,27 +540,19 @@
"settings": "Siirry Asetukset -sivulle",
"title": "Navigointi"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "Kopioi pyyntölinkki",
"delete_method": "Valitse POISTA menetelmä",
"get_method": "Valitse GET -menetelmä",
"head_method": "Valitse HEAD -menetelmä",
"import_curl": "Import cURL",
"method": "Menetelmä",
"next_method": "Valitse Seuraava menetelmä",
"post_method": "Valitse POST -menetelmä",
"previous_method": "Valitse Edellinen menetelmä",
"put_method": "Valitse PUT -menetelmä",
"rename": "Rename Request",
"reset_request": "Nollaa pyyntö",
"save_request": "Save Request",
"save_to_collections": "Tallenna kokoelmiin",
"send_request": "Lähetä pyyntö",
"show_code": "Generate code snippet",
"title": "Pyyntö"
},
"response": {
@@ -641,85 +582,6 @@
"log": "Hirsi",
"url": "URL -osoite"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "Tapahtumatyyppi",
"log": "Hirsi",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "Valtuutus",
"body": "Runko",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "Kokoelmat",
"documentation": "Dokumentointi",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "Otsikot",
"history": "Historia",

View File

@@ -5,7 +5,6 @@
"choose_file": "Choisir un fichier",
"clear": "Effacer",
"clear_all": "Tout effacer",
"clear_history": "Clear all History",
"close": "Close",
"connect": "Connecter",
"connecting": "Connecting",
@@ -32,7 +31,6 @@
"paste": "Coller",
"prettify": "Formater",
"remove": "Supprimer",
"rename": "Rename",
"restore": "Restaurer",
"save": "Sauvegarder",
"scroll_to_bottom": "Scroll to bottom",
@@ -79,8 +77,6 @@
"search": "Chercher",
"share": "Partager",
"shortcuts": "Raccourcis",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "Projecteur",
"status": "Statut",
"status_description": "Vérifier l'état du site web",
@@ -135,15 +131,12 @@
"renamed": "Collection renommée",
"request_in_use": "Demande en cours d'utilisation",
"save_as": "Enregistrer sous",
"save_to_collection": "Save to Collection",
"select": "Sélectionnez une collection",
"select_location": "Sélectionnez l'emplacement",
"select_team": "Sélectionnez une équipe",
"team_collections": "Collections de l'équipe"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "Are you sure you want to leave this team?",
"logout": "Êtes-vous sûr de vouloir vous déconnecter?",
"remove_collection": "Voulez-vous vraiment supprimer définitivement cette collection ?",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "Voulez-vous vraiment synchroniser cet espace de travail ?"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "En-tête {count}",
"message": "Message {compte}",
@@ -204,31 +192,17 @@
"create_new": "Créer un nouvel environnement",
"created": "Environnement créé",
"deleted": "Environnement supprimé",
"duplicated": "Environment duplicated",
"edit": "Modifier l'environnement",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "Veuillez fournir un nom valide pour l'environnement",
"list": "Environment variables",
"my_environments": "My Environments",
"name": "Name",
"nested_overflow": "les variables d'environnement imbriquées sont limitées à 10 niveaux",
"new": "Nouvel environnement",
"no_active_environment": "No active environment",
"no_environment": "Pas d'environnement",
"no_environment_description": "Aucun environnement n'a été sélectionné. Choisissez ce qu'il faut faire avec les variables suivantes.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "Sélectionnez l'environnement",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Team Environments",
"title": "Environnements",
"updated": "Mise à jour de l'environnement",
"value": "Value",
"variable": "Variable",
"variable_list": "Liste des variables"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "Pas de durée",
"no_results_found": "Aucune correspondance trouvée",
"page_not_found": "Cette page n'a pas pu être trouvée",
"proxy_error": "Proxy error",
"script_fail": "Impossible d'exécuter le script de pré-requête",
"something_went_wrong": "Quelque chose s'est mal passé",
"test_script_fail": "Impossible d'exécuter le script post-requête"
@@ -278,13 +251,9 @@
"renamed": "Dossier renommé"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "Mutations",
"schema": "Schéma",
"subscriptions": "Abonnements",
"switch_connection": "Switch connection"
"subscriptions": "Abonnements"
},
"group": {
"time": "Time",
@@ -338,36 +307,13 @@
"json_description": "Importer des collections depuis un fichier JSON Hoppscotch",
"title": "Importer"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Réduire ou développer les collections",
"collapse_sidebar": "Réduire ou développer la barre latérale",
"column": "Disposition verticale",
"name": "Disposition",
"row": "Disposition horizontale"
"row": "Disposition horizontale",
"zen_mode": "Mode Zen"
},
"modal": {
"close_unsaved_tab": "You have unsaved changes",
@@ -472,7 +418,6 @@
"payload": "Charge utile",
"query": "Requête",
"raw_body": "Corps de requête brut",
"rename": "Rename Request",
"renamed": "Requête renommée",
"run": "Lancer",
"save": "Sauvegarder",
@@ -480,7 +425,6 @@
"saved": "Requête enregistrée",
"share": "Partager",
"share_description": "Partagez Hoppscotch avec vos amis",
"stop": "Stop",
"title": "Requête",
"type": "Type de requête",
"url": "URL",
@@ -515,6 +459,7 @@
"account_name_description": "Ceci est votre nom d'affichage.",
"background": "Fond",
"black_mode": "Noir",
"change_font_size": "Changer la taille de la police",
"choose_language": "Choisissez la langue",
"dark_mode": "Sombre",
"delete_account": "Delete account",
@@ -527,6 +472,10 @@
"extensions": "Extensions",
"extensions_use_toggle": "Utilisez l'extension de navigateur pour envoyer des requêtes (le cas échéant)",
"follow": "Follow Us",
"font_size": "Taille de police",
"font_size_large": "Grande",
"font_size_medium": "Moyenne",
"font_size_small": "Petite",
"interceptor": "Intercepteur",
"interceptor_description": "Middleware entre l'application et les API.",
"language": "Langue",
@@ -591,27 +540,19 @@
"settings": "Aller à la page Paramètres",
"title": "Navigation"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "Copier le lien de requête",
"delete_method": "Sélectionnez la méthode DELETE",
"get_method": "Sélectionnez la méthode GET",
"head_method": "Sélectionnez la méthode HEAD",
"import_curl": "Import cURL",
"method": "Méthode",
"next_method": "Sélectionnez la méthode suivante",
"post_method": "Sélectionnez la méthode POST",
"previous_method": "Sélectionnez la méthode précédente",
"put_method": "Sélectionnez la méthode PUT",
"rename": "Rename Request",
"reset_request": "Réinitialiser la requête",
"save_request": "Save Request",
"save_to_collections": "Enregistrer dans les collections",
"send_request": "Envoyer la requête",
"show_code": "Generate code snippet",
"title": "Requête"
},
"response": {
@@ -641,85 +582,6 @@
"log": "Infos",
"url": "URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "Type d'événement",
"log": "Infos",
@@ -727,7 +589,7 @@
},
"state": {
"bulk_mode": "Modification groupée",
"bulk_mode_placeholder": "Les entrées sont séparées par une nouvelle ligne\nLes clés et les valeurs sont séparées par :\nAjoutez # à n'importe quelle ligne que vous souhaitez ajouter mais garder désactivée",
"bulk_mode_placeholder": "Les entrées sont séparées par une nouvelle ligne\nLes clés et les valeurs sont séparées par :\nAjoutez # à n'importe quelle ligne que vous souhaitez ajouter mais garder désactivée",
"cleared": "Effacé",
"connected": "Connecté",
"connected_to": "Connecté à {nom}",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "Autorisation",
"body": "Corps",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "Collections",
"documentation": "Documentation",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "En-têtes",
"history": "Histoire",
@@ -832,7 +691,7 @@
"member_role_updated": "Rôles des utilisateurs mis à jour",
"members": "Membres",
"more_members": "+{count} more",
"name_length_insufficient": "Le nom de l'équipe doit comporter au moins 6 caractères",
"name_length_insufficient": "Le nom de l'équipe doit comporter au moins 6 caractères",
"name_updated": "Nom de l'équipe mis à jour",
"new": "Nouvelle équipe",
"new_created": "Nouvelle équipe créée",

View File

@@ -5,7 +5,6 @@
"choose_file": "בחר קובץ",
"clear": "ברור",
"clear_all": "נקה הכל",
"clear_history": "Clear all History",
"close": "Close",
"connect": "לְחַבֵּר",
"connecting": "Connecting",
@@ -32,7 +31,6 @@
"paste": "Paste",
"prettify": "לְיַפּוֹת",
"remove": "לְהַסִיר",
"rename": "Rename",
"restore": "לשחזר",
"save": "להציל",
"scroll_to_bottom": "Scroll to bottom",
@@ -79,8 +77,6 @@
"search": "לחפש",
"share": "לַחֲלוֹק",
"shortcuts": "קיצורי דרך",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "זַרקוֹר",
"status": "סטָטוּס",
"status_description": "Check the status of the website",
@@ -135,15 +131,12 @@
"renamed": "שם האוסף שונה",
"request_in_use": "Request in use",
"save_as": "שמור כ",
"save_to_collection": "Save to Collection",
"select": "בחר אוסף",
"select_location": "תבחר מיקום",
"select_team": "בחר צוות",
"team_collections": "אוספי צוות"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "Are you sure you want to leave this team?",
"logout": "האם אתה בטוח שאתה רוצה להתנתק?",
"remove_collection": "האם אתה בטוח שברצונך למחוק את האוסף הזה לצמיתות?",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "האם אתה בטוח שברצונך לסנכרן את סביבת העבודה הזו?"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "כותרת {count}",
"message": "הודעה {count}",
@@ -204,31 +192,17 @@
"create_new": "צור סביבה חדשה",
"created": "Environment created",
"deleted": "Environment deletion",
"duplicated": "Environment duplicated",
"edit": "ערוך את הסביבה",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "אנא ספק שם חוקי לסביבה",
"list": "Environment variables",
"my_environments": "My Environments",
"name": "Name",
"nested_overflow": "nested environment variables are limited to 10 levels",
"new": "סביבה חדשה",
"no_active_environment": "No active environment",
"no_environment": "אין סביבה",
"no_environment_description": "No environments were selected. Choose what to do with the following variables.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "בחר סביבה",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Team Environments",
"title": "סביבות",
"updated": "Environment updation",
"value": "Value",
"variable": "Variable",
"variable_list": "רשימת משתנים"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "אין משך זמן",
"no_results_found": "No matches found",
"page_not_found": "This page could not be found",
"proxy_error": "Proxy error",
"script_fail": "לא ניתן להפעיל סקריפט של בקשה מראש",
"something_went_wrong": "משהו השתבש",
"test_script_fail": "Could not execute post-request script"
@@ -278,13 +251,9 @@
"renamed": "שם התיקייה שונה"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "מוטציות",
"schema": "סכֵימָה",
"subscriptions": "מנויים",
"switch_connection": "Switch connection"
"subscriptions": "מנויים"
},
"group": {
"time": "Time",
@@ -338,36 +307,13 @@
"json_description": "Import collections from a Hoppscotch Collections JSON file",
"title": "יְבוּא"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Collapse or Expand Collections",
"collapse_sidebar": "Collapse or Expand the sidebar",
"column": "Vertical layout",
"name": "Layout",
"row": "Horizontal layout"
"row": "Horizontal layout",
"zen_mode": "מצב זן"
},
"modal": {
"close_unsaved_tab": "You have unsaved changes",
@@ -472,7 +418,6 @@
"payload": "מטען",
"query": "שאילתא",
"raw_body": "גוף בקשה גולמית",
"rename": "Rename Request",
"renamed": "שם הבקשה שונה",
"run": "לָרוּץ",
"save": "להציל",
@@ -480,7 +425,6 @@
"saved": "הבקשה נשמרה",
"share": "לַחֲלוֹק",
"share_description": "Share Hoppscotch with your friends",
"stop": "Stop",
"title": "בַּקָשָׁה",
"type": "סוג בקשה",
"url": "כתובת URL",
@@ -515,6 +459,7 @@
"account_name_description": "זהו שם התצוגה שלך.",
"background": "רקע כללי",
"black_mode": "שָׁחוֹר",
"change_font_size": "שנה גודל פונט",
"choose_language": "בחר שפה",
"dark_mode": "אפל",
"delete_account": "Delete account",
@@ -527,6 +472,10 @@
"extensions": "הרחבות",
"extensions_use_toggle": "השתמש בתוסף הדפדפן כדי לשלוח בקשות (אם קיימות)",
"follow": "Follow Us",
"font_size": "גודל גופן",
"font_size_large": "גָדוֹל",
"font_size_medium": "בינוני",
"font_size_small": "קָטָן",
"interceptor": "מיירט",
"interceptor_description": "תוכנת ביניים בין יישום לממשקי API.",
"language": "שפה",
@@ -591,27 +540,19 @@
"settings": "עבור אל דף ההגדרות",
"title": "ניווט"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "העתק קישור לבקשה",
"delete_method": "בחר שיטת DELETE",
"get_method": "בחר שיטת GET",
"head_method": "בחר שיטת HEAD",
"import_curl": "Import cURL",
"method": "שיטה",
"next_method": "בחר בשיטה הבאה",
"post_method": "בחר שיטת POST",
"previous_method": "בחר שיטה קודמת",
"put_method": "בחר שיטת PUT",
"rename": "Rename Request",
"reset_request": "איפוס הבקשה",
"save_request": "Save Request",
"save_to_collections": "שמור באוספים",
"send_request": "שלח בקשה",
"show_code": "Generate code snippet",
"title": "בַּקָשָׁה"
},
"response": {
@@ -641,85 +582,6 @@
"log": "עֵץ",
"url": "כתובת URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "סוג אירוע",
"log": "עֵץ",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "הרשאה",
"body": "גוּף",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "אוספים",
"documentation": "תיעוד",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "כותרות",
"history": "הִיסטוֹרִיָה",

View File

@@ -5,7 +5,6 @@
"choose_file": "फ़ाइल चुनें",
"clear": "साफ़",
"clear_all": "सभी साफ करें",
"clear_history": "Clear all History",
"close": "बंद करे",
"connect": "कनेक्ट करें",
"connecting": "Connecting",
@@ -32,7 +31,6 @@
"paste": "पेस्ट",
"prettify": "सुंदर करे",
"remove": "हटाओ",
"rename": "Rename",
"restore": "पुनर्स्थापित करें",
"save": "बचाएं",
"scroll_to_bottom": "नीचे स्क्रॉल करें",
@@ -79,8 +77,6 @@
"search": "खोज",
"share": "बाँट",
"shortcuts": "शॉर्टकट",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "स्पॉटलाइट",
"status": "स्थिति",
"status_description": "वेबसाइट की स्थिति जांचें",
@@ -135,15 +131,12 @@
"renamed": "संग्रह का नाम बदला गया",
"request_in_use": "रिक्वेस्ट इन यूज़",
"save_as": "इस रूप में सेव करें",
"save_to_collection": "Save to Collection",
"select": "एक संग्रह का चयन करें",
"select_location": "स्थान चुनें",
"select_team": "एक टीम चुनें",
"team_collections": "टीम संग्रह"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "क्या आप वाकई इस टीम को छोड़ना चाहते हैं?",
"logout": "क्या आप वाकई लॉगआउट करना चाहते हैं?",
"remove_collection": "क्या आप वाकई इस संग्रह को स्थायी रूप से हटाना चाहते हैं?",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "क्या आप अपने कार्यक्षेत्र को क्लाउड से पुनर्स्थापित करना चाहेंगे? यह आपकी स्थानीय प्रगति को त्याग देगा।"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "हेडर {count}",
"message": "मैसेज {count}",
@@ -204,31 +192,17 @@
"create_new": " नया वातावरण बनाएं",
"created": " पर्यावरण बनाया",
"deleted": " पर्यावरण विलोपन",
"duplicated": "Environment duplicated",
"edit": " पर्यावरण संपादित करें",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": " कृपया पर्यावरण के लिए एक नाम प्रदान करें",
"list": "Environment variables",
"my_environments": "My Environments",
"name": "Name",
"nested_overflow": " नेस्टेड पर्यावरण चर 10 स्तरों तक सीमित हैं",
"new": " नया वातावरण",
"no_active_environment": "No active environment",
"no_environment": " कोई वातावरण नहीं",
"no_environment_description": " कोई परिवेश नहीं चुना गया था. चुनें कि निम्नलिखित चर के साथ क्या करना है।",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": " पर्यावरण का चयन करें",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Team Environments",
"title": " वातावरण",
"updated": " पर्यावरण अद्यतन",
"value": "Value",
"variable": "Variable",
"variable_list": " परिवर्तनीय सूची"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": " कोई अवधि नहीं",
"no_results_found": " कोई मेल नहीं मिले",
"page_not_found": " यह पृष्ठ नहीं मिल सका",
"proxy_error": "Proxy error",
"script_fail": " पूर्व-अनुरोध स्क्रिप्ट निष्पादित नहीं कर सका",
"something_went_wrong": " कुछ गलत हो गया",
"test_script_fail": " अनुरोध के बाद स्क्रिप्ट निष्पादित नहीं कर सका"
@@ -278,13 +251,9 @@
"renamed": " फ़ोल्डर का नाम बदला"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": " उत्परिवर्तन",
"schema": " योजना",
"subscriptions": " सदस्यता",
"switch_connection": "Switch connection"
"subscriptions": " सदस्यता"
},
"group": {
"time": "Time",
@@ -305,7 +274,8 @@
"pre_request_script": " पूर्व-अनुरोध स्क्रिप्ट जावास्क्रिप्ट में लिखी जाती हैं, और अनुरोध भेजे जाने से पहले चलाई जाती हैं।",
"script_fail": " ऐसा लगता है कि प्री-रिक्वेस्ट स्क्रिप्ट में गड़बड़ है। नीचे दी गई त्रुटि की जाँच करें और उसके अनुसार स्क्रिप्ट को ठीक करें।",
"test_script_fail": " ऐसा लगता है कि परीक्षण स्क्रिप्ट में कोई त्रुटि है। कृपया त्रुटियों को ठीक करें और फिर से परीक्षण चलाएं",
"tests": "Write a test script to automate debugging."
"tests": "Write a test script to automate debugging.",
"test": "डिबगिंग को स्वचालित करने के लिए एक परीक्षण स्क्रिप्ट लिखें"
},
"hide": {
"collection": "संग्रह पैनल संक्षिप्त करें",
@@ -338,36 +308,13 @@
"json_description": "Hoppscotch Collections JSON फ़ाइल से संग्रह आयात करें",
"title": "आयात करें"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "संग्रह को संक्षिप्त या विस्तृत करें",
"collapse_sidebar": "साइडबार को संक्षिप्त या विस्तृत करें",
"column": "लंबवत लेआउट",
"name": "लेआउट",
"row": "क्षैतिज लेआउट"
"row": "क्षैतिज लेआउट",
"zen_mode": "ज़ेन मोड"
},
"modal": {
"close_unsaved_tab": "You have unsaved changes",
@@ -472,7 +419,6 @@
"payload": "पेलोड",
"query": "सवाल",
"raw_body": "कच्चे अनुरोध निकाय",
"rename": "Rename Request",
"renamed": "अनुरोध नाम दिया गया",
"run": "दौड़ना",
"save": "बचाना",
@@ -480,7 +426,6 @@
"saved": "अनुरोध सहेजा गया",
"share": "शेयर करना",
"share_description": "अपने दोस्तों के साथ hoppscotch साझा करें",
"stop": "Stop",
"title": "प्रार्थना",
"type": "अनुरोध का प्रकार",
"url": "यूआरएल",
@@ -515,6 +460,7 @@
"account_name_description": "यह आपका प्रदर्शन नाम है।",
"background": "पार्श्वभूमि",
"black_mode": "काला",
"change_font_size": "फॉण्ट आकार बदलें",
"choose_language": "भाषा चुनें",
"dark_mode": "अँधेरा",
"delete_account": "Delete account",
@@ -527,6 +473,10 @@
"extensions": "ब्राउज़र विस्तार",
"extensions_use_toggle": "अनुरोध भेजने के लिए ब्राउज़र एक्सटेंशन का उपयोग करें (यदि मौजूद है)",
"follow": "हमारे पर का पालन करें",
"font_size": "फ़ॉन्ट आकार",
"font_size_large": "विशाल",
"font_size_medium": "मध्यम",
"font_size_small": "छोटा",
"interceptor": "इंटरसेप्टर",
"interceptor_description": "एप्लिकेशन और एपीआई के बीच मिडलवेयर।",
"language": "भाषा",
@@ -591,27 +541,19 @@
"settings": "सेटिंग्स पृष्ठ पर जाएं",
"title": "मार्गदर्शन"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "कॉपी अनुरोध लिंक",
"delete_method": "हटाएं विधि का चयन करें",
"get_method": "गेट विधि का चयन करें",
"head_method": "हेड विधि का चयन करें",
"import_curl": "Import cURL",
"method": "तरीका",
"next_method": "अगली विधि का चयन करें",
"post_method": "पोस्ट विधि का चयन करें",
"previous_method": "पिछली विधि का चयन करें",
"put_method": "पुट विधि का चयन करें",
"rename": "Rename Request",
"reset_request": "रीसेट अनुरोध",
"save_request": "Save Request",
"save_to_collections": "संग्रह के लिए सहेजें",
"send_request": "अनुरोध भेजा",
"show_code": "Generate code snippet",
"title": "प्रार्थना"
},
"response": {
@@ -641,85 +583,6 @@
"log": "लकड़ी का लट्ठा",
"url": "यूआरएल"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "घटना प्रकार",
"log": "लकड़ी का लट्ठा",
@@ -777,11 +640,8 @@
"tab": {
"authorization": "प्राधिकार",
"body": "शरीर",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "संग्रह",
"documentation": "प्रलेखन",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "हेडर",
"history": "इतिहास",

View File

@@ -5,7 +5,6 @@
"choose_file": "Válasszon egy fájlt",
"clear": "Törlés",
"clear_all": "Összes törlése",
"clear_history": "Clear all History",
"close": "Bezárás",
"connect": "Kapcsolódás",
"connecting": "Kapcsolódás",
@@ -32,7 +31,6 @@
"paste": "Beillesztés",
"prettify": "Csinosítás",
"remove": "Eltávolítás",
"rename": "Rename",
"restore": "Visszaállítás",
"save": "Mentés",
"scroll_to_bottom": "Görgetés az aljára",
@@ -79,8 +77,6 @@
"search": "Keresés",
"share": "Megosztás",
"shortcuts": "Gyorsbillentyűk",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "Reflektorfény",
"status": "Állapot",
"status_description": "A weboldal állapotának ellenőrzése",
@@ -135,15 +131,12 @@
"renamed": "Gyűjtemény átnevezve",
"request_in_use": "A kérés használatban",
"save_as": "Mentés másként",
"save_to_collection": "Save to Collection",
"select": "Gyűjtemény kiválasztása",
"select_location": "Hely kiválasztása",
"select_team": "Csapat kiválasztása",
"team_collections": "Csapat gyűjteményei"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "Biztosan el szeretné hagyni ezt a csapatot?",
"logout": "Biztosan ki szeretne jelentkezni?",
"remove_collection": "Biztosan véglegesen törölni szeretné ezt a gyűjteményt?",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "Szeretné menteni az ezen a lapon elvégzett változtatásokat?",
"sync": "Szeretné visszaállítani a munkaterületét a felhőből? Ez el fogja vetni a helyi folyamatát."
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "{count}. fejléc",
"message": "{count}. üzenet",
@@ -204,31 +192,17 @@
"create_new": "Új környezet létrehozása",
"created": "Környezet létrehozva",
"deleted": "Környezet törlése",
"duplicated": "Environment duplicated",
"edit": "Környezet szerkesztése",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "Adjon nevet a környezetnek",
"list": "Environment variables",
"my_environments": "Saját környezetek",
"name": "Name",
"nested_overflow": "az egymásba ágyazott környezeti változók 10 szintre vannak korlátozva",
"new": "Új környezet",
"no_active_environment": "No active environment",
"no_environment": "Nincs környezet",
"no_environment_description": "Nem lettek környezetek kiválasztva. Válassza ki, hogy mit kell tenni a következő változókkal.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "Környezet kiválasztása",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Csapatkörnyezetek",
"title": "Környezetek",
"updated": "Környezet frissítve",
"value": "Value",
"variable": "Variable",
"variable_list": "Változólista"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "Nincs időtartam",
"no_results_found": "Nincs találat",
"page_not_found": "Ez az oldal nem található",
"proxy_error": "Proxy error",
"script_fail": "Nem sikerült végrehajtani a kérés előtti parancsfájlt",
"something_went_wrong": "Valami elromlott",
"test_script_fail": "Nem sikerült végrehajtani a kérés utáni parancsfájlt"
@@ -278,13 +251,9 @@
"renamed": "Mappa átnevezve"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "Mutációk",
"schema": "Séma",
"subscriptions": "Feliratkozások",
"switch_connection": "Switch connection"
"subscriptions": "Feliratkozások"
},
"group": {
"time": "Idő",
@@ -338,36 +307,13 @@
"json_description": "Gyűjtemények importálása Hoppscotch-gyűjtemények JSON-fájlból",
"title": "Importálás"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Gyűjtemények összecsukása vagy kinyitása",
"collapse_sidebar": "Az oldalsáv összecsukása vagy kinyitása",
"column": "Függőleges elrendezés",
"name": "Elrendezés",
"row": "Vízszintes elrendezés"
"row": "Vízszintes elrendezés",
"zen_mode": "Zen mód"
},
"modal": {
"close_unsaved_tab": "Elmentetlen változtatásai vannak",
@@ -472,7 +418,6 @@
"payload": "Hasznos teher",
"query": "Lekérdezés",
"raw_body": "Nyers kéréstörzs",
"rename": "Rename Request",
"renamed": "Kérés átnevezve",
"run": "Futtatás",
"save": "Mentés",
@@ -480,7 +425,6 @@
"saved": "Kérés elmentve",
"share": "Megosztás",
"share_description": "A Hoppscotch megosztása az ismerőseivel",
"stop": "Stop",
"title": "Kérés",
"type": "Kérés típusa",
"url": "URL",
@@ -515,6 +459,7 @@
"account_name_description": "Ez a megjelenített neve.",
"background": "Háttér",
"black_mode": "Fekete",
"change_font_size": "Betűméret megváltoztatása",
"choose_language": "Nyelv kiválasztása",
"dark_mode": "Sötét",
"delete_account": "Fiók törlése",
@@ -527,6 +472,10 @@
"extensions": "Böngészőkiterjesztés",
"extensions_use_toggle": "A böngészőkiterjesztés használata a kérések küldéséhez (ha jelen van)",
"follow": "Kövessen minket",
"font_size": "Betűméret",
"font_size_large": "Nagy",
"font_size_medium": "Közepes",
"font_size_small": "Kicsi",
"interceptor": "Elfogó",
"interceptor_description": "Középprogram az alkalmazás és az API-k között.",
"language": "Nyelv",
@@ -591,27 +540,19 @@
"settings": "Ugrás a beállítások oldalra",
"title": "Navigáció"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "Kérés hivatkozásának másolása",
"delete_method": "DELETE módszer kiválasztása",
"get_method": "GET módszer kiválasztása",
"head_method": "HEAD módszer kiválasztása",
"import_curl": "Import cURL",
"method": "Módszer",
"next_method": "Következő módszer kiválasztása",
"post_method": "POST módszer kiválasztása",
"previous_method": "Előző módszer kiválasztása",
"put_method": "PUT módszer kiválasztása",
"rename": "Rename Request",
"reset_request": "Kérés visszaállítása",
"save_request": "Save Request",
"save_to_collections": "Mentés a gyűjteményekbe",
"send_request": "Kérés elküldése",
"show_code": "Generate code snippet",
"title": "Kérés"
},
"response": {
@@ -641,85 +582,6 @@
"log": "Napló",
"url": "URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "Esemény típusa",
"log": "Napló",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "Felhatalmazás",
"body": "Törzs",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "Gyűjtemények",
"documentation": "Dokumentáció",
"duplicate": "Duplicate Tab",
"environments": "Környezetek",
"headers": "Fejlécek",
"history": "Előzmények",

View File

@@ -5,7 +5,6 @@
"choose_file": "Pilih file",
"clear": "Bersihkan",
"clear_all": "Bersihkan semua",
"clear_history": "Clear all History",
"close": "Tutup",
"connect": "Sambungkan",
"connecting": "Menyambungkan",
@@ -32,7 +31,6 @@
"paste": "Tempel",
"prettify": "Prettify",
"remove": "Hapus",
"rename": "Rename",
"restore": "Pulihkan",
"save": "Simpan",
"scroll_to_bottom": "Gulir ke bawah",
@@ -79,8 +77,6 @@
"search": "Mencari",
"share": "Membagikan",
"shortcuts": "Jalan pintas",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "Menyoroti",
"status": "Status",
"status_description": "Periksa status situs web",
@@ -122,28 +118,25 @@
},
"collection": {
"created": "Koleksi dibuat",
"different_parent": "Tidak dapat mengubah urutan koleksi dengan induk yang berbeda",
"different_parent": "Cannot reorder collection with different parent",
"edit": "Mengubah Koleksi",
"invalid_name": "Berikan nama untuk Koleksi",
"invalid_root_move": "Koleksi sudah berada di akar direktori",
"moved": "Berhasil Dipindahkan",
"invalid_root_move": "Collection already in the root",
"moved": "Moved Successfully",
"my_collections": "Koleksi Saya",
"name": "Koleksi Baru Saya",
"name_length_insufficient": "Nama koleksi harus minimal 3 karakter",
"new": "Koleksi baru",
"order_changed": "Pembaruan Urutan Koleksi",
"order_changed": "Collection Order Updated",
"renamed": "Koleksi berganti nama",
"request_in_use": "Permintaan sedang digunakan",
"save_as": "Simpan Sebagai",
"save_to_collection": "Save to Collection",
"select": "Pilih Koleksi",
"select_location": "Pilih lokasi",
"select_team": "Pilih tim",
"select_team": "Pilih team",
"team_collections": "Koleksi Tim"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "Apakah Anda yakin ingin keluar dari tim ini?",
"logout": "Apakah Anda yakin ingin keluar?",
"remove_collection": "Apakah Anda yakin ingin menghapus koleksi ini secara permanen?",
@@ -154,14 +147,9 @@
"remove_team": "Apakah Anda yakin ingin menghapus tim ini?",
"remove_telemetry": "Apakah Anda yakin ingin menyisih dari Telemetri?",
"request_change": "Apakah Anda yakin ingin membuang permintaan saat ini, perubahan yang belum disimpan akan hilang.",
"save_unsaved_tab": "Apakah Anda ingin menyimpan perubahan yang dibuat di tab ini?",
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "Apakah Anda ingin memulihkan ruang kerja Anda dari cloud? Ini akan membuang kemajuan lokal Anda."
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "Header {count}",
"message": "Pesan {count}",
@@ -192,8 +180,8 @@
"profile": "Masuk untuk melihat profil Anda",
"protocols": "Protokol kosong",
"schema": "Hubungkan ke endpoint GraphQL untuk melihat skema",
"shortcodes": "Shortcodes kosong",
"subscription": "Langganan kosong",
"shortcodes": "Shortcodes are empty",
"subscription": "Subscriptions are empty",
"team_name": "Nama team kosong",
"teams": "Kamu bukan di team manapun",
"tests": "Tidak ada tes untuk permintaan ini"
@@ -201,34 +189,20 @@
"environment": {
"add_to_global": "Tambahkan ke Global",
"added": "Tambahan Environment",
"create_new": "Membuat environment baru",
"create_new": "Membuat baru environment",
"created": "Environment dibuat",
"deleted": "Environment dihapus",
"duplicated": "Environment duplicated",
"edit": "Sunting Environment",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "Tolong beri nama untuk environment",
"list": "Environment variables",
"my_environments": "Environment Saya",
"name": "Name",
"nested_overflow": "Variabel environment bersarang dibatasi hingga 10 level",
"my_environments": "My Environments",
"nested_overflow": "variabel environment bersarang dibatasi hingga 10 level",
"new": "Environment Baru",
"no_active_environment": "No active environment",
"no_environment": "No environment",
"no_environment_description": "Tidak ada environment yang dipilih. Pilih apa yang harus dilakukan dengan variabel berikut.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "Pilih environment",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Environment Tim",
"title": "Environment",
"team_environments": "Team Environments",
"title": "Environments",
"updated": "Environment diperbarui",
"value": "Value",
"variable": "Variable",
"variable_list": "Daftar Variable"
},
"error": {
@@ -236,8 +210,8 @@
"check_console_details": "Periksa console log untuk detailnya.",
"curl_invalid_format": "cURL tidak diformat dengan benar",
"danger_zone": "Danger zone",
"delete_account": "Akun Anda saat ini merupakan pemilik dalam tim-tim ini:",
"delete_account_description": "Anda harus menghapus diri Anda dari tim-tim ini, mentransfer kepemilikan, atau menghapus tim-tim ini sebelum Anda dapat menghapus akun Anda.",
"delete_account": "Your account is currently an owner in these teams:",
"delete_account_description": "You must either remove yourself, transfer ownership, or delete these teams before you can delete your account.",
"empty_req_name": "Nama Permintaan Kosong",
"f12_details": "(F12 untuk detailnya)",
"gql_prettify_invalid_query": "Tidak dapat prettify kueri yang tidak valid, menyelesaikan kesalahan sintaksis kueri, dan coba lagi",
@@ -252,7 +226,6 @@
"no_duration": "Tidak ada durasi",
"no_results_found": "Tidak ada kecocokan yang ditemukan",
"page_not_found": "Halaman ini tidak dapat ditemukan",
"proxy_error": "Proxy error",
"script_fail": "Tidak dapat menjalankan pre-request script",
"something_went_wrong": "Ada yang salah",
"test_script_fail": "Tidak dapat mengeksekusi post-request script"
@@ -278,13 +251,9 @@
"renamed": "Folder berganti nama"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "Mutations",
"schema": "Schema",
"subscriptions": "Subscriptions",
"switch_connection": "Switch connection"
"subscriptions": "Subscriptions"
},
"group": {
"time": "Time",
@@ -325,7 +294,7 @@
"from_json_description": "Impor dari Hoppscotch berkas koleksi",
"from_my_collections": "Impor dari Koleksi Saya",
"from_my_collections_description": "Impor dari Berkas Koleksi Saya",
"from_openapi": "Impor dari OpenAPI",
"from_openapi": "Import dari OpenAPI",
"from_openapi_description": "Impor dari OpenAPI syarat berkas (YML/JSON)",
"from_postman": "Impor dari Postman",
"from_postman_description": "Impor dari Koleksi Postman",
@@ -338,55 +307,32 @@
"json_description": "Impor Koleksi dari berkas JSON Koleksi Hoppscotch",
"title": "Impor"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Ciutkan atau Perluas Collections",
"collapse_sidebar": "Ciutkan atau Perluas sidebar",
"column": "Vertikal layout",
"name": "Layout",
"row": "Horisontal layout"
"row": "Horisontal layout",
"zen_mode": "Zen mode"
},
"modal": {
"close_unsaved_tab": "Anda memiliki perubahan yang belum disimpan",
"close_unsaved_tab": "You have unsaved changes",
"collections": "Koleksi",
"confirm": "Mengonfirmasi",
"edit_request": "Edit Request",
"import_export": "Impor / Ekspor"
},
"mqtt": {
"already_subscribed": "Anda sudah berlangganan topik ini.",
"clean_session": "Sesi Bersih",
"clear_input": "Hapus input",
"clear_input_on_send": "Hapus input saat mengirim",
"already_subscribed": "You are already subscribed to this topic.",
"clean_session": "Clean Session",
"clear_input": "Clear input",
"clear_input_on_send": "Clear input on send",
"client_id": "Client ID",
"color": "Pilih warna",
"color": "Pick a color",
"communication": "Komunikasi",
"connection_config": "Konfigurasi Koneksi",
"connection_not_authorized": "Koneksi MQTT ini tidak menggunakan otentikasi",
"invalid_topic": "Harap berikan topik untuk langganan",
"connection_config": "Connection Config",
"connection_not_authorized": "This MQTT connection does not use any authentication.",
"invalid_topic": "Please provide a topic for the subscription",
"keep_alive": "Keep Alive",
"log": "Log",
"lw_message": "Last-Will Message",
@@ -394,8 +340,8 @@
"lw_retain": "Last-Will Retain",
"lw_topic": "Last-Will Topic",
"message": "Pesan",
"new": "Langganan Baru",
"not_connected": "Mulai koneksi MQTT terlebih dahulu",
"new": "New Subscription",
"not_connected": "Please start a MQTT connection first.",
"publish": "Menerbitkan",
"qos": "QoS",
"ssl": "SSL",
@@ -450,19 +396,19 @@
"text": "Text"
},
"copy_link": "Salin tautan",
"different_collection": "Tidak dapat mengubah urutan permintaan dari koleksi yang berbeda",
"different_collection": "Cannot reorder requests from different collections",
"duplicated": "Request duplicated",
"duration": "Durasi",
"enter_curl": "Masukkan cURL",
"generate_code": "Hasilkan kode",
"generated_code": "Hasilkan kode",
"generate_code": "Generate code",
"generated_code": "Generated code",
"header_list": "Daftar Header",
"invalid_name": "Harap berikan nama untuk request",
"method": "Method",
"moved": "Request moved",
"name": "Request nama",
"new": "Request baru",
"order_changed": "Urutan Request Diperbarui",
"order_changed": "Request Order Updated",
"override": "Membatalkan",
"override_help": "Set <kbd>Content-Type</kbd> in Headers",
"overriden": "Diganti",
@@ -472,7 +418,6 @@
"payload": "Payload",
"query": "Query",
"raw_body": "Raw Request Body",
"rename": "Rename Request",
"renamed": "Request berganti nama",
"run": "Jalankan",
"save": "Menyimpan",
@@ -480,7 +425,6 @@
"saved": "Request disimpan",
"share": "Membagikan",
"share_description": "Bagikan Hoppscotch dengan teman-teman Anda",
"stop": "Stop",
"title": "Request",
"type": "Tipe Request",
"url": "URL",
@@ -509,12 +453,13 @@
"settings": {
"accent_color": "Accent color",
"account": "Akun",
"account_deleted": "Akun Anda telah dihapus",
"account_deleted": "Your account has been deleted",
"account_description": "Sesuaikan pengaturan akun Anda.",
"account_email_description": "Alamat surel utama Anda.",
"account_name_description": "Ini adalah nama tampilan Anda.",
"background": "Latar belakang",
"black_mode": "Hitam",
"change_font_size": "Ubah ukuran font",
"choose_language": "Pilih bahasa",
"dark_mode": "Gelap",
"delete_account": "Delete account",
@@ -527,6 +472,10 @@
"extensions": "Ekstensi Peramban",
"extensions_use_toggle": "Gunakan ekstensi peramban untuk mengirim permintaan (jika ada)",
"follow": "Ikuti kami",
"font_size": "Ukuran huruf",
"font_size_large": "Besar",
"font_size_medium": "Sedang",
"font_size_small": "Kecil",
"interceptor": "Pencegat",
"interceptor_description": "Middleware antara aplikasi dan API.",
"language": "Bahasa",
@@ -591,27 +540,19 @@
"settings": "Pergi ke halaman Pengaturan",
"title": "Navigasi"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "Salin Tautan Permintaan",
"delete_method": "Pilih metode DELETE",
"get_method": "Pilih metode GET",
"head_method": "Pilih metode HEAD",
"import_curl": "Import cURL",
"method": "metode",
"next_method": "Pilih metode Next",
"post_method": "Pilih metode POST",
"previous_method": "Pilih metode Previous",
"put_method": "Pilih metode PUT",
"rename": "Rename Request",
"reset_request": "Mengatur ulang Request",
"save_request": "Save Request",
"save_to_collections": "Menyimpan ke Collections",
"send_request": "Kirim Request",
"show_code": "Generate code snippet",
"title": "Request"
},
"response": {
@@ -641,85 +582,6 @@
"log": "Log",
"url": "URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "Tipe Event",
"log": "Log",
@@ -747,7 +609,7 @@
"file_imported": "File diimpor",
"finished_in": "Selesai dalam {duration} ms",
"history_deleted": "Riwayat dihapus",
"linewrap": "Bungkus baris",
"linewrap": "Wrap lines",
"loading": "Memuat...",
"message_received": "Pesan: {message} tiba di topik: {topic}",
"mqtt_subscription_failed": "Terjadi masalah saat berlangganan topik: {topic}",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "Authorization",
"body": "Body",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "Collections",
"documentation": "Dokumentasi",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "Headers",
"history": "Riwayat",
@@ -807,7 +666,7 @@
"email_do_not_match": "Surel tidak cocok dengan detail akun Anda. Hubungi pemilik tim Anda.",
"exit": "Keluar dari Tim",
"exit_disabled": "Hanya pemilik yang tidak dapat keluar dari tim",
"invalid_coll_id": "ID koleksi tidak valid",
"invalid_coll_id": "Invalid collection ID",
"invalid_email_format": "Format surel tidak valid",
"invalid_id": "ID tim tidak valid. Hubungi pemilik tim Anda.",
"invalid_invite_link": "Tautan undangan tidak valid",
@@ -831,7 +690,7 @@
"member_removed": "Pengguna dihapus",
"member_role_updated": "Peran pengguna diperbarui",
"members": "Anggota",
"more_members": "+{count} lebih",
"more_members": "+{count} more",
"name_length_insufficient": "Nama tim harus setidaknya 6 karakter",
"name_updated": "Nama tim diperbarui",
"new": "Tim Baru",
@@ -839,13 +698,13 @@
"new_name": "Tim baru saya",
"no_access": "Anda tidak memiliki akses edit ke collections ini",
"no_invite_found": "Undangan tidak ditemukan. Hubungi pemilik tim Anda.",
"no_request_found": "Request tidak ditemukan.",
"no_request_found": "Request not found.",
"not_found": "Tim tidak ditemukan. Hubungi pemilik tim Anda.",
"not_valid_viewer": "Anda bukan penonton yang valid. Hubungi pemilik tim Anda.",
"parent_coll_move": "Tidak dapat memindahkan koleksi ke dalam koleksi anak",
"parent_coll_move": "Cannot move collection to a child collection",
"pending_invites": "Undangan tertunda",
"permissions": "Izin",
"same_target_destination": "Sama tujuan dan destinasi",
"same_target_destination": "Same target and destination",
"saved": "Tim disimpan",
"select_a_team": "Pilih tim",
"title": "tim",
@@ -853,9 +712,9 @@
"we_sent_invite_link_description": "Minta semua undangan untuk memeriksa kotak masuk mereka. Klik tautan untuk bergabung dengan tim."
},
"team_environment": {
"deleted": "Environment dihapus",
"duplicate": "Environment diduplikasi",
"not_found": "Environment tidak ditemukan."
"deleted": "Environment Deleted",
"duplicate": "Environment Duplicated",
"not_found": "Environment not found."
},
"test": {
"failed": "Tes gagal",
@@ -875,9 +734,9 @@
"url": "URL"
},
"workspace": {
"change": "Beralih workspace",
"personal": "Workspace Saya",
"team": "Workspace Tim",
"change": "Change workspace",
"personal": "My Workspace",
"team": "Team Workspace",
"title": "Workspaces"
}
}

View File

@@ -5,7 +5,6 @@
"choose_file": "Scegli un file",
"clear": "Cancella",
"clear_all": "Cancella tutto",
"clear_history": "Clear all History",
"close": "Close",
"connect": "Connetti",
"connecting": "Connecting",
@@ -32,7 +31,6 @@
"paste": "Paste",
"prettify": "Abbellisci",
"remove": "Rimuovi",
"rename": "Rename",
"restore": "Ripristina",
"save": "Salva",
"scroll_to_bottom": "Scroll to bottom",
@@ -79,8 +77,6 @@
"search": "Cerca",
"share": "Condividi",
"shortcuts": "Scorciatoie",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "Riflettore",
"status": "Stato",
"status_description": "Check the status of the website",
@@ -135,15 +131,12 @@
"renamed": "Raccolta rinominata",
"request_in_use": "Request in use",
"save_as": "Salva come",
"save_to_collection": "Save to Collection",
"select": "Seleziona una raccolta",
"select_location": "Seleziona la posizione",
"select_team": "Seleziona un team",
"team_collections": "Raccolte di team"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "Are you sure you want to leave this team?",
"logout": "Sei sicuro di voler uscire?",
"remove_collection": "Sei sicuro di voler eliminare definitivamente questa raccolta?",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "Vuoi ripristinare il tuo spazio di lavoro con quello del cloud? Questo annullerà le tue modifiche fatte in locale."
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "Intestazione {count}",
"message": "Messaggio {count}",
@@ -204,31 +192,17 @@
"create_new": "Crea un nuovo ambiente",
"created": "Environment created",
"deleted": "Environment deletion",
"duplicated": "Environment duplicated",
"edit": "Modifica ambiente",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "Si prega di fornire un nome valido per l'ambiente",
"list": "Environment variables",
"my_environments": "My Environments",
"name": "Name",
"nested_overflow": "nested environment variables are limited to 10 levels",
"new": "Nuovo ambiente",
"no_active_environment": "No active environment",
"no_environment": "Nessun ambiente",
"no_environment_description": "No environments were selected. Choose what to do with the following variables.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "Seleziona ambiente",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Team Environments",
"title": "Ambienti",
"updated": "Environment updation",
"value": "Value",
"variable": "Variable",
"variable_list": "Elenco variabili"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "Nessuna durata",
"no_results_found": "No matches found",
"page_not_found": "This page could not be found",
"proxy_error": "Proxy error",
"script_fail": "Impossibile eseguire lo script di pre-richiesta",
"something_went_wrong": "Qualcosa è andato storto",
"test_script_fail": "Could not execute post-request script"
@@ -278,13 +251,9 @@
"renamed": "Cartella rinominata"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "Mutazioni",
"schema": "Schema",
"subscriptions": "Sottoscrizioni",
"switch_connection": "Switch connection"
"subscriptions": "Sottoscrizioni"
},
"group": {
"time": "Time",
@@ -338,36 +307,13 @@
"json_description": "Import collections from a Hoppscotch Collections JSON file",
"title": "Importa"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Collapse or Expand Collections",
"collapse_sidebar": "Collapse or Expand the sidebar",
"column": "Disposizione verticale",
"name": "Layout",
"row": "Disposizione orizzontale"
"row": "Disposizione orizzontale",
"zen_mode": "Modalità zen"
},
"modal": {
"close_unsaved_tab": "You have unsaved changes",
@@ -472,7 +418,6 @@
"payload": "Contenuto (Payload)",
"query": "Query",
"raw_body": "Corpo della richiesta non formattato",
"rename": "Rename Request",
"renamed": "Richiesta rinominata",
"run": "Esegui",
"save": "Salva",
@@ -480,7 +425,6 @@
"saved": "Richiesta salvata",
"share": "Condividi",
"share_description": "Share Hoppscotch with your friends",
"stop": "Stop",
"title": "Richiesta",
"type": "Tipo di richiesta",
"url": "URL",
@@ -515,6 +459,7 @@
"account_name_description": "Questo è il tuo nome mostrato.",
"background": "Sfondo",
"black_mode": "Nero",
"change_font_size": "Cambia la dimensione dei caratteri",
"choose_language": "Scegli la lingua",
"dark_mode": "Scuro",
"delete_account": "Delete account",
@@ -527,6 +472,10 @@
"extensions": "Estensioni",
"extensions_use_toggle": "Utilizza l'estensione del browser per inviare richieste (se presente)",
"follow": "Follow Us",
"font_size": "Dimensione dei caratteri",
"font_size_large": "Grande",
"font_size_medium": "Medio",
"font_size_small": "Piccolo",
"interceptor": "Interceptor",
"interceptor_description": "Middleware tra applicazione e API.",
"language": "Lingua",
@@ -591,27 +540,19 @@
"settings": "Vai alla pagina Impostazioni",
"title": "Navigazione"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "Copia il link alla richiesta",
"delete_method": "Seleziona il metodo DELETE",
"get_method": "Seleziona il metodo GET",
"head_method": "Seleziona il metodo HEAD",
"import_curl": "Import cURL",
"method": "Metodo",
"next_method": "Seleziona il metodo successivo",
"post_method": "Seleziona il metodo POST",
"previous_method": "Seleziona il metodo precedente",
"put_method": "Seleziona il metodo PUT",
"rename": "Rename Request",
"reset_request": "Resetta la richiesta",
"save_request": "Save Request",
"save_to_collections": "Salva nelle raccolte",
"send_request": "Invia richiesta",
"show_code": "Generate code snippet",
"title": "Richiesta"
},
"response": {
@@ -641,85 +582,6 @@
"log": "Log",
"url": "URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "Tipo di evento",
"log": "Log",
@@ -765,7 +627,7 @@
"support": {
"changelog": "Maggiori informazioni sulle ultime versioni",
"chat": "Domande? Chatta con noi!",
"community": "Fai domande e aiuta gli altri",
"community": "Fai domande e aiuta gli altri",
"documentation": "Maggiori informazioni su Hoppscotch",
"forum": "Fai domande e ottieni risposte",
"github": "Follow us on Github",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "Autorizzazione",
"body": "Corpo",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "Raccolte",
"documentation": "Documentazione",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "Intestazioni",
"history": "Cronologia",

View File

@@ -5,7 +5,6 @@
"choose_file": "ファイルを選択してください",
"clear": "クリア",
"clear_all": "すべてクリア",
"clear_history": "Clear all History",
"close": "閉じる",
"connect": "接続",
"connecting": "接続中",
@@ -32,7 +31,6 @@
"paste": "貼り付け",
"prettify": "自動整形",
"remove": "削除",
"rename": "Rename",
"restore": "戻す",
"save": "保存",
"scroll_to_bottom": "下にスクロール",
@@ -79,8 +77,6 @@
"search": "検索",
"share": "共有",
"shortcuts": "ショートカット",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "スポットライト",
"status": "状態",
"status_description": "ウェブサイトの状態を確認",
@@ -135,15 +131,12 @@
"renamed": "コレクション名が変更されました",
"request_in_use": "使用中のリクエスト",
"save_as": "名前を付けて保存",
"save_to_collection": "Save to Collection",
"select": "コレクションを選択",
"select_location": "場所を選択",
"select_team": "チームを選択",
"team_collections": "チームコレクション"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "本当にこのチームから退出しますか?",
"logout": "ログアウトしてもよろしいですか?",
"remove_collection": "このコレクションを完全に削除してもよろしいですか?",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "クラウドからワークスペースを復元しますか?この場合、ローカルの進行状況は破棄されます。"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "ヘッダー {count}",
"message": "メッセージ {count}",
@@ -204,31 +192,17 @@
"create_new": "新しい環境変数を作成",
"created": "環境変数を作成しました",
"deleted": "環境変数を削除しました",
"duplicated": "Environment duplicated",
"edit": "環境変数の編集",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "環境変数名を入力してください",
"list": "Environment variables",
"my_environments": "個人の環境変数",
"name": "Name",
"nested_overflow": "環境変数の入れ子は10段階までです",
"new": "新しい環境変数",
"no_active_environment": "No active environment",
"no_environment": "環境変数が存在しません",
"no_environment_description": "環境変数が選択されていません。次の環境変数から選択してください。",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "環境変数を選択",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "チームの環境変数",
"title": "環境変数",
"updated": "環境変数を更新しました",
"value": "Value",
"variable": "Variable",
"variable_list": "環境変数リスト"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "期間なし",
"no_results_found": "該当するものがありませんでした",
"page_not_found": "このページは見つかりませんでした",
"proxy_error": "Proxy error",
"script_fail": "リクエスト前のスクリプトを実行できませんでした",
"something_went_wrong": "不明なエラーです",
"test_script_fail": "リクエスト後のスクリプトを実行できませんでした"
@@ -278,13 +251,9 @@
"renamed": "フォルダ名が変更されました"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "ミューテーション",
"schema": "スキーマ",
"subscriptions": "サブスクリプション",
"switch_connection": "Switch connection"
"subscriptions": "サブスクリプション"
},
"group": {
"time": "時間",
@@ -338,36 +307,13 @@
"json_description": "Hoppscotchのコレクション (JSONファイル) からインポート",
"title": "インポート"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "コレクションを表示・非表示",
"collapse_sidebar": "サイドバーを表示・非表示",
"column": "縦型レイアウト",
"name": "レイアウト",
"row": "横型レイアウト"
"row": "横型レイアウト",
"zen_mode": "禅モード"
},
"modal": {
"close_unsaved_tab": "You have unsaved changes",
@@ -472,7 +418,6 @@
"payload": "ペイロード",
"query": "クエリ",
"raw_body": "生のリクエストボディ",
"rename": "Rename Request",
"renamed": "リクエストの名前を変更",
"run": "実行",
"save": "保存",
@@ -480,7 +425,6 @@
"saved": "保存されたリクエスト",
"share": "共有",
"share_description": "Hoppscotchを友人に共有",
"stop": "Stop",
"title": "リクエスト",
"type": "リクエストの種類",
"url": "URL",
@@ -515,6 +459,7 @@
"account_name_description": "あなたの表示名",
"background": "背景",
"black_mode": "ブラック",
"change_font_size": "フォントの大きさを変更",
"choose_language": "言語を選択",
"dark_mode": "ダーク",
"delete_account": "アカウントの削除",
@@ -527,6 +472,10 @@
"extensions": "拡張機能",
"extensions_use_toggle": "ブラウザ拡張機能を使用してリクエストを送信する(利用可能な場合)",
"follow": "フォローする",
"font_size": "フォントサイズ",
"font_size_large": "大きめ",
"font_size_medium": "普通",
"font_size_small": "小さめ",
"interceptor": "インターセプタ",
"interceptor_description": "アプリケーションとAPIをつなぐミドルウェア",
"language": "言語",
@@ -591,27 +540,19 @@
"settings": "設定ページに移動",
"title": "ナビゲーション"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "コピーリクエストリンク",
"delete_method": "DELETEメソッドを選択",
"get_method": "GETメソッドを選択",
"head_method": "HEADメソッドを選択",
"import_curl": "Import cURL",
"method": "メソッド",
"next_method": "次のメソッドを選択",
"post_method": "POSTメソッドを選択",
"previous_method": "前のメソッドを選択",
"put_method": "PUTメソッドを選択",
"rename": "Rename Request",
"reset_request": "リセットリクエスト",
"save_request": "Save Request",
"save_to_collections": "コレクションに保存",
"send_request": "リクエストを送信",
"show_code": "Generate code snippet",
"title": "リクエスト"
},
"response": {
@@ -641,85 +582,6 @@
"log": "ログ",
"url": "URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "イベントの種類",
"log": "ログ",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "認証",
"body": "ボディ",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "コレクション",
"documentation": "ドキュメント",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "ヘッダー",
"history": "履歴",

View File

@@ -5,7 +5,6 @@
"choose_file": "파일 선택",
"clear": "지우기",
"clear_all": "모두 지우기",
"clear_history": "Clear all History",
"close": "닫기",
"connect": "연결",
"connecting": "Connecting",
@@ -32,7 +31,6 @@
"paste": "붙여넣기",
"prettify": "구문 강조",
"remove": "제거",
"rename": "Rename",
"restore": "복원",
"save": "저장",
"scroll_to_bottom": "Scroll to bottom",
@@ -79,8 +77,6 @@
"search": "찾기",
"share": "공유하기",
"shortcuts": "바로가기",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "스포트라이트",
"status": "상태",
"status_description": "Check the status of the website",
@@ -135,15 +131,12 @@
"renamed": "모음집 이름이 변경됨",
"request_in_use": "사용 중인 요청",
"save_as": "다른 이름으로 저장",
"save_to_collection": "Save to Collection",
"select": "모음집 선택",
"select_location": "위치 선택",
"select_team": "팀 선택",
"team_collections": "팀 모음집"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "이 팀을 떠나겠습니까?",
"logout": "로그아웃하겠습니까?",
"remove_collection": "이 모음집을 영구적으로 삭제하겠습니까?",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "이 작업 공간을 동기화하겠습니까?"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "헤더 {count}",
"message": "메시지 {count}",
@@ -204,31 +192,17 @@
"create_new": "새 환경 만들기",
"created": "Environment created",
"deleted": "Environment deletion",
"duplicated": "Environment duplicated",
"edit": "환경 편집",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "환경 이름을 바르게 입력하세요.",
"list": "Environment variables",
"my_environments": "My Environments",
"name": "Name",
"nested_overflow": "환경 변수는 열 단계까지만 중첩될 수 있습니다.",
"new": "새 환경",
"no_active_environment": "No active environment",
"no_environment": "환경 없음",
"no_environment_description": "선택한 환경이 없습니다. 선택해주세요.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "환경 선택",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Team Environments",
"title": "환경",
"updated": "환경 수정됨",
"value": "Value",
"variable": "Variable",
"variable_list": "변수 목록"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "소요 시간 없음",
"no_results_found": "No matches found",
"page_not_found": "해당 페이지를 찾을 수 없습니다.",
"proxy_error": "Proxy error",
"script_fail": "사전 요청 스크립트를 실행할 수 없습니다.",
"something_went_wrong": "문제가 발생했습니다.",
"test_script_fail": "테스트 스크립트를 실행할 수 없습니다."
@@ -278,13 +251,9 @@
"renamed": "폴더 이름이 변경됨"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "뮤테이션",
"schema": "스키마",
"subscriptions": "섭스크립션",
"switch_connection": "Switch connection"
"subscriptions": "섭스크립션"
},
"group": {
"time": "Time",
@@ -338,36 +307,13 @@
"json_description": "호프스카치 모음집 JSON 파일을 가져옵니다.",
"title": "가져오기"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Collapse or Expand Collections",
"collapse_sidebar": "Collapse or Expand the sidebar",
"column": "가로형 레이아웃",
"name": "Layout",
"row": "세로형 레이아웃"
"row": "세로형 레이아웃",
"zen_mode": "전체화면"
},
"modal": {
"close_unsaved_tab": "You have unsaved changes",
@@ -472,7 +418,6 @@
"payload": "페이로드",
"query": "쿼리",
"raw_body": "원시 요청 본문",
"rename": "Rename Request",
"renamed": "요청 이름이 변경됨",
"run": "실행",
"save": "저장",
@@ -480,7 +425,6 @@
"saved": "요청이 저장됨",
"share": "공유하기",
"share_description": "Share Hoppscotch with your friends",
"stop": "Stop",
"title": "제목",
"type": "요청 유형",
"url": "URL",
@@ -515,6 +459,7 @@
"account_name_description": "디스플레이 이름입니다.",
"background": "배경",
"black_mode": "검은 테마",
"change_font_size": "글자 크기 변경",
"choose_language": "언어 선택",
"dark_mode": "어두운 테마",
"delete_account": "Delete account",
@@ -527,6 +472,10 @@
"extensions": "익스텐션",
"extensions_use_toggle": "브라우저 익스텐션을 사용하여 요청 보내기(있는 경우)",
"follow": "Follow Us",
"font_size": "글꼴 크기",
"font_size_large": "크게",
"font_size_medium": "중간",
"font_size_small": "작게",
"interceptor": "인터셉터",
"interceptor_description": "애플리케이션과 API 간의 미들웨어.",
"language": "언어",
@@ -591,27 +540,19 @@
"settings": "설정 페이지로 이동",
"title": "내비게이션"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "요청 링크 복사",
"delete_method": "DELETE 메서드 선택",
"get_method": "GET 메서드 선택",
"head_method": "HEAD 메서드 선택",
"import_curl": "Import cURL",
"method": "메서드",
"next_method": "다음 메서드 선택",
"post_method": "POST 메서드 선택",
"previous_method": "이전 메서드 선택",
"put_method": "PUT 메서드 선택",
"rename": "Rename Request",
"reset_request": "요청 초기화",
"save_request": "Save Request",
"save_to_collections": "모음집에 저장",
"send_request": "요청 보내기",
"show_code": "Generate code snippet",
"title": "요청"
},
"response": {
@@ -641,85 +582,6 @@
"log": "로그",
"url": "URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "이벤트 유형",
"log": "로그",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "인증",
"body": "본문",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "모음집",
"documentation": "문서",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "헤더",
"history": "이력",

View File

@@ -5,7 +5,6 @@
"choose_file": "Kies een bestand",
"clear": "Wis",
"clear_all": "Wis alles",
"clear_history": "Clear all History",
"close": "Close",
"connect": "Verbinden",
"connecting": "Connecting",
@@ -32,7 +31,6 @@
"paste": "Paste",
"prettify": "Netter opmaken",
"remove": "Verwijderen",
"rename": "Rename",
"restore": "Herstellen",
"save": "Opslaan",
"scroll_to_bottom": "Scroll to bottom",
@@ -79,8 +77,6 @@
"search": "Zoeken",
"share": "Deel",
"shortcuts": "Sneltoetsen",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "Spotlight",
"status": "Toestand",
"status_description": "Check the status of the website",
@@ -135,15 +131,12 @@
"renamed": "Collectie hernoemd",
"request_in_use": "Request in use",
"save_as": "Opslaan als",
"save_to_collection": "Save to Collection",
"select": "Selecteer een collectie",
"select_location": "Selecteer een locatie",
"select_team": "Selecteer een team",
"team_collections": "Teamcollecties"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "Are you sure you want to leave this team?",
"logout": "Weet u zeker dat u wilt uitloggen?",
"remove_collection": "Weet je zeker dat je deze collectie definitief wilt verwijderen?",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "Weet u zeker dat u deze werkruimte wilt synchroniseren?"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "Kop {count}",
"message": "Bericht {count}",
@@ -204,31 +192,17 @@
"create_new": "Nieuwe omgeving maken",
"created": "Environment created",
"deleted": "Environment deletion",
"duplicated": "Environment duplicated",
"edit": "Omgeving bewerken",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "Geef een geldige naam op voor de omgeving",
"list": "Environment variables",
"my_environments": "My Environments",
"name": "Name",
"nested_overflow": "nested environment variables are limited to 10 levels",
"new": "Nieuwe omgeving",
"no_active_environment": "No active environment",
"no_environment": "Geen omgeving",
"no_environment_description": "No environments were selected. Choose what to do with the following variables.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "Selecteer omgeving",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Team Environments",
"title": "omgevingen",
"updated": "Environment updation",
"value": "Value",
"variable": "Variable",
"variable_list": "Variabele lijst"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "Geen duur",
"no_results_found": "No matches found",
"page_not_found": "This page could not be found",
"proxy_error": "Proxy error",
"script_fail": "Kon pre-aanvraagscript niet uitvoeren",
"something_went_wrong": "Er is iets fout gegaan",
"test_script_fail": "Could not execute post-request script"
@@ -278,13 +251,9 @@
"renamed": "Map hernoemd"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "Mutaties",
"schema": "Schema",
"subscriptions": "Abonnementen",
"switch_connection": "Switch connection"
"subscriptions": "Abonnementen"
},
"group": {
"time": "Time",
@@ -338,36 +307,13 @@
"json_description": "Import collections from a Hoppscotch Collections JSON file",
"title": "Importeren"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Collapse or Expand Collections",
"collapse_sidebar": "Collapse or Expand the sidebar",
"column": "Vertical layout",
"name": "Layout",
"row": "Horizontal layout"
"row": "Horizontal layout",
"zen_mode": "Zen-modus"
},
"modal": {
"close_unsaved_tab": "You have unsaved changes",
@@ -472,7 +418,6 @@
"payload": "Payload",
"query": "Vraag",
"raw_body": "Ruwe body",
"rename": "Rename Request",
"renamed": "Verzoek hernoemd",
"run": "Uitvoeren",
"save": "Opslaan",
@@ -480,7 +425,6 @@
"saved": "Verzoek opgeslagen",
"share": "Deel",
"share_description": "Share Hoppscotch with your friends",
"stop": "Stop",
"title": "Verzoek",
"type": "Aanvraag type",
"url": "URL",
@@ -515,6 +459,7 @@
"account_name_description": "Dit is uw weergavenaam.",
"background": "Achtergrond",
"black_mode": "zwart",
"change_font_size": "Verander lettergrootte",
"choose_language": "Kies een taal",
"dark_mode": "Donker",
"delete_account": "Delete account",
@@ -527,6 +472,10 @@
"extensions": "Extensies",
"extensions_use_toggle": "Gebruik de browserextensie om verzoeken te versturen (indien aanwezig)",
"follow": "Follow Us",
"font_size": "Lettergrootte",
"font_size_large": "Groot",
"font_size_medium": "Medium",
"font_size_small": "Klein",
"interceptor": "Interceptor",
"interceptor_description": "Middleware tussen applicatie en API's.",
"language": "Taal",
@@ -591,27 +540,19 @@
"settings": "Ga naar de pagina Instellingen",
"title": "Navigatie"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "Kopieer aanvraaglink",
"delete_method": "Selecteer DELETE-methode",
"get_method": "Selecteer GET-methode",
"head_method": "Selecteer HEAD-methode:",
"import_curl": "Import cURL",
"method": "Methode",
"next_method": "Selecteer volgende methode",
"post_method": "Selecteer POST-methode",
"previous_method": "Selecteer vorige methode",
"put_method": "Selecteer PUT-methode",
"rename": "Rename Request",
"reset_request": "Verzoek resetten",
"save_request": "Save Request",
"save_to_collections": "Opslaan in collecties",
"send_request": "Verstuur verzoek",
"show_code": "Generate code snippet",
"title": "Verzoek"
},
"response": {
@@ -641,85 +582,6 @@
"log": "Logboek",
"url": "URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "Evenementtype",
"log": "Logboek",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "Autorisatie",
"body": "Inhoud",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "Collecties",
"documentation": "Documentatie",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "Headers",
"history": "Geschiedenis",

View File

@@ -5,7 +5,6 @@
"choose_file": "Velg en fil",
"clear": "Tøm",
"clear_all": "Tøm alt",
"clear_history": "Clear all History",
"close": "Close",
"connect": "Koble",
"connecting": "Connecting",
@@ -32,7 +31,6 @@
"paste": "Paste",
"prettify": "Forskjønn",
"remove": "Ta bort",
"rename": "Rename",
"restore": "Gjenopprett",
"save": "Lagre",
"scroll_to_bottom": "Scroll to bottom",
@@ -79,8 +77,6 @@
"search": "Søk",
"share": "Dele",
"shortcuts": "Snarveier",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "Spotlight",
"status": "Status",
"status_description": "Check the status of the website",
@@ -135,15 +131,12 @@
"renamed": "Samlingen ble omdøpt",
"request_in_use": "Request in use",
"save_as": "Lagre som",
"save_to_collection": "Save to Collection",
"select": "Velg en samling",
"select_location": "Velg plassering",
"select_team": "Velg et lag",
"team_collections": "Lagsamlinger"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "Are you sure you want to leave this team?",
"logout": "Er du sikker på at du vil logge deg av?",
"remove_collection": "Er du sikker på at du vil slette denne samlingen permanent?",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "Er du sikker på at du vil synkronisere dette arbeidsområdet?"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "Overskrift {count}",
"message": "Melding {count}",
@@ -204,31 +192,17 @@
"create_new": "Skap nytt miljø",
"created": "Environment created",
"deleted": "Environment deletion",
"duplicated": "Environment duplicated",
"edit": "Rediger miljø",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "Oppgi et gyldig navn på miljøet",
"list": "Environment variables",
"my_environments": "My Environments",
"name": "Name",
"nested_overflow": "nested environment variables are limited to 10 levels",
"new": "Nytt miljø",
"no_active_environment": "No active environment",
"no_environment": "Ingen miljø",
"no_environment_description": "No environments were selected. Choose what to do with the following variables.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "Velg miljø",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Team Environments",
"title": "Miljøer",
"updated": "Environment updation",
"value": "Value",
"variable": "Variable",
"variable_list": "Variabel liste"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "Ingen varighet",
"no_results_found": "No matches found",
"page_not_found": "This page could not be found",
"proxy_error": "Proxy error",
"script_fail": "Kunne ikke kjøre forhåndsforespørselsskript",
"something_went_wrong": "Noe gikk galt",
"test_script_fail": "Could not execute post-request script"
@@ -278,13 +251,9 @@
"renamed": "Mappen ble gitt nytt navn"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "Mutasjoner",
"schema": "Skjema",
"subscriptions": "Abonnementer",
"switch_connection": "Switch connection"
"subscriptions": "Abonnementer"
},
"group": {
"time": "Time",
@@ -338,36 +307,13 @@
"json_description": "Import collections from a Hoppscotch Collections JSON file",
"title": "Import"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Collapse or Expand Collections",
"collapse_sidebar": "Collapse or Expand the sidebar",
"column": "Vertical layout",
"name": "Layout",
"row": "Horizontal layout"
"row": "Horizontal layout",
"zen_mode": "Zen-modus"
},
"modal": {
"close_unsaved_tab": "You have unsaved changes",
@@ -472,7 +418,6 @@
"payload": "Nyttelast",
"query": "Spørsmål",
"raw_body": "Raw Request Body",
"rename": "Rename Request",
"renamed": "Forespørsel omdøpt",
"run": "Løpe",
"save": "Lagre",
@@ -480,7 +425,6 @@
"saved": "Forespørselen er lagret",
"share": "Dele",
"share_description": "Share Hoppscotch with your friends",
"stop": "Stop",
"title": "Be om",
"type": "Type forespørsel",
"url": "URL",
@@ -515,6 +459,7 @@
"account_name_description": "Dette er visningsnavnet ditt.",
"background": "Bakgrunn",
"black_mode": "Svart",
"change_font_size": "Endre skriftstørrelse",
"choose_language": "Velg språk",
"dark_mode": "Mørk",
"delete_account": "Delete account",
@@ -527,6 +472,10 @@
"extensions": "Utvidelser",
"extensions_use_toggle": "Bruk nettleserutvidelsen til å sende forespørsler (hvis de er tilstede)",
"follow": "Follow Us",
"font_size": "Skriftstørrelse",
"font_size_large": "Stor",
"font_size_medium": "Medium",
"font_size_small": "Liten",
"interceptor": "Interceptor",
"interceptor_description": "Mellomvare mellom applikasjon og API-er.",
"language": "Språk",
@@ -591,27 +540,19 @@
"settings": "Gå til Innstillinger-siden",
"title": "Navigasjon"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "Kopier forespørselskobling",
"delete_method": "Velg SLETT metoden",
"get_method": "Velg GET-metode",
"head_method": "Velg HEAD-metode",
"import_curl": "Import cURL",
"method": "Metode",
"next_method": "Velg Neste metode",
"post_method": "Velg POST-metode",
"previous_method": "Velg Forrige metode",
"put_method": "Velg PUT-metode",
"rename": "Rename Request",
"reset_request": "Tilbakestill forespørsel",
"save_request": "Save Request",
"save_to_collections": "Lagre i samlinger",
"send_request": "Send forespørsel",
"show_code": "Generate code snippet",
"title": "Be om"
},
"response": {
@@ -641,85 +582,6 @@
"log": "Logg",
"url": "URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "Hendelsestype",
"log": "Logg",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "Autorisasjon",
"body": "Kropp",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "Samlinger",
"documentation": "Dokumentasjon",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "Overskrifter",
"history": "Historie",

View File

@@ -5,7 +5,6 @@
"choose_file": "Wybierz plik",
"clear": "Wyczyść",
"clear_all": "Wyczyść wszystko",
"clear_history": "Clear all History",
"close": "Close",
"connect": "Połącz",
"connecting": "Connecting",
@@ -32,7 +31,6 @@
"paste": "Paste",
"prettify": "Popraw czytelność",
"remove": "Usuń",
"rename": "Rename",
"restore": "Przywróć",
"save": "Zapisz",
"scroll_to_bottom": "Scroll to bottom",
@@ -79,8 +77,6 @@
"search": "Szukaj",
"share": "Udostępnij",
"shortcuts": "Skróty",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "Reflektor",
"status": "Status",
"status_description": "Check the status of the website",
@@ -135,15 +131,12 @@
"renamed": "Zmieniono nazwę kolekcji",
"request_in_use": "Request in use",
"save_as": "Zapisz jako",
"save_to_collection": "Save to Collection",
"select": "Wybierz kolekcję",
"select_location": "Wybierz lokalizację",
"select_team": "Wybierz zespół",
"team_collections": "Kolekcje zespołowe"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "Are you sure you want to leave this team?",
"logout": "Czy na pewno chcesz się wylogować?",
"remove_collection": "Czy na pewno chcesz trwale usunąć tę kolekcję?",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "Czy na pewno chcesz zsynchronizować ten obszar roboczy?"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "Nagłówek {count}",
"message": "Wiadomość {count}",
@@ -204,31 +192,17 @@
"create_new": "Stwórz nowe środowisko",
"created": "Environment created",
"deleted": "Environment deletion",
"duplicated": "Environment duplicated",
"edit": "Edytuj środowisko",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "Podaj prawidłową nazwę środowiska",
"list": "Environment variables",
"my_environments": "My Environments",
"name": "Name",
"nested_overflow": "nested environment variables are limited to 10 levels",
"new": "Nowe środowisko",
"no_active_environment": "No active environment",
"no_environment": "Brak środowiska",
"no_environment_description": "No environments were selected. Choose what to do with the following variables.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "Wybierz środowisko",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Team Environments",
"title": "Środowiska",
"updated": "Environment updation",
"value": "Value",
"variable": "Variable",
"variable_list": "Lista zmiennych"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "Brak czasu trwania",
"no_results_found": "No matches found",
"page_not_found": "This page could not be found",
"proxy_error": "Proxy error",
"script_fail": "Nie można wykonać skryptu żądania wstępnego",
"something_went_wrong": "Coś poszło nie tak",
"test_script_fail": "Could not execute post-request script"
@@ -278,13 +251,9 @@
"renamed": "Zmieniono nazwę folderu"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "Mutacje",
"schema": "Schemat",
"subscriptions": "Subskrypcje",
"switch_connection": "Switch connection"
"subscriptions": "Subskrypcje"
},
"group": {
"time": "Time",
@@ -338,36 +307,13 @@
"json_description": "Import collections from a Hoppscotch Collections JSON file",
"title": "Import"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Collapse or Expand Collections",
"collapse_sidebar": "Collapse or Expand the sidebar",
"column": "Pionowy układ",
"name": "Layout",
"row": "Poziomy układ"
"row": "Poziomy układ",
"zen_mode": "Tryb Zen"
},
"modal": {
"close_unsaved_tab": "You have unsaved changes",
@@ -472,7 +418,6 @@
"payload": "Dane żądania",
"query": "Zapytanie",
"raw_body": "Surowa treść żądania",
"rename": "Rename Request",
"renamed": "Zmieniono nazwę żądania",
"run": "Uruchom",
"save": "Zapisz",
@@ -480,7 +425,6 @@
"saved": "Żądanie zostało zapisane",
"share": "Udostępnij",
"share_description": "Share Hoppscotch with your friends",
"stop": "Stop",
"title": "Żądanie",
"type": "Typ żądania",
"url": "URL",
@@ -515,6 +459,7 @@
"account_name_description": "To jest Twoja nazwa wyświetlana.",
"background": "Tło",
"black_mode": "Czarny",
"change_font_size": "Zmień rozmiar czczionki",
"choose_language": "Wybierz język",
"dark_mode": "Ciemny",
"delete_account": "Delete account",
@@ -527,6 +472,10 @@
"extensions": "Rozszerzenia",
"extensions_use_toggle": "Użyj rozszerzenia przeglądarki do wysyłania żądań (jeśli istnieje)",
"follow": "Follow Us",
"font_size": "Rozmiar czcionki",
"font_size_large": "Wielki",
"font_size_medium": "Średni",
"font_size_small": "Mały",
"interceptor": "Interceptor",
"interceptor_description": "Oprogramowanie pośredniczące między aplikacją a interfejsami API.",
"language": "Język",
@@ -591,27 +540,19 @@
"settings": "Przejdź do strony Ustawienia",
"title": "Nawigacja"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "Kopiuj łącze żądania",
"delete_method": "Wybierz metodę DELETE",
"get_method": "Wybierz metodę GET",
"head_method": "Wybierz metodę HEAD",
"import_curl": "Import cURL",
"method": "metoda",
"next_method": "Wybierz następną metodę",
"post_method": "Wybierz metodę POST",
"previous_method": "Wybierz poprzednią metodę",
"put_method": "Wybierz metodę PUT",
"rename": "Rename Request",
"reset_request": "Zresetuj żądanie",
"save_request": "Save Request",
"save_to_collections": "Zapisz w kolekcjach",
"send_request": "Wyślij żądanie",
"show_code": "Generate code snippet",
"title": "Żądania"
},
"response": {
@@ -641,85 +582,6 @@
"log": "Logi",
"url": "URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "Typ wydarzenia",
"log": "Logi",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "Autoryzacja",
"body": "Ciało",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "Kolekcje",
"documentation": "Dokumentacja",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "Nagłówki",
"history": "Historia",

View File

@@ -5,7 +5,6 @@
"choose_file": "Escolha um arquivo",
"clear": "Limpar",
"clear_all": "Limpar tudo",
"clear_history": "Clear all History",
"close": "Close",
"connect": "Conectar",
"connecting": "Connecting",
@@ -32,7 +31,6 @@
"paste": "Colar",
"prettify": "Embelezar",
"remove": "Remover",
"rename": "Rename",
"restore": "Restaurar",
"save": "Salvar",
"scroll_to_bottom": "Scroll to bottom",
@@ -79,8 +77,6 @@
"search": "Procurar",
"share": "Compartilhado",
"shortcuts": "Atalhos",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "Holofote",
"status": "Estado",
"status_description": "Cheque o estado do website.",
@@ -135,15 +131,12 @@
"renamed": "Coleção renomeada",
"request_in_use": "Requisição em uso",
"save_as": "Salvar como",
"save_to_collection": "Save to Collection",
"select": "Selecione uma coleção",
"select_location": "Selecione a localização",
"select_team": "Selecione uma equipe",
"team_collections": "Coleções da equipe"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "Tem certeza que deseja sair desta equipe?",
"logout": "Tem certeza que deseja sair?",
"remove_collection": "Tem certeza de que deseja excluir esta coleção permanentemente?",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "Tem certeza de que deseja sincronizar este espaço de trabalho?"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "Cabeçalho {count}",
"message": "Mensagem {count}",
@@ -204,31 +192,17 @@
"create_new": "Crie um novo ambiente",
"created": "Ambiente criado",
"deleted": "Deleção de ambiente",
"duplicated": "Environment duplicated",
"edit": "Editar Ambiente",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "Forneça um nome válido para o ambiente",
"list": "Environment variables",
"my_environments": "My Environments",
"name": "Name",
"nested_overflow": "Variáveis de ambiente aninhadas são limitadas a 10 níveis",
"new": "Novo ambiente",
"no_active_environment": "No active environment",
"no_environment": "Sem ambiente",
"no_environment_description": "Nenhum ambiente foi selecionado. Escolha o que fazer com as seguintes variáveis.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "Selecione o ambiente",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Team Environments",
"title": "Ambientes",
"updated": "Atualizacao de ambientes",
"value": "Value",
"variable": "Variable",
"variable_list": "Lista de Variáveis"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "Sem duração",
"no_results_found": "No matches found",
"page_not_found": "This page could not be found",
"proxy_error": "Proxy error",
"script_fail": "Não foi possível executar o script pré-requisição",
"something_went_wrong": "Algo deu errado",
"test_script_fail": "Não foi possível executar o script pós-requisição"
@@ -278,13 +251,9 @@
"renamed": "Pasta renomeada"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "Mutações",
"schema": "Esquema",
"subscriptions": "Assinaturas",
"switch_connection": "Switch connection"
"subscriptions": "Assinaturas"
},
"group": {
"time": "Time",
@@ -338,36 +307,13 @@
"json_description": "Importa coleções de um arquivo JSON de Coleções Hoppscotch",
"title": "Importar"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Encolher ou expandir coleções",
"collapse_sidebar": "Encolher ou Expandir a barra lateral",
"column": "Layout vertical",
"name": "Layout",
"row": "Layout horizontal"
"row": "Layout horizontal",
"zen_mode": "Modo zen"
},
"modal": {
"close_unsaved_tab": "You have unsaved changes",
@@ -472,7 +418,6 @@
"payload": "Payload",
"query": "Enviar",
"raw_body": "Corpo de Requisição Bruta",
"rename": "Rename Request",
"renamed": "Requisição renomeada",
"run": "Executar",
"save": "Salvar",
@@ -480,7 +425,6 @@
"saved": "Requisição salva",
"share": "Compartilhadar",
"share_description": "Compartilhe o Hoppscotch com seus amigos",
"stop": "Stop",
"title": "Solicitar",
"type": "Tipo de requisição",
"url": "URL",
@@ -515,6 +459,7 @@
"account_name_description": "Este é o seu nome de exibição.",
"background": "Fundo",
"black_mode": "Preto",
"change_font_size": "Mudar TAMANHO DA FONTE",
"choose_language": "Escolha o seu idioma",
"dark_mode": "Escuro",
"delete_account": "Delete account",
@@ -527,6 +472,10 @@
"extensions": "Extensões",
"extensions_use_toggle": "Use a extensão do navegador para enviar solicitações (se houver)",
"follow": "Nos siga",
"font_size": "Tamanho da fonte",
"font_size_large": "Grande",
"font_size_medium": "Médio",
"font_size_small": "Pequeno",
"interceptor": "Interceptor",
"interceptor_description": "Middleware entre aplicativo e APIs.",
"language": "Língua",
@@ -591,27 +540,19 @@
"settings": "Vá para a página de configurações",
"title": "Navegação"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "Copiar link de requisição",
"delete_method": "Selecione o método DELETE",
"get_method": "Selecione o método GET",
"head_method": "Selecione o método HEAD",
"import_curl": "Import cURL",
"method": "Método",
"next_method": "Selecione o próximo método",
"post_method": "Selecione o método POST",
"previous_method": "Selecione o método anterior",
"put_method": "Selecione o método PUT",
"rename": "Rename Request",
"reset_request": "Pedido de reinicialização",
"save_request": "Save Request",
"save_to_collections": "Salvar em coleções",
"send_request": "Enviar requisição",
"show_code": "Generate code snippet",
"title": "Solicitar"
},
"response": {
@@ -641,85 +582,6 @@
"log": "Registro",
"url": "URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "Tipo de evento",
"log": "Registro",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "Autorização",
"body": "Corpo",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "Coleções",
"documentation": "Documentação",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "Cabeçalhos",
"history": "História",

View File

@@ -5,7 +5,6 @@
"choose_file": "Escolha um arquivo",
"clear": "Claro",
"clear_all": "Limpar tudo",
"clear_history": "Clear all History",
"close": "Close",
"connect": "Conectar",
"connecting": "Connecting",
@@ -32,7 +31,6 @@
"paste": "Paste",
"prettify": "Embelezar",
"remove": "Remover",
"rename": "Rename",
"restore": "Restaurar",
"save": "Salvar",
"scroll_to_bottom": "Scroll to bottom",
@@ -79,8 +77,6 @@
"search": "Procurar",
"share": "Compartilhado",
"shortcuts": "Atalhos",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "Holofote",
"status": "Status",
"status_description": "Check the status of the website",
@@ -135,15 +131,12 @@
"renamed": "Coleção renomeada",
"request_in_use": "Request in use",
"save_as": "Salvar como",
"save_to_collection": "Save to Collection",
"select": "Selecione uma coleção",
"select_location": "Selecione a localização",
"select_team": "Selecione uma equipe",
"team_collections": "Coleções da equipe"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "Are you sure you want to leave this team?",
"logout": "Tem certeza que deseja sair?",
"remove_collection": "Tem certeza de que deseja excluir esta coleção permanentemente?",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "Tem certeza de que deseja sincronizar este espaço de trabalho?"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "Cabeçalho {count}",
"message": "Mensagem {count}",
@@ -204,31 +192,17 @@
"create_new": "Crie um novo ambiente",
"created": "Environment created",
"deleted": "Environment deletion",
"duplicated": "Environment duplicated",
"edit": "Editar Ambiente",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "Forneça um nome válido para o ambiente",
"list": "Environment variables",
"my_environments": "My Environments",
"name": "Name",
"nested_overflow": "nested environment variables are limited to 10 levels",
"new": "Novo ambiente",
"no_active_environment": "No active environment",
"no_environment": "Sem ambiente",
"no_environment_description": "No environments were selected. Choose what to do with the following variables.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "Selecione o ambiente",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Team Environments",
"title": "Ambientes",
"updated": "Environment updation",
"value": "Value",
"variable": "Variable",
"variable_list": "Lista de Variáveis"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "Sem duração",
"no_results_found": "No matches found",
"page_not_found": "This page could not be found",
"proxy_error": "Proxy error",
"script_fail": "Não foi possível executar o script de pré-solicitação",
"something_went_wrong": "Algo deu errado",
"test_script_fail": "Could not execute post-request script"
@@ -278,13 +251,9 @@
"renamed": "Pasta renomeada"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "Mutações",
"schema": "Esquema",
"subscriptions": "Assinaturas",
"switch_connection": "Switch connection"
"subscriptions": "Assinaturas"
},
"group": {
"time": "Time",
@@ -338,36 +307,13 @@
"json_description": "Import collections from a Hoppscotch Collections JSON file",
"title": "Importar"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Collapse or Expand Collections",
"collapse_sidebar": "Collapse or Expand the sidebar",
"column": "Vertical layout",
"name": "Layout",
"row": "Horizontal layout"
"row": "Horizontal layout",
"zen_mode": "Modo zen"
},
"modal": {
"close_unsaved_tab": "You have unsaved changes",
@@ -472,7 +418,6 @@
"payload": "Carga útil",
"query": "Consulta",
"raw_body": "Corpo de Solicitação Bruta",
"rename": "Rename Request",
"renamed": "Pedido renomeado",
"run": "Corre",
"save": "Salvar",
@@ -480,7 +425,6 @@
"saved": "Pedido salvo",
"share": "Compartilhado",
"share_description": "Share Hoppscotch with your friends",
"stop": "Stop",
"title": "Solicitar",
"type": "Tipo de solicitação",
"url": "URL",
@@ -515,6 +459,7 @@
"account_name_description": "Este é o seu nome de exibição.",
"background": "Fundo",
"black_mode": "Preto",
"change_font_size": "Mudar TAMANHO DA FONTE",
"choose_language": "Escolha o seu idioma",
"dark_mode": "Escuro",
"delete_account": "Delete account",
@@ -527,6 +472,10 @@
"extensions": "Extensões",
"extensions_use_toggle": "Use a extensão do navegador para enviar solicitações (se houver)",
"follow": "Follow Us",
"font_size": "Tamanho da fonte",
"font_size_large": "Grande",
"font_size_medium": "Médio",
"font_size_small": "Pequeno",
"interceptor": "Interceptor",
"interceptor_description": "Middleware entre aplicativo e APIs.",
"language": "Língua",
@@ -591,27 +540,19 @@
"settings": "Vá para a página de configurações",
"title": "Navegação"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "Copiar link de solicitação",
"delete_method": "Selecione o método DELETE",
"get_method": "Selecione o método GET",
"head_method": "Selecione o método HEAD",
"import_curl": "Import cURL",
"method": "Método",
"next_method": "Selecione o próximo método",
"post_method": "Selecione o método POST",
"previous_method": "Selecione o método anterior",
"put_method": "Selecione o método PUT",
"rename": "Rename Request",
"reset_request": "Pedido de reinicialização",
"save_request": "Save Request",
"save_to_collections": "Salvar em coleções",
"send_request": "Enviar pedido",
"show_code": "Generate code snippet",
"title": "Solicitar"
},
"response": {
@@ -641,85 +582,6 @@
"log": "Registro",
"url": "URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "Tipo de evento",
"log": "Registro",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "Autorização",
"body": "Corpo",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "Coleções",
"documentation": "Documentação",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "Cabeçalhos",
"history": "História",

View File

@@ -5,7 +5,6 @@
"choose_file": "Alegeți un fișier",
"clear": "Curăță",
"clear_all": "Curăță tot",
"clear_history": "Clear all History",
"close": "Închide",
"connect": "Conectare",
"connecting": "Connecting",
@@ -32,7 +31,6 @@
"paste": "Lipește",
"prettify": "Formatează",
"remove": "Elimină",
"rename": "Rename",
"restore": "Restabilește",
"save": "Salvează",
"scroll_to_bottom": "Derulare la sfârșit",
@@ -79,8 +77,6 @@
"search": "Căutare",
"share": "Distribuie",
"shortcuts": "Comenzi rapide",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "În centrul atenției",
"status": "Stare",
"status_description": "Verifică statusul paginii web",
@@ -135,15 +131,12 @@
"renamed": "Colecția redenumită",
"request_in_use": "Cerere în executare",
"save_as": "Salvează ca",
"save_to_collection": "Save to Collection",
"select": "Selectați o colecție",
"select_location": "Selectați locația",
"select_team": "Selectați o echipă",
"team_collections": "Colecții de echipă"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "Sigur doriți sa părăsiți echipa curentă?",
"logout": "Sigur doriți să vă deconectați?",
"remove_collection": "Sigur doriți să ștergeți definitiv această colecție?",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "Sigur doriți să sincronizați acest spațiu de lucru?"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "Antet {count}",
"message": "Număr de mesaje",
@@ -204,31 +192,17 @@
"create_new": "Creați un mediu nou",
"created": "Mediu creat",
"deleted": "Mediu șters",
"duplicated": "Environment duplicated",
"edit": "Editați mediul",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "Vă rugăm să furnizați un nume valid pentru mediu",
"list": "Environment variables",
"my_environments": "My Environments",
"name": "Name",
"nested_overflow": "Variabilele de mediu impricate sunt limitate la 10 nivele",
"new": "Mediu nou",
"no_active_environment": "No active environment",
"no_environment": "Fără mediu",
"no_environment_description": "Niciun mediu nu a fost selectat. Alegeți acțiuni pentru următoarele variabile.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "Selectați mediul",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Team Environments",
"title": "Medii",
"updated": "Mediu actualizat",
"value": "Value",
"variable": "Variable",
"variable_list": "Lista variabilelor"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "Fără durată",
"no_results_found": "Nu au fost găsite potriviri",
"page_not_found": "Pagina nu a putut fi găsită",
"proxy_error": "Proxy error",
"script_fail": "Nu s-a putut executa scriptul",
"something_went_wrong": "Ceva nu a mers bine",
"test_script_fail": "Nu s-a putut executa scriptul"
@@ -278,13 +251,9 @@
"renamed": "Dosar redenumit"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "Mutații",
"schema": "Schemă",
"subscriptions": "Abonamente",
"switch_connection": "Switch connection"
"subscriptions": "Abonamente"
},
"group": {
"time": "Time",
@@ -338,36 +307,13 @@
"json_description": "Importați colecții dintr-un fisier de collectii JSON Hoppscotch",
"title": "Import"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Ascunde sau expandează colecțiile",
"collapse_sidebar": "Ascunde sau expandează bara laterală",
"column": "Aspect vertical (coloană)",
"name": "Aspect",
"row": "Aspect orizontal (rând)"
"row": "Aspect orizontal (rând)",
"zen_mode": "Modul Zen"
},
"modal": {
"close_unsaved_tab": "You have unsaved changes",
@@ -472,7 +418,6 @@
"payload": "Încărcătură",
"query": "Interogare",
"raw_body": "Corpul cererii",
"rename": "Rename Request",
"renamed": "Cerere redenumită",
"run": "Execută",
"save": "Salvează",
@@ -480,7 +425,6 @@
"saved": "Cererea a fost salvată",
"share": "Distribuie",
"share_description": "Distribuie Hoppscotch către prietenii tăi",
"stop": "Stop",
"title": "Cerere",
"type": "Tip de cerere",
"url": "URL",
@@ -515,6 +459,7 @@
"account_name_description": "Acesta este numele dvs. afișat.",
"background": "Fundal",
"black_mode": "Negru",
"change_font_size": "Schimbă marimea fontului",
"choose_language": "Alege limba",
"dark_mode": "Întunecat",
"delete_account": "Delete account",
@@ -527,6 +472,10 @@
"extensions": "Extensii",
"extensions_use_toggle": "Utilizați extensia browserului pentru a trimite cereri (dacă există)",
"follow": "Urmărește-ne",
"font_size": "Mărimea fontului",
"font_size_large": "Mare",
"font_size_medium": "Mediu",
"font_size_small": "Mic",
"interceptor": "Interceptor",
"interceptor_description": "Middleware între aplicație și API-uri.",
"language": "Limbă",
@@ -591,27 +540,19 @@
"settings": "Accesați pagina Setări",
"title": "Navigare"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "Copiați legătura de solicitare",
"delete_method": "Selectați metoda DELETE",
"get_method": "Selectați metoda GET",
"head_method": "Selectați metoda HEAD",
"import_curl": "Import cURL",
"method": "Metodă",
"next_method": "Selectați metoda următoare",
"post_method": "Selectați metoda POST",
"previous_method": "Selectați metoda anterioară",
"put_method": "Selectați metoda PUT",
"rename": "Rename Request",
"reset_request": "Cerere de resetare",
"save_request": "Save Request",
"save_to_collections": "Salvați în colecții",
"send_request": "Trimite cerere",
"show_code": "Generate code snippet",
"title": "Cerere"
},
"response": {
@@ -641,85 +582,6 @@
"log": "Log",
"url": "URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "Tip de eveniment",
"log": "Log",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "Autorizare",
"body": "Corp",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "Colecții",
"documentation": "Documentație",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "Anteturi",
"history": "Istorie",

View File

@@ -1,50 +1,48 @@
{
"action": {
"autoscroll": "Автоскрол",
"autoscroll": "Autoscroll",
"cancel": "Отменить",
"choose_file": "Выберите файл",
"clear": "Очистить",
"clear_all": "Очистить все",
"clear_history": "Очистить всю историю",
"close": "Закрыть",
"close": "Close",
"connect": "Подключиться",
"connecting": "Соединение...",
"connecting": "Connecting",
"copy": "Скопировать",
"delete": "Удалить",
"disconnect": "Отключиться",
"dismiss": "Скрыть",
"dont_save": "Не сохранять",
"dont_save": "Don't save",
"download_file": "Скачать файл",
"drag_to_reorder": "Перетягивайте для сортировки",
"drag_to_reorder": "Drag to reorder",
"duplicate": "Дублировать",
"edit": "Редактировать",
"filter": "Фильтр",
"filter": "Filter",
"go_back": "Вернуться",
"go_forward": "Вперёд",
"group_by": "Сгруппировать по",
"go_forward": "Go forward",
"group_by": "Group by",
"label": "Название",
"learn_more": "Узнать больше",
"less": "Меньше",
"less": "Less",
"more": "Больше",
"new": "Создать новый",
"no": "Нет",
"open_workspace": "Открыть пространство",
"paste": "Вставить",
"open_workspace": "Open workspace",
"paste": "Paste",
"prettify": "Форматировать",
"remove": "Удалить",
"rename": "Переименовать",
"restore": "Восстановить",
"save": "Сохранить",
"scroll_to_bottom": "Вниз",
"scroll_to_top": "Вверх",
"scroll_to_bottom": "Scroll to bottom",
"scroll_to_top": "Scroll to top",
"search": "Поиск",
"send": "Отправить",
"start": "Начать",
"starting": "Запускаю",
"starting": "Starting",
"stop": "Стоп",
"to_close": "что бы закрыть",
"to_navigate": "для навигации",
"to_select": "выборать",
"to_close": "to close",
"to_navigate": "to navigate",
"to_select": "to select",
"turn_off": "Выключить",
"turn_on": "Включить",
"undo": "Отменить",
@@ -58,9 +56,9 @@
"chat_with_us": "Связаться с нами",
"contact_us": "Свяжитесь с нами",
"copy": "Копировать",
"copy_user_id": "Копировать токен пользователя",
"developer_option": "Настройки разработчика",
"developer_option_description": "Инструмент разработчика помогает обслуживить и развивить Hoppscotch",
"copy_user_id": "Copy User Auth Token",
"developer_option": "Developer options",
"developer_option_description": "Developer tools which helps in development and maintenance of Hoppscotch.",
"discord": "Discord",
"documentation": "Документация",
"github": "GitHub",
@@ -73,17 +71,15 @@
"keyboard_shortcuts": "Горячие клавиши",
"name": "Hoppscotch",
"new_version_found": "Найдена новая версия. Перезагрузите для обновления.",
"options": "Настройки",
"options": "Options",
"proxy_privacy_policy": "Политика конфиденциальности прокси",
"reload": "Перезагрузить",
"search": "Поиск",
"share": "Поделиться",
"shortcuts": "Ярлыки",
"social_description": "Подписывайся на наши соц. сети и оставайся всегда в курсе последних новостей, обновлений и релизов.",
"social_links": "Социальные сети",
"spotlight": "Прожектор",
"status": "Статус",
"status_description": "Проверить состояние сайта",
"status_description": "Check the status of the website",
"terms_and_privacy": "Условия и конфиденциальность",
"twitter": "Twitter",
"type_a_command_search": "Введите команду или выполните поиск…",
@@ -97,7 +93,7 @@
"continue_with_email": "Продолжить с электронной почтой",
"continue_with_github": "Продолжить с GitHub",
"continue_with_google": "Продолжить с Google",
"continue_with_microsoft": "Продолжить с Microsoft",
"continue_with_microsoft": "Continue with Microsoft",
"email": "Электронное письмо",
"logged_out": "Вышли из",
"login": "Авторизоваться",
@@ -122,28 +118,25 @@
},
"collection": {
"created": "Коллекция создана",
"different_parent": "Нельзя сортировать коллекцию с разной родительской коллекцией",
"different_parent": "Cannot reorder collection with different parent",
"edit": "Редактировать коллекцию",
"invalid_name": "Укажите допустимое название коллекции",
"invalid_root_move": "Коллекция уже в корне",
"moved": "Перемещено успешно",
"invalid_root_move": "Collection already in the root",
"moved": "Moved Successfully",
"my_collections": "Мои коллекции",
"name": "Новая коллекция",
"name_length_insufficient": "Имя коллекции должно иметь 3 или более символов",
"name_length_insufficient": "Collection name should be at least 3 characters long",
"new": "Создать коллекцию",
"order_changed": "Порядок коллекции обновлён",
"order_changed": "Collection Order Updated",
"renamed": "Коллекция переименована",
"request_in_use": "Запрос обрабатывается",
"save_as": "Сохранить как",
"save_to_collection": "Сохранить в коллекцию",
"select": "Выбрать коллекцию",
"select_location": "Выберите местоположение",
"select_team": "Выберите команду",
"team_collections": "Коллекции команд"
},
"confirm": {
"close_unsaved_tab": "Вы уверены что хотите закрыть эту вкладку?",
"close_unsaved_tabs": "ВЫ уверены что хотите закрыть все эти вкладки? Несохранённые данные {count} вкладок будут утеряны.",
"exit_team": "Вы точно хотите покинуть эту команду?",
"logout": "Вы действительно хотите выйти?",
"remove_collection": "Вы уверены, что хотите навсегда удалить эту коллекцию?",
@@ -153,15 +146,10 @@
"remove_request": "Вы уверены, что хотите навсегда удалить этот запрос?",
"remove_team": "Вы уверены, что хотите удалить эту команду?",
"remove_telemetry": "Вы действительно хотите отказаться от телеметрии?",
"request_change": "Вы уверены что хотите сбросить текущий запрос, все не сохранённые данные будт утеряны?",
"save_unsaved_tab": "Вы хотите сохранить изменения в этой вкладке?",
"request_change": "Are you sure you want to discard current request, unsaved changes will be lost.",
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "Вы уверены, что хотите синхронизировать это рабочее пространство?"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "Заголовок {count}",
"message": "Тело {count}",
@@ -192,102 +180,83 @@
"profile": "Войдите, чтобы просмотреть свой профиль",
"protocols": "Протоколы пустые",
"schema": "Подключиться к конечной точке GraphQL",
"shortcodes": "Нет коротких ссылок",
"subscription": "Нет подписок",
"shortcodes": "Shortcodes are empty",
"subscription": "Subscriptions are empty",
"team_name": "Название команды пусто",
"teams": "Команды пустые",
"tests": "Для этого запроса нет тестов"
},
"environment": {
"add_to_global": "Добавить в глобальное окружение",
"added": "Окружение добавлено",
"create_new": "Создать новое окружение",
"created": "Окружение создано",
"deleted": "Окружение удалено",
"duplicated": "Environment duplicated",
"edit": "Редактировать окружение",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "Укажите допустимое имя для окружения",
"list": "Environment variables",
"my_environments": "Мои окружения",
"name": "Name",
"nested_overflow": "максимальный уровень вложения переменных окружения - 10",
"add_to_global": "Add to Global",
"added": "Environment addition",
"create_new": "Создать новую среду",
"created": "Environment created",
"deleted": "Environment deletion",
"edit": "Редактировать среду",
"invalid_name": "Укажите допустимое имя для среды",
"my_environments": "My Environments",
"nested_overflow": "nested environment variables are limited to 10 levels",
"new": "Новая среда",
"no_active_environment": "No active environment",
"no_environment": "Нет окружения",
"no_environment_description": "Не выбрано окружение, выберите что делать с переменными.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"no_environment": "Нет окружающей среды",
"no_environment_description": "No environments were selected. Choose what to do with the following variables.",
"select": "Выберите среду",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Окружения команды",
"title": "Окружения",
"updated": "Окружение обновлено",
"value": "Value",
"variable": "Variable",
"team_environments": "Team Environments",
"title": "Среды",
"updated": "Environment updation",
"variable_list": "Список переменных"
},
"error": {
"browser_support_sse": "Похоже, в этом браузере нет поддержки событий, отправленных сервером.",
"check_console_details": "Подробности смотрите в журнале консоли.",
"curl_invalid_format": "cURL неправильно отформатирован",
"danger_zone": "Опасная зона",
"delete_account": "Вы являетесь владельцем этой команды:",
"delete_account_description": "Прежде чем удалить аккаунт вам необходимо либо назначить владельцом другого пользователя, либо удалить команды в которых вы являетесь владельцем.",
"danger_zone": "Danger zone",
"delete_account": "Your account is currently an owner in these teams:",
"delete_account_description": "You must either remove yourself, transfer ownership, or delete these teams before you can delete your account.",
"empty_req_name": "Пустое имя запроса",
"f12_details": "(F12 для подробностей)",
"gql_prettify_invalid_query": "Не удалось определить недопустимый запрос, устранить синтаксические ошибки запроса и повторить попытку.",
"incomplete_config_urls": "Не заполнены URL конфигурации",
"incorrect_email": "Не корректный Email",
"invalid_link": "Не корректная ссылка",
"incomplete_config_urls": "Incomplete configuration URLs",
"incorrect_email": "Incorrect email",
"invalid_link": "Invalid link",
"invalid_link_description": "Ссылка, по которой вы перешли, - недействительна, либо срок ее действия истек.",
"json_parsing_failed": "Не корректный JSON",
"json_parsing_failed": "Invalid JSON",
"json_prettify_invalid_body": "Не удалось определить недопустимое тело, устранить синтаксические ошибки json и повторить попытку.",
"network_error": "Похоже, возникла проблема с соединением. Попробуйте еще раз.",
"network_fail": "Не удалось отправить запрос",
"no_duration": "Без продолжительности",
"no_results_found": "Совпадения не найдены",
"page_not_found": "Эта страница не найдена",
"proxy_error": "Proxy error",
"no_results_found": "No matches found",
"page_not_found": "This page could not be found",
"script_fail": "Не удалось выполнить сценарий предварительного запроса",
"something_went_wrong": "Что-то пошло не так",
"test_script_fail": "Не удалось выполнить тестирование запроса"
"test_script_fail": "Could not execute post-request script"
},
"export": {
"as_json": "Экспорт как JSON",
"create_secret_gist": "Создать секретный Gist",
"gist_created": "Gist создан",
"require_github": "Войдите через GitHub, чтобы создать секретную суть",
"title": "Экспорт"
"title": "Export"
},
"filter": {
"all": "Все",
"none": "Не указано",
"starred": "Отмечено"
"all": "All",
"none": "None",
"starred": "Starred"
},
"folder": {
"created": "Папка создана",
"edit": "Редактировать папку",
"invalid_name": "Укажите имя для папки",
"name_length_insufficient": "Имя папки должно содержать 3 или более символов",
"name_length_insufficient": "Folder name should be at least 3 characters long",
"new": "Новая папка",
"renamed": "Папка переименована"
},
"graphql": {
"connection_switch_confirm": "Вы желаете соединиться с последним GraphQL сервером?",
"connection_switch_new_url": "Смена вкладки разорвёт текущее GraphQL соединение. Новый URL соединения будет",
"connection_switch_url": "Вы присоединились к GraphQL, URL соединения",
"mutations": "Мутации",
"schema": "Схема",
"subscriptions": "Подписки",
"switch_connection": "Изменить соединение"
"subscriptions": "Подписки"
},
"group": {
"time": "Время",
"time": "Time",
"url": "URL"
},
"header": {
@@ -304,11 +273,11 @@
"post_request_tests": "Сценарии тестирования написаны на JavaScript и запускаются после получения ответа.",
"pre_request_script": "Скрипты предварительного запроса написаны на JavaScript и запускаются перед отправкой запроса.",
"script_fail": "Похоже, в скрипте предварительного запроса есть сбой. Проверьте ошибку ниже и исправьте скрипт соответствующим образом.",
"test_script_fail": "Похоже, что скрипт тестирования содержит ошибку. Пожалуйста исправьте её и попробуйте снова",
"test_script_fail": "There seems to be an error with test script. Please fix the errors and run tests again",
"tests": "Напишите тестовый сценарий для автоматизации отладки."
},
"hide": {
"collection": "Свернуть панель соединения",
"collection": "Collapse Collection Panel",
"more": "Скрыть больше",
"preview": "Скрыть предварительный просмотр",
"sidebar": "Скрыть боковую панель"
@@ -318,84 +287,61 @@
"curl": "Импортировать cURL",
"failed": "Ошибка импорта",
"from_gist": "Импорт из Gist",
"from_gist_description": "Импортировать через Gist URL",
"from_insomnia": "Импортировать с Insomnia",
"from_insomnia_description": "Импортировать из коллекции Insomnia",
"from_json": "Импортировать из Hoppscotch",
"from_json_description": "Импортировать из файла коллекции Hoppscotch",
"from_gist_description": "Import from Gist URL",
"from_insomnia": "Import from Insomnia",
"from_insomnia_description": "Import from Insomnia collection",
"from_json": "Import from Hoppscotch",
"from_json_description": "Import from Hoppscotch collection file",
"from_my_collections": "Импортировать из моих коллекций",
"from_my_collections_description": "Импортировать коллекции из моего файла",
"from_openapi": "Импортировать из OpenAPI",
"from_openapi_description": "Импортировать из OpenAPI файла описания API (YML/JSON)",
"from_postman": "Импортировать из Postman",
"from_postman_description": "Импортировать из коллекции Postman",
"from_url": "Импортировать из URL",
"from_my_collections_description": "Import from My Collections file",
"from_openapi": "Import from OpenAPI",
"from_openapi_description": "Import from OpenAPI specification file (YML/JSON)",
"from_postman": "Import from Postman",
"from_postman_description": "Import from Postman collection",
"from_url": "Import from URL",
"gist_url": "Введите URL-адрес Gist",
"import_from_url_invalid_fetch": "Не удалить получить данные по этому URL",
"import_from_url_invalid_file_format": "Ошибка при импорте коллекций",
"import_from_url_invalid_type": "Неподдерживаемый тип. Поддерживаемые типы: 'hoppscotch', 'openapi', 'postman', 'insomnia'",
"import_from_url_success": "Коллекция импортирована",
"json_description": "Импортировать из коллекции Hoppscotch",
"import_from_url_invalid_fetch": "Couldn't get data from the url",
"import_from_url_invalid_file_format": "Error while importing collections",
"import_from_url_invalid_type": "Unsupported type. accepted values are 'hoppscotch', 'openapi', 'postman', 'insomnia'",
"import_from_url_success": "Collections Imported",
"json_description": "Import collections from a Hoppscotch Collections JSON file",
"title": "Импортировать"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Свернуть или развернуть коллекции",
"collapse_sidebar": "Свернуть или развернуть боковую панель",
"column": "Вертикальная развёртка",
"name": "Развёртка",
"row": "Горизонтальная развертка"
"collapse_collection": "Collapse or Expand Collections",
"collapse_sidebar": "Collapse or Expand the sidebar",
"column": "Вертикальное оформление",
"name": "Layout",
"row": "Горизонтальное оформление",
"zen_mode": "Спокойный режим"
},
"modal": {
"close_unsaved_tab": "У вас есть не сохранённые изменения",
"close_unsaved_tab": "You have unsaved changes",
"collections": "Коллекции",
"confirm": "Подтверждать",
"edit_request": "Изменить запрос",
"import_export": "Импорт Экспорт"
},
"mqtt": {
"already_subscribed": "Вы уже подписаны на этот топик",
"clean_session": "Очистить сессию",
"clear_input": "Очистить ввод",
"clear_input_on_send": "Очистить ввод перед отправкой",
"already_subscribed": "You are already subscribed to this topic.",
"clean_session": "Clean Session",
"clear_input": "Clear input",
"clear_input_on_send": "Clear input on send",
"client_id": "Client ID",
"color": "Выбрать цвет",
"color": "Pick a color",
"communication": "Коммуникация",
"connection_config": "Конфигурация соединения",
"connection_not_authorized": "Это соединение MQTT не использует какую-либо авторизацию.",
"invalid_topic": "Пожалуйста выберите topic для подписки",
"keep_alive": "Поддерживать соединение",
"connection_config": "Connection Config",
"connection_not_authorized": "This MQTT connection does not use any authentication.",
"invalid_topic": "Please provide a topic for the subscription",
"keep_alive": "Keep Alive",
"log": "Лог",
"lw_message": "Last-Will Message",
"lw_qos": "Last-Will QoS",
"lw_retain": "Last-Will Retain",
"lw_topic": "Last-Will Topic",
"message": "Сообщение",
"new": "Новая подписка",
"not_connected": "Пожалуйста, сначала запустите MQTT соединение.",
"new": "New Subscription",
"not_connected": "Please start a MQTT connection first.",
"publish": "Публиковать",
"qos": "QoS",
"ssl": "SSL",
@@ -409,7 +355,7 @@
"navigation": {
"doc": "Документы",
"graphql": "GraphQL",
"profile": "Профиль",
"profile": "Profile",
"realtime": "В реальном времени",
"rest": "REST",
"settings": "Настройки"
@@ -417,12 +363,12 @@
"preRequest": {
"javascript_code": "Код JavaScript",
"learn": "Читать документацию",
"script": "Предворительный скрипт запроса",
"snippets": "Готовый код"
"script": "Сценарий предварительного запроса",
"snippets": "Фрагменты"
},
"profile": {
"app_settings": "Настройки приложения",
"default_hopp_displayname": "Безымянный",
"default_hopp_displayname": "Unnamed User",
"editor": "Редактор",
"editor_description": "Редакторы могут добавлять, редактировать, а так же удалять запросы.",
"email_verification_mail": "На вашу электронную почту отправлено письмо для подтверждения. Перейдите по ссылке из письма, чтобы подтвердить свой электронный адрес.",
@@ -445,13 +391,13 @@
"choose_language": "Выберите язык",
"content_type": "Тип содержимого",
"content_type_titles": {
"others": "Другие",
"structured": "Структурированный",
"text": "Текст"
"others": "Others",
"structured": "Structured",
"text": "Text"
},
"copy_link": "Копировать ссылку",
"different_collection": "Нельзя изменять порядок запросов из разных коллекций",
"duplicated": "Запрос скопирован",
"different_collection": "Cannot reorder requests from different collections",
"duplicated": "Request duplicated",
"duration": "Продолжительность",
"enter_curl": "Введите cURL",
"generate_code": "Сгенерировать код",
@@ -459,38 +405,36 @@
"header_list": "Список заголовков",
"invalid_name": "Укажите имя для запроса",
"method": "Методика",
"moved": "Запрос перемещён",
"moved": "Request moved",
"name": "Имя запроса",
"new": "Новый запрос",
"order_changed": "Порядок запроса изменён",
"override": "Переопределить",
"override_help": "Установить <kbd>Content-Type</kbd> в Заголовках",
"overriden": "Переопределено",
"new": "New Request",
"order_changed": "Request Order Updated",
"override": "Override",
"override_help": "Set <kbd>Content-Type</kbd> in Headers",
"overriden": "Overridden",
"parameter_list": "Параметры запроса",
"parameters": "Параметры",
"path": "Путь",
"payload": "Полезная нагрузка",
"query": "Запрос",
"raw_body": "Необработанное тело запроса",
"rename": "Rename Request",
"renamed": "Запрос переименован",
"run": "Запустить",
"save": "Сохранить",
"save_as": "Сохранить как",
"saved": "Запрос сохранен",
"share": "Делиться",
"share_description": "Поделиться Hoppscotch с друзьями",
"stop": "Stop",
"share_description": "Share Hoppscotch with your friends",
"title": "Запрос",
"type": "Тип запроса",
"url": "URL",
"variables": "Переменные",
"view_my_links": "Посмотреть мои ссылки"
"view_my_links": "View my links"
},
"response": {
"audio": "Аудио",
"audio": "Audio",
"body": "Тело ответа",
"filter_response_body": "Отфильтровать ответ в формате JSON (используется синтаксис JSONPath)",
"filter_response_body": "Filter JSON response body (uses JSONPath syntax)",
"headers": "Заголовки",
"html": "HTML",
"image": "Изображение",
@@ -502,23 +446,24 @@
"status": "Статус",
"time": "Время",
"title": "Ответ",
"video": "Видео",
"video": "Video",
"waiting_for_connection": "Ожидание соединения",
"xml": "XML"
},
"settings": {
"accent_color": "Основной цвет",
"account": "Счет",
"account_deleted": "Ваш аккаунт был удалён",
"account_deleted": "Your account has been deleted",
"account_description": "Настройте параметры своей учетной записи.",
"account_email_description": "Ваш основной адрес электронной почты.",
"account_name_description": "Это ваше отображаемое имя.",
"background": "Задний фон",
"black_mode": "Темная тема",
"change_font_size": "Изменить размер шрифта",
"choose_language": "Выберите язык",
"dark_mode": "Темный",
"delete_account": "Удалить аккаунт",
"delete_account_description": "Удаление аккаунта нельзя отменить",
"delete_account": "Delete account",
"delete_account_description": "Once you delete your account, all your data will be permanently deleted. This action cannot be undone.",
"expand_navigation": "Раскрыть панель навигации",
"experiments": "Эксперименты",
"experiments_notice": "Это набор экспериментов, над которыми мы работаем, которые могут оказаться полезными, интересными, и тем, и другим, или ни тем, ни другим. Они не окончательные и могут быть нестабильными, поэтому, если произойдет что-то слишком странное, не паникуйте. Просто выключи эту чертову штуку. Шутки в сторону,",
@@ -527,6 +472,10 @@
"extensions": "Расширения",
"extensions_use_toggle": "Используйте расширение браузера для отправки запросов (если есть)",
"follow": "Follow Us",
"font_size": "Размер шрифта",
"font_size_large": "Большой",
"font_size_medium": "Середина",
"font_size_small": "Небольшой",
"interceptor": "Перехватчик",
"interceptor_description": "Промежуточное ПО между приложением и API.",
"language": "Язык",
@@ -541,8 +490,8 @@
"proxy_use_toggle": "Используйте промежуточное ПО прокси для отправки запросов",
"read_the": "Прочтите",
"reset_default": "Восстановление значений по умолчанию",
"short_codes": "Короткие ссылки",
"short_codes_description": "Короткие ссылки, созданные вами",
"short_codes": "Short codes",
"short_codes_description": "Short codes which were created by you.",
"sidebar_on_left": "Панель слева",
"sync": "Синхронизировать",
"sync_collections": "Коллекции",
@@ -556,16 +505,16 @@
"theme_description": "Настройте тему своего приложения.",
"use_experimental_url_bar": "Использовать экспериментальную строку URL с выделением среды",
"user": "Пользователь",
"verified_email": "Проверенный Email",
"verify_email": "Подтвердить Email"
"verified_email": "Verified email",
"verify_email": "Подтвердить почту"
},
"shortcodes": {
"actions": "Действия",
"created_on": "Создано",
"deleted": "Удалёна",
"method": "Метод",
"not_found": "Короткая ссылка не найдена",
"short_code": "Короткая ссылка",
"actions": "Actions",
"created_on": "Created on",
"deleted": "Shortcode deleted",
"method": "Method",
"not_found": "Shortcode not found",
"short_code": "Short code",
"url": "URL"
},
"shortcut": {
@@ -591,135 +540,48 @@
"settings": "Перейти на страницу настроек",
"title": "Навигация"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "Копировать ссылку на запрос",
"delete_method": "Выберите метод DELETE",
"get_method": "Выберите метод GET",
"head_method": "Выберите метод HEAD",
"import_curl": "Import cURL",
"method": "Методика",
"next_method": "Выберите следующий метод",
"post_method": "Выберите метод POST",
"previous_method": "Выбрать предыдущий метод",
"put_method": "Выберите метод PUT",
"rename": "Rename Request",
"reset_request": "Сбросить запрос",
"save_request": "Сохарнить запрос",
"save_to_collections": "Сохранить в коллекции",
"send_request": "Послать запрос",
"show_code": "Generate code snippet",
"title": "Запрос"
},
"response": {
"copy": "Копировать запрос в буфер обмена",
"download": "Скачать запрос как файл",
"title": "Запрос"
"copy": "Copy response to clipboard",
"download": "Download response as file",
"title": "Response"
},
"theme": {
"black": "Черный режим",
"dark": "Тёмный режим",
"light": "Светлый режим",
"system": "Определяется системой",
"title": "Тема"
"black": "Switch theme to black mode",
"dark": "Switch theme to dark mode",
"light": "Switch theme to light mode",
"system": "Switch theme to system mode",
"title": "Theme"
}
},
"show": {
"code": "Показать код",
"collection": "Развернуть панель коллекций",
"collection": "Expand Collection Panel",
"more": "Показать больше",
"sidebar": "Показать боковую панель"
},
"socketio": {
"communication": "Коммуникация",
"connection_not_authorized": "Это SocketIO соединение не использует какую-либо авторизацию.",
"connection_not_authorized": "This SocketIO connection does not use any authentication.",
"event_name": "Название события",
"events": "События",
"log": "Лог",
"url": "URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "Тип события",
"log": "Лог",
@@ -727,14 +589,14 @@
},
"state": {
"bulk_mode": "Множественное редактирование",
"bulk_mode_placeholder": "Каждый параметр должен начинаться с новой строки\nКлючи и значения разедляются двоеточием\nИспользуйте # для комментария",
"bulk_mode_placeholder": "Entries are separated by newline\nKeys and values are separated by :\nPrepend # to any row you want to add but keep disabled",
"cleared": "Очищено",
"connected": "Связаны",
"connected_to": "Подключено к {name}",
"connecting_to": "Подключение к {name} ...",
"connection_error": "Ошибка подключения",
"connection_failed": "Не удалось установить соединение",
"connection_lost": "Соединение утеряно",
"connection_error": "Failed to connect",
"connection_failed": "Connection failed",
"connection_lost": "Connection lost",
"copied_to_clipboard": "Скопировано в буфер обмена",
"deleted": "Удалено",
"deprecated": "УСТАРЕЛО",
@@ -749,17 +611,17 @@
"history_deleted": "История удалена",
"linewrap": "Обернуть линии",
"loading": "Загрузка...",
"message_received": "Сообщение: {message} получено по топику: {topic}",
"mqtt_subscription_failed": "Что-то пошло не так, при попытке подписаться на топик: {topic}",
"message_received": "Message: {message} arrived on topic: {topic}",
"mqtt_subscription_failed": "Something went wrong while subscribing to topic: {topic}",
"none": "Никто",
"nothing_found": "Ничего не найдено для",
"published_error": "Что-то пошло не так при попытке опубликовать сообщение в топик {topic}: {message}",
"published_message": "Опубликовано сообщение: {message} в топик: {topic}",
"reconnection_error": "Не удалось переподключиться",
"subscribed_failed": "Не удалось подписаться на топик: {topic}",
"subscribed_success": "Успешно подписался на топик: {topic}",
"unsubscribed_failed": "Не удалось отписаться от топика: {topic}",
"unsubscribed_success": "Успешно отписался от топика: {topic}",
"published_error": "Something went wrong while publishing msg: {topic} to topic: {message}",
"published_message": "Published message: {message} to topic: {topic}",
"reconnection_error": "Failed to reconnect",
"subscribed_failed": "Failed to subscribe to topic: {topic}",
"subscribed_success": "Successfully subscribed to topic: {topic}",
"unsubscribed_failed": "Failed to unsubscribe from topic: {topic}",
"unsubscribed_success": "Successfully unsubscribed from topic: {topic}",
"waiting_send_request": "Ожидание отправки запроса"
},
"support": {
@@ -768,7 +630,7 @@
"community": "Задавайте вопросы и помогайте другим",
"documentation": "Узнать больше о Hoppscotch",
"forum": "Задавайте вопросы и получайте ответы",
"github": "Подпишитесь на нас на Github",
"github": "Follow us on Github",
"shortcuts": "Просматривайте приложение быстрее",
"team": "Свяжитесь с командой",
"title": "Служба поддержки",
@@ -777,20 +639,17 @@
"tab": {
"authorization": "Авторизация",
"body": "Тело",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "Коллекции",
"documentation": "Документация",
"duplicate": "Duplicate Tab",
"environments": "Окружения",
"environments": "Environments",
"headers": "Заголовки",
"history": "История",
"mqtt": "MQTT",
"parameters": "Параметры",
"pre_request_script": "Пред-скрипт",
"pre_request_script": "Скрипт предварительного запроса",
"queries": "Запросы",
"query": "Запрос",
"schema": "Схема",
"schema": "Schema",
"socketio": "Socket.IO",
"sse": "SSE",
"tests": "Тесты",
@@ -807,7 +666,7 @@
"email_do_not_match": "Электронная почта, которой Вы воспользовались не соответсвует указанной в данных Вашей учетной записи.",
"exit": "Выйти из команды",
"exit_disabled": "Только владелец не может выйти из команды",
"invalid_coll_id": "Не верный идентификатор коллекции",
"invalid_coll_id": "Invalid collection ID",
"invalid_email_format": "Формат электронной почты недействителен",
"invalid_id": "Некорректный ID команды. Свяжитесь с руководителем команды.",
"invalid_invite_link": "Ссылка недействительна",
@@ -831,7 +690,7 @@
"member_removed": "Пользователь удален",
"member_role_updated": "Роли пользователей обновлены",
"members": "Участники",
"more_members": "+{count}",
"more_members": "+{count} more",
"name_length_insufficient": "Название команды должно быть не менее 6 символов.",
"name_updated": "Название команды обновлено",
"new": "Новая команда",
@@ -839,13 +698,13 @@
"new_name": "Моя новая команда",
"no_access": "У вас нет прав на редактирование этих коллекций",
"no_invite_found": "Такое приглашение мы не смогли найти. Свяжитесь с руководителем команды.",
"no_request_found": "Запрос не найден",
"not_found": "Команда не найдена, свяжитесь с владельцем команды",
"no_request_found": "Request not found.",
"not_found": "Team not found. Contact your team owner.",
"not_valid_viewer": "У Вас нет прав просматривать это. Свяжитесь с руководителем команды.",
"parent_coll_move": "Не удалось переместить коллекцию в дочернюю",
"parent_coll_move": "Cannot move collection to a child collection",
"pending_invites": "Ожидающие приглашения",
"permissions": "Разрешения",
"same_target_destination": "Таже цель и конечная точка",
"same_target_destination": "Same target and destination",
"saved": "Команда сохранена",
"select_a_team": "Выбрать команду",
"title": "Команды",
@@ -853,9 +712,9 @@
"we_sent_invite_link_description": "Попросите тех, кого Вы пригласили, проверить их почтовые ящики. Им нужно перейди по ссылке, чтобы подтвердить вступление в эту команду."
},
"team_environment": {
"deleted": "Окружение удалено",
"duplicate": "Окружение скопировано",
"not_found": "Окружение не найдено"
"deleted": "Environment Deleted",
"duplicate": "Environment Duplicated",
"not_found": "Environment not found."
},
"test": {
"failed": "Тест не пройден",
@@ -875,9 +734,9 @@
"url": "URL"
},
"workspace": {
"change": "Изменить пространство",
"personal": "Моё пространство",
"team": "Пространство команды",
"title": "Рабочие пространства"
"change": "Change workspace",
"personal": "My Workspace",
"team": "Team Workspace",
"title": "Workspaces"
}
}

View File

@@ -5,7 +5,6 @@
"choose_file": "Одаберите датотеку",
"clear": "Јасно",
"clear_all": "Избриши све",
"clear_history": "Clear all History",
"close": "Close",
"connect": "Цоннецт",
"connecting": "Connecting",
@@ -32,7 +31,6 @@
"paste": "Paste",
"prettify": "Преттифи",
"remove": "Уклони",
"rename": "Rename",
"restore": "Ресторе",
"save": "сачувати",
"scroll_to_bottom": "Scroll to bottom",
@@ -79,8 +77,6 @@
"search": "Претрага",
"share": "Објави",
"shortcuts": "Пречице",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "Под лупом",
"status": "Статус",
"status_description": "Check the status of the website",
@@ -135,15 +131,12 @@
"renamed": "Збирка је преименована",
"request_in_use": "Request in use",
"save_as": "Сачувај као",
"save_to_collection": "Save to Collection",
"select": "Изаберите колекцију",
"select_location": "Изаберите локацију",
"select_team": "Изаберите тим",
"team_collections": "Збирке тима"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "Are you sure you want to leave this team?",
"logout": "Јесте ли сигурни да се желите одјавити?",
"remove_collection": "Јесте ли сигурни да желите трајно да избришете ову колекцију?",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "Јесте ли сигурни да желите да синхронизујете овај радни простор?"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "Заглавље {count}",
"message": "Порука {count}",
@@ -204,31 +192,17 @@
"create_new": "Креирајте ново окружење",
"created": "Environment created",
"deleted": "Environment deletion",
"duplicated": "Environment duplicated",
"edit": "Едит Енвиронмент",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "Наведите важећи назив за окружење",
"list": "Environment variables",
"my_environments": "My Environments",
"name": "Name",
"nested_overflow": "nested environment variables are limited to 10 levels",
"new": "Ново окружење",
"no_active_environment": "No active environment",
"no_environment": "Нема окружења",
"no_environment_description": "No environments were selected. Choose what to do with the following variables.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "Изаберите окружење",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Team Environments",
"title": "Енвиронментс",
"updated": "Environment updation",
"value": "Value",
"variable": "Variable",
"variable_list": "Листа променљивих"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "Нема трајања",
"no_results_found": "No matches found",
"page_not_found": "This page could not be found",
"proxy_error": "Proxy error",
"script_fail": "Није могуће извршити скрипту пре захтева",
"something_went_wrong": "Нешто није у реду",
"test_script_fail": "Could not execute post-request script"
@@ -278,13 +251,9 @@
"renamed": "Фасцикла је преименована"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "Мутације",
"schema": "Схема",
"subscriptions": "Претплате",
"switch_connection": "Switch connection"
"subscriptions": "Претплате"
},
"group": {
"time": "Time",
@@ -338,36 +307,13 @@
"json_description": "Import collections from a Hoppscotch Collections JSON file",
"title": "Увоз"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Collapse or Expand Collections",
"collapse_sidebar": "Collapse or Expand the sidebar",
"column": "Vertical layout",
"name": "Layout",
"row": "Horizontal layout"
"row": "Horizontal layout",
"zen_mode": "Зен режим"
},
"modal": {
"close_unsaved_tab": "You have unsaved changes",
@@ -472,7 +418,6 @@
"payload": "Корисни терет",
"query": "Упит",
"raw_body": "Сирово тело захтева",
"rename": "Rename Request",
"renamed": "Захтев је преименован",
"run": "Трцати",
"save": "сачувати",
@@ -480,7 +425,6 @@
"saved": "Захтев је сачуван",
"share": "Објави",
"share_description": "Share Hoppscotch with your friends",
"stop": "Stop",
"title": "Захтев",
"type": "Врста Захтева",
"url": "УРЛ",
@@ -515,6 +459,7 @@
"account_name_description": "Ово је ваше име за приказ.",
"background": "Позадина",
"black_mode": "Црн",
"change_font_size": "Промените величину фонта",
"choose_language": "Изабери језик",
"dark_mode": "Дарк",
"delete_account": "Delete account",
@@ -527,6 +472,10 @@
"extensions": "Ектенсионс",
"extensions_use_toggle": "Користите проширење прегледача за слање захтева (ако постоје)",
"follow": "Follow Us",
"font_size": "Величина фонта",
"font_size_large": "Велики",
"font_size_medium": "Средње",
"font_size_small": "Мала",
"interceptor": "Пресретач",
"interceptor_description": "Средњи софтвер између апликација и АПИ -ја.",
"language": "Језик",
@@ -591,27 +540,19 @@
"settings": "Идите на страницу Подешавања",
"title": "Навигација"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "Копирајте везу захтева",
"delete_method": "Изаберите ДЕЛЕТЕ метход",
"get_method": "Изаберите метод ГЕТ",
"head_method": "Изаберите метод ХЕАД",
"import_curl": "Import cURL",
"method": "Метод",
"next_method": "Изаберите Следећи метод",
"post_method": "Изаберите ПОСТ метод",
"previous_method": "Изаберите Претходни метод",
"put_method": "Изаберите ПУТ метод",
"rename": "Rename Request",
"reset_request": "Ресет Рекуест",
"save_request": "Save Request",
"save_to_collections": "Сачувај у збирке",
"send_request": "Пошаљите упит",
"show_code": "Generate code snippet",
"title": "Захтев"
},
"response": {
@@ -641,85 +582,6 @@
"log": "Пријава",
"url": "УРЛ"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "Тип догађаја",
"log": "Пријава",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "Овлашћење",
"body": "Боди",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "Збирке",
"documentation": "Документација",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "Заглавља",
"history": "Историја",

View File

@@ -5,7 +5,6 @@
"choose_file": "Välj en fil",
"clear": "Klar",
"clear_all": "Rensa alla",
"clear_history": "Clear all History",
"close": "Close",
"connect": "Ansluta",
"connecting": "Connecting",
@@ -32,7 +31,6 @@
"paste": "Paste",
"prettify": "Försköna",
"remove": "Avlägsna",
"rename": "Rename",
"restore": "Återställ",
"save": "Spara",
"scroll_to_bottom": "Scroll to bottom",
@@ -79,8 +77,6 @@
"search": "Sök",
"share": "Dela med sig",
"shortcuts": "Genvägar",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "Strålkastare",
"status": "Status",
"status_description": "Check the status of the website",
@@ -135,15 +131,12 @@
"renamed": "Samling bytt namn",
"request_in_use": "Request in use",
"save_as": "Spara som",
"save_to_collection": "Save to Collection",
"select": "Välj en samling",
"select_location": "Välj plats",
"select_team": "Välj ett lag",
"team_collections": "Lagsamlingar"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "Are you sure you want to leave this team?",
"logout": "Är du säker på att du vill logga ut?",
"remove_collection": "Är du säker på att du vill radera denna samling permanent?",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "Är du säker på att du vill synkronisera den här arbetsytan?"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "Rubrik {count}",
"message": "Meddelande {count}",
@@ -204,31 +192,17 @@
"create_new": "Skapa ny miljö",
"created": "Environment created",
"deleted": "Environment deletion",
"duplicated": "Environment duplicated",
"edit": "Redigera miljö",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "Ange ett giltigt namn på miljön",
"list": "Environment variables",
"my_environments": "My Environments",
"name": "Name",
"nested_overflow": "nested environment variables are limited to 10 levels",
"new": "Ny miljö",
"no_active_environment": "No active environment",
"no_environment": "Ingen miljö",
"no_environment_description": "No environments were selected. Choose what to do with the following variables.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "Välj miljö",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Team Environments",
"title": "Miljöer",
"updated": "Environment updation",
"value": "Value",
"variable": "Variable",
"variable_list": "Variabel lista"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "Ingen varaktighet",
"no_results_found": "No matches found",
"page_not_found": "This page could not be found",
"proxy_error": "Proxy error",
"script_fail": "Det gick inte att köra skriptet för förhandsbegäran",
"something_went_wrong": "Något gick fel",
"test_script_fail": "Could not execute post-request script"
@@ -278,13 +251,9 @@
"renamed": "Mappen har bytt namn"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "Mutationer",
"schema": "Schema",
"subscriptions": "Prenumerationer",
"switch_connection": "Switch connection"
"subscriptions": "Prenumerationer"
},
"group": {
"time": "Time",
@@ -338,36 +307,13 @@
"json_description": "Import collections from a Hoppscotch Collections JSON file",
"title": "Importera"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Collapse or Expand Collections",
"collapse_sidebar": "Collapse or Expand the sidebar",
"column": "Vertical layout",
"name": "Layout",
"row": "Horizontal layout"
"row": "Horizontal layout",
"zen_mode": "Zen -läge"
},
"modal": {
"close_unsaved_tab": "You have unsaved changes",
@@ -472,7 +418,6 @@
"payload": "Nyttolast",
"query": "Fråga",
"raw_body": "Raw Request Body",
"rename": "Rename Request",
"renamed": "Begäran bytt namn",
"run": "Springa",
"save": "Spara",
@@ -480,7 +425,6 @@
"saved": "Begäran sparad",
"share": "Dela med sig",
"share_description": "Share Hoppscotch with your friends",
"stop": "Stop",
"title": "Begäran",
"type": "Typ av förfrågan",
"url": "URL",
@@ -515,6 +459,7 @@
"account_name_description": "Detta är ditt visningsnamn.",
"background": "Bakgrund",
"black_mode": "Svart",
"change_font_size": "Ändra typsnittsstorlek",
"choose_language": "Välj språk",
"dark_mode": "Mörk",
"delete_account": "Delete account",
@@ -527,6 +472,10 @@
"extensions": "Tillägg",
"extensions_use_toggle": "Använd webbläsartillägget för att skicka förfrågningar (om sådana finns)",
"follow": "Follow Us",
"font_size": "Textstorlek",
"font_size_large": "Stor",
"font_size_medium": "Medium",
"font_size_small": "Små",
"interceptor": "Jaktplan",
"interceptor_description": "Mellanprogram mellan applikation och API: er.",
"language": "Språk",
@@ -591,27 +540,19 @@
"settings": "Gå till sidan Inställningar",
"title": "Navigering"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "Kopiera begäran länk",
"delete_method": "Välj DELETE method",
"get_method": "Välj GET -metod",
"head_method": "Välj HEAD -metod",
"import_curl": "Import cURL",
"method": "Metod",
"next_method": "Välj Nästa metod",
"post_method": "Välj POST -metod",
"previous_method": "Välj föregående metod",
"put_method": "Välj PUT -metod",
"rename": "Rename Request",
"reset_request": "Återställ begäran",
"save_request": "Save Request",
"save_to_collections": "Spara i samlingar",
"send_request": "Skicka förfrågan",
"show_code": "Generate code snippet",
"title": "Begäran"
},
"response": {
@@ -641,85 +582,6 @@
"log": "Logga",
"url": "URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "Event typ",
"log": "Logga",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "Tillstånd",
"body": "Kropp",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "Samlingar",
"documentation": "Dokumentation",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "Rubriker",
"history": "Historia",

View File

@@ -5,7 +5,6 @@
"choose_file": "Bir dosya seçin",
"clear": "Temizle",
"clear_all": "Hepsini temizle",
"clear_history": "Clear all History",
"close": "Close",
"connect": "Bağlan",
"connecting": "Connecting",
@@ -32,7 +31,6 @@
"paste": "Paste",
"prettify": "Güzelleştir",
"remove": "Kaldır",
"rename": "Rename",
"restore": "Onar",
"save": "Kaydet",
"scroll_to_bottom": "Scroll to bottom",
@@ -79,8 +77,6 @@
"search": "Arama",
"share": "Paylaş",
"shortcuts": "Kısayollar",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "Spot ışığı",
"status": "Durum",
"status_description": "Check the status of the website",
@@ -135,15 +131,12 @@
"renamed": "Koleksiyon yeniden adlandırıldı",
"request_in_use": "Kullanımda istek",
"save_as": "Farklı kaydet",
"save_to_collection": "Save to Collection",
"select": "Bir koleksiyon Seçin",
"select_location": "Konum seçin",
"select_team": "Bir takım seçin",
"team_collections": "Takım koleksiyonları"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "Bu takımdan ayrılmak istediğine emin misiniz?",
"logout": "Oturumu kapatmak istediğinizden emin misiniz?",
"remove_collection": "Bu koleksiyonu kalıcı olarak silmek istediğinizden emin misiniz?",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "Bu sekmede yapılan değişiklikleri kaydetmek istiyor musunuz?",
"sync": "Bu çalışma alanını senkronize etmek istediğinizden emin misiniz?"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "Başlık {count}",
"message": "Mesaj {count}",
@@ -204,31 +192,17 @@
"create_new": "Yeni ortam oluştur",
"created": "Ortam oluşturuldu",
"deleted": "Ortam silindi",
"duplicated": "Environment duplicated",
"edit": "Ortamı düzenle",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "Lütfen ortam için geçerli bir ad girin",
"list": "Environment variables",
"my_environments": "My Environments",
"name": "Name",
"nested_overflow": "İç içe ortam değişkenleri 10 düzeyle sınırlıdır",
"new": "Yeni ortam",
"no_active_environment": "No active environment",
"no_environment": "Ortam yok",
"no_environment_description": "Hiçbir ortam seçilmedi. Aşağıdaki değişkenlerle ne yapacağınızı seçin.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "Ortam seçin",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Team Environments",
"title": "Ortamlar",
"updated": "Ortam güncellendi",
"value": "Value",
"variable": "Variable",
"variable_list": "Değişken listesi"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "Süre yok",
"no_results_found": "No matches found",
"page_not_found": "This page could not be found",
"proxy_error": "Proxy error",
"script_fail": "Ön istek komut dosyası çalıştırılamadı",
"something_went_wrong": "Bir şeyler yanlış gitti",
"test_script_fail": "Could not execute post-request script"
@@ -278,13 +251,9 @@
"renamed": "Klasör yeniden adlandırıldı"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "Mutasyonlar",
"schema": "Şema",
"subscriptions": "Abonelikler",
"switch_connection": "Switch connection"
"subscriptions": "Abonelikler"
},
"group": {
"time": "Time",
@@ -338,36 +307,13 @@
"json_description": "Import collections from a Hoppscotch Collections JSON file",
"title": "İçe aktar"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Collapse or Expand Collections",
"collapse_sidebar": "Collapse or Expand the sidebar",
"column": "Dikey görünüm",
"name": "Layout",
"row": "Yatay görünüm"
"row": "Yatay görünüm",
"zen_mode": "Zen modu"
},
"modal": {
"close_unsaved_tab": "You have unsaved changes",
@@ -472,7 +418,6 @@
"payload": "Yük",
"query": "Sorgu",
"raw_body": "Ham istek gövdesi",
"rename": "Rename Request",
"renamed": "Yeniden adlandırılmış istek",
"run": "Çalıştır",
"save": "Kaydet",
@@ -480,7 +425,6 @@
"saved": "İstek kaydedildi",
"share": "Paylaş",
"share_description": "Share Hoppscotch with your friends",
"stop": "Stop",
"title": "İstek",
"type": "İstek türü",
"url": "URL",
@@ -515,6 +459,7 @@
"account_name_description": "Bu sizin görünen adınız.",
"background": "Arka fon",
"black_mode": "Siyah",
"change_font_size": "Yazı tipi boyutunu değiştir",
"choose_language": "Dil seçiniz",
"dark_mode": "Karanlık",
"delete_account": "Delete account",
@@ -527,6 +472,10 @@
"extensions": "Uzantılar",
"extensions_use_toggle": "İstek göndermek için tarayıcı uzantısını kullanın (varsa)",
"follow": "Follow Us",
"font_size": "Yazı boyutu",
"font_size_large": "Büyük",
"font_size_medium": "Orta",
"font_size_small": "Küçük",
"interceptor": "Önleyici",
"interceptor_description": "Uygulama ve API'ler arasındaki ara katman yazılımı.",
"language": "Dil",
@@ -591,27 +540,19 @@
"settings": "Ayarlar sayfasına git",
"title": "Navigasyon"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "İstek bağlantısını kopyala",
"delete_method": "DELETE yöntemini seçin",
"get_method": "GET yöntemini seçin",
"head_method": "HEAD yöntemini seçin",
"import_curl": "Import cURL",
"method": "Yöntem",
"next_method": "Sonraki yöntemi seçin",
"post_method": "POST yöntemini seçin",
"previous_method": "Önceki yöntemi seçin",
"put_method": "PUT yöntemini seçin",
"rename": "Rename Request",
"reset_request": "İsteği sıfırla",
"save_request": "Save Request",
"save_to_collections": "Koleksiyonlara kaydet",
"send_request": "İstek gönder",
"show_code": "Generate code snippet",
"title": "İstek"
},
"response": {
@@ -641,85 +582,6 @@
"log": "Kayıt",
"url": "Bağlantı"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "Etkinlik tipi",
"log": "Kayıt",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "Yetki",
"body": "Gövde",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "Koleksiyonlar",
"documentation": "Belgeler",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "Başlıklar",
"history": "Geçmiş",

View File

@@ -5,7 +5,6 @@
"choose_file": "選擇一個檔案",
"clear": "清除",
"clear_all": "全部清除",
"clear_history": "Clear all History",
"close": "關閉",
"connect": "連線",
"connecting": "正在連接",
@@ -32,7 +31,6 @@
"paste": "貼上",
"prettify": "美化",
"remove": "移除",
"rename": "Rename",
"restore": "還原",
"save": "儲存",
"scroll_to_bottom": "捲動至底部",
@@ -79,8 +77,6 @@
"search": "搜尋",
"share": "分享",
"shortcuts": "快捷方式",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "聚光燈",
"status": "狀態",
"status_description": "檢查網站狀態",
@@ -135,15 +131,12 @@
"renamed": "集合已重新命名",
"request_in_use": "請求正在使用中",
"save_as": "另存為",
"save_to_collection": "Save to Collection",
"select": "選擇一個集合",
"select_location": "選擇位置",
"select_team": "選擇一個團隊",
"team_collections": "團隊集合"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "您確定要離開此團隊嗎?",
"logout": "您確定要登出嗎?",
"remove_collection": "您確定要永久刪除該集合嗎?",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "您要儲存在此分頁做出的改動嗎?",
"sync": "您想從雲端恢復您的工作區嗎?這將丟棄您的本地進度。"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "請求標頭 {count}",
"message": "訊息 {count}",
@@ -204,31 +192,17 @@
"create_new": "建立新環境",
"created": "已建立環境",
"deleted": "刪除環境",
"duplicated": "Environment duplicated",
"edit": "編輯環境",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "請提供有效的環境名稱",
"list": "Environment variables",
"my_environments": "我的環境",
"name": "Name",
"nested_overflow": "巢狀環境變數不得大於 10 層",
"new": "建立環境",
"no_active_environment": "No active environment",
"no_environment": "無環境",
"no_environment_description": "未選取任何環境。請選擇要對以下變數進行的動作。",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "選擇環境",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "團隊環境",
"title": "環境",
"updated": "更新環境",
"value": "Value",
"variable": "Variable",
"variable_list": "變數列表"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "無持續時間",
"no_results_found": "找不到結果",
"page_not_found": "找不到此頁面",
"proxy_error": "Proxy error",
"script_fail": "無法執行預請求指令碼",
"something_went_wrong": "發生了一些錯誤",
"test_script_fail": "無法執行測試指令碼"
@@ -278,13 +251,9 @@
"renamed": "資料夾已重新命名"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "變體",
"schema": "綱要",
"subscriptions": "訂閱",
"switch_connection": "Switch connection"
"subscriptions": "訂閱"
},
"group": {
"time": "時間",
@@ -338,36 +307,13 @@
"json_description": "從 Hoppscotch 集合 JSON 檔匯入集合",
"title": "匯入"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "隱藏或顯示集合",
"collapse_sidebar": "隱藏或顯示側邊欄",
"column": "垂直版面",
"name": "配置",
"row": "水平版面"
"row": "水平版面",
"zen_mode": "專注模式"
},
"modal": {
"close_unsaved_tab": "您有未儲存的改動",
@@ -472,7 +418,6 @@
"payload": "負載",
"query": "查詢",
"raw_body": "原始請求本體",
"rename": "Rename Request",
"renamed": "請求已重新命名",
"run": "執行",
"save": "儲存",
@@ -480,7 +425,6 @@
"saved": "請求已儲存",
"share": "分享",
"share_description": "與您的朋友分享 Hoppscotch",
"stop": "Stop",
"title": "請求",
"type": "請求類型",
"url": "網址",
@@ -515,6 +459,7 @@
"account_name_description": "這是您的顯示名稱。",
"background": "背景",
"black_mode": "黑色",
"change_font_size": "更改字型大小",
"choose_language": "選擇語言",
"dark_mode": "暗色",
"delete_account": "刪除帳號",
@@ -527,6 +472,10 @@
"extensions": "擴充套件",
"extensions_use_toggle": "使用瀏覽器擴充套件傳送請求(如果存在)",
"follow": "關注我們",
"font_size": "字型大小",
"font_size_large": "大",
"font_size_medium": "中",
"font_size_small": "小",
"interceptor": "攔截器",
"interceptor_description": "應用程式和 API 之間的中介軟體。",
"language": "語言",
@@ -591,27 +540,19 @@
"settings": "前往設定頁面",
"title": "導航"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "複製請求連結",
"delete_method": "選擇 DELETE 方法",
"get_method": "選擇 GET 方法",
"head_method": "選擇 HEAD 方法",
"import_curl": "Import cURL",
"method": "方法",
"next_method": "選擇下一個方法",
"post_method": "選擇 POST 方法",
"previous_method": "選擇上一個方法",
"put_method": "選擇 PUT 方法",
"rename": "Rename Request",
"reset_request": "重置請求",
"save_request": "Save Request",
"save_to_collections": "儲存到集合",
"send_request": "傳送請求",
"show_code": "Generate code snippet",
"title": "請求"
},
"response": {
@@ -641,85 +582,6 @@
"log": "日誌",
"url": "網址"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "事件類型",
"log": "日誌",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "授權",
"body": "請求本體",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "集合",
"documentation": "幫助文件",
"duplicate": "Duplicate Tab",
"environments": "環境",
"headers": "請求標頭",
"history": "歷史記錄",

View File

@@ -5,7 +5,6 @@
"choose_file": "Виберіть файл",
"clear": "Очистити",
"clear_all": "Очистити все",
"clear_history": "Clear all History",
"close": "Закрити",
"connect": "Підключитись",
"connecting": "Підключення",
@@ -32,7 +31,6 @@
"paste": "Вставити",
"prettify": "Форматувати",
"remove": "Видалити",
"rename": "Rename",
"restore": "Відновити",
"save": "Зберегти",
"scroll_to_bottom": "Прокрутити вниз",
@@ -79,8 +77,6 @@
"search": "Пошук",
"share": "Поділитися",
"shortcuts": "Ярлики",
"social_description": "Follow us on social media to stay updated with the latest news, updates and releases.",
"social_links": "Social links",
"spotlight": "У центрі уваги",
"status": "Статус",
"status_description": "Перевірити статус сайту",
@@ -135,15 +131,12 @@
"renamed": "Колекція перейменована",
"request_in_use": "Запит використовується",
"save_as": "Зберегти як",
"save_to_collection": "Save to Collection",
"select": "Виберіть колекцію",
"select_location": "Виберіть місце розташування",
"select_team": "Виберіть команду",
"team_collections": "Колекції команд"
},
"confirm": {
"close_unsaved_tab": "Are you sure you want to close this tab?",
"close_unsaved_tabs": "Are you sure you want to close all tabs? {count} unsaved tabs will be lost.",
"exit_team": "Ви впевнені, що хочете покинути цю команду?",
"logout": "Ви впевнені, що хочете вийти?",
"remove_collection": "Ви впевнені, що хочете назавжди видалити цю колекцію?",
@@ -157,11 +150,6 @@
"save_unsaved_tab": "Do you want to save changes made in this tab?",
"sync": "Ви впевнені, що хочете синхронізувати цю робочу область?"
},
"context_menu": {
"add_parameters": "Add to parameters",
"open_request_in_new_tab": "Open request in new tab",
"set_environment_variable": "Set as variable"
},
"count": {
"header": "Заголовок {count}",
"message": "Повідомлення {count}",
@@ -204,31 +192,17 @@
"create_new": "Створити нове середовище",
"created": "Середовище створено",
"deleted": "Видалення середовища",
"duplicated": "Environment duplicated",
"edit": "Редагувати середовище",
"empty_variables": "No variables",
"global": "Global",
"global_variables": "Global variables",
"invalid_name": "Укажіть дійсну назву середовища",
"list": "Environment variables",
"my_environments": "Мої середовища",
"name": "Name",
"nested_overflow": "вкладені змінні середовища обмежені до 10 рівнів",
"new": "Нове середовище",
"no_active_environment": "No active environment",
"no_environment": "Жодного середовища",
"no_environment_description": "Не було обрано жодного середовища. Виберіть, що робити з наступними змінними.",
"quick_peek": "Environment Quick Peek",
"replace_with_variable": "Replace with variable",
"scope": "Scope",
"select": "Виберіть середовище",
"set": "Set environment",
"set_as_environment": "Set as environment",
"team_environments": "Командні середовища",
"title": "Середовища",
"updated": "Оновлення середовища",
"value": "Value",
"variable": "Variable",
"variable_list": "Список змінних"
},
"error": {
@@ -252,7 +226,6 @@
"no_duration": "Без тривалості",
"no_results_found": "Збігів не знайдено",
"page_not_found": "Ця сторінка не знайдена",
"proxy_error": "Proxy error",
"script_fail": "Не вдалося виконати сценарій попереднього запиту",
"something_went_wrong": "Щось пішло не так",
"test_script_fail": "Не вдалося виконати скрипт після запиту"
@@ -278,13 +251,9 @@
"renamed": "Папка перейменована"
},
"graphql": {
"connection_switch_confirm": "Do you want to connect with the latest GraphQL endpoint?",
"connection_switch_new_url": "Switching to a tab will disconnected you from the active GraphQL connection. New connection URL is",
"connection_switch_url": "You're connected to a GraphQL endpoint the connection URL is",
"mutations": "Мутації",
"schema": "Схема",
"subscriptions": "Підписки",
"switch_connection": "Switch connection"
"subscriptions": "Підписки"
},
"group": {
"time": "Час",
@@ -338,36 +307,13 @@
"json_description": "Імпортувати колекції з колекцій Hoppscotch JSON файлу",
"title": "Імпортувати"
},
"inspections": {
"description": "Inspect possible errors",
"environment": {
"add_environment": "Add to Environment",
"not_found": "Environment variable “{environment}” not found."
},
"header": {
"cookie": "The browser doesn't allow Hoppscotch to set the Cookie Header. While we're working on the Hoppscotch Desktop App (coming soon), please use the Authorization Header instead."
},
"response": {
"401_error": "Please check your authentication credentials.",
"404_error": "Please check your request URL and method type.",
"cors_error": "Please check your Cross-Origin Resource Sharing configuration.",
"default_error": "Please check your request.",
"network_error": "Please check your network connection."
},
"title": "Inspector",
"url": {
"extension_not_installed": "Extension not installed.",
"extension_unknown_origin": "Make sure you've added the API endpoint's origin to the Hoppscotch Browser Extension list.",
"extention_enable_action": "Enable Browser Extension",
"extention_not_enabled": "Extension not enabled."
}
},
"layout": {
"collapse_collection": "Згорнути або розширити колекції",
"collapse_sidebar": "Згорнути або розширити бічну панель",
"column": "Вертикальне розташування",
"name": "Макет",
"row": "Горизонтальне розташування"
"row": "Горизонтальне розташування",
"zen_mode": "Режим дзен"
},
"modal": {
"close_unsaved_tab": "You have unsaved changes",
@@ -472,7 +418,6 @@
"payload": "Корисне навантаження",
"query": "Запит",
"raw_body": "Сировина запиту",
"rename": "Rename Request",
"renamed": "Запит перейменовано",
"run": "Біжи",
"save": "Зберегти",
@@ -480,7 +425,6 @@
"saved": "Запит збережено",
"share": "Поділитися",
"share_description": "Поділіться Hoppscotch зі своїми друзями",
"stop": "Stop",
"title": "Запит",
"type": "Тип запиту",
"url": "URL",
@@ -515,6 +459,7 @@
"account_name_description": "Це ваше відображуване ім'я.",
"background": "Колір фону",
"black_mode": "Чорний",
"change_font_size": "Змінити розмір шрифту",
"choose_language": "Виберіть мову",
"dark_mode": "Темний",
"delete_account": "Видалити обліковий запис",
@@ -527,6 +472,10 @@
"extensions": "Розширення",
"extensions_use_toggle": "Використовуйте розширення браузера для надсилання запитів (якщо вони є)",
"follow": "Слідуйте за нами",
"font_size": "Розмір шрифту",
"font_size_large": "Великий",
"font_size_medium": "Середній",
"font_size_small": "Маленький",
"interceptor": "Перехоплювач",
"interceptor_description": "Проміжне програмне забезпечення між додатками та API.",
"language": "Мова",
@@ -591,27 +540,19 @@
"settings": "Перейдіть на сторінку Налаштування",
"title": "Навігація"
},
"others": {
"prettify": "Prettify Editor's Content",
"title": "Others"
},
"request": {
"copy_request_link": "Скопіювати посилання на запит",
"delete_method": "Виберіть метод ВИДАЛИТИ",
"get_method": "Виберіть метод GET",
"head_method": "Виберіть метод HEAD",
"import_curl": "Import cURL",
"method": "Метод",
"next_method": "Виберіть наступний метод",
"post_method": "Виберіть метод POST",
"previous_method": "Виберіть Попередній метод",
"put_method": "Виберіть метод PUT",
"rename": "Rename Request",
"reset_request": "Скинути запит",
"save_request": "Save Request",
"save_to_collections": "Зберегти в колекції",
"send_request": "Відправляти запит",
"show_code": "Generate code snippet",
"title": "Запит"
},
"response": {
@@ -641,85 +582,6 @@
"log": "Журнал",
"url": "URL"
},
"spotlight": {
"change_language": "Change Language",
"environments": {
"delete": "Delete current environment",
"duplicate": "Duplicate current environment",
"duplicate_global": "Duplicate global environment",
"edit": "Edit current environment",
"edit_global": "Edit global environment",
"new": "Create new environment",
"new_variable": "Create a new environment variable",
"title": "Environments"
},
"general": {
"chat": "Chat with support",
"help_menu": "Help and support",
"open_docs": "Read Documentation",
"open_github": "Open GitHub repository",
"open_keybindings": "Keyboard shortcuts",
"social": "Social",
"title": "General"
},
"graphql": {
"connect": "Connect to server",
"disconnect": "Disconnect from server"
},
"miscellaneous": {
"invite": "Invite your friends to Hoppscotch",
"title": "Miscellaneous"
},
"request": {
"save_as_new": "Save as new request",
"select_method": "Select method",
"switch_to": "Switch to",
"tab_authorization": "Authorization tab",
"tab_body": "Body tab",
"tab_headers": "Headers tab",
"tab_parameters": "Parameters tab",
"tab_pre_request_script": "Pre-request script tab",
"tab_query": "Query tab",
"tab_tests": "Tests tab",
"tab_variables": "Variables tab"
},
"response": {
"copy": "Copy response",
"download": "Download response as file",
"title": "Response"
},
"section": {
"interceptor": "Interceptor",
"interface": "Interface",
"theme": "Theme",
"user": "User"
},
"settings": {
"change_interceptor": "Change Interceptor",
"change_language": "Change Language",
"theme": {
"black": "Black",
"dark": "Dark",
"light": "Light",
"system": "System preference"
}
},
"tab": {
"close_current": "Close current tab",
"close_others": "Close all other tabs",
"duplicate": "Duplicate current tab",
"new_tab": "Open a new tab",
"title": "Tabs"
},
"workspace": {
"delete": "Delete current team",
"edit": "Edit current team",
"invite": "Invite people to team",
"new": "Create new team",
"switch_to_personal": "Switch to your personal workspace",
"title": "Teams"
}
},
"sse": {
"event_type": "Тип події",
"log": "Журнал",
@@ -777,11 +639,8 @@
"tab": {
"authorization": "Авторизація",
"body": "Тіло",
"close": "Close Tab",
"close_others": "Close other Tabs",
"collections": "Колекції",
"documentation": "Документація",
"duplicate": "Duplicate Tab",
"environments": "Environments",
"headers": "Заголовки",
"history": "Історія",

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
{
"name": "@hoppscotch/common",
"private": true,
"version": "2023.8.1",
"version": "2023.4.8",
"scripts": {
"dev": "pnpm exec npm-run-all -p -l dev:*",
"test": "vitest --run",
@@ -63,7 +63,7 @@
"graphql": "^16.8.0",
"graphql-language-service-interface": "^2.9.1",
"graphql-tag": "^2.12.6",
"httpsnippet": "^3.0.1",
"httpsnippet": "^2.0.0",
"insomnia-importers": "^3.6.0",
"io-ts": "^2.2.20",
"js-yaml": "^4.1.0",
@@ -117,7 +117,6 @@
"@intlify/vite-plugin-vue-i18n": "^7.0.0",
"@relmify/jest-fp-ts": "^2.1.1",
"@rushstack/eslint-patch": "^1.3.3",
"@types/har-format": "^1.2.12",
"@types/js-yaml": "^4.0.5",
"@types/lodash-es": "^4.17.8",
"@types/lossless-json": "^1.0.1",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 926 KiB

After

Width:  |  Height:  |  Size: 666 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 510 KiB

After

Width:  |  Height:  |  Size: 358 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 535 KiB

After

Width:  |  Height:  |  Size: 382 KiB

View File

@@ -18,7 +18,6 @@ import { HOPP_MODULES } from "@modules/."
import { isLoadingInitialRoute } from "@modules/router"
import { useI18n } from "@composables/i18n"
import { APP_IS_IN_DEV_MODE } from "@helpers/dev"
import { platform } from "./platform"
const t = useI18n()
@@ -46,5 +45,4 @@ if (APP_IS_IN_DEV_MODE) {
// Run module root component setup code
HOPP_MODULES.forEach((mod) => mod.onRootSetup?.())
platform.addedHoppModules?.forEach((mod) => mod.onRootSetup?.())
</script>

View File

@@ -1,11 +1,11 @@
/* eslint-disable */
/* prettier-ignore */
// @ts-nocheck
// Generated by unplugin-vue-components
// generated by unplugin-vue-components
// We suggest you to commit this file into source control
// Read more: https://github.com/vuejs/core/pull/3399
import '@vue/runtime-core'
export {}
declare module 'vue' {
declare module '@vue/runtime-core' {
export interface GlobalComponents {
AppActionHandler: typeof import('./components/app/ActionHandler.vue')['default']
AppAnnouncement: typeof import('./components/app/Announcement.vue')['default']
@@ -24,11 +24,11 @@ declare module 'vue' {
AppShortcutsEntry: typeof import('./components/app/ShortcutsEntry.vue')['default']
AppShortcutsPrompt: typeof import('./components/app/ShortcutsPrompt.vue')['default']
AppSidenav: typeof import('./components/app/Sidenav.vue')['default']
AppSocial: typeof import('./components/app/Social.vue')['default']
AppSpotlight: typeof import('./components/app/spotlight/index.vue')['default']
AppSpotlightEntry: typeof import('./components/app/spotlight/Entry.vue')['default']
AppSpotlightEntryGQLHistory: typeof import('./components/app/spotlight/entry/GQLHistory.vue')['default']
AppSpotlightEntryGQLRequest: typeof import('./components/app/spotlight/entry/GQLRequest.vue')['default']
AppSpotlightEntryIconSelected: typeof import('./components/app/spotlight/entry/IconSelected.vue')['default']
AppSpotlightEntryRESTHistory: typeof import('./components/app/spotlight/entry/RESTHistory.vue')['default']
AppSpotlightEntryRESTRequest: typeof import('./components/app/spotlight/entry/RESTRequest.vue')['default']
AppSupport: typeof import('./components/app/Support.vue')['default']
@@ -72,18 +72,12 @@ declare module 'vue' {
FirebaseLogout: typeof import('./components/firebase/Logout.vue')['default']
GraphqlAuthorization: typeof import('./components/graphql/Authorization.vue')['default']
GraphqlField: typeof import('./components/graphql/Field.vue')['default']
GraphqlHeaders: typeof import('./components/graphql/Headers.vue')['default']
GraphqlQuery: typeof import('./components/graphql/Query.vue')['default']
GraphqlRequest: typeof import('./components/graphql/Request.vue')['default']
GraphqlRequestOptions: typeof import('./components/graphql/RequestOptions.vue')['default']
GraphqlRequestTab: typeof import('./components/graphql/RequestTab.vue')['default']
GraphqlResponse: typeof import('./components/graphql/Response.vue')['default']
GraphqlSidebar: typeof import('./components/graphql/Sidebar.vue')['default']
GraphqlSubscriptionLog: typeof import('./components/graphql/SubscriptionLog.vue')['default']
GraphqlTabHead: typeof import('./components/graphql/TabHead.vue')['default']
GraphqlType: typeof import('./components/graphql/Type.vue')['default']
GraphqlTypeLink: typeof import('./components/graphql/TypeLink.vue')['default']
GraphqlVariable: typeof import('./components/graphql/Variable.vue')['default']
History: typeof import('./components/history/index.vue')['default']
HistoryGraphqlCard: typeof import('./components/history/graphql/Card.vue')['default']
HistoryRestCard: typeof import('./components/history/rest/Card.vue')['default']
@@ -96,6 +90,7 @@ declare module 'vue' {
HoppSmartExpand: typeof import('@hoppscotch/ui')['HoppSmartExpand']
HoppSmartFileChip: typeof import('@hoppscotch/ui')['HoppSmartFileChip']
HoppSmartInput: typeof import('@hoppscotch/ui')['HoppSmartInput']
HoppSmartIntersection: typeof import('@hoppscotch/ui')['HoppSmartIntersection']
HoppSmartItem: typeof import('@hoppscotch/ui')['HoppSmartItem']
HoppSmartLink: typeof import('@hoppscotch/ui')['HoppSmartLink']
HoppSmartModal: typeof import('@hoppscotch/ui')['HoppSmartModal']
@@ -109,7 +104,6 @@ declare module 'vue' {
HoppSmartTab: typeof import('@hoppscotch/ui')['HoppSmartTab']
HoppSmartTabs: typeof import('@hoppscotch/ui')['HoppSmartTabs']
HoppSmartToggle: typeof import('@hoppscotch/ui')['HoppSmartToggle']
HoppSmartTree: typeof import('@hoppscotch/ui')['HoppSmartTree']
HoppSmartWindow: typeof import('@hoppscotch/ui')['HoppSmartWindow']
HoppSmartWindows: typeof import('@hoppscotch/ui')['HoppSmartWindows']
HttpAuthorization: typeof import('./components/http/Authorization.vue')['default']
@@ -142,6 +136,7 @@ declare module 'vue' {
IconLucideAlertTriangle: typeof import('~icons/lucide/alert-triangle')['default']
IconLucideArrowLeft: typeof import('~icons/lucide/arrow-left')['default']
IconLucideArrowUpRight: typeof import('~icons/lucide/arrow-up-right')['default']
IconLucideBrush: typeof import('~icons/lucide/brush')['default']
IconLucideCheckCircle: typeof import('~icons/lucide/check-circle')['default']
IconLucideChevronRight: typeof import('~icons/lucide/chevron-right')['default']
IconLucideGlobe: typeof import('~icons/lucide/globe')['default']
@@ -151,9 +146,10 @@ declare module 'vue' {
IconLucideLayers: typeof import('~icons/lucide/layers')['default']
IconLucideListEnd: typeof import('~icons/lucide/list-end')['default']
IconLucideMinus: typeof import('~icons/lucide/minus')['default']
IconLucideRss: typeof import('~icons/lucide/rss')['default']
IconLucideSearch: typeof import('~icons/lucide/search')['default']
IconLucideUsers: typeof import('~icons/lucide/users')['default']
InterceptorsExtensionSubtitle: typeof import('./components/interceptors/ExtensionSubtitle.vue')['default']
IconLucideVerified: typeof import('~icons/lucide/verified')['default']
LensesHeadersRenderer: typeof import('./components/lenses/HeadersRenderer.vue')['default']
LensesHeadersRendererEntry: typeof import('./components/lenses/HeadersRendererEntry.vue')['default']
LensesRenderersAudioLensRenderer: typeof import('./components/lenses/renderers/AudioLensRenderer.vue')['default']
@@ -218,4 +214,5 @@ declare module 'vue' {
WorkspaceCurrent: typeof import('./components/workspace/Current.vue')['default']
WorkspaceSelector: typeof import('./components/workspace/Selector.vue')['default']
}
}

View File

@@ -1,6 +1,7 @@
<template>
<AppShortcuts :show="showShortcuts" @close="showShortcuts = false" />
<AppShare :show="showShare" @hide-modal="showShare = false" />
<AppSocial :show="showSocial" @hide-modal="showSocial = false" />
<FirebaseLogin :show="showLogin" @hide-modal="showLogin = false" />
<HoppSmartConfirmModal
@@ -17,6 +18,7 @@ import { pipe } from "fp-ts/function"
import * as TE from "fp-ts/TaskEither"
import { deleteTeam as backendDeleteTeam } from "~/helpers/backend/mutations/Team"
import { defineActionHandler, invokeAction } from "~/helpers/actions"
import { showChat } from "~/modules/crisp"
import { useToast } from "~/composables/toast"
import { useI18n } from "~/composables/i18n"
@@ -25,6 +27,7 @@ const t = useI18n()
const showShortcuts = ref(false)
const showShare = ref(false)
const showSocial = ref(false)
const showLogin = ref(false)
const confirmRemove = ref(false)
@@ -57,10 +60,18 @@ defineActionHandler("modals.share.toggle", () => {
showShare.value = !showShare.value
})
defineActionHandler("modals.social.toggle", () => {
showSocial.value = !showSocial.value
})
defineActionHandler("modals.login.toggle", () => {
showLogin.value = !showLogin.value
})
defineActionHandler("flyouts.chat.open", () => {
showChat()
})
defineActionHandler("modals.team.delete", ({ teamId }) => {
teamID.value = teamId
confirmRemove.value = true

View File

@@ -10,6 +10,18 @@
:class="{ '-rotate-180': !EXPAND_NAVIGATION }"
@click="EXPAND_NAVIGATION = !EXPAND_NAVIGATION"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="`${ZEN_MODE ? t('action.turn_off') : t('action.turn_on')} ${t(
'layout.zen_mode'
)}`"
:icon="ZEN_MODE ? IconMinimize : IconMaximize"
:class="{
'!text-accent !focus-visible:text-accentDark !hover:text-accentDark':
ZEN_MODE,
}"
@click="ZEN_MODE = !ZEN_MODE"
/>
<tippy interactive trigger="click" theme="popover">
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
@@ -64,7 +76,6 @@
}
"
/>
<!--
<HoppSmartItem
ref="chat"
:icon="IconMessageCircle"
@@ -77,34 +88,20 @@
}
"
/>
-->
<template
v-for="footerItem in platform.ui?.additionalFooterMenuItems"
:key="footerItem.id"
>
<template v-if="footerItem.action.type === 'link'">
<HoppSmartItem
:icon="footerItem.icon"
:label="footerItem.text(t)"
:to="footerItem.action.href"
blank
@click="hide()"
/>
</template>
<HoppSmartItem
v-else
:icon="footerItem.icon"
:label="footerItem.text(t)"
blank
@click="
() => {
// @ts-expect-error TypeScript not understanding the type
footerItem.action.do()
hide()
}
"
/>
</template>
<HoppSmartItem
:icon="IconGift"
:label="`${t('app.whats_new')}`"
to="https://docs.hoppscotch.io/documentation/changelog"
blank
@click="hide()"
/>
<HoppSmartItem
:icon="IconActivity"
:label="t('app.status')"
to="https://status.hoppscotch.io"
blank
@click="hide()"
/>
<hr />
<HoppSmartItem
:icon="IconGithub"
@@ -199,20 +196,26 @@
</template>
<script setup lang="ts">
import { ref } from "vue"
import { ref, watch } from "vue"
import { version } from "~/../package.json"
import IconSidebar from "~icons/lucide/sidebar"
import IconMinimize from "~icons/lucide/minimize"
import IconMaximize from "~icons/lucide/maximize"
import IconZap from "~icons/lucide/zap"
import IconShare2 from "~icons/lucide/share-2"
import IconColumns from "~icons/lucide/columns"
import IconSidebarOpen from "~icons/lucide/sidebar-open"
import IconShieldCheck from "~icons/lucide/shield-check"
import IconBook from "~icons/lucide/book"
import IconMessageCircle from "~icons/lucide/message-circle"
import IconGift from "~icons/lucide/gift"
import IconActivity from "~icons/lucide/activity"
import IconGithub from "~icons/lucide/github"
import IconTwitter from "~icons/lucide/twitter"
import IconUserPlus from "~icons/lucide/user-plus"
import IconLock from "~icons/lucide/lock"
import IconLifeBuoy from "~icons/lucide/life-buoy"
import { showChat } from "@modules/crisp"
import { useSetting } from "@composables/settings"
import { useI18n } from "@composables/i18n"
import { useReadonlyStream } from "@composables/stream"
@@ -227,6 +230,7 @@ const showDeveloperOptions = ref(false)
const EXPAND_NAVIGATION = useSetting("EXPAND_NAVIGATION")
const SIDEBAR = useSetting("SIDEBAR")
const ZEN_MODE = useSetting("ZEN_MODE")
const COLUMN_LAYOUT = useSetting("COLUMN_LAYOUT")
const SIDEBAR_ON_LEFT = useSetting("SIDEBAR_ON_LEFT")
@@ -237,6 +241,13 @@ const currentUser = useReadonlyStream(
platform.auth.getCurrentUser()
)
watch(
() => ZEN_MODE.value,
() => {
EXPAND_NAVIGATION.value = !ZEN_MODE.value
}
)
const nativeShare = () => {
if (navigator.share) {
navigator
@@ -251,6 +262,10 @@ const nativeShare = () => {
}
}
const chatWithUs = () => {
showChat()
}
const showDeveloperOptionModal = () => {
if (currentUser.value) {
showDeveloperOptions.value = true

View File

@@ -249,14 +249,13 @@ import { platform } from "~/platform"
import { useI18n } from "@composables/i18n"
import { useReadonlyStream } from "@composables/stream"
import { defineActionHandler, invokeAction } from "@helpers/actions"
import { workspaceStatus$, updateWorkspaceTeamName } from "~/newstore/workspace"
import TeamListAdapter from "~/helpers/teams/TeamListAdapter"
import { onLoggedIn } from "~/composables/auth"
import { GetMyTeamsQuery } from "~/helpers/backend/graphql"
import { getPlatformSpecialKey } from "~/helpers/platformutils"
import { useToast } from "~/composables/toast"
import { WorkspaceService } from "~/services/workspace.service"
import { useService } from "dioc/vue"
const t = useI18n()
const toast = useToast()
/**
* Once the PWA code is initialized, this holds a method
@@ -281,11 +280,10 @@ const currentUser = useReadonlyStream(
const selectedTeam = ref<GetMyTeamsQuery["myTeams"][number] | undefined>()
// TeamList-Adapter
const workspaceService = useService(WorkspaceService)
const teamListAdapter = workspaceService.acquireTeamListAdapter(null)
const teamListAdapter = new TeamListAdapter(true)
const myTeams = useReadonlyStream(teamListAdapter.teamList$, null)
const workspace = workspaceService.currentWorkspace
const workspace = useReadonlyStream(workspaceStatus$, { type: "personal" })
const workspaceName = computed(() =>
workspace.value.type === "personal"
@@ -297,18 +295,20 @@ const refetchTeams = () => {
teamListAdapter.fetchList()
}
onLoggedIn(() => {
!teamListAdapter.isInitialized && teamListAdapter.initialize()
})
watch(
() => myTeams.value,
(newTeams) => {
const space = workspace.value
if (newTeams && space.type === "team" && space.teamID) {
const team = newTeams.find((team) => team.id === space.teamID)
if (newTeams && workspace.value.type === "team" && workspace.value.teamID) {
const team = newTeams.find((team) => team.id === workspace.value.teamID)
if (team) {
selectedTeam.value = team
// Update the workspace name if it's not the same as the updated team name
if (team.name !== space.teamName) {
workspaceService.updateWorkspaceTeamName(team.name)
if (team.name !== workspace.value.teamName) {
updateWorkspaceTeamName(workspace.value, team.name)
}
}
}
@@ -372,8 +372,6 @@ const handleTeamEdit = () => {
editingTeamID.value = workspace.value.teamID
editingTeamName.value = { name: selectedTeam.value.name }
displayModalEdit(true)
} else {
noPermission()
}
}
@@ -384,7 +382,12 @@ const settings = ref<any | null>(null)
const logout = ref<any | null>(null)
const accountActions = ref<any | null>(null)
defineActionHandler("modals.team.edit", handleTeamEdit)
defineActionHandler("modals.team.edit", () => {
// TODO: Remove this hack
setTimeout(() => {
handleTeamEdit()
}, 100)
})
defineActionHandler("modals.team.invite", () => {
if (
@@ -392,8 +395,6 @@ defineActionHandler("modals.team.invite", () => {
selectedTeam.value?.myRole === "EDITOR"
) {
inviteTeam({ name: selectedTeam.value.name }, selectedTeam.value.id)
} else {
noPermission()
}
})
@@ -404,8 +405,4 @@ defineActionHandler(
},
computed(() => !currentUser.value)
)
const noPermission = () => {
toast.error(`${t("profile.no_permission")}`)
}
</script>

View File

@@ -30,55 +30,144 @@
<h2 class="p-4 font-semibold font-bold text-secondaryDark">
{{ t("support.title") }}
</h2>
<template
v-for="item in platform.ui?.additionalSupportOptionsMenuItems"
:key="item.id"
>
<HoppSmartItem
v-if="item.action.type === 'link'"
:icon="item.icon"
:label="item.text(t)"
:to="item.action.href"
:description="item.subtitle(t)"
:info-icon="IconChevronRight"
active
blank
@click="hideModal()"
/>
<HoppSmartItem
v-else
:icon="item.icon"
:label="item.text(t)"
:description="item.subtitle(t)"
:info-icon="IconChevronRight"
active
@click="
() => {
// @ts-expect-error Typescript isn't able to understand
item.action.do()
hideModal()
}
"
/>
</template>
<HoppSmartItem
:icon="IconBook"
:label="t('app.documentation')"
to="https://docs.hoppscotch.io"
:description="t('support.documentation')"
:info-icon="IconChevronRight"
active
blank
@click="hideModal()"
/>
<HoppSmartItem
:icon="IconGift"
:label="t('app.whats_new')"
to="https://docs.hoppscotch.io/documentation/changelog"
:description="t('support.changelog')"
:info-icon="IconChevronRight"
active
blank
@click="hideModal()"
/>
<HoppSmartItem
:icon="IconActivity"
:label="t('app.status')"
to="https://status.hoppscotch.io"
blank
:description="t('app.status_description')"
:info-icon="IconChevronRight"
active
@click="hideModal()"
/>
<HoppSmartItem
:icon="IconLock"
:label="`${t('app.terms_and_privacy')}`"
to="https://docs.hoppscotch.io/support/privacy"
blank
:description="t('app.terms_and_privacy')"
:info-icon="IconChevronRight"
active
@click="hideModal()"
/>
<h2 class="p-4 font-semibold font-bold text-secondaryDark">
{{ t("settings.follow") }}
</h2>
<HoppSmartItem
:icon="IconDiscord"
:label="t('app.discord')"
to="https://hoppscotch.io/discord"
blank
:description="t('app.join_discord_community')"
:info-icon="IconChevronRight"
active
@click="hideModal()"
/>
<HoppSmartItem
:icon="IconTwitter"
:label="t('app.twitter')"
to="https://hoppscotch.io/twitter"
blank
:description="t('support.twitter')"
:info-icon="IconChevronRight"
active
@click="hideModal()"
/>
<HoppSmartItem
:icon="IconGithub"
:label="`${t('app.github')}`"
to="https://github.com/hoppscotch/hoppscotch"
blank
:description="t('support.github')"
:info-icon="IconChevronRight"
active
@click="hideModal()"
/>
<HoppSmartItem
:icon="IconMessageCircle"
:label="t('app.chat_with_us')"
:description="t('support.chat')"
:info-icon="IconChevronRight"
active
@click="chatWithUs()"
/>
<HoppSmartItem
:icon="IconUserPlus"
:label="`${t('app.invite')}`"
:description="t('shortcut.miscellaneous.invite')"
:info-icon="IconChevronRight"
active
@click="expandInvite()"
/>
<HoppSmartItem
v-if="navigatorShare"
v-tippy="{ theme: 'tooltip' }"
:icon="IconShare2"
:label="`${t('request.share')}`"
:description="t('request.share_description')"
:info-icon="IconChevronRight"
active
@click="nativeShare()"
/>
</div>
</template>
</HoppSmartModal>
</template>
<script setup lang="ts">
import { watch } from "vue"
import IconSidebar from "~icons/lucide/sidebar"
import IconSidebarOpen from "~icons/lucide/sidebar-open"
import IconBook from "~icons/lucide/book"
import IconGift from "~icons/lucide/gift"
import IconActivity from "~icons/lucide/activity"
import IconLock from "~icons/lucide/lock"
import IconDiscord from "~icons/brands/discord"
import IconTwitter from "~icons/brands/twitter"
import IconGithub from "~icons/lucide/github"
import IconMessageCircle from "~icons/lucide/message-circle"
import IconUserPlus from "~icons/lucide/user-plus"
import IconShare2 from "~icons/lucide/share-2"
import IconChevronRight from "~icons/lucide/chevron-right"
import { useSetting } from "@composables/settings"
import { invokeAction } from "~/helpers/actions"
import { showChat } from "@modules/crisp"
import { useI18n } from "@composables/i18n"
import { platform } from "~/platform"
const t = useI18n()
const navigatorShare = !!navigator.share
const ZEN_MODE = useSetting("ZEN_MODE")
const EXPAND_NAVIGATION = useSetting("EXPAND_NAVIGATION")
const SIDEBAR = useSetting("SIDEBAR")
watch(
() => ZEN_MODE.value,
() => {
EXPAND_NAVIGATION.value = !ZEN_MODE.value
}
)
defineProps<{
show: boolean
}>()
@@ -87,6 +176,11 @@ const emit = defineEmits<{
(e: "hide-modal"): void
}>()
const chatWithUs = () => {
showChat()
hideModal()
}
const expandNavigation = () => {
EXPAND_NAVIGATION.value = !EXPAND_NAVIGATION.value
hideModal()
@@ -97,6 +191,24 @@ const expandCollection = () => {
hideModal()
}
const expandInvite = () => {
invokeAction("modals.share.toggle")
}
const nativeShare = () => {
if (navigator.share) {
navigator
.share({
title: "Hoppscotch",
text: "Hoppscotch • Open source API development ecosystem - Helps you create requests faster, saving precious time on development.",
url: "https://hoppscotch.io",
})
.catch(console.error)
} else {
// fallback
}
}
const hideModal = () => {
emit("hide-modal")
}

View File

@@ -18,18 +18,13 @@
:horizontal="COLUMN_LAYOUT"
@resize="setPaneEvent($event, 'horizontal')"
>
<Pane
:size="PANE_MAIN_TOP_SIZE"
class="flex flex-col !overflow-auto"
min-size="25"
>
<Pane :size="PANE_MAIN_TOP_SIZE" class="flex flex-col !overflow-auto">
<slot name="primary" />
</Pane>
<Pane
v-if="hasSecondary"
:size="PANE_MAIN_BOTTOM_SIZE"
class="flex flex-col !overflow-auto"
min-size="25"
>
<slot name="secondary" />
</Pane>
@@ -38,7 +33,7 @@
<Pane
v-if="SIDEBAR && hasSidebar"
:size="PANE_SIDEBAR_SIZE"
min-size="25"
min-size="20"
class="flex flex-col !overflow-auto bg-primaryContrast"
>
<slot name="sidebar" />
@@ -83,10 +78,10 @@ type PaneEvent = {
size: number
}
const PANE_MAIN_SIZE = ref(70)
const PANE_SIDEBAR_SIZE = ref(30)
const PANE_MAIN_TOP_SIZE = ref(35)
const PANE_MAIN_BOTTOM_SIZE = ref(65)
const PANE_MAIN_SIZE = ref(74)
const PANE_SIDEBAR_SIZE = ref(26)
const PANE_MAIN_TOP_SIZE = ref(42)
const PANE_MAIN_BOTTOM_SIZE = ref(58)
if (!COLUMN_LAYOUT.value) {
PANE_MAIN_TOP_SIZE.value = 50

View File

@@ -1,6 +1,6 @@
<template>
<div class="flex flex-col items-center justify-center text-secondaryLight">
<div class="flex mb-4 space-x-2">
<div class="flex pb-4 my-4 space-x-2">
<div class="flex flex-col items-end space-y-4 text-right">
<span class="flex items-center flex-1">
{{ t("shortcut.request.send_request") }}

View File

@@ -0,0 +1,135 @@
<template>
<HoppSmartModal
v-if="show"
dialog
:title="t('app.social_links')"
@close="hideModal"
>
<template #body>
<div class="flex flex-col space-y-2">
<div class="grid grid-cols-3 gap-4">
<a
v-for="(platform, index) in platforms"
:key="`platform-${index}`"
:href="platform.link"
target="_blank"
class="social-link"
tabindex="0"
>
<component :is="platform.icon" class="w-6 h-6" />
<span class="mt-3">
{{ platform.name }}
</span>
</a>
<button class="social-link" @click="copyAppLink">
<component :is="copyIcon" class="w-6 h-6 text-xl" />
<span class="mt-3">
{{ t("app.copy") }}
</span>
</button>
</div>
</div>
</template>
<template #footer>
<p class="text-secondaryLight">
{{ t("app.social_description") }}
</p>
</template>
</HoppSmartModal>
</template>
<script setup lang="ts">
import { useI18n } from "@composables/i18n"
import { useToast } from "@composables/toast"
import { refAutoReset } from "@vueuse/core"
import { copyToClipboard } from "~/helpers/utils/clipboard"
import IconFacebook from "~icons/brands/facebook"
import IconLinkedIn from "~icons/brands/linkedin"
import IconReddit from "~icons/brands/reddit"
import IconTwitter from "~icons/brands/twitter"
import IconCheck from "~icons/lucide/check"
import IconCopy from "~icons/lucide/copy"
import IconGitHub from "~icons/lucide/github"
const t = useI18n()
const toast = useToast()
defineProps<{
show: boolean
}>()
const emit = defineEmits<{
(e: "hide-modal"): void
}>()
const url = "https://hoppscotch.io"
const copyIcon = refAutoReset<typeof IconCopy | typeof IconCheck>(
IconCopy,
1000
)
const platforms = [
{
name: "GitHub",
icon: IconGitHub,
link: `https://hoppscotch.io/github`,
},
{
name: "Twitter",
icon: IconTwitter,
link: `https://twitter.com/hoppscotch_io`,
},
{
name: "Facebook",
icon: IconFacebook,
link: `https://www.facebook.com/hoppscotch.io`,
},
{
name: "Reddit",
icon: IconReddit,
link: `https://www.reddit.com/r/hoppscotch`,
},
{
name: "LinkedIn",
icon: IconLinkedIn,
link: `https://www.linkedin.com/company/hoppscotch/`,
},
]
const copyAppLink = () => {
copyToClipboard(url)
copyIcon.value = IconCheck
toast.success(`${t("state.copied_to_clipboard")}`)
}
const hideModal = () => {
emit("hide-modal")
}
</script>
<style lang="scss" scoped>
.social-link {
@apply border border-dividerLight;
@apply rounded;
@apply flex-col flex;
@apply p-4;
@apply items-center;
@apply justify-center;
@apply font-semibold;
@apply hover: (bg-primaryLight text-secondaryDark);
@apply focus: outline-none;
@apply focus-visible: border-divider;
svg {
@apply opacity-80;
}
&:hover {
svg {
@apply opacity-100;
}
}
}
</style>

View File

@@ -8,46 +8,89 @@
>
<template #body>
<div class="flex flex-col space-y-2">
<template
v-for="item in platform.ui?.additionalSupportOptionsMenuItems"
:key="item.id"
>
<HoppSmartItem
v-if="item.action.type === 'link'"
:icon="item.icon"
:label="item.text(t)"
:to="item.action.href"
:description="item.subtitle(t)"
:info-icon="IconChevronRight"
active
blank
@click="hideModal()"
/>
<HoppSmartItem
v-else
:icon="item.icon"
:label="item.text(t)"
:description="item.subtitle(t)"
:info-icon="IconChevronRight"
active
@click="
() => {
// @ts-expect-error Typescript isn't able to understand
item.action.do()
hideModal()
}
"
/>
</template>
<HoppSmartItem
:icon="IconBook"
:label="t('app.documentation')"
to="https://docs.hoppscotch.io"
:description="t('support.documentation')"
:info-icon="IconChevronRight"
active
blank
@click="hideModal()"
/>
<HoppSmartItem
:icon="IconZap"
:label="t('app.keyboard_shortcuts')"
:description="t('support.shortcuts')"
:info-icon="IconChevronRight"
active
@click="showShortcuts()"
/>
<HoppSmartItem
:icon="IconGift"
:label="t('app.whats_new')"
to="https://docs.hoppscotch.io/documentation/changelog"
:description="t('support.changelog')"
:info-icon="IconChevronRight"
active
blank
@click="hideModal()"
/>
<HoppSmartItem
:icon="IconMessageCircle"
:label="t('app.chat_with_us')"
:description="t('support.chat')"
:info-icon="IconChevronRight"
active
@click="chatWithUs()"
/>
<HoppSmartItem
:icon="IconGitHub"
:label="t('app.github')"
to="https://hoppscotch.io/github"
blank
:description="t('support.github')"
:info-icon="IconChevronRight"
active
@click="hideModal()"
/>
<HoppSmartItem
:icon="IconDiscord"
:label="t('app.join_discord_community')"
to="https://hoppscotch.io/discord"
blank
:description="t('support.community')"
:info-icon="IconChevronRight"
active
@click="hideModal()"
/>
<HoppSmartItem
:icon="IconTwitter"
:label="t('app.twitter')"
to="https://hoppscotch.io/twitter"
blank
:description="t('support.twitter')"
:info-icon="IconChevronRight"
active
@click="hideModal()"
/>
</div>
</template>
</HoppSmartModal>
</template>
<script setup lang="ts">
import IconTwitter from "~icons/brands/twitter"
import IconDiscord from "~icons/brands/discord"
import IconGitHub from "~icons/lucide/github"
import IconMessageCircle from "~icons/lucide/message-circle"
import IconGift from "~icons/lucide/gift"
import IconZap from "~icons/lucide/zap"
import IconBook from "~icons/lucide/book"
import IconChevronRight from "~icons/lucide/chevron-right"
import { invokeAction } from "@helpers/actions"
import { showChat } from "@modules/crisp"
import { useI18n } from "@composables/i18n"
import { platform } from "~/platform"
const t = useI18n()
@@ -59,6 +102,16 @@ const emit = defineEmits<{
(e: "hide-modal"): void
}>()
const chatWithUs = () => {
showChat()
hideModal()
}
const showShortcuts = () => {
invokeAction("flyouts.keybinds.toggle")
hideModal()
}
const hideModal = () => {
emit("hide-modal")
}

View File

@@ -119,8 +119,5 @@ watch(
&.active {
@apply after:bg-accentLight;
}
scroll-padding: 4rem !important;
scroll-margin: 4rem !important;
}
</style>

View File

@@ -1,3 +0,0 @@
<template>
<IconLucideCheckCircle class="text-accent" />
</template>

View File

@@ -40,7 +40,7 @@
:key="`result-${result.id}`"
:entry="result"
:active="isEqual(selectedEntry, [sectionIndex, entryIndex])"
@mouseover="onMouseOver($event, sectionIndex, entryIndex)"
@mouseover="selectedEntry = [sectionIndex, entryIndex]"
@action="runAction(sectionID, result)"
/>
</div>
@@ -111,7 +111,6 @@ import {
SwitchWorkspaceSpotlightSearcherService,
WorkspaceSpotlightSearcherService,
} from "~/services/spotlight/searchers/workspace.searcher"
import { InterceptorSpotlightSearcherService } from "~/services/spotlight/searchers/interceptor.searcher"
const t = useI18n()
@@ -139,7 +138,6 @@ useService(EnvironmentsSpotlightSearcherService)
useService(SwitchEnvSpotlightSearcherService)
useService(WorkspaceSpotlightSearcherService)
useService(SwitchWorkspaceSpotlightSearcherService)
useService(InterceptorSpotlightSearcherService)
const search = ref("")
@@ -178,24 +176,6 @@ function runAction(searcherID: string, result: SpotlightSearcherResult) {
emit("hide-modal")
}
let lastMousePosition: { x: number; y: number }
const onMouseOver = (
e: MouseEvent,
sectionIndex: number,
entryIndex: number
) => {
const mousePosition = {
x: e.clientX,
y: e.clientY,
}
// if the position is same, do nothing
if (isEqual(lastMousePosition, mousePosition)) return
selectedEntry.value = [sectionIndex, entryIndex]
lastMousePosition = mousePosition
}
function newUseArrowKeysForNavigation() {
const selectedEntry = ref<[number, number]>([0, 0]) // [sectionIndex, entryIndex]
@@ -284,3 +264,4 @@ function newUseArrowKeysForNavigation() {
return { selectedEntry }
}
</script>
~/services/spotlight/searchers/workspace.searcher

View File

@@ -71,6 +71,7 @@ import {
updateTeamRequest,
} from "~/helpers/backend/mutations/TeamRequest"
import { Picked } from "~/helpers/types/HoppPicked"
import { getGQLSession, useGQLRequestName } from "~/newstore/GQLSession"
import { useI18n } from "@composables/i18n"
import { useToast } from "@composables/toast"
import {
@@ -81,9 +82,8 @@ import {
} from "~/newstore/collections"
import { GQLError } from "~/helpers/backend/GQLClient"
import { computedWithControl } from "@vueuse/core"
import { currentActiveTab } from "~/helpers/rest/tab"
import { platform } from "~/platform"
import { currentActiveTab as activeRESTTab } from "~/helpers/rest/tab"
import { currentActiveTab as activeGQLTab } from "~/helpers/graphql/tab"
const t = useI18n()
const toast = useToast()
@@ -122,14 +122,10 @@ const emit = defineEmits<{
(e: "hide-modal"): void
}>()
const gqlRequestName = computedWithControl(
() => activeGQLTab.value,
() => activeGQLTab.value.document.request.name
)
const gqlRequestName = useGQLRequestName()
const restRequestName = computedWithControl(
() => activeRESTTab.value,
() => activeRESTTab.value.document.request.name
() => currentActiveTab.value,
() => currentActiveTab.value.document.request.name
)
const reqName = computed(() => {
@@ -145,13 +141,11 @@ const reqName = computed(() => {
const requestName = ref(reqName.value)
watch(
() => [activeRESTTab.value, activeGQLTab.value],
() => [currentActiveTab.value, gqlRequestName.value],
() => {
if (props.mode === "rest") {
requestName.value = activeRESTTab.value?.document.request.name ?? ""
} else {
requestName.value = activeGQLTab.value?.document.request.name ?? ""
}
requestName.value = currentActiveTab.value?.document.request.name ?? ""
} else requestName.value = gqlRequestName.value
}
)
@@ -208,10 +202,15 @@ const saveRequestAs = async () => {
return
}
const requestUpdated =
props.mode === "rest"
? cloneDeep(activeRESTTab.value.document.request)
: cloneDeep(activeGQLTab.value.document.request)
let requestUpdated
if (props.request) {
requestUpdated = cloneDeep(props.request)
} else if (props.mode === "rest") {
requestUpdated = cloneDeep(currentActiveTab.value.document.request)
} else {
requestUpdated = cloneDeep(getGQLSession().request)
}
requestUpdated.name = requestName.value
@@ -224,7 +223,7 @@ const saveRequestAs = async () => {
requestUpdated
)
activeRESTTab.value.document = {
currentActiveTab.value.document = {
request: requestUpdated,
isDirty: false,
saveContext: {
@@ -251,7 +250,7 @@ const saveRequestAs = async () => {
requestUpdated
)
activeRESTTab.value.document = {
currentActiveTab.value.document = {
request: requestUpdated,
isDirty: false,
saveContext: {
@@ -279,7 +278,7 @@ const saveRequestAs = async () => {
requestUpdated
)
activeRESTTab.value.document = {
currentActiveTab.value.document = {
request: requestUpdated,
isDirty: false,
saveContext: {
@@ -439,7 +438,7 @@ const updateTeamCollectionOrFolder = (
(result) => {
const { createRequestInCollection } = result
activeRESTTab.value.document = {
currentActiveTab.value.document = {
request: requestUpdated,
isDirty: false,
saveContext: {
@@ -460,7 +459,7 @@ const updateTeamCollectionOrFolder = (
const requestSaved = () => {
toast.success(`${t("request.added")}`)
nextTick(() => {
activeRESTTab.value.document.isDirty = false
currentActiveTab.value.document.isDirty = false
})
hideModal()
}

View File

@@ -36,7 +36,7 @@
import { ref, watch } from "vue"
import { useI18n } from "@composables/i18n"
import { useToast } from "@composables/toast"
import { currentActiveTab } from "~/helpers/graphql/tab"
import { getGQLSession } from "~/newstore/GQLSession"
const toast = useToast()
const t = useI18n()
@@ -63,7 +63,7 @@ watch(
() => props.show,
(show) => {
if (show) {
editingName.value = currentActiveTab.value?.document.request.name
editingName.value = getGQLSession().request.name
}
}
)

View File

@@ -37,7 +37,6 @@
@click="
emit('add-request', {
path: `${collectionIndex}`,
index: collection.requests.length,
})
"
/>
@@ -220,7 +219,6 @@ import {
moveGraphqlRequest,
} from "~/newstore/collections"
import { Picked } from "~/helpers/types/HoppPicked"
import { getTabsRefTo } from "~/helpers/graphql/tab"
const props = defineProps({
picked: { type: Object, default: null },
@@ -295,22 +293,6 @@ const removeCollection = () => {
emit("select", null)
}
const possibleTabs = getTabsRefTo((tab) => {
const ctx = tab.document.saveContext
if (!ctx) return false
return (
ctx.originLocation === "user-collection" &&
ctx.folderPath.startsWith(props.collectionIndex.toString())
)
})
for (const tab of possibleTabs) {
tab.value.document.saveContext = undefined
tab.value.document.isDirty = true
}
removeGraphqlCollection(props.collectionIndex, props.collection.id)
toast.success(`${t("state.deleted")}`)
}

View File

@@ -34,12 +34,7 @@
:icon="IconFilePlus"
:title="t('request.new')"
class="hidden group-hover:inline-flex"
@click="
emit('add-request', {
path: folderPath,
index: folder.requests.length,
})
"
@click="emit('add-request', { path: folderPath })"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
@@ -203,7 +198,6 @@ import { useI18n } from "@composables/i18n"
import { useColorMode } from "@composables/theming"
import { removeGraphqlFolder, moveGraphqlRequest } from "~/newstore/collections"
import { computed, ref } from "vue"
import { getTabsRefTo } from "~/helpers/graphql/tab"
const toast = useToast()
const t = useI18n()
@@ -255,8 +249,10 @@ const collectionIcon = computed(() => {
const pick = () => {
emit("select", {
pickedType: "gql-my-folder",
folderPath: props.folderPath,
picked: {
pickedType: "gql-my-folder",
folderPath: props.folderPath,
},
})
}
@@ -277,22 +273,6 @@ const removeFolder = () => {
emit("select", { picked: null })
}
const possibleTabs = getTabsRefTo((tab) => {
const ctx = tab.document.saveContext
if (!ctx) return false
return (
ctx.originLocation === "user-collection" &&
ctx.folderPath.startsWith(props.folderPath)
)
})
for (const tab of possibleTabs) {
tab.value.document.saveContext = undefined
tab.value.document.isDirty = true
}
removeGraphqlFolder(props.folderPath, props.folder.id)
toast.success(t("state.deleted"))
}

View File

@@ -20,28 +20,22 @@
/>
</span>
<span
class="flex items-center flex-1 min-w-0 py-2 pr-2 cursor-pointer transition group-hover:text-secondaryDark"
class="flex flex-1 min-w-0 py-2 pr-2 cursor-pointer transition group-hover:text-secondaryDark"
@click="selectRequest()"
>
<span class="truncate" :class="{ 'text-accent': isSelected }">
{{ request.name }}
</span>
<span
v-if="isActive"
v-tippy="{ theme: 'tooltip' }"
class="relative h-1.5 w-1.5 flex flex-shrink-0 mx-3"
:title="`${t('collection.request_in_use')}`"
>
<span
class="absolute inline-flex flex-shrink-0 w-full h-full bg-green-500 rounded-full opacity-75 animate-ping"
>
</span>
<span
class="relative inline-flex flex-shrink-0 rounded-full h-1.5 w-1.5 bg-green-500"
></span>
</span>
</span>
<div class="flex">
<HoppButtonSecondary
v-if="!saveRequest"
v-tippy="{ theme: 'tooltip' }"
:icon="IconRotateCCW"
:title="t('action.restore')"
class="hidden group-hover:inline-flex"
@click="selectRequest()"
/>
<span>
<tippy
ref="options"
@@ -127,6 +121,7 @@
<script setup lang="ts">
import IconCheckCircle from "~icons/lucide/check-circle"
import IconFile from "~icons/lucide/file"
import IconRotateCCW from "~icons/lucide/rotate-ccw"
import IconMoreVertical from "~icons/lucide/more-vertical"
import IconEdit from "~icons/lucide/edit"
import IconCopy from "~icons/lucide/copy"
@@ -137,12 +132,7 @@ import { useToast } from "@composables/toast"
import { HoppGQLRequest, makeGQLRequest } from "@hoppscotch/data"
import { cloneDeep } from "lodash-es"
import { removeGraphqlRequest } from "~/newstore/collections"
import {
createNewTab,
getTabRefWithSaveContext,
currentTabID,
currentActiveTab,
} from "~/helpers/graphql/tab"
import { setGQLSession } from "~/newstore/GQLSession"
// Template refs
const tippyActions = ref<any | null>(null)
@@ -164,18 +154,6 @@ const props = defineProps({
requestIndex: { type: Number, default: null },
})
const isActive = computed(() => {
const saveCtx = currentActiveTab.value?.document.saveContext
if (!saveCtx) return false
return (
saveCtx.originLocation === "user-collection" &&
saveCtx.folderPath === props.folderPath &&
saveCtx.requestIndex === props.requestIndex
)
})
// TODO: Better types please
const emit = defineEmits(["select", "edit-request", "duplicate-request"])
@@ -201,24 +179,7 @@ const selectRequest = () => {
if (props.saveRequest) {
pick()
} else {
const possibleTab = getTabRefWithSaveContext({
originLocation: "user-collection",
folderPath: props.folderPath,
requestIndex: props.requestIndex,
})
// Switch to that request if that request is open
if (possibleTab) {
currentTabID.value = possibleTab.value.id
return
}
createNewTab({
saveContext: {
originLocation: "user-collection",
folderPath: props.folderPath,
requestIndex: props.requestIndex,
},
setGQLSession({
request: cloneDeep(
makeGQLRequest({
name: props.request.name,
@@ -229,7 +190,8 @@ const selectRequest = () => {
auth: props.request.auth,
})
),
isDirty: false,
schema: "",
response: "",
})
}
}
@@ -252,18 +214,6 @@ const removeRequest = () => {
emit("select", null)
}
// Detach the request from any of the tabs
const possibleTab = getTabRefWithSaveContext({
originLocation: "user-collection",
folderPath: props.folderPath,
requestIndex: props.requestIndex,
})
if (possibleTab) {
possibleTab.value.document.saveContext = undefined
possibleTab.value.document.isDirty = true
}
removeGraphqlRequest(props.folderPath, props.requestIndex, props.request.id)
toast.success(`${t("state.deleted")}`)
}

View File

@@ -137,6 +137,7 @@ import {
addGraphqlFolder,
saveGraphqlRequestAs,
} from "~/newstore/collections"
import { getGQLSession, setGQLSession } from "~/newstore/GQLSession"
import IconPlus from "~icons/lucide/plus"
import IconHelpCircle from "~icons/lucide/help-circle"
@@ -145,7 +146,6 @@ import { useI18n } from "@composables/i18n"
import { useReadonlyStream } from "@composables/stream"
import { useColorMode } from "@composables/theming"
import { platform } from "~/platform"
import { createNewTab, currentActiveTab } from "~/helpers/graphql/tab"
export default defineComponent({
props: {
@@ -265,22 +265,17 @@ export default defineComponent({
this.$data.editingCollectionIndex = collectionIndex
this.displayModalEdit(true)
},
onAddRequest({ name, path, index }) {
onAddRequest({ name, path }) {
const newRequest = {
...currentActiveTab.value.document.request,
...getGQLSession().request,
name,
}
saveGraphqlRequestAs(path, newRequest)
createNewTab({
saveContext: {
originLocation: "user-collection",
folderPath: path,
requestIndex: index,
},
setGQLSession({
request: newRequest,
isDirty: false,
schema: "",
response: "",
})
platform.analytics?.logEvent({

View File

@@ -19,12 +19,11 @@
>
<WorkspaceCurrent :section="t('tab.collections')" />
<HoppSmartInput
<input
v-model="filterTexts"
:placeholder="t('action.search')"
input-styles="py-2 pl-4 pr-2 bg-transparent !border-0"
class="py-2 pl-4 pr-2 bg-transparent !border-0"
type="search"
:autofocus="false"
:disabled="collectionsType.type === 'team-collections'"
/>
</div>
@@ -162,8 +161,10 @@ import { computed, nextTick, PropType, ref, watch } from "vue"
import { useToast } from "@composables/toast"
import { useI18n } from "@composables/i18n"
import { Picked } from "~/helpers/types/HoppPicked"
import TeamListAdapter from "~/helpers/teams/TeamListAdapter"
import { useReadonlyStream } from "~/composables/stream"
import { useLocalState } from "~/newstore/localstate"
import { onLoggedIn } from "~/composables/auth"
import { GetMyTeamsQuery } from "~/helpers/backend/graphql"
import { pipe } from "fp-ts/function"
import * as TE from "fp-ts/TaskEither"
@@ -219,6 +220,7 @@ import {
import * as E from "fp-ts/Either"
import { platform } from "~/platform"
import { createCollectionGists } from "~/helpers/gist"
import { workspaceStatus$ } from "~/newstore/workspace"
import {
createNewTab,
currentActiveTab,
@@ -236,9 +238,6 @@ import {
resetTeamRequestsContext,
} from "~/helpers/collection/collection"
import { currentReorderingStatus$ } from "~/newstore/reordering"
import { defineActionHandler } from "~/helpers/actions"
import { WorkspaceService } from "~/services/workspace.service"
import { useService } from "dioc/vue"
const t = useI18n()
const toast = useToast()
@@ -315,8 +314,7 @@ const creatingGistCollection = ref(false)
const importingMyCollections = ref(false)
// TeamList-Adapter
const workspaceService = useService(WorkspaceService)
const teamListAdapter = workspaceService.acquireTeamListAdapter(null)
const teamListAdapter = new TeamListAdapter(true)
const myTeams = useReadonlyStream(teamListAdapter.teamList$, null)
const REMEMBERED_TEAM_ID = useLocalState("REMEMBERED_TEAM_ID")
const teamListFetched = ref(false)
@@ -374,18 +372,17 @@ const updateSelectedTeam = (team: SelectedTeam) => {
}
}
const workspace = workspaceService.currentWorkspace
onLoggedIn(() => {
!teamListAdapter.isInitialized && teamListAdapter.initialize()
})
const workspace = useReadonlyStream(workspaceStatus$, { type: "personal" })
// Used to switch collection type and team when user switch workspace in the global workspace switcher
// Check if there is a teamID in the workspace, if yes, switch to team collection and select the team
// If there is no teamID, switch to my environment
watch(
() => {
const space = workspace.value
if (space.type === "personal") return undefined
else return space.teamID
},
() => workspace.value.teamID,
(teamID) => {
if (!teamID) {
switchToMyCollections()
@@ -2069,8 +2066,4 @@ const getErrorMessage = (err: GQLError<string>) => {
}
}
}
defineActionHandler("collection.new", () => {
displayModalAdd(true)
})
</script>

View File

@@ -21,12 +21,7 @@
<label for="value" class="font-semibold min-w-10">{{
t("environment.value")
}}</label>
<input
v-model="editingValue"
type="text"
class="input"
:placeholder="t('environment.value')"
/>
<input type="text" :value="value" class="input" />
</div>
<div class="flex items-center space-x-8 ml-2">
<label for="scope" class="font-semibold min-w-10">
@@ -110,12 +105,9 @@ watch(
scope.value = {
type: "global",
}
replaceWithVariable.value = false
editingName.value = ""
editingValue.value = ""
replaceWithVariable.value = false
}
editingName.value = props.name
editingValue.value = props.value
}
)
@@ -140,7 +132,6 @@ const scope = ref<Scope>({
const replaceWithVariable = ref(false)
const editingName = ref(props.name)
const editingValue = ref(props.value)
const addEnvironment = async () => {
if (!editingName.value) {
@@ -150,13 +141,13 @@ const addEnvironment = async () => {
if (scope.value.type === "global") {
addGlobalEnvVariable({
key: editingName.value,
value: editingValue.value,
value: props.value,
})
toast.success(`${t("environment.updated")}`)
} else if (scope.value.type === "my-environment") {
addEnvironmentVariable(scope.value.index, {
key: editingName.value,
value: editingValue.value,
value: props.value,
})
toast.success(`${t("environment.updated")}`)
} else {
@@ -164,7 +155,7 @@ const addEnvironment = async () => {
...scope.value.environment.environment.variables,
{
key: editingName.value,
value: editingValue.value,
value: props.value,
},
]
await pipe(
@@ -191,7 +182,7 @@ const addEnvironment = async () => {
//replace the currenttab endpoint containing the value in the text with variablename
currentActiveTab.value.document.request.endpoint =
currentActiveTab.value.document.request.endpoint.replace(
editingValue.value,
props.value,
variableName
)
}

View File

@@ -32,7 +32,6 @@
@keyup.escape="hide()"
>
<HoppSmartItem
v-if="!isScopeSelector"
:label="`${t('environment.no_environment')}`"
:info-icon="
selectedEnvironmentIndex.type === 'NO_ENV_SELECTED'
@@ -49,21 +48,6 @@
}
"
/>
<HoppSmartItem
v-else-if="isScopeSelector && modelValue"
:label="t('environment.global')"
:icon="IconGlobe"
:info-icon="modelValue.type === 'global' ? IconCheck : undefined"
:active-info-icon="modelValue.type === 'global'"
@click="
() => {
$emit('update:modelValue', {
type: 'global',
})
hide()
}
"
/>
<HoppSmartTabs
v-model="selectedEnvTab"
:styles="`sticky overflow-x-auto my-2 border border-divider rounded flex-shrink-0 z-0 top-0 bg-primary ${
@@ -82,14 +66,14 @@
:key="`gen-${index}`"
:icon="IconLayers"
:label="gen.name"
:info-icon="isEnvActive(index) ? IconCheck : undefined"
:active-info-icon="isEnvActive(index)"
:info-icon="index === selectedEnv.index ? IconCheck : undefined"
:active-info-icon="index === selectedEnv.index"
@click="
() => {
handleEnvironmentChange(index, {
type: 'my-environment',
environment: gen,
})
selectedEnvironmentIndex = {
type: 'MY_ENV',
index: index,
}
hide()
}
"
@@ -129,14 +113,18 @@
:key="`gen-team-${index}`"
:icon="IconLayers"
:label="gen.environment.name"
:info-icon="isEnvActive(gen.id) ? IconCheck : undefined"
:active-info-icon="isEnvActive(gen.id)"
:info-icon="
gen.id === selectedEnv.teamEnvID ? IconCheck : undefined
"
:active-info-icon="gen.id === selectedEnv.teamEnvID"
@click="
() => {
handleEnvironmentChange(index, {
type: 'team-environment',
environment: gen,
})
selectedEnvironmentIndex = {
type: 'TEAM_ENV',
teamEnvID: gen.id,
teamID: gen.teamID,
environment: gen.environment,
}
hide()
}
"
@@ -297,7 +285,6 @@ import IconCheck from "~icons/lucide/check"
import IconLayers from "~icons/lucide/layers"
import IconEye from "~icons/lucide/eye"
import IconEdit from "~icons/lucide/edit"
import IconGlobe from "~icons/lucide/globe"
import { TippyComponent } from "vue-tippy"
import { useI18n } from "~/composables/i18n"
import { GQLError } from "~/helpers/backend/GQLClient"
@@ -308,38 +295,11 @@ import {
selectedEnvironmentIndex$,
setSelectedEnvironmentIndex,
} from "~/newstore/environments"
import { workspaceStatus$ } from "~/newstore/workspace"
import TeamEnvironmentAdapter from "~/helpers/teams/TeamEnvironmentAdapter"
import { useColorMode } from "@composables/theming"
import { breakpointsTailwind, useBreakpoints } from "@vueuse/core"
import { invokeAction } from "~/helpers/actions"
import { TeamEnvironment } from "~/helpers/teams/TeamEnvironment"
import { Environment } from "@hoppscotch/data"
import { onMounted } from "vue"
import { useLocalState } from "~/newstore/localstate"
import { GetMyTeamsQuery } from "~/helpers/backend/graphql"
import { useService } from "dioc/vue"
import { WorkspaceService } from "~/services/workspace.service"
type Scope =
| {
type: "global"
}
| {
type: "my-environment"
environment: Environment
index: number
}
| {
type: "team-environment"
environment: TeamEnvironment
}
const props = defineProps<{
isScopeSelector?: boolean
modelValue?: Scope
}>()
const emit = defineEmits<{
(e: "update:modelValue", data: Scope): void
}>()
const breakpoints = useBreakpoints(breakpointsTailwind)
const mdAndLarger = breakpoints.greater("md")
@@ -352,37 +312,8 @@ type EnvironmentType = "my-environments" | "team-environments"
const myEnvironments = useReadonlyStream(environments$, [])
const workspaceService = useService(WorkspaceService)
const workspace = workspaceService.currentWorkspace
const workspace = useReadonlyStream(workspaceStatus$, { type: "personal" })
// TeamList-Adapter
const teamListAdapter = workspaceService.acquireTeamListAdapter(null)
const myTeams = useReadonlyStream(teamListAdapter.teamList$, null)
const teamListFetched = ref(false)
const REMEMBERED_TEAM_ID = useLocalState("REMEMBERED_TEAM_ID")
const switchToTeamWorkspace = (team: GetMyTeamsQuery["myTeams"][number]) => {
REMEMBERED_TEAM_ID.value = team.id
workspaceService.changeWorkspace({
teamID: team.id,
teamName: team.name,
type: "team",
})
}
watch(
() => myTeams.value,
(newTeams) => {
if (newTeams && !teamListFetched.value) {
teamListFetched.value = true
if (REMEMBERED_TEAM_ID.value) {
const team = newTeams.find((t) => t.id === REMEMBERED_TEAM_ID.value)
if (team) switchToTeamWorkspace(team)
}
}
}
)
// TeamEnv List Adapter
const teamEnvListAdapter = new TeamEnvironmentAdapter(undefined)
const teamListLoading = useReadonlyStream(teamEnvListAdapter.loading$, false)
const teamAdapterError = useReadonlyStream(teamEnvListAdapter.error$, null)
@@ -391,70 +322,6 @@ const teamEnvironmentList = useReadonlyStream(
[]
)
const handleEnvironmentChange = (
index: number,
env?:
| {
type: "my-environment"
environment: Environment
}
| {
type: "team-environment"
environment: TeamEnvironment
}
) => {
if (props.isScopeSelector && env) {
if (env.type === "my-environment") {
emit("update:modelValue", {
type: "my-environment",
environment: env.environment,
index,
})
} else if (env.type === "team-environment") {
emit("update:modelValue", {
type: "team-environment",
environment: env.environment,
})
}
} else {
if (env && env.type === "my-environment") {
selectedEnvironmentIndex.value = {
type: "MY_ENV",
index,
}
} else if (env && env.type === "team-environment") {
selectedEnvironmentIndex.value = {
type: "TEAM_ENV",
teamEnvID: env.environment.id,
teamID: env.environment.teamID,
environment: env.environment.environment,
}
}
}
}
const isEnvActive = (id: string | number) => {
if (props.isScopeSelector) {
if (props.modelValue?.type === "my-environment") {
return props.modelValue.index === id
} else if (props.modelValue?.type === "team-environment") {
return (
props.modelValue?.type === "team-environment" &&
props.modelValue.environment &&
props.modelValue.environment.id === id
)
}
} else {
if (selectedEnvironmentIndex.value.type === "MY_ENV") {
return selectedEnv.value.index === id
} else {
return (
selectedEnvironmentIndex.value.type === "TEAM_ENV" &&
selectedEnv.value.teamEnvID === id
)
}
}
}
const selectedEnvironmentIndex = useStream(
selectedEnvironmentIndex$,
{ type: "NO_ENV_SELECTED" },
@@ -482,90 +349,34 @@ watch(
)
const selectedEnv = computed(() => {
if (props.isScopeSelector) {
if (props.modelValue?.type === "my-environment") {
return {
type: "MY_ENV",
index: props.modelValue.index,
name: props.modelValue.environment?.name,
}
} else if (props.modelValue?.type === "team-environment") {
if (selectedEnvironmentIndex.value.type === "MY_ENV") {
const environment =
myEnvironments.value[selectedEnvironmentIndex.value.index]
return {
type: "MY_ENV",
index: selectedEnvironmentIndex.value.index,
name: environment.name,
variables: environment.variables,
}
} else if (selectedEnvironmentIndex.value.type === "TEAM_ENV") {
const teamEnv = teamEnvironmentList.value.find(
(env) =>
env.id ===
(selectedEnvironmentIndex.value.type === "TEAM_ENV" &&
selectedEnvironmentIndex.value.teamEnvID)
)
if (teamEnv) {
return {
type: "TEAM_ENV",
name: props.modelValue.environment.environment.name,
teamEnvID: props.modelValue.environment.id,
}
} else {
return { type: "global", name: "Global" }
}
} else {
if (selectedEnvironmentIndex.value.type === "MY_ENV") {
const environment =
myEnvironments.value[selectedEnvironmentIndex.value.index]
return {
type: "MY_ENV",
index: selectedEnvironmentIndex.value.index,
name: environment.name,
variables: environment.variables,
}
} else if (selectedEnvironmentIndex.value.type === "TEAM_ENV") {
const teamEnv = teamEnvironmentList.value.find(
(env) =>
env.id ===
(selectedEnvironmentIndex.value.type === "TEAM_ENV" &&
selectedEnvironmentIndex.value.teamEnvID)
)
if (teamEnv) {
return {
type: "TEAM_ENV",
name: teamEnv.environment.name,
teamEnvID: selectedEnvironmentIndex.value.teamEnvID,
variables: teamEnv.environment.variables,
}
} else {
return { type: "NO_ENV_SELECTED" }
name: teamEnv.environment.name,
teamEnvID: selectedEnvironmentIndex.value.teamEnvID,
variables: teamEnv.environment.variables,
}
} else {
return { type: "NO_ENV_SELECTED" }
}
}
})
// Set the selected environment as initial scope value
onMounted(() => {
if (props.isScopeSelector) {
if (
selectedEnvironmentIndex.value.type === "MY_ENV" &&
selectedEnvironmentIndex.value.index !== undefined
) {
emit("update:modelValue", {
type: "my-environment",
environment: myEnvironments.value[selectedEnvironmentIndex.value.index],
index: selectedEnvironmentIndex.value.index,
})
} else if (
selectedEnvironmentIndex.value.type === "TEAM_ENV" &&
selectedEnvironmentIndex.value.teamEnvID &&
teamEnvironmentList.value &&
teamEnvironmentList.value.length > 0
) {
const teamEnv = teamEnvironmentList.value.find(
(env) =>
env.id ===
(selectedEnvironmentIndex.value.type === "TEAM_ENV" &&
selectedEnvironmentIndex.value.teamEnvID)
)
if (teamEnv) {
emit("update:modelValue", {
type: "team-environment",
environment: teamEnv,
})
}
} else {
emit("update:modelValue", {
type: "global",
})
}
} else {
return { type: "NO_ENV_SELECTED" }
}
})

View File

@@ -34,13 +34,6 @@
@hide-modal="displayModalNew(false)"
/>
</div>
<HoppSmartConfirmModal
:show="showConfirmRemoveEnvModal"
:title="t('confirm.remove_team')"
@hide-modal="showConfirmRemoveEnvModal = false"
@resolve="removeSelectedEnvironment()"
/>
</template>
<script setup lang="ts">
@@ -51,25 +44,18 @@ import { GetMyTeamsQuery } from "~/helpers/backend/graphql"
import { useReadonlyStream, useStream } from "@composables/stream"
import { useI18n } from "~/composables/i18n"
import {
getSelectedEnvironmentIndex,
globalEnv$,
selectedEnvironmentIndex$,
setSelectedEnvironmentIndex,
} from "~/newstore/environments"
import TeamEnvironmentAdapter from "~/helpers/teams/TeamEnvironmentAdapter"
import { defineActionHandler } from "~/helpers/actions"
import { workspaceStatus$ } from "~/newstore/workspace"
import TeamListAdapter from "~/helpers/teams/TeamListAdapter"
import { useLocalState } from "~/newstore/localstate"
import { pipe } from "fp-ts/function"
import * as TE from "fp-ts/TaskEither"
import { GQLError } from "~/helpers/backend/GQLClient"
import { deleteEnvironment } from "~/newstore/environments"
import { deleteTeamEnvironment } from "~/helpers/backend/mutations/TeamEnvironment"
import { useToast } from "~/composables/toast"
import { WorkspaceService } from "~/services/workspace.service"
import { useService } from "dioc/vue"
import { onLoggedIn } from "~/composables/auth"
const t = useI18n()
const toast = useToast()
type EnvironmentType = "my-environments" | "team-environments"
@@ -98,8 +84,7 @@ const currentUser = useReadonlyStream(
)
// TeamList-Adapter
const workspaceService = useService(WorkspaceService)
const teamListAdapter = workspaceService.acquireTeamListAdapter(null)
const teamListAdapter = new TeamListAdapter(true)
const myTeams = useReadonlyStream(teamListAdapter.teamList$, null)
const teamListFetched = ref(false)
const REMEMBERED_TEAM_ID = useLocalState("REMEMBERED_TEAM_ID")
@@ -152,7 +137,11 @@ watch(
}
)
const workspace = workspaceService.currentWorkspace
onLoggedIn(() => {
!teamListAdapter.isInitialized && teamListAdapter.initialize()
})
const workspace = useReadonlyStream(workspaceStatus$, { type: "personal" })
// Switch to my environments if workspace is personal and to team environments if workspace is team
// also resets selected environment if workspace is personal and the previous selected environment was a team environment
@@ -179,7 +168,6 @@ watch(
}
)
const showConfirmRemoveEnvModal = ref(false)
const showModalNew = ref(false)
const showModalDetails = ref(false)
const action = ref<"new" | "edit">("edit")
@@ -206,30 +194,6 @@ const editEnvironment = (environmentIndex: "Global") => {
displayModalEdit(true)
}
const removeSelectedEnvironment = () => {
const selectedEnvIndex = getSelectedEnvironmentIndex()
if (selectedEnvIndex?.type === "NO_ENV_SELECTED") return
if (selectedEnvIndex?.type === "MY_ENV") {
deleteEnvironment(selectedEnvIndex.index)
toast.success(`${t("state.deleted")}`)
}
if (selectedEnvIndex?.type === "TEAM_ENV") {
pipe(
deleteTeamEnvironment(selectedEnvIndex.teamEnvID),
TE.match(
(err: GQLError<string>) => {
console.error(err)
},
() => {
toast.success(`${t("team_environment.deleted")}`)
}
)
)()
}
}
const resetSelectedData = () => {
editingEnvironmentIndex.value = null
}
@@ -239,10 +203,6 @@ defineActionHandler("modals.environment.new", () => {
showModalDetails.value = true
})
defineActionHandler("modals.environment.delete-selected", () => {
showConfirmRemoveEnvModal.value = true
})
defineActionHandler(
"modals.my.environment.edit",
({ envName, variableName }) => {
@@ -296,7 +256,7 @@ watch(
defineActionHandler("modals.environment.add", ({ envName, variableName }) => {
editingVariableName.value = envName
if (variableName) editingVariableValue.value = variableName
editingVariableValue.value = variableName
displayModalNew(true)
})
</script>

View File

@@ -60,17 +60,7 @@
:placeholder="`${t('count.value', { count: index + 1 })}`"
:envs="liveEnvs"
:name="'value' + index"
:secret="env.secret"
/>
<div class="flex">
<HoppButtonSecondary
id="variable"
v-tippy="{ theme: 'tooltip' }"
:title="t('action.secret')"
:icon="env.secret ? IconEyeOff : IconEye"
@click="toggleEnvironmentSecret(index)"
/>
</div>
<div class="flex">
<HoppButtonSecondary
id="variable"
@@ -91,6 +81,7 @@
<HoppButtonSecondary
:label="`${t('add.new')}`"
filled
class="mb-4"
@click="addEnvironmentVariable"
/>
</HoppSmartPlaceholder>
@@ -120,8 +111,6 @@ import IconTrash2 from "~icons/lucide/trash-2"
import IconDone from "~icons/lucide/check"
import IconPlus from "~icons/lucide/plus"
import IconTrash from "~icons/lucide/trash"
import IconEye from "~icons/lucide/eye"
import IconEyeOff from "~icons/lucide/eye-off"
import { clone } from "lodash-es"
import { computed, ref, watch } from "vue"
import * as E from "fp-ts/Either"
@@ -152,7 +141,6 @@ type EnvironmentVariable = {
env: {
key: string
value: string
secret: boolean
}
}
@@ -185,7 +173,7 @@ const idTicker = ref(0)
const editingName = ref<string | null>(null)
const vars = ref<EnvironmentVariable[]>([
{ id: idTicker.value++, env: { key: "", value: "", secret: false } },
{ id: idTicker.value++, env: { key: "", value: "" } },
])
const clearIcon = refAutoReset<typeof IconTrash2 | typeof IconDone>(
@@ -216,8 +204,6 @@ const workingEnv = computed(() => {
}
})
const oldEnvironments = ref<string[]>([])
const envList = useReadonlyStream(environments$, []) || props.envVars()
const evnExpandError = computed(() => {
@@ -249,28 +235,6 @@ const liveEnvs = computed(() => {
}
})
watch(liveEnvs, (newLiveEnv, oldLiveEnv) => {
const oldEnvLength = oldLiveEnv.length
const newEnvLength = newLiveEnv.length
if (oldEnvLength === newEnvLength) {
const _oldEnvironments = []
for (let i = 0; i < newEnvLength; i++) {
const newVar = newLiveEnv[i]
const oldVar = oldLiveEnv[i]
let newValue = ""
if (!newVar.secret) {
newValue = newVar.value
} else if (!oldVar.secret) {
newValue = oldVar.value
} else {
newValue = oldEnvironments.value[i]
}
_oldEnvironments.push(newValue)
}
oldEnvironments.value = _oldEnvironments
}
})
watch(
() => props.show,
(show) => {
@@ -299,7 +263,6 @@ const addEnvironmentVariable = () => {
env: {
key: "",
value: "",
secret: false,
},
})
}
@@ -308,23 +271,12 @@ const removeEnvironmentVariable = (index: number) => {
vars.value.splice(index, 1)
}
const toggleEnvironmentSecret = (index: number) => {
vars.value[index].env.secret = !vars.value[index].env.secret
}
const saveEnvironment = () => {
if (!editingName.value) {
toast.error(`${t("environment.invalid_name")}`)
return
}
const _vars = vars.value
for (let i = 0; i < vars.value.length; i++) {
const value = oldEnvironments.value[i]
if (value) {
_vars[i].env.value = value
}
}
vars.value = _vars
const filterdVariables = pipe(
vars.value,
A.filterMap(

View File

@@ -42,6 +42,7 @@
:label="`${t('add.new')}`"
filled
outline
class="mb-4"
@click="displayModalAdd(true)"
/>
</HoppSmartPlaceholder>

View File

@@ -63,17 +63,7 @@
:envs="liveEnvs"
:name="'value' + index"
:readonly="isViewer"
:secret="env.secret"
/>
<div v-if="!isViewer" class="flex">
<HoppButtonSecondary
id="variable"
v-tippy="{ theme: 'tooltip' }"
:title="t('action.secret')"
:icon="env.secret ? IconEyeOff : IconEye"
@click="toggleEnvironmentSecret(index)"
/>
</div>
<div v-if="!isViewer" class="flex">
<HoppButtonSecondary
id="variable"
@@ -96,11 +86,13 @@
disabled
:label="`${t('add.new')}`"
filled
class="mb-4"
/>
<HoppButtonSecondary
v-else
:label="`${t('add.new')}`"
filled
class="mb-4"
@click="addEnvironmentVariable"
/>
</HoppSmartPlaceholder>
@@ -149,8 +141,6 @@ import IconTrash from "~icons/lucide/trash"
import IconTrash2 from "~icons/lucide/trash-2"
import IconDone from "~icons/lucide/check"
import IconPlus from "~icons/lucide/plus"
import IconEye from "~icons/lucide/eye"
import IconEyeOff from "~icons/lucide/eye-off"
import { platform } from "~/platform"
type EnvironmentVariable = {
@@ -158,7 +148,6 @@ type EnvironmentVariable = {
env: {
key: string
value: string
secret: boolean
}
}
@@ -195,10 +184,9 @@ const idTicker = ref(0)
const editingName = ref<string | null>(null)
const vars = ref<EnvironmentVariable[]>([
{ id: idTicker.value++, env: { key: "", value: "", secret: false } },
{ id: idTicker.value++, env: { key: "", value: "" } },
])
const oldEnvironments = ref<string[]>([])
const clearIcon = refAutoReset<typeof IconTrash2 | typeof IconDone>(
IconTrash2,
1000
@@ -226,28 +214,6 @@ const liveEnvs = computed(() => {
}
})
watch(liveEnvs, (newLiveEnv, oldLiveEnv) => {
const oldEnvLength = oldLiveEnv.length
const newEnvLength = newLiveEnv.length
if (oldEnvLength === newEnvLength) {
const _oldEnvironments = []
for (let i = 0; i < newEnvLength; i++) {
const newVar = newLiveEnv[i]
const oldVar = oldLiveEnv[i]
let newValue = ""
if (!newVar.secret) {
newValue = newVar.value
} else if (!oldVar.secret) {
newValue = oldVar.value
} else {
newValue = oldEnvironments.value[i]
}
_oldEnvironments.push(newValue)
}
oldEnvironments.value = _oldEnvironments
}
})
watch(
() => props.show,
(show) => {
@@ -256,7 +222,7 @@ watch(
editingName.value = null
vars.value = pipe(
props.envVars() ?? [],
A.map((e: { key: string; value: string; secret: boolean }) => ({
A.map((e: { key: string; value: string }) => ({
id: idTicker.value++,
env: clone(e),
}))
@@ -265,7 +231,7 @@ watch(
editingName.value = props.editingEnvironment.environment.name ?? null
vars.value = pipe(
props.editingEnvironment.environment.variables ?? [],
A.map((e: { key: string; value: string; secret: boolean }) => ({
A.map((e: { key: string; value: string }) => ({
id: idTicker.value++,
env: clone(e),
}))
@@ -287,7 +253,6 @@ const addEnvironmentVariable = () => {
env: {
key: "",
value: "",
secret: false,
},
})
}
@@ -296,10 +261,6 @@ const removeEnvironmentVariable = (index: number) => {
vars.value.splice(index, 1)
}
const toggleEnvironmentSecret = (index: number) => {
vars.value[index].env.secret = !vars.value[index].env.secret
}
const isLoading = ref(false)
const saveEnvironment = async () => {
@@ -310,15 +271,6 @@ const saveEnvironment = async () => {
return
}
const _vars = vars.value
for (let i = 0; i < vars.value.length; i++) {
const value = oldEnvironments.value[i]
if (value) {
_vars[i].env.value = value
}
}
vars.value = _vars
const filterdVariables = pipe(
vars.value,
A.filterMap(

View File

@@ -54,6 +54,7 @@
v-tippy="{ theme: 'tooltip' }"
disabled
filled
class="mb-4"
:icon="IconPlus"
:title="t('team.no_access')"
:label="t('action.new')"
@@ -63,6 +64,7 @@
:label="`${t('add.new')}`"
filled
outline
class="mb-4"
@click="displayModalAdd(true)"
/>
</HoppSmartPlaceholder>

View File

@@ -312,10 +312,8 @@ const authProviders: AuthProviderItem[] = [
},
]
// Do not format the `import.meta.env.VITE_ALLOWED_AUTH_PROVIDERS` call into multiple lines!
// prettier-ignore
const allowedAuthProvidersIDsString =
import.meta.env.VITE_ALLOWED_AUTH_PROVIDERS
const allowedAuthProvidersIDsString: string | undefined = import.meta.env
.VITE_ALLOWED_AUTH_PROVIDERS
const allowedAuthProvidersIDs = allowedAuthProvidersIDsString
? allowedAuthProvidersIDsString.split(",")

View File

@@ -1,7 +1,7 @@
<template>
<div class="flex flex-col flex-1">
<div
class="sticky top-sidebarPrimaryStickyFold z-10 flex items-center justify-between pl-4 border-y bg-primary border-dividerLight"
class="sticky z-10 flex items-center justify-between flex-shrink-0 pl-4 overflow-x-auto border-b bg-primary border-dividerLight top-upperSecondaryStickyFold"
>
<span class="flex items-center">
<label class="font-semibold truncate text-secondaryLight">
@@ -32,7 +32,7 @@
:active="authName === 'None'"
@click="
() => {
auth.authType = 'none'
authType = 'none'
hide()
}
"
@@ -43,7 +43,7 @@
:active="authName === 'Basic Auth'"
@click="
() => {
auth.authType = 'basic'
authType = 'basic'
hide()
}
"
@@ -54,7 +54,7 @@
:active="authName === 'Bearer'"
@click="
() => {
auth.authType = 'bearer'
authType = 'bearer'
hide()
}
"
@@ -65,7 +65,7 @@
:active="authName === 'OAuth 2.0'"
@click="
() => {
auth.authType = 'oauth-2'
authType = 'oauth-2'
hide()
}
"
@@ -76,7 +76,7 @@
:active="authName === 'API key'"
@click="
() => {
auth.authType = 'api-key'
authType = 'api-key'
hide()
}
"
@@ -90,8 +90,8 @@
:on="!URLExcludes.auth"
@change="setExclude('auth', !$event)"
>
{{ $t("authorization.include_in_url") }}
</HoppSmartCheckbox>-->
{{ t("authorization.include_in_url") }}
</HoppSmartCheckbox> -->
<HoppSmartCheckbox
:on="authActive"
class="px-2"
@@ -115,7 +115,7 @@
</div>
</div>
<HoppSmartPlaceholder
v-if="auth.authType === 'none'"
v-if="authType === 'none'"
:src="`/images/states/${colorMode.value}/login.svg`"
:alt="`${t('empty.authorization')}`"
:text="t('empty.authorization')"
@@ -127,47 +127,114 @@
blank
:icon="IconExternalLink"
reverse
class="mb-4"
/>
</HoppSmartPlaceholder>
<div v-else class="flex flex-1 border-b border-dividerLight">
<div class="w-2/3 border-r border-dividerLight">
<div v-if="auth.authType === 'basic'">
<div v-if="authType === 'basic'">
<div class="flex flex-1 border-b border-dividerLight">
<SmartEnvInput
v-model="auth.username"
v-model="basicUsername"
:environment-highlights="false"
:placeholder="t('authorization.username')"
/>
</div>
<div class="flex flex-1 border-b border-dividerLight">
<SmartEnvInput
v-model="auth.password"
v-model="basicPassword"
:environment-highlights="false"
:placeholder="t('authorization.password')"
/>
</div>
</div>
<div v-if="auth.authType === 'bearer'">
<div v-if="authType === 'bearer'">
<div class="flex flex-1 border-b border-dividerLight">
<SmartEnvInput
v-model="auth.token"
v-model="bearerToken"
:environment-highlights="false"
placeholder="Token"
/>
</div>
</div>
<div v-if="auth.authType === 'oauth-2'">
<div v-if="authType === 'oauth-2'">
<div class="flex flex-1 border-b border-dividerLight">
<SmartEnvInput
v-model="auth.token"
v-model="oauth2Token"
:environment-highlights="false"
placeholder="Token"
/>
</div>
<HttpOAuth2Authorization v-model="auth" />
<HttpOAuth2Authorization />
</div>
<div v-if="auth.authType === 'api-key'">
<HttpAuthorizationApiKey v-model="auth" />
<div v-if="authType === 'api-key'">
<div class="flex flex-1 border-b border-dividerLight">
<SmartEnvInput
v-model="apiKey"
:environment-highlights="false"
placeholder="Key"
/>
</div>
<div class="flex flex-1 border-b border-dividerLight">
<SmartEnvInput
v-model="apiValue"
:environment-highlights="false"
placeholder="Value"
/>
</div>
<div class="flex items-center border-b border-dividerLight">
<span class="flex items-center">
<label class="ml-4 text-secondaryLight">
{{ t("authorization.pass_key_by") }}
</label>
<tippy
interactive
trigger="click"
theme="popover"
:on-shown="() => authTippyActions.focus()"
>
<span class="select-wrapper">
<HoppButtonSecondary
:label="addTo || t('state.none')"
class="pr-8 ml-2 rounded-none"
/>
</span>
<template #content="{ hide }">
<div
ref="authTippyActions"
class="flex flex-col focus:outline-none"
tabindex="0"
@keyup.escape="hide()"
>
<HoppSmartItem
:icon="addTo === 'Headers' ? IconCircleDot : IconCircle"
:active="addTo === 'Headers'"
:label="'Headers'"
@click="
() => {
addTo = 'Headers'
hide()
}
"
/>
<HoppSmartItem
:icon="
addTo === 'Query params' ? IconCircleDot : IconCircle
"
:active="addTo === 'Query params'"
:label="'Query params'"
@click="
() => {
addTo = 'Query params'
hide()
}
"
/>
</div>
</template>
</tippy>
</span>
</div>
</div>
</div>
<div
@@ -190,45 +257,55 @@
</template>
<script setup lang="ts">
import IconHelpCircle from "~icons/lucide/help-circle"
import { computed, ref, Ref } from "vue"
import {
HoppGQLAuthAPIKey,
HoppGQLAuthBasic,
HoppGQLAuthBearer,
HoppGQLAuthOAuth2,
} from "@hoppscotch/data"
import { pluckRef } from "@composables/ref"
import { useStream } from "@composables/stream"
import { useI18n } from "@composables/i18n"
import { useColorMode } from "@composables/theming"
import { gqlAuth$, setGQLAuth } from "~/newstore/GQLSession"
import IconTrash2 from "~icons/lucide/trash-2"
import IconHelpCircle from "~icons/lucide/help-circle"
import IconExternalLink from "~icons/lucide/external-link"
import IconCircleDot from "~icons/lucide/circle-dot"
import IconCircle from "~icons/lucide/circle"
import { computed, ref } from "vue"
import { HoppGQLAuth } from "@hoppscotch/data"
import { pluckRef } from "@composables/ref"
import { useI18n } from "@composables/i18n"
import { useColorMode } from "@composables/theming"
import { useVModel } from "@vueuse/core"
const t = useI18n()
const colorMode = useColorMode()
const props = defineProps<{
modelValue: HoppGQLAuth
}>()
const emit = defineEmits<{
(e: "update:modelValue", value: HoppGQLAuth): void
}>()
const auth = useVModel(props, "modelValue", emit)
const AUTH_KEY_NAME = {
basic: "Basic Auth",
bearer: "Bearer",
"oauth-2": "OAuth 2.0",
"api-key": "API key",
none: "None",
} as const
const authType = pluckRef(auth, "authType")
const authName = computed(() =>
AUTH_KEY_NAME[authType.value] ? AUTH_KEY_NAME[authType.value] : "None"
const auth = useStream(
gqlAuth$,
{ authType: "none", authActive: true },
setGQLAuth
)
const authType = pluckRef(auth, "authType")
const authName = computed(() => {
if (authType.value === "basic") return "Basic Auth"
else if (authType.value === "bearer") return "Bearer"
else if (authType.value === "oauth-2") return "OAuth 2.0"
else if (authType.value === "api-key") return "API key"
else return "None"
})
const authActive = pluckRef(auth, "authActive")
const basicUsername = pluckRef(auth as Ref<HoppGQLAuthBasic>, "username")
const basicPassword = pluckRef(auth as Ref<HoppGQLAuthBasic>, "password")
const bearerToken = pluckRef(auth as Ref<HoppGQLAuthBearer>, "token")
const oauth2Token = pluckRef(auth as Ref<HoppGQLAuthOAuth2>, "token")
const apiKey = pluckRef(auth as Ref<HoppGQLAuthAPIKey>, "key")
const apiValue = pluckRef(auth as Ref<HoppGQLAuthAPIKey>, "value")
const addTo = pluckRef(auth as Ref<HoppGQLAuthAPIKey>, "addTo")
if (typeof addTo.value === "undefined") {
addTo.value = "Headers"
apiKey.value = ""
apiValue.value = ""
}
const clearContent = () => {
auth.value = {
@@ -239,4 +316,5 @@ const clearContent = () => {
// Template refs
const tippyActions = ref<any | null>(null)
const authTippyActions = ref<any | null>(null)
</script>

View File

@@ -1,430 +0,0 @@
<template>
<div
class="sticky top-sidebarPrimaryStickyFold z-10 flex items-center justify-between pl-4 border-y bg-primary border-dividerLight"
>
<label class="font-semibold text-secondaryLight">
{{ t("tab.headers") }}
</label>
<div class="flex">
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
to="https://docs.hoppscotch.io/documentation/features/graphql-api-testing"
blank
:title="t('app.wiki')"
:icon="IconHelpCircle"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="t('action.clear_all')"
:icon="IconTrash2"
@click="clearContent()"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="t('state.linewrap')"
:class="{ '!text-accent': linewrapEnabled }"
:icon="IconWrapText"
@click.prevent="linewrapEnabled = !linewrapEnabled"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="t('state.bulk_mode')"
:icon="IconEdit"
:class="{ '!text-accent': bulkMode }"
@click="bulkMode = !bulkMode"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="t('add.new')"
:icon="IconPlus"
:disabled="bulkMode"
@click="addHeader"
/>
</div>
</div>
<div v-if="bulkMode" ref="bulkEditor" class="flex flex-col flex-1"></div>
<div v-else>
<draggable
v-model="workingHeaders"
:item-key="(header: any) => `header-${header.id}`"
animation="250"
handle=".draggable-handle"
draggable=".draggable-content"
ghost-class="cursor-move"
chosen-class="bg-primaryLight"
drag-class="cursor-grabbing"
>
<template #item="{ element: header, index }">
<div
class="flex border-b divide-x divide-dividerLight border-dividerLight draggable-content group"
>
<span>
<HoppButtonSecondary
v-tippy="{
theme: 'tooltip',
delay: [500, 20],
content:
index !== workingHeaders?.length - 1
? t('action.drag_to_reorder')
: null,
}"
:icon="IconGripVertical"
class="cursor-auto text-primary hover:text-primary"
:class="{
'draggable-handle group-hover:text-secondaryLight !cursor-grab':
index !== workingHeaders?.length - 1,
}"
tabindex="-1"
/>
</span>
<HoppSmartAutoComplete
:placeholder="`${t('count.header', { count: index + 1 })}`"
:source="commonHeaders"
:spellcheck="false"
:value="header.key"
autofocus
styles="
bg-transparent
flex
flex-1
py-1
px-4
truncate
"
class="flex-1 !flex"
@input="
updateHeader(index, {
id: header.id,
key: $event,
value: header.value,
active: header.active,
})
"
/>
<input
class="flex flex-1 px-4 py-2 bg-transparent"
:placeholder="`${t('count.value', { count: index + 1 })}`"
:name="`value ${String(index)}`"
:value="header.value"
autofocus
@change="
updateHeader(index, {
id: header.id,
key: header.key,
value: ($event!.target! as HTMLInputElement).value,
active: header.active,
})
"
/>
<span>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="
header.hasOwnProperty('active')
? header.active
? t('action.turn_off')
: t('action.turn_on')
: t('action.turn_off')
"
:icon="
header.hasOwnProperty('active')
? header.active
? IconCheckCircle
: IconCircle
: IconCheckCircle
"
color="green"
@click="
updateHeader(index, {
id: header.id,
key: header.key,
value: header.value,
active: !header.active,
})
"
/>
</span>
<span>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="t('action.remove')"
:icon="IconTrash"
color="red"
@click="deleteHeader(index)"
/>
</span>
</div>
</template>
</draggable>
<HoppSmartPlaceholder
v-if="workingHeaders.length === 0"
:src="`/images/states/${colorMode.value}/add_category.svg`"
:alt="`${t('empty.headers')}`"
:text="t('empty.headers')"
>
<HoppButtonSecondary
:label="`${t('add.new')}`"
filled
:icon="IconPlus"
@click="addHeader"
/>
</HoppSmartPlaceholder>
</div>
</template>
<script setup lang="ts">
import IconHelpCircle from "~icons/lucide/help-circle"
import IconTrash2 from "~icons/lucide/trash-2"
import IconEdit from "~icons/lucide/edit"
import IconPlus from "~icons/lucide/plus"
import IconGripVertical from "~icons/lucide/grip-vertical"
import IconCheckCircle from "~icons/lucide/check-circle"
import IconTrash from "~icons/lucide/trash"
import IconCircle from "~icons/lucide/circle"
import IconWrapText from "~icons/lucide/wrap-text"
import { reactive, ref, watch } from "vue"
import * as E from "fp-ts/Either"
import * as O from "fp-ts/Option"
import * as A from "fp-ts/Array"
import * as RA from "fp-ts/ReadonlyArray"
import { pipe, flow } from "fp-ts/function"
import {
GQLHeader,
rawKeyValueEntriesToString,
parseRawKeyValueEntriesE,
RawKeyValueEntry,
HoppGQLRequest,
} from "@hoppscotch/data"
import draggable from "vuedraggable-es"
import { clone, cloneDeep, isEqual } from "lodash-es"
import { useColorMode } from "@composables/theming"
import { useI18n } from "@composables/i18n"
import { useToast } from "@composables/toast"
import { commonHeaders } from "~/helpers/headers"
import { useCodemirror } from "@composables/codemirror"
import { objRemoveKey } from "~/helpers/functional/object"
import { useVModel } from "@vueuse/core"
const colorMode = useColorMode()
const t = useI18n()
const toast = useToast()
// v-model integration with props and emit
const props = defineProps<{ modelValue: HoppGQLRequest }>()
const emit = defineEmits<{
(e: "update:modelValue", value: HoppGQLRequest): void
}>()
const request = useVModel(props, "modelValue", emit)
const idTicker = ref(0)
const linewrapEnabled = ref(false)
const bulkMode = ref(false)
const bulkHeaders = ref("")
const deletionToast = ref<{ goAway: (delay: number) => void } | null>(null)
const bulkEditor = ref<any | null>(null)
useCodemirror(
bulkEditor,
bulkHeaders,
reactive({
extendedEditorConfig: {
mode: "text/x-yaml",
placeholder: `${t("state.bulk_mode_placeholder")}`,
lineWrapping: linewrapEnabled,
},
linter: null,
completer: null,
environmentHighlights: false,
})
)
// The UI representation of the headers list (has the empty end header)
const workingHeaders = ref<Array<GQLHeader & { id: number }>>([
{
id: idTicker.value++,
key: "",
value: "",
active: true,
},
])
// Rule: Working Headers always have one empty header or the last element is always an empty header
watch(workingHeaders, (headersList) => {
if (
headersList.length > 0 &&
headersList[headersList.length - 1].key !== ""
) {
workingHeaders.value.push({
id: idTicker.value++,
key: "",
value: "",
active: true,
})
}
})
// Sync logic between headers and working headers
watch(
props.modelValue.headers,
(newHeadersList) => {
// Sync should overwrite working headers
const filteredWorkingHeaders = pipe(
workingHeaders.value,
A.filterMap(
flow(
O.fromPredicate((e) => e.key !== ""),
O.map(objRemoveKey("id"))
)
)
)
const filteredBulkHeaders = pipe(
parseRawKeyValueEntriesE(bulkHeaders.value),
E.map(
flow(
RA.filter((e) => e.key !== ""),
RA.toArray
)
),
E.getOrElse(() => [] as RawKeyValueEntry[])
)
if (!isEqual(newHeadersList, filteredWorkingHeaders)) {
workingHeaders.value = pipe(
newHeadersList,
A.map((x) => ({ id: idTicker.value++, ...x }))
)
}
if (!isEqual(newHeadersList, filteredBulkHeaders)) {
bulkHeaders.value = rawKeyValueEntriesToString(newHeadersList)
}
},
{ immediate: true }
)
watch(workingHeaders, (newWorkingHeaders) => {
const fixedHeaders = pipe(
newWorkingHeaders,
A.filterMap(
flow(
O.fromPredicate((e) => e.key !== ""),
O.map(objRemoveKey("id"))
)
)
)
if (!isEqual(request.value.headers, fixedHeaders)) {
request.value.headers = cloneDeep(fixedHeaders)
}
})
// Bulk Editor Syncing with Working Headers
watch(bulkHeaders, (newBulkHeaders) => {
const filteredBulkHeaders = pipe(
parseRawKeyValueEntriesE(newBulkHeaders),
E.map(
flow(
RA.filter((e) => e.key !== ""),
RA.toArray
)
),
E.getOrElse(() => [] as RawKeyValueEntry[])
)
if (!isEqual(request.value.headers, filteredBulkHeaders)) {
request.value.headers = filteredBulkHeaders
}
})
watch(workingHeaders, (newHeadersList) => {
// If we are in bulk mode, don't apply direct changes
if (bulkMode.value) return
try {
const currentBulkHeaders = bulkHeaders.value.split("\n").map((item) => ({
key: item.substring(0, item.indexOf(":")).trimLeft().replace(/^#/, ""),
value: item.substring(item.indexOf(":") + 1).trimLeft(),
active: !item.trim().startsWith("#"),
}))
const filteredHeaders = newHeadersList.filter((x) => x.key !== "")
if (!isEqual(currentBulkHeaders, filteredHeaders)) {
bulkHeaders.value = rawKeyValueEntriesToString(filteredHeaders)
}
} catch (e) {
toast.error(`${t("error.something_went_wrong")}`)
console.error(e)
}
})
const addHeader = () => {
workingHeaders.value.push({
id: idTicker.value++,
key: "",
value: "",
active: true,
})
}
const updateHeader = (index: number, header: GQLHeader & { id: number }) => {
workingHeaders.value = workingHeaders.value.map((h, i) =>
i === index ? header : h
)
}
const deleteHeader = (index: number) => {
const headersBeforeDeletion = clone(workingHeaders.value)
if (
!(
headersBeforeDeletion.length > 0 &&
index === headersBeforeDeletion.length - 1
)
) {
if (deletionToast.value) {
deletionToast.value.goAway(0)
deletionToast.value = null
}
deletionToast.value = toast.success(`${t("state.deleted")}`, {
action: [
{
text: `${t("action.undo")}`,
onClick: (_: any, toastObject: any) => {
workingHeaders.value = headersBeforeDeletion
toastObject.goAway(0)
deletionToast.value = null
},
},
],
onComplete: () => {
deletionToast.value = null
},
})
}
workingHeaders.value.splice(index, 1)
}
const clearContent = () => {
// set headers list to the initial state
workingHeaders.value = [
{
id: idTicker.value++,
key: "",
value: "",
active: true,
},
]
bulkHeaders.value = ""
}
</script>

View File

@@ -1,235 +0,0 @@
<template>
<div
class="sticky top-sidebarPrimaryStickyFold z-10 flex items-center justify-between pl-4 border-y bg-primary border-dividerLight"
>
<label class="font-semibold text-secondaryLight">
{{ t("request.query") }}
</label>
<div class="flex">
<HoppButtonSecondary
v-if="subscriptionState === 'SUBSCRIBED'"
v-tippy="{
theme: 'tooltip',
delay: [500, 20],
allowHTML: true,
}"
:title="`${t('request.stop')}`"
:label="`${t('request.stop')}`"
:icon="IconStop"
class="rounded-none !text-accent !hover:text-accentDark"
@click="unsubscribe()"
/>
<HoppButtonSecondary
v-if="selectedOperation && subscriptionState !== 'SUBSCRIBED'"
v-tippy="{
theme: 'tooltip',
delay: [500, 20],
allowHTML: true,
}"
:title="`${t('request.run')} <kbd>${getSpecialKey()}</kbd><kbd>G</kbd>`"
:label="`${selectedOperation.name?.value ?? t('request.run')}`"
:icon="IconPlay"
:disabled="!selectedOperation"
class="rounded-none !text-accent !hover:text-accentDark"
@click="runQuery(selectedOperation)"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip', delay: [500, 20], allowHTML: true }"
:title="`${t(
'request.save'
)} <kbd>${getSpecialKey()}</kbd><kbd>S</kbd>`"
:label="`${t('request.save')}`"
:icon="IconSave"
class="rounded-none"
@click="saveRequest"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
to="https://docs.hoppscotch.io/documentation/features/graphql-api-testing"
blank
:title="t('app.wiki')"
:icon="IconHelpCircle"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="t('action.clear_all')"
:icon="IconTrash2"
@click="clearGQLQuery()"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="t('state.linewrap')"
:class="{ '!text-accent': linewrapEnabled }"
:icon="IconWrapText"
@click.prevent="linewrapEnabled = !linewrapEnabled"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="t('action.prettify')"
:icon="prettifyQueryIcon"
@click="prettifyQuery"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="t('action.copy')"
:icon="copyQueryIcon"
@click="copyQuery"
/>
</div>
</div>
<div ref="queryEditor" class="flex flex-col flex-1"></div>
</template>
<script setup lang="ts">
import IconPlay from "~icons/lucide/play"
import IconStop from "~icons/lucide/stop-circle"
import IconSave from "~icons/lucide/save"
import IconHelpCircle from "~icons/lucide/help-circle"
import IconTrash2 from "~icons/lucide/trash-2"
import IconCopy from "~icons/lucide/copy"
import IconCheck from "~icons/lucide/check"
import IconInfo from "~icons/lucide/info"
import IconWand from "~icons/lucide/wand"
import IconWrapText from "~icons/lucide/wrap-text"
import { onMounted, reactive, ref, markRaw } from "vue"
import { copyToClipboard } from "@helpers/utils/clipboard"
import { useCodemirror } from "@composables/codemirror"
import { useI18n } from "@composables/i18n"
import { refAutoReset, useVModel } from "@vueuse/core"
import { useToast } from "~/composables/toast"
import { getPlatformSpecialKey as getSpecialKey } from "~/helpers/platformutils"
import * as gql from "graphql"
import { createGQLQueryLinter } from "~/helpers/editor/linting/gqlQuery"
import queryCompleter from "~/helpers/editor/completion/gqlQuery"
import { selectedGQLOpHighlight } from "~/helpers/editor/gql/operation"
import { debounce } from "lodash-es"
import { ViewUpdate } from "@codemirror/view"
import { defineActionHandler } from "~/helpers/actions"
import {
schema,
socketDisconnect,
subscriptionState,
} from "~/helpers/graphql/connection"
// Template refs
const queryEditor = ref<any | null>(null)
const t = useI18n()
const toast = useToast()
const props = defineProps<{
modelValue: string
}>()
const emit = defineEmits<{
(e: "save-request"): void
(e: "update:modelValue", val: string): void
(e: "run-query", definition: gql.OperationDefinitionNode | null): void
}>()
const copyQueryIcon = refAutoReset<typeof IconCopy | typeof IconCheck>(
IconCopy,
1000
)
const prettifyQueryIcon = refAutoReset<
typeof IconWand | typeof IconCheck | typeof IconInfo
>(IconWand, 1000)
const linewrapEnabled = ref(true)
const selectedOperation = ref<gql.OperationDefinitionNode | null>(null)
const gqlQueryString = useVModel(props, "modelValue", emit)
const debouncedOnUpdateQueryState = debounce((update: ViewUpdate) => {
const selectedPos = update.state.selection.main.head
const queryString = update.state.doc.toJSON().join(update.state.lineBreak)
try {
const operations = gql.parse(queryString)
if (operations.definitions.length === 1) {
selectedOperation.value = operations
.definitions[0] as gql.OperationDefinitionNode
return
}
selectedOperation.value =
(operations.definitions.find((def) => {
if (def.kind !== "OperationDefinition") return false
const { start, end } = def.loc!
return selectedPos >= start && selectedPos <= end
}) as gql.OperationDefinitionNode) ?? null
} catch (error) {
// console.error(error)
}
}, 300)
onMounted(() => {
try {
const operations = gql.parse(gqlQueryString.value)
if (operations.definitions.length) {
selectedOperation.value = operations
.definitions[0] as gql.OperationDefinitionNode
return
}
} catch (error) {}
})
useCodemirror(
queryEditor,
gqlQueryString,
reactive({
extendedEditorConfig: {
mode: "graphql",
placeholder: `${t("request.query")}`,
lineWrapping: linewrapEnabled,
},
linter: createGQLQueryLinter(schema),
completer: queryCompleter(schema),
environmentHighlights: false,
additionalExts: [markRaw(selectedGQLOpHighlight)],
onUpdate: debouncedOnUpdateQueryState,
})
)
// operations on graphql query string
// const operations = useReadonlyStream(props.request.operations$, [])
const prettifyQuery = () => {
try {
gqlQueryString.value = gql.print(
gql.parse(gqlQueryString.value, {
allowLegacyFragmentVariables: true,
})
)
prettifyQueryIcon.value = IconCheck
} catch (e) {
toast.error(`${t("error.gql_prettify_invalid_query")}`)
prettifyQueryIcon.value = IconInfo
}
}
const copyQuery = () => {
copyToClipboard(gqlQueryString.value)
copyQueryIcon.value = IconCheck
toast.success(`${t("state.copied_to_clipboard")}`)
}
const clearGQLQuery = () => {
gqlQueryString.value = ""
}
const runQuery = (definition: gql.OperationDefinitionNode | null = null) => {
emit("run-query", definition)
}
const unsubscribe = () => {
socketDisconnect()
}
const saveRequest = () => {
emit("save-request")
}
defineActionHandler("editor.format", prettifyQuery)
</script>

View File

@@ -17,136 +17,58 @@
<HoppButtonPrimary
id="get"
name="get"
:loading="connection.state === 'CONNECTING'"
:loading="isLoading"
:label="!connected ? t('action.connect') : t('action.disconnect')"
class="w-32"
@click="onConnectClick"
/>
</div>
</div>
<HoppSmartModal
v-if="connectionSwitchModal"
dialog
:dimissible="false"
:title="t('graphql.switch_connection')"
@close="connectionSwitchModal = false"
>
<template #body>
<p class="mb-4">
{{ t("graphql.connection_switch_url") }}:
<kbd class="shortcut-key !ml-0"> {{ lastTwoUrls.at(0) }} </kbd>
</p>
<p class="mb-4">
{{ t("graphql.connection_switch_new_url") }}:
<kbd class="shortcut-key !ml-0"> {{ lastTwoUrls.at(1) }} </kbd>
</p>
<p>{{ t("graphql.connection_switch_confirm") }}</p>
</template>
<template #footer>
<span class="flex space-x-2">
<HoppButtonPrimary
:label="t('action.connect')"
:loading="connection.state === 'CONNECTING'"
outline
@click="switchConnection()"
/>
<HoppButtonSecondary
:label="t('action.cancel')"
outline
filled
@click="cancelSwitch()"
/>
</span>
</template>
</HoppSmartModal>
</template>
<script setup lang="ts">
import { platform } from "~/platform"
import { GQLConnection } from "~/helpers/GQLConnection"
import { useReadonlyStream, useStream } from "@composables/stream"
import { useI18n } from "@composables/i18n"
import { currentActiveTab } from "~/helpers/graphql/tab"
import { computed, ref, watch } from "vue"
import { connection } from "~/helpers/graphql/connection"
import { connect } from "~/helpers/graphql/connection"
import { disconnect } from "~/helpers/graphql/connection"
import { InterceptorService } from "~/services/interceptor.service"
import {
gqlAuth$,
gqlHeaders$,
gqlURL$,
setGQLURL,
} from "~/newstore/GQLSession"
import { useService } from "dioc/vue"
import { defineActionHandler } from "~/helpers/actions"
import { InterceptorService } from "~/services/interceptor.service"
const t = useI18n()
const interceptorService = useService(InterceptorService)
const connectionSwitchModal = ref(false)
const props = defineProps<{
conn: GQLConnection
}>()
const connected = computed(() => connection.state === "CONNECTED")
const url = computed({
get: () => currentActiveTab.value?.document.request.url ?? "",
set: (value) => {
currentActiveTab.value!.document.request.url = value
},
const connected = useReadonlyStream(props.conn.connected$, false)
const isLoading = useReadonlyStream(props.conn.isLoading$, false)
const headers = useReadonlyStream(gqlHeaders$, [])
const auth = useReadonlyStream(gqlAuth$, {
authType: "none",
authActive: true,
})
const url = useStream(gqlURL$, "", setGQLURL)
const onConnectClick = () => {
if (!connected.value) {
gqlConnect()
props.conn.connect(url.value, headers.value as any, auth.value)
platform.analytics?.logEvent({
type: "HOPP_REQUEST_RUN",
platform: "graphql-schema",
strategy: interceptorService.currentInterceptorID.value!,
})
} else {
disconnect()
props.conn.disconnect()
}
}
const gqlConnect = () => {
connect(url.value, currentActiveTab.value?.document.request.headers)
platform.analytics?.logEvent({
type: "HOPP_REQUEST_RUN",
platform: "graphql-schema",
strategy: interceptorService.currentInterceptorID.value!,
})
}
const switchConnection = () => {
gqlConnect()
connectionSwitchModal.value = false
}
const lastTwoUrls = ref<string[]>([])
watch(
currentActiveTab,
(newVal) => {
if (newVal) {
lastTwoUrls.value.push(newVal.document.request.url)
if (lastTwoUrls.value.length > 2) {
lastTwoUrls.value.shift()
}
}
if (
connected.value &&
lastTwoUrls.value.length === 2 &&
lastTwoUrls.value.at(0) !== lastTwoUrls.value.at(1)
) {
disconnect()
connectionSwitchModal.value = true
}
},
{
immediate: true,
}
)
const cancelSwitch = () => {
if (connected.value) disconnect()
connectionSwitchModal.value = false
}
defineActionHandler(
"gql.connect",
gqlConnect,
computed(() => !connected.value)
)
defineActionHandler("gql.disconnect", disconnect, connected)
</script>

View File

@@ -2,42 +2,311 @@
<div class="flex flex-col flex-1 h-full">
<HoppSmartTabs
v-model="selectedOptionTab"
styles="sticky top-0 bg-primary z-10 border-b-0"
:render-inactive-tabs="true"
styles="sticky overflow-x-auto flex-shrink-0 bg-primary top-upperPrimaryStickyFold z-10"
render-inactive-tabs
>
<HoppSmartTab
:id="'query'"
:label="`${t('tab.query')}`"
:indicator="request.query && request.query.length > 0 ? true : false"
:indicator="gqlQueryString && gqlQueryString.length > 0 ? true : false"
>
<GraphqlQuery
v-model="request.query"
@run-query="runQuery"
@save-request="saveRequest"
/>
<div
class="sticky z-10 flex items-center justify-between flex-shrink-0 pl-4 overflow-x-auto border-b bg-primary border-dividerLight top-upperSecondaryStickyFold gqlRunQuery"
>
<label class="font-semibold truncate text-secondaryLight">
{{ t("request.query") }}
</label>
<div class="flex">
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip', delay: [500, 20], allowHTML: true }"
:title="`${t(
'request.run'
)} <kbd>${getSpecialKey()}</kbd><kbd>↩</kbd>`"
:label="`${t('request.run')}`"
:icon="IconPlay"
class="rounded-none !text-accent !hover:text-accentDark"
@click="runQuery()"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip', delay: [500, 20], allowHTML: true }"
:title="`${t(
'request.save'
)} <kbd>${getSpecialKey()}</kbd><kbd>S</kbd>`"
:label="`${t('request.save')}`"
:icon="IconSave"
class="rounded-none"
@click="saveRequest"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
to="https://docs.hoppscotch.io/documentation/features/graphql-api-testing"
blank
:title="t('app.wiki')"
:icon="IconHelpCircle"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="t('action.clear_all')"
:icon="IconTrash2"
@click="clearGQLQuery()"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="t('state.linewrap')"
:class="{ '!text-accent': linewrapEnabledQuery }"
:icon="IconWrapText"
@click.prevent="linewrapEnabledQuery = !linewrapEnabledQuery"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="t('action.prettify')"
:icon="prettifyQueryIcon"
@click="prettifyQuery"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="t('action.copy')"
:icon="copyQueryIcon"
@click="copyQuery"
/>
</div>
</div>
<div ref="queryEditor" class="flex flex-col flex-1"></div>
</HoppSmartTab>
<HoppSmartTab
:id="'variables'"
:label="`${t('tab.variables')}`"
:indicator="
request.variables && request.variables.length > 0 ? true : false
"
:indicator="variableString && variableString.length > 0 ? true : false"
>
<GraphqlVariable
v-model="request.variables"
@run-query="runQuery"
@save-request="saveRequest"
/>
<div
class="sticky z-10 flex items-center justify-between flex-shrink-0 pl-4 overflow-x-auto border-b bg-primary border-dividerLight top-upperSecondaryStickyFold"
>
<label class="font-semibold truncate text-secondaryLight">
{{ t("request.variables") }}
</label>
<div class="flex">
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
to="https://docs.hoppscotch.io/documentation/features/graphql-api-testing"
blank
:title="t('app.wiki')"
:icon="IconHelpCircle"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="t('action.clear_all')"
:icon="IconTrash2"
@click="clearGQLVariables()"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="t('state.linewrap')"
:class="{ '!text-accent': linewrapEnabledVariable }"
:icon="IconWrapText"
@click.prevent="
linewrapEnabledVariable = !linewrapEnabledVariable
"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="t('action.prettify')"
:icon="prettifyVariablesIcon"
@click="prettifyVariableString"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="t('action.copy')"
:icon="copyVariablesIcon"
@click="copyVariables"
/>
</div>
</div>
<div ref="variableEditor" class="flex flex-col flex-1"></div>
</HoppSmartTab>
<HoppSmartTab
:id="'headers'"
:label="`${t('tab.headers')}`"
:info="activeGQLHeadersCount === 0 ? null : `${activeGQLHeadersCount}`"
>
<GraphqlHeaders v-model="request" />
<div
class="sticky z-10 flex items-center justify-between flex-shrink-0 pl-4 overflow-x-auto border-b bg-primary border-dividerLight top-upperSecondaryStickyFold"
>
<label class="font-semibold truncate text-secondaryLight">
{{ t("tab.headers") }}
</label>
<div class="flex">
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
to="https://docs.hoppscotch.io/documentation/features/graphql-api-testing"
blank
:title="t('app.wiki')"
:icon="IconHelpCircle"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="t('action.clear_all')"
:icon="IconTrash2"
@click="clearContent()"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="t('state.linewrap')"
:class="{ '!text-accent': linewrapEnabled }"
:icon="IconWrapText"
@click.prevent="linewrapEnabled = !linewrapEnabled"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="t('state.bulk_mode')"
:icon="IconEdit"
:class="{ '!text-accent': bulkMode }"
@click="bulkMode = !bulkMode"
/>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="t('add.new')"
:icon="IconPlus"
:disabled="bulkMode"
@click="addHeader"
/>
</div>
</div>
<div
v-if="bulkMode"
ref="bulkEditor"
class="flex flex-col flex-1"
></div>
<div v-else>
<draggable
v-model="workingHeaders"
:item-key="(header) => `header-${header.id}`"
animation="250"
handle=".draggable-handle"
draggable=".draggable-content"
ghost-class="cursor-move"
chosen-class="bg-primaryLight"
drag-class="cursor-grabbing"
>
<template #item="{ element: header, index }">
<div
class="flex border-b divide-x divide-dividerLight border-dividerLight draggable-content group"
>
<span>
<HoppButtonSecondary
v-tippy="{
theme: 'tooltip',
delay: [500, 20],
content:
index !== workingHeaders?.length - 1
? t('action.drag_to_reorder')
: null,
}"
:icon="IconGripVertical"
class="cursor-auto text-primary hover:text-primary"
:class="{
'draggable-handle group-hover:text-secondaryLight !cursor-grab':
index !== workingHeaders?.length - 1,
}"
tabindex="-1"
/>
</span>
<HoppSmartAutoComplete
:placeholder="`${t('count.header', { count: index + 1 })}`"
:source="commonHeaders"
:spellcheck="false"
:value="header.key"
autofocus
styles="
bg-transparent
flex
flex-1
py-1
px-4
truncate
"
class="flex-1 !flex"
@input="
updateHeader(index, {
id: header.id,
key: $event,
value: header.value,
active: header.active,
})
"
/>
<input
class="flex flex-1 px-4 py-2 bg-transparent"
:placeholder="`${t('count.value', { count: index + 1 })}`"
:name="`value ${String(index)}`"
:value="header.value"
autofocus
@change="
updateHeader(index, {
id: header.id,
key: header.key,
value: ($event!.target! as HTMLInputElement).value,
active: header.active,
})
"
/>
<span>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="
header.hasOwnProperty('active')
? header.active
? t('action.turn_off')
: t('action.turn_on')
: t('action.turn_off')
"
:icon="
header.hasOwnProperty('active')
? header.active
? IconCheckCircle
: IconCircle
: IconCheckCircle
"
color="green"
@click="
updateHeader(index, {
id: header.id,
key: header.key,
value: header.value,
active: !header.active,
})
"
/>
</span>
<span>
<HoppButtonSecondary
v-tippy="{ theme: 'tooltip' }"
:title="t('action.remove')"
:icon="IconTrash"
color="red"
@click="deleteHeader(index)"
/>
</span>
</div>
</template>
</draggable>
<HoppSmartPlaceholder
v-if="workingHeaders.length === 0"
:src="`/images/states/${colorMode.value}/add_category.svg`"
:alt="`${t('empty.headers')}`"
:text="t('empty.headers')"
>
<HoppButtonSecondary
:label="`${t('add.new')}`"
filled
:icon="IconPlus"
class="mb-4"
@click="addHeader"
/>
</HoppSmartPlaceholder>
</div>
</HoppSmartTab>
<HoppSmartTab :id="'authorization'" :label="`${t('tab.authorization')}`">
<GraphqlAuthorization v-model="request.auth" />
<GraphqlAuthorization />
</HoppSmartTab>
</HoppSmartTabs>
<CollectionsSaveRequest
@@ -49,103 +318,432 @@
</template>
<script setup lang="ts">
import IconPlay from "~icons/lucide/play"
import IconSave from "~icons/lucide/save"
import IconHelpCircle from "~icons/lucide/help-circle"
import IconTrash2 from "~icons/lucide/trash-2"
import IconEdit from "~icons/lucide/edit"
import IconPlus from "~icons/lucide/plus"
import IconGripVertical from "~icons/lucide/grip-vertical"
import IconCheckCircle from "~icons/lucide/check-circle"
import IconTrash from "~icons/lucide/trash"
import IconCircle from "~icons/lucide/circle"
import IconCopy from "~icons/lucide/copy"
import IconCheck from "~icons/lucide/check"
import IconInfo from "~icons/lucide/info"
import IconWand2 from "~icons/lucide/wand-2"
import IconWrapText from "~icons/lucide/wrap-text"
import { Ref, computed, reactive, ref, watch } from "vue"
import * as gql from "graphql"
import * as E from "fp-ts/Either"
import * as O from "fp-ts/Option"
import * as A from "fp-ts/Array"
import * as RA from "fp-ts/ReadonlyArray"
import { pipe, flow } from "fp-ts/function"
import {
GQLHeader,
makeGQLRequest,
rawKeyValueEntriesToString,
parseRawKeyValueEntriesE,
RawKeyValueEntry,
} from "@hoppscotch/data"
import draggable from "vuedraggable-es"
import { clone, cloneDeep, isEqual } from "lodash-es"
import { refAutoReset } from "@vueuse/core"
import { copyToClipboard } from "~/helpers/utils/clipboard"
import { useReadonlyStream, useStream } from "@composables/stream"
import { useColorMode } from "@composables/theming"
import { useI18n } from "@composables/i18n"
import { useToast } from "@composables/toast"
import { completePageProgress, startPageProgress } from "@modules/loadingbar"
import * as gql from "graphql"
import { clone } from "lodash-es"
import { computed, ref, watch } from "vue"
import { defineActionHandler } from "~/helpers/actions"
import { HoppGQLRequest } from "@hoppscotch/data"
import { platform } from "~/platform"
import { currentActiveTab } from "~/helpers/graphql/tab"
import { computedWithControl } from "@vueuse/core"
import { startPageProgress, completePageProgress } from "@modules/loadingbar"
import {
GQLResponseEvent,
runGQLOperation,
gqlMessageEvent,
} from "~/helpers/graphql/connection"
gqlAuth$,
gqlHeaders$,
gqlQuery$,
gqlResponse$,
gqlURL$,
gqlVariables$,
setGQLAuth,
setGQLHeaders,
setGQLQuery,
setGQLResponse,
setGQLVariables,
} from "~/newstore/GQLSession"
import { commonHeaders } from "~/helpers/headers"
import { GQLConnection } from "~/helpers/GQLConnection"
import { makeGQLHistoryEntry, addGraphqlHistoryEntry } from "~/newstore/history"
import { platform } from "~/platform"
import { useCodemirror } from "@composables/codemirror"
import jsonLinter from "~/helpers/editor/linting/json"
import { createGQLQueryLinter } from "~/helpers/editor/linting/gqlQuery"
import queryCompleter from "~/helpers/editor/completion/gqlQuery"
import { defineActionHandler } from "~/helpers/actions"
import { getPlatformSpecialKey as getSpecialKey } from "~/helpers/platformutils"
import { objRemoveKey } from "~/helpers/functional/object"
import { useService } from "dioc/vue"
import { InterceptorService } from "~/services/interceptor.service"
import { editGraphqlRequest } from "~/newstore/collections"
export type GQLOptionTabs = "query" | "headers" | "variables" | "authorization"
const selectedOptionTab = ref<GQLOptionTabs>("query")
const interceptorService = useService(InterceptorService)
type OptionTabs = "query" | "headers" | "variables" | "authorization"
const colorMode = useColorMode()
const selectedOptionTab = ref<OptionTabs>("query")
const t = useI18n()
const interceptorService = useService(InterceptorService)
const props = defineProps<{
conn: GQLConnection
}>()
const toast = useToast()
// v-model integration with props and emit
const props = withDefaults(
defineProps<{
modelValue: HoppGQLRequest
response?: GQLResponseEvent[] | null
tabId: string
}>(),
const url = useReadonlyStream(gqlURL$, "")
const gqlQueryString = useStream(gqlQuery$, "", setGQLQuery)
const variableString = useStream(gqlVariables$, "", setGQLVariables)
const idTicker = ref(0)
const bulkMode = ref(false)
const bulkHeaders = ref("")
const bulkEditor = ref<any | null>(null)
const linewrapEnabled = ref(true)
const deletionToast = ref<{ goAway: (delay: number) => void } | null>(null)
useCodemirror(
bulkEditor,
bulkHeaders,
reactive({
extendedEditorConfig: {
mode: "text/x-yaml",
placeholder: `${t("state.bulk_mode_placeholder")}`,
lineWrapping: linewrapEnabled,
},
linter: null,
completer: null,
environmentHighlights: false,
})
)
// The functional headers list (the headers actually in the system)
const headers = useStream(gqlHeaders$, [], setGQLHeaders) as Ref<GQLHeader[]>
const auth = useStream(
gqlAuth$,
{ authType: "none", authActive: true },
setGQLAuth
)
// The UI representation of the headers list (has the empty end header)
const workingHeaders = ref<Array<GQLHeader & { id: number }>>([
{
response: null,
}
)
const emit = defineEmits(["update:modelValue", "update:response"])
const request = ref(props.modelValue)
watch(
() => request.value,
(newVal) => {
emit("update:modelValue", newVal)
id: idTicker.value++,
key: "",
value: "",
active: true,
},
{ deep: true }
])
// Rule: Working Headers always have one empty header or the last element is always an empty header
watch(workingHeaders, (headersList) => {
if (
headersList.length > 0 &&
headersList[headersList.length - 1].key !== ""
) {
workingHeaders.value.push({
id: idTicker.value++,
key: "",
value: "",
active: true,
})
}
})
// Sync logic between headers and working headers
watch(
headers,
(newHeadersList) => {
// Sync should overwrite working headers
const filteredWorkingHeaders = pipe(
workingHeaders.value,
A.filterMap(
flow(
O.fromPredicate((e) => e.key !== ""),
O.map(objRemoveKey("id"))
)
)
)
const filteredBulkHeaders = pipe(
parseRawKeyValueEntriesE(bulkHeaders.value),
E.map(
flow(
RA.filter((e) => e.key !== ""),
RA.toArray
)
),
E.getOrElse(() => [] as RawKeyValueEntry[])
)
if (!isEqual(newHeadersList, filteredWorkingHeaders)) {
workingHeaders.value = pipe(
newHeadersList,
A.map((x) => ({ id: idTicker.value++, ...x }))
)
}
if (!isEqual(newHeadersList, filteredBulkHeaders)) {
bulkHeaders.value = rawKeyValueEntriesToString(newHeadersList)
}
},
{ immediate: true }
)
const url = computedWithControl(
() => currentActiveTab.value,
() => currentActiveTab.value.document.request.url
)
watch(workingHeaders, (newWorkingHeaders) => {
const fixedHeaders = pipe(
newWorkingHeaders,
A.filterMap(
flow(
O.fromPredicate((e) => e.key !== ""),
O.map(objRemoveKey("id"))
)
)
)
if (!isEqual(headers.value, fixedHeaders)) {
headers.value = cloneDeep(fixedHeaders)
}
})
// Bulk Editor Syncing with Working Headers
watch(bulkHeaders, (newBulkHeaders) => {
const filteredBulkHeaders = pipe(
parseRawKeyValueEntriesE(newBulkHeaders),
E.map(
flow(
RA.filter((e) => e.key !== ""),
RA.toArray
)
),
E.getOrElse(() => [] as RawKeyValueEntry[])
)
if (!isEqual(headers.value, filteredBulkHeaders)) {
headers.value = filteredBulkHeaders
}
})
watch(workingHeaders, (newHeadersList) => {
// If we are in bulk mode, don't apply direct changes
if (bulkMode.value) return
try {
const currentBulkHeaders = bulkHeaders.value.split("\n").map((item) => ({
key: item.substring(0, item.indexOf(":")).trimLeft().replace(/^#/, ""),
value: item.substring(item.indexOf(":") + 1).trimLeft(),
active: !item.trim().startsWith("#"),
}))
const filteredHeaders = newHeadersList.filter((x) => x.key !== "")
if (!isEqual(currentBulkHeaders, filteredHeaders)) {
bulkHeaders.value = rawKeyValueEntriesToString(filteredHeaders)
}
} catch (e) {
toast.error(`${t("error.something_went_wrong")}`)
console.error(e)
}
})
const addHeader = () => {
workingHeaders.value.push({
id: idTicker.value++,
key: "",
value: "",
active: true,
})
}
const updateHeader = (index: number, header: GQLHeader & { id: number }) => {
workingHeaders.value = workingHeaders.value.map((h, i) =>
i === index ? header : h
)
}
const deleteHeader = (index: number) => {
const headersBeforeDeletion = clone(workingHeaders.value)
if (
!(
headersBeforeDeletion.length > 0 &&
index === headersBeforeDeletion.length - 1
)
) {
if (deletionToast.value) {
deletionToast.value.goAway(0)
deletionToast.value = null
}
deletionToast.value = toast.success(`${t("state.deleted")}`, {
action: [
{
text: `${t("action.undo")}`,
onClick: (_, toastObject) => {
workingHeaders.value = headersBeforeDeletion
toastObject.goAway(0)
deletionToast.value = null
},
},
],
onComplete: () => {
deletionToast.value = null
},
})
}
workingHeaders.value.splice(index, 1)
}
const clearContent = () => {
// set headers list to the initial state
workingHeaders.value = [
{
id: idTicker.value++,
key: "",
value: "",
active: true,
},
]
bulkHeaders.value = ""
}
const activeGQLHeadersCount = computed(
() =>
request.value.headers.filter(
(x) => x.active && (x.key !== "" || x.value !== "")
).length
headers.value.filter((x) => x.active && (x.key !== "" || x.value !== ""))
.length
)
const variableEditor = ref<any | null>(null)
const linewrapEnabledVariable = ref(true)
useCodemirror(
variableEditor,
variableString,
reactive({
extendedEditorConfig: {
mode: "application/ld+json",
placeholder: `${t("request.variables")}`,
lineWrapping: linewrapEnabledVariable,
},
linter: computed(() =>
variableString.value.length > 0 ? jsonLinter : null
),
completer: null,
environmentHighlights: false,
})
)
const queryEditor = ref<any | null>(null)
const schema = useReadonlyStream(props.conn.schema$, null, "noclone")
const linewrapEnabledQuery = ref(true)
useCodemirror(
queryEditor,
gqlQueryString,
reactive({
extendedEditorConfig: {
mode: "graphql",
placeholder: `${t("request.query")}`,
lineWrapping: linewrapEnabledQuery,
},
linter: createGQLQueryLinter(schema),
completer: queryCompleter(schema),
environmentHighlights: false,
})
)
const copyQueryIcon = refAutoReset<typeof IconCopy | typeof IconCheck>(
IconCopy,
1000
)
const copyVariablesIcon = refAutoReset<typeof IconCopy | typeof IconCheck>(
IconCopy,
1000
)
const prettifyQueryIcon = refAutoReset<
typeof IconWand2 | typeof IconCheck | typeof IconInfo
>(IconWand2, 1000)
const prettifyVariablesIcon = refAutoReset<
typeof IconWand2 | typeof IconCheck | typeof IconInfo
>(IconWand2, 1000)
const showSaveRequestModal = ref(false)
const runQuery = async (
definition: gql.OperationDefinitionNode | null = null
) => {
const copyQuery = () => {
copyToClipboard(gqlQueryString.value)
copyQueryIcon.value = IconCheck
toast.success(`${t("state.copied_to_clipboard")}`)
}
const response = useStream(gqlResponse$, "", setGQLResponse)
const runQuery = async () => {
const startTime = Date.now()
startPageProgress()
response.value = "loading"
try {
const runURL = clone(url.value)
const runHeaders = clone(request.value.headers)
const runQuery = clone(request.value.query)
const runVariables = clone(request.value.variables)
const runAuth = clone(request.value.auth)
const runHeaders = clone(headers.value)
const runQuery = clone(gqlQueryString.value)
const runVariables = clone(variableString.value)
const runAuth = clone(auth.value)
await runGQLOperation({
name: request.value.name,
url: runURL,
headers: runHeaders,
query: runQuery,
variables: runVariables,
auth: runAuth,
operationName: definition?.name?.value,
operationType: definition?.operation ?? "query",
})
const responseText = await props.conn.runQuery(
runURL,
runHeaders,
runQuery,
runVariables,
runAuth
)
const duration = Date.now() - startTime
completePageProgress()
response.value = JSON.stringify(JSON.parse(responseText), null, 2)
addGraphqlHistoryEntry(
makeGQLHistoryEntry({
request: makeGQLRequest({
name: "",
url: runURL,
query: runQuery,
headers: runHeaders,
variables: runVariables,
auth: runAuth,
}),
response: response.value,
star: false,
})
)
toast.success(`${t("state.finished_in", { duration })}`)
} catch (e: any) {
console.log(e)
// response.value = [`${e}`]
response.value = `${e}`
completePageProgress()
toast.error(
`${t("error.something_went_wrong")}. ${t("error.check_console_details")}`,
{}
)
console.error(e)
}
platform.analytics?.logEvent({
type: "HOPP_REQUEST_RUN",
platform: "graphql-query",
@@ -153,67 +751,55 @@ const runQuery = async (
})
}
watch(
() => gqlMessageEvent.value,
(event) => {
if (event === "reset") {
emit("update:response", [])
return
}
try {
if (event?.operationType !== "subscription") {
// response.value = [event]
emit("update:response", [event])
} else {
emit("update:response", [...(props.response ?? []), event])
// TODO: subscription indicator??
}
} catch (error) {
console.log(error)
}
},
{ deep: true }
)
const hideRequestModal = () => {
showSaveRequestModal.value = false
}
const saveRequest = () => {
if (
currentActiveTab.value.document.saveContext &&
currentActiveTab.value.document.saveContext.originLocation ===
"user-collection"
) {
editGraphqlRequest(
currentActiveTab.value.document.saveContext.folderPath,
currentActiveTab.value.document.saveContext.requestIndex,
currentActiveTab.value.document.request
)
currentActiveTab.value.document.isDirty = false
} else {
showSaveRequestModal.value = true
const prettifyQuery = () => {
try {
gqlQueryString.value = gql.print(
gql.parse(gqlQueryString.value, {
allowLegacyFragmentVariables: true,
})
)
prettifyQueryIcon.value = IconCheck
} catch (e) {
toast.error(`${t("error.gql_prettify_invalid_query")}`)
prettifyQueryIcon.value = IconInfo
}
}
const clearGQLQuery = () => {
request.value.query = ""
const saveRequest = () => {
showSaveRequestModal.value = true
}
const copyVariables = () => {
copyToClipboard(variableString.value)
copyVariablesIcon.value = IconCheck
toast.success(`${t("state.copied_to_clipboard")}`)
}
const prettifyVariableString = () => {
try {
const jsonObj = JSON.parse(variableString.value)
variableString.value = JSON.stringify(jsonObj, null, 2)
prettifyVariablesIcon.value = IconCheck
} catch (e) {
console.error(e)
prettifyVariablesIcon.value = IconInfo
toast.error(`${t("error.json_prettify_invalid_body")}`)
}
}
const clearGQLQuery = () => {
gqlQueryString.value = ""
}
const clearGQLVariables = () => {
variableString.value = ""
}
defineActionHandler("request.send-cancel", runQuery)
defineActionHandler("request.save", saveRequest)
defineActionHandler("request.save-as", () => {
showSaveRequestModal.value = true
})
defineActionHandler("request.reset", clearGQLQuery)
defineActionHandler("request.open-tab", ({ tab }) => {
selectedOptionTab.value = tab as GQLOptionTabs
})
</script>
<style lang="scss" scoped>
:deep(.cm-panels) {
@apply top-upperPrimaryStickyFold #{!important};
}
</style>

View File

@@ -1,50 +0,0 @@
<template>
<AppPaneLayout layout-id="gql-primary">
<template #primary>
<GraphqlRequestOptions
v-model="tab.document.request"
v-model:response="tab.response"
:tab-id="tab.id"
/>
</template>
<template #secondary>
<GraphqlResponse :response="tab.response" />
</template>
</AppPaneLayout>
</template>
<script setup lang="ts">
import { useVModel } from "@vueuse/core"
import { cloneDeep } from "lodash-es"
import { watch } from "vue"
import { isEqualHoppGQLRequest } from "~/helpers/graphql"
import { HoppGQLTab } from "~/helpers/graphql/tab"
// TODO: Move Response and Request execution code to over here
const props = defineProps<{ modelValue: HoppGQLTab }>()
const emit = defineEmits<{
(e: "update:modelValue", val: HoppGQLTab): void
}>()
const tab = useVModel(props, "modelValue", emit)
// TODO: Come up with a better dirty check
let oldRequest = cloneDeep(tab.value.document.request)
watch(
() => tab.value.document.request,
(updatedValue) => {
// TODO: Check equality of request
if (
!tab.value.document.isDirty &&
!isEqualHoppGQLRequest(oldRequest, updatedValue)
) {
tab.value.document.isDirty = true
}
oldRequest = cloneDeep(updatedValue)
},
{ deep: true }
)
</script>

View File

@@ -1,6 +1,14 @@
<template>
<div class="flex flex-col flex-1 overflow-auto whitespace-nowrap">
<div v-if="response?.length === 1" class="flex flex-col flex-1">
<HoppSmartPlaceholder
v-if="responseString === 'loading'"
:text="t('state.loading')"
>
<template #icon>
<HoppSmartSpinner class="my-4" />
</template>
</HoppSmartPlaceholder>
<div v-else-if="responseString" class="flex flex-col flex-1">
<div
class="sticky top-0 z-10 flex items-center justify-between flex-shrink-0 pl-4 overflow-x-auto border-b bg-primary border-dividerLight"
>
@@ -29,18 +37,12 @@
'action.copy'
)} <kbd>${getSpecialKey()}</kbd><kbd>.</kbd>`"
:icon="copyResponseIcon"
@click="copyResponse(response[0].data)"
@click="copyResponse"
/>
</div>
</div>
<div ref="schemaEditor" class="flex flex-col flex-1"></div>
</div>
<div
v-else-if="response && response?.length > 1"
class="flex flex-col flex-1"
>
<GraphqlSubscriptionLog :log="response" />
</div>
<AppShortcutsPrompt v-else class="p-4" />
</div>
</template>
@@ -50,34 +52,22 @@ import IconWrapText from "~icons/lucide/wrap-text"
import IconDownload from "~icons/lucide/download"
import IconCheck from "~icons/lucide/check"
import IconCopy from "~icons/lucide/copy"
import { computed, reactive, ref } from "vue"
import { reactive, ref } from "vue"
import { refAutoReset } from "@vueuse/core"
import { useCodemirror } from "@composables/codemirror"
import { copyToClipboard } from "~/helpers/utils/clipboard"
import { useReadonlyStream } from "@composables/stream"
import { useI18n } from "@composables/i18n"
import { useToast } from "@composables/toast"
import { gqlResponse$ } from "~/newstore/GQLSession"
import { defineActionHandler } from "~/helpers/actions"
import { getPlatformSpecialKey as getSpecialKey } from "~/helpers/platformutils"
import { GQLResponseEvent } from "~/helpers/graphql/connection"
const t = useI18n()
const toast = useToast()
const props = withDefaults(
defineProps<{
response: GQLResponseEvent[] | null
}>(),
{
response: null,
}
)
const responseString = computed(() => {
if (props.response?.length === 1) {
return JSON.stringify(JSON.parse(props.response[0].data), null, 2)
}
return ""
})
const responseString = useReadonlyStream(gqlResponse$, "")
const schemaEditor = ref<any | null>(null)
const linewrapEnabled = ref(true)
@@ -105,14 +95,14 @@ const copyResponseIcon = refAutoReset<typeof IconCopy | typeof IconCheck>(
1000
)
const copyResponse = (str: string) => {
copyToClipboard(str)
const copyResponse = () => {
copyToClipboard(responseString.value!)
copyResponseIcon.value = IconCheck
toast.success(`${t("state.copied_to_clipboard")}`)
}
const downloadResponse = (str: string) => {
const dataToWrite = str
const downloadResponse = () => {
const dataToWrite = responseString.value
const file = new Blob([dataToWrite!], { type: "application/json" })
const a = document.createElement("a")
const url = URL.createObjectURL(file)
@@ -128,20 +118,6 @@ const downloadResponse = (str: string) => {
}, 1000)
}
defineActionHandler(
"response.file.download",
() => downloadResponse(responseString.value),
computed(() => !!props.response && props.response.length > 0)
)
defineActionHandler(
"response.copy",
() => copyResponse(responseString.value),
computed(() => !!props.response && props.response.length > 0)
)
defineActionHandler("response.file.download", () => downloadResponse())
defineActionHandler("response.copy", () => copyResponse())
</script>
<style lang="scss" scoped>
:deep(.cm-panels) {
@apply top-sidebarPrimaryStickyFold #{!important};
}
</style>

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