fix: sobre, contato, faq, etc.
This commit is contained in:
parent
3feddbea11
commit
83e46a5782
@ -87,6 +87,70 @@ namespace QRRapidoApp.Controllers
|
||||
return View();
|
||||
}
|
||||
|
||||
public IActionResult About()
|
||||
{
|
||||
var userId = User?.FindFirst(ClaimTypes.NameIdentifier)?.Value;
|
||||
|
||||
ViewBag.ShowAds = _adDisplayService.ShouldShowAds(userId).Result;
|
||||
ViewBag.IsPremium = _adDisplayService.HasValidPremiumSubscription(userId ?? "").Result;
|
||||
ViewBag.IsAuthenticated = User.Identity?.IsAuthenticated ?? false;
|
||||
ViewBag.UserName = User.Identity?.Name ?? "";
|
||||
|
||||
ViewBag.Title = _localizer["AboutPageTitle"];
|
||||
ViewBag.Description = _localizer["AboutPageDescription"];
|
||||
_adDisplayService.SetViewBagAds(ViewBag);
|
||||
|
||||
return View();
|
||||
}
|
||||
|
||||
public IActionResult Contact()
|
||||
{
|
||||
var userId = User?.FindFirst(ClaimTypes.NameIdentifier)?.Value;
|
||||
|
||||
ViewBag.ShowAds = _adDisplayService.ShouldShowAds(userId).Result;
|
||||
ViewBag.IsPremium = _adDisplayService.HasValidPremiumSubscription(userId ?? "").Result;
|
||||
ViewBag.IsAuthenticated = User.Identity?.IsAuthenticated ?? false;
|
||||
ViewBag.UserName = User.Identity?.Name ?? "";
|
||||
|
||||
ViewBag.Title = _localizer["ContactPageTitle"];
|
||||
ViewBag.Description = _localizer["ContactPageDescription"];
|
||||
_adDisplayService.SetViewBagAds(ViewBag);
|
||||
|
||||
return View();
|
||||
}
|
||||
|
||||
public IActionResult FAQ()
|
||||
{
|
||||
var userId = User?.FindFirst(ClaimTypes.NameIdentifier)?.Value;
|
||||
|
||||
ViewBag.ShowAds = _adDisplayService.ShouldShowAds(userId).Result;
|
||||
ViewBag.IsPremium = _adDisplayService.HasValidPremiumSubscription(userId ?? "").Result;
|
||||
ViewBag.IsAuthenticated = User.Identity?.IsAuthenticated ?? false;
|
||||
ViewBag.UserName = User.Identity?.Name ?? "";
|
||||
|
||||
ViewBag.Title = _localizer["FAQPageTitle"];
|
||||
ViewBag.Description = _localizer["FAQPageDescription"];
|
||||
_adDisplayService.SetViewBagAds(ViewBag);
|
||||
|
||||
return View();
|
||||
}
|
||||
|
||||
public IActionResult HowToUse()
|
||||
{
|
||||
var userId = User?.FindFirst(ClaimTypes.NameIdentifier)?.Value;
|
||||
|
||||
ViewBag.ShowAds = _adDisplayService.ShouldShowAds(userId).Result;
|
||||
ViewBag.IsPremium = _adDisplayService.HasValidPremiumSubscription(userId ?? "").Result;
|
||||
ViewBag.IsAuthenticated = User.Identity?.IsAuthenticated ?? false;
|
||||
ViewBag.UserName = User.Identity?.Name ?? "";
|
||||
|
||||
ViewBag.Title = _localizer["HowToUsePageTitle"];
|
||||
ViewBag.Description = _localizer["HowToUsePageDescription"];
|
||||
_adDisplayService.SetViewBagAds(ViewBag);
|
||||
|
||||
return View();
|
||||
}
|
||||
|
||||
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
|
||||
public IActionResult Error()
|
||||
{
|
||||
@ -141,6 +205,54 @@ namespace QRRapidoApp.Controllers
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://qrrapido.site/pt-BR/About</loc>
|
||||
<lastmod>{DateTime.UtcNow:yyyy-MM-dd}</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://qrrapido.site/es-PY/About</loc>
|
||||
<lastmod>{DateTime.UtcNow:yyyy-MM-dd}</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://qrrapido.site/pt-BR/Contact</loc>
|
||||
<lastmod>{DateTime.UtcNow:yyyy-MM-dd}</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://qrrapido.site/es-PY/Contact</loc>
|
||||
<lastmod>{DateTime.UtcNow:yyyy-MM-dd}</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://qrrapido.site/pt-BR/FAQ</loc>
|
||||
<lastmod>{DateTime.UtcNow:yyyy-MM-dd}</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://qrrapido.site/es-PY/FAQ</loc>
|
||||
<lastmod>{DateTime.UtcNow:yyyy-MM-dd}</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://qrrapido.site/pt-BR/HowToUse</loc>
|
||||
<lastmod>{DateTime.UtcNow:yyyy-MM-dd}</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://qrrapido.site/es-PY/HowToUse</loc>
|
||||
<lastmod>{DateTime.UtcNow:yyyy-MM-dd}</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://qrrapido.site/Premium/Upgrade</loc>
|
||||
<lastmod>{DateTime.UtcNow:yyyy-MM-dd}</lastmod>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
261
Views/Home/About.cshtml
Normal file
261
Views/Home/About.cshtml
Normal file
@ -0,0 +1,261 @@
|
||||
@using QRRapidoApp.Services
|
||||
@using Microsoft.Extensions.Localization
|
||||
@inject AdDisplayService AdService
|
||||
@inject IStringLocalizer<QRRapidoApp.Resources.SharedResource> Localizer
|
||||
|
||||
@{
|
||||
ViewData["Title"] = Localizer["About"];
|
||||
Layout = "~/Views/Shared/_Layout.cshtml";
|
||||
}
|
||||
|
||||
<div class="container py-5">
|
||||
<!-- Hero Section -->
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-lg-8 text-center">
|
||||
<div class="mb-5">
|
||||
<h1 class="display-5 fw-bold text-primary mb-3">
|
||||
<i class="fas fa-code me-3"></i>@Localizer["AboutQRRapido"]
|
||||
</h1>
|
||||
<p class="lead text-muted">@Localizer["AboutSubtitle"]</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Developer Info -->
|
||||
<div class="row justify-content-center mb-5">
|
||||
<div class="col-lg-10">
|
||||
<div class="card shadow-lg border-0">
|
||||
<div class="card-body p-5">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-lg-8">
|
||||
<h2 class="h3 text-primary mb-4">
|
||||
<i class="fas fa-user-tie me-2"></i>@Localizer["AboutDeveloper"]
|
||||
</h2>
|
||||
<p class="mb-3">@Localizer["DeveloperDescription1"]</p>
|
||||
<p class="mb-4">@Localizer["DeveloperDescription2"]</p>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<i class="fas fa-map-marker-alt text-primary me-3"></i>
|
||||
<div>
|
||||
<strong>@Localizer["Location"]</strong><br>
|
||||
<small class="text-muted">@Localizer["LocationDetail"]</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="d-flex align-items-center mb-3">
|
||||
<i class="fas fa-code text-primary me-3"></i>
|
||||
<div>
|
||||
<strong>@Localizer["Specialization"]</strong><br>
|
||||
<small class="text-muted">@Localizer["SpecializationDetail"]</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4 text-center">
|
||||
<div class="bg-light rounded p-4">
|
||||
<i class="fas fa-laptop-code fa-4x text-primary mb-3"></i>
|
||||
<h5 class="text-primary">@Localizer["EnterpriseExpert"]</h5>
|
||||
<p class="small text-muted mb-0">@Localizer["EnterpriseExpertDesc"]</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Mission & Vision -->
|
||||
<div class="row mb-5">
|
||||
<div class="col-lg-6 mb-4">
|
||||
<div class="card h-100 border-0 shadow-sm">
|
||||
<div class="card-body p-4">
|
||||
<div class="text-center mb-3">
|
||||
<i class="fas fa-bullseye fa-3x text-primary"></i>
|
||||
</div>
|
||||
<h4 class="text-center text-primary mb-3">@Localizer["OurMission"]</h4>
|
||||
<p class="text-center">@Localizer["MissionDescription"]</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 mb-4">
|
||||
<div class="card h-100 border-0 shadow-sm">
|
||||
<div class="card-body p-4">
|
||||
<div class="text-center mb-3">
|
||||
<i class="fas fa-lightbulb fa-3x text-warning"></i>
|
||||
</div>
|
||||
<h4 class="text-center text-primary mb-3">@Localizer["WhyWeCreated"]</h4>
|
||||
<p class="text-center">@Localizer["WhyCreatedDescription"]</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Technology Stack -->
|
||||
<div class="row mb-5">
|
||||
<div class="col-12">
|
||||
<div class="card border-0 shadow-sm">
|
||||
<div class="card-body p-5">
|
||||
<h3 class="text-center text-primary mb-4">
|
||||
<i class="fas fa-cogs me-2"></i>@Localizer["TechnologyStack"]
|
||||
</h3>
|
||||
<p class="text-center text-muted mb-4">@Localizer["TechStackDescription"]</p>
|
||||
|
||||
<div class="row text-center">
|
||||
<div class="col-md-3 mb-3">
|
||||
<div class="tech-item p-3">
|
||||
<i class="fab fa-microsoft fa-3x text-primary mb-2"></i>
|
||||
<h6>ASP.NET Core</h6>
|
||||
<small class="text-muted">@Localizer["TechBackend"]</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3 mb-3">
|
||||
<div class="tech-item p-3">
|
||||
<i class="fas fa-leaf fa-3x text-success mb-2"></i>
|
||||
<h6>MongoDB</h6>
|
||||
<small class="text-muted">@Localizer["TechDatabase"]</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3 mb-3">
|
||||
<div class="tech-item p-3">
|
||||
<i class="fab fa-bootstrap fa-3x text-purple mb-2"></i>
|
||||
<h6>Bootstrap 5</h6>
|
||||
<small class="text-muted">@Localizer["TechFrontend"]</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3 mb-3">
|
||||
<div class="tech-item p-3">
|
||||
<i class="fas fa-tachometer-alt fa-3x text-warning mb-2"></i>
|
||||
<h6>@Localizer["HighPerformance"]</h6>
|
||||
<small class="text-muted">@Localizer["TechPerformance"]</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Why QR Rapido -->
|
||||
<div class="row mb-5">
|
||||
<div class="col-12">
|
||||
<div class="card border-primary">
|
||||
<div class="card-header bg-primary text-white text-center">
|
||||
<h4 class="mb-0">
|
||||
<i class="fas fa-star me-2"></i>@Localizer["WhyChooseQRRapido"]
|
||||
</h4>
|
||||
</div>
|
||||
<div class="card-body p-4">
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<div class="feature-list">
|
||||
<div class="d-flex align-items-start mb-3">
|
||||
<i class="fas fa-bolt text-warning me-3 mt-1"></i>
|
||||
<div>
|
||||
<h6>@Localizer["LightningFast"]</h6>
|
||||
<small class="text-muted">@Localizer["FastDescription"]</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex align-items-start mb-3">
|
||||
<i class="fas fa-shield-alt text-success me-3 mt-1"></i>
|
||||
<div>
|
||||
<h6>@Localizer["SecureReliable"]</h6>
|
||||
<small class="text-muted">@Localizer["SecureDescription"]</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex align-items-start mb-3">
|
||||
<i class="fas fa-mobile-alt text-info me-3 mt-1"></i>
|
||||
<div>
|
||||
<h6>@Localizer["MobileFriendly"]</h6>
|
||||
<small class="text-muted">@Localizer["MobileDescription"]</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="feature-list">
|
||||
<div class="d-flex align-items-start mb-3">
|
||||
<i class="fas fa-language text-primary me-3 mt-1"></i>
|
||||
<div>
|
||||
<h6>@Localizer["Multilingual"]</h6>
|
||||
<small class="text-muted">@Localizer["MultilingualDescription"]</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex align-items-start mb-3">
|
||||
<i class="fas fa-user-shield text-secondary me-3 mt-1"></i>
|
||||
<div>
|
||||
<h6>@Localizer["PrivacyFirst"]</h6>
|
||||
<small class="text-muted">@Localizer["PrivacyDescription"]</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex align-items-start mb-3">
|
||||
<i class="fas fa-heart text-danger me-3 mt-1"></i>
|
||||
<div>
|
||||
<h6>@Localizer["MadeWithLove"]</h6>
|
||||
<small class="text-muted">@Localizer["LoveDescription"]</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Professional Services CTA -->
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="card bg-dark text-white">
|
||||
<div class="card-body p-5 text-center">
|
||||
<h4 class="mb-3">@Localizer["NeedCustomDevelopment"]</h4>
|
||||
<p class="mb-4">@Localizer["CustomDevelopmentDescription"]</p>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
<div class="d-flex justify-content-center flex-wrap gap-3">
|
||||
<span class="badge bg-primary p-2">C# / .NET</span>
|
||||
<span class="badge bg-success p-2">RAG Systems</span>
|
||||
<span class="badge bg-info p-2">@Localizer["EnterpriseAI"]</span>
|
||||
<span class="badge bg-warning p-2">@Localizer["ScalableSystems"]</span>
|
||||
</div>
|
||||
<div class="mt-4">
|
||||
<a href="https://jobmaker.com.br" target="_blank" class="btn btn-light btn-lg">
|
||||
<i class="fas fa-external-link-alt me-2"></i>@Localizer["VisitJobMaker"]
|
||||
</a>
|
||||
<p class="small mt-2 text-light">@Localizer["JobMakerDescription"]</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Ad Space Footer (conditional) -->
|
||||
@await Html.PartialAsync("_AdSpace", new { position = "footer" })
|
||||
|
||||
<style>
|
||||
.tech-item {
|
||||
transition: transform 0.3s ease;
|
||||
}
|
||||
|
||||
.tech-item:hover {
|
||||
transform: translateY(-5px);
|
||||
}
|
||||
|
||||
.feature-list .fas {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
.card {
|
||||
transition: box-shadow 0.3s ease;
|
||||
}
|
||||
|
||||
.card:hover {
|
||||
box-shadow: 0 8px 25px rgba(0,0,0,0.1) !important;
|
||||
}
|
||||
</style>
|
||||
239
Views/Home/Contact.cshtml
Normal file
239
Views/Home/Contact.cshtml
Normal file
@ -0,0 +1,239 @@
|
||||
@using QRRapidoApp.Services
|
||||
@using Microsoft.Extensions.Localization
|
||||
@inject AdDisplayService AdService
|
||||
@inject IStringLocalizer<QRRapidoApp.Resources.SharedResource> Localizer
|
||||
|
||||
@{
|
||||
ViewData["Title"] = Localizer["Contact"];
|
||||
Layout = "~/Views/Shared/_Layout.cshtml";
|
||||
}
|
||||
|
||||
<div class="container py-5">
|
||||
<!-- Hero Section -->
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-lg-8 text-center">
|
||||
<div class="mb-5">
|
||||
<h1 class="display-5 fw-bold text-primary mb-3">
|
||||
<i class="fas fa-envelope me-3"></i>@Localizer["ContactUs"]
|
||||
</h1>
|
||||
<p class="lead text-muted">@Localizer["ContactSubtitle"]</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<!-- Contact Information -->
|
||||
<div class="col-lg-8 mb-5">
|
||||
<div class="row">
|
||||
<!-- QR Rapido Support -->
|
||||
<div class="col-md-6 mb-4">
|
||||
<div class="card h-100 border-0 shadow-sm">
|
||||
<div class="card-body p-4">
|
||||
<div class="text-center mb-3">
|
||||
<i class="fas fa-qrcode fa-3x text-primary"></i>
|
||||
</div>
|
||||
<h4 class="text-center text-primary mb-3">@Localizer["QRRapidoSupport"]</h4>
|
||||
<div class="text-center">
|
||||
<div class="mb-3">
|
||||
<i class="fas fa-envelope text-primary me-2"></i>
|
||||
<strong>@Localizer["SupportEmail"]</strong>
|
||||
</div>
|
||||
<a href="mailto:contato@qrrapido.site" class="btn btn-primary btn-lg w-100">
|
||||
<i class="fas fa-paper-plane me-2"></i>contato@qrrapido.site
|
||||
</a>
|
||||
<div class="mt-3">
|
||||
<small class="text-muted">
|
||||
<i class="fas fa-clock me-1"></i>@Localizer["ResponseTime24-48h"]
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Professional Development -->
|
||||
<div class="col-md-6 mb-4">
|
||||
<div class="card h-100 border-0 shadow-sm">
|
||||
<div class="card-body p-4">
|
||||
<div class="text-center mb-3">
|
||||
<i class="fas fa-laptop-code fa-3x text-success"></i>
|
||||
</div>
|
||||
<h4 class="text-center text-primary mb-3">@Localizer["ProfessionalProjects"]</h4>
|
||||
<div class="text-center">
|
||||
<div class="mb-3">
|
||||
<strong class="text-success">@Localizer["CustomDevelopment"]</strong>
|
||||
</div>
|
||||
<p class="small text-muted mb-3">@Localizer["ProfessionalServicesDesc"]</p>
|
||||
<a href="https://jobmaker.com.br" target="_blank" class="btn btn-success btn-lg w-100">
|
||||
<i class="fas fa-external-link-alt me-2"></i>jobmaker.com.br
|
||||
</a>
|
||||
<div class="mt-3">
|
||||
<small class="text-muted">@Localizer["ConsultJobMaker"]</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Contact Types -->
|
||||
<div class="row mt-4">
|
||||
<div class="col-12">
|
||||
<div class="card border-primary">
|
||||
<div class="card-header bg-primary text-white">
|
||||
<h5 class="mb-0">
|
||||
<i class="fas fa-question-circle me-2"></i>@Localizer["WhatCanWeHelpWith"]
|
||||
</h5>
|
||||
</div>
|
||||
<div class="card-body p-4">
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<h6 class="text-primary mb-3">
|
||||
<i class="fas fa-qrcode me-2"></i>QR Rapido @Localizer["Support"]
|
||||
</h6>
|
||||
<ul class="list-unstyled">
|
||||
<li class="mb-2">
|
||||
<i class="fas fa-check text-success me-2"></i>@Localizer["TechnicalQuestions"]
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<i class="fas fa-check text-success me-2"></i>@Localizer["BugReports"]
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<i class="fas fa-check text-success me-2"></i>@Localizer["FeatureRequests"]
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<i class="fas fa-check text-success me-2"></i>@Localizer["PremiumSupport"]
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<h6 class="text-primary mb-3">
|
||||
<i class="fas fa-briefcase me-2"></i>@Localizer["ProfessionalServices"]
|
||||
</h6>
|
||||
<ul class="list-unstyled">
|
||||
<li class="mb-2">
|
||||
<i class="fas fa-check text-success me-2"></i>@Localizer["CustomSystems"]
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<i class="fas fa-check text-success me-2"></i>@Localizer["AIIntegration"]
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<i class="fas fa-check text-success me-2"></i>@Localizer["EnterpriseConsulting"]
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<i class="fas fa-check text-success me-2"></i>@Localizer["TechnicalAudits"]
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="col-lg-4">
|
||||
<!-- Location Card -->
|
||||
<div class="card border-0 shadow-sm mb-4">
|
||||
<div class="card-body p-4 text-center">
|
||||
<i class="fas fa-map-marker-alt fa-3x text-primary mb-3"></i>
|
||||
<h5 class="text-primary">@Localizer["OurLocation"]</h5>
|
||||
<p class="text-muted mb-3">@Localizer["LocationDetail"]</p>
|
||||
<div class="bg-light rounded p-3">
|
||||
<i class="fas fa-map text-primary me-2"></i>
|
||||
<small class="text-muted">@Localizer["SaoBernardoLocation"]</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Response Time -->
|
||||
<div class="card border-0 shadow-sm mb-4">
|
||||
<div class="card-body p-4 text-center">
|
||||
<i class="fas fa-clock fa-3x text-success mb-3"></i>
|
||||
<h5 class="text-primary">@Localizer["ResponseTimes"]</h5>
|
||||
<div class="list-unstyled">
|
||||
<div class="d-flex justify-content-between align-items-center mb-2">
|
||||
<span class="text-muted">@Localizer["TechnicalQuestions"]</span>
|
||||
<span class="badge bg-success">24-48h</span>
|
||||
</div>
|
||||
<div class="d-flex justify-content-between align-items-center mb-2">
|
||||
<span class="text-muted">@Localizer["CustomProjects"]</span>
|
||||
<span class="badge bg-primary">@Localizer["ConsultWebsite"]</span>
|
||||
</div>
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<span class="text-muted">@Localizer["PremiumSupport"]</span>
|
||||
<span class="badge bg-warning">@Localizer["Priority"]</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Quick Links -->
|
||||
<div class="card border-0 shadow-sm">
|
||||
<div class="card-body p-4">
|
||||
<h6 class="text-primary mb-3">
|
||||
<i class="fas fa-link me-2"></i>@Localizer["QuickLinks"]
|
||||
</h6>
|
||||
<div class="d-grid gap-2">
|
||||
<a href="@Url.Action("FAQ", "Home")" class="btn btn-outline-primary btn-sm">
|
||||
<i class="fas fa-question-circle me-2"></i>FAQ
|
||||
</a>
|
||||
<a href="@Url.Action("HowToUse", "Home")" class="btn btn-outline-primary btn-sm">
|
||||
<i class="fas fa-book me-2"></i>@Localizer["HowToUse"]
|
||||
</a>
|
||||
<a href="@Url.Action("Upgrade", "Premium")" class="btn btn-outline-warning btn-sm">
|
||||
<i class="fas fa-crown me-2"></i>QR Rapido Premium
|
||||
</a>
|
||||
<a href="https://jobmaker.com.br" target="_blank" class="btn btn-outline-success btn-sm">
|
||||
<i class="fas fa-external-link-alt me-2"></i>JobMaker
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Additional Info -->
|
||||
<div class="row mt-5">
|
||||
<div class="col-12">
|
||||
<div class="alert alert-info border-0">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-md-8">
|
||||
<h6 class="alert-heading">
|
||||
<i class="fas fa-info-circle me-2"></i>@Localizer["BeforeContacting"]
|
||||
</h6>
|
||||
<p class="mb-0">@Localizer["BeforeContactingDescription"]</p>
|
||||
</div>
|
||||
<div class="col-md-4 text-center">
|
||||
<a href="@Url.Action("FAQ", "Home")" class="btn btn-info">
|
||||
<i class="fas fa-search me-2"></i>@Localizer["CheckFAQ"]
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Ad Space Footer (conditional) -->
|
||||
@await Html.PartialAsync("_AdSpace", new { position = "footer" })
|
||||
|
||||
<style>
|
||||
.card {
|
||||
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
||||
}
|
||||
|
||||
.card:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 8px 25px rgba(0,0,0,0.15) !important;
|
||||
}
|
||||
|
||||
.btn {
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.btn:hover {
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
</style>
|
||||
638
Views/Home/FAQ.cshtml
Normal file
638
Views/Home/FAQ.cshtml
Normal file
@ -0,0 +1,638 @@
|
||||
@using QRRapidoApp.Services
|
||||
@using Microsoft.Extensions.Localization
|
||||
@inject AdDisplayService AdService
|
||||
@inject IStringLocalizer<QRRapidoApp.Resources.SharedResource> Localizer
|
||||
|
||||
@{
|
||||
ViewData["Title"] = "FAQ";
|
||||
Layout = "~/Views/Shared/_Layout.cshtml";
|
||||
}
|
||||
|
||||
<div class="container py-5">
|
||||
<!-- Hero Section -->
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-lg-8 text-center">
|
||||
<div class="mb-5">
|
||||
<h1 class="display-5 fw-bold text-primary mb-3">
|
||||
<i class="fas fa-question-circle me-3"></i>@Localizer["FrequentlyAskedQuestions"]
|
||||
</h1>
|
||||
<p class="lead text-muted">@Localizer["FAQSubtitle"]</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Search FAQ -->
|
||||
<div class="row justify-content-center mb-5">
|
||||
<div class="col-lg-8">
|
||||
<div class="card shadow-sm">
|
||||
<div class="card-body">
|
||||
<div class="input-group">
|
||||
<span class="input-group-text">
|
||||
<i class="fas fa-search"></i>
|
||||
</span>
|
||||
<input type="text" id="faq-search" class="form-control form-control-lg" placeholder="@Localizer["SearchFAQ"]">
|
||||
<button class="btn btn-outline-secondary" type="button" id="clear-search" title="Limpar busca">
|
||||
<i class="fas fa-times"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div class="d-flex justify-content-between mt-2">
|
||||
<small class="text-muted">@Localizer["SearchFAQHint"]</small>
|
||||
<small id="search-results" class="text-primary fw-bold" style="display: none;"></small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- FAQ Categories -->
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="accordion" id="faqAccordion">
|
||||
|
||||
<!-- General Questions -->
|
||||
<div class="mb-4">
|
||||
<h3 class="text-primary mb-3">
|
||||
<i class="fas fa-info-circle me-2"></i>@Localizer["GeneralQuestions"]
|
||||
</h3>
|
||||
|
||||
<!-- QR Codes Expire? -->
|
||||
<div class="accordion-item faq-item" data-search="qr code expira expiram validade tempo duracao permanente">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq1">
|
||||
<i class="fas fa-calendar-times text-warning me-2"></i>
|
||||
<strong>@Localizer["FAQ_DoQRCodesExpire"]</strong>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="faq1" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
|
||||
<div class="accordion-body">
|
||||
<p><strong>@Localizer["FAQ_QRExpireAnswer1"]</strong></p>
|
||||
<p>@Localizer["FAQ_QRExpireAnswer2"]</p>
|
||||
<div class="alert alert-info">
|
||||
<i class="fas fa-lightbulb me-2"></i>@Localizer["FAQ_QRExpireTip"]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Ideal Size for Printing -->
|
||||
<div class="accordion-item faq-item" data-search="tamanho ideal impressao imprimir qualidade resolucao dpi">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq2">
|
||||
<i class="fas fa-print text-primary me-2"></i>
|
||||
<strong>@Localizer["FAQ_IdealPrintSize"]</strong>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="faq2" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
|
||||
<div class="accordion-body">
|
||||
<p>@Localizer["FAQ_PrintSizeAnswer1"]</p>
|
||||
<ul class="mb-3">
|
||||
<li><strong>@Localizer["FAQ_PrintSizeSmall"]</strong> @Localizer["FAQ_PrintSizeSmallDesc"]</li>
|
||||
<li><strong>@Localizer["FAQ_PrintSizeMedium"]</strong> @Localizer["FAQ_PrintSizeMediumDesc"]</li>
|
||||
<li><strong>@Localizer["FAQ_PrintSizeLarge"]</strong> @Localizer["FAQ_PrintSizeLargeDesc"]</li>
|
||||
</ul>
|
||||
<div class="alert alert-success">
|
||||
<i class="fas fa-check me-2"></i>@Localizer["FAQ_PrintSizeTip"]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- How to Test QR Codes -->
|
||||
<div class="accordion-item faq-item" data-search="testar qr code funciona scanner leitor app aplicativo">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq3">
|
||||
<i class="fas fa-mobile-alt text-success me-2"></i>
|
||||
<strong>@Localizer["FAQ_HowToTestQR"]</strong>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="faq3" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
|
||||
<div class="accordion-body">
|
||||
<p>@Localizer["FAQ_TestQRAnswer1"]</p>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h6><i class="fab fa-android text-success me-2"></i>Android:</h6>
|
||||
<ul>
|
||||
<li>@Localizer["FAQ_AndroidCamera"]</li>
|
||||
<li>@Localizer["FAQ_AndroidGoogleLens"]</li>
|
||||
<li>@Localizer["FAQ_AndroidQRApps"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h6><i class="fab fa-apple text-secondary me-2"></i>iOS:</h6>
|
||||
<ul>
|
||||
<li>@Localizer["FAQ_iOSCamera"]</li>
|
||||
<li>@Localizer["FAQ_iOSControlCenter"]</li>
|
||||
<li>@Localizer["FAQ_iOSQRApps"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- QR Code Security -->
|
||||
<div class="accordion-item faq-item" data-search="seguro seguranca malware virus perigoso confiavel">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq4">
|
||||
<i class="fas fa-shield-alt text-success me-2"></i>
|
||||
<strong>@Localizer["FAQ_QRSecurity"]</strong>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="faq4" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
|
||||
<div class="accordion-body">
|
||||
<p>@Localizer["FAQ_SecurityAnswer1"]</p>
|
||||
<p>@Localizer["FAQ_SecurityAnswer2"]</p>
|
||||
<div class="alert alert-warning">
|
||||
<h6><i class="fas fa-exclamation-triangle me-2"></i>@Localizer["FAQ_SecurityTips"]</h6>
|
||||
<ul class="mb-0">
|
||||
<li>@Localizer["FAQ_SecurityTip1"]</li>
|
||||
<li>@Localizer["FAQ_SecurityTip2"]</li>
|
||||
<li>@Localizer["FAQ_SecurityTip3"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Technical Questions -->
|
||||
<div class="mb-4">
|
||||
<h3 class="text-primary mb-3">
|
||||
<i class="fas fa-cogs me-2"></i>@Localizer["TechnicalQuestions"]
|
||||
</h3>
|
||||
|
||||
<!-- Static vs Dynamic -->
|
||||
<div class="accordion-item faq-item" data-search="estatico dinamico diferenca tracking rastreamento analytics">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq5">
|
||||
<i class="fas fa-exchange-alt text-primary me-2"></i>
|
||||
<strong>@Localizer["FAQ_StaticVsDynamic"]</strong>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="faq5" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
|
||||
<div class="accordion-body">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h6 class="text-success"><i class="fas fa-circle me-2"></i>@Localizer["FAQ_StaticQR"]</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["FAQ_StaticFeature1"]</li>
|
||||
<li>@Localizer["FAQ_StaticFeature2"]</li>
|
||||
<li>@Localizer["FAQ_StaticFeature3"]</li>
|
||||
<li>@Localizer["FAQ_StaticFeature4"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h6 class="text-warning"><i class="fas fa-crown me-2"></i>@Localizer["FAQ_DynamicQR"]</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["FAQ_DynamicFeature1"]</li>
|
||||
<li>@Localizer["FAQ_DynamicFeature2"]</li>
|
||||
<li>@Localizer["FAQ_DynamicFeature3"]</li>
|
||||
<li>@Localizer["FAQ_DynamicFeature4"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="alert alert-info mt-3">
|
||||
<i class="fas fa-info-circle me-2"></i>@Localizer["FAQ_DynamicQRNote"]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Customization -->
|
||||
<div class="accordion-item faq-item" data-search="personalizar cores logo design estilo customizar">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq6">
|
||||
<i class="fas fa-palette text-warning me-2"></i>
|
||||
<strong>@Localizer["FAQ_Customization"]</strong>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="faq6" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
|
||||
<div class="accordion-body">
|
||||
<p>@Localizer["FAQ_CustomizationAnswer1"]</p>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h6 class="text-success"><i class="fas fa-check me-2"></i>@Localizer["FAQ_FreeCustomization"]</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["FAQ_FreeFeature1"]</li>
|
||||
<li>@Localizer["FAQ_FreeFeature2"]</li>
|
||||
<li>@Localizer["FAQ_FreeFeature3"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h6 class="text-warning"><i class="fas fa-crown me-2"></i>@Localizer["FAQ_PremiumCustomization"]</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["FAQ_PremiumFeature1"]</li>
|
||||
<li>@Localizer["FAQ_PremiumFeature2"]</li>
|
||||
<li>@Localizer["FAQ_PremiumFeature3"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Offline Usage -->
|
||||
<div class="accordion-item faq-item" data-search="offline internet conexao funciona sem wifi">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq7">
|
||||
<i class="fas fa-wifi-slash text-secondary me-2"></i>
|
||||
<strong>@Localizer["FAQ_OfflineUsage"]</strong>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="faq7" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
|
||||
<div class="accordion-body">
|
||||
<p>@Localizer["FAQ_OfflineAnswer1"]</p>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h6 class="text-success"><i class="fas fa-check me-2"></i>@Localizer["FAQ_WorksOffline"]</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["FAQ_OfflineType1"]</li>
|
||||
<li>@Localizer["FAQ_OfflineType2"]</li>
|
||||
<li>@Localizer["FAQ_OfflineType3"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h6 class="text-warning"><i class="fas fa-wifi me-2"></i>@Localizer["FAQ_NeedsInternet"]</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["FAQ_OnlineType1"]</li>
|
||||
<li>@Localizer["FAQ_OnlineType2"]</li>
|
||||
<li>@Localizer["FAQ_OnlineType3"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Usage Questions -->
|
||||
<div class="mb-4">
|
||||
<h3 class="text-primary mb-3">
|
||||
<i class="fas fa-user me-2"></i>@Localizer["UsageQuestions"]
|
||||
</h3>
|
||||
|
||||
<!-- Color Choice -->
|
||||
<div class="accordion-item faq-item" data-search="cores escolher melhor contraste legibilidade visibility">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq8">
|
||||
<i class="fas fa-eye text-info me-2"></i>
|
||||
<strong>@Localizer["FAQ_ColorChoice"]</strong>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="faq8" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
|
||||
<div class="accordion-body">
|
||||
<p>@Localizer["FAQ_ColorAnswer1"]</p>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h6 class="text-success"><i class="fas fa-check me-2"></i>@Localizer["FAQ_GoodColors"]</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["FAQ_ColorGood1"]</li>
|
||||
<li>@Localizer["FAQ_ColorGood2"]</li>
|
||||
<li>@Localizer["FAQ_ColorGood3"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h6 class="text-danger"><i class="fas fa-times me-2"></i>@Localizer["FAQ_AvoidColors"]</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["FAQ_ColorBad1"]</li>
|
||||
<li>@Localizer["FAQ_ColorBad2"]</li>
|
||||
<li>@Localizer["FAQ_ColorBad3"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="alert alert-success">
|
||||
<i class="fas fa-lightbulb me-2"></i>@Localizer["FAQ_ColorTip"]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Daily Limits -->
|
||||
<div class="accordion-item faq-item" data-search="limite diario quantos qr codes por dia restricao premium">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq9">
|
||||
<i class="fas fa-chart-line text-primary me-2"></i>
|
||||
<strong>@Localizer["FAQ_DailyLimits"]</strong>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="faq9" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
|
||||
<div class="accordion-body">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="text-center p-3 border rounded">
|
||||
<h6 class="text-muted">@Localizer["FAQ_AnonymousUsers"]</h6>
|
||||
<div class="display-6 text-secondary">@Localizer["FAQ_AnonymousLimit"]</div>
|
||||
<small>@Localizer["FAQ_AnonymousNote"]</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="text-center p-3 border rounded border-primary">
|
||||
<h6 class="text-primary">@Localizer["FAQ_RegisteredUsers"]</h6>
|
||||
<div class="display-6 text-primary">@Localizer["FAQ_RegisteredLimit"]</div>
|
||||
<small>@Localizer["FAQ_RegisteredNote"]</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="text-center p-3 border rounded border-warning">
|
||||
<h6 class="text-warning"><i class="fas fa-crown me-1"></i>Premium</h6>
|
||||
<div class="display-6 text-warning">∞</div>
|
||||
<small>@Localizer["FAQ_PremiumNote"]</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Premium Questions -->
|
||||
<div class="mb-4">
|
||||
<h3 class="text-primary mb-3">
|
||||
<i class="fas fa-crown me-2"></i>@Localizer["PremiumQuestions"]
|
||||
</h3>
|
||||
|
||||
<!-- Premium Benefits -->
|
||||
<div class="accordion-item faq-item" data-search="premium beneficios vantagens preco custo plano assinatura">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq10">
|
||||
<i class="fas fa-star text-warning me-2"></i>
|
||||
<strong>@Localizer["FAQ_PremiumBenefits"]</strong>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="faq10" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
|
||||
<div class="accordion-body">
|
||||
<p>@Localizer["FAQ_PremiumAnswer1"]</p>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h6 class="text-primary"><i class="fas fa-rocket me-2"></i>@Localizer["FAQ_PerformanceBenefits"]</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["FAQ_PremiumPerf1"]</li>
|
||||
<li>@Localizer["FAQ_PremiumPerf2"]</li>
|
||||
<li>@Localizer["FAQ_PremiumPerf3"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h6 class="text-warning"><i class="fas fa-magic me-2"></i>@Localizer["FAQ_FeatureBenefits"]</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["FAQ_PremiumFeat1"]</li>
|
||||
<li>@Localizer["FAQ_PremiumFeat2"]</li>
|
||||
<li>@Localizer["FAQ_PremiumFeat3"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Contact CTA -->
|
||||
<div class="row mt-5">
|
||||
<div class="col-12">
|
||||
<div class="card bg-primary text-white">
|
||||
<div class="card-body p-4 text-center">
|
||||
<h4 class="mb-3">@Localizer["FAQ_NotFoundAnswer"]</h4>
|
||||
<p class="mb-4">@Localizer["FAQ_ContactUsDesc"]</p>
|
||||
<a href="@Url.Action("Contact", "Home")" class="btn btn-light btn-lg">
|
||||
<i class="fas fa-envelope me-2"></i>@Localizer["ContactUs"]
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Ad Space Footer (conditional) -->
|
||||
@await Html.PartialAsync("_AdSpace", new { position = "footer" })
|
||||
|
||||
<script>
|
||||
// FAQ Search functionality - Enhanced
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
const searchInput = document.getElementById('faq-search');
|
||||
const clearButton = document.getElementById('clear-search');
|
||||
const searchResults = document.getElementById('search-results');
|
||||
const faqItems = document.querySelectorAll('.faq-item');
|
||||
const categoryHeaders = document.querySelectorAll('h3.text-primary');
|
||||
|
||||
// Search functionality
|
||||
function performSearch() {
|
||||
const searchTerm = searchInput.value.toLowerCase().trim();
|
||||
let visibleCount = 0;
|
||||
let totalItems = faqItems.length;
|
||||
|
||||
// If search is empty, show all items
|
||||
if (searchTerm === '') {
|
||||
faqItems.forEach(item => {
|
||||
item.style.display = 'block';
|
||||
// Remove any highlight
|
||||
removeHighlight(item);
|
||||
});
|
||||
categoryHeaders.forEach(header => {
|
||||
header.style.display = 'block';
|
||||
});
|
||||
searchResults.style.display = 'none';
|
||||
clearButton.style.display = 'none';
|
||||
return;
|
||||
}
|
||||
|
||||
// Show clear button when there's text
|
||||
clearButton.style.display = 'block';
|
||||
|
||||
// Search through items
|
||||
faqItems.forEach(function(item) {
|
||||
const searchData = item.getAttribute('data-search')?.toLowerCase() || '';
|
||||
const questionText = item.querySelector('button strong')?.textContent.toLowerCase() || '';
|
||||
const answerText = item.querySelector('.accordion-body')?.textContent.toLowerCase() || '';
|
||||
|
||||
// Check if search term matches
|
||||
if (searchData.includes(searchTerm) ||
|
||||
questionText.includes(searchTerm) ||
|
||||
answerText.includes(searchTerm)) {
|
||||
item.style.display = 'block';
|
||||
visibleCount++;
|
||||
// Highlight matching terms
|
||||
highlightText(item, searchTerm);
|
||||
} else {
|
||||
item.style.display = 'none';
|
||||
removeHighlight(item);
|
||||
}
|
||||
});
|
||||
|
||||
// Update category headers visibility
|
||||
updateCategoryVisibility();
|
||||
|
||||
// Show search results count
|
||||
if (visibleCount === 0) {
|
||||
searchResults.innerHTML = `<i class="fas fa-search me-1"></i>Nenhum resultado encontrado para "${searchTerm}"`;
|
||||
searchResults.className = 'text-warning fw-bold';
|
||||
} else if (visibleCount === totalItems) {
|
||||
searchResults.innerHTML = `<i class="fas fa-check me-1"></i>Mostrando todas as ${totalItems} perguntas`;
|
||||
searchResults.className = 'text-success fw-bold';
|
||||
} else {
|
||||
searchResults.innerHTML = `<i class="fas fa-search me-1"></i>${visibleCount} de ${totalItems} perguntas encontradas`;
|
||||
searchResults.className = 'text-primary fw-bold';
|
||||
}
|
||||
searchResults.style.display = 'block';
|
||||
}
|
||||
|
||||
// Update category header visibility based on visible items
|
||||
function updateCategoryVisibility() {
|
||||
categoryHeaders.forEach(header => {
|
||||
const nextSibling = header.nextElementSibling;
|
||||
let hasVisibleItems = false;
|
||||
|
||||
// Check if any FAQ items in this category are visible
|
||||
let currentElement = nextSibling;
|
||||
while (currentElement && !currentElement.querySelector('h3.text-primary')) {
|
||||
if (currentElement.classList.contains('faq-item') &&
|
||||
currentElement.style.display !== 'none') {
|
||||
hasVisibleItems = true;
|
||||
break;
|
||||
}
|
||||
currentElement = currentElement.nextElementSibling;
|
||||
}
|
||||
|
||||
header.style.display = hasVisibleItems ? 'block' : 'none';
|
||||
});
|
||||
}
|
||||
|
||||
// Highlight search terms in text
|
||||
function highlightText(item, searchTerm) {
|
||||
const questionElement = item.querySelector('button strong');
|
||||
if (questionElement) {
|
||||
const originalText = questionElement.textContent;
|
||||
const regex = new RegExp(`(${escapeRegex(searchTerm)})`, 'gi');
|
||||
const highlightedText = originalText.replace(regex, '<mark class="bg-warning">$1</mark>');
|
||||
questionElement.innerHTML = highlightedText;
|
||||
}
|
||||
}
|
||||
|
||||
// Remove highlights
|
||||
function removeHighlight(item) {
|
||||
const questionElement = item.querySelector('button strong');
|
||||
if (questionElement) {
|
||||
const text = questionElement.textContent;
|
||||
questionElement.innerHTML = text;
|
||||
}
|
||||
}
|
||||
|
||||
// Escape special regex characters
|
||||
function escapeRegex(string) {
|
||||
return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
||||
}
|
||||
|
||||
// Clear search function
|
||||
function clearSearch() {
|
||||
searchInput.value = '';
|
||||
performSearch();
|
||||
searchInput.focus();
|
||||
}
|
||||
|
||||
// Event listeners
|
||||
searchInput.addEventListener('input', performSearch);
|
||||
searchInput.addEventListener('keydown', function(e) {
|
||||
if (e.key === 'Escape') {
|
||||
clearSearch();
|
||||
}
|
||||
});
|
||||
|
||||
clearButton.addEventListener('click', clearSearch);
|
||||
|
||||
// Initialize
|
||||
clearButton.style.display = 'none';
|
||||
});
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.faq-item {
|
||||
transition: all 0.3s ease;
|
||||
border-left: 4px solid transparent;
|
||||
}
|
||||
|
||||
.faq-item:hover {
|
||||
border-left-color: var(--bs-primary);
|
||||
}
|
||||
|
||||
.accordion-button:not(.collapsed) {
|
||||
background-color: var(--bs-primary);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.accordion-button:focus {
|
||||
box-shadow: none;
|
||||
border-color: var(--bs-primary);
|
||||
}
|
||||
|
||||
#faq-search {
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
#faq-search:focus {
|
||||
transform: scale(1.02);
|
||||
box-shadow: 0 0 20px rgba(0,123,255,0.25);
|
||||
}
|
||||
|
||||
/* Search highlight styles */
|
||||
mark.bg-warning {
|
||||
background-color: #fff3cd !important;
|
||||
color: #856404;
|
||||
padding: 2px 4px;
|
||||
border-radius: 3px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/* Clear button animation */
|
||||
#clear-search {
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
#clear-search:hover {
|
||||
background-color: #dc3545;
|
||||
border-color: #dc3545;
|
||||
color: white;
|
||||
}
|
||||
|
||||
/* Search results animation */
|
||||
#search-results {
|
||||
transition: all 0.3s ease;
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
|
||||
/* Category headers fade when hidden */
|
||||
h3.text-primary {
|
||||
transition: opacity 0.3s ease;
|
||||
}
|
||||
|
||||
/* Improved FAQ item visibility transition */
|
||||
.faq-item[style*="display: none"] {
|
||||
opacity: 0;
|
||||
transform: translateY(-10px);
|
||||
}
|
||||
|
||||
.faq-item[style*="display: block"] {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
/* Search input enhancements */
|
||||
.input-group:focus-within .input-group-text {
|
||||
border-color: var(--bs-primary);
|
||||
box-shadow: 0 0 0 0.2rem rgba(0,123,255,0.25);
|
||||
}
|
||||
|
||||
/* Responsive search results */
|
||||
@@media (max-width: 768px) {
|
||||
#search-results {
|
||||
font-size: 0.8rem;
|
||||
text-align: center;
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
|
||||
.d-flex.justify-content-between {
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
426
Views/Home/HowToUse.cshtml
Normal file
426
Views/Home/HowToUse.cshtml
Normal file
@ -0,0 +1,426 @@
|
||||
@using QRRapidoApp.Services
|
||||
@using Microsoft.Extensions.Localization
|
||||
@inject AdDisplayService AdService
|
||||
@inject IStringLocalizer<QRRapidoApp.Resources.SharedResource> Localizer
|
||||
|
||||
@{
|
||||
ViewData["Title"] = Localizer["HowToUse"];
|
||||
Layout = "~/Views/Shared/_Layout.cshtml";
|
||||
}
|
||||
|
||||
<div class="container py-5">
|
||||
<!-- Hero Section -->
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-lg-8 text-center">
|
||||
<div class="mb-5">
|
||||
<h1 class="display-5 fw-bold text-primary mb-3">
|
||||
<i class="fas fa-book-open me-3"></i>@Localizer["HowToUseTitle"]
|
||||
</h1>
|
||||
<p class="lead text-muted">@Localizer["HowToUseSubtitle"]</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Quick Start Guide -->
|
||||
<div class="row mb-5">
|
||||
<div class="col-12">
|
||||
<div class="card border-primary">
|
||||
<div class="card-header bg-primary text-white text-center">
|
||||
<h3 class="mb-0">
|
||||
<i class="fas fa-rocket me-2"></i>@Localizer["QuickStartGuide"]
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-body p-4">
|
||||
<div class="row">
|
||||
<div class="col-lg-3 col-md-6 mb-4">
|
||||
<div class="text-center step-card h-100 p-3">
|
||||
<div class="step-number bg-primary text-white rounded-circle mx-auto mb-3">1</div>
|
||||
<i class="fas fa-list fa-2x text-primary mb-3"></i>
|
||||
<h6 class="fw-bold">@Localizer["Step1Title"]</h6>
|
||||
<p class="small text-muted">@Localizer["Step1Description"]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-md-6 mb-4">
|
||||
<div class="text-center step-card h-100 p-3">
|
||||
<div class="step-number bg-success text-white rounded-circle mx-auto mb-3">2</div>
|
||||
<i class="fas fa-edit fa-2x text-success mb-3"></i>
|
||||
<h6 class="fw-bold">@Localizer["Step2Title"]</h6>
|
||||
<p class="small text-muted">@Localizer["Step2Description"]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-md-6 mb-4">
|
||||
<div class="text-center step-card h-100 p-3">
|
||||
<div class="step-number bg-warning text-dark rounded-circle mx-auto mb-3">3</div>
|
||||
<i class="fas fa-bolt fa-2x text-warning mb-3"></i>
|
||||
<h6 class="fw-bold">@Localizer["Step3Title"]</h6>
|
||||
<p class="small text-muted">@Localizer["Step3Description"]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3 col-md-6 mb-4">
|
||||
<div class="text-center step-card h-100 p-3">
|
||||
<div class="step-number bg-info text-white rounded-circle mx-auto mb-3">4</div>
|
||||
<i class="fas fa-download fa-2x text-info mb-3"></i>
|
||||
<h6 class="fw-bold">@Localizer["Step4Title"]</h6>
|
||||
<p class="small text-muted">@Localizer["Step4Description"]</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Detailed Guides by QR Type -->
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<h2 class="text-center text-primary mb-5">
|
||||
<i class="fas fa-cogs me-2"></i>@Localizer["DetailedGuides"]
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- URL/Link Guide -->
|
||||
<div class="row mb-5">
|
||||
<div class="col-lg-6 mb-4">
|
||||
<div class="card h-100 border-0 shadow-sm">
|
||||
<div class="card-header bg-light">
|
||||
<h5 class="mb-0 text-primary">
|
||||
<i class="fas fa-link me-2"></i>@Localizer["URLQRGuide"]
|
||||
</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p class="text-muted mb-3">@Localizer["URLQRGuideDesc"]</p>
|
||||
<ol class="small">
|
||||
<li>@Localizer["URLGuideStep1"]</li>
|
||||
<li>@Localizer["URLGuideStep2"]</li>
|
||||
<li>@Localizer["URLGuideStep3"]</li>
|
||||
<li>@Localizer["URLGuideStep4"]</li>
|
||||
</ol>
|
||||
<div class="alert alert-info border-0 small">
|
||||
<i class="fas fa-lightbulb me-1"></i><strong>@Localizer["Tips"]:</strong> @Localizer["URLGuideTips"]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- WiFi Guide -->
|
||||
<div class="col-lg-6 mb-4">
|
||||
<div class="card h-100 border-0 shadow-sm">
|
||||
<div class="card-header bg-light">
|
||||
<h5 class="mb-0 text-primary">
|
||||
<i class="fas fa-wifi me-2"></i>@Localizer["WiFiQRGuide"]
|
||||
</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p class="text-muted mb-3">@Localizer["WiFiQRGuideDesc"]</p>
|
||||
<ol class="small">
|
||||
<li>@Localizer["WiFiGuideStep1"]</li>
|
||||
<li>@Localizer["WiFiGuideStep2"]</li>
|
||||
<li>@Localizer["WiFiGuideStep3"]</li>
|
||||
<li>@Localizer["WiFiGuideStep4"]</li>
|
||||
</ol>
|
||||
<div class="alert alert-warning border-0 small">
|
||||
<i class="fas fa-shield-alt me-1"></i><strong>@Localizer["Security"]:</strong> @Localizer["WiFiGuideSecurity"]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- vCard Guide -->
|
||||
<div class="col-lg-6 mb-4">
|
||||
<div class="card h-100 border-0 shadow-sm">
|
||||
<div class="card-header bg-light">
|
||||
<h5 class="mb-0 text-primary">
|
||||
<i class="fas fa-address-card me-2"></i>@Localizer["VCardQRGuide"]
|
||||
</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p class="text-muted mb-3">@Localizer["VCardQRGuideDesc"]</p>
|
||||
<ol class="small">
|
||||
<li>@Localizer["VCardGuideStep1"]</li>
|
||||
<li>@Localizer["VCardGuideStep2"]</li>
|
||||
<li>@Localizer["VCardGuideStep3"]</li>
|
||||
<li>@Localizer["VCardGuideStep4"]</li>
|
||||
<li>@Localizer["VCardGuideStep5"]</li>
|
||||
</ol>
|
||||
<div class="alert alert-success border-0 small">
|
||||
<i class="fas fa-mobile-alt me-1"></i><strong>@Localizer["Compatibility"]:</strong> @Localizer["VCardGuideCompat"]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- WhatsApp Guide -->
|
||||
<div class="col-lg-6 mb-4">
|
||||
<div class="card h-100 border-0 shadow-sm">
|
||||
<div class="card-header bg-light">
|
||||
<h5 class="mb-0 text-primary">
|
||||
<i class="fab fa-whatsapp me-2"></i>@Localizer["WhatsAppQRGuide"]
|
||||
</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p class="text-muted mb-3">@Localizer["WhatsAppQRGuideDesc"]</p>
|
||||
<ol class="small">
|
||||
<li>@Localizer["WhatsAppGuideStep1"]</li>
|
||||
<li>@Localizer["WhatsAppGuideStep2"]</li>
|
||||
<li>@Localizer["WhatsAppGuideStep3"]</li>
|
||||
<li>@Localizer["WhatsAppGuideStep4"]</li>
|
||||
</ol>
|
||||
<div class="alert alert-info border-0 small">
|
||||
<i class="fas fa-info-circle me-1"></i><strong>@Localizer["Note"]:</strong> @Localizer["WhatsAppGuideNote"]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Advanced Features -->
|
||||
<div class="row mb-5">
|
||||
<div class="col-12">
|
||||
<div class="card border-warning">
|
||||
<div class="card-header bg-warning text-dark">
|
||||
<h4 class="mb-0">
|
||||
<i class="fas fa-star me-2"></i>@Localizer["AdvancedFeatures"]
|
||||
</h4>
|
||||
</div>
|
||||
<div class="card-body p-4">
|
||||
<div class="row">
|
||||
<div class="col-lg-4 mb-4">
|
||||
<div class="feature-item text-center p-3">
|
||||
<i class="fas fa-palette fa-3x text-primary mb-3"></i>
|
||||
<h6 class="fw-bold">@Localizer["CustomDesign"]</h6>
|
||||
<p class="small text-muted">@Localizer["CustomDesignDesc"]</p>
|
||||
<ul class="small text-start">
|
||||
<li>@Localizer["ChangeColors"]</li>
|
||||
<li>@Localizer["AdjustSize"]</li>
|
||||
<li>@Localizer["SetMargins"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4 mb-4">
|
||||
<div class="feature-item text-center p-3">
|
||||
<i class="fas fa-image fa-3x text-success mb-3"></i>
|
||||
<h6 class="fw-bold">@Localizer["LogoIntegration"] <span class="badge bg-warning small">Premium</span></h6>
|
||||
<p class="small text-muted">@Localizer["LogoIntegrationDesc"]</p>
|
||||
<ul class="small text-start">
|
||||
<li>@Localizer["UploadLogo"]</li>
|
||||
<li>@Localizer["AdjustLogoSize"]</li>
|
||||
<li>@Localizer["ColorMatching"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4 mb-4">
|
||||
<div class="feature-item text-center p-3">
|
||||
<i class="fas fa-download fa-3x text-info mb-3"></i>
|
||||
<h6 class="fw-bold">@Localizer["MultipleFormats"]</h6>
|
||||
<p class="small text-muted">@Localizer["MultipleFormatsDesc"]</p>
|
||||
<ul class="small text-start">
|
||||
<li>@Localizer["PNGFormat"]</li>
|
||||
<li>@Localizer["SVGFormat"]</li>
|
||||
<li>@Localizer["PDFFormat"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Best Practices -->
|
||||
<div class="row mb-5">
|
||||
<div class="col-12">
|
||||
<div class="card bg-light border-0">
|
||||
<div class="card-body p-5">
|
||||
<h3 class="text-center text-primary mb-4">
|
||||
<i class="fas fa-thumbs-up me-2"></i>@Localizer["BestPractices"]
|
||||
</h3>
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<h6 class="text-success mb-3">
|
||||
<i class="fas fa-check-circle me-2"></i>@Localizer["DoBest"]
|
||||
</h6>
|
||||
<ul class="list-unstyled">
|
||||
<li class="mb-2">
|
||||
<i class="fas fa-arrow-right text-success me-2"></i>@Localizer["BestPractice1"]
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<i class="fas fa-arrow-right text-success me-2"></i>@Localizer["BestPractice2"]
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<i class="fas fa-arrow-right text-success me-2"></i>@Localizer["BestPractice3"]
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<i class="fas fa-arrow-right text-success me-2"></i>@Localizer["BestPractice4"]
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<h6 class="text-danger mb-3">
|
||||
<i class="fas fa-times-circle me-2"></i>@Localizer["AvoidMistakes"]
|
||||
</h6>
|
||||
<ul class="list-unstyled">
|
||||
<li class="mb-2">
|
||||
<i class="fas fa-times text-danger me-2"></i>@Localizer["AvoidMistake1"]
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<i class="fas fa-times text-danger me-2"></i>@Localizer["AvoidMistake2"]
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<i class="fas fa-times text-danger me-2"></i>@Localizer["AvoidMistake3"]
|
||||
</li>
|
||||
<li class="mb-2">
|
||||
<i class="fas fa-times text-danger me-2"></i>@Localizer["AvoidMistake4"]
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Troubleshooting -->
|
||||
<div class="row mb-5">
|
||||
<div class="col-12">
|
||||
<div class="card border-secondary">
|
||||
<div class="card-header bg-secondary text-white">
|
||||
<h4 class="mb-0">
|
||||
<i class="fas fa-tools me-2"></i>@Localizer["Troubleshooting"]
|
||||
</h4>
|
||||
</div>
|
||||
<div class="card-body p-4">
|
||||
<div class="accordion" id="troubleshootingAccordion">
|
||||
|
||||
<!-- QR Code not scanning -->
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#trouble1">
|
||||
<i class="fas fa-exclamation-triangle text-warning me-2"></i>
|
||||
<strong>@Localizer["TroubleQRNotScanning"]</strong>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="trouble1" class="accordion-collapse collapse" data-bs-parent="#troubleshootingAccordion">
|
||||
<div class="accordion-body">
|
||||
<h6>@Localizer["PossibleCauses"]:</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["TroubleCause1"]</li>
|
||||
<li>@Localizer["TroubleCause2"]</li>
|
||||
<li>@Localizer["TroubleCause3"]</li>
|
||||
</ul>
|
||||
<h6>@Localizer["Solutions"]:</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["TroubleSolution1"]</li>
|
||||
<li>@Localizer["TroubleSolution2"]</li>
|
||||
<li>@Localizer["TroubleSolution3"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Generation is slow -->
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#trouble2">
|
||||
<i class="fas fa-hourglass-half text-info me-2"></i>
|
||||
<strong>@Localizer["TroubleSlowGeneration"]</strong>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="trouble2" class="accordion-collapse collapse" data-bs-parent="#troubleshootingAccordion">
|
||||
<div class="accordion-body">
|
||||
<h6>@Localizer["ImprovementTips"]:</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["SpeedTip1"]</li>
|
||||
<li>@Localizer["SpeedTip2"]</li>
|
||||
<li>@Localizer["SpeedTip3"]</li>
|
||||
<li>@Localizer["SpeedTip4"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Download issues -->
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#trouble3">
|
||||
<i class="fas fa-download text-success me-2"></i>
|
||||
<strong>@Localizer["TroubleDownloadIssues"]</strong>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="trouble3" class="accordion-collapse collapse" data-bs-parent="#troubleshootingAccordion">
|
||||
<div class="accordion-body">
|
||||
<h6>@Localizer["CommonSolutions"]:</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["DownloadSolution1"]</li>
|
||||
<li>@Localizer["DownloadSolution2"]</li>
|
||||
<li>@Localizer["DownloadSolution3"]</li>
|
||||
<li>@Localizer["DownloadSolution4"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Get Started CTA -->
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="card bg-primary text-white text-center">
|
||||
<div class="card-body p-5">
|
||||
<h3 class="mb-3">@Localizer["ReadyToStart"]</h3>
|
||||
<p class="mb-4">@Localizer["ReadyToStartDesc"]</p>
|
||||
<a href="@Url.Action("Index", "Home")" class="btn btn-light btn-lg">
|
||||
<i class="fas fa-rocket me-2"></i>@Localizer["StartGenerating"]
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Ad Space Footer (conditional) -->
|
||||
@await Html.PartialAsync("_AdSpace", new { position = "footer" })
|
||||
|
||||
<style>
|
||||
.step-card {
|
||||
transition: transform 0.3s ease;
|
||||
border: 2px solid transparent;
|
||||
}
|
||||
|
||||
.step-card:hover {
|
||||
transform: translateY(-5px);
|
||||
border-color: var(--bs-primary);
|
||||
}
|
||||
|
||||
.step-number {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.feature-item {
|
||||
transition: all 0.3s ease;
|
||||
border: 1px solid transparent;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.feature-item:hover {
|
||||
border-color: var(--bs-primary);
|
||||
background-color: rgba(0,123,255,0.05);
|
||||
}
|
||||
|
||||
.card {
|
||||
transition: box-shadow 0.3s ease;
|
||||
}
|
||||
|
||||
.card:hover {
|
||||
box-shadow: 0 8px 25px rgba(0,0,0,0.1) !important;
|
||||
}
|
||||
</style>
|
||||
@ -748,6 +748,305 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- QR Code Types Information Accordions -->
|
||||
<div class="row mt-5">
|
||||
<div class="col-12">
|
||||
<h3 class="text-center mb-4">
|
||||
<i class="fas fa-info-circle text-primary"></i> @Localizer["LearnQRTypes"]
|
||||
</h3>
|
||||
<div class="accordion" id="qrTypesAccordion">
|
||||
|
||||
<!-- URL/Link QR Code -->
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#urlQR">
|
||||
<i class="fas fa-link text-primary me-2"></i>
|
||||
<strong>@Localizer["URLLink"]</strong>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="urlQR" class="accordion-collapse collapse" data-bs-parent="#qrTypesAccordion">
|
||||
<div class="accordion-body">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h6><i class="fas fa-question-circle text-info"></i> @Localizer["WhatIsIt"]</h6>
|
||||
<p>@Localizer["URLQRDescription"]</p>
|
||||
|
||||
<h6><i class="fas fa-play text-success"></i> @Localizer["HowToUse"]</h6>
|
||||
<ol class="small">
|
||||
<li>@Localizer["URLStep1"]</li>
|
||||
<li>@Localizer["URLStep2"]</li>
|
||||
<li>@Localizer["URLStep3"]</li>
|
||||
<li>@Localizer["URLStep4"]</li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h6><i class="fas fa-lightbulb text-warning"></i> @Localizer["Tips"]</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["URLTip1"]</li>
|
||||
<li>@Localizer["URLTip2"]</li>
|
||||
<li>@Localizer["URLTip3"]</li>
|
||||
</ul>
|
||||
|
||||
<h6><i class="fas fa-users text-secondary"></i> @Localizer["UseCases"]</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["URLUseCase1"]</li>
|
||||
<li>@Localizer["URLUseCase2"]</li>
|
||||
<li>@Localizer["URLUseCase3"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Text QR Code -->
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#textQR">
|
||||
<i class="fas fa-align-left text-primary me-2"></i>
|
||||
<strong>@Localizer["SimpleText"]</strong>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="textQR" class="accordion-collapse collapse" data-bs-parent="#qrTypesAccordion">
|
||||
<div class="accordion-body">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h6><i class="fas fa-question-circle text-info"></i> @Localizer["WhatIsIt"]</h6>
|
||||
<p>@Localizer["TextQRDescription"]</p>
|
||||
|
||||
<h6><i class="fas fa-play text-success"></i> @Localizer["HowToUse"]</h6>
|
||||
<ol class="small">
|
||||
<li>@Localizer["TextStep1"]</li>
|
||||
<li>@Localizer["TextStep2"]</li>
|
||||
<li>@Localizer["TextStep3"]</li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h6><i class="fas fa-lightbulb text-warning"></i> @Localizer["Tips"]</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["TextTip1"]</li>
|
||||
<li>@Localizer["TextTip2"]</li>
|
||||
</ul>
|
||||
|
||||
<h6><i class="fas fa-users text-secondary"></i> @Localizer["UseCases"]</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["TextUseCase1"]</li>
|
||||
<li>@Localizer["TextUseCase2"]</li>
|
||||
<li>@Localizer["TextUseCase3"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- WhatsApp QR Code -->
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#whatsappQR">
|
||||
<i class="fab fa-whatsapp text-success me-2"></i>
|
||||
<strong>WhatsApp</strong>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="whatsappQR" class="accordion-collapse collapse" data-bs-parent="#qrTypesAccordion">
|
||||
<div class="accordion-body">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h6><i class="fas fa-question-circle text-info"></i> @Localizer["WhatIsIt"]</h6>
|
||||
<p>@Localizer["WhatsAppQRDescription"]</p>
|
||||
|
||||
<h6><i class="fas fa-play text-success"></i> @Localizer["HowToUse"]</h6>
|
||||
<ol class="small">
|
||||
<li>@Localizer["WhatsAppStep1"]</li>
|
||||
<li>@Localizer["WhatsAppStep2"]</li>
|
||||
<li>@Localizer["WhatsAppStep3"]</li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h6><i class="fas fa-lightbulb text-warning"></i> @Localizer["Tips"]</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["WhatsAppTip1"]</li>
|
||||
<li>@Localizer["WhatsAppTip2"]</li>
|
||||
</ul>
|
||||
|
||||
<h6><i class="fas fa-users text-secondary"></i> @Localizer["UseCases"]</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["WhatsAppUseCase1"]</li>
|
||||
<li>@Localizer["WhatsAppUseCase2"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Email QR Code -->
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#emailQR">
|
||||
<i class="fas fa-envelope text-primary me-2"></i>
|
||||
<strong>@Localizer["Email"]</strong>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="emailQR" class="accordion-collapse collapse" data-bs-parent="#qrTypesAccordion">
|
||||
<div class="accordion-body">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h6><i class="fas fa-question-circle text-info"></i> @Localizer["WhatIsIt"]</h6>
|
||||
<p>@Localizer["EmailQRDescription"]</p>
|
||||
|
||||
<h6><i class="fas fa-play text-success"></i> @Localizer["HowToUse"]</h6>
|
||||
<ol class="small">
|
||||
<li>@Localizer["EmailStep1"]</li>
|
||||
<li>@Localizer["EmailStep2"]</li>
|
||||
<li>@Localizer["EmailStep3"]</li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h6><i class="fas fa-lightbulb text-warning"></i> @Localizer["Tips"]</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["EmailTip1"]</li>
|
||||
<li>@Localizer["EmailTip2"]</li>
|
||||
</ul>
|
||||
|
||||
<h6><i class="fas fa-users text-secondary"></i> @Localizer["UseCases"]</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["EmailUseCase1"]</li>
|
||||
<li>@Localizer["EmailUseCase2"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- SMS QR Code -->
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#smsQR">
|
||||
<i class="fas fa-sms text-primary me-2"></i>
|
||||
<strong>@Localizer["SMS"]</strong>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="smsQR" class="accordion-collapse collapse" data-bs-parent="#qrTypesAccordion">
|
||||
<div class="accordion-body">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h6><i class="fas fa-question-circle text-info"></i> @Localizer["WhatIsIt"]</h6>
|
||||
<p>@Localizer["SMSQRDescription"]</p>
|
||||
|
||||
<h6><i class="fas fa-play text-success"></i> @Localizer["HowToUse"]</h6>
|
||||
<ol class="small">
|
||||
<li>@Localizer["SMSStep1"]</li>
|
||||
<li>@Localizer["SMSStep2"]</li>
|
||||
<li>@Localizer["SMSStep3"]</li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h6><i class="fas fa-lightbulb text-warning"></i> @Localizer["Tips"]</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["SMSTip1"]</li>
|
||||
<li>@Localizer["SMSTip2"]</li>
|
||||
</ul>
|
||||
|
||||
<h6><i class="fas fa-users text-secondary"></i> @Localizer["UseCases"]</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["SMSUseCase1"]</li>
|
||||
<li>@Localizer["SMSUseCase2"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- WiFi QR Code -->
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#wifiQR">
|
||||
<i class="fas fa-wifi text-primary me-2"></i>
|
||||
<strong>@Localizer["WiFi"]</strong>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="wifiQR" class="accordion-collapse collapse" data-bs-parent="#qrTypesAccordion">
|
||||
<div class="accordion-body">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h6><i class="fas fa-question-circle text-info"></i> @Localizer["WhatIsIt"]</h6>
|
||||
<p>@Localizer["WiFiQRDescription"]</p>
|
||||
|
||||
<h6><i class="fas fa-play text-success"></i> @Localizer["HowToUse"]</h6>
|
||||
<ol class="small">
|
||||
<li>@Localizer["WiFiStep1"]</li>
|
||||
<li>@Localizer["WiFiStep2"]</li>
|
||||
<li>@Localizer["WiFiStep3"]</li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h6><i class="fas fa-lightbulb text-warning"></i> @Localizer["Tips"]</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["WiFiTip1"]</li>
|
||||
<li>@Localizer["WiFiTip2"]</li>
|
||||
<li>@Localizer["WiFiTip3"]</li>
|
||||
</ul>
|
||||
|
||||
<h6><i class="fas fa-users text-secondary"></i> @Localizer["UseCases"]</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["WiFiUseCase1"]</li>
|
||||
<li>@Localizer["WiFiUseCase2"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- vCard QR Code -->
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#vcardQR">
|
||||
<i class="fas fa-address-card text-primary me-2"></i>
|
||||
<strong>@Localizer["VCard"]</strong>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="vcardQR" class="accordion-collapse collapse" data-bs-parent="#qrTypesAccordion">
|
||||
<div class="accordion-body">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h6><i class="fas fa-question-circle text-info"></i> @Localizer["WhatIsIt"]</h6>
|
||||
<p>@Localizer["VCardQRDescription"]</p>
|
||||
|
||||
<h6><i class="fas fa-play text-success"></i> @Localizer["HowToUse"]</h6>
|
||||
<ol class="small">
|
||||
<li>@Localizer["VCardStep1"]</li>
|
||||
<li>@Localizer["VCardStep2"]</li>
|
||||
<li>@Localizer["VCardStep3"]</li>
|
||||
<li>@Localizer["VCardStep4"]</li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h6><i class="fas fa-lightbulb text-warning"></i> @Localizer["Tips"]</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["VCardTip1"]</li>
|
||||
<li>@Localizer["VCardTip2"]</li>
|
||||
<li>@Localizer["VCardTip3"]</li>
|
||||
</ul>
|
||||
|
||||
<h6><i class="fas fa-users text-secondary"></i> @Localizer["UseCases"]</h6>
|
||||
<ul class="small">
|
||||
<li>@Localizer["VCardUseCase1"]</li>
|
||||
<li>@Localizer["VCardUseCase2"]</li>
|
||||
<li>@Localizer["VCardUseCase3"]</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Ad Space Between Content (conditional) -->
|
||||
@await Html.PartialAsync("_AdSpace", new { position = "content" })
|
||||
</div>
|
||||
|
||||
@ -192,6 +192,30 @@
|
||||
</a>
|
||||
|
||||
<div class="navbar-nav ms-auto d-flex flex-row align-items-center gap-3">
|
||||
<!-- Main Menu Dropdown -->
|
||||
<div class="dropdown">
|
||||
<button class="btn btn-outline-primary btn-sm dropdown-toggle" type="button" data-bs-toggle="dropdown">
|
||||
<i class="fas fa-bars"></i> <span class="d-none d-md-inline ms-1">Menu</span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item" href="@Url.Action("Index", "Home")">
|
||||
<i class="fas fa-home me-2"></i>@Localizer["Home"]
|
||||
</a></li>
|
||||
<li><a class="dropdown-item" href="@Url.Action("HowToUse", "Home")">
|
||||
<i class="fas fa-question-circle me-2"></i>@Localizer["HowToUse"]
|
||||
</a></li>
|
||||
<li><a class="dropdown-item" href="@Url.Action("FAQ", "Home")">
|
||||
<i class="fas fa-comments me-2"></i>FAQ
|
||||
</a></li>
|
||||
<li><hr class="dropdown-divider"></li>
|
||||
<li><a class="dropdown-item" href="@Url.Action("About", "Home")">
|
||||
<i class="fas fa-info-circle me-2"></i>@Localizer["About"]
|
||||
</a></li>
|
||||
<li><a class="dropdown-item" href="@Url.Action("Contact", "Home")">
|
||||
<i class="fas fa-envelope me-2"></i>@Localizer["Contact"]
|
||||
</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- Language selector -->
|
||||
<div class="dropdown">
|
||||
<button class="btn btn-outline-secondary btn-sm dropdown-toggle" type="button" data-bs-toggle="dropdown">
|
||||
@ -310,14 +334,14 @@
|
||||
<ul class="list-unstyled">
|
||||
<li><a href="@Url.Action("Privacy", "Home")" class="text-light">@Localizer["Privacy"]</a></li>
|
||||
<li><a href="@Url.Action("Terms", "Home")" class="text-light">@Localizer["TermsOfUse"]</a></li>
|
||||
<li><a href="/Premium/Upgrade" class="text-warning">Premium</a></li>
|
||||
<li><a href="@Url.Action("Upgrade", "Premium")" class="text-warning">Premium</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<h6>@Localizer["Support"]</h6>
|
||||
<ul class="list-unstyled">
|
||||
<li><a href="mailto:contato@qrrapido.site" class="text-light">Contato</a></li>
|
||||
<li><a href="/Help" class="text-light">@Localizer["Help"]</a></li>
|
||||
<li><a href="@Url.Action("FAQ", "Home")" class="text-light">@Localizer["Help"]</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user