Commit e31cf081 authored by Jannik Streidl's avatar Jannik Streidl
Browse files

merged conflicts in PL locale

parents e57c0c30 e92311b4
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
"Add a short description about what this modelfile does": "为这个模型文件添加一段简短的描述", "Add a short description about what this modelfile does": "为这个模型文件添加一段简短的描述",
"Add a short title for this prompt": "为这个提示词添加一个简短的标题", "Add a short title for this prompt": "为这个提示词添加一个简短的标题",
"Add a tag": "添加标签", "Add a tag": "添加标签",
"Add custom prompt": "",
"Add Docs": "添加文档", "Add Docs": "添加文档",
"Add Files": "添加文件", "Add Files": "添加文件",
"Add message": "添加消息", "Add message": "添加消息",
...@@ -44,6 +45,7 @@ ...@@ -44,6 +45,7 @@
"Archived Chats": "聊天记录存档", "Archived Chats": "聊天记录存档",
"are allowed - Activate this command by typing": "允许 - 通过输入来激活这个命令", "are allowed - Activate this command by typing": "允许 - 通过输入来激活这个命令",
"Are you sure?": "你确定吗?", "Are you sure?": "你确定吗?",
"Attach file": "",
"Attention to detail": "", "Attention to detail": "",
"Audio": "音频", "Audio": "音频",
"Auto-playback response": "自动播放回应", "Auto-playback response": "自动播放回应",
...@@ -214,6 +216,7 @@ ...@@ -214,6 +216,7 @@
"Import Modelfiles": "导入模型文件", "Import Modelfiles": "导入模型文件",
"Import Prompts": "导入提示", "Import Prompts": "导入提示",
"Include `--api` flag when running stable-diffusion-webui": "运行stable-diffusion-webui时包含`--api`标志", "Include `--api` flag when running stable-diffusion-webui": "运行stable-diffusion-webui时包含`--api`标志",
"Input commands": "",
"Interface": "界面", "Interface": "界面",
"join our Discord for help.": "加入我们的Discord寻求帮助。", "join our Discord for help.": "加入我们的Discord寻求帮助。",
"JSON": "JSON", "JSON": "JSON",
...@@ -351,6 +354,7 @@ ...@@ -351,6 +354,7 @@
"Select a mode": "选择一个模式", "Select a mode": "选择一个模式",
"Select a model": "选择一个模型", "Select a model": "选择一个模型",
"Select an Ollama instance": "选择一个Ollama实例", "Select an Ollama instance": "选择一个Ollama实例",
"Select model": "",
"Send a Message": "发送消息", "Send a Message": "发送消息",
"Send message": "发送消息", "Send message": "发送消息",
"Server connection verified": "已验证服务器连接", "Server connection verified": "已验证服务器连接",
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
"Add a short description about what this modelfile does": "為這個 Modelfile 添加一段簡短的描述", "Add a short description about what this modelfile does": "為這個 Modelfile 添加一段簡短的描述",
"Add a short title for this prompt": "為這個提示詞添加一個簡短的標題", "Add a short title for this prompt": "為這個提示詞添加一個簡短的標題",
"Add a tag": "新增標籤", "Add a tag": "新增標籤",
"Add custom prompt": "",
"Add Docs": "新增文件", "Add Docs": "新增文件",
"Add Files": "新增檔案", "Add Files": "新增檔案",
"Add message": "新增訊息", "Add message": "新增訊息",
...@@ -44,6 +45,7 @@ ...@@ -44,6 +45,7 @@
"Archived Chats": "聊天記錄存檔", "Archived Chats": "聊天記錄存檔",
"are allowed - Activate this command by typing": "是允許的 - 透過輸入", "are allowed - Activate this command by typing": "是允許的 - 透過輸入",
"Are you sure?": "你確定嗎?", "Are you sure?": "你確定嗎?",
"Attach file": "",
"Attention to detail": "", "Attention to detail": "",
"Audio": "音訊", "Audio": "音訊",
"Auto-playback response": "自動播放回答", "Auto-playback response": "自動播放回答",
...@@ -214,6 +216,7 @@ ...@@ -214,6 +216,7 @@
"Import Modelfiles": "匯入 Modelfiles", "Import Modelfiles": "匯入 Modelfiles",
"Import Prompts": "匯入提示詞", "Import Prompts": "匯入提示詞",
"Include `--api` flag when running stable-diffusion-webui": "在運行 stable-diffusion-webui 時加上 `--api` 標誌", "Include `--api` flag when running stable-diffusion-webui": "在運行 stable-diffusion-webui 時加上 `--api` 標誌",
"Input commands": "",
"Interface": "介面", "Interface": "介面",
"join our Discord for help.": "加入我們的 Discord 尋找幫助。", "join our Discord for help.": "加入我們的 Discord 尋找幫助。",
"JSON": "JSON", "JSON": "JSON",
...@@ -351,6 +354,7 @@ ...@@ -351,6 +354,7 @@
"Select a mode": "選擇模式", "Select a mode": "選擇模式",
"Select a model": "選擇一個模型", "Select a model": "選擇一個模型",
"Select an Ollama instance": "選擇 Ollama 實例", "Select an Ollama instance": "選擇 Ollama 實例",
"Select model": "",
"Send a Message": "傳送訊息", "Send a Message": "傳送訊息",
"Send message": "傳送訊息", "Send message": "傳送訊息",
"Server connection verified": "已驗證伺服器連線", "Server connection verified": "已驗證伺服器連線",
......
...@@ -472,29 +472,20 @@ export const blobToFile = (blob, fileName) => { ...@@ -472,29 +472,20 @@ export const blobToFile = (blob, fileName) => {
return file; return file;
}; };
// promptTemplate replaces any occurrences of the following in the template with the prompt
// {{prompt}} will be replaced with the prompt
// {{prompt:start:<length>}} will be replaced with the first <length> characters of the prompt
// {{prompt:end:<length>}} will be replaced with the last <length> characters of the prompt
// Character length is used as we don't have the ability to tokenize the prompt
export const promptTemplate = (template: string, prompt: string) => { export const promptTemplate = (template: string, prompt: string) => {
prompt = prompt.replace(/{{prompt}}|{{prompt:start:\d+}}|{{prompt:end:\d+}}/g, '');
template = template.replace(/{{prompt}}/g, prompt); template = template.replace(/{{prompt}}/g, prompt);
// Replace all instances of {{prompt:start:<length>}} with the first <length> characters of the prompt // Replace all instances of {{prompt:start:<length>}} with the first <length> characters of the prompt
const startRegex = /{{prompt:start:(\d+)}}/g; template = template.replace(/{{prompt:start:(\d+)}}/g, (match, length) =>
let startMatch: RegExpMatchArray | null; prompt.substring(0, parseInt(length))
while ((startMatch = startRegex.exec(template)) !== null) { );
const length = parseInt(startMatch[1]);
template = template.replace(startMatch[0], prompt.substring(0, length));
}
// Replace all instances of {{prompt:end:<length>}} with the last <length> characters of the prompt // Replace all instances of {{prompt:end:<length>}} with the last <length> characters of the prompt
const endRegex = /{{prompt:end:(\d+)}}/g; template = template.replace(/{{prompt:end:(\d+)}}/g, (match, length) =>
let endMatch: RegExpMatchArray | null; prompt.slice(-parseInt(length))
while ((endMatch = endRegex.exec(template)) !== null) { );
const length = parseInt(endMatch[1]);
template = template.replace(endMatch[0], prompt.substring(prompt.length - length));
}
return template; return template;
}; };
...@@ -520,3 +511,34 @@ export const approximateToHumanReadable = (nanoseconds: number) => { ...@@ -520,3 +511,34 @@ export const approximateToHumanReadable = (nanoseconds: number) => {
return results.reverse().join(' '); return results.reverse().join(' ');
}; };
export const getTimeRange = (timestamp) => {
const now = new Date();
const date = new Date(timestamp * 1000); // Convert Unix timestamp to milliseconds
// Calculate the difference in milliseconds
const diffTime = now.getTime() - date.getTime();
const diffDays = diffTime / (1000 * 3600 * 24);
const nowDate = now.getDate();
const nowMonth = now.getMonth();
const nowYear = now.getFullYear();
const dateDate = date.getDate();
const dateMonth = date.getMonth();
const dateYear = date.getFullYear();
if (nowYear === dateYear && nowMonth === dateMonth && nowDate === dateDate) {
return 'Today';
} else if (nowYear === dateYear && nowMonth === dateMonth && nowDate - dateDate === 1) {
return 'Yesterday';
} else if (diffDays <= 7) {
return 'Previous 7 days';
} else if (diffDays <= 30) {
return 'Previous 30 days';
} else if (nowYear === dateYear) {
return date.toLocaleString('default', { month: 'long' });
} else {
return date.getFullYear().toString();
}
};
...@@ -201,11 +201,11 @@ ...@@ -201,11 +201,11 @@
> >
{#if loaded} {#if loaded}
{#if !['user', 'admin'].includes($user.role)} {#if !['user', 'admin'].includes($user.role)}
<div class="fixed w-full h-full flex z-50"> <div class="fixed w-full h-full flex z-[999]">
<div <div
class="absolute w-full h-full backdrop-blur-md bg-white/20 dark:bg-gray-900/50 flex justify-center" class="absolute w-full h-full backdrop-blur-lg bg-white/10 dark:bg-gray-900/50 flex justify-center"
> >
<div class="m-auto pb-44 flex flex-col justify-center"> <div class="m-auto pb-10 flex flex-col justify-center">
<div class="max-w-md"> <div class="max-w-md">
<div class="text-center dark:text-white text-2xl font-medium z-50"> <div class="text-center dark:text-white text-2xl font-medium z-50">
Account Activation Pending<br /> Contact Admin for WebUI Access Account Activation Pending<br /> Contact Admin for WebUI Access
......
...@@ -330,7 +330,7 @@ ...@@ -330,7 +330,7 @@
info: model info: model
}))} }))}
bind:value={selectedModelId} bind:value={selectedModelId}
className="max-w-2xl" className="w-[42rem]"
/> />
</div> </div>
</div> </div>
......
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
</div> </div>
</div> </div>
<div class=" bg-white dark:bg-gray-900 min-h-screen w-full flex justify-center font-mona"> <div class=" bg-white dark:bg-gray-950 min-h-screen w-full flex justify-center font-mona">
<!-- <div class="hidden lg:flex lg:flex-1 px-10 md:px-16 w-full bg-yellow-50 justify-center"> <!-- <div class="hidden lg:flex lg:flex-1 px-10 md:px-16 w-full bg-yellow-50 justify-center">
<div class=" my-auto pb-16 text-left"> <div class=" my-auto pb-16 text-left">
<div> <div>
...@@ -96,7 +96,7 @@ ...@@ -96,7 +96,7 @@
</div> </div>
</div> --> </div> -->
<div class="w-full sm:max-w-lg px-4 min-h-screen flex flex-col"> <div class="w-full sm:max-w-md px-10 min-h-screen flex flex-col text-center">
{#if $config?.trusted_header_auth ?? false} {#if $config?.trusted_header_auth ?? false}
<div class=" my-auto pb-10 w-full"> <div class=" my-auto pb-10 w-full">
<div <div
...@@ -114,14 +114,15 @@ ...@@ -114,14 +114,15 @@
</div> </div>
</div> </div>
{:else} {:else}
<div class=" my-auto pb-10 w-full"> <div class=" my-auto pb-10 w-full dark:text-gray-100">
<form <form
class=" flex flex-col justify-center bg-white py-6 sm:py-16 px-6 sm:px-16 rounded-2xl" class=" flex flex-col justify-center"
on:submit|preventDefault={() => { on:submit|preventDefault={() => {
submitHandler(); submitHandler();
}} }}
> >
<div class=" text-xl sm:text-2xl font-bold"> <div class="mb-1">
<div class=" text-2xl font-bold">
{mode === 'signin' ? $i18n.t('Sign in') : $i18n.t('Sign up')} {mode === 'signin' ? $i18n.t('Sign in') : $i18n.t('Sign up')}
{$i18n.t('to')} {$i18n.t('to')}
{$WEBUI_NAME} {$WEBUI_NAME}
...@@ -135,6 +136,7 @@ ...@@ -135,6 +136,7 @@
)} )}
</div> </div>
{/if} {/if}
</div>
<div class="flex flex-col mt-4"> <div class="flex flex-col mt-4">
{#if mode === 'signup'} {#if mode === 'signup'}
...@@ -143,14 +145,14 @@ ...@@ -143,14 +145,14 @@
<input <input
bind:value={name} bind:value={name}
type="text" type="text"
class=" border px-4 py-2.5 rounded-2xl w-full text-sm" class=" px-5 py-3 rounded-2xl w-full text-sm outline-none border dark:border-none dark:bg-gray-900"
autocomplete="name" autocomplete="name"
placeholder={$i18n.t('Enter Your Full Name')} placeholder={$i18n.t('Enter Your Full Name')}
required required
/> />
</div> </div>
<hr class=" my-3" /> <hr class=" my-3 dark:border-gray-900" />
{/if} {/if}
<div class="mb-2"> <div class="mb-2">
...@@ -158,7 +160,7 @@ ...@@ -158,7 +160,7 @@
<input <input
bind:value={email} bind:value={email}
type="email" type="email"
class=" border px-4 py-2.5 rounded-2xl w-full text-sm" class=" px-5 py-3 rounded-2xl w-full text-sm outline-none border dark:border-none dark:bg-gray-900"
autocomplete="email" autocomplete="email"
placeholder={$i18n.t('Enter Your Email')} placeholder={$i18n.t('Enter Your Email')}
required required
...@@ -167,10 +169,11 @@ ...@@ -167,10 +169,11 @@
<div> <div>
<div class=" text-sm font-semibold text-left mb-1">{$i18n.t('Password')}</div> <div class=" text-sm font-semibold text-left mb-1">{$i18n.t('Password')}</div>
<input <input
bind:value={password} bind:value={password}
type="password" type="password"
class=" border px-4 py-2.5 rounded-2xl w-full text-sm" class=" px-5 py-3 rounded-2xl w-full text-sm outline-none border dark:border-none dark:bg-gray-900"
placeholder={$i18n.t('Enter Your Password')} placeholder={$i18n.t('Enter Your Password')}
autocomplete="current-password" autocomplete="current-password"
required required
...@@ -180,7 +183,7 @@ ...@@ -180,7 +183,7 @@
<div class="mt-5"> <div class="mt-5">
<button <button
class=" bg-gray-900 hover:bg-gray-800 w-full rounded-full text-white font-semibold text-sm py-3 transition" class=" bg-gray-900 hover:bg-gray-800 w-full rounded-2xl text-white font-semibold text-sm py-3 transition"
type="submit" type="submit"
> >
{mode === 'signin' ? $i18n.t('Sign in') : $i18n.t('Create Account')} {mode === 'signin' ? $i18n.t('Sign in') : $i18n.t('Create Account')}
......
...@@ -138,7 +138,7 @@ ...@@ -138,7 +138,7 @@
class="min-h-screen max-h-screen w-full flex flex-col text-gray-700 dark:text-gray-100 bg-white dark:bg-gray-900" class="min-h-screen max-h-screen w-full flex flex-col text-gray-700 dark:text-gray-100 bg-white dark:bg-gray-900"
> >
<div class="flex flex-col flex-auto justify-center py-8"> <div class="flex flex-col flex-auto justify-center py-8">
<div class="px-3 w-full max-w-3xl mx-auto"> <div class="px-3 w-full max-w-5xl mx-auto">
<div> <div>
<div class=" text-3xl font-semibold line-clamp-1"> <div class=" text-3xl font-semibold line-clamp-1">
{title} {title}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment