diff --git a/Interface/src/app/services/language.service.ts b/Interface/src/app/services/language.service.ts
index a7cb77b4..bb88b263 100644
--- a/Interface/src/app/services/language.service.ts
+++ b/Interface/src/app/services/language.service.ts
@@ -10,14 +10,16 @@ import { TranslateService } from '@ngx-translate/core';
@Injectable({ providedIn: 'root' })
export class LanguageService {
private isBrowser: boolean;
+ private rtl_languages: Set
;
constructor(
private translate: TranslateService,
@Inject(PLATFORM_ID) private platformId: object
) {
this.isBrowser = isPlatformBrowser(platformId);
+ this.rtl_languages = new Set(['ar']);
- translate.addLangs(['en', 'ar']);
+ translate.addLangs(['en', 'ar', 'fr', 'es']);
translate.setDefaultLang('en');
const savedLang = this.isBrowser ? localStorage.getItem('lang') : 'en';
@@ -39,7 +41,7 @@ export class LanguageService {
private setDirection(lang: string) {
if (this.isBrowser) {
- const dir = lang === 'ar' ? 'rtl' : 'ltr';
+ const dir = this.rtl_languages.has(lang) ? 'rtl' : 'ltr';
document.documentElement.setAttribute('dir', dir);
document.documentElement.setAttribute('lang', lang);
}
diff --git a/Interface/src/assets/i18n/es.json b/Interface/src/assets/i18n/es.json
new file mode 100644
index 00000000..0cda524a
--- /dev/null
+++ b/Interface/src/assets/i18n/es.json
@@ -0,0 +1,139 @@
+{
+ "HOME": "Inicio",
+ "ABOUT_US": "Sobre Nosotros",
+ "INSIGHTS": "Análisis",
+ "LOGOUT": "Cerrar Sesión",
+ "LOGIN": "Iniciar Sesión",
+ "SIGNUP": "Registrarse",
+ "OUR_TEAM": "Nuestro Equipo",
+ "TEAM_SUBHEADING": "Somos un equipo de apasionados estudiantes de Ciencias de la Computación de la Universidad de Assiut, impulsados por la innovación y la búsqueda incansable de la excelencia.",
+ "TEAM_DESCRIPTION": "A lo largo de nuestro viaje, hemos enfrentado desafíos, superado límites y aprovechado cada oportunidad de aprendizaje. Nuestro compromiso de entregar resultados de alta calidad bajo presión nos ha convertido en los solucionadores de problemas que somos hoy.",
+ "WELCOME_TITLE": "Bienvenido a FeedPulse",
+ "WELCOME_SUBTITLE": "Analizamos comentarios reales de redes sociales para ayudar a tu negocio a crecer de manera inteligente",
+ "CREATE_REPORT": "Crear Informe",
+ "GET_STARTED": "Empezar",
+ "WATCH_VIDEO": "Ver Video",
+ "PROCESS": "Proceso",
+ "HOW_IT_WORKS": "¿Cómo funciona?",
+ "STEP_REGISTER_TITLE": "Registrarse",
+ "STEP_REGISTER_DESC": "Por favor, completa el proceso de registro para comenzar.",
+ "STEP_FB_TITLE": "Conectar con Facebook",
+ "STEP_FB_DESC": "Conecta tu cuenta a Facebook para acceder a funciones adicionales.",
+ "STEP_INSIGHTS_TITLE": "¡Mira tus análisis!",
+ "STEP_INSIGHTS_DESC": "Consulta tu rendimiento y análisis una vez conectado.",
+ "LEARN_MORE": "¿Quieres saber más?",
+ "CHECK_VIDEO": "Ver el video",
+ "ABOUT_FEEDPULSE": "Sobre FeedPulse",
+ "GROW_BUSINESS": "Haremos Todo lo Posible para Hacer Crecer tu Negocio",
+ "DESCRIPTION": "En FeedPulse, empoderamos tu marca transformando los comentarios de los clientes en insights accionables, impulsando el crecimiento sostenible y la innovación.",
+ "OUR_VISION": "Nuestra Visión",
+ "VISION_1": "Ser la plataforma líder.",
+ "VISION_2": "Ofrecer insights de clientes en tiempo real.",
+ "VISION_3": "Permitir que las organizaciones tomen decisiones más inteligentes.",
+ "OUR_MISSION": "Nuestra Misión",
+ "MISSION_1": "Simplificar el análisis de comentarios con tecnología inteligente.",
+ "MISSION_2": "Ayudar a las empresas a prosperar entendiendo y actuando según la voz del cliente.",
+ "OUR_STORY": "Nuestra Historia",
+ "services": {
+ "title": "Nuestros Servicios",
+ "subtitle": "Lo que ofrecemos",
+ "sentiment": "Análisis de Sentimientos",
+ "topic": "Detección de Temas",
+ "security": "Seguridad",
+ "eco": "Ecológico",
+ "report": "Informes y Visualizaciones Personalizados",
+ "chatbot": "Chatbot"
+ },
+ "CONTACT_GET_IN_TOUCH": "Contacto",
+ "CONTACT_WORK_WITH_US": "Siempre estamos buscando trabajar con nuevos clientes.",
+ "CONTACT_FULLNAME": "Nombre Completo",
+ "CONTACT_EMAIL": "Correo Electrónico",
+ "CONTACT_PHONE": "Número de Teléfono",
+ "CONTACT_SUBJECT": "Asunto",
+ "CONTACT_MESSAGE": "Mensaje",
+ "CONTACT_SEND_MESSAGE": "Enviar Mensaje",
+ "FOOTER_SUBSCRIBE_TITLE": "Suscríbete a las Actualizaciones de FeedPulse",
+ "FOOTER_EMAIL_PLACEHOLDER": "Tu Correo Electrónico",
+ "FOOTER_SUBSCRIBE_BUTTON": "Suscribirse Ahora",
+ "FOOTER_DESCRIPTION": "Analizamos comentarios reales de redes sociales para ayudar a tu negocio a crecer de manera inteligente.",
+ "FOOTER_QUICK_LINKS": "Enlaces Rápidos",
+ "FOOTER_HOME": "Inicio",
+ "FOOTER_SERVICES": "Servicios",
+ "FOOTER_ABOUT": "Sobre Nosotros",
+ "FOOTER_PRIVACY": "Política de Privacidad",
+ "FOOTER_CONTACT": "Contacto Rápido",
+ "FOOTER_EMAIL": "Correo: info@feedpulse.com",
+ "FOOTER_PHONE": "Teléfono: +123456789",
+ "FOOTER_ADDRESS": "Dirección: El Cairo, Egipto",
+ "FOOTER_RIGHTS": "Todos los derechos reservados.",
+ "ADD_ORG_TITLE": "Agregar Organización",
+ "ORG_NAME": "Nombre:",
+ "ORG_DESCRIPTION": "Descripción:",
+ "ORG_DESCRIPTION_PLACEHOLDER": "Ingresa la descripción",
+ "ORG_FB_ID": "ID de Facebook:",
+ "ORG_PAGE_TOKEN": "Token de Acceso a la Página:",
+ "ORG_USER_ID": "ID de Usuario:",
+ "SUBMIT": "Enviar",
+ "FB_CONNECT_TEXT": "Conectar con Facebook",
+ "FB_CONNECT_HEADER": "Conecta tu cuenta a Facebook para acceder a funciones adicionales",
+ "FB_CONNECT_BUTTON": "Conectar a Facebook",
+ "DISCONNECT": "Desconectar",
+ "WELCOME_USER": "Bienvenido,",
+ "UNREGISTERED_PAGES": "Tus páginas no registradas:",
+ "REGISTERED_PAGES": "Tus páginas registradas:",
+ "UNKNOWN_PAGE": "Página Desconocida",
+ "GO_TO_FORM": "Ir al formulario",
+ "LOG": {
+ "TITLE": "Iniciar Sesión",
+ "USERNAME": "Nombre de Usuario*",
+ "PASSWORD": "Contraseña*",
+ "PASSWORD_REQUIRED": "La contraseña es obligatoria.",
+ "PASSWORD_MIN": "La contraseña debe tener al menos 8 caracteres.",
+ "BUTTON": "Iniciar Sesión"
+ },
+ "FULL_NAME": "Nombre Completo",
+ "USER_NAME": "Nombre de Usuario",
+ "EMAIL": "Correo Electrónico",
+ "PHONE_NUMBER": "Número de Teléfono",
+ "PASSWORD": "Contraseña",
+ "CONFIRM_PASSWORD": "Confirmar Contraseña",
+ "COUNTRY": "País",
+ "ADDRESS": "Dirección",
+ "PHOTO": "Foto",
+ "REGISTER": "Registrarse",
+ "REQUIRED": "es obligatorio.",
+ "MIN_LENGTH": "debe tener al menos {{length}} caracteres.",
+ "MAX_LENGTH": "no puede exceder los {{length}} caracteres.",
+ "INVALID_EMAIL": "Por favor, ingresa un correo electrónico válido.",
+ "INVALID_PHONE": "Por favor, ingresa un número de teléfono válido de 11 dígitos.",
+ "PASSWORD_NOT_MATCH": "Las contraseñas no coinciden.",
+ "CHOOSE_COUNTRY": "Elegir País",
+ "ANALYTICS_PAGE": "Página de Análisis",
+ "START_DATE": "Fecha de Inicio",
+ "END_DATE": "Fecha de Fin",
+ "SEE_INSIGHTS": "Ver Análisis",
+ "SELECT_DATES_WARNING": "Por favor, selecciona una fecha de inicio y una fecha de fin para continuar.",
+ "REPORT_FROM": "Informe del",
+ "TO": "al",
+ "GOALS": "Objetivos",
+ "ANALYTICS_IMAGES": "Imágenes de Análisis",
+ "METRICS": "Métricas",
+ "SENTIMENT_COUNTS": "Conteo de Sentimientos",
+ "TOPIC_COUNTS": "Conteo de Temas",
+ "TOP_5_TOPICS": "Top 5 de Temas",
+ "MOST_FREQ_SENTIMENT_PER_TOPIC": "Sentimiento Más Frecuente por Tema",
+ "MOST_FREQ_TOPIC_PER_SENTIMENT": "Tema Más Frecuente por Sentimiento",
+ "SENTIMENT": "Sentimiento",
+ "TOPIC": "Tema",
+ "COUNT": "Conteo",
+ "GENERATE_REPORTS": "GENERAR INFORMES",
+ "WE_WILL_GROW_BUSINESS": "Haremos Todo lo Posible para Hacer Crecer tu Negocio",
+ "FEEDPULSE_DESCRIPTION": "En FeedPulse, empoderamos tu marca transformando los comentarios de los clientes en insights accionables, impulsando el crecimiento sostenible y la innovación.",
+ "ANALYTICS_PAGE_DESCRIPTION": "Aquí puedes ver tu rendimiento y análisis una vez conectado.",
+ "TRY_MOCK_PAGE": "Probar Página de Prueba",
+ "LOGIN_SUCCESSFUL": "Inicio de Sesión Exitoso",
+ "WELCOME_BACK": "¡Bienvenido de nuevo!",
+ "LOGIN_FAILED": "Error al Iniciar Sesión",
+ "INVALID_CREDENTIALS": "Credenciales inválidas",
+ "OK": "Aceptar"
+}
diff --git a/Interface/src/assets/i18n/fr.json b/Interface/src/assets/i18n/fr.json
new file mode 100644
index 00000000..a453a428
--- /dev/null
+++ b/Interface/src/assets/i18n/fr.json
@@ -0,0 +1,139 @@
+{
+ "HOME": "Accueil",
+ "ABOUT_US": "À Propos",
+ "INSIGHTS": "Analyses",
+ "LOGOUT": "Déconnexion",
+ "LOGIN": "Connexion",
+ "SIGNUP": "Inscription",
+ "OUR_TEAM": "Notre Équipe",
+ "TEAM_SUBHEADING": "Nous sommes une équipe d'étudiants passionnés en Informatique de l'Université d'Assiut, animés par l'innovation et une quête incessante d'excellence.",
+ "TEAM_DESCRIPTION": "Tout au long de notre parcours, nous avons relevé des défis, repoussé les limites et saisi chaque opportunité d'apprentissage. Notre engagement à fournir des résultats de qualité sous pression a façonné notre capacité à résoudre les problèmes.",
+ "WELCOME_TITLE": "Bienvenue sur FeedPulse",
+ "WELCOME_SUBTITLE": "Nous analysons les retours des réseaux sociaux pour aider votre entreprise à grandir intelligemment",
+ "CREATE_REPORT": "Créer un Rapport",
+ "GET_STARTED": "Commencer",
+ "WATCH_VIDEO": "Regarder la Vidéo",
+ "PROCESS": "Processus",
+ "HOW_IT_WORKS": "Comment ça marche ?",
+ "STEP_REGISTER_TITLE": "S'inscrire",
+ "STEP_REGISTER_DESC": "Veuillez compléter le processus d'inscription pour commencer.",
+ "STEP_FB_TITLE": "Se Connecter à Facebook",
+ "STEP_FB_DESC": "Connectez votre compte à Facebook pour accéder à des fonctionnalités supplémentaires.",
+ "STEP_INSIGHTS_TITLE": "Voir vos Analyses !",
+ "STEP_INSIGHTS_DESC": "Consultez vos performances et analyses une fois connecté.",
+ "LEARN_MORE": "Vous voulez en savoir plus ?",
+ "CHECK_VIDEO": "Regarder la vidéo",
+ "ABOUT_FEEDPULSE": "À Propos de FeedPulse",
+ "GROW_BUSINESS": "Nous Ferons de Notre Mieux pour Faire Croître Votre Entreprise",
+ "DESCRIPTION": "Chez FeedPulse, nous renforçons votre marque en transformant les retours clients en insights actionnables, favorisant une croissance durable et l'innovation.",
+ "OUR_VISION": "Notre Vision",
+ "VISION_1": "Être la plateforme leader.",
+ "VISION_2": "Fournir des insights clients en temps réel.",
+ "VISION_3": "Permettre aux organisations de prendre des décisions plus intelligentes.",
+ "OUR_MISSION": "Notre Mission",
+ "MISSION_1": "Simplifier l'analyse des retours avec une technologie intelligente.",
+ "MISSION_2": "Aider les entreprises à prospérer en comprenant et en agissant sur la voix des clients.",
+ "OUR_STORY": "Notre Histoire",
+ "services": {
+ "title": "Nos Services",
+ "subtitle": "Ce que nous offrons",
+ "sentiment": "Analyse des Sentiments",
+ "topic": "Détection de Thèmes",
+ "security": "Sécurité",
+ "eco": "Écologique",
+ "report": "Rapports et Visualisations Personnalisés",
+ "chatbot": "Chatbot"
+ },
+ "CONTACT_GET_IN_TOUCH": "Contactez-nous",
+ "CONTACT_WORK_WITH_US": "Nous sommes toujours à la recherche de nouveaux clients.",
+ "CONTACT_FULLNAME": "Nom Complet",
+ "CONTACT_EMAIL": "Email",
+ "CONTACT_PHONE": "Numéro de Téléphone",
+ "CONTACT_SUBJECT": "Sujet",
+ "CONTACT_MESSAGE": "Message",
+ "CONTACT_SEND_MESSAGE": "Envoyer le Message",
+ "FOOTER_SUBSCRIBE_TITLE": "Abonnez-vous aux Mises à Jour de FeedPulse",
+ "FOOTER_EMAIL_PLACEHOLDER": "Votre Adresse Email",
+ "FOOTER_SUBSCRIBE_BUTTON": "S'abonner Maintenant",
+ "FOOTER_DESCRIPTION": "Nous analysons les retours des réseaux sociaux pour aider votre entreprise à grandir intelligemment.",
+ "FOOTER_QUICK_LINKS": "Liens Rapides",
+ "FOOTER_HOME": "Accueil",
+ "FOOTER_SERVICES": "Services",
+ "FOOTER_ABOUT": "À Propos",
+ "FOOTER_PRIVACY": "Politique de Confidentialité",
+ "FOOTER_CONTACT": "Contact Rapide",
+ "FOOTER_EMAIL": "Email : info@feedpulse.com",
+ "FOOTER_PHONE": "Téléphone : +123456789",
+ "FOOTER_ADDRESS": "Adresse : Le Caire, Égypte",
+ "FOOTER_RIGHTS": "Tous droits réservés.",
+ "ADD_ORG_TITLE": "Ajouter une Organisation",
+ "ORG_NAME": "Nom :",
+ "ORG_DESCRIPTION": "Description :",
+ "ORG_DESCRIPTION_PLACEHOLDER": "Entrez la description",
+ "ORG_FB_ID": "ID Facebook :",
+ "ORG_PAGE_TOKEN": "Jeton d'Accès à la Page :",
+ "ORG_USER_ID": "ID Utilisateur :",
+ "SUBMIT": "Soumettre",
+ "FB_CONNECT_TEXT": "Se Connecter avec Facebook",
+ "FB_CONNECT_HEADER": "Connectez votre compte à Facebook pour accéder à des fonctionnalités supplémentaires",
+ "FB_CONNECT_BUTTON": "Se Connecter à Facebook",
+ "DISCONNECT": "Déconnecter",
+ "WELCOME_USER": "Bienvenue,",
+ "UNREGISTERED_PAGES": "Vos pages non enregistrées :",
+ "REGISTERED_PAGES": "Vos pages enregistrées :",
+ "UNKNOWN_PAGE": "Page Inconnue",
+ "GO_TO_FORM": "Aller au formulaire",
+ "LOG": {
+ "TITLE": "Connexion",
+ "USERNAME": "Nom d'Utilisateur*",
+ "PASSWORD": "Mot de Passe*",
+ "PASSWORD_REQUIRED": "Le mot de passe est requis.",
+ "PASSWORD_MIN": "Le mot de passe doit contenir au moins 8 caractères.",
+ "BUTTON": "Se Connecter"
+ },
+ "FULL_NAME": "Nom Complet",
+ "USER_NAME": "Nom d'Utilisateur",
+ "EMAIL": "Email",
+ "PHONE_NUMBER": "Numéro de Téléphone",
+ "PASSWORD": "Mot de Passe",
+ "CONFIRM_PASSWORD": "Confirmer le Mot de Passe",
+ "COUNTRY": "Pays",
+ "ADDRESS": "Adresse",
+ "PHOTO": "Photo",
+ "REGISTER": "S'inscrire",
+ "REQUIRED": "est requis.",
+ "MIN_LENGTH": "doit contenir au moins {{length}} caractères.",
+ "MAX_LENGTH": "ne peut pas dépasser {{length}} caractères.",
+ "INVALID_EMAIL": "Veuillez entrer une adresse email valide.",
+ "INVALID_PHONE": "Veuillez entrer un numéro de téléphone valide à 11 chiffres.",
+ "PASSWORD_NOT_MATCH": "Les mots de passe ne correspondent pas.",
+ "CHOOSE_COUNTRY": "Choisir un Pays",
+ "ANALYTICS_PAGE": "Page d'Analyses",
+ "START_DATE": "Date de Début",
+ "END_DATE": "Date de Fin",
+ "SEE_INSIGHTS": "Voir les Analyses",
+ "SELECT_DATES_WARNING": "Veuillez sélectionner une date de début et une date de fin pour continuer.",
+ "REPORT_FROM": "Rapport du",
+ "TO": "au",
+ "GOALS": "Objectifs",
+ "ANALYTICS_IMAGES": "Images d'Analyses",
+ "METRICS": "Métriques",
+ "SENTIMENT_COUNTS": "Nombre de Sentiments",
+ "TOPIC_COUNTS": "Nombre de Thèmes",
+ "TOP_5_TOPICS": "Top 5 des Thèmes",
+ "MOST_FREQ_SENTIMENT_PER_TOPIC": "Sentiment le Plus Fréquent par Thème",
+ "MOST_FREQ_TOPIC_PER_SENTIMENT": "Thème le Plus Fréquent par Sentiment",
+ "SENTIMENT": "Sentiment",
+ "TOPIC": "Thème",
+ "COUNT": "Nombre",
+ "GENERATE_REPORTS": "GÉNÉRER DES RAPPORTS",
+ "WE_WILL_GROW_BUSINESS": "Nous Ferons de Notre Mieux pour Faire Croître Votre Entreprise",
+ "FEEDPULSE_DESCRIPTION": "Chez FeedPulse, nous renforçons votre marque en transformant les retours clients en insights actionnables, favorisant une croissance durable et l'innovation.",
+ "ANALYTICS_PAGE_DESCRIPTION": "Ici, vous pouvez voir vos performances et analyses une fois connecté.",
+ "TRY_MOCK_PAGE": "Essayer une Page de Test",
+ "LOGIN_SUCCESSFUL": "Connexion Réussie",
+ "WELCOME_BACK": "Content de vous revoir !",
+ "LOGIN_FAILED": "Échec de la Connexion",
+ "INVALID_CREDENTIALS": "Identifiants invalides",
+ "OK": "Ok"
+}