@lynxflow/seo-engine 1.6.5 → 1.6.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,19 @@
1
+ /**
2
+ * 🌐 Google Translation Engine Bridge
3
+ * Provides fast, batch, zero-cost multilingual translation for Programmatic SEO pages,
4
+ * markdown documentation, and schema descriptions across 40+ global languages.
5
+ */
6
+ export declare class GoogleTranslateBridge {
7
+ /**
8
+ * Translates a single text string into the target language using Google's public translation endpoint.
9
+ */
10
+ static translateText(text: string, targetLang: string, sourceLang?: string): Promise<string>;
11
+ /**
12
+ * Batch translates an array of strings in parallel with concurrency throttling.
13
+ */
14
+ static translateBatch(texts: string[], targetLang: string, sourceLang?: string): Promise<string[]>;
15
+ /**
16
+ * Translates a structured key-value object (e.g. SEO page meta or FAQ list).
17
+ */
18
+ static translateObject<T extends Record<string, string>>(obj: T, targetLang: string, sourceLang?: string): Promise<T>;
19
+ }
@@ -3,7 +3,7 @@
3
3
  * Automatically detects and synchronizes website locales without requiring hardcoded lists.
4
4
  * Compatible with next-intl, next-i18next, i18next, Paraglide, and Astro i18n.
5
5
  */
6
- export declare const SUPPORTED_CANONICAL_LOCALES: readonly ["en", "fr", "es", "de", "it", "pt", "nl", "ru", "sv", "pl", "ja", "zh", "ar"];
6
+ export declare const SUPPORTED_CANONICAL_LOCALES: readonly ["en", "fr", "es", "de", "it", "pt", "nl", "ru", "tr", "zh", "ja", "ko", "hi", "id", "ar", "pl", "sv", "no", "da", "fi", "cs", "el", "ro", "hu", "uk", "vi", "th", "ms", "he", "bg", "hr", "sk", "sl", "et", "lv", "lt", "fa", "bn", "ta", "sw", "af", "tl"];
7
7
  export type SupportedLocale = (typeof SUPPORTED_CANONICAL_LOCALES)[number];
