feat: init new i18n format

This commit is contained in:
liyasthomas
2021-08-02 20:57:18 +05:30
parent 8a268ee6de
commit b615fe7529
66 changed files with 476 additions and 428 deletions

View File

@@ -49,10 +49,6 @@
</span> </span>
</SmartLink> </SmartLink>
</span> </span>
<ButtonSecondary <ButtonSecondary icon="close" />
v-tippy="{ theme: 'tooltip' }"
icon="close"
:title="$t('close')"
/>
</div> </div>
</template> </template>

View File

@@ -4,16 +4,16 @@
<div> <div>
<ButtonSecondary <ButtonSecondary
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="LEFT_SIDEBAR ? $t('hide_sidebar') : $t('show_sidebar')" :title="LEFT_SIDEBAR ? $t('hide.sidebar') : $t('show.sidebar')"
icon="menu_open" icon="menu_open"
:class="{ 'transform rotate-180': !LEFT_SIDEBAR }" :class="{ 'transform rotate-180': !LEFT_SIDEBAR }"
@click.native="toggleSetting('LEFT_SIDEBAR')" @click.native="toggleSetting('LEFT_SIDEBAR')"
/> />
<ButtonSecondary <ButtonSecondary
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="`${ZEN_MODE ? $t('turn_off') : $t('turn_on')} ${$t( :title="`${
'zen_mode' ZEN_MODE ? $t('action.turn_off') : $t('action.turn_on')
)}`" } ${$t('layout.zen_mode')}`"
:icon="ZEN_MODE ? 'fullscreen_exit' : 'fullscreen'" :icon="ZEN_MODE ? 'fullscreen_exit' : 'fullscreen'"
:class="{ :class="{
'!text-accent focus:text-accent hover:text-accent': ZEN_MODE, '!text-accent focus:text-accent hover:text-accent': ZEN_MODE,
@@ -33,12 +33,12 @@
v-if="navigatorShare" v-if="navigatorShare"
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
icon="share" icon="share"
:title="$t('share')" :title="$t('request.share')"
@click.native="nativeShare()" @click.native="nativeShare()"
/> />
<ButtonSecondary <ButtonSecondary
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="RIGHT_SIDEBAR ? $t('hide_sidebar') : $t('show_sidebar')" :title="RIGHT_SIDEBAR ? $t('hide.sidebar') : $t('show.sidebar')"
icon="menu_open" icon="menu_open"
:class="['transform rotate-180', { 'rotate-0': !RIGHT_SIDEBAR }]" :class="['transform rotate-180', { 'rotate-0': !RIGHT_SIDEBAR }]"
@click.native="toggleSetting('RIGHT_SIDEBAR')" @click.native="toggleSetting('RIGHT_SIDEBAR')"

View File

@@ -17,7 +17,7 @@
<TabPrimary <TabPrimary
id="installPWA" id="installPWA"
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('install_pwa')" :title="$t('header.install_pwa')"
icon="offline_bolt" icon="offline_bolt"
@click.native="showInstallPrompt()" @click.native="showInstallPrompt()"
/> />
@@ -110,7 +110,7 @@ export default {
theme: "toasted-primary", theme: "toasted-primary",
action: [ action: [
{ {
text: this.$t("dismiss"), text: this.$t("action.dismiss"),
onClick: (_, toastObject) => { onClick: (_, toastObject) => {
setLocalConfig("cookiesAllowed", "yes") setLocalConfig("cookiesAllowed", "yes")
toastObject.goAway(0) toastObject.goAway(0)

View File

@@ -85,19 +85,19 @@ export default {
shortcuts: [ shortcuts: [
{ {
keys: [getPlatformSpecialKey(), "G"], keys: [getPlatformSpecialKey(), "G"],
label: this.$t("send_request"), label: this.$t("shortcut.send_request"),
}, },
{ {
keys: [getPlatformSpecialKey(), "S"], keys: [getPlatformSpecialKey(), "S"],
label: this.$t("save_to_collections"), label: this.$t("shortcut.save_to_collections"),
}, },
{ {
keys: [getPlatformSpecialKey(), "K"], keys: [getPlatformSpecialKey(), "K"],
label: this.$t("copy_request_link"), label: this.$t("shortcut.copy_request_link"),
}, },
{ {
keys: [getPlatformSpecialKey(), "I"], keys: [getPlatformSpecialKey(), "I"],
label: this.$t("reset_request"), label: this.$t("shortcut.reset_request"),
}, },
], ],
}, },
@@ -106,31 +106,31 @@ export default {
shortcuts: [ shortcuts: [
{ {
keys: [getPlatformAlternateKey(), "↑"], keys: [getPlatformAlternateKey(), "↑"],
label: this.$t("select_next_method"), label: this.$t("shortcut.next_method"),
}, },
{ {
keys: [getPlatformAlternateKey(), "↓"], keys: [getPlatformAlternateKey(), "↓"],
label: this.$t("select_previous_method"), label: this.$t("shortcut.previous_method"),
}, },
{ {
keys: [getPlatformAlternateKey(), "G"], keys: [getPlatformAlternateKey(), "G"],
label: this.$t("select_get_method"), label: this.$t("shortcut.get_method"),
}, },
{ {
keys: [getPlatformAlternateKey(), "H"], keys: [getPlatformAlternateKey(), "H"],
label: this.$t("select_head_method"), label: this.$t("shortcut.head_method"),
}, },
{ {
keys: [getPlatformAlternateKey(), "P"], keys: [getPlatformAlternateKey(), "P"],
label: this.$t("select_post_method"), label: this.$t("shortcut.post_method"),
}, },
{ {
keys: [getPlatformAlternateKey(), "U"], keys: [getPlatformAlternateKey(), "U"],
label: this.$t("select_put_method"), label: this.$t("shortcut.put_method"),
}, },
{ {
keys: [getPlatformAlternateKey(), "X"], keys: [getPlatformAlternateKey(), "X"],
label: this.$t("select_delete_method"), label: this.$t("shortcut.delete_method"),
}, },
], ],
}, },

View File

@@ -24,11 +24,31 @@ export default {
data() { data() {
return { return {
primaryNavigation: [ primaryNavigation: [
{ target: "index", icon: "settings_ethernet", title: "REST" }, {
{ target: "graphql", svg: "graphql", title: "GraphQL" }, target: "index",
{ target: "realtime", icon: "language", title: "Realtime" }, icon: "settings_ethernet",
{ target: "documentation", icon: "book", title: "Doc" }, title: this.$t("navigation.rest"),
{ target: "settings", icon: "settings", title: "Settings" }, },
{
target: "graphql",
svg: "graphql",
title: this.$t("navigation.graphql"),
},
{
target: "realtime",
icon: "language",
title: this.$t("navigation.realtime"),
},
{
target: "documentation",
icon: "book",
title: this.$t("navigation.doc"),
},
{
target: "settings",
icon: "settings",
title: this.$t("navigation.settings"),
},
], ],
} }
}, },

View File

@@ -1,7 +1,7 @@
<template> <template>
<SmartModal v-if="show" @close="hideModal"> <SmartModal v-if="show" @close="hideModal">
<template #header> <template #header>
<h3 class="heading">{{ $t("new_collection") }}</h3> <h3 class="heading">{{ $t("collection.new") }}</h3>
<ButtonSecondary icon="close" @click.native="hideModal" /> <ButtonSecondary icon="close" @click.native="hideModal" />
</template> </template>
<template #body> <template #body>
@@ -14,7 +14,7 @@
v-model="name" v-model="name"
class="input" class="input"
type="text" type="text"
:placeholder="$t('my_new_collection')" :placeholder="$t('collection.name')"
@keyup.enter="addNewCollection" @keyup.enter="addNewCollection"
/> />
</div> </div>

View File

@@ -16,7 +16,7 @@
v-model="name" v-model="name"
class="input" class="input"
type="text" type="text"
:placeholder="$t('my_new_folder')" :placeholder="$t('folder.new')"
@keyup.enter="addFolder" @keyup.enter="addFolder"
/> />
</div> </div>

View File

@@ -1,7 +1,7 @@
<template> <template>
<SmartModal v-if="show" @close="hideModal"> <SmartModal v-if="show" @close="hideModal">
<template #header> <template #header>
<h3 class="heading">{{ $t("edit_collection") }}</h3> <h3 class="heading">{{ $t("collection.edit") }}</h3>
<div> <div>
<ButtonSecondary icon="close" @click.native="hideModal" /> <ButtonSecondary icon="close" @click.native="hideModal" />
</div> </div>

View File

@@ -1,7 +1,7 @@
<template> <template>
<SmartModal v-if="show" @close="$emit('hide-modal')"> <SmartModal v-if="show" @close="$emit('hide-modal')">
<template #header> <template #header>
<h3 class="heading">{{ $t("edit_folder") }}</h3> <h3 class="heading">{{ $t("folder.edit") }}</h3>
<div> <div>
<ButtonSecondary icon="close" @click.native="hideModal" /> <ButtonSecondary icon="close" @click.native="hideModal" />
</div> </div>

View File

@@ -33,7 +33,7 @@
</template> </template>
<SmartItem <SmartItem
icon="assignment_returned" icon="assignment_returned"
:label="$t('import_from_gist')" :label="$t('import.from_gist')"
@click.native=" @click.native="
readCollectionGist readCollectionGist
$refs.options.tippy().hide() $refs.options.tippy().hide()
@@ -43,9 +43,9 @@
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title=" :title="
!currentUser !currentUser
? $t('login_with_github_to') + $t('create_secret_gist') ? $t('export.require_github')
: currentUser.provider !== 'github.com' : currentUser.provider !== 'github.com'
? $t('login_with_github_to') + $t('create_secret_gist') ? $t('export.require_github')
: null : null
" "
:disabled=" :disabled="
@@ -56,7 +56,7 @@
: false : false
" "
icon="assignment_turned_in" icon="assignment_turned_in"
:label="$t('create_secret_gist')" :label="$t('export.create_secret_gist')"
@click.native=" @click.native="
createCollectionGist createCollectionGist
$refs.options.tippy().hide() $refs.options.tippy().hide()
@@ -87,7 +87,7 @@
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('preserve_current')" :title="$t('preserve_current')"
icon="create_new_folder" icon="create_new_folder"
:label="$t('import_json')" :label="$t('import.json')"
@click.native="openDialogChooseFileToImportFrom" @click.native="openDialogChooseFileToImportFrom"
/> />
<input <input
@@ -103,14 +103,14 @@
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('preserve_current')" :title="$t('preserve_current')"
icon="folder_shared" icon="folder_shared"
:label="$t('import_from_my_collections')" :label="$t('import.from_my_collections')"
@click.native="mode = 'import_from_my_collections'" @click.native="mode = 'import_from_my_collections'"
/> />
<SmartItem <SmartItem
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('download_file')" :title="$t('download_file')"
icon="drive_file_move" icon="drive_file_move"
:label="$t('export_as_json')" :label="$t('export.as_json')"
@click.native="exportJSON" @click.native="exportJSON"
/> />
</div> </div>
@@ -155,7 +155,7 @@
<ButtonPrimary <ButtonPrimary
:disabled="mySelectedCollectionID == undefined" :disabled="mySelectedCollectionID == undefined"
icon="create_new_folder" icon="create_new_folder"
:label="$t('import')" :label="$t('import.title')"
@click.native="importFromMyCollections" @click.native="importFromMyCollections"
/> />
</span> </span>
@@ -213,7 +213,7 @@ export default {
} }
) )
.then((res) => { .then((res) => {
this.$toast.success(this.$t("gist_created"), { this.$toast.success(this.$t("export.gist_created"), {
icon: "done", icon: "done",
}) })
window.open(res.html_url) window.open(res.html_url)
@@ -226,7 +226,7 @@ export default {
}) })
}, },
async readCollectionGist() { async readCollectionGist() {
const gist = prompt(this.$t("enter_gist_url")) const gist = prompt(this.$t("import.gist_url"))
if (!gist) return if (!gist) return
await this.$axios await this.$axios
.$get(`https://api.github.com/gists/${gist.split("/").pop()}`, { .$get(`https://api.github.com/gists/${gist.split("/").pop()}`, {
@@ -413,7 +413,7 @@ export default {
}) })
}, },
failedImport() { failedImport() {
this.$toast.error(this.$t("import_failed"), { this.$toast.error(this.$t("import.failed"), {
icon: "error", icon: "error",
}) })
}, },

View File

@@ -103,7 +103,7 @@ export default defineComponent({
}, },
saveRequestAs() { saveRequestAs() {
if (this.picked == null) { if (this.picked == null) {
this.$toast.error(this.$t("select_collection"), { this.$toast.error(this.$t("collection.select"), {
icon: "error", icon: "error",
}) })
return return

View File

@@ -1,7 +1,7 @@
<template> <template>
<SmartModal v-if="show" @close="hideModal"> <SmartModal v-if="show" @close="hideModal">
<template #header> <template #header>
<h3 class="heading">{{ $t("new_collection") }}</h3> <h3 class="heading">{{ $t("collection.new") }}</h3>
<ButtonSecondary icon="close" @click.native="hideModal" /> <ButtonSecondary icon="close" @click.native="hideModal" />
</template> </template>
<template #body> <template #body>
@@ -14,7 +14,7 @@
v-model="name" v-model="name"
class="input" class="input"
type="text" type="text"
:placeholder="$t('my_new_collection')" :placeholder="$t('collection.name')"
@keyup.enter="addNewCollection" @keyup.enter="addNewCollection"
/> />
</div> </div>
@@ -44,7 +44,7 @@ export default Vue.extend({
methods: { methods: {
addNewCollection() { addNewCollection() {
if (!this.name) { if (!this.name) {
this.$toast.info(this.$t("invalid_collection_name").toString()) this.$toast.info(this.$t("collection.invalid_name").toString())
return return
} }

View File

@@ -16,7 +16,7 @@
v-model="name" v-model="name"
class="input" class="input"
type="text" type="text"
:placeholder="$t('my_new_folder')" :placeholder="$t('folder.new')"
@keyup.enter="addFolder" @keyup.enter="addFolder"
/> />
</div> </div>

View File

@@ -36,7 +36,7 @@
<ButtonSecondary <ButtonSecondary
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
icon="create_new_folder" icon="create_new_folder"
:title="$t('new_folder')" :title="$t('folder.new')"
class="group-hover:inline-flex hidden" class="group-hover:inline-flex hidden"
@click.native=" @click.native="
$emit('add-folder', { $emit('add-folder', {
@@ -61,7 +61,7 @@
</template> </template>
<SmartItem <SmartItem
icon="create_new_folder" icon="create_new_folder"
:label="$t('new_folder')" :label="$t('folder.new')"
@click.native=" @click.native="
$emit('add-folder', { $emit('add-folder', {
path: `${collectionIndex}`, path: `${collectionIndex}`,
@@ -138,13 +138,13 @@
> >
<i class="opacity-75 pb-2 material-icons">folder_open</i> <i class="opacity-75 pb-2 material-icons">folder_open</i>
<span class="text-center"> <span class="text-center">
{{ $t("collection_empty") }} {{ $t("empty.collection") }}
</span> </span>
</div> </div>
</div> </div>
<SmartConfirmModal <SmartConfirmModal
:show="confirmRemove" :show="confirmRemove"
:title="$t('are_you_sure_remove_collection')" :title="$t('confirm.remove_collection')"
@hide-modal="confirmRemove = false" @hide-modal="confirmRemove = false"
@resolve="removeCollection" @resolve="removeCollection"
/> />

View File

@@ -1,7 +1,7 @@
<template> <template>
<SmartModal v-if="show" @close="hideModal"> <SmartModal v-if="show" @close="hideModal">
<template #header> <template #header>
<h3 class="heading">{{ $t("edit_collection") }}</h3> <h3 class="heading">{{ $t("collection.edit") }}</h3>
<div> <div>
<ButtonSecondary icon="close" @click.native="hideModal" /> <ButtonSecondary icon="close" @click.native="hideModal" />
</div> </div>
@@ -48,7 +48,7 @@ export default Vue.extend({
methods: { methods: {
saveCollection() { saveCollection() {
if (!this.name) { if (!this.name) {
this.$toast.info(this.$t("invalid_collection_name").toString()) this.$toast.info(this.$t("collection.invalid_name").toString())
return return
} }
const collectionUpdated = { const collectionUpdated = {

View File

@@ -1,7 +1,7 @@
<template> <template>
<SmartModal v-if="show" @close="$emit('hide-modal')"> <SmartModal v-if="show" @close="$emit('hide-modal')">
<template #header> <template #header>
<h3 class="heading">{{ $t("edit_folder") }}</h3> <h3 class="heading">{{ $t("folder.edit") }}</h3>
<div> <div>
<ButtonSecondary icon="close" @click.native="hideModal" /> <ButtonSecondary icon="close" @click.native="hideModal" />
</div> </div>

View File

@@ -38,7 +38,7 @@
<ButtonSecondary <ButtonSecondary
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
icon="create_new_folder" icon="create_new_folder"
:title="$t('new_folder')" :title="$t('folder.new')"
class="group-hover:inline-flex hidden" class="group-hover:inline-flex hidden"
@click.native="$emit('add-folder', { folder, path: folderPath })" @click.native="$emit('add-folder', { folder, path: folderPath })"
/> />
@@ -59,7 +59,7 @@
</template> </template>
<SmartItem <SmartItem
icon="create_new_folder" icon="create_new_folder"
:label="$t('new_folder')" :label="$t('folder.new')"
@click.native=" @click.native="
$emit('add-folder', { folder, path: folderPath }) $emit('add-folder', { folder, path: folderPath })
$refs.options.tippy().hide() $refs.options.tippy().hide()
@@ -137,13 +137,13 @@
> >
<i class="opacity-75 pb-2 material-icons">folder_open</i> <i class="opacity-75 pb-2 material-icons">folder_open</i>
<span class="text-center"> <span class="text-center">
{{ $t("folder_empty") }} {{ $t("empty.folder") }}
</span> </span>
</div> </div>
</div> </div>
<SmartConfirmModal <SmartConfirmModal
:show="confirmRemove" :show="confirmRemove"
:title="$t('are_you_sure_remove_folder')" :title="$t('confirm.remove_folder')"
@hide-modal="confirmRemove = false" @hide-modal="confirmRemove = false"
@resolve="removeFolder" @resolve="removeFolder"
/> />

View File

@@ -20,7 +20,7 @@
</template> </template>
<SmartItem <SmartItem
icon="assignment_returned" icon="assignment_returned"
:label="$t('import_from_gist')" :label="$t('import.from_gist')"
@click.native=" @click.native="
readCollectionGist readCollectionGist
$refs.options.tippy().hide() $refs.options.tippy().hide()
@@ -30,9 +30,9 @@
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title=" :title="
!currentUser !currentUser
? $t('login_with_github_to') + $t('create_secret_gist') ? $t('export.require_github')
: currentUser.provider !== 'github.com' : currentUser.provider !== 'github.com'
? $t('login_with_github_to') + $t('create_secret_gist') ? $t('export.require_github')
: null : null
" "
:disabled=" :disabled="
@@ -43,7 +43,7 @@
: false : false
" "
icon="assignment_turned_in" icon="assignment_turned_in"
:label="$t('create_secret_gist')" :label="$t('export.create_secret_gist')"
@click.native=" @click.native="
createCollectionGist createCollectionGist
$refs.options.tippy().hide() $refs.options.tippy().hide()
@@ -74,7 +74,7 @@
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('preserve_current')" :title="$t('preserve_current')"
icon="create_new_folder" icon="create_new_folder"
:label="$t('import_json')" :label="$t('import.json')"
@click.native="openDialogChooseFileToImportFrom" @click.native="openDialogChooseFileToImportFrom"
/> />
<input <input
@@ -89,7 +89,7 @@
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('download_file')" :title="$t('download_file')"
icon="drive_file_move" icon="drive_file_move"
:label="$t('export_as_json')" :label="$t('export.as_json')"
@click.native="exportJSON" @click.native="exportJSON"
/> />
</div> </div>
@@ -140,7 +140,7 @@ export default {
} }
) )
.then((res) => { .then((res) => {
this.$toast.success(this.$t("gist_created"), { this.$toast.success(this.$t("export.gist_created"), {
icon: "done", icon: "done",
}) })
window.open(res.html_url) window.open(res.html_url)
@@ -153,7 +153,7 @@ export default {
}) })
}, },
async readCollectionGist() { async readCollectionGist() {
const gist = prompt(this.$t("enter_gist_url")) const gist = prompt(this.$t("import.gist_url"))
if (!gist) return if (!gist) return
await this.$axios await this.$axios
.$get(`https://api.github.com/gists/${gist.split("/").pop()}`, { .$get(`https://api.github.com/gists/${gist.split("/").pop()}`, {
@@ -266,7 +266,7 @@ export default {
}) })
}, },
failedImport() { failedImport() {
this.$toast.error(this.$t("import_failed"), { this.$toast.error(this.$t("import.failed"), {
icon: "error", icon: "error",
}) })
}, },

View File

@@ -89,7 +89,7 @@
</div> </div>
<SmartConfirmModal <SmartConfirmModal
:show="confirmRemove" :show="confirmRemove"
:title="$t('are_you_sure_remove_request')" :title="$t('confirm.remove_request')"
@hide-modal="confirmRemove = false" @hide-modal="confirmRemove = false"
@resolve="removeRequest" @resolve="removeRequest"
/> />

View File

@@ -35,7 +35,7 @@
<ButtonSecondary <ButtonSecondary
v-if="showCollActions" v-if="showCollActions"
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('import_export')" :title="$t('modal.import_export')"
icon="import_export" icon="import_export"
@click.native="displayModalImportExport(true)" @click.native="displayModalImportExport(true)"
/> />
@@ -66,10 +66,10 @@
> >
<i class="opacity-75 pb-2 material-icons">create_new_folder</i> <i class="opacity-75 pb-2 material-icons">create_new_folder</i>
<span class="text-center pb-4"> <span class="text-center pb-4">
{{ $t("collections_empty") }} {{ $t("empty.collections") }}
</span> </span>
<ButtonSecondary <ButtonSecondary
:label="$t('add_new')" :label="$t('add.new')"
outline outline
@click.native="displayModalAdd(true)" @click.native="displayModalAdd(true)"
/> />

View File

@@ -43,7 +43,7 @@
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
disabled disabled
icon="add" icon="add"
:title="$t('disable_new_collection')" :title="$t('team.no_access')"
:label="$t('new')" :label="$t('new')"
/> />
<ButtonSecondary <ButtonSecondary
@@ -60,7 +60,7 @@
collectionsType.selectedTeam == undefined collectionsType.selectedTeam == undefined
" "
icon="import_export" icon="import_export"
:title="$t('import_export')" :title="$t('modal.import_export')"
@click.native="displayModalImportExport(true)" @click.native="displayModalImportExport(true)"
/> />
</div> </div>
@@ -101,7 +101,7 @@
> >
<i class="opacity-75 pb-2 material-icons">create_new_folder</i> <i class="opacity-75 pb-2 material-icons">create_new_folder</i>
<span class="text-center pb-4"> <span class="text-center pb-4">
{{ $t("collections_empty") }} {{ $t("empty.collections") }}
</span> </span>
<ButtonSecondary <ButtonSecondary
v-if=" v-if="
@@ -111,14 +111,14 @@
" "
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
disabled disabled
:title="$t('disable_new_collection')" :title="$t('team.no_access')"
:label="$t('add_new')" :label="$t('add.new')"
outline outline
/> />
<ButtonSecondary <ButtonSecondary
v-else v-else
outline outline
:label="$t('add_new')" :label="$t('add.new')"
@click.native="displayModalAdd(true)" @click.native="displayModalAdd(true)"
/> />
</div> </div>
@@ -313,7 +313,7 @@ export default {
// Intented to be called by the CollectionAdd modal submit event // Intented to be called by the CollectionAdd modal submit event
addNewRootCollection(name) { addNewRootCollection(name) {
if (!name) { if (!name) {
this.$toast.info(this.$t("invalid_collection_name")) this.$toast.info(this.$t("collection.invalid_name"))
return return
} }
if (this.collectionsType.type === "my-collections") { if (this.collectionsType.type === "my-collections") {
@@ -333,7 +333,7 @@ export default {
this.collectionsType.selectedTeam.id this.collectionsType.selectedTeam.id
) )
.then(() => { .then(() => {
this.$toast.success(this.$t("collection_added"), { this.$toast.success(this.$t("collection.created"), {
icon: "done", icon: "done",
}) })
}) })
@@ -349,7 +349,7 @@ export default {
// Intented to be called by CollectionEdit modal submit event // Intented to be called by CollectionEdit modal submit event
updateEditingCollection(newName) { updateEditingCollection(newName) {
if (!newName) { if (!newName) {
this.$toast.info(this.$t("invalid_collection_name")) this.$toast.info(this.$t("collection.invalid_name"))
return return
} }
if (this.collectionsType.type === "my-collections") { if (this.collectionsType.type === "my-collections") {
@@ -392,7 +392,7 @@ export default {
.renameCollection(this.$apollo, name, this.editingFolder.id) .renameCollection(this.$apollo, name, this.editingFolder.id)
.then(() => { .then(() => {
// Result // Result
this.$toast.success(this.$t("folder_renamed"), { this.$toast.success(this.$t("folder.renamed"), {
icon: "done", icon: "done",
}) })
}) })
@@ -507,7 +507,7 @@ export default {
}) })
.then(() => { .then(() => {
// Result // Result
this.$toast.success(this.$t("folder_added"), { this.$toast.success(this.$t("folder.created"), {
icon: "done", icon: "done",
}) })
this.$emit("update-team-collections") this.$emit("update-team-collections")

View File

@@ -36,7 +36,7 @@
<ButtonSecondary <ButtonSecondary
v-if="doc && !selected" v-if="doc && !selected"
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('import')" :title="$t('import.title')"
icon="check_box_outline_blank" icon="check_box_outline_blank"
color="green" color="green"
@click.native="$emit('select-collection')" @click.native="$emit('select-collection')"
@@ -53,7 +53,7 @@
v-if="!doc" v-if="!doc"
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
icon="create_new_folder" icon="create_new_folder"
:title="$t('new_folder')" :title="$t('folder.new')"
class="group-hover:inline-flex hidden" class="group-hover:inline-flex hidden"
@click.native=" @click.native="
$emit('add-folder', { $emit('add-folder', {
@@ -79,7 +79,7 @@
</template> </template>
<SmartItem <SmartItem
icon="create_new_folder" icon="create_new_folder"
:label="$t('new_folder')" :label="$t('folder.new')"
@click.native=" @click.native="
$emit('add-folder', { $emit('add-folder', {
folder: collection, folder: collection,
@@ -163,13 +163,13 @@
> >
<i class="opacity-75 pb-2 material-icons">folder_open</i> <i class="opacity-75 pb-2 material-icons">folder_open</i>
<span class="text-center"> <span class="text-center">
{{ $t("collection_empty") }} {{ $t("empty.collection") }}
</span> </span>
</div> </div>
</div> </div>
<SmartConfirmModal <SmartConfirmModal
:show="confirmRemove" :show="confirmRemove"
:title="$t('are_you_sure_remove_collection')" :title="$t('confirm.remove_collection')"
@hide-modal="confirmRemove = false" @hide-modal="confirmRemove = false"
@resolve="removeCollection" @resolve="removeCollection"
/> />

View File

@@ -38,7 +38,7 @@
<ButtonSecondary <ButtonSecondary
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
icon="create_new_folder" icon="create_new_folder"
:title="$t('new_folder')" :title="$t('folder.new')"
class="group-hover:inline-flex hidden" class="group-hover:inline-flex hidden"
@click.native="$emit('add-folder', { folder, path: folderPath })" @click.native="$emit('add-folder', { folder, path: folderPath })"
/> />
@@ -59,7 +59,7 @@
</template> </template>
<SmartItem <SmartItem
icon="create_new_folder" icon="create_new_folder"
:label="$t('new_folder')" :label="$t('folder.new')"
@click.native=" @click.native="
$emit('add-folder', { folder, path: folderPath }) $emit('add-folder', { folder, path: folderPath })
$refs.options.tippy().hide() $refs.options.tippy().hide()
@@ -146,13 +146,13 @@
> >
<i class="opacity-75 pb-2 material-icons">folder_open</i> <i class="opacity-75 pb-2 material-icons">folder_open</i>
<span class="text-center"> <span class="text-center">
{{ $t("folder_empty") }} {{ $t("empty.folder") }}
</span> </span>
</div> </div>
</div> </div>
<SmartConfirmModal <SmartConfirmModal
:show="confirmRemove" :show="confirmRemove"
:title="$t('are_you_sure_remove_folder')" :title="$t('confirm.remove_folder')"
@hide-modal="confirmRemove = false" @hide-modal="confirmRemove = false"
@resolve="removeFolder" @resolve="removeFolder"
/> />

View File

@@ -100,7 +100,7 @@
</div> </div>
<SmartConfirmModal <SmartConfirmModal
:show="confirmRemove" :show="confirmRemove"
:title="$t('are_you_sure_remove_request')" :title="$t('confirm.remove_request')"
@hide-modal="confirmRemove = false" @hide-modal="confirmRemove = false"
@resolve="removeRequest" @resolve="removeRequest"
/> />

View File

@@ -28,7 +28,7 @@
<ButtonSecondary <ButtonSecondary
v-if="doc && !selected" v-if="doc && !selected"
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('import')" :title="$t('import.title')"
icon="check_box_outline_blank" icon="check_box_outline_blank"
color="green" color="green"
@click.native="$emit('select-collection')" @click.native="$emit('select-collection')"
@@ -45,7 +45,7 @@
v-if="collectionsType.selectedTeam.myRole !== 'VIEWER'" v-if="collectionsType.selectedTeam.myRole !== 'VIEWER'"
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
icon="create_new_folder" icon="create_new_folder"
:title="$t('new_folder')" :title="$t('folder.new')"
class="group-hover:inline-flex hidden" class="group-hover:inline-flex hidden"
@click.native=" @click.native="
$emit('add-folder', { $emit('add-folder', {
@@ -73,7 +73,7 @@
<SmartItem <SmartItem
v-if="collectionsType.selectedTeam.myRole !== 'VIEWER'" v-if="collectionsType.selectedTeam.myRole !== 'VIEWER'"
icon="create_new_folder" icon="create_new_folder"
:label="$t('new_folder')" :label="$t('folder.new')"
@click.native=" @click.native="
$emit('add-folder', { $emit('add-folder', {
folder: collection, folder: collection,
@@ -159,13 +159,13 @@
> >
<i class="opacity-75 pb-2 material-icons">folder_open</i> <i class="opacity-75 pb-2 material-icons">folder_open</i>
<span class="text-center"> <span class="text-center">
{{ $t("collection_empty") }} {{ $t("empty.collection") }}
</span> </span>
</div> </div>
</div> </div>
<SmartConfirmModal <SmartConfirmModal
:show="confirmRemove" :show="confirmRemove"
:title="$t('are_you_sure_remove_collection')" :title="$t('confirm.remove_collection')"
@hide-modal="confirmRemove = false" @hide-modal="confirmRemove = false"
@resolve="removeCollection" @resolve="removeCollection"
/> />

View File

@@ -31,7 +31,7 @@
v-if="collectionsType.selectedTeam.myRole !== 'VIEWER'" v-if="collectionsType.selectedTeam.myRole !== 'VIEWER'"
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
icon="create_new_folder" icon="create_new_folder"
:title="$t('new_folder')" :title="$t('folder.new')"
class="group-hover:inline-flex hidden" class="group-hover:inline-flex hidden"
@click.native="$emit('add-folder', { folder, path: folderPath })" @click.native="$emit('add-folder', { folder, path: folderPath })"
/> />
@@ -54,7 +54,7 @@
<SmartItem <SmartItem
v-if="collectionsType.selectedTeam.myRole !== 'VIEWER'" v-if="collectionsType.selectedTeam.myRole !== 'VIEWER'"
icon="create_new_folder" icon="create_new_folder"
:label="$t('new_folder')" :label="$t('folder.new')"
@click.native=" @click.native="
$emit('add-folder', { folder, path: folderPath }) $emit('add-folder', { folder, path: folderPath })
$refs.options.tippy().hide() $refs.options.tippy().hide()
@@ -141,13 +141,13 @@
> >
<i class="opacity-75 pb-2 material-icons">folder_open</i> <i class="opacity-75 pb-2 material-icons">folder_open</i>
<span class="text-center"> <span class="text-center">
{{ $t("folder_empty") }} {{ $t("empty.folder") }}
</span> </span>
</div> </div>
</div> </div>
<SmartConfirmModal <SmartConfirmModal
:show="confirmRemove" :show="confirmRemove"
:title="$t('are_you_sure_remove_folder')" :title="$t('confirm.remove_folder')"
@hide-modal="confirmRemove = false" @hide-modal="confirmRemove = false"
@resolve="removeFolder" @resolve="removeFolder"
/> />

View File

@@ -93,7 +93,7 @@
</div> </div>
<SmartConfirmModal <SmartConfirmModal
:show="confirmRemove" :show="confirmRemove"
:title="$t('are_you_sure_remove_request')" :title="$t('confirm.remove_request')"
@hide-modal="confirmRemove = false" @hide-modal="confirmRemove = false"
@resolve="removeRequest" @resolve="removeRequest"
/> />

View File

@@ -33,7 +33,7 @@
<ButtonSecondary <ButtonSecondary
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
icon="add" icon="add"
:title="$t('add_new')" :title="$t('add.new')"
@click.native="addEnvironmentVariable" @click.native="addEnvironmentVariable"
/> />
</div> </div>
@@ -60,7 +60,7 @@
px-4 px-4
focus:outline-none focus:outline-none
" "
:placeholder="$t('variable_count', { count: index + 1 })" :placeholder="$t('count.variable', { count: index + 1 })"
:name="'param' + index" :name="'param' + index"
/> />
<input <input
@@ -74,7 +74,7 @@
px-4 px-4
focus:outline-none focus:outline-none
" "
:placeholder="$t('value_count', { count: index + 1 })" :placeholder="$t('count.value', { count: index + 1 })"
:name="'value' + index" :name="'value' + index"
/> />
<div> <div>
@@ -100,10 +100,10 @@
> >
<i class="opacity-75 pb-2 material-icons">layers</i> <i class="opacity-75 pb-2 material-icons">layers</i>
<span class="text-center pb-4"> <span class="text-center pb-4">
{{ $t("environments_empty") }} {{ $t("empty.environments") }}
</span> </span>
<ButtonSecondary <ButtonSecondary
:label="$t('add_new')" :label="$t('add.new')"
outline outline
@click.native="addEnvironmentVariable" @click.native="addEnvironmentVariable"
/> />

View File

@@ -61,7 +61,7 @@
</span> </span>
<SmartConfirmModal <SmartConfirmModal
:show="confirmRemove" :show="confirmRemove"
:title="$t('are_you_sure_remove_environment')" :title="$t('confirm.remove_environment')"
@hide-modal="confirmRemove = false" @hide-modal="confirmRemove = false"
@resolve="removeEnvironment" @resolve="removeEnvironment"
/> />

View File

@@ -22,7 +22,7 @@
</template> </template>
<SmartItem <SmartItem
icon="assignment_returned" icon="assignment_returned"
:label="$t('import_from_gist')" :label="$t('import.from_gist')"
@click.native=" @click.native="
readEnvironmentGist readEnvironmentGist
$refs.options.tippy().hide() $refs.options.tippy().hide()
@@ -32,9 +32,9 @@
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title=" :title="
!currentUser !currentUser
? $t('login_with_github_to') + $t('create_secret_gist') ? $t('export.require_github')
: currentUser.provider !== 'github.com' : currentUser.provider !== 'github.com'
? $t('login_with_github_to') + $t('create_secret_gist') ? $t('export.require_github')
: null : null
" "
:disabled=" :disabled="
@@ -45,7 +45,7 @@
: false : false
" "
icon="assignment_turned_in" icon="assignment_turned_in"
:label="$t('create_secret_gist')" :label="$t('export.create_secret_gist')"
@click.native=" @click.native="
createEnvironmentGist createEnvironmentGist
$refs.options.tippy().hide() $refs.options.tippy().hide()
@@ -76,7 +76,7 @@
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('preserve_current')" :title="$t('preserve_current')"
icon="create_new_folder" icon="create_new_folder"
:label="$t('import_json')" :label="$t('import.json')"
@click.native="openDialogChooseFileToImportFrom" @click.native="openDialogChooseFileToImportFrom"
/> />
<input <input
@@ -91,7 +91,7 @@
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('download_file')" :title="$t('download_file')"
icon="drive_file_move" icon="drive_file_move"
:label="$t('export_as_json')" :label="$t('export.as_json')"
@click.native="exportJSON" @click.native="exportJSON"
/> />
</div> </div>
@@ -142,7 +142,7 @@ export default {
} }
) )
.then((res) => { .then((res) => {
this.$toast.success(this.$t("gist_created"), { this.$toast.success(this.$t("export.gist_created"), {
icon: "done", icon: "done",
}) })
window.open(res.html_url) window.open(res.html_url)
@@ -155,7 +155,7 @@ export default {
}) })
}, },
async readEnvironmentGist() { async readEnvironmentGist() {
const gist = prompt(this.$t("enter_gist_url")) const gist = prompt(this.$t("import.gist_url"))
if (!gist) return if (!gist) return
await this.$axios await this.$axios
.$get(`https://api.github.com/gists/${gist.split("/").pop()}`, { .$get(`https://api.github.com/gists/${gist.split("/").pop()}`, {

View File

@@ -39,7 +39,7 @@
<ButtonSecondary <ButtonSecondary
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
icon="import_export" icon="import_export"
:title="$t('import_export')" :title="$t('modal.import_export')"
@click.native="displayModalImportExport(true)" @click.native="displayModalImportExport(true)"
/> />
</div> </div>
@@ -64,10 +64,10 @@
> >
<i class="opacity-75 pb-2 material-icons">library_add</i> <i class="opacity-75 pb-2 material-icons">library_add</i>
<span class="text-center pb-4"> <span class="text-center pb-4">
{{ $t("environments_empty") }} {{ $t("empty.environments") }}
</span> </span>
<ButtonSecondary <ButtonSecondary
:label="$t('add_new')" :label="$t('add.new')"
outline outline
@click.native="displayModalAdd(true)" @click.native="displayModalAdd(true)"
/> />

View File

@@ -56,7 +56,7 @@
" "
type="button" type="button"
tabindex="-1" tabindex="-1"
:label="$t('send_magic_link')" :label="$t('auth.send_magic_link')"
@click.native="signInWithEmail" @click.native="signInWithEmail"
/> />
</div> </div>
@@ -66,10 +66,12 @@
mark_email_unread mark_email_unread
</i> </i>
<h3 class="font-bold my-2 text-center text-lg"> <h3 class="font-bold my-2 text-center text-lg">
{{ $t("we_sent_magic_link") }} {{ $t("auth.we_sent_magic_link") }}
</h3> </h3>
<p class="text-center"> <p class="text-center">
{{ $t("we_sent_magic_link_description", { email: form.email }) }} {{
$t("auth.we_sent_magic_link_description", { email: form.email })
}}
</p> </p>
</div> </div>
</div> </div>
@@ -97,7 +99,11 @@
label="← Re-enter email" label="← Re-enter email"
@click.native="mode = 'email'" @click.native="mode = 'email'"
/> />
<SmartAnchor class="link" label="Dismiss" @click.native="hideModal" /> <SmartAnchor
class="link"
:label="$t('action.dismiss')"
@click.native="hideModal"
/>
</p> </p>
</template> </template>
</SmartModal> </SmartModal>
@@ -151,7 +157,7 @@ export default {
const { additionalUserInfo } = await signInUserWithGoogle() const { additionalUserInfo } = await signInUserWithGoogle()
if (additionalUserInfo.isNewUser) { if (additionalUserInfo.isNewUser) {
this.$toast.info(`${this.$t("turn_on")} ${this.$t("sync")}`, { this.$toast.info(`${this.$t("action.turn_on")} ${this.$t("sync")}`, {
icon: "sync", icon: "sync",
duration: null, duration: null,
closeOnSwipe: false, closeOnSwipe: false,
@@ -197,7 +203,7 @@ export default {
return return
} }
this.$toast.info(`${this.$t("account_exists")}`, { this.$toast.info(`${this.$t("auth.account_exists")}`, {
icon: "vpn_key", icon: "vpn_key",
duration: null, duration: null,
closeOnSwipe: false, closeOnSwipe: false,
@@ -227,7 +233,7 @@ export default {
setProviderInfo(credential.providerId, credential.accessToken) setProviderInfo(credential.providerId, credential.accessToken)
if (additionalUserInfo.isNewUser) { if (additionalUserInfo.isNewUser) {
this.$toast.info(`${this.$t("turn_on")} ${this.$t("sync")}`, { this.$toast.info(`${this.$t("action.turn_on")} ${this.$t("sync")}`, {
icon: "sync", icon: "sync",
duration: null, duration: null,
closeOnSwipe: false, closeOnSwipe: false,
@@ -273,7 +279,7 @@ export default {
return return
} }
this.$toast.info(`${this.$t("account_exists")}`, { this.$toast.info(`${this.$t("auth.account_exists")}`, {
icon: "vpn_key", icon: "vpn_key",
duration: null, duration: null,
closeOnSwipe: false, closeOnSwipe: false,

View File

@@ -10,7 +10,7 @@
/> />
<SmartConfirmModal <SmartConfirmModal
:show="confirmLogout" :show="confirmLogout"
:title="$t('are_you_sure_logout')" :title="$t('confirm.logout')"
@hide-modal="confirmLogout = false" @hide-modal="confirmLogout = false"
@resolve="logout" @resolve="logout"
/> />

View File

@@ -32,14 +32,14 @@
/> />
<ButtonSecondary <ButtonSecondary
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="expand ? $t('hide_more') : $t('show_more')" :title="expand ? $t('hide.more') : $t('show.more')"
:icon="expand ? 'unfold_less' : 'unfold_more'" :icon="expand ? 'unfold_less' : 'unfold_more'"
class="group-hover:inline-flex hidden" class="group-hover:inline-flex hidden"
@click.native="expand = !expand" @click.native="expand = !expand"
/> />
<ButtonSecondary <ButtonSecondary
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="!entry.star ? $t('add_star') : $t('remove_star')" :title="!entry.star ? $t('add.star') : $t('remove.star')"
:icon="entry.star ? 'star' : 'star_border'" :icon="entry.star ? 'star' : 'star_border'"
color="yellow" color="yellow"
:class="{ 'group-hover:inline-flex hidden': !entry.star }" :class="{ 'group-hover:inline-flex hidden': !entry.star }"

View File

@@ -73,12 +73,12 @@
> >
<i class="opacity-75 pb-2 material-icons">schedule</i> <i class="opacity-75 pb-2 material-icons">schedule</i>
<span class="text-center"> <span class="text-center">
{{ $t("history_empty") }} {{ $t("empty.history") }}
</span> </span>
</div> </div>
<SmartConfirmModal <SmartConfirmModal
:show="confirmRemove" :show="confirmRemove"
:title="$t('are_you_sure_remove_history')" :title="$t('confirm.remove_history')"
@hide-modal="confirmRemove = false" @hide-modal="confirmRemove = false"
@resolve="clearHistory" @resolve="clearHistory"
/> />

View File

@@ -49,7 +49,7 @@
/> />
<ButtonSecondary <ButtonSecondary
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="!entry.star ? $t('add_star') : $t('remove_star')" :title="!entry.star ? $t('add.star') : $t('remove.star')"
:class="{ 'group-hover:inline-flex hidden': !entry.star }" :class="{ 'group-hover:inline-flex hidden': !entry.star }"
:icon="entry.star ? 'star' : 'star_border'" :icon="entry.star ? 'star' : 'star_border'"
color="yellow" color="yellow"

View File

@@ -41,7 +41,7 @@
px-4 px-4
focus:outline-none focus:outline-none
" "
:placeholder="$t('parameter_count', { count: index + 1 })" :placeholder="$t('count.parameter', { count: index + 1 })"
:name="'param' + index" :name="'param' + index"
:value="param.key" :value="param.key"
autofocus autofocus
@@ -59,7 +59,7 @@
px-4 px-4
focus:outline-none focus:outline-none
" "
:placeholder="$t('value_count', { count: index + 1 })" :placeholder="$t('count.value', { count: index + 1 })"
:name="'value' + index" :name="'value' + index"
:value="param.value" :value="param.value"
@change=" @change="
@@ -86,9 +86,9 @@
:title=" :title="
param.hasOwnProperty('active') param.hasOwnProperty('active')
? param.active ? param.active
? $t('turn_off') ? $t('action.turn_off')
: $t('turn_on') : $t('action.turn_on')
: $t('turn_off') : $t('action.turn_off')
" "
:icon=" :icon="
param.hasOwnProperty('active') param.hasOwnProperty('active')

View File

@@ -75,11 +75,14 @@
<template #footer> <template #footer>
<ButtonPrimary <ButtonPrimary
ref="copyRequestCode" ref="copyRequestCode"
:label="$t('copy')" :label="$t('action.copy')"
:icon="copyIcon" :icon="copyIcon"
@click.native="copyRequestCode" @click.native="copyRequestCode"
/> />
<ButtonSecondary :label="$t('dismiss')" @click.native="hideModal" /> <ButtonSecondary
:label="$t('action.dismiss')"
@click.native="hideModal"
/>
</template> </template>
</SmartModal> </SmartModal>
</template> </template>

View File

@@ -25,7 +25,7 @@
/> />
<ButtonSecondary <ButtonSecondary
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('add_new')" :title="$t('add.new')"
icon="add" icon="add"
@click.native="addHeader" @click.native="addHeader"
/> />
@@ -38,7 +38,7 @@
:class="{ 'border-t': index == 0 }" :class="{ 'border-t': index == 0 }"
> >
<SmartAutoComplete <SmartAutoComplete
:placeholder="$t('header_count', { count: index + 1 })" :placeholder="$t('count.header', { count: index + 1 })"
:source="commonHeaders" :source="commonHeaders"
:spellcheck="false" :spellcheck="false"
:value="header.key" :value="header.key"
@@ -63,7 +63,7 @@
<SmartEnvInput <SmartEnvInput
v-if="EXPERIMENTAL_URL_BAR_ENABLED" v-if="EXPERIMENTAL_URL_BAR_ENABLED"
v-model="header.value" v-model="header.value"
:placeholder="$t('value_count', { count: index + 1 })" :placeholder="$t('count.value', { count: index + 1 })"
styles=" styles="
bg-primaryLight bg-primaryLight
flex flex
@@ -92,7 +92,7 @@
px-4 px-4
focus:outline-none focus:outline-none
" "
:placeholder="$t('value_count', { count: index + 1 })" :placeholder="$t('count.value', { count: index + 1 })"
:name="'value' + index" :name="'value' + index"
:value="header.value" :value="header.value"
@change=" @change="
@@ -109,9 +109,9 @@
:title=" :title="
header.hasOwnProperty('active') header.hasOwnProperty('active')
? header.active ? header.active
? $t('turn_off') ? $t('action.turn_off')
: $t('turn_on') : $t('action.turn_on')
: $t('turn_off') : $t('action.turn_off')
" "
:icon=" :icon="
header.hasOwnProperty('active') header.hasOwnProperty('active')
@@ -146,11 +146,11 @@
> >
<i class="opacity-75 pb-2 material-icons">post_add</i> <i class="opacity-75 pb-2 material-icons">post_add</i>
<span class="text-center pb-4"> <span class="text-center pb-4">
{{ $t("headers_empty") }} {{ $t("empty.headers") }}
</span> </span>
<ButtonSecondary <ButtonSecondary
outline outline
:label="$t('add_new')" :label="$t('add.new')"
@click.native="addHeader" @click.native="addHeader"
/> />
</div> </div>

View File

@@ -1,7 +1,7 @@
<template> <template>
<SmartModal v-if="show" @close="hideModal"> <SmartModal v-if="show" @close="hideModal">
<template #header> <template #header>
<h3 class="heading">{{ $t("import_curl") }}</h3> <h3 class="heading">{{ $t("import.curl") }}</h3>
<div> <div>
<ButtonSecondary icon="close" @click.native="hideModal" /> <ButtonSecondary icon="close" @click.native="hideModal" />
</div> </div>
@@ -20,7 +20,10 @@
</template> </template>
<template #footer> <template #footer>
<span> <span>
<ButtonPrimary :label="$t('import')" @click.native="handleImport" /> <ButtonPrimary
:label="$t('import.title')"
@click.native="handleImport"
/>
<ButtonSecondary :label="$t('cancel')" @click.native="hideModal" /> <ButtonSecondary :label="$t('cancel')" @click.native="hideModal" />
</span> </span>
</template> </template>

View File

@@ -25,7 +25,7 @@
/> />
<ButtonSecondary <ButtonSecondary
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('add_new')" :title="$t('add.new')"
icon="add" icon="add"
@click.native="addParam" @click.native="addParam"
/> />
@@ -40,7 +40,7 @@
<SmartEnvInput <SmartEnvInput
v-if="EXPERIMENTAL_URL_BAR_ENABLED" v-if="EXPERIMENTAL_URL_BAR_ENABLED"
v-model="param.key" v-model="param.key"
:placeholder="$t('parameter_count', { count: index + 1 })" :placeholder="$t('count.parameter', { count: index + 1 })"
styles=" styles="
bg-primaryLight bg-primaryLight
flex flex
@@ -69,7 +69,7 @@
px-4 px-4
focus:outline-none focus:outline-none
" "
:placeholder="$t('parameter_count', { count: index + 1 })" :placeholder="$t('count.parameter', { count: index + 1 })"
:name="'param' + index" :name="'param' + index"
:value="param.key" :value="param.key"
autofocus autofocus
@@ -84,7 +84,7 @@
<SmartEnvInput <SmartEnvInput
v-if="EXPERIMENTAL_URL_BAR_ENABLED" v-if="EXPERIMENTAL_URL_BAR_ENABLED"
v-model="param.value" v-model="param.value"
:placeholder="$t('value_count', { count: index + 1 })" :placeholder="$t('count.value', { count: index + 1 })"
styles=" styles="
bg-primaryLight bg-primaryLight
flex flex
@@ -113,7 +113,7 @@
px-4 px-4
focus:outline-none focus:outline-none
" "
:placeholder="$t('value_count', { count: index + 1 })" :placeholder="$t('count.value', { count: index + 1 })"
:name="'value' + index" :name="'value' + index"
:value="param.value" :value="param.value"
@change=" @change="
@@ -130,9 +130,9 @@
:title=" :title="
param.hasOwnProperty('active') param.hasOwnProperty('active')
? param.active ? param.active
? $t('turn_off') ? $t('action.turn_off')
: $t('turn_on') : $t('action.turn_on')
: $t('turn_off') : $t('action.turn_off')
" "
:icon=" :icon="
param.hasOwnProperty('active') param.hasOwnProperty('active')
@@ -167,10 +167,10 @@
> >
<i class="opacity-75 pb-2 material-icons">post_add</i> <i class="opacity-75 pb-2 material-icons">post_add</i>
<span class="text-center pb-4"> <span class="text-center pb-4">
{{ $t("parameters_empty") }} {{ $t("empty.parameters") }}
</span> </span>
<ButtonSecondary <ButtonSecondary
:label="$t('add_new')" :label="$t('add.new')"
outline outline
@click.native="addParam" @click.native="addParam"
/> />

View File

@@ -28,7 +28,7 @@
<label for="payload"> <label for="payload">
<ButtonSecondary <ButtonSecondary
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('import_json')" :title="$t('import.json')"
icon="post_add" icon="post_add"
@click.native="$refs.payload.click()" @click.native="$refs.payload.click()"
/> />

View File

@@ -108,7 +108,7 @@
<ButtonPrimary class="rounded-l-none" icon="keyboard_arrow_down" /> <ButtonPrimary class="rounded-l-none" icon="keyboard_arrow_down" />
</template> </template>
<SmartItem <SmartItem
:label="$t('import_curl')" :label="$t('import.curl')"
icon="import_export" icon="import_export"
@click.native=" @click.native="
showCurlImportModal = !showCurlImportModal showCurlImportModal = !showCurlImportModal
@@ -116,7 +116,7 @@
" "
/> />
<SmartItem <SmartItem
:label="$t('show_code')" :label="$t('show.code')"
icon="code" icon="code"
@click.native=" @click.native="
showCodegenModal = !showCodegenModal showCodegenModal = !showCodegenModal
@@ -167,7 +167,7 @@
/> />
<SmartItem <SmartItem
ref="copyRequest" ref="copyRequest"
:label="$t('copy_request_link')" :label="$t('request.copy_link')"
:icon="hasNavigatorShare ? 'share' : 'content_copy'" :icon="hasNavigatorShare ? 'share' : 'content_copy'"
@click.native=" @click.native="
copyRequest() copyRequest()
@@ -176,7 +176,7 @@
/> />
<SmartItem <SmartItem
ref="saveRequest" ref="saveRequest"
:label="$t('save_to_collections')" :label="$t('request.save_as')"
icon="create_new_folder" icon="create_new_folder"
@click.native=" @click.native="
showSaveRequestModal = true showSaveRequestModal = true

View File

@@ -11,11 +11,15 @@
> >
<div class="flex space-x-2 pb-8"> <div class="flex space-x-2 pb-8">
<div class="flex flex-col space-y-4 items-end"> <div class="flex flex-col space-y-4 items-end">
<span class="flex flex-1 items-center">{{ $t("send_request") }}</span> <span class="flex flex-1 items-center">
<span class="flex flex-1 items-center">{{ {{ $t("shortcut.send_request") }}
$t("reset_request") </span>
}}</span> <span class="flex flex-1 items-center">
<span class="flex flex-1 items-center"> Show all Shortcuts </span> {{ $t("shortcut.reset_request") }}
</span>
<span class="flex flex-1 items-center">
{{ $t("shortcut.show_all") }}
</span>
</div> </div>
<div class="flex flex-col space-y-4"> <div class="flex flex-col space-y-4">
<div class="flex"> <div class="flex">
@@ -27,7 +31,6 @@
<span class="shortcut-key">I</span> <span class="shortcut-key">I</span>
</div> </div>
<div class="flex"> <div class="flex">
<span class="shortcut-key">{{ getSpecialKey() }}</span>
<span class="shortcut-key">?</span> <span class="shortcut-key">?</span>
</div> </div>
</div> </div>

View File

@@ -1,6 +1,6 @@
<template> <template>
<SmartTabs styles="sticky top-24 z-20"> <SmartTabs styles="sticky top-24 z-20">
<SmartTab id="script" :label="$t('script')" :selected="true"> <SmartTab id="script" :label="$t('test.script')" :selected="true">
<div <div
class=" class="
bg-primary bg-primary
@@ -40,7 +40,7 @@
</SmartTab> </SmartTab>
<SmartTab <SmartTab
id="results" id="results"
:label="$t('results')" :label="$t('test.results')"
:info="totalTests ? totalTests.toString() : ''" :info="totalTests ? totalTests.toString() : ''"
> >
<div <div
@@ -101,7 +101,7 @@
> >
<i class="opacity-75 pb-2 material-icons">bug_report</i> <i class="opacity-75 pb-2 material-icons">bug_report</i>
<span class="text-center"> <span class="text-center">
{{ $t("add_test_scripts") }} {{ $t("empty.tests") }}
</span> </span>
</div> </div>
</SmartTab> </SmartTab>

View File

@@ -56,7 +56,7 @@
</div> </div>
</ul> </ul>
<p v-if="tokens.length === 0"> <p v-if="tokens.length === 0">
{{ $t("empty") }} {{ $t("empty.protocols") }}
</p> </p>
</template> </template>
</SmartModal> </SmartModal>

View File

@@ -19,7 +19,7 @@
<ButtonSecondary <ButtonSecondary
v-if="response.body" v-if="response.body"
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="previewEnabled ? $t('hide_preview') : $t('preview_html')" :title="previewEnabled ? $t('hide.preview') : $t('preview_html')"
:icon="!previewEnabled ? 'visibility' : 'visibility_off'" :icon="!previewEnabled ? 'visibility' : 'visibility_off'"
@click.native.prevent="togglePreview" @click.native.prevent="togglePreview"
/> />
@@ -35,7 +35,7 @@
v-if="response.body" v-if="response.body"
ref="copyResponse" ref="copyResponse"
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('copy')" :title="$t('action.copy')"
:icon="copyIcon" :icon="copyIcon"
@click.native="copyResponse" @click.native="copyResponse"
/> />

View File

@@ -28,7 +28,7 @@
v-if="response.body" v-if="response.body"
ref="copyResponse" ref="copyResponse"
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('copy')" :title="$t('action.copy')"
:icon="copyIcon" :icon="copyIcon"
@click.native="copyResponse" @click.native="copyResponse"
/> />

View File

@@ -28,7 +28,7 @@
v-if="response.body" v-if="response.body"
ref="copyResponse" ref="copyResponse"
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('copy')" :title="$t('action.copy')"
:icon="copyIcon" :icon="copyIcon"
@click.native="copyResponse" @click.native="copyResponse"
/> />

View File

@@ -28,7 +28,7 @@
v-if="response.body" v-if="response.body"
ref="copyResponse" ref="copyResponse"
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('copy')" :title="$t('action.copy')"
:icon="copyIcon" :icon="copyIcon"
@click.native="copyResponse" @click.native="copyResponse"
/> />

View File

@@ -55,7 +55,7 @@
<AppSection label="messages"> <AppSection label="messages">
<div class="flex flex-col flex-1 p-4 inline-flex"> <div class="flex flex-col flex-1 p-4 inline-flex">
<label for="pub_topic" class="font-semibold"> <label for="pub_topic" class="font-semibold">
{{ $t("mqtt_topic") }} {{ $t("mqtt.topic") }}
</label> </label>
</div> </div>
<div class="flex px-4"> <div class="flex px-4">
@@ -63,7 +63,7 @@
id="pub_topic" id="pub_topic"
v-model="pub_topic" v-model="pub_topic"
class="input" class="input"
:placeholder="$t('topic_name')" :placeholder="$t('mqtt.topic_name')"
type="text" type="text"
spellcheck="false" spellcheck="false"
/> />
@@ -87,7 +87,7 @@
name="get" name="get"
class="rounded-l-none" class="rounded-l-none"
:disabled="!canpublish" :disabled="!canpublish"
:label="$t('mqtt_publish')" :label="$t('mqtt.publish')"
@click.native="publish" @click.native="publish"
/> />
</div> </div>
@@ -101,7 +101,7 @@
" "
> >
<label for="sub_topic" class="font-semibold">{{ <label for="sub_topic" class="font-semibold">{{
$t("mqtt_topic") $t("mqtt.topic")
}}</label> }}</label>
</div> </div>
<div class="flex px-4"> <div class="flex px-4">
@@ -109,7 +109,7 @@
id="sub_topic" id="sub_topic"
v-model="sub_topic" v-model="sub_topic"
type="text" type="text"
:placeholder="$t('topic_name')" :placeholder="$t('mqtt.topic_name')"
spellcheck="false" spellcheck="false"
class="input !rounded-r-none" class="input !rounded-r-none"
/> />
@@ -119,7 +119,7 @@
:disabled="!cansubscribe" :disabled="!cansubscribe"
class="rounded-l-none" class="rounded-l-none"
:label=" :label="
subscriptionState ? $t('mqtt_unsubscribe') : $t('mqtt_subscribe') subscriptionState ? $t('mqtt.unsubscribe') : $t('mqtt.subscribe')
" "
reverse reverse
@click.native="toggleSubscription" @click.native="toggleSubscription"

View File

@@ -98,7 +98,7 @@
<div class="flex"> <div class="flex">
<ButtonSecondary <ButtonSecondary
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('add_new')" :title="$t('add.new')"
icon="add" icon="add"
@click.native="addCommunicationInput" @click.native="addCommunicationInput"
/> />
@@ -114,7 +114,7 @@
v-model="communication.inputs[index]" v-model="communication.inputs[index]"
class="input !rounded-r-none" class="input !rounded-r-none"
name="message" name="message"
:placeholder="$t('message_count', { count: index + 1 })" :placeholder="$t('count.message', { count: index + 1 })"
type="text" type="text"
:disabled="!connectionState" :disabled="!connectionState"
@keyup.enter="connectionState ? sendMessage() : null" @keyup.enter="connectionState ? sendMessage() : null"

View File

@@ -54,7 +54,7 @@
" "
> >
<label class="font-semibold"> <label class="font-semibold">
{{ $t("protocols") }} {{ $t("websocket.protocols") }}
</label> </label>
<div class="flex"> <div class="flex">
<ButtonSecondary <ButtonSecondary
@@ -65,7 +65,7 @@
/> />
<ButtonSecondary <ButtonSecondary
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('add_new')" :title="$t('add.new')"
icon="add" icon="add"
@click.native="addProtocol" @click.native="addProtocol"
/> />
@@ -92,7 +92,7 @@
px-4 px-4
focus:outline-none focus:outline-none
" "
:placeholder="$t('protocol_count', { count: index + 1 })" :placeholder="$t('count.protocol', { count: index + 1 })"
name="message" name="message"
type="text" type="text"
/> />
@@ -102,9 +102,9 @@
:title=" :title="
protocol.hasOwnProperty('active') protocol.hasOwnProperty('active')
? protocol.active ? protocol.active
? $t('turn_off') ? $t('action.turn_off')
: $t('turn_on') : $t('action.turn_on')
: $t('turn_off') : $t('action.turn_off')
" "
:icon=" :icon="
protocol.hasOwnProperty('active') protocol.hasOwnProperty('active')
@@ -143,7 +143,7 @@
> >
<i class="opacity-75 pb-2 material-icons">topic</i> <i class="opacity-75 pb-2 material-icons">topic</i>
<span class="text-center"> <span class="text-center">
{{ $t("protocols_empty") }} {{ $t("empty.protocols") }}
</span> </span>
</div> </div>
</Pane> </Pane>

View File

@@ -1,5 +1,5 @@
<template> <template>
<span> <span class="inline-flex">
<tippy <tippy
ref="language" ref="language"
interactive interactive
@@ -10,13 +10,15 @@
:animate-fill="false" :animate-fill="false"
> >
<template #trigger> <template #trigger>
<SmartLink <ButtonSecondary
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('choose_language')" :title="$t('choose_language')"
class="font-medium focus:outline-none" class="font-medium focus:outline-none"
> outline
{{ `${$i18n.locales.find(({ code }) => code == $i18n.locale).name}` }} :label="`${
</SmartLink> $i18n.locales.find(({ code }) => code == $i18n.locale).name
}`"
/>
</template> </template>
<nuxt-link <nuxt-link
v-for="(locale, index) in $i18n.locales.filter( v-for="(locale, index) in $i18n.locales.filter(
@@ -26,22 +28,8 @@
:to="switchLocalePath(locale.code)" :to="switchLocalePath(locale.code)"
@click="$refs.language.tippy().hide()" @click="$refs.language.tippy().hide()"
> >
<SmartItem <SmartItem :label="locale.name" />
:label="`${getFlagEmoji(locale.country)} \xA0 ${locale.name}`"
/>
</nuxt-link> </nuxt-link>
</tippy> </tippy>
</span> </span>
</template> </template>
<script>
export default {
methods: {
getFlagEmoji(c) {
return String.fromCodePoint(
...[...c.toUpperCase()].map((x) => 0x1f1a5 + x.charCodeAt())
)
},
},
}
</script>

View File

@@ -71,7 +71,8 @@ export default defineComponent({
highlight: [ highlight: [
{ {
text: /(<<\w+>>)/g, text: /(<<\w+>>)/g,
style: "text-white cursor-help rounded px-1 mx-0.5", style:
"text-white cursor-help rounded px-1 focus:outline-none mx-0.5",
}, },
], ],
highlightEnabled: true, highlightEnabled: true,

View File

@@ -1,7 +1,7 @@
<template> <template>
<SmartModal v-if="show" @close="hideModal"> <SmartModal v-if="show" @close="hideModal">
<template #header> <template #header>
<h3 class="heading">{{ $t("new_team") }}</h3> <h3 class="heading">{{ $t("team.new") }}</h3>
<ButtonSecondary icon="close" @click.native="hideModal" /> <ButtonSecondary icon="close" @click.native="hideModal" />
</template> </template>
<template #body> <template #body>
@@ -14,7 +14,7 @@
v-model="name" v-model="name"
class="input" class="input"
type="text" type="text"
:placeholder="$t('my_new_team')" :placeholder="$t('team.new_name')"
@keyup.enter="addNewTeam" @keyup.enter="addNewTeam"
/> />
</div> </div>
@@ -47,7 +47,7 @@ export default {
// We clear it early to give the UI a snappy feel // We clear it early to give the UI a snappy feel
this.name = "" this.name = ""
if (name != null && name.replace(/\s/g, "").length < 6) { if (name != null && name.replace(/\s/g, "").length < 6) {
this.$toast.error(this.$t("string_length_insufficient"), { this.$toast.error(this.$t("team.name_length_insufficient"), {
icon: "error", icon: "error",
}) })
return return

View File

@@ -1,7 +1,7 @@
<template> <template>
<SmartModal v-if="show" @close="hideModal"> <SmartModal v-if="show" @close="hideModal">
<template #header> <template #header>
<h3 class="heading">{{ $t("edit_team") }}</h3> <h3 class="heading">{{ $t("team.edit") }}</h3>
<div> <div>
<ButtonSecondary icon="close" @click.native="hideModal" /> <ButtonSecondary icon="close" @click.native="hideModal" />
</div> </div>
@@ -21,12 +21,12 @@
/> />
<div class="flex flex-1 justify-between items-center"> <div class="flex flex-1 justify-between items-center">
<label for="memberList" class="font-semibold px-4 pt-4 pb-4"> <label for="memberList" class="font-semibold px-4 pt-4 pb-4">
{{ $t("team_member_list") }} {{ $t("team.members") }}
</label> </label>
<div> <div>
<ButtonSecondary <ButtonSecondary
icon="add" icon="add"
:label="$t('add_new')" :label="$t('add.new')"
@click.native="addTeamMember" @click.native="addTeamMember"
/> />
</div> </div>
@@ -51,7 +51,7 @@
px-4 px-4
focus:outline-none focus:outline-none
" "
:placeholder="$t('email')" :placeholder="$t('team.email')"
:name="'param' + index" :name="'param' + index"
:value="member.user.email" :value="member.user.email"
readonly readonly
@@ -76,7 +76,7 @@
px-4 px-4
focus:outline-none focus:outline-none
" "
:placeholder="$t('permissions')" :placeholder="$t('team.permissions')"
:name="'value' + index" :name="'value' + index"
:value=" :value="
typeof member.role === 'string' typeof member.role === 'string'
@@ -140,7 +140,7 @@
px-4 px-4
focus:outline-none focus:outline-none
" "
:placeholder="$t('email')" :placeholder="$t('team.email')"
:name="'member' + index" :name="'member' + index"
autofocus autofocus
/> />
@@ -164,7 +164,7 @@
px-4 px-4
focus:outline-none focus:outline-none
" "
:placeholder="$t('permissions')" :placeholder="$t('team.permissions')"
:name="'value' + index" :name="'value' + index"
:value=" :value="
typeof member.value === 'string' typeof member.value === 'string'
@@ -275,7 +275,7 @@ export default {
.removeTeamMember(this.$apollo, userID, this.editingteamID) .removeTeamMember(this.$apollo, userID, this.editingteamID)
.then(() => { .then(() => {
// Result // Result
this.$toast.success(this.$t("user_removed"), { this.$toast.success(this.$t("team.member_removed"), {
icon: "done", icon: "done",
}) })
this.hideModal() this.hideModal()
@@ -306,7 +306,7 @@ export default {
this.$data.rename !== null && this.$data.rename !== null &&
this.$data.rename.replace(/\s/g, "").length < 6 this.$data.rename.replace(/\s/g, "").length < 6
) { ) {
this.$toast.error(this.$t("string_length_insufficient"), { this.$toast.error(this.$t("team.name_length_insufficient"), {
icon: "error", icon: "error",
}) })
return return
@@ -314,7 +314,7 @@ export default {
let invalidEmail = false let invalidEmail = false
this.$data.newMembers.forEach((element) => { this.$data.newMembers.forEach((element) => {
if (!this.validateEmail(element.key)) { if (!this.validateEmail(element.key)) {
this.$toast.error(this.$t("invalid_emailID_format"), { this.$toast.error(this.$t("team.invalid_email_format"), {
icon: "error", icon: "error",
}) })
invalidEmail = true invalidEmail = true
@@ -342,7 +342,7 @@ export default {
) )
.then(() => { .then(() => {
// Result // Result
this.$toast.success(this.$t("team_saved"), { this.$toast.success(this.$t("team.saved"), {
icon: "done", icon: "done",
}) })
}) })
@@ -364,7 +364,7 @@ export default {
) )
.then(() => { .then(() => {
// Result // Result
this.$toast.success(this.$t("role_updated"), { this.$toast.success(this.$t("team.member_role_updated"), {
icon: "done", icon: "done",
}) })
}) })
@@ -380,7 +380,7 @@ export default {
const newName = const newName =
this.name === this.$data.rename ? this.name : this.$data.rename this.name === this.$data.rename ? this.name : this.$data.rename
if (!/\S/.test(newName)) if (!/\S/.test(newName))
return this.$toast.error(this.$t("team_name_empty"), { return this.$toast.error(this.$t("empty.team_name"), {
icon: "error", icon: "error",
}) })
// Call to the graphql mutation // Call to the graphql mutation
@@ -389,7 +389,7 @@ export default {
.renameTeam(this.$apollo, newName, this.editingteamID) .renameTeam(this.$apollo, newName, this.editingteamID)
.then(() => { .then(() => {
// Result // Result
this.$toast.success(this.$t("team_saved"), { this.$toast.success(this.$t("team.saved"), {
icon: "done", icon: "done",
}) })
}) })

View File

@@ -47,12 +47,12 @@
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title=" :title="
team.myRole === 'OWNER' && team.ownersCount == 1 team.myRole === 'OWNER' && team.ownersCount == 1
? $t('disable_exit') ? $t('team.exit_disabled')
: '' : ''
" "
:disabled="team.myRole === 'OWNER' && team.ownersCount == 1" :disabled="team.myRole === 'OWNER' && team.ownersCount == 1"
icon="remove" icon="remove"
:label="$t('exit')" :label="$t('team.exit')"
@click.native=" @click.native="
exitTeam exitTeam
$refs.options.tippy().hide() $refs.options.tippy().hide()
@@ -78,7 +78,7 @@ export default {
.deleteTeam(this.$apollo, this.teamID) .deleteTeam(this.$apollo, this.teamID)
.then(() => { .then(() => {
// Result // Result
this.$toast.success(this.$t("new_team_created"), { this.$toast.success(this.$t("team.new_created"), {
icon: "done", icon: "done",
}) })
}) })
@@ -96,7 +96,7 @@ export default {
.exitTeam(this.$apollo, this.teamID) .exitTeam(this.$apollo, this.teamID)
.then(() => { .then(() => {
// Result // Result
this.$toast.success(this.$t("team_exited"), { this.$toast.success(this.$t("team.left"), {
icon: "done", icon: "done",
}) })
}) })

View File

@@ -1,7 +1,9 @@
<template> <template>
<AppSection label="teams"> <AppSection label="teams">
<div class="flex flex-col"> <div class="flex flex-col">
<legend class="font-bold text-secondaryDark">{{ $t("teams") }}</legend> <legend class="font-bold text-secondaryDark">
{{ $t("team.title") }}
</legend>
<div v-if="currentUser"></div> <div v-if="currentUser"></div>
<div v-else> <div v-else>
<label>{{ $t("login_with") }}</label> <label>{{ $t("login_with") }}</label>
@@ -36,7 +38,7 @@
{{ $t("loading") }} {{ $t("loading") }}
</p> </p>
<p v-if="myTeams.length === 0"> <p v-if="myTeams.length === 0">
<i class="material-icons">help_outline</i> {{ $t("create_new_team") }} <i class="material-icons">help_outline</i> {{ $t("team.create_new") }}
</p> </p>
<div v-else class="hide-scrollbar !overflow-auto"> <div v-else class="hide-scrollbar !overflow-auto">
<ul class="flex-col"> <ul class="flex-col">

View File

@@ -1,11 +1,163 @@
{ {
"home": "Home", "navigation": {
"realtime": "Realtime", "rest": "REST",
"graphql": "GraphQL", "graphql": "GraphQL",
"settings": "Settings", "realtime": "Realtime",
"request": "Request", "doc": "Docs",
"install_pwa": "Install PWA", "settings": "Settings"
"support_us": "Support us", },
"header": {
"install_pwa": "Install app"
},
"action": {
"turn_on": "Turn on",
"turn_off": "Turn off",
"dismiss": "Dismiss",
"copy": "Copy"
},
"confirm": {
"logout": "Are you sure you want to logout?",
"remove_history": "Are you sure you want to permanently delete all history?",
"remove_collection": "Are you sure you want to permanently delete this collection?",
"remove_folder": "Are you sure you want to permanently delete this folder?",
"remove_request": "Are you sure you want to permanently delete this request?",
"remove_environment": "Are you sure you want to permanently delete this environment?",
"remove_telemetry": "Are you sure you want to opt-out of Telemetry?"
},
"empty": {
"protocols": "Protocols are empty",
"environments": "Environments are empty",
"collections": "Collections are empty",
"team_name": "Team name empty",
"collection": "Collection is empty",
"folder": "Folder is empty",
"parameters": "Parameters are empty",
"history": "History is empty",
"headers": "Headers are empty",
"tests": "Tests are empty",
"schema": "Connect to a GraphQL endpoint"
},
"count": {
"message": "Message {count}",
"protocol": "Protocol {count}",
"header": "Header {count}",
"parameter": "Parameter {count}",
"variable": "Variable {count}",
"value": "Value {count}"
},
"add": {
"new": "Add new",
"star": "Add star"
},
"remove": {
"star": "Remove star"
},
"show": {
"code": "Show Code",
"more": "Show more",
"sidebar": "Show sidebar"
},
"hide": {
"sidebar": "Hide sidebar",
"more": "Hide more",
"preview": "Hide Preview"
},
"app": {
"new_version_found": "New version found. Refresh to update."
},
"collection": {
"select": "Select a Collection",
"invalid_name": "Please provide a valid name for the collection",
"new": "New Collection",
"name": "My New Collection",
"edit": "Edit Collection",
"created": "Collection created"
},
"folder": {
"new": "New Folder",
"edit": "Edit Folder",
"created": "Folder created",
"renamed": "Folder renamed"
},
"team": {
"title": "Teams",
"exit": "Exit Team",
"name_length_insufficient": "Team name should be atleast 6 characters long",
"invalid_email_format": "Email format is invalid",
"new": "New Team",
"new_name": "My New Team",
"edit": "Edit Team",
"members": "Members",
"permissions": "Permissions",
"invalid_member_permission": "Please provide a valid permission to the team member",
"email": "E-mail",
"create_new": "Create new team",
"new_created": "New team created",
"saved": "Team saved",
"no_access": "You do not have edit access to these collections",
"left": "You left the team",
"exit_disabled": "Only owner cannot exit the team",
"member_role_updated": "User role(s) updated",
"member_removed": "User removed"
},
"modal": {
"import_export": "Import / Export"
},
"import": {
"title": "Import",
"from_gist": "Import from Gist",
"gist_url": "Enter Gist URL",
"failed": "Import failed",
"json": "Import from JSON",
"collections": "Import collections",
"curl": "Import cURL",
"from_my_collections": "Import from My Collections"
},
"export": {
"as_json": "Export as JSON",
"create_secret_gist": "Create secret Gist",
"require_github": "Login with GitHub to create secret gist",
"gist_created": "Gist created"
},
"auth": {
"account_exists": "Account exists with different credential - Login to link both accounts",
"send_magic_link": "Send a magic link",
"we_sent_magic_link": "We sent you a magic link!",
"we_sent_magic_link_description": "Check your inbox - we sent an email to {email}. It contains a magic link that will log you in."
},
"tab": {
"websocket": "WebSocket",
"mqtt": "MQTT"
},
"websocket": {
"protocols": "Protocols"
},
"mqtt": {
"topic": "Topic",
"topic_name": "Topic Name",
"topic_title": "Publish / Subscribe topic",
"publish": "Publish",
"subscribe": "Subscribe",
"unsubscribe": "Unsubscribe"
},
"request": {
"copy_link": "Copy link",
"save_as": "Save as",
"share": "Share"
},
"settings": {
"shortcuts_indicator": "Shortcuts indicator",
"telemetry": "Telemetry",
"interceptor": "Interceptor",
"navigation_sidebar": "Navigation sidebar"
},
"layout": {
"zen_mode": "Zen mode"
},
"test": {
"script": "Script",
"results": "Results"
},
"options": "Options", "options": "Options",
"communication": "Communication", "communication": "Communication",
"endpoint": "Endpoint", "endpoint": "Endpoint",
@@ -13,13 +165,6 @@
"theme": "Theme", "theme": "Theme",
"choose_language": "Choose Language", "choose_language": "Choose Language",
"shortcuts": "Shortcuts", "shortcuts": "Shortcuts",
"send_request": "Send/Cancel Request",
"save_to_collections": "Save to Collections",
"copy_request_link": "Copy Request Link",
"reset_request": "Reset Request",
"open_collective": "Open Collective",
"paypal": "PayPal",
"patreon": "Patreon",
"javascript_code": "JavaScript Code", "javascript_code": "JavaScript Code",
"method": "Method", "method": "Method",
"path": "Path", "path": "Path",
@@ -31,16 +176,12 @@
"request_body": "Request Body", "request_body": "Request Body",
"raw_request_body": "Raw Request Body", "raw_request_body": "Raw Request Body",
"response_body": "Response Body", "response_body": "Response Body",
"show_code": "Show Code",
"show_prerequest_script": "Show Pre-Request Script",
"hide_prerequest_script": "Hide Pre-Request Script",
"authentication": "Authentication", "authentication": "Authentication",
"authentication_type": "Authentication type", "authentication_type": "Authentication type",
"include_in_url": "Include in URL", "include_in_url": "Include in URL",
"parameters": "Parameters", "parameters": "Parameters",
"expand_response": "Expand response", "expand_response": "Expand response",
"collapse_response": "Collapse response", "collapse_response": "Collapse response",
"hide_preview": "Hide Preview",
"preview_html": "Preview HTML", "preview_html": "Preview HTML",
"history": "History", "history": "History",
"collections": "Collections", "collections": "Collections",
@@ -50,18 +191,13 @@
"edit_environment": "Edit Environment", "edit_environment": "Edit Environment",
"env_variable_list": "Variable List", "env_variable_list": "Variable List",
"invalid_environment_name": "Please provide a valid name for the environment", "invalid_environment_name": "Please provide a valid name for the environment",
"add_one_variable": "(add at least one variable)",
"import_curl": "Import cURL",
"import": "Import",
"generate_code": "Generate code", "generate_code": "Generate code",
"request_type": "Request type", "request_type": "Request type",
"generated_code": "Generated code", "generated_code": "Generated code",
"status": "Status", "status": "Status",
"headers": "Headers", "headers": "Headers",
"websocket": "WebSocket",
"waiting_for_connection": "waiting for connection", "waiting_for_connection": "waiting for connection",
"message": "Message", "message": "Message",
"message_count": "Message {count}",
"sse": "SSE", "sse": "SSE",
"server": "Server", "server": "Server",
"events": "Events", "events": "Events",
@@ -69,7 +205,6 @@
"variables": "Variables", "variables": "Variables",
"get_schema": "Get schema", "get_schema": "Get schema",
"header_list": "Header list", "header_list": "Header list",
"add_new": "Add new",
"response": "Response", "response": "Response",
"query": "Query", "query": "Query",
"queries": "Queries", "queries": "Queries",
@@ -118,42 +253,21 @@
"prerequest_script": "Pre-Request Script", "prerequest_script": "Pre-Request Script",
"no_prerequest_script": "No pre-request script", "no_prerequest_script": "No pre-request script",
"search": "Search", "search": "Search",
"history_empty": "History is empty",
"history_deleted": "History deleted", "history_deleted": "History deleted",
"clear": "Clear", "clear": "Clear",
"clear_all": "Clear All", "clear_all": "Clear All",
"cleared": "Cleared", "cleared": "Cleared",
"close": "Close",
"sort": "Sort",
"time": "Time", "time": "Time",
"duration": "Duration", "duration": "Duration",
"no_duration": "No duration", "no_duration": "No duration",
"show_more": "Show more",
"hide_more": "Hide more",
"collection": "Collection",
"current_collection": "Current Collection",
"select_collection": "Select a Collection",
"create_collection": "Create a Collection",
"new": "New", "new": "New",
"import_export": "Import / Export",
"more": "More", "more": "More",
"folder": "Folder",
"new_folder": "New Folder",
"my_new_folder": "My New Folder",
"folder_empty": "Folder is empty",
"edit_folder": "Edit Folder",
"edit": "Edit", "edit": "Edit",
"delete": "Delete", "delete": "Delete",
"deleted": "Deleted", "deleted": "Deleted",
"undo": "Undo", "undo": "Undo",
"collection_empty": "Collection is empty",
"invalid_collection_name": "Please provide a valid name for the collection",
"new_collection": "New Collection",
"my_new_collection": "My New Collection",
"edit_collection": "Edit Collection",
"edit_request": "Edit Request", "edit_request": "Edit Request",
"save_request_as": "Save Request As", "save_request_as": "Save Request As",
"export": "Export",
"connecting_to": "Connecting to {name}...", "connecting_to": "Connecting to {name}...",
"connected": "Connected", "connected": "Connected",
"connected_to": "Connected to {name}", "connected_to": "Connected to {name}",
@@ -177,17 +291,13 @@
"cancel": "Cancel", "cancel": "Cancel",
"cancelled": "Cancelled", "cancelled": "Cancelled",
"save": "Save", "save": "Save",
"dismiss": "Dismiss",
"yes": "Yes", "yes": "Yes",
"no": "No", "no": "No",
"restore": "Restore", "restore": "Restore",
"add_star": "Add star",
"remove_star": "Remove star",
"nothing_found": "Nothing found for", "nothing_found": "Nothing found for",
"replace_current": "Replace current", "replace_current": "Replace current",
"replace_json": "Replace with JSON", "replace_json": "Replace with JSON",
"preserve_current": "Preserve current", "preserve_current": "Preserve current",
"import_json": "Import from JSON",
"download_file": "Download file", "download_file": "Download file",
"upload_file": "Upload file", "upload_file": "Upload file",
"use_request": "Use request", "use_request": "Use request",
@@ -196,18 +306,11 @@
"reset_default": "Reset to default", "reset_default": "Reset to default",
"fields": "Fields", "fields": "Fields",
"deprecated": "DEPRECATED", "deprecated": "DEPRECATED",
"add_one_header": "(add at least one header)",
"add_one_parameter": "(add at least one parameter)",
"header_count": "Header {count}",
"parameter_count": "Parameter {count}",
"variable_count": "Variable {count}",
"value_count": "Value {count}",
"send_request_first": "Send a request first", "send_request_first": "Send a request first",
"generate_docs": "Generate documentation", "generate_docs": "Generate documentation",
"generate_docs_message": "Import any Hoppscotch collection to generate API documentation on-the-go.", "generate_docs_message": "Import any Hoppscotch collection to generate API documentation on-the-go.",
"generate_docs_first": "Generate documentation first", "generate_docs_first": "Generate documentation first",
"docs_generated": "Documentation generated", "docs_generated": "Documentation generated",
"import_collections": "Import collections",
"optional": "(optional)", "optional": "(optional)",
"none": "None", "none": "None",
"username": "Username", "username": "Username",
@@ -216,7 +319,6 @@
"payload": "Payload", "payload": "Payload",
"choose_file": "Choose a file", "choose_file": "Choose a file",
"file_imported": "File imported", "file_imported": "File imported",
"import_failed": "Import failed",
"f12_details": "(F12 for details)", "f12_details": "(F12 for details)",
"we_use_cookies": "We use cookies", "we_use_cookies": "We use cookies",
"copied_to_clipboard": "Copied to clipboard", "copied_to_clipboard": "Copied to clipboard",
@@ -240,7 +342,6 @@
"go_home": "Go Home", "go_home": "Go Home",
"reload": "Reload", "reload": "Reload",
"enter_curl": "Enter cURL", "enter_curl": "Enter cURL",
"empty": "Empty",
"extensions": "Extensions", "extensions": "Extensions",
"extensions_use_toggle": "Use the browser extension to send requests (if present)", "extensions_use_toggle": "Use the browser extension to send requests (if present)",
"extension_version": "Extension Version", "extension_version": "Extension Version",
@@ -260,103 +361,27 @@
"syncHistory": "History", "syncHistory": "History",
"syncCollections": "Collections", "syncCollections": "Collections",
"syncEnvironments": "Environments", "syncEnvironments": "Environments",
"turn_on": "Turn on",
"turn_off": "Turn off",
"import_from_sync": "Import from Sync",
"socketio": "Socket.IO", "socketio": "Socket.IO",
"event_name": "Event Name", "event_name": "Event Name",
"mqtt": "MQTT",
"mqtt_topic": "Topic",
"topic_name": "Topic Name",
"mqtt_topic_title": "Publish / Subscribe topic",
"mqtt_publish": "Publish",
"mqtt_subscribe": "Subscribe",
"mqtt_unsubscribe": "Unsubscribe",
"pre_request_script": "Pre-request Script", "pre_request_script": "Pre-request Script",
"tests": "Tests", "tests": "Tests",
"create_new_collection": "Create new collection",
"create_new_environment": "Create new environment", "create_new_environment": "Create new environment",
"are_you_sure": "Are you sure?",
"are_you_sure_logout": "Are you sure you want to logout?",
"are_you_sure_remove_history": "Are you sure you want to permanently delete all history?",
"are_you_sure_remove_collection": "Are you sure you want to permanently delete this collection?",
"are_you_sure_remove_folder": "Are you sure you want to permanently delete this folder?",
"are_you_sure_remove_request": "Are you sure you want to permanently delete this request?",
"are_you_sure_remove_environment": "Are you sure you want to permanently delete this environment?",
"are_you_sure_remove_telemetry": "Are you sure you want to opt-out of Telemetry?",
"telemetry_helps_us": "Telemetry helps us to personalize our operations and deliver the best experience to you.", "telemetry_helps_us": "Telemetry helps us to personalize our operations and deliver the best experience to you.",
"select_next_method": "Select Next method", "shortcut": {
"select_previous_method": "Select Previous method", "show_all": "Show all Shortcuts",
"select_get_method": "Select GET method", "send_request": "Send Request",
"select_head_method": "Select HEAD method", "save_to_collections": "Save to Collections",
"select_post_method": "Select POST method", "copy_request_link": "Copy Request Link",
"select_put_method": "Select PUT method", "reset_request": "Reset Request",
"select_delete_method": "Select DELETE method", "next_method": "Select Next method",
"previous_method": "Select Previous method",
"get_method": "Select GET method",
"head_method": "Select HEAD method",
"post_method": "Select POST method",
"put_method": "Select PUT method",
"delete_method": "Select DELETE method"
},
"experiments": "Experiments", "experiments": "Experiments",
"experiments_notice": "This is a collection of experiments we're working on that might turn out to be useful, fun, both, or neither. They're not final and may not be stable, so if something overly weird happens, don't panic. Just turn the dang thing off. Jokes aside, ", "experiments_notice": "This is a collection of experiments we're working on that might turn out to be useful, fun, both, or neither. They're not final and may not be stable, so if something overly weird happens, don't panic. Just turn the dang thing off. Jokes aside, ",
"use_experimental_url_bar": "Use experimental URL bar with environment highlighting", "use_experimental_url_bar": "Use experimental URL bar with environment highlighting"
"select_environment": "Select environment",
"login_with_github_to": "Login with GitHub to ",
"create_secret_gist": "Create secret Gist",
"gist_created": "Gist created",
"import_from_gist": "Import from Gist",
"enter_gist_url": "Enter Gist URL",
"account_exists": "Account exists with different credential - Login to link both accounts",
"confirm": "Confirm",
"new_version_found": "New version found. Refresh to update.",
"size": "Size",
"exit": "Exit Team",
"string_length_insufficient": "Team name should be atleast 6 characters long",
"invalid_emailID_format": "Email ID format is invalid",
"teams": "Teams",
"new_team": "New Team",
"my_new_team": "My New Team",
"edit_team": "Edit Team",
"team_member_list": "Member List",
"invalid_team_name": "Please provide a valid name for the team",
"use_team": "Use Team",
"add_one_member": "(add at least one member)",
"permissions": "Permissions",
"invalid_member_permission": "Please provide a valid permission to the team member",
"email": "E-mail",
"create_new_team": "Create new team",
"new_team_created": "New team created",
"team_saved": "Team saved",
"team_name_empty": "Team name empty",
"disable_new_collection": "You do not have edit access to these collections",
"collection_added": "Collection added successfully",
"folder_added": "Folder added successfully",
"team_exited": "Team exited",
"disable_exit": "Only owner cannot exit the team",
"folder_renamed": "Folder renamed successfully",
"role_updated": "User role(s) updated successfully",
"user_removed": "User removed successfully",
"import_from_my_collections": "Import from My Collections",
"export_as_json": "Export as JSON",
"send_magic_link": "Send a magic link",
"you_can_dismiss_this_modal": "You can dismiss this ",
"we_sent_magic_link": "We sent you a magic link!",
"we_sent_magic_link_description": "Check your inbox - we sent an email to {email}. It contains a magic link that will log you in.",
"hide_sidebar": "Hide sidebar",
"show_sidebar": "Show sidebar",
"navigation_sidebar": "Navigation sidebar",
"protocols": "Protocols",
"protocol_count": "Protocol {count}",
"share": "Share",
"interceptor": "Interceptor",
"profile": "Profile",
"telemetry": "Telemetry",
"shortcuts_indicator": "Shortcuts indicator",
"zen_mode": "Zen mode",
"notifications": "Notifications",
"connect_graphql_endpoint": "Connect to a GraphQL endpoint",
"copy": "Copy",
"parameters_empty": "Parameters are empty",
"headers_empty": "Headers are empty",
"script": "Script",
"results": "Results",
"add_test_scripts": "Add test script",
"protocols_empty": "Protocols are empty",
"environments_empty": "Environments are empty",
"collections_empty": "Collections are empty"
} }

View File

@@ -93,7 +93,7 @@ export default defineComponent({
if (workbox) { if (workbox) {
workbox.addEventListener("installed", (event: any) => { workbox.addEventListener("installed", (event: any) => {
if (event.isUpdate) { if (event.isUpdate) {
this.$toast.show(this.$t("new_version_found").toString(), { this.$toast.show(this.$t("app.new_version_found").toString(), {
icon: "info", icon: "info",
duration: 0, duration: 0,
theme: "toasted-primary", theme: "toasted-primary",

View File

@@ -39,7 +39,7 @@
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
title="JSON" title="JSON"
icon="folder" icon="folder"
:label="$t('import_collections')" :label="$t('import.collections')"
@click.native="$refs.collectionUpload.click()" @click.native="$refs.collectionUpload.click()"
/> />
</label> </label>
@@ -123,13 +123,9 @@
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title=" :title="
!currentUser !currentUser
? `${$t('login_with_github_to')} ${$t( ? $t('export.require_github')
'create_secret_gist'
).toLowerCase()}`
: currentUser.provider !== 'github.com' : currentUser.provider !== 'github.com'
? `${$t('login_with_github_to')} ${$t( ? $t('export.require_github')
'create_secret_gist'
).toLowerCase()}`
: 'Beta' : 'Beta'
" "
> >
@@ -141,7 +137,7 @@
? true ? true
: false : false
" "
:label="$t('create_secret_gist')" :label="$t('export.create_secret_gist')"
@click.native="createDocsGist" @click.native="createDocsGist"
/> />
</div> </div>
@@ -231,7 +227,7 @@ export default defineComponent({
} }
) )
.then((res) => { .then((res) => {
this.$toast.success(this.$t("gist_created"), { this.$toast.success(this.$t("export.gist_created"), {
icon: "done", icon: "done",
}) })
window.open(res.html_url) window.open(res.html_url)

View File

@@ -66,7 +66,7 @@
/> />
<ButtonSecondary <ButtonSecondary
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('copy')" :title="$t('action.copy')"
:icon="copyQueryIcon" :icon="copyQueryIcon"
@click.native="copyQuery" @click.native="copyQuery"
/> />
@@ -125,7 +125,7 @@
<div class="flex"> <div class="flex">
<ButtonSecondary <ButtonSecondary
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('copy')" :title="$t('action.copy')"
:icon="copyVariablesIcon" :icon="copyVariablesIcon"
@click.native="copyVariables" @click.native="copyVariables"
/> />
@@ -182,7 +182,7 @@
/> />
<ButtonSecondary <ButtonSecondary
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('add_new')" :title="$t('add.new')"
icon="add" icon="add"
@click.native="addRequestHeader" @click.native="addRequestHeader"
/> />
@@ -199,7 +199,7 @@
:class="{ 'border-t': index == 0 }" :class="{ 'border-t': index == 0 }"
> >
<SmartAutoComplete <SmartAutoComplete
:placeholder="$t('header_count', { count: index + 1 })" :placeholder="$t('count.header', { count: index + 1 })"
:source="commonHeaders" :source="commonHeaders"
:spellcheck="false" :spellcheck="false"
:value="header.key" :value="header.key"
@@ -230,7 +230,7 @@
px-4 px-4
focus:outline-none focus:outline-none
" "
:placeholder="$t('value_count', { count: index + 1 })" :placeholder="$t('count.value', { count: index + 1 })"
:name="`value ${index}`" :name="`value ${index}`"
:value="header.value" :value="header.value"
autofocus autofocus
@@ -247,9 +247,9 @@
:title=" :title="
header.hasOwnProperty('active') header.hasOwnProperty('active')
? header.active ? header.active
? $t('turn_off') ? $t('action.turn_off')
: $t('turn_on') : $t('action.turn_on')
: $t('turn_off') : $t('action.turn_off')
" "
:icon=" :icon="
header.hasOwnProperty('active') header.hasOwnProperty('active')
@@ -291,10 +291,10 @@
> >
<i class="opacity-75 pb-2 material-icons">post_add</i> <i class="opacity-75 pb-2 material-icons">post_add</i>
<span class="text-center pb-4"> <span class="text-center pb-4">
{{ $t("headers_empty") }} {{ $t("empty.headers") }}
</span> </span>
<ButtonSecondary <ButtonSecondary
:label="$t('add_new')" :label="$t('add.new')"
outline outline
@click.native="addRequestHeader" @click.native="addRequestHeader"
/> />
@@ -333,7 +333,7 @@
<ButtonSecondary <ButtonSecondary
ref="copyResponseButton" ref="copyResponseButton"
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('copy')" :title="$t('action.copy')"
:icon="copyResponseIcon" :icon="copyResponseIcon"
@click.native="copyResponse" @click.native="copyResponse"
/> />
@@ -494,7 +494,7 @@
> >
<i class="opacity-75 pb-2 material-icons">link</i> <i class="opacity-75 pb-2 material-icons">link</i>
<span class="text-center"> <span class="text-center">
{{ $t("connect_graphql_endpoint") }} {{ $t("empty.schema") }}
</span> </span>
</div> </div>
</AppSection> </AppSection>
@@ -542,7 +542,7 @@
<ButtonSecondary <ButtonSecondary
ref="copySchemaCode" ref="copySchemaCode"
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('copy')" :title="$t('action.copy')"
:icon="copySchemaIcon" :icon="copySchemaIcon"
@click.native="copySchema" @click.native="copySchema"
/> />
@@ -574,7 +574,7 @@
> >
<i class="opacity-75 pb-2 material-icons">link</i> <i class="opacity-75 pb-2 material-icons">link</i>
<span class="text-center"> <span class="text-center">
{{ $t("connect_graphql_endpoint") }} {{ $t("empty.schema") }}
</span> </span>
</div> </div>
</AppSection> </AppSection>

View File

@@ -143,8 +143,6 @@
/> />
<ButtonSecondary <ButtonSecondary
@click.native="showTokenRequest = false" @click.native="showTokenRequest = false"
v-tippy="{ theme: 'tooltip' }"
:title="$t('close')"
icon="close" icon="close"
/> />
</div> </div>

View File

@@ -1,6 +1,6 @@
<template> <template>
<SmartTabs> <SmartTabs>
<SmartTab id="websocket" :label="$t('websocket')" :selected="true"> <SmartTab id="websocket" :label="$t('tab.websocket')" :selected="true">
<RealtimeWebsocket /> <RealtimeWebsocket />
</SmartTab> </SmartTab>
<SmartTab id="sse" :label="$t('sse')"> <SmartTab id="sse" :label="$t('sse')">
@@ -9,7 +9,7 @@
<SmartTab id="socketio" :label="$t('socketio')"> <SmartTab id="socketio" :label="$t('socketio')">
<RealtimeSocketio /> <RealtimeSocketio />
</SmartTab> </SmartTab>
<SmartTab id="mqtt" :label="$t('mqtt')"> <SmartTab id="mqtt" :label="$t('tab.mqtt')">
<RealtimeMqtt /> <RealtimeMqtt />
</SmartTab> </SmartTab>
</SmartTabs> </SmartTabs>

View File

@@ -135,6 +135,14 @@
<SmartAccentModePicker /> <SmartAccentModePicker />
</div> </div>
</fieldset> </fieldset>
<fieldset>
<legend class="font-bold text-secondaryDark">
{{ $t("choose_language") }}
</legend>
<div class="mt-4">
<SmartChangeLanguage />
</div>
</fieldset>
<fieldset> <fieldset>
<legend class="font-bold text-secondaryDark"> <legend class="font-bold text-secondaryDark">
{{ $t("experiments") }} {{ $t("experiments") }}
@@ -168,7 +176,7 @@
</div> </div>
<div class="flex items-center"> <div class="flex items-center">
<SmartToggle :on="TELEMETRY_ENABLED" @change="showConfirmModal"> <SmartToggle :on="TELEMETRY_ENABLED" @change="showConfirmModal">
{{ $t("telemetry") }} {{ $t("settings.telemetry") }}
{{ TELEMETRY_ENABLED ? $t("enabled") : $t("disabled") }} {{ TELEMETRY_ENABLED ? $t("enabled") : $t("disabled") }}
</SmartToggle> </SmartToggle>
</div> </div>
@@ -177,7 +185,7 @@
:on="SHORTCUT_INDICATOR" :on="SHORTCUT_INDICATOR"
@change="toggleSetting('SHORTCUT_INDICATOR')" @change="toggleSetting('SHORTCUT_INDICATOR')"
> >
{{ $t("shortcuts_indicator") }} {{ $t("settings.shortcuts_indicator") }}
{{ SHORTCUT_INDICATOR ? $t("enabled") : $t("disabled") }} {{ SHORTCUT_INDICATOR ? $t("enabled") : $t("disabled") }}
</SmartToggle> </SmartToggle>
</div> </div>
@@ -186,13 +194,13 @@
:on="LEFT_SIDEBAR" :on="LEFT_SIDEBAR"
@change="toggleSetting('LEFT_SIDEBAR')" @change="toggleSetting('LEFT_SIDEBAR')"
> >
{{ $t("navigation_sidebar") }} {{ $t("settings.navigation_sidebar") }}
{{ LEFT_SIDEBAR ? $t("enabled") : $t("disabled") }} {{ LEFT_SIDEBAR ? $t("enabled") : $t("disabled") }}
</SmartToggle> </SmartToggle>
</div> </div>
<div class="flex items-center"> <div class="flex items-center">
<SmartToggle :on="ZEN_MODE" @change="toggleSetting('ZEN_MODE')"> <SmartToggle :on="ZEN_MODE" @change="toggleSetting('ZEN_MODE')">
{{ $t("zen_mode") }} {{ $t("layout.zen_mode") }}
{{ ZEN_MODE ? $t("enabled") : $t("disabled") }} {{ ZEN_MODE ? $t("enabled") : $t("disabled") }}
</SmartToggle> </SmartToggle>
</div> </div>
@@ -204,7 +212,7 @@
<div class="md:grid md:grid-cols-3 md:gap-4"> <div class="md:grid md:grid-cols-3 md:gap-4">
<div class="p-8 md:col-span-1"> <div class="p-8 md:col-span-1">
<h3 class="heading"> <h3 class="heading">
{{ $t("interceptor") }} {{ $t("settings.interceptor") }}
</h3> </h3>
<p class="mt-1 text-secondaryLight"> <p class="mt-1 text-secondaryLight">
Middleware between application and APIs. Middleware between application and APIs.
@@ -288,6 +296,7 @@
ml-2 ml-2
py-2 py-2
px-4 px-4
truncate
" "
> >
{{ `${$t("proxy")} ${$t("url")}` }} {{ `${$t("proxy")} ${$t("url")}` }}
@@ -328,9 +337,7 @@
<FirebaseLogin :show="showLogin" @hide-modal="showLogin = false" /> <FirebaseLogin :show="showLogin" @hide-modal="showLogin = false" />
<SmartConfirmModal <SmartConfirmModal
:show="confirmRemove" :show="confirmRemove"
:title="`${$t('are_you_sure_remove_telemetry')} ${$t( :title="`${$t('confirm.remove_telemetry')} ${$t('telemetry_helps_us')}`"
'telemetry_helps_us'
)}`"
@hide-modal="confirmRemove = false" @hide-modal="confirmRemove = false"
@resolve=" @resolve="
toggleSetting('TELEMETRY_ENABLED') toggleSetting('TELEMETRY_ENABLED')