diff --git a/app/Controllers/AIController.php b/app/Controllers/AIController.php
index 0c73043..a5570b8 100644
--- a/app/Controllers/AIController.php
+++ b/app/Controllers/AIController.php
@@ -3,7 +3,6 @@
namespace App\Controllers;
use App\Core\Controller;
-use App\Services\LanguageService;
class AIController extends Controller {
@@ -14,14 +13,13 @@ class AIController extends Controller {
$userMessage = $input['message'] ?? '';
if (empty($userMessage)) {
- echo json_encode(['error' => __('error_empty_message', 'Message is empty')]);
+ echo json_encode(['error' => 'Message is empty']);
return;
}
require_once __DIR__ . '/../../ai/LocalAIApi.php';
- $langName = LanguageService::getLang() == 'id' ? 'Indonesian' : 'English';
- $systemPrompt = "You are a helpful assistant for " . get_setting('site_name', 'ApkNusa') . ", an APK downloader and tech blog site. Provide concise and accurate information about Android apps, games, and technology. Be youthful and professional. IMPORTANT: Always respond in " . $langName . ".";
+ $systemPrompt = "You are a helpful assistant for " . get_setting('site_name', 'ApkNusa') . ", an APK downloader and tech blog site. Provide concise and accurate information about Android apps, games, and technology. Be youthful and professional.";
$resp = \LocalAIApi::createResponse([
'input' => [
@@ -34,7 +32,7 @@ class AIController extends Controller {
$text = \LocalAIApi::extractText($resp);
echo json_encode(['reply' => $text]);
} else {
- echo json_encode(['error' => __('error_ai', 'AI Assistant is currently unavailable.')]);
+ echo json_encode(['error' => 'AI Assistant is currently unavailable.']);
}
}
-}
\ No newline at end of file
+}
diff --git a/assets/js/main.js b/assets/js/main.js
index e1ba29c..5515d1a 100644
--- a/assets/js/main.js
+++ b/assets/js/main.js
@@ -26,7 +26,7 @@ document.addEventListener('DOMContentLoaded', () => {
const textLabels = document.querySelectorAll('.theme-status-text');
textLabels.forEach(label => {
- label.textContent = theme === 'dark' ? (window.i18n?.dark_mode || 'Dark Mode') : (window.i18n?.light_mode || 'Light Mode');
+ label.textContent = theme === 'dark' ? 'Dark Mode' : 'Light Mode';
});
};
@@ -170,7 +170,7 @@ document.addEventListener('DOMContentLoaded', () => {
.catch(err => {
btn.disabled = false;
btn.innerHTML = originalText;
- msg.innerHTML = `${window.i18n?.error_generic || 'An error occurred.'} `;
+ msg.innerHTML = 'An error occurred. ';
});
});
};
@@ -222,7 +222,7 @@ document.addEventListener('DOMContentLoaded', () => {
const loadingDiv = document.createElement('div');
loadingDiv.className = 'mb-3 d-flex';
- loadingDiv.innerHTML = `
${window.i18n?.thinking || 'Thinking...'}
`;
+ loadingDiv.innerHTML = '';
messagesContainer.appendChild(loadingDiv);
messagesContainer.scrollTop = messagesContainer.scrollHeight;
@@ -237,12 +237,12 @@ document.addEventListener('DOMContentLoaded', () => {
if (data.reply) {
appendMessage(data.reply);
} else {
- appendMessage(data.error || (window.i18n?.something_wrong || 'Sorry, something went wrong.'));
+ appendMessage(data.error || 'Sorry, something went wrong.');
}
})
.catch(err => {
if (messagesContainer.contains(loadingDiv)) messagesContainer.removeChild(loadingDiv);
- appendMessage(window.i18n?.error_ai || 'Error connecting to AI assistant.');
+ appendMessage('Error connecting to AI assistant.');
console.error(err);
});
};
diff --git a/lang/en.php b/lang/en.php
index fb735a4..2840e67 100644
--- a/lang/en.php
+++ b/lang/en.php
@@ -145,62 +145,4 @@ return array (
'404_title' => 'Page Not Found',
'404_text' => 'The page you are looking for might have been removed, had its name changed, or is temporarily unavailable.',
'back_to_home' => 'Back to Home',
- 'featured_apps' => 'Featured Apps',
- 'newsletter_title' => 'Subscribe to our Newsletter',
- 'newsletter_subtitle' => 'Get notified about the latest APKs and updates directly in your inbox.',
- 'enter_email' => 'Enter your email',
- 'all' => 'All',
- 'similar_apps' => 'Similar Apps',
- 'support_issues' => 'Support & Issues',
- 'support_text' => 'Found a problem with this app or want to request a newer version?',
- 'report_issue' => 'Report Issue',
- 'request_update' => 'Request Update',
- 'your_email' => 'Your Email',
- 'message_details' => 'Message / Details',
- 'message_placeholder' => 'Please describe the issue or your request...',
- 'send' => 'Send',
- 'verified' => 'Verified',
- 'share_text' => 'Check out this app on ApkNusa!',
- 'error_occurred' => 'An error occurred.',
- 'sending' => 'Sending...',
- 'copied' => 'Copied!',
- 'search_apks' => 'Search APKs',
- 'search_go' => 'Go',
- 'popular_categories' => 'Popular Categories',
- 'ai_assistant' => 'ApkNusa AI',
- 'ai_greeting' => 'Hello! How can I help you today?',
- 'type_message' => 'Type a message...',
- 'blog' => 'Blog',
- 'contact' => 'Contact',
- 'dark_mode' => 'Dark Mode',
- 'light_mode' => 'Light Mode',
- 'language' => 'Language',
- 'back' => 'Back',
- 'get_in_touch' => 'Get in Touch',
- 'contact_subtitle' => 'Have questions or feedback about our APKs? We\'d love to hear from you. Send us a message and we\'ll respond as soon as possible.',
- 'follow_us' => 'Follow Us',
- 'full_name' => 'Full Name',
- 'your_name' => 'Your Name',
- 'email_address' => 'Email Address',
- 'subject' => 'Subject',
- 'help_how' => 'How can we help?',
- 'message' => 'Message',
- 'your_message_here' => 'Your message here...',
- 'send_message' => 'Send Message',
- 'processing' => 'Processing...',
- 'pending' => 'Pending',
- 'approved' => 'Approved',
- 'rejected' => 'Rejected',
- 'bank_transfer' => 'Bank Transfer',
- 'error_try_again' => 'An error occurred. Please try again.',
- 'blog_title' => 'Blog & Articles',
- 'blog_subtitle' => 'Get the latest information about apps, games, and tech tips here.',
- 'no_articles' => 'No articles published yet.',
- 'share_article' => 'Share this article:',
- 'admin_user' => 'Admin',
- 'location_indonesia' => 'Jakarta, Indonesia',
- 'thinking' => 'Thinking...',
- 'error_ai' => 'Error connecting to AI assistant.',
- 'something_wrong' => 'Sorry, something went wrong.',
- 'error_empty_message' => 'Message is empty',
-);
\ No newline at end of file
+);
diff --git a/lang/id.php b/lang/id.php
index e9fc0e9..ae943e8 100644
--- a/lang/id.php
+++ b/lang/id.php
@@ -145,62 +145,4 @@ return array (
'404_title' => 'Halaman Tidak Ditemukan',
'404_text' => 'Halaman yang Anda cari mungkin telah dihapus, namanya diubah, atau sementara tidak tersedia.',
'back_to_home' => 'Kembali ke Beranda',
- 'featured_apps' => 'Aplikasi Unggulan',
- 'newsletter_title' => 'Berlangganan Newsletter Kami',
- 'newsletter_subtitle' => 'Dapatkan notifikasi tentang APK dan pembaruan terbaru langsung di kotak masuk Anda.',
- 'enter_email' => 'Masukkan email Anda',
- 'all' => 'Semua',
- 'similar_apps' => 'Aplikasi Serupa',
- 'support_issues' => 'Dukungan & Masalah',
- 'support_text' => 'Menemukan masalah dengan aplikasi ini atau ingin meminta versi terbaru?',
- 'report_issue' => 'Laporkan Masalah',
- 'request_update' => 'Minta Pembaruan',
- 'your_email' => 'Email Anda',
- 'message_details' => 'Pesan / Detail',
- 'message_placeholder' => 'Mohon jelaskan masalah atau permintaan Anda...',
- 'send' => 'Kirim',
- 'verified' => 'Terverifikasi',
- 'share_text' => 'Cek aplikasi ini di ApkNusa!',
- 'error_occurred' => 'Terjadi kesalahan.',
- 'sending' => 'Mengirim...',
- 'copied' => 'Tersalin!',
- 'search_apks' => 'Cari APK',
- 'search_go' => 'Cari',
- 'popular_categories' => 'Kategori Populer',
- 'ai_assistant' => 'AI ApkNusa',
- 'ai_greeting' => 'Halo! Ada yang bisa saya bantu hari ini?',
- 'type_message' => 'Ketik pesan...',
- 'blog' => 'Blog',
- 'contact' => 'Kontak',
- 'dark_mode' => 'Mode Gelap',
- 'light_mode' => 'Mode Terang',
- 'language' => 'Bahasa',
- 'back' => 'Kembali',
- 'get_in_touch' => 'Hubungi Kami',
- 'contact_subtitle' => 'Punya pertanyaan atau masukan tentang APK kami? Kami ingin mendengar dari Anda. Kirimkan pesan kepada kami dan kami akan membalas secepat mungkin.',
- 'follow_us' => 'Ikuti Kami',
- 'full_name' => 'Nama Lengkap',
- 'your_name' => 'Nama Anda',
- 'email_address' => 'Alamat Email',
- 'subject' => 'Subjek',
- 'help_how' => 'Ada yang bisa kami bantu?',
- 'message' => 'Pesan',
- 'your_message_here' => 'Pesan Anda di sini...',
- 'send_message' => 'Kirim Pesan',
- 'processing' => 'Memproses...',
- 'pending' => 'Menunggu',
- 'approved' => 'Disetujui',
- 'rejected' => 'Ditolak',
- 'bank_transfer' => 'Transfer Bank',
- 'error_try_again' => 'Terjadi kesalahan. Silakan coba lagi.',
- 'blog_title' => 'Blog & Artikel',
- 'blog_subtitle' => 'Dapatkan informasi terbaru seputar aplikasi, game, dan tips teknologi di sini.',
- 'no_articles' => 'Belum ada artikel yang diterbitkan.',
- 'share_article' => 'Bagikan artikel ini:',
- 'admin_user' => 'Admin',
- 'location_indonesia' => 'Jakarta, Indonesia',
- 'thinking' => 'Berpikir...',
- 'error_ai' => 'Gagal terhubung ke asisten AI.',
- 'something_wrong' => 'Maaf, terjadi kesalahan.',
- 'error_empty_message' => 'Pesan kosong',
-);
\ No newline at end of file
+);
diff --git a/views/404.php b/views/404.php
index 4231c25..5ee8c3f 100644
--- a/views/404.php
+++ b/views/404.php
@@ -32,7 +32,7 @@
-
+
@@ -43,7 +43,7 @@
-
+
diff --git a/views/apk_detail.php b/views/apk_detail.php
index 15884fb..f0bfb32 100644
--- a/views/apk_detail.php
+++ b/views/apk_detail.php
@@ -113,7 +113,7 @@
?>
-
+ Similar Apps
@@ -153,15 +153,15 @@
-
+ Support & Issues
-
+
Found a problem with this app or want to request a newer version?
-
-
+
+ Report Issue
-
-
+
+ Request Update
@@ -184,7 +184,7 @@
-
+ Download
@@ -238,7 +238,7 @@ function copyShareLink() {
const btn = event.target;
const originalText = btn.innerText;
- btn.innerText = "";
+ btn.innerText = "Copied!";
btn.classList.replace('btn-success', 'btn-dark');
setTimeout(() => {
btn.innerText = originalText;
@@ -257,7 +257,7 @@ document.getElementById('report-form').addEventListener('submit', function(e) {
const alertBox = document.getElementById('report-alert');
btn.disabled = true;
- btn.innerHTML = ' ';
+ btn.innerHTML = ' Sending...';
const formData = new FormData(this);
@@ -269,7 +269,7 @@ document.getElementById('report-form').addEventListener('submit', function(e) {
.then(res => res.json())
.then(data => {
btn.disabled = false;
- btn.innerHTML = '';
+ btn.innerHTML = 'Send';
if (data.success) {
alertBox.innerHTML = '' + data.success + '
';
setTimeout(() => {
@@ -284,8 +284,8 @@ document.getElementById('report-form').addEventListener('submit', function(e) {
})
.catch(err => {
btn.disabled = false;
- btn.innerHTML = '';
- alertBox.innerHTML = '
';
+ btn.innerHTML = 'Send';
+ alertBox.innerHTML = 'An error occurred.
';
});
});
@@ -309,7 +309,7 @@ document.getElementById('mobile-share-btn').addEventListener('click', function(e
if (navigator.share) {
navigator.share({
title: '',
- text: '',
+ text: 'Check out this app on ApkNusa!',
url: '',
}).catch((error) => console.log('Error sharing', error));
} else {
@@ -318,4 +318,4 @@ document.getElementById('mobile-share-btn').addEventListener('click', function(e
});
-
\ No newline at end of file
+
diff --git a/views/auth/profile.php b/views/auth/profile.php
index 3298f77..b51f42f 100644
--- a/views/auth/profile.php
+++ b/views/auth/profile.php
@@ -89,26 +89,16 @@
Rp
-
+
-
+
@@ -148,7 +138,7 @@
OVO
GoPay
ShopeePay
-
+ Bank Transfer
@@ -185,7 +175,7 @@ document.getElementById('withdraw-form').addEventListener('submit', function(e)
const noHistoryRow = document.getElementById('no-history-row');
btn.disabled = true;
- btn.innerHTML = '
';
+ btn.innerHTML = '
Processing...';
const formData = new FormData(form);
@@ -215,20 +205,18 @@ document.getElementById('withdraw-form').addEventListener('submit', function(e)
alertContainer.innerHTML = '
' + data.success + '
';
// Add to table (simplified, just reload or prepend)
+ // For now, let's just prepend a row if we can
if (noHistoryRow) noHistoryRow.remove();
const now = new Date();
const dateStr = now.toLocaleDateString('id-ID', { day: '2-digit', month: 'short', year: 'numeric' }) + ', ' +
now.toLocaleTimeString('id-ID', { hour: '2-digit', minute: '2-digit' });
- let methodText = formData.get('method');
- if (methodText === 'BANK') methodText = '';
-
const newRow = `
${dateStr}
Rp ${parseInt(formData.get('amount')).toLocaleString('id-ID')}
- ${methodText}
-
+ ${formData.get('method')}
+ Pending
`;
tableBody.insertAdjacentHTML('afterbegin', newRow);
@@ -240,7 +228,7 @@ document.getElementById('withdraw-form').addEventListener('submit', function(e)
.catch(err => {
btn.disabled = false;
btn.innerHTML = '';
- modalAlert.innerHTML = '
';
+ modalAlert.innerHTML = '
An error occurred. Please try again.
';
});
});
diff --git a/views/blog/detail.php b/views/blog/detail.php
index 9fc510b..da1d4e2 100644
--- a/views/blog/detail.php
+++ b/views/blog/detail.php
@@ -6,8 +6,8 @@
-
-
+ Home
+ Blog
@@ -16,7 +16,7 @@
-
+ Admin
@@ -33,7 +33,7 @@
-
+
Share this article:
diff --git a/views/contact.php b/views/contact.php
index e920672..51229a5 100644
--- a/views/contact.php
+++ b/views/contact.php
@@ -6,12 +6,12 @@
-
-
+
Get in Touch
+
Have questions or feedback about our APKs? We'd love to hear from you. Send us a message and we'll respond as soon as possible.
-
+ Jakarta, Indonesia
@@ -19,7 +19,7 @@
-
\ No newline at end of file
+
diff --git a/views/footer.php b/views/footer.php
index 7068dfd..3108c00 100644
--- a/views/footer.php
+++ b/views/footer.php
@@ -26,11 +26,11 @@