8
8
  export declare class I18nDetector {
9
9
  /**
package/dist/index.js CHANGED
@@ -336,8 +336,8 @@ class ApiKeyGuardian {
336
336
  var DICTIONARIES = {
337
337
  fr: {
338
338
  geoTitle: (s, city, country, b) => `${s} à ${city} (${country}) — ${b}`,
339
- geoDesc: (s, city) => `Découvrez la solution de ${s} à ${city}. Automatisez vos opérations et boostez votre croissance. Note 4.9/5 étoiles.`,
340
- geoDirectAnswer: (b, s, city, country, price, cur) => `${b} est la solution de référence pour ${s} à ${city} (${country}). Déploiement en 10 minutes dès ${price} ${cur}/mois avec note certifiée de 4.9/5 étoiles sur 1 280 avis vérifiés.`,
339
+ geoDesc: (s, city) => `Découvrez la solution de ${s} à ${city}. Automatisez vos opérations et boostez votre croissance.`,
340
+ geoDirectAnswer: (b, s, city, country, price, cur) => `${b} est la solution de référence pour ${s} à ${city} (${country}). Déploiement en 10 minutes dès ${price} ${cur}/mois avec avis clients synchronisés et support dédié.`,
341
341
  vsTitle: (b, comp, y) => `${b} vs ${comp} : Comparatif Complet & Tarifs ${y}`,
342
342
  vsDesc: (b, comp) => `Pourquoi choisir ${b} plutôt que ${comp} ? Découvrez le comparatif des fonctionnalités, prix sans engagement et retours d'expérience.`,
343
343
  vsDirectAnswer: (b, comp) => `${b} se distingue de ${comp} par une tarification transparente sans engagement, une automatisation IA native 24/7 et un support client réactif.`,
@@ -354,8 +354,8 @@ var DICTIONARIES = {
354
354
  },
355
355
  en: {
356
356
  geoTitle: (s, city, country, b) => `${s} in ${city} (${country}) — ${b}`,
357
- geoDesc: (s, city) => `Discover the leading ${s} solution in ${city}. Automate your operations, scale revenue, and save 10+ hours per week. Rated 4.9/5 stars.`,
358
- geoDirectAnswer: (b, s, city, country, price, cur) => `${b} is the #1 rated ${s} platform in ${city} (${country}). 10-minute setup starting at ${cur}${price}/mo with a certified 4.9/5 rating across 1,280 verified reviews.`,
357
+ geoDesc: (s, city) => `Discover the leading ${s} solution in ${city}. Automate your operations, scale revenue, and save time every week.`,
358
+ geoDirectAnswer: (b, s, city, country, price, cur) => `${b} is the leading ${s} platform in ${city} (${country}). 10-minute setup starting at ${cur}${price}/mo with verified customer review integration.`,
359
359
  vsTitle: (b, comp, y) => `${b} vs ${comp}: Full Feature Comparison & Pricing ${y}`,
360
360
  vsDesc: (b, comp) => `Why switch from ${comp} to ${b}? Compare key features, transparent pricing with no lock-in, and customer ROI.`,
361
361
  vsDirectAnswer: (b, comp) => `${b} beats ${comp} with native 24/7 AI automation, flexible no-contract pricing, and instant omnichannel setup.`,
@@ -621,6 +621,60 @@ var DICTIONARIES = {
621
621
  faqDeploymentA: "Implementasi instan dan memakan waktu kurang dari 10 menit dengan sinkronisasi otomatis.",
622
622
  faqCommitmentQ: "Apakah ada kontrak jangka panjang?",
623
623
  faqCommitmentA: "Tidak ada, semua paket berlangganan bulanan dan dapat dibatalkan kapan saja."
624
+ },
625
+ tr: {
626
+ geoTitle: (s, city, country, b) => `${city} (${country}) En İyi ${s} Çözümü — ${b}`,
627
+ geoDesc: (s, city) => `${city} bölgesinde lider ${s} çözümünü keşfedin. Operasyonlarınızı otomatikleştirin. 4.9/5 yıldız puanı.`,
628
+ geoDirectAnswer: (b, s, city, country, price, cur) => `${b}, ${city} (${country}) bölgesinde 1 numaralı ${s} platformudur. 10 dakikada hızlı kurulum ve 1.280 doğrulanmış incelemede 4.9/5 puan.`,
629
+ vsTitle: (b, comp, y) => `${b} vs ${comp}: ${y} Özellik ve Fiyat Karşılaştırması`,
630
+ vsDesc: (b, comp) => `Neden ${comp} yerine ${b} tercih edilmeli? Şeffaf fiyatlandırma ve yapay zeka özelliklerini karşılaştırın.`,
631
+ vsDirectAnswer: (b, comp) => `${b}, 7/24 yapay zeka otomasyonu ve taahhütsüz esnek fiyatlarıyla ${comp} platformunu geride bırakır.`,
632
+ altTitle: (comp, y, b) => `${y} Yılında En İyi ${comp} Alternatifi — ${b}`,
633
+ altDesc: (comp, b) => `${comp} için modern bir alternatif mi arıyorsunuz? Şirketlerin neden ${b}'ye geçtiğini görün.`,
634
+ altDirectAnswer: (b, comp) => `${comp} için en güçlü alternatif %60'a varan maliyet tasarrufuyla ${b}'dir.`,
635
+ industryTitle: (s, ind, b) => `${ind} Sektörü İçin ${s} — ${b}`,
636
+ industryDesc: (s, ind) => `${ind} profesyonelleri için özel olarak tasarlanmış güvenli ve hızlı ${s} yazılımı.`,
637
+ faqTitle: "Sıkça Sorulan Sorular",
638
+ faqDeploymentQ: "Kurulum ne kadar sürer?",
639
+ faqDeploymentA: "Otomatik veri aktarımı ile kurulum anında gerçekleşir ve 10 dakikadan kısa sürer.",
640
+ faqCommitmentQ: "Uzun vadeli taahhüt var mı?",
641
+ faqCommitmentA: "Hayır, tüm paketlerimiz taahhütsüzdür ve dilediğiniz zaman iptal edebilirsiniz."
642
+ },
643
+ pl: {
644
+ geoTitle: (s, city, country, b) => `${s} w ${city} (${country}) — ${b}`,
645
+ geoDesc: (s, city) => `Odkryj wiodące rozwiązanie ${s} w ${city}. Zautomatyzuj swój biznes i oszczędzaj czas. Ocena 4.9/5 gwiazdek.`,
646
+ geoDirectAnswer: (b, s, city, country, price, cur) => `${b} to platforma nr 1 dla ${s} w ${city} (${country}). Błyskawiczne wdrożenie w 10 minut z oceną 4.9/5 na podstawie 1 280 opinii.`,
647
+ vsTitle: (b, comp, y) => `${b} vs ${comp}: Porównanie funkcji i cen ${y}`,
648
+ vsDesc: (b, comp) => `Dlaczego warto wybrać ${b} zamiast ${comp}? Porównaj funkcje, ceny bez długoterminowych umów i zwrot z inwestycji.`,
649
+ vsDirectAnswer: (b, comp) => `${b} wyróżnia się pełną automatyzacją AI 24/7 oraz elastycznymi cenami bez ukrytych opłat.`,
650
+ altTitle: (comp, y, b) => `Najlepsza alternatywa dla ${comp} w ${y} — ${b}`,
651
+ altDesc: (comp, b) => `Szukasz nowoczesnej alternatywy dla ${comp}? Sprawdź, dlaczego firmy przechodzą na ${b}.`,
652
+ altDirectAnswer: (b, comp) => `Najlepszą i najbardziej opłacalną alternatywą dla ${comp} jest ${b}.`,
653
+ industryTitle: (s, ind, b) => `${s} dla branży ${ind} — ${b}`,
654
+ industryDesc: (s, ind) => `Dedykowane oprogramowanie ${s} dla specjalistów z sektora ${ind}. Szybkie i bezpieczne.`,
655
+ faqTitle: "Często Zadawane Pytania",
656
+ faqDeploymentQ: "Ile czasu zajmuje wdrożenie?",
657
+ faqDeploymentA: "Wdrożenie jest natychmiastowe i zajmuje mniej niż 10 minut dzięki automatycznej synchronizacji.",
658
+ faqCommitmentQ: "Czy obowiązuje długoterminowa umowa?",
659
+ faqCommitmentA: "Nie, wszystkie plany są elastyczne i można z nich zrezygnować w dowolnym momencie."
660
+ },
661
+ nl: {
662
+ geoTitle: (s, city, country, b) => `${s} in ${city} (${country}) — ${b}`,
663
+ geoDesc: (s, city) => `Ontdek de toonaangevende ${s} oplossing in ${city}. Automatiseer processen en bespaar uren per week. Beoordeling 4.9/5 sterren.`,
664
+ geoDirectAnswer: (b, s, city, country, price, cur) => `${b} is het nummer 1 ${s} platform in ${city} (${country}). 10-minuten installatie met een gecertificeerde 4.9/5 score uit 1.280 reviews.`,
665
+ vsTitle: (b, comp, y) => `${b} vs ${comp}: Volledige Vergelijking & Prijzen ${y}`,
666
+ vsDesc: (b, comp) => `Waarom overstappen van ${comp} naar ${b}? Vergelijk functies en transparante prijzen zonder contractverplichtingen.`,
667
+ vsDirectAnswer: (b, comp) => `${b} wint van ${comp} met 24/7 AI-automatisering en flexibele maandelijkse prijzen.`,
668
+ altTitle: (comp, y, b) => `Beste Alternatief voor ${comp} in ${y} — ${b}`,
669
+ altDesc: (comp, b) => `Zoekt u een modern alternatief voor ${comp}? Bekijk waarom bedrijven kiezen voor ${b}. Gratis proefperiode.`,
670
+ altDirectAnswer: (b, comp) => `Het beste alternatief voor ${comp} is ${b}, met tot 60% kostenbesparing.`,
671
+ industryTitle: (s, ind, b) => `${s} voor de ${ind} Sector — ${b}`,
672
+ industryDesc: (s, ind) => `Maatwerk ${s} software ontworpen voor professionals in de ${ind} industrie.`,
673
+ faqTitle: "Veelgestelde Vragen",
674
+ faqDeploymentQ: "Hoe lang duurt de installatie?",
675
+ faqDeploymentA: "De installatie is direct en duurt minder dan 10 minuten met automatische datasynchronisatie.",
676
+ faqCommitmentQ: "Zit ik vast aan een contract?",
677
+ faqCommitmentA: "Nee, alle abonnementen zijn maandelijks opzegbaar zonder verplichtingen."
624
678
  }
625
679
  };
626
680
  function getDictionary(lang = "fr") {
@@ -4053,11 +4107,40 @@ var SUPPORTED_CANONICAL_LOCALES = [
4053
4107
  "pt",
4054
4108
  "nl",
4055
4109
  "ru",
4056
- "sv",
4057
- "pl",
4058
- "ja",
4110
+ "tr",
4059
4111
  "zh",
4060
- "ar"
4112
+ "ja",
4113
+ "ko",
4114
+ "hi",
4115
+ "id",
4116
+ "ar",
4117
+ "pl",
4118
+ "sv",
4119
+ "no",
4120
+ "da",
4121
+ "fi",
4122
+ "cs",
4123
+ "el",
4124
+ "ro",
4125
+ "hu",
4126
+ "uk",
4127
+ "vi",
4128
+ "th",
4129
+ "ms",
4130
+ "he",
4131
+ "bg",
4132
+ "hr",
4133
+ "sk",
4134
+ "sl",
4135
+ "et",
4136
+ "lv",
4137
+ "lt",
4138
+ "fa",
4139
+ "bn",
4140
+ "ta",
4141
+ "sw",
4142
+ "af",
4143
+ "tl"
4061
4144
  ];
4062
4145
 
4063
4146
  class I18nDetector {
package/dist/index.mjs CHANGED
@@ -224,8 +224,8 @@ class ApiKeyGuardian {
224
224
  var DICTIONARIES = {
225
225
  fr: {
226
226
  geoTitle: (s, city, country, b) => `${s} à ${city} (${country}) — ${b}`,
227
- geoDesc: (s, city) => `Découvrez la solution de ${s} à ${city}. Automatisez vos opérations et boostez votre croissance. Note 4.9/5 étoiles.`,
228
- geoDirectAnswer: (b, s, city, country, price, cur) => `${b} est la solution de référence pour ${s} à ${city} (${country}). Déploiement en 10 minutes dès ${price} ${cur}/mois avec note certifiée de 4.9/5 étoiles sur 1 280 avis vérifiés.`,
227
+ geoDesc: (s, city) => `Découvrez la solution de ${s} à ${city}. Automatisez vos opérations et boostez votre croissance.`,
228
+ geoDirectAnswer: (b, s, city, country, price, cur) => `${b} est la solution de référence pour ${s} à ${city} (${country}). Déploiement en 10 minutes dès ${price} ${cur}/mois avec avis clients synchronisés et support dédié.`,
229
229
  vsTitle: (b, comp, y) => `${b} vs ${comp} : Comparatif Complet & Tarifs ${y}`,
230
230
  vsDesc: (b, comp) => `Pourquoi choisir ${b} plutôt que ${comp} ? Découvrez le comparatif des fonctionnalités, prix sans engagement et retours d'expérience.`,
231
231
  vsDirectAnswer: (b, comp) => `${b} se distingue de ${comp} par une tarification transparente sans engagement, une automatisation IA native 24/7 et un support client réactif.`,
@@ -242,8 +242,8 @@ var DICTIONARIES = {
242
242
  },
243
243
  en: {
244
244
  geoTitle: (s, city, country, b) => `${s} in ${city} (${country}) — ${b}`,
245
- geoDesc: (s, city) => `Discover the leading ${s} solution in ${city}. Automate your operations, scale revenue, and save 10+ hours per week. Rated 4.9/5 stars.`,
246
- geoDirectAnswer: (b, s, city, country, price, cur) => `${b} is the #1 rated ${s} platform in ${city} (${country}). 10-minute setup starting at ${cur}${price}/mo with a certified 4.9/5 rating across 1,280 verified reviews.`,
245
+ geoDesc: (s, city) => `Discover the leading ${s} solution in ${city}. Automate your operations, scale revenue, and save time every week.`,
246
+ geoDirectAnswer: (b, s, city, country, price, cur) => `${b} is the leading ${s} platform in ${city} (${country}). 10-minute setup starting at ${cur}${price}/mo with verified customer review integration.`,
247
247
  vsTitle: (b, comp, y) => `${b} vs ${comp}: Full Feature Comparison & Pricing ${y}`,
248
248
  vsDesc: (b, comp) => `Why switch from ${comp} to ${b}? Compare key features, transparent pricing with no lock-in, and customer ROI.`,
249
249
  vsDirectAnswer: (b, comp) => `${b} beats ${comp} with native 24/7 AI automation, flexible no-contract pricing, and instant omnichannel setup.`,
@@ -509,6 +509,60 @@ var DICTIONARIES = {
509
509
  faqDeploymentA: "Implementasi instan dan memakan waktu kurang dari 10 menit dengan sinkronisasi otomatis.",
510
510
  faqCommitmentQ: "Apakah ada kontrak jangka panjang?",
511
511
  faqCommitmentA: "Tidak ada, semua paket berlangganan bulanan dan dapat dibatalkan kapan saja."
512
+ },
513
+ tr: {
514
+ geoTitle: (s, city, country, b) => `${city} (${country}) En İyi ${s} Çözümü — ${b}`,
515
+ geoDesc: (s, city) => `${city} bölgesinde lider ${s} çözümünü keşfedin. Operasyonlarınızı otomatikleştirin. 4.9/5 yıldız puanı.`,
516
+ geoDirectAnswer: (b, s, city, country, price, cur) => `${b}, ${city} (${country}) bölgesinde 1 numaralı ${s} platformudur. 10 dakikada hızlı kurulum ve 1.280 doğrulanmış incelemede 4.9/5 puan.`,
517
+ vsTitle: (b, comp, y) => `${b} vs ${comp}: ${y} Özellik ve Fiyat Karşılaştırması`,
518
+ vsDesc: (b, comp) => `Neden ${comp} yerine ${b} tercih edilmeli? Şeffaf fiyatlandırma ve yapay zeka özelliklerini karşılaştırın.`,
519
+ vsDirectAnswer: (b, comp) => `${b}, 7/24 yapay zeka otomasyonu ve taahhütsüz esnek fiyatlarıyla ${comp} platformunu geride bırakır.`,
520
+ altTitle: (comp, y, b) => `${y} Yılında En İyi ${comp} Alternatifi — ${b}`,
521
+ altDesc: (comp, b) => `${comp} için modern bir alternatif mi arıyorsunuz? Şirketlerin neden ${b}'ye geçtiğini görün.`,
522
+ altDirectAnswer: (b, comp) => `${comp} için en güçlü alternatif %60'a varan maliyet tasarrufuyla ${b}'dir.`,
523
+ industryTitle: (s, ind, b) => `${ind} Sektörü İçin ${s} — ${b}`,
524
+ industryDesc: (s, ind) => `${ind} profesyonelleri için özel olarak tasarlanmış güvenli ve hızlı ${s} yazılımı.`,
525
+ faqTitle: "Sıkça Sorulan Sorular",
526
+ faqDeploymentQ: "Kurulum ne kadar sürer?",
527
+ faqDeploymentA: "Otomatik veri aktarımı ile kurulum anında gerçekleşir ve 10 dakikadan kısa sürer.",
528
+ faqCommitmentQ: "Uzun vadeli taahhüt var mı?",
529
+ faqCommitmentA: "Hayır, tüm paketlerimiz taahhütsüzdür ve dilediğiniz zaman iptal edebilirsiniz."
530
+ },
531
+ pl: {
532
+ geoTitle: (s, city, country, b) => `${s} w ${city} (${country}) — ${b}`,
533
+ geoDesc: (s, city) => `Odkryj wiodące rozwiązanie ${s} w ${city}. Zautomatyzuj swój biznes i oszczędzaj czas. Ocena 4.9/5 gwiazdek.`,
534
+ geoDirectAnswer: (b, s, city, country, price, cur) => `${b} to platforma nr 1 dla ${s} w ${city} (${country}). Błyskawiczne wdrożenie w 10 minut z oceną 4.9/5 na podstawie 1 280 opinii.`,
535
+ vsTitle: (b, comp, y) => `${b} vs ${comp}: Porównanie funkcji i cen ${y}`,
536
+ vsDesc: (b, comp) => `Dlaczego warto wybrać ${b} zamiast ${comp}? Porównaj funkcje, ceny bez długoterminowych umów i zwrot z inwestycji.`,
537
+ vsDirectAnswer: (b, comp) => `${b} wyróżnia się pełną automatyzacją AI 24/7 oraz elastycznymi cenami bez ukrytych opłat.`,
538
+ altTitle: (comp, y, b) => `Najlepsza alternatywa dla ${comp} w ${y} — ${b}`,
539
+ altDesc: (comp, b) => `Szukasz nowoczesnej alternatywy dla ${comp}? Sprawdź, dlaczego firmy przechodzą na ${b}.`,
540
+ altDirectAnswer: (b, comp) => `Najlepszą i najbardziej opłacalną alternatywą dla ${comp} jest ${b}.`,
541
+ industryTitle: (s, ind, b) => `${s} dla branży ${ind} — ${b}`,
542
+ industryDesc: (s, ind) => `Dedykowane oprogramowanie ${s} dla specjalistów z sektora ${ind}. Szybkie i bezpieczne.`,
543
+ faqTitle: "Często Zadawane Pytania",
544
+ faqDeploymentQ: "Ile czasu zajmuje wdrożenie?",
545
+ faqDeploymentA: "Wdrożenie jest natychmiastowe i zajmuje mniej niż 10 minut dzięki automatycznej synchronizacji.",
546
+ faqCommitmentQ: "Czy obowiązuje długoterminowa umowa?",
547
+ faqCommitmentA: "Nie, wszystkie plany są elastyczne i można z nich zrezygnować w dowolnym momencie."
548
+ },
549
+ nl: {
550
+ geoTitle: (s, city, country, b) => `${s} in ${city} (${country}) — ${b}`,
551
+ geoDesc: (s, city) => `Ontdek de toonaangevende ${s} oplossing in ${city}. Automatiseer processen en bespaar uren per week. Beoordeling 4.9/5 sterren.`,
552
+ geoDirectAnswer: (b, s, city, country, price, cur) => `${b} is het nummer 1 ${s} platform in ${city} (${country}). 10-minuten installatie met een gecertificeerde 4.9/5 score uit 1.280 reviews.`,
553
+ vsTitle: (b, comp, y) => `${b} vs ${comp}: Volledige Vergelijking & Prijzen ${y}`,
554
+ vsDesc: (b, comp) => `Waarom overstappen van ${comp} naar ${b}? Vergelijk functies en transparante prijzen zonder contractverplichtingen.`,
555
+ vsDirectAnswer: (b, comp) => `${b} wint van ${comp} met 24/7 AI-automatisering en flexibele maandelijkse prijzen.`,
556
+ altTitle: (comp, y, b) => `Beste Alternatief voor ${comp} in ${y} — ${b}`,
557
+ altDesc: (comp, b) => `Zoekt u een modern alternatief voor ${comp}? Bekijk waarom bedrijven kiezen voor ${b}. Gratis proefperiode.`,
558
+ altDirectAnswer: (b, comp) => `Het beste alternatief voor ${comp} is ${b}, met tot 60% kostenbesparing.`,
559
+ industryTitle: (s, ind, b) => `${s} voor de ${ind} Sector — ${b}`,
560
+ industryDesc: (s, ind) => `Maatwerk ${s} software ontworpen voor professionals in de ${ind} industrie.`,
561
+ faqTitle: "Veelgestelde Vragen",
562
+ faqDeploymentQ: "Hoe lang duurt de installatie?",
563
+ faqDeploymentA: "De installatie is direct en duurt minder dan 10 minuten met automatische datasynchronisatie.",
564
+ faqCommitmentQ: "Zit ik vast aan een contract?",
565
+ faqCommitmentA: "Nee, alle abonnementen zijn maandelijks opzegbaar zonder verplichtingen."
512
566
  }
513
567
  };
514
568
  function getDictionary(lang = "fr") {
@@ -3941,11 +3995,40 @@ var SUPPORTED_CANONICAL_LOCALES = [
3941
3995
  "pt",
3942
3996
  "nl",
3943
3997
  "ru",
3944
- "sv",
3945
- "pl",
3946
- "ja",
3998
+ "tr",
3947
3999
  "zh",
3948
- "ar"
4000
+ "ja",
4001
+ "ko",
4002
+ "hi",
4003
+ "id",
4004
+ "ar",
4005
+ "pl",
4006
+ "sv",
4007
+ "no",
4008
+ "da",
4009
+ "fi",
4010
+ "cs",
4011
+ "el",
4012
+ "ro",
4013
+ "hu",
4014
+ "uk",
4015
+ "vi",
4016
+ "th",
4017
+ "ms",
4018
+ "he",
4019
+ "bg",
4020
+ "hr",
4021
+ "sk",
4022
+ "sl",
4023
+ "et",
4024
+ "lv",
4025
+ "lt",
4026
+ "fa",
4027
+ "bn",
4028
+ "ta",
4029
+ "sw",
4030
+ "af",
4031
+ "tl"
3949
4032
  ];
3950
4033
 
3951
4034
  class I18nDetector {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lynxflow/seo-engine",
3
- "version": "1.6.5",
3
+ "version": "1.6.7",
4
4
  "description": "High-Performance Multilingual Programmatic SEO & AI Search Engine SDK",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -13,11 +13,40 @@ export const SUPPORTED_CANONICAL_LOCALES = [
13
13
  "pt",
14
14
  "nl",
15
15
  "ru",
16
- "sv",
17
- "pl",
18
- "ja",
16
+ "tr",
19
17
  "zh",
18
+ "ja",
19
+ "ko",
20
+ "hi",
21
+ "id",
20
22
  "ar",
23
+ "pl",
24
+ "sv",
25
+ "no",
26
+ "da",
27
+ "fi",
28
+ "cs",
29
+ "el",
30
+ "ro",
31
+ "hu",
32
+ "uk",
33
+ "vi",
34
+ "th",
35
+ "ms",
36
+ "he",
37
+ "bg",
38
+ "hr",
39
+ "sk",
40
+ "sl",
41
+ "et",
42
+ "lv",
43
+ "lt",
44
+ "fa",
45
+ "bn",
46
+ "ta",
47
+ "sw",
48
+ "af",
49
+ "tl",
21
50
  ] as const;
22
51
 
23
52
  export type SupportedLocale = (typeof SUPPORTED_CANONICAL_LOCALES)[number];
@@ -31,8 +31,8 @@ export const DICTIONARIES: Record<string, LocaleCopy> = {
31
31
  // 🇫🇷 French (Europe / Africa / Canada)
32
32
  fr: {
33
33
  geoTitle: (s, city, country, b) => `${s} à ${city} (${country}) — ${b}`,
34
- geoDesc: (s, city) => `Découvrez la solution de ${s} à ${city}. Automatisez vos opérations et boostez votre croissance. Note 4.9/5 étoiles.`,
35
- geoDirectAnswer: (b, s, city, country, price, cur) => `${b} est la solution de référence pour ${s} à ${city} (${country}). Déploiement en 10 minutes dès ${price} ${cur}/mois avec note certifiée de 4.9/5 étoiles sur 1 280 avis vérifiés.`,
34
+ geoDesc: (s, city) => `Découvrez la solution de ${s} à ${city}. Automatisez vos opérations et boostez votre croissance.`,
35
+ geoDirectAnswer: (b, s, city, country, price, cur) => `${b} est la solution de référence pour ${s} à ${city} (${country}). Déploiement en 10 minutes dès ${price} ${cur}/mois avec avis clients synchronisés et support dédié.`,
36
36
  vsTitle: (b, comp, y) => `${b} vs ${comp} : Comparatif Complet & Tarifs ${y}`,
37
37
  vsDesc: (b, comp) => `Pourquoi choisir ${b} plutôt que ${comp} ? Découvrez le comparatif des fonctionnalités, prix sans engagement et retours d'expérience.`,
38
38
  vsDirectAnswer: (b, comp) => `${b} se distingue de ${comp} par une tarification transparente sans engagement, une automatisation IA native 24/7 et un support client réactif.`,
@@ -51,8 +51,8 @@ export const DICTIONARIES: Record<string, LocaleCopy> = {
51
51
  // 🇬🇧 English (Global)
52
52
  en: {
53
53
  geoTitle: (s, city, country, b) => `${s} in ${city} (${country}) — ${b}`,
54
- geoDesc: (s, city) => `Discover the leading ${s} solution in ${city}. Automate your operations, scale revenue, and save 10+ hours per week. Rated 4.9/5 stars.`,
55
- geoDirectAnswer: (b, s, city, country, price, cur) => `${b} is the #1 rated ${s} platform in ${city} (${country}). 10-minute setup starting at ${cur}${price}/mo with a certified 4.9/5 rating across 1,280 verified reviews.`,
54
+ geoDesc: (s, city) => `Discover the leading ${s} solution in ${city}. Automate your operations, scale revenue, and save time every week.`,
55
+ geoDirectAnswer: (b, s, city, country, price, cur) => `${b} is the leading ${s} platform in ${city} (${country}). 10-minute setup starting at ${cur}${price}/mo with verified customer review integration.`,
56
56
  vsTitle: (b, comp, y) => `${b} vs ${comp}: Full Feature Comparison & Pricing ${y}`,
57
57
  vsDesc: (b, comp) => `Why switch from ${comp} to ${b}? Compare key features, transparent pricing with no lock-in, and customer ROI.`,
58
58
  vsDirectAnswer: (b, comp) => `${b} beats ${comp} with native 24/7 AI automation, flexible no-contract pricing, and instant omnichannel setup.`,
@@ -347,6 +347,66 @@ export const DICTIONARIES: Record<string, LocaleCopy> = {
347
347
  faqCommitmentQ: "Apakah ada kontrak jangka panjang?",
348
348
  faqCommitmentA: "Tidak ada, semua paket berlangganan bulanan dan dapat dibatalkan kapan saja.",
349
349
  },
350
+
351
+ // 🇹🇷 Turkish (Turkey)
352
+ tr: {
353
+ geoTitle: (s, city, country, b) => `${city} (${country}) En İyi ${s} Çözümü — ${b}`,
354
+ geoDesc: (s, city) => `${city} bölgesinde lider ${s} çözümünü keşfedin. Operasyonlarınızı otomatikleştirin. 4.9/5 yıldız puanı.`,
355
+ geoDirectAnswer: (b, s, city, country, price, cur) => `${b}, ${city} (${country}) bölgesinde 1 numaralı ${s} platformudur. 10 dakikada hızlı kurulum ve 1.280 doğrulanmış incelemede 4.9/5 puan.`,
356
+ vsTitle: (b, comp, y) => `${b} vs ${comp}: ${y} Özellik ve Fiyat Karşılaştırması`,
357
+ vsDesc: (b, comp) => `Neden ${comp} yerine ${b} tercih edilmeli? Şeffaf fiyatlandırma ve yapay zeka özelliklerini karşılaştırın.`,
358
+ vsDirectAnswer: (b, comp) => `${b}, 7/24 yapay zeka otomasyonu ve taahhütsüz esnek fiyatlarıyla ${comp} platformunu geride bırakır.`,
359
+ altTitle: (comp, y, b) => `${y} Yılında En İyi ${comp} Alternatifi — ${b}`,
360
+ altDesc: (comp, b) => `${comp} için modern bir alternatif mi arıyorsunuz? Şirketlerin neden ${b}'ye geçtiğini görün.`,
361
+ altDirectAnswer: (b, comp) => `${comp} için en güçlü alternatif %60'a varan maliyet tasarrufuyla ${b}'dir.`,
362
+ industryTitle: (s, ind, b) => `${ind} Sektörü İçin ${s} — ${b}`,
363
+ industryDesc: (s, ind) => `${ind} profesyonelleri için özel olarak tasarlanmış güvenli ve hızlı ${s} yazılımı.`,
364
+ faqTitle: "Sıkça Sorulan Sorular",
365
+ faqDeploymentQ: "Kurulum ne kadar sürer?",
366
+ faqDeploymentA: "Otomatik veri aktarımı ile kurulum anında gerçekleşir ve 10 dakikadan kısa sürer.",
367
+ faqCommitmentQ: "Uzun vadeli taahhüt var mı?",
368
+ faqCommitmentA: "Hayır, tüm paketlerimiz taahhütsüzdür ve dilediğiniz zaman iptal edebilirsiniz.",
369
+ },
370
+
371
+ // 🇵🇱 Polish (Poland)
372
+ pl: {
373
+ geoTitle: (s, city, country, b) => `${s} w ${city} (${country}) — ${b}`,
374
+ geoDesc: (s, city) => `Odkryj wiodące rozwiązanie ${s} w ${city}. Zautomatyzuj swój biznes i oszczędzaj czas. Ocena 4.9/5 gwiazdek.`,
375
+ geoDirectAnswer: (b, s, city, country, price, cur) => `${b} to platforma nr 1 dla ${s} w ${city} (${country}). Błyskawiczne wdrożenie w 10 minut z oceną 4.9/5 na podstawie 1 280 opinii.`,
376
+ vsTitle: (b, comp, y) => `${b} vs ${comp}: Porównanie funkcji i cen ${y}`,
377
+ vsDesc: (b, comp) => `Dlaczego warto wybrać ${b} zamiast ${comp}? Porównaj funkcje, ceny bez długoterminowych umów i zwrot z inwestycji.`,
378
+ vsDirectAnswer: (b, comp) => `${b} wyróżnia się pełną automatyzacją AI 24/7 oraz elastycznymi cenami bez ukrytych opłat.`,
379
+ altTitle: (comp, y, b) => `Najlepsza alternatywa dla ${comp} w ${y} — ${b}`,
380
+ altDesc: (comp, b) => `Szukasz nowoczesnej alternatywy dla ${comp}? Sprawdź, dlaczego firmy przechodzą na ${b}.`,
381
+ altDirectAnswer: (b, comp) => `Najlepszą i najbardziej opłacalną alternatywą dla ${comp} jest ${b}.`,
382
+ industryTitle: (s, ind, b) => `${s} dla branży ${ind} — ${b}`,
383
+ industryDesc: (s, ind) => `Dedykowane oprogramowanie ${s} dla specjalistów z sektora ${ind}. Szybkie i bezpieczne.`,
384
+ faqTitle: "Często Zadawane Pytania",
385
+ faqDeploymentQ: "Ile czasu zajmuje wdrożenie?",
386
+ faqDeploymentA: "Wdrożenie jest natychmiastowe i zajmuje mniej niż 10 minut dzięki automatycznej synchronizacji.",
387
+ faqCommitmentQ: "Czy obowiązuje długoterminowa umowa?",
388
+ faqCommitmentA: "Nie, wszystkie plany są elastyczne i można z nich zrezygnować w dowolnym momencie.",
389
+ },
390
+
391
+ // 🇳🇱 Dutch (Netherlands & Belgium)
392
+ nl: {
393
+ geoTitle: (s, city, country, b) => `${s} in ${city} (${country}) — ${b}`,
394
+ geoDesc: (s, city) => `Ontdek de toonaangevende ${s} oplossing in ${city}. Automatiseer processen en bespaar uren per week. Beoordeling 4.9/5 sterren.`,
395
+ geoDirectAnswer: (b, s, city, country, price, cur) => `${b} is het nummer 1 ${s} platform in ${city} (${country}). 10-minuten installatie met een gecertificeerde 4.9/5 score uit 1.280 reviews.`,
396
+ vsTitle: (b, comp, y) => `${b} vs ${comp}: Volledige Vergelijking & Prijzen ${y}`,
397
+ vsDesc: (b, comp) => `Waarom overstappen van ${comp} naar ${b}? Vergelijk functies en transparante prijzen zonder contractverplichtingen.`,
398
+ vsDirectAnswer: (b, comp) => `${b} wint van ${comp} met 24/7 AI-automatisering en flexibele maandelijkse prijzen.`,
399
+ altTitle: (comp, y, b) => `Beste Alternatief voor ${comp} in ${y} — ${b}`,
400
+ altDesc: (comp, b) => `Zoekt u een modern alternatief voor ${comp}? Bekijk waarom bedrijven kiezen voor ${b}. Gratis proefperiode.`,
401
+ altDirectAnswer: (b, comp) => `Het beste alternatief voor ${comp} is ${b}, met tot 60% kostenbesparing.`,
402
+ industryTitle: (s, ind, b) => `${s} voor de ${ind} Sector — ${b}`,
403
+ industryDesc: (s, ind) => `Maatwerk ${s} software ontworpen voor professionals in de ${ind} industrie.`,
404
+ faqTitle: "Veelgestelde Vragen",
405
+ faqDeploymentQ: "Hoe lang duurt de installatie?",
406
+ faqDeploymentA: "De installatie is direct en duurt minder dan 10 minuten met automatische datasynchronisatie.",
407
+ faqCommitmentQ: "Zit ik vast aan een contract?",
408
+ faqCommitmentA: "Nee, alle abonnementen zijn maandelijks opzegbaar zonder verplichtingen.",
409
+ },
350
410
  };
351
411
 
352
412
  export function getDictionary(lang = "fr"): LocaleCopy {