11"use client" ;
22
3+ import { useTranslations } from "next-intl" ;
34import { Check , X , Star } from "lucide-react" ;
45
56export function LandingComparison ( ) {
7+ const t = useTranslations ( "landing" ) ;
8+
69 const suites = [
710 {
811 name : "InSuite" ,
912 logo : "/logo.svg" ,
10- privacy : "Local" ,
13+ privacy : t ( "comparison.privacy.local" ) ,
1114 auditable : true ,
1215 comp : 5 ,
1316 install : false ,
14- price : "Gratis" ,
15- diff : "Soporta Export PDF, IndexedDB, No es Chino" ,
17+ price : t ( "comparison.price.free" ) ,
18+ diff : t ( "comparison.suites.insuite.diff" ) ,
1619 featured : true ,
1720 } ,
1821 {
1922 name : "Ziziyi Office" ,
2023 logo : "https://hosted.inled.es/ziziyi-office-insuite.png" ,
21- privacy : "Local" ,
24+ privacy : t ( "comparison.privacy.local" ) ,
2225 auditable : true ,
2326 comp : 5 ,
2427 install : false ,
25- price : "Freemium" ,
26- diff : "Sujeto a normativa china. No puedes exportar a PDF. Sin guardado en navegador." ,
28+ price : t ( "comparison.price.freemium" ) ,
29+ diff : t ( "comparison.suites.ziziyi.diff" ) ,
2730 } ,
2831 {
2932 name : "OnlyOffice" ,
3033 logo : "https://hosted.inled.es/onlyoffice-insuite.png" ,
31- privacy : "Nube/Self-hosted" ,
34+ privacy : t ( "comparison.privacy.cloud" ) ,
3235 auditable : false ,
3336 comp : 5 ,
3437 install : true ,
35- price : "Freemium" ,
36- diff : "Ciertos componentes no son auditables. Relacionado con Rusia" ,
38+ price : t ( "comparison.price.freemium" ) ,
39+ diff : t ( "comparison.suites.onlyoffice.diff" ) ,
3740 } ,
3841 {
3942 name : "LibreOffice" ,
4043 logo : "https://hosted.inled.es/libreoffice-insuite.png" ,
41- privacy : "Local" ,
44+ privacy : t ( "comparison.privacy.local" ) ,
4245 auditable : true ,
4346 comp : 3 ,
4447 install : true ,
45- price : "Gratis" ,
46- diff : "Interfaz pésima, necesidad de instalación, baja compatibilidad con Office" ,
48+ price : t ( "comparison.price.free" ) ,
49+ diff : t ( "comparison.suites.libreoffice.diff" ) ,
4750 } ,
4851 {
4952 name : "MS Office" ,
5053 logo : "https://hosted.inled.es/microslop-insuite.png" ,
51- privacy : "Baja (Cloud)" ,
54+ privacy : t ( "comparison.privacy.lowCloud" ) ,
5255 auditable : false ,
5356 comp : 5 ,
5457 install : true ,
55- price : "Suscripción" ,
56- diff : "Propietario, caro, espionaje de datos" ,
58+ price : t ( "comparison.price.subscription" ) ,
59+ diff : t ( "comparison.suites.msoffice.diff" ) ,
5760 } ,
5861 ] ;
5962
6063 return (
6164 < section className = "py-24 px-6 bg-white overflow-x-auto" >
6265 < div className = "max-w-7xl mx-auto" >
6366 < div className = "text-center mb-16" >
64- < h2 className = "text-3xl md:text-5xl font-extrabold mb-4" > Comparativa honesta </ h2 >
67+ < h2 className = "text-3xl md:text-5xl font-extrabold mb-4" > { t ( "comparison.title" ) } </ h2 >
6568 < p className = "text-text-secondary text-lg max-w-2xl mx-auto" >
66- La mejor forma de que veas por qué InSuite es la mejor opción es comparándolo con el resto de opciones del mercado.
69+ { t ( "comparison.subtitle" ) }
6770 </ p >
6871 </ div >
6972
7073 < div className = "min-w-[1000px]" >
7174 < table className = "w-full border-collapse" >
7275 < thead >
7376 < tr className = "border-b-2 border-zinc-100 text-left" >
74- < th className = "py-6 px-4 font-bold text-zinc-400 uppercase text-xs" > Suite </ th >
75- < th className = "py-6 px-4 font-bold text-zinc-400 uppercase text-xs" > Privacidad </ th >
76- < th className = "py-6 px-4 font-bold text-zinc-400 uppercase text-xs" > Auditable </ th >
77- < th className = "py-6 px-4 font-bold text-zinc-400 uppercase text-xs" > Compatibilidad </ th >
78- < th className = "py-6 px-4 font-bold text-zinc-400 uppercase text-xs" > Sin Instalar </ th >
79- < th className = "py-6 px-4 font-bold text-zinc-400 uppercase text-xs" > Precio </ th >
80- < th className = "py-6 px-4 font-bold text-zinc-400 uppercase text-xs" > Diferencias clave </ th >
77+ < th className = "py-6 px-4 font-bold text-zinc-400 uppercase text-xs" > { t ( "comparison.headers.suite" ) } </ th >
78+ < th className = "py-6 px-4 font-bold text-zinc-400 uppercase text-xs" > { t ( "comparison.headers.privacy" ) } </ th >
79+ < th className = "py-6 px-4 font-bold text-zinc-400 uppercase text-xs" > { t ( "comparison.headers.auditable" ) } </ th >
80+ < th className = "py-6 px-4 font-bold text-zinc-400 uppercase text-xs" > { t ( "comparison.headers.compatibility" ) } </ th >
81+ < th className = "py-6 px-4 font-bold text-zinc-400 uppercase text-xs" > { t ( "comparison.headers.noInstall" ) } </ th >
82+ < th className = "py-6 px-4 font-bold text-zinc-400 uppercase text-xs" > { t ( "comparison.headers.price" ) } </ th >
83+ < th className = "py-6 px-4 font-bold text-zinc-400 uppercase text-xs" > { t ( "comparison.headers.keyDiffs" ) } </ th >
8184 </ tr >
8285 </ thead >
8386 < tbody >
@@ -103,7 +106,7 @@ export function LandingComparison() {
103106 </ div >
104107 </ td >
105108 < td className = "py-6 px-4" >
106- < span className = { `px-3 py-1 rounded-full text-xs font-bold whitespace-nowrap ${ suite . privacy . includes ( '100%' ) ? 'bg-green-100 text-green-700' : 'bg-zinc-100 text-zinc-600' } ` } >
109+ < span className = { `px-3 py-1 rounded-full text-xs font-bold whitespace-nowrap ${ suite . privacy . includes ( '100%' ) || suite . privacy === t ( "comparison.privacy.local" ) ? 'bg-green-100 text-green-700' : 'bg-zinc-100 text-zinc-600' } ` } >
107110 { suite . privacy }
108111 </ span >
109112 </ td >
@@ -121,7 +124,7 @@ export function LandingComparison() {
121124 { ! suite . install ? < Check className = "w-5 h-5 text-green-500 mx-auto" /> : < X className = "w-5 h-5 text-red-500 mx-auto" /> }
122125 </ td >
123126 < td className = "py-6 px-4" >
124- < span className = { suite . price === 'Gratis' ? 'text-green-600 font-bold' : 'text-zinc-600' } > { suite . price } </ span >
127+ < span className = { suite . price === t ( "comparison.price.free" ) ? 'text-green-600 font-bold' : 'text-zinc-600' } > { suite . price } </ span >
125128 </ td >
126129 < td className = "py-6 px-4 text-sm text-text-secondary italic" >
127130 { suite . diff }
0 commit comments