diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index c3e36f9..1d90c0c 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -2,6 +2,7 @@
import { onMount } from 'svelte';
import { fade } from 'svelte/transition';
import SvelteMarkdown from 'svelte-markdown';
+ import { languages } from "./localization"
let username = '';
let roast = '';
@@ -9,23 +10,6 @@
let mounted = false;
let selectedLanguage = 'english';
- const languages = [
- { value: 'english', label: 'English' },
- { value: 'france', label: 'France' },
- { value: 'italian', label: 'Italian' },
- { value: 'indonesian', label: 'Indonesian' },
- { value: 'indian', label: 'Hindi' },
- { value: 'korean', label: 'Korean' },
- { value: 'japanese', label: 'Japanese' },
- { value: 'chinese', label: 'Chinese' },
- { value: 'german', label: 'German' },
- { value: 'arabic', label: 'Arabic' },
- { value: 'vietnamese', label: 'Vietnamese' },
- { value: 'finnish', label: 'Finnish' },
- { value: 'portuguese', label: 'Portuguese' },
- { value: 'polish', label: 'Polish' }
- ];
-
onMount(() => {
mounted = true;
});
@@ -86,8 +70,8 @@
class="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-purple-500"
disabled={loading}
>
- {#each languages as language}
-
+ {#each Object.entries(languages) as [languageKey, language]}
+
{/each}
diff --git a/src/routes/llama/+server.js b/src/routes/llama/+server.js
index 19888b2..b71d4bc 100644
--- a/src/routes/llama/+server.js
+++ b/src/routes/llama/+server.js
@@ -1,5 +1,6 @@
import { OPENAI_API_KEY, GITHUB_API_KEY } from '$env/static/private';
import OpenAI from 'openai';
+import { languages } from "../localization";
import { json } from '@sveltejs/kit';
const client = new OpenAI({
@@ -12,24 +13,10 @@ let headers = {
'User-Agent': 'github-roast.pages.dev'
};
-const validLanguages = [
- 'english',
- 'indonesian',
- 'indian',
- 'chinese',
- 'japanese',
- 'korean',
- 'france',
- 'polish',
- 'vietnamese',
- 'arabic'
-];
-
export async function POST({ request, platform }) {
- let answerdebug = '';
const { username, language } = await request.json();
- if (!validLanguages.includes(language)) {
+ if (languages[language] == null) {
return json(
{ error: 'invalid language specified, please pass a valid language.' },
{ status: 400 }
@@ -120,47 +107,7 @@ export async function POST({ request, platform }) {
.slice(0, 15)
};
- let prompt = `give a short and harsh roasting for the following github profile: ${username}. Here are the details: "${JSON.stringify(datas)}"`;
- switch (language) {
- case 'indonesian':
- prompt = `gunakan bahasa indonesia yang normal seperti manusia gaul, berikan roasting singkat dengan kejam dan menyindir dalam bahasa gaul untuk profile github berikut : ${username}. Berikut detailnya: "${JSON.stringify(datas)}"`;
- break;
- case 'indian':
- prompt = `इस गिटहब प्रोफाइल के लिए एक क्रूर और व्यंग्यात्मक रोस्टिंग गली भाषा में दें: ${username}। विवरण इस प्रकार है: "${JSON.stringify(datas)}"`;
- break;
- case 'chinese':
- prompt = `用中文俚语对以下GitHub个人资料进行短暂而残酷的讽刺:${username}。以下是详细信息: "${JSON.stringify(datas)}"`;
- break;
- case 'japanese':
- prompt = `以下のGitHubプロフィールに対して残酷で皮肉な短いローストをギャル語でしてください: ${username}。詳細は次の通りです: "${JSON.stringify(datas)}"`;
- break;
- case 'korean':
- prompt = `다음 GitHub 프로필에 대해 잔인하고 비꼬는 짧은 로스팅을 속어로 해주세요: ${username}. 자세한 내용은 다음과 같습니다: "${JSON.stringify(datas)}"`;
- break;
- case 'france':
- prompt = `fais une courte et cruelle critique sarcastique en argot pour le profil GitHub suivant : ${username}. Voici les détails : "${JSON.stringify(datas)}"`;
- break;
- case 'german':
- prompt = `machen sie eine grausame, kurze, harte und sarkastische Röstung auf Deutsch und verwenden Sie Wortspiele und Slang, um Humor in das folgende Github-Profil zu bringen : ${username}. Hier sind die Details : "${JSON.stringify(datas)}"`;
- break;
- case 'arabic':
- prompt = `.${JSON.stringify(datas)}: اليك هذه التفصيل .${username} :(GitHub) قدم سخرية قصيرة و قاصية على الملف الشخصي في`;
- case 'italian':
- prompt = `Criticami in modo sarcastico il seguente profilo GitHub: ${username}. Ecco alcuni dettagli: "${JSON.stringify(datas)}"`;
- break;
- case 'polish':
- prompt = `krótko i ostro skrytykuj poniższy profil GitHub: ${username}. Oto szczegóły: "${JSON.stringify(datas)}"`;
- break;
- case 'vietnamese':
- prompt = `Hãy đưa ra một lời châm chọc ngắn gọn và tàn nhẫn bằng tiếng lóng cho hồ sơ GitHub sau: ${username}. Đây là chi tiết: "${JSON.stringify(datas)}"`;
- break;
- case 'finnish':
- prompt = `Kirjoita lyhyt, julma ja sarkastinen arvostelu slangilla seuraavalle Github-profiilille: ${username}. Tässä on profiilin yksityiskohdat: "${JSON.stringify(datas)}"`;
- break;
- case 'portuguese':
- prompt = `faça uma crítica curta e dura para o seguinte perfil do github: ${username}. Aqui estão os detalhes: "${JSON.stringify(datas)}"`;
- break;
- }
+ let prompt = languages[language].buildPrompt(username, datas);
// answerdebug += prompt + '\n';
try {
diff --git a/src/routes/localization.js b/src/routes/localization.js
new file mode 100644
index 0000000..11a7311
--- /dev/null
+++ b/src/routes/localization.js
@@ -0,0 +1,89 @@
+/** @type { Record string } } */
+const languages = {
+ english: {
+ name: "English",
+ buildPrompt(username, data) {
+ return `give a short and harsh roasting for the following github profile: ${username}. Here are the details: "${JSON.stringify(data)}"`;
+ }
+ },
+ france: {
+ name: "France",
+ buildPrompt(username, data) {
+ return `fais une courte et cruelle critique sarcastique en argot pour le profil GitHub suivant : ${username}. Voici les détails : "${JSON.stringify(data)}"`;
+ }
+ },
+ italian: {
+ name: "Italian",
+ buildPrompt(username, data) {
+ return `Criticami in modo sarcastico il seguente profilo GitHub: ${username}. Ecco alcuni dettagli: "${JSON.stringify(data)}"`;
+ }
+ },
+ indonesian: {
+ name: "Indonesian",
+ buildPrompt(username, data) {
+ return `gunakan bahasa indonesia yang normal seperti manusia gaul, berikan roasting singkat dengan kejam dan menyindir dalam bahasa gaul untuk profile github berikut : ${username}. Berikut detailnya: "${JSON.stringify(data)}"`;
+ }
+ },
+ indian: {
+ name: "Hindi",
+ buildPrompt(username, data) {
+ return `इस गिटहब प्रोफाइल के लिए एक क्रूर और व्यंग्यात्मक रोस्टिंग गली भाषा में दें: ${username}। विवरण इस प्रकार है: "${JSON.stringify(data)}"`;
+ }
+ },
+ korean: {
+ name: "Korean",
+ buildPrompt(username, data) {
+ return `다음 GitHub 프로필에 대해 잔인하고 비꼬는 짧은 로스팅을 속어로 해주세요: ${username}. 자세한 내용은 다음과 같습니다: "${JSON.stringify(data)}"`;
+ }
+ },
+ japanese: {
+ name: "Japanese",
+ buildPrompt(username, data) {
+ return `以下のGitHubプロフィールに対して残酷で皮肉な短いローストをギャル語でしてください: ${username}。詳細は次の通りです: "${JSON.stringify(data)}"`;
+ }
+ },
+ chinese: {
+ name: "Chinese",
+ buildPrompt(username, data) {
+ return `用中文俚语对以下GitHub个人资料进行短暂而残酷的讽刺:${username}。以下是详细信息: "${JSON.stringify(data)}"`;
+ }
+ },
+ german: {
+ name: "German",
+ buildPrompt(username, data) {
+ return `machen sie eine grausame, kurze, harte und sarkastische Röstung auf Deutsch und verwenden Sie Wortspiele und Slang, um Humor in das folgende Github-Profil zu bringen : ${username}. Hier sind die Details : "${JSON.stringify(data)}"`
+ }
+ },
+ arabic: {
+ name: "Arabic",
+ buildPrompt(username, data) {
+ return `.${JSON.stringify(data)}: اليك هذه التفصيل .${username} :(GitHub) قدم سخرية قصيرة و قاصية على الملف الشخصي في`;
+ }
+ },
+ vietnamese: {
+ name: "Vietnamese",
+ buildPrompt(username, data) {
+ return `Hãy đưa ra một lời châm chọc ngắn gọn và tàn nhẫn bằng tiếng lóng cho hồ sơ GitHub sau: ${username}. Đây là chi tiết: "${JSON.stringify(data)}"`;
+ }
+ },
+ finnish: {
+ name: "Finnish",
+ buildPrompt(username, data) {
+ return `Kirjoita lyhyt, julma ja sarkastinen arvostelu slangilla seuraavalle Github-profiilille: ${username}. Tässä on profiilin yksityiskohdat: "${JSON.stringify(data)}"`;
+ }
+ },
+ portuguese: {
+ name: "Portuguese",
+ buildPrompt(username, data) {
+ return `faça uma crítica curta e dura para o seguinte perfil do github: ${username}. Aqui estão os detalhes: "${JSON.stringify(data)}"`;
+ }
+ },
+ polish: {
+ name: "Polish",
+ buildPrompt(username, data) {
+ return `krótko i ostro skrytykuj poniższy profil GitHub: ${username}. Oto szczegóły: "${JSON.stringify(data)}"`;
+ }
+ },
+}
+
+export { languages };
\ No newline at end of file