Compare commits

...

11 Commits

Author SHA1 Message Date
WintBit 90fb3334b9
Merge 832d13aa85 into b27a9a925d 2023-07-24 02:37:12 +08:00
yehong b27a9a925d
feat: add Dockerfile (#600) 2023-07-23 22:19:47 +08:00
Kelvin Chiu b185161aa9
fix: set default value for the message owner (#597) 2023-07-23 09:38:52 +08:00
Yang Luo 43e8dabc2c Add getDefaultModelProvider() 2023-07-22 23:22:38 +08:00
Yang Luo f478db4af8 Remove tree's scrollbar 2023-07-22 23:15:56 +08:00
Yang Luo 444e3a3841 Add GetMaskedProvider() 2023-07-22 23:09:08 +08:00
Yang Luo 31bface6bd Adjust tree height 2023-07-22 22:16:25 +08:00
Yang Luo 46209eb83f Improve default store logic 2023-07-22 22:11:56 +08:00
github-actions[bot] 65d3fc6341
refactor: New Crowdin translations by Github Action (#596)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2023-07-22 21:23:02 +08:00
YunShu a5723e1a52
ci: add crowdin configuration file and i18n files (#595)
* ci: add crowdin configuration file and i18n files

* fix: update i18n regex
2023-07-22 21:10:14 +08:00
yehong 854213baae
feat: add CI (#593)
* feat: add CI

* Update semantic.yml

* Update .releaserc.json

---------

Co-authored-by: hsluoyz <hsluoyz@qq.com>
2023-07-22 18:42:02 +08:00
32 changed files with 1511 additions and 126 deletions

View File

@ -151,14 +151,4 @@ jobs:
target: STANDARD
platforms: linux/amd64,linux/arm64
push: true
tags: casbin/casibase:${{steps.get-current-tag.outputs.tag }},casbin/casibase:latest
- name: Push All In One Version to Docker Hub
uses: docker/build-push-action@v3
if: github.repository == 'casbin/casibase' && github.event_name == 'push' && steps.should_push.outputs.push=='true'
with:
context: .
target: ALLINONE
platforms: linux/amd64,linux/arm64
push: true
tags: casbin/casibase-all-in-one:${{steps.get-current-tag.outputs.tag }},casbin/casibase-all-in-one:latest
tags: casbin/casibase:${{steps.get-current-tag.outputs.tag }},casbin/casibase:latest

View File

@ -34,23 +34,23 @@ jobs:
CROWDIN_PROJECT_ID: '603051'
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
- name: crowdin backend action
uses: crowdin/github-action@1.4.8
with:
upload_translations: true
# - name: crowdin backend action
# uses: crowdin/github-action@1.4.8
# with:
# upload_translations: true
download_translations: true
push_translations: true
commit_message: 'refactor: New Crowdin Backend translations by Github Action'
# download_translations: true
# push_translations: true
# commit_message: 'refactor: New Crowdin Backend translations by Github Action'
localization_branch_name: l10n_crowdin_action
create_pull_request: true
pull_request_title: 'refactor: New Crowdin Backend translations'
# localization_branch_name: l10n_crowdin_action
# create_pull_request: true
# pull_request_title: 'refactor: New Crowdin Backend translations'
crowdin_branch_name: l10n_branch
config: './crowdin.yml'
# crowdin_branch_name: l10n_branch
# config: './crowdin.yml'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CROWDIN_PROJECT_ID: '603051'
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# CROWDIN_PROJECT_ID: '603051'
# CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}

23
.releaserc.json Normal file
View File

@ -0,0 +1,23 @@
{
"debug": true,
"branches": [
"+([0-9])?(.{+([0-9]),x}).x",
"master",
{
"name": "rc"
},
{
"name": "beta",
"prerelease": true
},
{
"name": "alpha",
"prerelease": true
}
],
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@semantic-release/github"
]
}

18
Dockerfile Normal file
View File

@ -0,0 +1,18 @@
FROM golang:1.19 AS BACK
WORKDIR /go/src/casibase
COPY . .
RUN go build -o server ./main.go
FROM debian:latest AS STANDARD
LABEL MAINTAINER="https://casibase.org/"
ARG TARGETOS
ARG TARGETARCH
ENV BUILDX_ARCH="${TARGETOS:-linux}_${TARGETARCH:-amd64}"
WORKDIR /
COPY --from=BACK /go/src/casibase/ ./
ENTRYPOINT ["/bin/bash"]
CMD ["/docker-entrypoint.sh"]

View File

@ -137,7 +137,7 @@ func (c *ApiController) GetMessageAnswer() {
return
}
if provider.Category != "AI" || provider.ClientSecret == "" {
if provider.Category != "Model" || provider.ClientSecret == "" {
c.ResponseErrorStream(fmt.Sprintf("The provider: %s is invalid", providerId))
return
}

View File

@ -27,7 +27,7 @@ func (c *ApiController) GetGlobalProviders() {
return
}
c.ResponseOk(providers)
c.ResponseOk(object.GetMaskedProviders(providers, true))
}
func (c *ApiController) GetProviders() {
@ -39,7 +39,7 @@ func (c *ApiController) GetProviders() {
return
}
c.ResponseOk(providers)
c.ResponseOk(object.GetMaskedProviders(providers, true))
}
func (c *ApiController) GetProvider() {
@ -51,7 +51,7 @@ func (c *ApiController) GetProvider() {
return
}
c.ResponseOk(provider)
c.ResponseOk(object.GetMaskedProvider(provider, true))
}
func (c *ApiController) UpdateProvider() {

View File

@ -45,7 +45,13 @@ func (c *ApiController) GetStores() {
func (c *ApiController) GetStore() {
id := c.Input().Get("id")
store, err := object.GetStore(id)
var store *object.Store
var err error
if id == "admin/_casibase_default_store_" {
store, err = object.GetDefaultStore("admin")
} else {
store, err = object.GetStore(id)
}
if err != nil {
c.ResponseError(err.Error())
return
@ -57,7 +63,8 @@ func (c *ApiController) GetStore() {
err = store.Populate()
if err != nil {
c.ResponseError(err.Error())
// gentle error
c.ResponseOk(store, err.Error())
return
}

8
docker-entrypoint.sh Normal file
View File

@ -0,0 +1,8 @@
#!/bin/bash
if [ "${MYSQL_ROOT_PASSWORD}" = "" ] ;then MYSQL_ROOT_PASSWORD=123456 ;fi
service mariadb start
mysqladmin -u root password ${MYSQL_ROOT_PASSWORD}
exec /server --createDatabase=true

View File

@ -29,7 +29,7 @@ type I18nData map[string]map[string]string
var reI18n *regexp.Regexp
func init() {
reI18n, _ = regexp.Compile("i18next.t\\(\"(.*)\"\\)")
reI18n, _ = regexp.Compile("i18next.t\\(\"(.*?)\"\\)")
}
func getAllI18nStrings(fileContent string) []string {

View File

@ -16,13 +16,24 @@ package i18n
import "testing"
func applyToOtherLanguage(dataEn *I18nData, lang string) {
dataOther := readI18nFile(lang)
println(dataOther)
applyData(dataEn, dataOther)
writeI18nFile(lang, dataEn)
}
func TestGenerateI18nStrings(t *testing.T) {
dataEn := parseToData()
writeI18nFile("en", dataEn)
dataZh := readI18nFile("zh")
println(dataZh)
applyData(dataEn, dataZh)
writeI18nFile("zh", dataEn)
applyToOtherLanguage(dataEn, "zh")
applyToOtherLanguage(dataEn, "fr")
applyToOtherLanguage(dataEn, "de")
applyToOtherLanguage(dataEn, "id")
applyToOtherLanguage(dataEn, "ja")
applyToOtherLanguage(dataEn, "ko")
applyToOtherLanguage(dataEn, "ru")
applyToOtherLanguage(dataEn, "es")
}

View File

@ -96,6 +96,17 @@ func UpdateChat(id string, chat *Chat) (bool, error) {
}
func AddChat(chat *Chat) (bool, error) {
if chat.Type == "AI" && chat.User2 == "" {
provider, err := getDefaultModelProvider()
if err != nil {
return false, err
}
if provider != nil {
chat.User2 = provider.Name
}
}
affected, err := adapter.engine.Insert(chat)
if err != nil {
return false, err

View File

@ -34,6 +34,33 @@ type Provider struct {
ProviderUrl string `xorm:"varchar(200)" json:"providerUrl"`
}
func GetMaskedProvider(provider *Provider, isMaskEnabled bool) *Provider {
if !isMaskEnabled {
return provider
}
if provider == nil {
return nil
}
if provider.ClientSecret != "" {
provider.ClientSecret = "***"
}
return provider
}
func GetMaskedProviders(providers []*Provider, isMaskEnabled bool) []*Provider {
if !isMaskEnabled {
return providers
}
for _, provider := range providers {
provider = GetMaskedProvider(provider, isMaskEnabled)
}
return providers
}
func GetGlobalProviders() ([]*Provider, error) {
providers := []*Provider{}
err := adapter.engine.Asc("owner").Desc("created_time").Find(&providers)
@ -73,6 +100,20 @@ func GetProvider(id string) (*Provider, error) {
return getProvider(owner, name)
}
func getDefaultModelProvider() (*Provider, error) {
provider := Provider{Owner: "admin", Category: "Model"}
existed, err := adapter.engine.Get(&provider)
if err != nil {
return &provider, err
}
if !existed {
return nil, nil
}
return &provider, nil
}
func UpdateProvider(id string, provider *Provider) (bool, error) {
owner, name := util.GetOwnerAndNameFromId(id)
_, err := getProvider(owner, name)

View File

@ -70,7 +70,7 @@ func GetStores(owner string) ([]*Store, error) {
return stores, nil
}
func getCurrentStore(owner string) (*Store, error) {
func GetDefaultStore(owner string) (*Store, error) {
stores, err := GetStores(owner)
if err != nil {
return nil, err
@ -81,6 +81,11 @@ func getCurrentStore(owner string) (*Store, error) {
return store, nil
}
}
if len(stores) > 0 {
return stores[0], nil
}
return nil, nil
}

View File

@ -129,7 +129,7 @@ func (video *Video) GetId() string {
}
func (video *Video) Populate() error {
store, err := getCurrentStore("admin")
store, err := GetDefaultStore("admin")
if err != nil {
return err
}

10
web/crowdin.yml Normal file
View File

@ -0,0 +1,10 @@
project_id: '603051'
api_token_env: 'CROWDIN_PERSONAL_TOKEN'
preserve_hierarchy: true
files: [
# JSON translation files
{
source: '/src/locales/en/data.json',
translation: '/src/locales/%two_letters_code%/data.json',
},
]

View File

@ -84,8 +84,8 @@ class App extends Component {
this.setState({
uri: uri,
});
if (uri === "/home") {
this.setState({selectedMenuKey: "/home"});
if (uri === "/" || uri === "/home") {
this.setState({selectedMenuKey: "/"});
} else if (uri.includes("/stores")) {
this.setState({selectedMenuKey: "/stores"});
} else if (uri.includes("/clustering")) {

View File

@ -59,7 +59,7 @@ class ChatPage extends BaseListPage {
newMessage(text) {
const randomName = Setting.getRandomName();
return {
owner: this.props.account.owner, // this.props.account.messagename,
owner: "admin", // this.props.account.messagename,
name: `message_${randomName}`,
createdTime: moment().format(),
// organization: this.props.account.owner,

View File

@ -13,7 +13,8 @@
// limitations under the License.
import React from "react";
import {Button, Card, Col, DatePicker, Descriptions, Empty, Input, Modal, Popconfirm, Radio, Row, Select, Spin, Tooltip, Tree, Upload} from "antd";
import {withRouter} from "react-router-dom";
import {Button, Card, Col, DatePicker, Descriptions, Empty, Input, Modal, Popconfirm, Radio, Result, Row, Select, Spin, Tooltip, Tree, Upload} from "antd";
import {CloudUploadOutlined, DeleteOutlined, DownloadOutlined, FileDoneOutlined, FolderAddOutlined, InfoCircleTwoTone, createFromIconfontCN} from "@ant-design/icons";
import moment from "moment";
import * as Setting from "./Setting";
@ -407,8 +408,8 @@ class FileTree extends React.Component {
return (
<Tree
height={"calc(100vh - 170px)"}
virtual={false}
height={"calc(100vh - 220px)"}
virtual={true}
className="draggable-tree"
multiple={false}
checkable
@ -843,33 +844,53 @@ class FileTree extends React.Component {
getEditorHeightCss() {
// 79, 123
const filePaneHeight = this.filePane.current?.offsetHeight;
return `calc(100vh - ${filePaneHeight + 234}px)`;
return `calc(100vh - ${filePaneHeight + 186}px)`;
}
render() {
if (this.props.store.fileTree === null) {
return (
<div className="App">
<Result
status="error"
title={`${this.props.store.error}`}
extra={
<Button type="primary" onClick={() => this.props.history.push(`/stores/${this.props.store.owner}/${this.props.store.name}`)}>
Go to Store
</Button>
}
/>
</div>
);
}
return (
<div style={{backgroundColor: "white", borderTop: "1px solid rgb(232,232,232)", borderLeft: "1px solid rgb(232,232,232)"}}>
<div>
<Row>
<Col span={8}>
<Card className="content-warp-card-filetreeleft">
{
this.renderSearch(this.props.store)
}
{
this.renderTree(this.props.store)
}
<Card className="content-warp-card-filetreeleft" style={{marginRight: "10px"}}>
<div style={{margin: "-25px"}}>
{
this.renderSearch(this.props.store)
}
{
this.renderTree(this.props.store)
}
</div>
</Card>
</Col>
<Col span={16}>
<Card className="content-warp-card-filetreeright">
<div style={{height: this.getEditorHeightCss()}}>
<div style={{margin: "-25px"}}>
<div style={{height: this.getEditorHeightCss()}}>
{
this.renderFileViewer(this.props.store)
}
</div>
{
this.renderFileViewer(this.props.store)
this.renderProperties()
}
</div>
{
this.renderProperties()
}
</Card>
</Col>
</Row>
@ -881,4 +902,4 @@ class FileTree extends React.Component {
}
}
export default FileTree;
export default withRouter(FileTree);

View File

@ -36,13 +36,17 @@ class FileTreePage extends React.Component {
getStore() {
StoreBackend.getStore(this.state.owner, this.state.storeName)
.then((res) => {
if (res?.status !== "error") {
.then((store) => {
if (store.status === "ok") {
if (store.data2 !== null && store.data?.includes("error")) {
store.data.error = store.data2;
}
this.setState({
store: res.data,
store: store.data,
});
} else {
Setting.showMessage("error", res.msg);
Setting.showMessage("error", `Failed to get store: ${store.msg}`);
}
});
}

View File

@ -1,17 +1,17 @@
// Copyright 2023 The casbin Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// Copyright 2023 The casbin Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
import React from "react";
import FileTreePage from "./FileTreePage";
import {Redirect} from "react-router-dom";
@ -28,22 +28,22 @@ class HomePage extends React.Component {
}
UNSAFE_componentWillMount() {
this.getStores();
this.getStore();
}
getStores() {
StoreBackend.getGlobalStores()
.then((res) => {
if (res.status === "ok") {
const stores = res.data;
const store = stores.filter(store => store.domain !== "https://cdn.example.com")[0];
if (store !== undefined) {
this.setState({
store: store,
});
getStore() {
StoreBackend.getStore("admin", "_casibase_default_store_")
.then((store) => {
if (store.status === "ok") {
if (store.data2 !== null && store.data2.includes("error")) {
store.data.error = store.data2;
}
this.setState({
store: store.data,
});
} else {
Setting.showMessage("error", `Failed to get stores: ${res.msg}`);
Setting.showMessage("error", `Failed to get store: ${store.msg}`);
}
});
}

View File

@ -115,7 +115,7 @@ class MessageListPage extends React.Component {
title: i18next.t("general:Created time"),
dataIndex: "createdTime",
key: "createdTime",
width: "130px",
width: "120px",
sorter: (a, b) => a.createdTime.localeCompare(b.createdTime),
render: (text, record, index) => {
return Setting.getFormattedDate(text);
@ -129,7 +129,7 @@ class MessageListPage extends React.Component {
sorter: (a, b) => a.chat.localeCompare(b.chat),
render: (text, record, index) => {
return (
<Link to={`/chat/${text}`}>
<Link to={`/chats/${text}`}>
{text}
</Link>
);
@ -139,12 +139,13 @@ class MessageListPage extends React.Component {
title: i18next.t("message:Reply to"),
dataIndex: "replyTo",
key: "replyTo",
width: "130px",
width: "100px",
sorter: (a, b) => a.replyTo.localeCompare(b.replyTo),
render: (text, record, index) => {
const textTemp = text.split("/")[1];
return (
<Link to={`/message/${text}`}>
{text}
<Link to={`/messages/${textTemp}`}>
{textTemp}
</Link>
);
},
@ -153,7 +154,7 @@ class MessageListPage extends React.Component {
title: i18next.t("message:Author"),
dataIndex: "author",
key: "author",
width: "120px",
width: "100px",
sorter: (a, b) => a.author.localeCompare(b.author),
render: (text, record, index) => {
return (

View File

@ -39,6 +39,10 @@ class StoreEditPage extends React.Component {
StoreBackend.getStore(this.state.owner, this.state.storeName)
.then((store) => {
if (store.status === "ok") {
if (store.data2 !== null && store.data2.includes("error")) {
store.data.error = store.data2;
}
this.setState({
store: store.data,
});

View File

@ -114,14 +114,14 @@ class StoreListPage extends React.Component {
title: i18next.t("general:Display name"),
dataIndex: "displayName",
key: "displayName",
width: "600px",
// width: "600px",
sorter: (a, b) => a.displayName.localeCompare(b.displayName),
},
{
title: i18next.t("general:Action"),
dataIndex: "action",
key: "action",
width: "240px",
width: "300px",
render: (text, record, index) => {
return (
<div>

View File

@ -0,0 +1,159 @@
{
"account": {
"Chats & Messages": "Chats & Messages",
"My Account": "My Account",
"Sign In": "Sign In",
"Sign Out": "Sign Out",
"Sign Up": "Sign Up"
},
"chat": {
"AI": "AI",
"Category": "Category",
"Chats": "Chats",
"Edit Chat": "Edit Chat",
"Group": "Group",
"Message count": "Message count",
"Single": "Single",
"Type": "Type",
"User1": "User1",
"User2": "User2",
"Users": "Users"
},
"factorset": {
"Count": "Count",
"Dimension": "Dimension",
"Edit Factorset": "Edit Factorset",
"Example factors": "Example factors",
"File name": "File name",
"File size": "File size"
},
"general": {
"Action": "Action",
"Add": "Add",
"Back Home": "Back Home",
"Cancel": "Cancel",
"Chats": "Chats",
"Close": "Close",
"Clustering": "Clustering",
"Created time": "Created time",
"Data": "Data",
"Delete": "Delete",
"Display name": "Display name",
"Download": "Download",
"Edit": "Edit",
"Factorsets": "Factorsets",
"Failed to add": "Failed to add",
"Failed to connect to server": "Failed to connect to server",
"Failed to delete": "Failed to delete",
"Failed to get answer": "Failed to get answer",
"Home": "Home",
"Loading...": "Loading...",
"Logs": "Logs",
"Menu": "Menu",
"Messages": "Messages",
"Name": "Name",
"No.": "No.",
"OK": "OK",
"Organization": "Organization",
"Organization - Tooltip": "Organization - Tooltip",
"Permissions": "Permissions",
"Preview": "Preview",
"Provider URL": "Provider URL",
"Providers": "Providers",
"Result": "Result",
"Save": "Save",
"Sorry, you do not have permission to access this page or logged in status invalid.": "Sorry, you do not have permission to access this page or logged in status invalid.",
"Stores": "Stores",
"Successfully added": "Successfully added",
"Successfully deleted": "Successfully deleted",
"URL": "URL",
"Updated time": "Updated time",
"Users": "Users",
"Vectors": "Vectors",
"Videos": "Videos",
"View": "View",
"Wordsets": "Wordsets"
},
"login": {
"Loading": "Loading"
},
"message": {
"Author": "Author",
"Chat": "Chat",
"Edit Chat": "Edit Chat",
"Messages": "Messages",
"Reply to": "Reply to",
"Text": "Text",
"replyTo": "replyTo"
},
"provider": {
"Category": "Category",
"Edit Provider": "Edit Provider",
"Provider URL": "Provider URL",
"Secret key": "Secret key",
"Type": "Type"
},
"store": {
"Add Permission": "Add Permission",
"Apply for Permission": "Apply for Permission",
"Biology": "Biology",
"Bucket": "Bucket",
"Category": "Category",
"Chemistry": "Chemistry",
"Chinese": "Chinese",
"Collected time": "Collected time",
"Delete": "Delete",
"Domain": "Domain",
"Download": "Download",
"Edit Store": "Edit Store",
"English": "English",
"File": "File",
"File tree": "File tree",
"File type": "File type",
"Folder": "Folder",
"History": "History",
"Math": "Math",
"Move": "Move",
"New folder": "New folder",
"Other": "Other",
"Path": "Path",
"Physics": "Physics",
"Please choose the type of your data": "Please choose the type of your data",
"Please input your search term": "Please input your search term",
"Rename": "Rename",
"Science": "Science",
"Sorry, you are unauthorized to access this file or folder": "Sorry, you are unauthorized to access this file or folder",
"Subject": "Subject",
"Upload file": "Upload file",
"files and": "files and",
"folders are checked": "folders are checked"
},
"vector": {
"Data": "Data",
"Edit Vector": "Edit Vector",
"File": "File",
"Store": "Store",
"Text": "Text"
},
"video": {
"Cover": "Cover",
"Current time (second)": "Current time (second)",
"Edit Video": "Edit Video",
"End time (s)": "End time (s)",
"Label count": "Label count",
"Labels": "Labels",
"Start time (s)": "Start time (s)",
"Tag on pause": "Tag on pause",
"Text": "Text",
"Video": "Video",
"Video ID": "Video ID"
},
"wordset": {
"Distance limit": "Distance limit",
"Edit Wordset": "Edit Wordset",
"Factorset": "Factorset",
"Match": "Match",
"Matched": "Matched",
"Words": "Words"
}
}

View File

@ -1,13 +1,39 @@
{
"account": {
"Chats \u0026 Messages": "Chats \u0026 Messages",
"My Account": "My Account",
"Sign In": "Sign In",
"Sign Out": "Sign Out",
"Sign Up": "Sign Up"
},
"chat": {
"AI": "AI",
"Category": "Category",
"Chats": "Chats",
"Edit Chat": "Edit Chat",
"Group": "Group",
"Message count": "Message count",
"Single": "Single",
"Type": "Type",
"User1": "User1",
"User2": "User2",
"Users": "Users"
},
"factorset": {
"Count": "Count",
"Dimension": "Dimension",
"Edit Factorset": "Edit Factorset",
"Example factors": "Example factors",
"File name": "File name",
"File size": "File size"
},
"general": {
"Action": "Action",
"Add": "Add",
"Back Home": "Back Home",
"Cancel": "Cancel",
"Chats": "Chats",
"Close": "Close",
"Clustering": "Clustering",
"Created time": "Created time",
"Data": "Data",
@ -15,22 +41,58 @@
"Display name": "Display name",
"Download": "Download",
"Edit": "Edit",
"Factorsets": "Factorsets",
"Failed to add": "Failed to add",
"Failed to connect to server": "Failed to connect to server",
"Failed to delete": "Failed to delete",
"Failed to get answer": "Failed to get answer",
"Home": "Home",
"Loading...": "Loading...",
"Logs": "Logs",
"Menu": "Menu",
"Messages": "Messages",
"Name": "Name",
"No.": "No.",
"OK": "OK",
"Organization": "Organization",
"Organization - Tooltip": "Organization - Tooltip",
"Permissions": "Permissions",
"Preview": "Preview",
"Logs": "Logs",
"Provider URL": "Provider URL",
"Providers": "Providers",
"Result": "Result",
"Save": "Save",
"Sorry, you do not have permission to access this page or logged in status invalid.": "Sorry, you do not have permission to access this page or logged in status invalid.",
"Stores": "Stores",
"Successfully added": "Successfully added",
"Successfully deleted": "Successfully deleted",
"URL": "URL",
"Factorsets": "Factorsets",
"Updated time": "Updated time",
"Users": "Users",
"Vectors": "Vectors",
"Videos": "Videos",
"View": "View",
"Wordsets": "Wordsets"
},
"login": {
"Loading": "Loading"
},
"message": {
"Author": "Author",
"Chat": "Chat",
"Edit Chat": "Edit Chat",
"Messages": "Messages",
"Reply to": "Reply to",
"Text": "Text",
"replyTo": "replyTo"
},
"provider": {
"Category": "Category",
"Edit Provider": "Edit Provider",
"Provider URL": "Provider URL",
"Secret key": "Secret key",
"Type": "Type"
},
"store": {
"Add Permission": "Add Permission",
"Apply for Permission": "Apply for Permission",
@ -66,13 +128,12 @@
"files and": "files and",
"folders are checked": "folders are checked"
},
"factorset": {
"Count": "Count",
"Dimension": "Dimension",
"Edit Factorset": "Edit Factorset",
"Example factors": "Example factors",
"File name": "File name",
"File size": "File size"
"vector": {
"Data": "Data",
"Edit Vector": "Edit Vector",
"File": "File",
"Store": "Store",
"Text": "Text"
},
"video": {
"Cover": "Cover",
@ -88,13 +149,11 @@
"Video ID": "Video ID"
},
"wordset": {
"All words": "All words",
"Distance limit": "Distance limit",
"Edit Wordset": "Edit Wordset",
"Factorset": "Factorset",
"Match": "Match",
"Matched": "Matched",
"Valid words": "Valid words",
"Factorset": "Factorset",
"Words": "Words"
}
}

View File

@ -0,0 +1,159 @@
{
"account": {
"Chats & Messages": "Chats & Messages",
"My Account": "My Account",
"Sign In": "Sign In",
"Sign Out": "Sign Out",
"Sign Up": "Sign Up"
},
"chat": {
"AI": "AI",
"Category": "Category",
"Chats": "Chats",
"Edit Chat": "Edit Chat",
"Group": "Group",
"Message count": "Message count",
"Single": "Single",
"Type": "Type",
"User1": "User1",
"User2": "User2",
"Users": "Users"
},
"factorset": {
"Count": "Count",
"Dimension": "Dimension",
"Edit Factorset": "Edit Factorset",
"Example factors": "Example factors",
"File name": "File name",
"File size": "File size"
},
"general": {
"Action": "Action",
"Add": "Add",
"Back Home": "Back Home",
"Cancel": "Cancel",
"Chats": "Chats",
"Close": "Close",
"Clustering": "Clustering",
"Created time": "Created time",
"Data": "Data",
"Delete": "Delete",
"Display name": "Display name",
"Download": "Download",
"Edit": "Edit",
"Factorsets": "Factorsets",
"Failed to add": "Failed to add",
"Failed to connect to server": "Failed to connect to server",
"Failed to delete": "Failed to delete",
"Failed to get answer": "Failed to get answer",
"Home": "Home",
"Loading...": "Loading...",
"Logs": "Logs",
"Menu": "Menu",
"Messages": "Messages",
"Name": "Name",
"No.": "No.",
"OK": "OK",
"Organization": "Organization",
"Organization - Tooltip": "Organization - Tooltip",
"Permissions": "Permissions",
"Preview": "Preview",
"Provider URL": "Provider URL",
"Providers": "Providers",
"Result": "Result",
"Save": "Save",
"Sorry, you do not have permission to access this page or logged in status invalid.": "Sorry, you do not have permission to access this page or logged in status invalid.",
"Stores": "Stores",
"Successfully added": "Successfully added",
"Successfully deleted": "Successfully deleted",
"URL": "URL",
"Updated time": "Updated time",
"Users": "Users",
"Vectors": "Vectors",
"Videos": "Videos",
"View": "View",
"Wordsets": "Wordsets"
},
"login": {
"Loading": "Loading"
},
"message": {
"Author": "Author",
"Chat": "Chat",
"Edit Chat": "Edit Chat",
"Messages": "Messages",
"Reply to": "Reply to",
"Text": "Text",
"replyTo": "replyTo"
},
"provider": {
"Category": "Category",
"Edit Provider": "Edit Provider",
"Provider URL": "Provider URL",
"Secret key": "Secret key",
"Type": "Type"
},
"store": {
"Add Permission": "Add Permission",
"Apply for Permission": "Apply for Permission",
"Biology": "Biology",
"Bucket": "Bucket",
"Category": "Category",
"Chemistry": "Chemistry",
"Chinese": "Chinese",
"Collected time": "Collected time",
"Delete": "Delete",
"Domain": "Domain",
"Download": "Download",
"Edit Store": "Edit Store",
"English": "English",
"File": "File",
"File tree": "File tree",
"File type": "File type",
"Folder": "Folder",
"History": "History",
"Math": "Math",
"Move": "Move",
"New folder": "New folder",
"Other": "Other",
"Path": "Path",
"Physics": "Physics",
"Please choose the type of your data": "Please choose the type of your data",
"Please input your search term": "Please input your search term",
"Rename": "Rename",
"Science": "Science",
"Sorry, you are unauthorized to access this file or folder": "Sorry, you are unauthorized to access this file or folder",
"Subject": "Subject",
"Upload file": "Upload file",
"files and": "files and",
"folders are checked": "folders are checked"
},
"vector": {
"Data": "Data",
"Edit Vector": "Edit Vector",
"File": "File",
"Store": "Store",
"Text": "Text"
},
"video": {
"Cover": "Cover",
"Current time (second)": "Current time (second)",
"Edit Video": "Edit Video",
"End time (s)": "End time (s)",
"Label count": "Label count",
"Labels": "Labels",
"Start time (s)": "Start time (s)",
"Tag on pause": "Tag on pause",
"Text": "Text",
"Video": "Video",
"Video ID": "Video ID"
},
"wordset": {
"Distance limit": "Distance limit",
"Edit Wordset": "Edit Wordset",
"Factorset": "Factorset",
"Match": "Match",
"Matched": "Matched",
"Words": "Words"
}
}

View File

@ -0,0 +1,159 @@
{
"account": {
"Chats & Messages": "Chats & Messages",
"My Account": "My Account",
"Sign In": "Sign In",
"Sign Out": "Sign Out",
"Sign Up": "Sign Up"
},
"chat": {
"AI": "AI",
"Category": "Category",
"Chats": "Chats",
"Edit Chat": "Edit Chat",
"Group": "Group",
"Message count": "Message count",
"Single": "Single",
"Type": "Type",
"User1": "User1",
"User2": "User2",
"Users": "Users"
},
"factorset": {
"Count": "Count",
"Dimension": "Dimension",
"Edit Factorset": "Edit Factorset",
"Example factors": "Example factors",
"File name": "File name",
"File size": "File size"
},
"general": {
"Action": "Action",
"Add": "Add",
"Back Home": "Back Home",
"Cancel": "Cancel",
"Chats": "Chats",
"Close": "Close",
"Clustering": "Clustering",
"Created time": "Created time",
"Data": "Data",
"Delete": "Delete",
"Display name": "Display name",
"Download": "Download",
"Edit": "Edit",
"Factorsets": "Factorsets",
"Failed to add": "Failed to add",
"Failed to connect to server": "Failed to connect to server",
"Failed to delete": "Failed to delete",
"Failed to get answer": "Failed to get answer",
"Home": "Home",
"Loading...": "Loading...",
"Logs": "Logs",
"Menu": "Menu",
"Messages": "Messages",
"Name": "Name",
"No.": "No.",
"OK": "OK",
"Organization": "Organization",
"Organization - Tooltip": "Organization - Tooltip",
"Permissions": "Permissions",
"Preview": "Preview",
"Provider URL": "Provider URL",
"Providers": "Providers",
"Result": "Result",
"Save": "Save",
"Sorry, you do not have permission to access this page or logged in status invalid.": "Sorry, you do not have permission to access this page or logged in status invalid.",
"Stores": "Stores",
"Successfully added": "Successfully added",
"Successfully deleted": "Successfully deleted",
"URL": "URL",
"Updated time": "Updated time",
"Users": "Users",
"Vectors": "Vectors",
"Videos": "Videos",
"View": "View",
"Wordsets": "Wordsets"
},
"login": {
"Loading": "Loading"
},
"message": {
"Author": "Author",
"Chat": "Chat",
"Edit Chat": "Edit Chat",
"Messages": "Messages",
"Reply to": "Reply to",
"Text": "Text",
"replyTo": "replyTo"
},
"provider": {
"Category": "Category",
"Edit Provider": "Edit Provider",
"Provider URL": "Provider URL",
"Secret key": "Secret key",
"Type": "Type"
},
"store": {
"Add Permission": "Add Permission",
"Apply for Permission": "Apply for Permission",
"Biology": "Biology",
"Bucket": "Bucket",
"Category": "Category",
"Chemistry": "Chemistry",
"Chinese": "Chinese",
"Collected time": "Collected time",
"Delete": "Delete",
"Domain": "Domain",
"Download": "Download",
"Edit Store": "Edit Store",
"English": "English",
"File": "File",
"File tree": "File tree",
"File type": "File type",
"Folder": "Folder",
"History": "History",
"Math": "Math",
"Move": "Move",
"New folder": "New folder",
"Other": "Other",
"Path": "Path",
"Physics": "Physics",
"Please choose the type of your data": "Please choose the type of your data",
"Please input your search term": "Please input your search term",
"Rename": "Rename",
"Science": "Science",
"Sorry, you are unauthorized to access this file or folder": "Sorry, you are unauthorized to access this file or folder",
"Subject": "Subject",
"Upload file": "Upload file",
"files and": "files and",
"folders are checked": "folders are checked"
},
"vector": {
"Data": "Data",
"Edit Vector": "Edit Vector",
"File": "File",
"Store": "Store",
"Text": "Text"
},
"video": {
"Cover": "Cover",
"Current time (second)": "Current time (second)",
"Edit Video": "Edit Video",
"End time (s)": "End time (s)",
"Label count": "Label count",
"Labels": "Labels",
"Start time (s)": "Start time (s)",
"Tag on pause": "Tag on pause",
"Text": "Text",
"Video": "Video",
"Video ID": "Video ID"
},
"wordset": {
"Distance limit": "Distance limit",
"Edit Wordset": "Edit Wordset",
"Factorset": "Factorset",
"Match": "Match",
"Matched": "Matched",
"Words": "Words"
}
}

View File

@ -0,0 +1,159 @@
{
"account": {
"Chats & Messages": "Chats & Messages",
"My Account": "My Account",
"Sign In": "Sign In",
"Sign Out": "Sign Out",
"Sign Up": "Sign Up"
},
"chat": {
"AI": "AI",
"Category": "Category",
"Chats": "Chats",
"Edit Chat": "Edit Chat",
"Group": "Group",
"Message count": "Message count",
"Single": "Single",
"Type": "Type",
"User1": "User1",
"User2": "User2",
"Users": "Users"
},
"factorset": {
"Count": "Count",
"Dimension": "Dimension",
"Edit Factorset": "Edit Factorset",
"Example factors": "Example factors",
"File name": "File name",
"File size": "File size"
},
"general": {
"Action": "Action",
"Add": "Add",
"Back Home": "Back Home",
"Cancel": "Cancel",
"Chats": "Chats",
"Close": "Close",
"Clustering": "Clustering",
"Created time": "Created time",
"Data": "Data",
"Delete": "Delete",
"Display name": "Display name",
"Download": "Download",
"Edit": "Edit",
"Factorsets": "Factorsets",
"Failed to add": "Failed to add",
"Failed to connect to server": "Failed to connect to server",
"Failed to delete": "Failed to delete",
"Failed to get answer": "Failed to get answer",
"Home": "Home",
"Loading...": "Loading...",
"Logs": "Logs",
"Menu": "Menu",
"Messages": "Messages",
"Name": "Name",
"No.": "No.",
"OK": "OK",
"Organization": "Organization",
"Organization - Tooltip": "Organization - Tooltip",
"Permissions": "Permissions",
"Preview": "Preview",
"Provider URL": "Provider URL",
"Providers": "Providers",
"Result": "Result",
"Save": "Save",
"Sorry, you do not have permission to access this page or logged in status invalid.": "Sorry, you do not have permission to access this page or logged in status invalid.",
"Stores": "Stores",
"Successfully added": "Successfully added",
"Successfully deleted": "Successfully deleted",
"URL": "URL",
"Updated time": "Updated time",
"Users": "Users",
"Vectors": "Vectors",
"Videos": "Videos",
"View": "View",
"Wordsets": "Wordsets"
},
"login": {
"Loading": "Loading"
},
"message": {
"Author": "Author",
"Chat": "Chat",
"Edit Chat": "Edit Chat",
"Messages": "Messages",
"Reply to": "Reply to",
"Text": "Text",
"replyTo": "replyTo"
},
"provider": {
"Category": "Category",
"Edit Provider": "Edit Provider",
"Provider URL": "Provider URL",
"Secret key": "Secret key",
"Type": "Type"
},
"store": {
"Add Permission": "Add Permission",
"Apply for Permission": "Apply for Permission",
"Biology": "Biology",
"Bucket": "Bucket",
"Category": "Category",
"Chemistry": "Chemistry",
"Chinese": "Chinese",
"Collected time": "Collected time",
"Delete": "Delete",
"Domain": "Domain",
"Download": "Download",
"Edit Store": "Edit Store",
"English": "English",
"File": "File",
"File tree": "File tree",
"File type": "File type",
"Folder": "Folder",
"History": "History",
"Math": "Math",
"Move": "Move",
"New folder": "New folder",
"Other": "Other",
"Path": "Path",
"Physics": "Physics",
"Please choose the type of your data": "Please choose the type of your data",
"Please input your search term": "Please input your search term",
"Rename": "Rename",
"Science": "Science",
"Sorry, you are unauthorized to access this file or folder": "Sorry, you are unauthorized to access this file or folder",
"Subject": "Subject",
"Upload file": "Upload file",
"files and": "files and",
"folders are checked": "folders are checked"
},
"vector": {
"Data": "Data",
"Edit Vector": "Edit Vector",
"File": "File",
"Store": "Store",
"Text": "Text"
},
"video": {
"Cover": "Cover",
"Current time (second)": "Current time (second)",
"Edit Video": "Edit Video",
"End time (s)": "End time (s)",
"Label count": "Label count",
"Labels": "Labels",
"Start time (s)": "Start time (s)",
"Tag on pause": "Tag on pause",
"Text": "Text",
"Video": "Video",
"Video ID": "Video ID"
},
"wordset": {
"Distance limit": "Distance limit",
"Edit Wordset": "Edit Wordset",
"Factorset": "Factorset",
"Match": "Match",
"Matched": "Matched",
"Words": "Words"
}
}

View File

@ -0,0 +1,159 @@
{
"account": {
"Chats & Messages": "Chats & Messages",
"My Account": "My Account",
"Sign In": "Sign In",
"Sign Out": "Sign Out",
"Sign Up": "Sign Up"
},
"chat": {
"AI": "AI",
"Category": "Category",
"Chats": "Chats",
"Edit Chat": "Edit Chat",
"Group": "Group",
"Message count": "Message count",
"Single": "Single",
"Type": "Type",
"User1": "User1",
"User2": "User2",
"Users": "Users"
},
"factorset": {
"Count": "Count",
"Dimension": "Dimension",
"Edit Factorset": "Edit Factorset",
"Example factors": "Example factors",
"File name": "File name",
"File size": "File size"
},
"general": {
"Action": "Action",
"Add": "Add",
"Back Home": "Back Home",
"Cancel": "Cancel",
"Chats": "Chats",
"Close": "Close",
"Clustering": "Clustering",
"Created time": "Created time",
"Data": "Data",
"Delete": "Delete",
"Display name": "Display name",
"Download": "Download",
"Edit": "Edit",
"Factorsets": "Factorsets",
"Failed to add": "Failed to add",
"Failed to connect to server": "Failed to connect to server",
"Failed to delete": "Failed to delete",
"Failed to get answer": "Failed to get answer",
"Home": "Home",
"Loading...": "Loading...",
"Logs": "Logs",
"Menu": "Menu",
"Messages": "Messages",
"Name": "Name",
"No.": "No.",
"OK": "OK",
"Organization": "Organization",
"Organization - Tooltip": "Organization - Tooltip",
"Permissions": "Permissions",
"Preview": "Preview",
"Provider URL": "Provider URL",
"Providers": "Providers",
"Result": "Result",
"Save": "Save",
"Sorry, you do not have permission to access this page or logged in status invalid.": "Sorry, you do not have permission to access this page or logged in status invalid.",
"Stores": "Stores",
"Successfully added": "Successfully added",
"Successfully deleted": "Successfully deleted",
"URL": "URL",
"Updated time": "Updated time",
"Users": "Users",
"Vectors": "Vectors",
"Videos": "Videos",
"View": "View",
"Wordsets": "Wordsets"
},
"login": {
"Loading": "Loading"
},
"message": {
"Author": "Author",
"Chat": "Chat",
"Edit Chat": "Edit Chat",
"Messages": "Messages",
"Reply to": "Reply to",
"Text": "Text",
"replyTo": "replyTo"
},
"provider": {
"Category": "Category",
"Edit Provider": "Edit Provider",
"Provider URL": "Provider URL",
"Secret key": "Secret key",
"Type": "Type"
},
"store": {
"Add Permission": "Add Permission",
"Apply for Permission": "Apply for Permission",
"Biology": "Biology",
"Bucket": "Bucket",
"Category": "Category",
"Chemistry": "Chemistry",
"Chinese": "Chinese",
"Collected time": "Collected time",
"Delete": "Delete",
"Domain": "Domain",
"Download": "Download",
"Edit Store": "Edit Store",
"English": "English",
"File": "File",
"File tree": "File tree",
"File type": "File type",
"Folder": "Folder",
"History": "History",
"Math": "Math",
"Move": "Move",
"New folder": "New folder",
"Other": "Other",
"Path": "Path",
"Physics": "Physics",
"Please choose the type of your data": "Please choose the type of your data",
"Please input your search term": "Please input your search term",
"Rename": "Rename",
"Science": "Science",
"Sorry, you are unauthorized to access this file or folder": "Sorry, you are unauthorized to access this file or folder",
"Subject": "Subject",
"Upload file": "Upload file",
"files and": "files and",
"folders are checked": "folders are checked"
},
"vector": {
"Data": "Data",
"Edit Vector": "Edit Vector",
"File": "File",
"Store": "Store",
"Text": "Text"
},
"video": {
"Cover": "Cover",
"Current time (second)": "Current time (second)",
"Edit Video": "Edit Video",
"End time (s)": "End time (s)",
"Label count": "Label count",
"Labels": "Labels",
"Start time (s)": "Start time (s)",
"Tag on pause": "Tag on pause",
"Text": "Text",
"Video": "Video",
"Video ID": "Video ID"
},
"wordset": {
"Distance limit": "Distance limit",
"Edit Wordset": "Edit Wordset",
"Factorset": "Factorset",
"Match": "Match",
"Matched": "Matched",
"Words": "Words"
}
}

View File

@ -0,0 +1,159 @@
{
"account": {
"Chats & Messages": "Chats & Messages",
"My Account": "My Account",
"Sign In": "Sign In",
"Sign Out": "Sign Out",
"Sign Up": "Sign Up"
},
"chat": {
"AI": "AI",
"Category": "Category",
"Chats": "Chats",
"Edit Chat": "Edit Chat",
"Group": "Group",
"Message count": "Message count",
"Single": "Single",
"Type": "Type",
"User1": "User1",
"User2": "User2",
"Users": "Users"
},
"factorset": {
"Count": "Count",
"Dimension": "Dimension",
"Edit Factorset": "Edit Factorset",
"Example factors": "Example factors",
"File name": "File name",
"File size": "File size"
},
"general": {
"Action": "Action",
"Add": "Add",
"Back Home": "Back Home",
"Cancel": "Cancel",
"Chats": "Chats",
"Close": "Close",
"Clustering": "Clustering",
"Created time": "Created time",
"Data": "Data",
"Delete": "Delete",
"Display name": "Display name",
"Download": "Download",
"Edit": "Edit",
"Factorsets": "Factorsets",
"Failed to add": "Failed to add",
"Failed to connect to server": "Failed to connect to server",
"Failed to delete": "Failed to delete",
"Failed to get answer": "Failed to get answer",
"Home": "Home",
"Loading...": "Loading...",
"Logs": "Logs",
"Menu": "Menu",
"Messages": "Messages",
"Name": "Name",
"No.": "No.",
"OK": "OK",
"Organization": "Organization",
"Organization - Tooltip": "Organization - Tooltip",
"Permissions": "Permissions",
"Preview": "Preview",
"Provider URL": "Provider URL",
"Providers": "Providers",
"Result": "Result",
"Save": "Save",
"Sorry, you do not have permission to access this page or logged in status invalid.": "Sorry, you do not have permission to access this page or logged in status invalid.",
"Stores": "Stores",
"Successfully added": "Successfully added",
"Successfully deleted": "Successfully deleted",
"URL": "URL",
"Updated time": "Updated time",
"Users": "Users",
"Vectors": "Vectors",
"Videos": "Videos",
"View": "View",
"Wordsets": "Wordsets"
},
"login": {
"Loading": "Loading"
},
"message": {
"Author": "Author",
"Chat": "Chat",
"Edit Chat": "Edit Chat",
"Messages": "Messages",
"Reply to": "Reply to",
"Text": "Text",
"replyTo": "replyTo"
},
"provider": {
"Category": "Category",
"Edit Provider": "Edit Provider",
"Provider URL": "Provider URL",
"Secret key": "Secret key",
"Type": "Type"
},
"store": {
"Add Permission": "Add Permission",
"Apply for Permission": "Apply for Permission",
"Biology": "Biology",
"Bucket": "Bucket",
"Category": "Category",
"Chemistry": "Chemistry",
"Chinese": "Chinese",
"Collected time": "Collected time",
"Delete": "Delete",
"Domain": "Domain",
"Download": "Download",
"Edit Store": "Edit Store",
"English": "English",
"File": "File",
"File tree": "File tree",
"File type": "File type",
"Folder": "Folder",
"History": "History",
"Math": "Math",
"Move": "Move",
"New folder": "New folder",
"Other": "Other",
"Path": "Path",
"Physics": "Physics",
"Please choose the type of your data": "Please choose the type of your data",
"Please input your search term": "Please input your search term",
"Rename": "Rename",
"Science": "Science",
"Sorry, you are unauthorized to access this file or folder": "Sorry, you are unauthorized to access this file or folder",
"Subject": "Subject",
"Upload file": "Upload file",
"files and": "files and",
"folders are checked": "folders are checked"
},
"vector": {
"Data": "Data",
"Edit Vector": "Edit Vector",
"File": "File",
"Store": "Store",
"Text": "Text"
},
"video": {
"Cover": "Cover",
"Current time (second)": "Current time (second)",
"Edit Video": "Edit Video",
"End time (s)": "End time (s)",
"Label count": "Label count",
"Labels": "Labels",
"Start time (s)": "Start time (s)",
"Tag on pause": "Tag on pause",
"Text": "Text",
"Video": "Video",
"Video ID": "Video ID"
},
"wordset": {
"Distance limit": "Distance limit",
"Edit Wordset": "Edit Wordset",
"Factorset": "Factorset",
"Match": "Match",
"Matched": "Matched",
"Words": "Words"
}
}

View File

@ -0,0 +1,159 @@
{
"account": {
"Chats & Messages": "Chats & Messages",
"My Account": "My Account",
"Sign In": "Sign In",
"Sign Out": "Sign Out",
"Sign Up": "Sign Up"
},
"chat": {
"AI": "AI",
"Category": "Category",
"Chats": "Chats",
"Edit Chat": "Edit Chat",
"Group": "Group",
"Message count": "Message count",
"Single": "Single",
"Type": "Type",
"User1": "User1",
"User2": "User2",
"Users": "Users"
},
"factorset": {
"Count": "Count",
"Dimension": "Dimension",
"Edit Factorset": "Edit Factorset",
"Example factors": "Example factors",
"File name": "File name",
"File size": "File size"
},
"general": {
"Action": "Action",
"Add": "Add",
"Back Home": "Back Home",
"Cancel": "Cancel",
"Chats": "Chats",
"Close": "Close",
"Clustering": "Clustering",
"Created time": "Created time",
"Data": "Data",
"Delete": "Delete",
"Display name": "Display name",
"Download": "Download",
"Edit": "Edit",
"Factorsets": "Factorsets",
"Failed to add": "Failed to add",
"Failed to connect to server": "Failed to connect to server",
"Failed to delete": "Failed to delete",
"Failed to get answer": "Failed to get answer",
"Home": "Home",
"Loading...": "Loading...",
"Logs": "Logs",
"Menu": "Menu",
"Messages": "Messages",
"Name": "Name",
"No.": "No.",
"OK": "OK",
"Organization": "Organization",
"Organization - Tooltip": "Organization - Tooltip",
"Permissions": "Permissions",
"Preview": "Preview",
"Provider URL": "Provider URL",
"Providers": "Providers",
"Result": "Result",
"Save": "Save",
"Sorry, you do not have permission to access this page or logged in status invalid.": "Sorry, you do not have permission to access this page or logged in status invalid.",
"Stores": "Stores",
"Successfully added": "Successfully added",
"Successfully deleted": "Successfully deleted",
"URL": "URL",
"Updated time": "Updated time",
"Users": "Users",
"Vectors": "Vectors",
"Videos": "Videos",
"View": "View",
"Wordsets": "Wordsets"
},
"login": {
"Loading": "Loading"
},
"message": {
"Author": "Author",
"Chat": "Chat",
"Edit Chat": "Edit Chat",
"Messages": "Messages",
"Reply to": "Reply to",
"Text": "Text",
"replyTo": "replyTo"
},
"provider": {
"Category": "Category",
"Edit Provider": "Edit Provider",
"Provider URL": "Provider URL",
"Secret key": "Secret key",
"Type": "Type"
},
"store": {
"Add Permission": "Add Permission",
"Apply for Permission": "Apply for Permission",
"Biology": "Biology",
"Bucket": "Bucket",
"Category": "Category",
"Chemistry": "Chemistry",
"Chinese": "Chinese",
"Collected time": "Collected time",
"Delete": "Delete",
"Domain": "Domain",
"Download": "Download",
"Edit Store": "Edit Store",
"English": "English",
"File": "File",
"File tree": "File tree",
"File type": "File type",
"Folder": "Folder",
"History": "History",
"Math": "Math",
"Move": "Move",
"New folder": "New folder",
"Other": "Other",
"Path": "Path",
"Physics": "Physics",
"Please choose the type of your data": "Please choose the type of your data",
"Please input your search term": "Please input your search term",
"Rename": "Rename",
"Science": "Science",
"Sorry, you are unauthorized to access this file or folder": "Sorry, you are unauthorized to access this file or folder",
"Subject": "Subject",
"Upload file": "Upload file",
"files and": "files and",
"folders are checked": "folders are checked"
},
"vector": {
"Data": "Data",
"Edit Vector": "Edit Vector",
"File": "File",
"Store": "Store",
"Text": "Text"
},
"video": {
"Cover": "Cover",
"Current time (second)": "Current time (second)",
"Edit Video": "Edit Video",
"End time (s)": "End time (s)",
"Label count": "Label count",
"Labels": "Labels",
"Start time (s)": "Start time (s)",
"Tag on pause": "Tag on pause",
"Text": "Text",
"Video": "Video",
"Video ID": "Video ID"
},
"wordset": {
"Distance limit": "Distance limit",
"Edit Wordset": "Edit Wordset",
"Factorset": "Factorset",
"Match": "Match",
"Matched": "Matched",
"Words": "Words"
}
}

View File

@ -1,13 +1,39 @@
{
"account": {
"Chats & Messages": "Chats & Messages",
"My Account": "我的账户",
"Sign In": "登录",
"Sign Out": "登出",
"Sign Up": "注册"
},
"chat": {
"AI": "AI",
"Category": "Category",
"Chats": "Chats",
"Edit Chat": "Edit Chat",
"Group": "Group",
"Message count": "Message count",
"Single": "Single",
"Type": "Type",
"User1": "User1",
"User2": "User2",
"Users": "Users"
},
"factorset": {
"Count": "个数",
"Dimension": "维度",
"Edit Factorset": "编辑向量集",
"Example factors": "示例向量",
"File name": "文件名",
"File size": "文件大小"
},
"general": {
"Action": "操作",
"Add": "添加",
"Back Home": "Back Home",
"Cancel": "Cancel",
"Chats": "Chats",
"Close": "Close",
"Clustering": "聚类分析",
"Created time": "上传时间",
"Data": "数据",
@ -15,22 +41,58 @@
"Display name": "显示名称",
"Download": "下载",
"Edit": "编辑",
"Home": "首页",
"Factorsets": "我的向量集",
"Failed to add": "Failed to add",
"Failed to connect to server": "Failed to connect to server",
"Failed to delete": "Failed to delete",
"Failed to get answer": "Failed to get answer",
"Home": "Home",
"Loading...": "加载中...",
"Logs": "我的日志",
"Menu": "Menu",
"Messages": "Messages",
"Name": "名称",
"No.": "序号",
"OK": "OK",
"Organization": "Organization",
"Organization - Tooltip": "Organization - Tooltip",
"Permissions": "我的权限",
"Preview": "预览",
"Logs": "我的日志",
"Provider URL": "Provider URL",
"Providers": "Providers",
"Result": "结果",
"Save": "保存",
"Sorry, you do not have permission to access this page or logged in status invalid.": "Sorry, you do not have permission to access this page or logged in status invalid.",
"Stores": "我的数据仓库",
"Successfully added": "Successfully added",
"Successfully deleted": "Successfully deleted",
"URL": "链接",
"Factorsets": "我的向量集",
"Updated time": "Updated time",
"Users": "Users",
"Vectors": "Vectors",
"Videos": "我的视频",
"View": "查看",
"Wordsets": "我的词汇集"
},
"login": {
"Loading": "Loading"
},
"message": {
"Author": "Author",
"Chat": "Chat",
"Edit Chat": "Edit Chat",
"Messages": "Messages",
"Reply to": "Reply to",
"Text": "Text",
"replyTo": "replyTo"
},
"provider": {
"Category": "Category",
"Edit Provider": "Edit Provider",
"Provider URL": "Provider URL",
"Secret key": "Secret key",
"Type": "Type"
},
"store": {
"Add Permission": "添加权限",
"Apply for Permission": "申请权限",
@ -66,13 +128,12 @@
"files and": "个文件和",
"folders are checked": "文件夹已被选择"
},
"factorset": {
"Count": "个数",
"Dimension": "维度",
"Edit Factorset": "编辑向量集",
"Example factors": "示例向量",
"File name": "文件名",
"File size": "文件大小"
"vector": {
"Data": "Data",
"Edit Vector": "Edit Vector",
"File": "File",
"Store": "Store",
"Text": "Text"
},
"video": {
"Cover": "封面图片",
@ -88,13 +149,11 @@
"Video ID": "视频ID"
},
"wordset": {
"All words": "所有词汇",
"Distance limit": "距离上限",
"Edit Wordset": "编辑词汇集",
"Factorset": "向量集",
"Match": "匹配",
"Matched": "匹配度",
"Valid words": "有效词汇",
"Factorset": "向量集",
"Words": "词汇表"
}
}
}