tweak languages and layout

This commit is contained in:
Ole-Morten Duesund 2025-06-06 19:19:35 +02:00
commit 7dfcf18960
2 changed files with 587 additions and 58 deletions

74
app.rb
View file

@ -4,7 +4,7 @@ require 'yaml'
# Configure Sinatra
set :port, ENV['PORT'] || 4567
set :bind, '0.0.0.0'
set :bind, '::'
# Load responses from YAML file
RESPONSES = YAML.load_file('responses.yml')
@ -46,6 +46,44 @@ def determine_language(params, headers)
# Check for language family matches (e.g., 'nb' or 'nn' -> 'no')
accepted_langs.each do |lang|
case lang
when /^zh/ # Chinese variants
return 'zh'
when /^es/ # Spanish variants
return 'es'
when /^hi/ # Hindi variants
return 'hi'
when /^ar/ # Arabic variants
return 'ar'
when /^bn/ # Bengali variants
return 'bn'
when /^pt/ # Portuguese variants
return 'pt'
when /^ru/ # Russian variants
return 'ru'
when /^ja/ # Japanese variants
return 'ja'
when /^tr/ # Turkish variants
return 'tr'
when /^ko/ # Korean variants
return 'ko'
when /^fr/ # French variants
return 'fr'
when /^de/ # German variants
return 'de'
when /^vi/ # Vietnamese variants
return 'vi'
when /^it/ # Italian variants
return 'it'
when /^th/ # Thai variants
return 'th'
when /^pl/ # Polish variants
return 'pl'
when /^nl/ # Dutch variants
return 'nl'
when /^ur/ # Urdu variants
return 'ur'
when /^ms/ # Malay variants
return 'ms'
when /^nb|nn/ # Norwegian Bokmål/Nynorsk
return 'no'
when /^sv/ # Swedish variants
@ -236,6 +274,40 @@ __END__
display: inline-block;
}
.logo {
width: 120px;
height: 120px;
margin: 0 auto 2rem auto;
background: radial-gradient(circle at 30% 30%, #ff6b6b, #ee5a52, #dc3545);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 4rem;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
box-shadow: 0 8px 32px rgba(255, 107, 107, 0.4);
border: 3px solid rgba(255, 255, 255, 0.3);
position: relative;
}
.logo::before {
content: '';
position: absolute;
top: -3px;
left: -3px;
right: -3px;
bottom: -3px;
background: conic-gradient(from 0deg, #ff6b6b, #ff8e8e, #ff6b6b);
border-radius: 50%;
z-index: -1;
animation: rotate 3s linear infinite;
}
@keyframes rotate {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.no-response {
font-size: 4rem;
font-weight: bold;

View file

@ -1,4 +1,461 @@
---
# Top 20 most spoken languages worldwide
zh:
name: "中文 (Chinese)"
responses:
- "不"
- "没有"
- "不行"
- "绝对不行"
- "不可能"
- "别想了"
- "免谈"
- "不要"
- "算了吧"
- "想都别想"
- "不会的"
- "没门"
- "休想"
- "不干"
- "拒绝"
- "否定"
- "不同意"
- "不接受"
- "不考虑"
- "门都没有"
es:
name: "Español (Spanish)"
responses:
- "No"
- "Para nada"
- "Jamás"
- "Absolutamente no"
- "Ni hablar"
- "De ninguna manera"
- "Nunca"
- "Imposible"
- "Ni loco"
- "Ni en sueños"
- "Olvídalo"
- "Ni pensarlo"
- "Negativo"
- "Nada de nada"
- "Ni por asomo"
- "Qué va"
- "Ni de coña"
- "Para qué"
- "Ni muerto"
- "Nanay"
hi:
name: "हिन्दी (Hindi)"
responses:
- "नहीं"
- "बिल्कुल नहीं"
- "कभी नहीं"
- "असंभव"
- "भूल जाओ"
- "ना"
- "नकार"
- "मना"
- "इनकार"
- "अस्वीकार"
- "कतई नहीं"
- "हरगिज नहीं"
- "कोई रास्ता नहीं"
- "सोचना भी मत"
- "खुद को धोखा मत दो"
- "नामुमकिन"
- "गलत बात"
- "बिल्कुल गलत"
- "कोई मतलब नहीं"
- "व्यर्थ बात"
ar:
name: "العربية (Arabic)"
responses:
- "لا"
- "كلا"
- "أبداً"
- "مستحيل"
- "لا طريقة"
- "اتركها"
- "لا تفكر فيها"
- "رفض"
- "سلبي"
- "غير ممكن"
- "لا أوافق"
- "لا أقبل"
- "لن يحدث"
- "انس الأمر"
- "لا يمكن"
- "لا طاقة لي"
- "معاذ الله"
- "حاشا"
- "لا سمح الله"
- "كلام فارغ"
bn:
name: "বাংলা (Bengali)"
responses:
- "না"
- "কখনো না"
- "একদমই না"
- "অসম্ভব"
- "ভুলে যাও"
- "কোন উপায় নেই"
- "চিন্তাও করো না"
- "প্রত্যাখ্যান"
- "নেতিবাচক"
- "হতে পারে না"
- "রাজি নই"
- "মানি না"
- "হবে না"
- "ছাড়ো"
- "সম্ভব নয়"
- "পারব না"
- "আল্লাহ মাফ করুন"
- "দূর"
- "বাজে কথা"
- "ফালতু"
pt:
name: "Português (Portuguese)"
responses:
- "Não"
- "Jamais"
- "Nunca"
- "Absolutamente não"
- "De jeito nenhum"
- "Nem pensar"
- "Impossível"
- "Esquece"
- "Nem sonhando"
- "Negativo"
- "Nada disso"
- "Que nada"
- "Nem ferrando"
- "Tá louco"
- "Nem a pau"
- "Qual o quê"
- "Imagina"
- "Deixa pra lá"
- "Nem vem"
- "Nada a ver"
ru:
name: "Русский (Russian)"
responses:
- "Нет"
- "Никогда"
- "Абсолютно нет"
- "Ни за что"
- "Невозможно"
- "Забудь"
- "Ни в коем случае"
- "Отказ"
- "Негативно"
- "Не может быть"
- "Не согласен"
- "Не принимаю"
- "Не выйдет"
- "Брось"
- "Нереально"
- "Не получится"
- "Боже упаси"
- "Отвали"
- "Ерунда"
- "Чушь"
ja:
name: "日本語 (Japanese)"
responses:
- "いいえ"
- "だめ"
- "絶対だめ"
- "無理"
- "ありえない"
- "やめて"
- "忘れて"
- "考えられない"
- "拒否"
- "否定"
- "同意しない"
- "受け入れない"
- "起こらない"
- "諦めて"
- "不可能"
- "できない"
- "とんでもない"
- "冗談じゃない"
- "バカバカしい"
- "くだらない"
tr:
name: "Türkçe (Turkish)"
responses:
- "Hayır"
- "Asla"
- "Kesinlikle hayır"
- "İmkansız"
- "Hiçbir şekilde"
- "Unut gitsin"
- "Düşünme bile"
- "Red"
- "Negatif"
- "Olamez"
- "Kabul etmem"
- "Olmaz"
- "Boş ver"
- "İmkansız"
- "Yapamam"
- "Allah korusun"
- "Defol"
- "Saçmalık"
- "Boş iş"
- "Hadi canım"
ko:
name: "한국어 (Korean)"
responses:
- "아니요"
- "안 돼요"
- "절대 안 돼"
- "불가능해"
- "안 될 말이야"
- "포기해"
- "잊어버려"
- "생각도 하지 마"
- "거부"
- "부정"
- "동의 안 해"
- "받아들일 수 없어"
- "일어날 수 없어"
- "그만둬"
- "말이 안 돼"
- "할 수 없어"
- "말도 안 돼"
- "웃기지 마"
- "헛소리"
- "바보 같은 소리"
fr:
name: "Français (French)"
responses:
- "Non"
- "Jamais"
- "Absolument pas"
- "Impossible"
- "Aucune chance"
- "Oublie ça"
- "N'y pense même pas"
- "Refus"
- "Négatif"
- "Pas question"
- "Je refuse"
- "J'accepte pas"
- "Ça arrivera pas"
- "Laisse tomber"
- "Pas possible"
- "Je peux pas"
- "Mon dieu non"
- "Dégage"
- "N'importe quoi"
- "Foutaises"
de:
name: "Deutsch (German)"
responses:
- "Nein"
- "Niemals"
- "Absolut nicht"
- "Unmöglich"
- "Keine Chance"
- "Vergiss es"
- "Denk nicht mal dran"
- "Ablehnung"
- "Negativ"
- "Kann nicht sein"
- "Bin nicht einverstanden"
- "Akzeptiere nicht"
- "Wird nicht passieren"
- "Lass es"
- "Nicht möglich"
- "Kann ich nicht"
- "Um Gottes willen"
- "Hau ab"
- "Quatsch"
- "Blödsinn"
vi:
name: "Tiếng Việt (Vietnamese)"
responses:
- "Không"
- "Không bao giờ"
- "Tuyệt đối không"
- "Không thể"
- "Không có cách nào"
- "Quên đi"
- "Đừng nghĩ đến"
- "Từ chối"
- "Phủ định"
- "Không được"
- "Tôi không đồng ý"
- "Tôi không chấp nhận"
- "Sẽ không xảy ra"
- "Thôi đi"
- "Không khả năng"
- "Tôi không thể"
- "Trời ơi không"
- "Cút đi"
- "Vô lý"
- "Điên rồi"
it:
name: "Italiano (Italian)"
responses:
- "No"
- "Mai"
- "Assolutamente no"
- "Impossibile"
- "Nessuna possibilità"
- "Dimenticalo"
- "Non pensarci nemmeno"
- "Rifiuto"
- "Negativo"
- "Non può essere"
- "Non sono d'accordo"
- "Non accetto"
- "Non succederà"
- "Lascia perdere"
- "Non è possibile"
- "Non posso"
- "Dio mio no"
- "Vattene"
- "Sciocchezze"
- "Stupidaggini"
th:
name: "ไทย (Thai)"
responses:
- "ไม่"
- "ไม่เอา"
- "ไม่มีทาง"
- "เป็นไปไม่ได้"
- "ไม่มีโอกาส"
- "ลืมไป"
- "อย่าคิดเลย"
- "ปฏิเสธ"
- "เชิงลบ"
- "ไม่ได้"
- "ไม่เห็นด้วย"
- "ไม่ยอมรับ"
- "จะไม่เกิดขึ้น"
- "ปล่อยไป"
- "เป็นไปไม่ได้"
- "ทำไม่ได้"
- "พระเจ้าช่วย"
- "ไปซะ"
- "เหลวไหล"
- "บ้าบอ"
pl:
name: "Polski (Polish)"
responses:
- "Nie"
- "Nigdy"
- "Absolutnie nie"
- "Niemożliwe"
- "Żadnych szans"
- "Zapomnij"
- "Nawet nie myśl"
- "Odmowa"
- "Negatywnie"
- "Nie może być"
- "Nie zgadzam się"
- "Nie akceptuję"
- "Nie wydarzy się"
- "Daj spokój"
- "Niepossible"
- "Nie mogę"
- "Boże broń"
- "Spadaj"
- "Bzdury"
- "Głupoty"
nl:
name: "Nederlands (Dutch)"
responses:
- "Nee"
- "Nooit"
- "Absoluut niet"
- "Onmogelijk"
- "Geen kans"
- "Vergeet het"
- "Denk er niet eens aan"
- "Weigering"
- "Negatief"
- "Kan niet"
- "Ben het niet eens"
- "Accepteer niet"
- "Zal niet gebeuren"
- "Laat maar"
- "Niet mogelijk"
- "Kan ik niet"
- "Godverdomme nee"
- "Rot op"
- "Onzin"
- "Flauwekul"
ur:
name: "اردو (Urdu)"
responses:
- "نہیں"
- "کبھی نہیں"
- "بالکل نہیں"
- "ناممکن"
- "کوئی راستہ نہیں"
- "بھول جاؤ"
- "سوچنا بھی مت"
- "انکار"
- "منفی"
- "نہیں ہو سکتا"
- "متفق نہیں"
- "منظور نہیں"
- "نہیں ہوگا"
- "چھوڑ دو"
- "ممکن نہیں"
- "نہیں کر سکتا"
- "خدا نہ کرے"
- "بھاگ"
- "بکواس"
- "فضول بات"
ms:
name: "Bahasa Melayu (Malay)"
responses:
- "Tidak"
- "Tidak pernah"
- "Langsung tidak"
- "Mustahil"
- "Tiada peluang"
- "Lupakan"
- "Jangan fikir"
- "Tolak"
- "Negatif"
- "Tidak boleh"
- "Tidak setuju"
- "Tidak terima"
- "Tidak akan berlaku"
- "Biarkan"
- "Tidak mungkin"
- "Tidak dapat"
- "Ya Allah tidak"
- "Pergi"
- "Karut"
- "Mengarut"
en:
name: "English"
responses:
@ -23,7 +480,7 @@ en:
- "Fat chance"
- "No can do"
no:
"no":
name: "Norsk (Norwegian)"
responses:
- "Nei"